@budibase/backend-core 3.17.0 → 3.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
- "use strict";var jI=Object.create;var $a=Object.defineProperty;var HI=Object.getOwnPropertyDescriptor;var KI=Object.getOwnPropertyNames;var YI=Object.getPrototypeOf,JI=Object.prototype.hasOwnProperty;var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)$a(t,r,{get:e[r],enumerable:!0})},Gh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of KI(e))!JI.call(t,i)&&i!==r&&$a(t,i,{get:()=>e[i],enumerable:!(n=HI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?jI(YI(t)):{},Gh(e||!t||!t.__esModule?$a(r,"default",{value:t,enumerable:!0}):r,t)),zI=t=>Gh($a({},"__esModule",{value:!0}),t);var fg=j((Jl,zl)=>{"use strict";(function(t,e){typeof Jl=="object"&&typeof zl<"u"?zl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Jl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",f="date",m="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var F=["th","st","nd","rd"],N=V%100;return"["+V+(F[(N-20)%10]||F[N]||F[0])+"]"}},T=function(V,F,N){var 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:f,h:o,m:s,s:i,ms:n,Q:l}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},S="en",x={};x[S]=y;var E="$isDayjsObject",I=function(V){return V instanceof de||!(!V||!V[E])},k=function V(F,N,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},b=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 b(V,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var de=function(){function V(N){this.$L=k(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[E]=!0}var F=V.prototype;return F.parse=function(N){this.$d=function(q){var O=q.date,K=q.utc;if(O===null)return new Date(NaN);if(B.u(O))return new Date;if(O instanceof Date)return new Date(O);if(typeof O=="string"&&!/Z$/i.test(O)){var $=O.match(p);if($){var ue=$[2]-1||0,Oe=($[7]||"0").substring(0,3);return K?new Date(Date.UTC($[1],ue,$[3]||1,$[4]||0,$[5]||0,$[6]||0,Oe)):new Date($[1],ue,$[3]||1,$[4]||0,$[5]||0,$[6]||0,Oe)}}return new Date(O)}(N),this.init()},F.init=function(){var N=this.$d;this.$y=N.getFullYear(),this.$M=N.getMonth(),this.$D=N.getDate(),this.$W=N.getDay(),this.$H=N.getHours(),this.$m=N.getMinutes(),this.$s=N.getSeconds(),this.$ms=N.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==m},F.isSame=function(N,q){var O=b(N);return this.startOf(q)<=O&&O<=this.endOf(q)},F.isAfter=function(N,q){return b(N)<this.startOf(q)},F.isBefore=function(N,q){return this.endOf(q)<b(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 _r=B.w(O.$u?Date.UTC(O.$y,je,pn):new Date(O.$y,je,pn),O);return K?_r:_r.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 f: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[f]=$+"Date",O[c]=$+"Month",O[d]=$+"FullYear",O[o]=$+"Hours",O[s]=$+"Minutes",O[i]=$+"Seconds",O[n]=$+"Milliseconds",O)[K],Oe=K===a?this.$D+(q-this.$W):q;if(K===c||K===d){var Ne=this.clone().set(f,1);Ne.$d[ue](Oe),Ne.init(),this.$d=Ne.set(f,Math.min(this.$D,Ne.daysInMonth())).$d}else ue&&this.$d[ue](Oe);return this.init(),this},F.set=function(N,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=b(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,_r,xs,Va){return je&&(je[_r]||je(q,K))||xs[_r].slice(0,Va)},Os=function(je){return B.s(ue%12||12,je,"0")},pn=J||function(je,_r,xs){var Va=je<12?"AM":"PM";return xs?Va.toLowerCase():Va};return K.replace(g,function(je,_r){return _r||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=b(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 b.prototype=ln,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",f]].forEach(function(V){ln[V[1]]=function(F){return this.$g(F,V[0],V[1])}}),b.extend=function(V,F){return V.$i||(V(F,de,b),V.$i=!0),b},b.locale=k,b.isDayjs=I,b.unix=function(V){return b(1e3*V)},b.en=x[S],b.Ls=x,b.p={},b})});var Rt=j(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.Err=Ke.Valid=Ke.err=Ke.valid=void 0;var xx=t=>new cu(t);Ke.valid=xx;var Rx=t=>new lu(t);Ke.err=Rx;var cu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Ke.valid)(e(this.value))}mapErr(e){return(0,Ke.valid)(this.value)}};Ke.Valid=cu;var lu=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Ke.err)(this.error)}mapErr(e){return(0,Ke.err)(e(this.error))}};Ke.Err=lu});var wt=j(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0})});var vr=j(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});qt();var oe=Rt();wt();var wx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],bx=["sun","mon","tue","wed","thu","fri","sat"],Dx=(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&&wx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&bx.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)},Cx=(t,e,r)=>{if(t==="*")return Dx(e,r)?(0,oe.valid)(!0):(0,oe.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,oe.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,oe.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,oe.valid)(!0):Ls(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,oe.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,oe.valid)(!0):Ls(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,oe.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,oe.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,oe.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ls(n,e,r)}return Ls(t,e,r)},Eg=(t,e,r,n)=>t==="*"?(0,oe.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,oe.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,oe.valid)(!0):Ls(t,e,r),vx=(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 Cx(n[0],e,r);if(n.length===2){let i=Eg(n[0],e,r,0),s=Eg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,oe.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,oe.valid)(!0)}return(0,oe.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},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 '/')`);let i=vx(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)},Px=(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(Nx(o,e,r))}),i.every(o=>o.isValid()))return(0,oe.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,oe.err)(s)};td.default=Px});var Tg=j(Us=>{"use strict";var Lx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});qt();var Ux=Rt(),Mx=Lx(vr());wt();var Fx=(t,e)=>{if(!t.seconds)return(0,Ux.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Mx.default)(r,"seconds",e)};Us.default=Fx});var Ag=j(Ms=>{"use strict";var kx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});qt();var Bx=Rt(),Gx=kx(vr());wt();var Vx=(t,e)=>{if(!t.minutes)return(0,Bx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Gx.default)(r,"minutes",e)};Ms.default=Vx});var Sg=j(Fs=>{"use strict";var $x=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var Wx=Rt(),qx=$x(vr());wt();var Qx=(t,e)=>{if(!t.hours)return(0,Wx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,qx.default)(r,"hours",e)};Fs.default=Qx});var _g=j(Bs=>{"use strict";var jx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});qt();var ks=Rt(),Hx=jx(vr());wt();var Kx=(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,Hx.default)(r,"daysOfMonth",e)};Bs.default=Kx});var Ig=j(Gs=>{"use strict";var Yx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});qt();var Jx=Rt(),zx=Yx(vr());wt();var Zx=(t,e)=>{if(!t.months)return(0,Jx.err)(["months field is undefined."]);let{months:r}=t;return(0,zx.default)(r,"months",e)};Gs.default=Zx});var Og=j($s=>{"use strict";var Xx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});qt();var Vs=Rt(),eR=Xx(vr());wt();var tR=(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,eR.default)(r,"daysOfWeek",e)};$s.default=tR});var xg=j(Ws=>{"use strict";var rR=Ws&&Ws.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ws,"__esModule",{value:!0});qt();var nR=Rt(),iR=rR(vr());wt();var sR=(t,e)=>{if(!t.years)return(0,nR.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,iR.default)(r,"years",e)};Ws.default=sR});var Dg=j((wQ,bg)=>{"use strict";var rd;try{rd=Map}catch{}var nd;try{nd=Set}catch{}function Rg(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(wg);if(rd&&t instanceof rd)return new Map(Array.from(t.entries()));if(nd&&t instanceof nd)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var s=e.findIndex(function(o){return o===t[i]});n[i]=s>-1?r[s]:Rg(t[i],e,r)}return n}return t}function wg(t){return Rg(t,[],[])}bg.exports=wg});var qs=j(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=pR;var oR=Object.prototype.toString,aR=Error.prototype.toString,uR=RegExp.prototype.toString,cR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",lR=/^Symbol\((.*)\)(.*)$/;function dR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Cg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return dR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return cR.call(t).replace(lR,"Symbol($1)");let n=oR.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+aR.call(t)+"]":n==="RegExp"?uR.call(t):null}function pR(t,e){let r=Cg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Cg(this[n],e);return s!==null?s:i},2)}});var tr=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 vg=fR(qs());function fR(t){return t&&t.__esModule?t:{default:t}}var Ng={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,vg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,vg.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Pe.mixed=Ng;var Pg={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Pe.string=Pg;var Lg={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Pe.number=Lg;var Ug={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Pe.date=Ug;var Mg={isValue:"${path} field must be ${value}"};Pe.boolean=Mg;var Fg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Pe.object=Fg;var kg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Pe.array=kg;var mR=Object.assign(Object.create(null),{mixed:Ng,string:Pg,number:Lg,date:Ug,object:Fg,array:kg,boolean:Mg});Pe.default=mR});var Ni=j(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var hR=t=>t&&t.__isYupSchema__;du.default=hR});var Gg=j(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var gR=Bg(require("lodash/has")),yR=Bg(Ni());function Bg(t){return t&&t.__esModule?t:{default:t}}var sd=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,gR.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)}},ER=sd;pu.default=ER});var ad=j(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=TR;function TR(t){return t==null?[]:[].concat(t)}});var vn=j(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var AR=Vg(qs()),SR=Vg(ad());function Vg(t){return t&&t.__esModule?t:{default:t}}function ud(){return ud=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ud.apply(this,arguments)}var _R=/\$\{\s*(\w+)\s*\}/g,cd=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ud({},r,{path:n})),typeof e=="string"?e.replace(_R,(i,s)=>(0,AR.default)(r[s])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,n,i){super(),this.name="ValidationError",this.value=r,this.path=n,this.type=i,this.errors=[],this.inner=[],(0,SR.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};fu.default=cd});var mu=j(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=xR;var ld=IR(vn());function IR(t){return t&&t.__esModule?t:{default:t}}var OR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function xR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=OR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new ld.default(o,s,u)):c(null,s);for(let f=0;f<n.length;f++){let m=n[f];m(i,function(g){if(g){if(!ld.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new ld.default(o,s,u),s);return}c(null,s)}})}}});var Qs=j((UQ,jg)=>{"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 RR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Qg=/^\d+$/,wR=/^\d/,bR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DR=/^\s*(['"]?)(.*?)(\1)\s*$/,md=512,$g=new Nn(md),Wg=new Nn(md),qg=new Nn(md);jg.exports={Cache:Nn,split:fd,normalizePath:pd,setter:function(t){var e=pd(t);return Wg.get(t)||Wg.set(t,function(n,i){for(var s=0,o=e.length,a=n;s<o-1;){var u=e[s];if(u==="__proto__"||u==="constructor"||u==="prototype")return n;a=a[e[s++]]}a[e[s]]=i})},getter:function(t,e){var r=pd(t);return 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+(hd(r)||Qg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){CR(Array.isArray(t)?t:fd(t),e,r)}};function pd(t){return $g.get(t)||$g.set(t,fd(t).map(function(e){return e.replace(DR,"$2")}))}function fd(t){return t.match(RR)||[""]}function CR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(PR(i)&&(i='"'+i+'"'),a=hd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function hd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function vR(t){return t.match(wR)&&!t.match(Qg)}function NR(t){return bR.test(t)}function PR(t){return!hd(t)&&(vR(t)||NR(t))}});var Pn=j(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=UR;Hs.default=void 0;var LR=Qs(),hu={context:"$",value:"."};function UR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===hu.context,this.isValue=this.key[0]===hu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?hu.context:this.isValue?hu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,LR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Hs.default=js;js.prototype.__isYupRef=!0});var Hg=j(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=BR;var MR=gd(require("lodash/mapValues")),gu=gd(vn()),FR=gd(Pn());function gd(t){return t&&t.__esModule?t:{default:t}}function yu(){return yu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},yu.apply(this,arguments)}function kR(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 BR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=kR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:f,params:m,message:p}=t,{parent:g,context:y}=a;function T(I){return FR.default.isRef(I)?I.getValue(i,g,y):I}function _(I={}){let k=(0,MR.default)(yu({value:i,originalValue:u,label:o,path:I.path||s},m,I.params),T),b=new gu.default(gu.default.formatError(I.message||p,k),i,k.path,I.type||d);return b.params=k,b}let S=yu({path:s,parent:g,type:d,createError:_,resolve:T,options:a,originalValue:u},l);if(!c){try{Promise.resolve(f.call(S,i,S)).then(I=>{gu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let x;try{var E;if(x=f.call(S,i,S),typeof((E=x)==null?void 0:E.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}gu.default.isError(x)?n(x):x?n(null,x):n(_())}return e.OPTIONS=t,e}});var Ed=j(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getIn=Kg;Ks.default=void 0;var GR=Qs(),VR=t=>t.substr(0,t.length-1).substr(1);function Kg(t,e,r,n=r){let i,s,o;return e?((0,GR.forEach)(e,(a,u,c)=>{let l=u?VR(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 $R=(t,e,r,n)=>Kg(t,e,r,n).schema,WR=$R;Ks.default=WR});var Jg=j(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var Yg=qR(Pn());function qR(t){return t&&t.__esModule?t:{default:t}}var Td=class t{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){Yg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Yg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};Eu.default=Td});var nr=j(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.default=void 0;var zg=rr(Dg()),Pi=tr(),QR=rr(Gg()),Zg=rr(mu()),Tu=rr(Hg()),Xg=rr(qs()),jR=rr(Pn()),HR=Ed(),KR=rr(ad()),ey=rr(vn()),ty=rr(Jg());function rr(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 ty.default,this._blacklist=new ty.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Pi.mixed.notType)}),this.type=e?.type||"mixed",this.spec=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,Xg.default)(e),o=(0,Xg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
1
+ "use strict";var 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}".
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},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Zg.default)({args:d,value:l,path:s,sync:i,tests:f,endEarly:c},m=>{if(m)return void n(m,l);(0,Zg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(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(ey.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(ey.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,zg.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Pi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Pi.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Pi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Tu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,KR.default)(e).map(s=>new jR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new QR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Tu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Pi.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,Tu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Pi.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,Tu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};Au.default=bt;bt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])bt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,HR.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 ny=j(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=ry;Ys.default=void 0;var YR=JR(nr());function JR(t){return t&&t.__esModule?t:{default:t}}var Ad=YR.default,zR=Ad;Ys.default=zR;function ry(){return new Ad}ry.prototype=Ad.prototype});var Li=j(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.default=void 0;var ZR=t=>t==null;Su.default=ZR});var uy=j(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=ay;zs.default=void 0;var XR=oy(nr()),iy=tr(),sy=oy(Li());function oy(t){return t&&t.__esModule?t:{default:t}}function ay(){return new Js}var Js=class extends XR.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=iy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,sy.default)(r)||r===!0}})}isFalse(e=iy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,sy.default)(r)||r===!1}})}};zs.default=Js;ay.prototype=Js.prototype});var dy=j(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=ly;Xs.default=void 0;var Qt=tr(),ir=cy(Li()),ew=cy(nr());function cy(t){return t&&t.__esModule?t:{default:t}}var tw=/^((([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,rw=/^((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,nw=/^(?:[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,iw=t=>(0,ir.default)(t)||t===t.trim(),sw={}.toString();function ly(){return new Zs}var Zs=class extends ew.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===sw?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,ir.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,ir.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,ir.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,ir.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Qt.string.email){return this.matches(tw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Qt.string.url){return this.matches(rw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Qt.string.uuid){return this.matches(nw,{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:iw})}lowercase(e=Qt.string.lowercase){return this.transform(r=>(0,ir.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,ir.default)(r)||r===r.toLowerCase()})}uppercase(e=Qt.string.uppercase){return this.transform(r=>(0,ir.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,ir.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;ly.prototype=Zs.prototype});var my=j(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=fy;to.default=void 0;var Ln=tr(),Un=py(Li()),ow=py(nr());function py(t){return t&&t.__esModule?t:{default:t}}var aw=t=>t!=+t;function fy(){return new eo}var eo=class extends ow.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"&&!aw(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;fy.prototype=eo.prototype});var hy=j(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.default=cw;var uw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function cw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=uw.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}});var Ey=j(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=Id;ro.default=void 0;var lw=_u(hy()),gy=tr(),yy=_u(Li()),dw=_u(Pn()),pw=_u(nr());function _u(t){return t&&t.__esModule?t:{default:t}}var _d=new Date(""),fw=t=>Object.prototype.toString.call(t)==="[object Date]";function Id(){return new Ui}var Ui=class extends pw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,lw.default)(e),isNaN(e)?_d:new Date(e))})})}_typeCheck(e){return fw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(dw.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=gy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,yy.default)(i)||i>=this.resolve(n)}})}max(e,r=gy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,yy.default)(i)||i<=this.resolve(n)}})}};ro.default=Ui;Ui.INVALID_DATE=_d;Id.prototype=Ui.prototype;Id.INVALID_DATE=_d});var Ay=j((KQ,Od)=>{"use strict";Od.exports=function(t){return Ty(mw(t),t)};Od.exports.array=Ty;function Ty(t,e){var r=t.length,n=new Array(r),i={},s=r,o=hw(e),a=gw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch{f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){d.add(c);do{var p=m[--l];u(p,a.get(p),d)}while(l);d.delete(c)}n[--r]=c}}}function mw(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 hw(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 gw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Sy=j(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});xd.default=_w;var yw=Iu(require("lodash/has")),Ew=Iu(Ay()),Tw=Qs(),Aw=Iu(Pn()),Sw=Iu(Ni());function Iu(t){return t&&t.__esModule?t:{default:t}}function _w(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Tw.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),Aw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Sw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Ew.default.array(n,r).reverse()}});var Iy=j(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});Rd.default=Iw;function _y(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function Iw(t){return(e,r)=>_y(t,e)-_y(t,r)}});var Cy=j(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=Dy;io.default=void 0;var Oy=jt(require("lodash/has")),xy=jt(require("lodash/snakeCase")),Ow=jt(require("lodash/camelCase")),xw=jt(require("lodash/mapKeys")),Rw=jt(require("lodash/mapValues")),ww=Qs(),Ry=tr(),bw=jt(Sy()),by=jt(Iy()),Dw=jt(mu()),Cw=jt(vn()),wd=jt(nr());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 wy=t=>Object.prototype.toString.call(t)==="[object Object]";function vw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Nw=(0,by.default)([]),no=class extends wd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Nw,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return wy(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Mi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let f=s[d],m=(0,Oy.default)(i,d);if(f){let p,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,f=f.resolve({value:g,context:r.context,parent:u});let y="spec"in f?f.spec:void 0,T=y?.strict;if(y?.strip){l=l||d in i;continue}p=!r.__validating||!T?f.cast(i[d],c):i[d],p!==void 0&&(u[d]=p)}else m&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!Cw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!wy(d)){n(i[0]||null,d);return}a=a||d;let f=this._nodes.map(m=>(p,g)=>{let y=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(d[m],Mi({},r,{path:y,from:o,strict:!0,parent:d,originalValue:a[m]}),g);return}g(null)});(0,Dw.default)({sync:s,tests:f,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Mi({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof wd.default&&s instanceof wd.default&&(n[i]=s.concat(o))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,by.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,bw.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,ww.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Oy.default)(s,e)&&(o=Mi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Ry.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let s=vw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Ry.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,xw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Ow.default)}snakeCase(){return this.transformKeys(xy.default)}constantCase(){return this.transformKeys(e=>(0,xy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Rw.default)(this.fields,r=>r.describe()),e}};io.default=no;function Dy(t){return new no(t)}Dy.prototype=no.prototype});var Ny=j(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=vy;oo.default=void 0;var bd=Fi(Li()),Pw=Fi(Ni()),Lw=Fi(qs()),Dd=tr(),Uw=Fi(mu()),Mw=Fi(vn()),Fw=Fi(nr());function Fi(t){return t&&t.__esModule?t:{default:t}}function Ou(){return Ou=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Ou.apply(this,arguments)}function vy(t){return new so(t)}var so=class extends Fw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Ou({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,p)=>{if(m){if(!Mw.default.isError(m)||l)return void n(m,p);o.push(m)}if(!d||!c||!this._typeCheck(p)){n(o[0]||null,p);return}f=f||p;let g=new Array(p.length);for(let y=0;y<p.length;y++){let T=p[y],_=`${r.path||""}[${y}]`,S=Ou({},r,{path:_,strict:!0,parent:p,index:y,originalValue:f[y]});g[y]=(x,E)=>c.validate(T,S,E)}(0,Uw.default)({sync:a,path:u,value:p,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Pw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Lw.default)(e));return r.innerType=e,r}length(e,r=Dd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,bd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Dd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,bd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Dd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,bd.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};oo.default=so;vy.prototype=so.prototype});var Py=j(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Gw;ao.default=void 0;var kw=Bw(Ni());function Bw(t){return t&&t.__esModule?t:{default:t}}function Gw(t){return new xu(t)}var xu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,kw.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},Vw=xu;ao.default=Vw});var Ly=j(Cd=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});Cd.default=qw;var $w=Ww(tr());function Ww(t){return t&&t.__esModule?t:{default:t}}function qw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{$w.default[e][r]=t[e][r]})})}});var Nd=j(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.addMethod=zw;Object.defineProperty(me,"MixedSchema",{enumerable:!0,get:function(){return Uy.default}});Object.defineProperty(me,"mixed",{enumerable:!0,get:function(){return Uy.create}});Object.defineProperty(me,"BooleanSchema",{enumerable:!0,get:function(){return vd.default}});Object.defineProperty(me,"bool",{enumerable:!0,get:function(){return vd.create}});Object.defineProperty(me,"boolean",{enumerable:!0,get:function(){return vd.create}});Object.defineProperty(me,"StringSchema",{enumerable:!0,get:function(){return My.default}});Object.defineProperty(me,"string",{enumerable:!0,get:function(){return My.create}});Object.defineProperty(me,"NumberSchema",{enumerable:!0,get:function(){return Fy.default}});Object.defineProperty(me,"number",{enumerable:!0,get:function(){return Fy.create}});Object.defineProperty(me,"DateSchema",{enumerable:!0,get:function(){return ky.default}});Object.defineProperty(me,"date",{enumerable:!0,get:function(){return ky.create}});Object.defineProperty(me,"ObjectSchema",{enumerable:!0,get:function(){return By.default}});Object.defineProperty(me,"object",{enumerable:!0,get:function(){return By.create}});Object.defineProperty(me,"ArraySchema",{enumerable:!0,get:function(){return Gy.default}});Object.defineProperty(me,"array",{enumerable:!0,get:function(){return Gy.create}});Object.defineProperty(me,"ref",{enumerable:!0,get:function(){return Qw.create}});Object.defineProperty(me,"lazy",{enumerable:!0,get:function(){return jw.create}});Object.defineProperty(me,"ValidationError",{enumerable:!0,get:function(){return Hw.default}});Object.defineProperty(me,"reach",{enumerable:!0,get:function(){return Kw.default}});Object.defineProperty(me,"isSchema",{enumerable:!0,get:function(){return Vy.default}});Object.defineProperty(me,"setLocale",{enumerable:!0,get:function(){return Yw.default}});Object.defineProperty(me,"BaseSchema",{enumerable:!0,get:function(){return Jw.default}});var Uy=Mn(ny()),vd=Mn(uy()),My=Mn(dy()),Fy=Mn(my()),ky=Mn(Ey()),By=Mn(Cy()),Gy=Mn(Ny()),Qw=Pn(),jw=Py(),Hw=uo(vn()),Kw=uo(Ed()),Vy=uo(Ni()),Yw=uo(Ly()),Jw=uo(nr());function uo(t){return t&&t.__esModule?t:{default:t}}function $y(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return $y=function(){return t},t}function Mn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=$y();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=n?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}function zw(t,e,r){if(!t||!(0,Vy.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}});var Wy=j(Ld=>{"use strict";Object.defineProperty(Ld,"__esModule",{value:!0});var Pd=Ud();Ld.default=()=>{(0,Pd.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,Pd.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,Pd.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var Ud=j(Le=>{"use strict";var Zw=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]}),Xw=Le&&Le.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),eb=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)&&Zw(e,t,r);return Xw(e,t),e},tb=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 w=eb(Nd());Nd();var co=Rt(),rb=tb(Wy());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}}},qy=w.object({presetId:w.string().required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),minutes:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),hours:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfMonth:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),months:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfWeek:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),years:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required()}).required(),nb=t=>Fn[t]?(0,co.valid)(Fn[t]):(0,co.err)(`Option preset '${t}' not found.`);Le.getOptionPreset=nb;var ib=()=>Fn;Le.getOptionPresets=ib;var sb=(t,e)=>{Fn[t]=qy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Le.registerOptionPreset=sb;var ob=t=>{var e,r,n,i,s,o,a,u,c,l,d,f,m,p,g,y,T,_,S,x;try{(0,rb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Fn[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);E=Fn[t.preset]}else E=t.preset;else E=Fn.default;let I=Object.assign(Object.assign({presetId:E.presetId,preset:E},{useSeconds:E.useSeconds,useYears:E.useYears,useAliases:(e=E.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:E.useBlankDay,allowOnlyOneBlankDayField:E.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=E.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=E.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=E.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=E.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=E.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=E.seconds.lowerLimit)!==null&&a!==void 0?a:E.seconds.minValue,upperLimit:(u=E.seconds.upperLimit)!==null&&u!==void 0?u:E.seconds.maxValue},minutes:{lowerLimit:(c=E.minutes.lowerLimit)!==null&&c!==void 0?c:E.minutes.minValue,upperLimit:(l=E.minutes.upperLimit)!==null&&l!==void 0?l:E.minutes.maxValue},hours:{lowerLimit:(d=E.hours.lowerLimit)!==null&&d!==void 0?d:E.hours.minValue,upperLimit:(f=E.hours.upperLimit)!==null&&f!==void 0?f:E.hours.maxValue},daysOfMonth:{lowerLimit:(m=E.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:E.daysOfMonth.minValue,upperLimit:(p=E.daysOfMonth.upperLimit)!==null&&p!==void 0?p:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(y=E.months.upperLimit)!==null&&y!==void 0?y:E.months.maxValue},daysOfWeek:{lowerLimit:(T=E.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:E.daysOfWeek.minValue,upperLimit:(_=E.daysOfWeek.upperLimit)!==null&&_!==void 0?_:E.daysOfWeek.maxValue},years:{lowerLimit:(S=E.years.lowerLimit)!==null&&S!==void 0?S:E.years.minValue,upperLimit:(x=E.years.upperLimit)!==null&&x!==void 0?x:E.years.maxValue}}),t.override),b=w.object({presetId:w.string().required(),preset:qy.required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({lowerLimit:w.number().min(E.seconds.minValue).max(E.seconds.maxValue),upperLimit:w.number().min(E.seconds.minValue).max(E.seconds.maxValue)}).required(),minutes:w.object({lowerLimit:w.number().min(E.minutes.minValue).max(E.minutes.maxValue),upperLimit:w.number().min(E.minutes.minValue).max(E.minutes.maxValue)}).required(),hours:w.object({lowerLimit:w.number().min(E.hours.minValue).max(E.hours.maxValue),upperLimit:w.number().min(E.hours.minValue).max(E.hours.maxValue)}).required(),daysOfMonth:w.object({lowerLimit:w.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue),upperLimit:w.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue)}).required(),months:w.object({lowerLimit:w.number().min(E.months.minValue).max(E.months.maxValue),upperLimit:w.number().min(E.months.minValue).max(E.months.maxValue)}).required(),daysOfWeek:w.object({lowerLimit:w.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue),upperLimit:w.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue)}).required(),years:w.object({lowerLimit:w.number().min(E.years.minValue).max(E.years.maxValue),upperLimit:w.number().min(E.years.minValue).max(E.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(b)}catch(E){return(0,co.err)(E.errors)}};Le.validateOptions=ob});var qt=j((lo,Fd)=>{"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(),ab=Bn(Tg()),ub=Bn(Ag()),cb=Bn(Sg()),lb=Bn(_g()),db=Bn(Ig()),pb=Bn(Og()),fb=Bn(xg()),mb=Ud();wt();var hb=(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)},Md=(t,e={})=>{let r=(0,mb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=hb(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,ab.default)(s,n)),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)),n.useYears&&o.push((0,fb.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=Md;Fd.exports=Md;Fd.exports.default=Md});var mT=j(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});var or=class extends Error{},jd=class extends or{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Hd=class extends or{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Kd=class extends or{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},$n=class extends or{},Nu=class extends or{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends or{},Ht=class extends or{constructor(){super("Zone is an abstract class")}},v="numeric",vt="short",st="long",Pu={year:v,month:v,day:v},gE={year:v,month:vt,day:v},gb={year:v,month:vt,day:v,weekday:vt},yE={year:v,month:st,day:v},EE={year:v,month:st,day:v,weekday:st},TE={hour:v,minute:v},AE={hour:v,minute:v,second:v},SE={hour:v,minute:v,second:v,timeZoneName:vt},_E={hour:v,minute:v,second:v,timeZoneName:st},IE={hour:v,minute:v,hourCycle:"h23"},OE={hour:v,minute:v,second:v,hourCycle:"h23"},xE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:vt},RE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:st},wE={year:v,month:v,day:v,hour:v,minute:v},bE={year:v,month:v,day:v,hour:v,minute:v,second:v},DE={year:v,month:vt,day:v,hour:v,minute:v},CE={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},vE={year:v,month:st,day:v,hour:v,minute:v,timeZoneName:vt},NE={year:v,month:st,day:v,hour:v,minute:v,second:v,timeZoneName:vt},PE={year:v,month:st,day:v,weekday:st,hour:v,minute:v,timeZoneName:st},LE={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}},kd=null,Eo=class t extends Ur{static get instance(){return kd===null&&(kd=new t),kd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ME(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Cu={};function Eb(t){return Cu[t]||(Cu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Cu[t]}var Tb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Ab(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,s,o,a,u,c,l]=n;return[o,i,s,a,u,c,l]}function Sb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Tb[s];s==="era"?n[a]=o:ae(a)||(n[a]=parseInt(o,10))}return n}var Ru={},ar=class t extends Ur{static create(e){return Ru[e]||(Ru[e]=new t(e)),Ru[e]}static resetCache(){Ru={},Cu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ME(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=Eb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Sb(n,r):Ab(n,r);a==="BC"&&(i=-Math.abs(i)+1);let f=op({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,p=m%1e3;return m-=p>=0?p:1e3+p,(f-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Qy={};function _b(t,e={}){let r=JSON.stringify([t,e]),n=Qy[r];return n||(n=new Intl.ListFormat(t,e),Qy[r]=n),n}var Yd={};function Jd(t,e={}){let r=JSON.stringify([t,e]),n=Yd[r];return n||(n=new Intl.DateTimeFormat(t,e),Yd[r]=n),n}var zd={};function Ib(t,e={}){let r=JSON.stringify([t,e]),n=zd[r];return n||(n=new Intl.NumberFormat(t,e),zd[r]=n),n}var Zd={};function Ob(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Zd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Zd[i]=s),s}var ho=null;function xb(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function Rb(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=Jd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Jd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function wb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function bb(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function Db(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function wu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Cb(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var Xd=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=Ib(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):sp(e,3);return Re(r,this.padTo)}}},ep=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ar.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Jd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},tp=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&UE()&&(this.rtf=Ob(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):jb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Se=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||Ee.defaultLocale,o=s||(i?"en-US":xb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Yd={},zd={},Zd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Rb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=wb(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Cb(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return wu(this,e,n,BE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=bb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return wu(this,e,n,$E,()=>{let i=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=r?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=Db(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return wu(this,void 0,e,()=>WE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return wu(this,e,r,qE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Xd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new ep(e,this.intl,r)}relFormatter(e={}){return new tp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return _b(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},Bd=null,ot=class t extends Ur{static get utcInstance(){return Bd===null&&(Bd=new t(0)),Bd}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Bu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Lu=class extends 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(vb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?ot.utcInstance:ot.parseSpecifier(r)||ar.create(t)}else return qn(t)?ot.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Lu(t)}var jy=()=>Date.now(),Hy="system",Ky=null,Yy=null,Jy=null,zy=60,Zy,Ee=class{static get now(){return jy}static set now(e){jy=e}static set defaultZone(e){Hy=e}static get defaultZone(){return Lr(Hy,Eo.instance)}static get defaultLocale(){return Ky}static set defaultLocale(e){Ky=e}static get defaultNumberingSystem(){return Yy}static set defaultNumberingSystem(e){Yy=e}static get defaultOutputCalendar(){return Jy}static set defaultOutputCalendar(e){Jy=e}static get twoDigitCutoffYear(){return zy}static set twoDigitCutoffYear(e){zy=e%100}static get throwOnInvalid(){return Zy}static set throwOnInvalid(e){Zy=e}static resetCaches(){Se.resetCache(),ar.resetCache()}};function ae(t){return typeof t>"u"}function qn(t){return typeof t=="number"}function ku(t){return typeof t=="number"&&t%1===0}function vb(t){return typeof t=="string"}function Nb(t){return Object.prototype.toString.call(t)==="[object Date]"}function UE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Pb(t){return Array.isArray(t)?t:[t]}function Xy(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function Lb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Vi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function sr(t,e,r){return ku(t)&&t>=e&&t<=r}function Ub(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 ip(t){if(!(ae(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function sp(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Uu(t,e){let r=Ub(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function op(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function Mu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function rp(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function ME(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Bu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function FE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function Fu(t,e){let r={};for(let n in t)if(Vi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=FE(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Gu(t){return Lb(t,["hour","minute","second","millisecond"])}var Mb=["January","February","March","April","May","June","July","August","September","October","November","December"],kE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Fb=["J","F","M","A","M","J","J","A","S","O","N","D"];function BE(t){switch(t){case"narrow":return[...Fb];case"short":return[...kE];case"long":return[...Mb];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var GE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],VE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],kb=["M","T","W","T","F","S","S"];function $E(t){switch(t){case"narrow":return[...kb];case"short":return[...VE];case"long":return[...GE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var WE=["AM","PM"],Bb=["Before Christ","Anno Domini"],Gb=["BC","AD"],Vb=["B","A"];function qE(t){switch(t){case"narrow":return[...Vb];case"short":return[...Gb];case"long":return[...Bb];default:return null}}function $b(t){return WE[t.hour<12?0:1]}function Wb(t,e){return $E(e)[t.weekday-1]}function qb(t,e){return BE(e)[t.month-1]}function Qb(t,e){return qE(e)[t.year<0?0:1]}function jb(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function eE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Hb={D:Pu,DD:gE,DDD:yE,DDDD:EE,t:TE,tt:AE,ttt:SE,tttt:_E,T:IE,TT:OE,TTT:xE,TTTT:RE,f:wE,ff:DE,fff:vE,ffff:PE,F:bE,FF:CE,FFF:NE,FFFF:LE},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 Hb[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(m,p)=>this.loc.extract(e,m,p),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?$b(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,p)=>n?qb(e,m):s(p?{month:m}:{month:m,day:"numeric"},"month"),c=(m,p)=>n?Wb(e,m):s(p?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let p=t.macroTokenToFormatOpts(m);return p?this.formatWithSystemDefault(e,p):m},d=m=>n?Qb(e,m):s({era:m},"era"),f=m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(m)}};return eE(t.parseFormat(r),f)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return eE(s,i(a))}},it=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},QE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $i(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function 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 jE(...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 HE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Kb=`(?:${HE.source}?(?:\\[(${QE.source})\\])?)?`,ap=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,KE=RegExp(`${ap.source}${Kb}`),up=RegExp(`(?:T${KE.source})?`),Yb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Jb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,zb=/(\d{4})-?(\d{3})/,Zb=jE("weekYear","weekNumber","weekDay"),Xb=jE("year","ordinal"),eD=/(\d{4})-(\d\d)-(\d\d)/,YE=RegExp(`${ap.source} ?(?:${HE.source}|(${QE.source}))?`),tD=RegExp(`(?: ${YE.source})?`);function Gi(t,e,r){let n=t[e];return ae(n)?r:Pr(n)}function rD(t,e){return[{year:Gi(t,e),month:Gi(t,e+1,1),day:Gi(t,e+2,1)},null,e+3]}function Qi(t,e){return[{hours:Gi(t,e,0),minutes:Gi(t,e+1,0),seconds:Gi(t,e+2,0),milliseconds:ip(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Bu(t[e+1],t[e+2]),i=r?null:ot.instance(n);return[{},i,e+3]}function So(t,e){let r=t[e]?ar.create(t[e]):null;return[{},r,e+1]}var nD=RegExp(`^T?${ap.source}$`),iD=/^-?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 sD(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",f=(m,p=!1)=>m!==void 0&&(p||m&&l)?-m:m;return[{years:f(Gn(r)),months:f(Gn(n)),weeks:f(Gn(i)),days:f(Gn(s)),hours:f(Gn(o)),minutes:f(Gn(a)),seconds:f(Gn(u),u==="-0"),milliseconds:f(ip(c),d)}]}var oD={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function cp(t,e,r,n,i,s,o){let a={year:e.length===2?rp(Pr(e)):Pr(e),month:kE.indexOf(r)+1,day:Pr(n),hour:Pr(i),minute:Pr(s)};return o&&(a.second=Pr(o)),t&&(a.weekday=t.length>3?GE.indexOf(t)+1:VE.indexOf(t)+1),a}var aD=/^(?:(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 uD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,f=cp(e,i,n,r,s,o,a),m;return u?m=oD[u]:c?m=0:m=Bu(l,d),[f,new ot(m)]}function cD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var lD=/^(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$/,dD=/^(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$/,pD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function tE(t){let[,e,r,n,i,s,o,a]=t;return[cp(e,i,n,r,s,o,a),ot.utcInstance]}function fD(t){let[,e,r,n,i,s,o,a]=t;return[cp(e,a,r,n,i,s,o),ot.utcInstance]}var mD=$i(Yb,up),hD=$i(Jb,up),gD=$i(zb,up),yD=$i(KE),JE=Wi(rD,Qi,Ao,So),ED=Wi(Zb,Qi,Ao,So),TD=Wi(Xb,Qi,Ao,So),AD=Wi(Qi,Ao,So);function SD(t){return qi(t,[mD,JE],[hD,ED],[gD,TD],[yD,AD])}function _D(t){return qi(cD(t),[aD,uD])}function ID(t){return qi(t,[lD,tE],[dD,tE],[pD,fD])}function OD(t){return qi(t,[iD,sD])}var xD=Wi(Qi);function RD(t){return qi(t,[nD,xD])}var wD=$i(eD,tD),bD=$i(YE),DD=Wi(Qi,Ao,So);function CD(t){return qi(t,[wD,JE],[bD,DD])}var vD="Invalid Duration",zE={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},ND={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...zE},ht=146097/400,ki=146097/4800,PD={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},...zE},Vn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],LD=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 UD(t){return t<0?Math.floor(t):Math.ceil(t)}function ZE(t,e,r,n,i){let s=t[i][r],o=e[r]/s,a=Math.sign(o)===Math.sign(n[i]),u=!a&&n[i]!==0&&Math.abs(o)<=1?UD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function MD(t,e){LD.reduce((r,n)=>ae(e[n])?r:(r&&ZE(t,e,r,e,n),n),null)}function FD(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?PD:ND;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Ye(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Fu(e,t.normalizeUnit),loc:Se.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(qn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ye(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=OD(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]=RD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the Duration is invalid");let n=e instanceof it?e:new it(e,r);if(Ee.throwOnInvalid)throw new Kd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Nu(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?nt.create(this.loc,n).formatDurationFromString(this,e):vD}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+=sp(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of 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]=FE(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,...Fu(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 MD(this.matrix,e),Nr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=FD(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)&&ZE(this.matrix,i,c,r,o)}else qn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return 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 kD(t,e){return!t||!t.isValid?Qn.invalid("missing or invalid start"):!e||!e.isValid?Qn.invalid("missing or invalid end"):e<t?Qn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var Qn=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the Interval is invalid");let n=e instanceof it?e:new it(e,r);if(Ee.throwOnInvalid)throw new Hd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=kD(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=Pu,r={}){return this.isValid?nt.create(this.s.loc.clone(r),e).formatInterval(this):Bi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Bi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Bi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Bi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Bi}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):Ce.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Wn=class{static hasDST(e=Ee.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ar.isValidZone(e)}static normalizeZone(e){return Lr(e,Ee.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:UE()}}};function rE(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(Ce.fromMillis(n).as("days"))}function BD(t,e,r){let n=[["years",(u,c)=>c.year-u.year],["quarters",(u,c)=>c.quarter-u.quarter+(c.year-u.year)*4],["months",(u,c)=>c.month-u.month+(c.year-u.year)*12],["weeks",(u,c)=>{let l=rE(u,c);return(l-l%7)/7}],["days",rE]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function GD(t,e,r,n){let[i,s,o,a]=BD(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 lp={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},nE={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},VD=lp.hanidec.replace(/[\[|\]]/g,"").split("");function $D(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(lp.hanidec)!==-1)e+=VD.indexOf(t[r]);else for(let i in nE){let[s,o]=nE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function Dt({numberingSystem:t},e=""){return new RegExp(`${lp[t||"latn"]}${e}`)}var WD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e($D(r))}}var qD=String.fromCharCode(160),XE=`[ ${qD}]`,eT=new RegExp(XE,"g");function QD(t){return t.replace(/\./g,"\\.?").replace(eT,XE)}function iE(t){return t.replace(/\./g,"").replace(eT," ").toLowerCase()}function Ct(t,e){return t===null?null:{regex:RegExp(t.map(QD).join("|")),deser:([r])=>t.findIndex(n=>iE(r)===iE(n))+e}}function sE(t,e){return{regex:t,deser:([,r,n])=>Bu(r,n),groups:e}}function Gd(t){return{regex:t,deser:([e])=>e}}function jD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function HD(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}"),f=Dt(e,"{4,6}"),m=y=>({regex:RegExp(jD(y.val)),deser:([T])=>T,literal:!0}),g=(y=>{if(t.literal)return m(y);switch(y.val){case"G":return Ct(e.eras("short",!1),0);case"GG":return Ct(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(d,rp);case"yyyy":return le(s);case"yyyyy":return le(f);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return Ct(e.months("short",!0,!1),1);case"MMMM":return Ct(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return Ct(e.months("short",!1,!1),1);case"LLLL":return Ct(e.months("long",!1,!1),1);case"d":return le(a);case"dd":return le(n);case"o":return le(u);case"ooo":return le(i);case"HH":return le(n);case"H":return le(a);case"hh":return le(n);case"h":return le(a);case"mm":return le(n);case"m":return le(a);case"q":return le(a);case"qq":return le(n);case"s":return le(a);case"ss":return le(n);case"S":return le(u);case"SSS":return le(i);case"u":return Gd(l);case"uu":return Gd(a);case"uuu":return le(r);case"a":return Ct(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(d,rp);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return Ct(e.weekdays("short",!1,!1),1);case"EEEE":return Ct(e.weekdays("long",!1,!1),1);case"ccc":return Ct(e.weekdays("short",!0,!1),1);case"cccc":return Ct(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return sE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return sE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Gd(/[a-z_+-/]{1,256}?/i);default:return m(y)}})(t)||{invalidReason:WD};return g.token=t,g}var KD={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function YD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=KD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function JD(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 ZD(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=ar.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=ip(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Vd=null;function XD(){return Vd||(Vd=_e.fromMillis(1555555555555)),Vd}function eC(t,e){if(t.literal)return t;let r=nt.macroTokenToFormatOpts(t.val),n=nT(r,e);return n==null||n.includes(void 0)?t:n}function tT(t,e){return Array.prototype.concat(...t.map(r=>eC(r,e)))}function rT(t,e,r){let n=tT(nt.parseFormat(r),t),i=n.map(o=>HD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=JD(i),u=RegExp(o,"i"),[c,l]=zD(e,u,a),[d,f,m]=l?ZD(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:f,specificOffset:m}}}function tC(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=rT(t,e,r);return[n,i,s,o]}function nT(t,e){return t?nt.create(e,t).formatDateTimeParts(XD()).map(i=>YD(i,t)):null}var iT=[0,31,59,90,120,151,181,212,243,273,304,334],sT=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new it("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function oT(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}function aT(t,e,r){return r+(To(t)?sT:iT)[e-1]}function uT(t,e){let r=To(t)?sT:iT,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function np(t){let{year:e,month:r,day:n}=t,i=aT(e,r,n),s=oT(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Mu(a)):o>Mu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Gu(t)}}function oE(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=oT(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=uT(a,o);return{year:a,month:u,day:c,...Gu(t)}}function $d(t){let{year:e,month:r,day:n}=t,i=aT(e,r,n);return{year:e,ordinal:i,...Gu(t)}}function aE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=uT(e,r);return{year:e,month:n,day:i,...Gu(t)}}function rC(t){let e=ku(t.weekYear),r=sr(t.weekNumber,1,Mu(t.weekYear)),n=sr(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function nC(t){let e=ku(t.year),r=sr(t.ordinal,1,go(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function cT(t){let e=ku(t.year),r=sr(t.month,1,12),n=sr(t.day,1,Uu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function lT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=sr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=sr(r,0,59),a=sr(n,0,59),u=sr(i,0,999);return s?o?a?u?!1:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}var Wd="Invalid DateTime",uE=864e13;function bu(t){return new it("unsupported zone",`the zone "${t.name}" is not supported`)}function qd(t){return t.weekData===null&&(t.weekData=np(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function dT(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function cE(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function vu(t,e,r){return dT(op(t),e,r)}function lE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Uu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=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=op(s),[u,c]=dT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new it("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Du(t,e,r=!0){return t.isValid?nt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Qd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function dE(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var pT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},iC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},sC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},fT=["year","month","day","hour","minute","second","millisecond"],oC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],aC=["year","ordinal","hour","minute","second","millisecond"];function pE(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Nu(t);return e}function fE(t,e){let r=Lr(e.zone,Ee.defaultZone),n=Se.fromObject(e),i=Ee.now(),s,o;if(ae(t.year))s=i;else{for(let c of fT)ae(t[c])&&(t[c]=pT[c]);let a=cT(t)||lT(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=vu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function mE(t,e,r){let n=ae(r.round)?!0:r.round,i=(o,a)=>(o=sp(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function hE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new it("invalid input"):null)||(r.isValid?null:bu(r));this.ts=ae(e.ts)?Ee.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=cE(this.ts,a),n=Number.isNaN(i.year)?new 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]=hE(arguments),[n,i,s,o,a,u,c]=r;return fE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=hE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=ot.utcInstance,fE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Nb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Lr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Se.fromObject(r)}):t.invalid(bu(i))}static fromMillis(e,r={}){if(qn(e))return e<-uE||e>uE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Lr(r.zone,Ee.defaultZone),loc:Se.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(qn(e))return new t({ts:e*1e3,zone:Lr(r.zone,Ee.defaultZone),loc:Se.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Lr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(bu(n));let i=Ee.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Fu(e,pE),a=!ae(o.ordinal),u=!ae(o.year),c=!ae(o.month)||!ae(o.day),l=u||c,d=o.weekYear||o.weekNumber,f=Se.fromObject(r);if((l||a)&&d)throw new $n("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new $n("Can't mix ordinal dates with month/day");let m=d||o.weekday&&!l,p,g,y=cE(i,s);m?(p=oC,g=iC,y=np(y)):a?(p=aC,g=sC,y=$d(y)):(p=fT,g=pT);let T=!1;for(let b of p){let B=o[b];ae(B)?T?o[b]=g[b]:o[b]=y[b]:T=!0}let _=m?rC(o):a?nC(o):cT(o),S=_||lT(o);if(S)return t.invalid(S);let x=m?oE(o):a?aE(o):o,[E,I]=vu(x,s,n),k=new t({ts:E,zone:n,o:I,loc:f});return o.weekday&&l&&e.weekday!==k.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${k.toISO()}`):k}static fromISO(e,r={}){let[n,i]=SD(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=_D(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=ID(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]=tC(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]=CD(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(Ee.throwOnInvalid)throw new jd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=nT(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return tT(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?$d(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 Uu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?Mu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=nt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(ot.instance(e),r)}toLocal(){return this.setZone(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Lr(e,Ee.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=vu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(bu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Fu(e,pE),n=!ae(r.weekYear)||!ae(r.weekNumber)||!ae(r.weekday),i=!ae(r.ordinal),s=!ae(r.year),o=!ae(r.month)||!ae(r.day),a=s||o,u=r.weekYear||r.weekNumber;if((a||i)&&u)throw new $n("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new $n("Can't mix ordinal dates with month/day");let c;n?c=oE({...np(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(Uu(c.year,c.month),c.day))):c=aE({...$d(this.c),...r});let[l,d]=vu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e);return po(this,lE(this,r))}minus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e).negate();return po(this,lE(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):Wd}toLocaleString(e=Pu,r={}){return this.isValid?nt.create(this.loc.clone(r),e).formatDateTime(this):Wd}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=Qd(this,o);return a+="T",a+=dE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Qd(this,e==="extended"):null}toISOWeekDate(){return Du(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+dE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Du(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Du(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Qd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Du(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Wd}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=Pb(r).map(Ce.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=GD(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),mE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?mE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new Ye("min requires all arguments be DateTimes");return Xy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return Xy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return rT(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Pu}static get DATE_MED(){return gE}static get DATE_MED_WITH_WEEKDAY(){return gb}static get DATE_FULL(){return yE}static get DATE_HUGE(){return EE}static get TIME_SIMPLE(){return TE}static get TIME_WITH_SECONDS(){return AE}static get TIME_WITH_SHORT_OFFSET(){return SE}static get TIME_WITH_LONG_OFFSET(){return _E}static get TIME_24_SIMPLE(){return IE}static get TIME_24_WITH_SECONDS(){return OE}static get TIME_24_WITH_SHORT_OFFSET(){return xE}static get TIME_24_WITH_LONG_OFFSET(){return RE}static get DATETIME_SHORT(){return wE}static get DATETIME_SHORT_WITH_SECONDS(){return bE}static get DATETIME_MED(){return DE}static get DATETIME_MED_WITH_SECONDS(){return CE}static get DATETIME_MED_WITH_WEEKDAY(){return yb}static get DATETIME_FULL(){return vE}static get DATETIME_FULL_WITH_SECONDS(){return NE}static get DATETIME_HUGE(){return PE}static get DATETIME_HUGE_WITH_SECONDS(){return LE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&qn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var uC="3.2.1";at.DateTime=_e;at.Duration=Ce;at.FixedOffsetZone=ot;at.IANAZone=ar;at.Info=Wn;at.Interval=Qn;at.InvalidZone=Lu;at.Settings=Ee;at.SystemZone=Eo;at.VERSION=uC;at.Zone=Ur});var gT=j((sj,hT)=>{"use strict";var jn=mT();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};z.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=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))}hT.exports=z});var TT=j((oj,ET)=>{"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 dp(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 cC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(dp(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)):(dp(e,r),r=Hn(i)):r=Hn(i)}return dp(e,r),e}ET.exports=cC});var ST=j((aj,AT)=>{"use strict";var lC=TT();function dC(t,e,r){var n=lC(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(f,m){var p=c.start+m;return(p-c.start)%c.step===0?p:null}).filter(function(f){return f!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}AT.exports=dC});var OT=j((uj,IT)=>{"use strict";var Kn=gT(),pC=ST(),_T=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new 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(p){if(p instanceof Array)for(var g=0,y=p.length;g<y;g++){var T=p[g];if(U._isValidConstraintChar(n,T)){c.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);c.push(T)}else{if(U._isValidConstraintChar(n,p)){c.push(p);return}var _=+p;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+p+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}var d=u.split(",");if(!d.every(function(p){return p.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var f=0,m=d.length;f<m;f++)l(o(d[f]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var f=+d[0],m=+d[1];if(Number.isNaN(f)||Number.isNaN(m)||f<n.min||m>n.max)throw new Error("Constraint error, got range "+f+"-"+m+" expected range "+n.min+"-"+n.max);if(f>m)throw new Error("Invalid range: "+u);var p=+c;if(Number.isNaN(p)||p<=0)throw new Error("Constraint error, cannot repeat at every "+p+" time.");e==="dayOfWeek"&&m%7===0&&l.push(0);for(var g=f,y=m;g<=y;g++){var T=l.indexOf(g)!==-1;!T&&p>0&&p%c===0?(p=1,l.push(g)):p++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(T,_){for(var S=0,x=_.length;S<x;S++)if(_[S]>=T)return _[S]===T;return _[0]===T}function n(T,_){if(_<6){if(T.getDate()<8&&_===1)return!0;var S=T.getDate()%7?1:0,x=T.getDate()-T.getDate()%7,E=Math.floor(x/7)+S;return E===_}return!1}function i(T){return T.length>0&&T.some(function(_){return typeof _=="string"&&_.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new 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<_T;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var f=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(f=f||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||d(this.fields.dayOfWeek));var p=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,y=o.getHours();if(!f&&(!m||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!p&&g&&!f){this._applyTimezoneShift(o,s,"Day");continue}if(p&&!g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(y,this.fields.hour)){if(this._dstEnd===y&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==y){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(y-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=_T)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new 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(pC(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 f=U.map[l],m=u[u.length>d?l:l-c];if(l<c||!m)a.push(U._parseField(f,U.parseDefaults[l],U.constraints[l]));else{var p=f==="dayOfWeek"?_(m):m;a.push(U._parseField(f,p,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;l++){var y=U.map[l];g[y]=a[l]}var T=U._handleMaxDaysInMonth(g);return g.dayOfMonth=T||g.dayOfMonth,new U(g,o);function _(S){var x=S.split("#");if(x.length>1){var E=+x[x.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(x.length>2||Number.isNaN(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,x[0]}return S}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(f,m,p){if(!m)throw new Error("Validation error, Field "+f+" is missing");if(m.length===0)throw new Error("Validation error, Field "+f+" contains no values");for(var g=0,y=m.length;g<y;g++){var T=m[g];if(!U._isValidConstraintChar(p,T)&&(typeof T!="number"||Number.isNaN(T)||T<p.min||T>p.max))throw new Error("Constraint error, got value "+T+" expected range "+p.min+"-"+p.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(f,m,p){return!m||f!==p[m-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};IT.exports=U});var RT=j((cj,xT)=>{"use strict";var Vu=OT();function Mr(){}Mr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Vu.parse(e)};if(r.length>6)return{interval:Vu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Mr.parseExpression=function(e,r){return Vu.parse(e,r)};Mr.fieldsToExpression=function(e,r){return Vu.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()))})};xT.exports=Mr});var tB={};P(tB,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Yu,BUDIBASE_DATASOURCE_TYPE:()=>Pp,BadRequestError:()=>Pc,BudibaseError:()=>ps,Config:()=>Bp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Up,DEFAULT_JOBS_TABLE_ID:()=>Lp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Ki,DesignDocuments:()=>xo,DocumentType:()=>ye,Duration:()=>De,DurationType:()=>am,EmailUnavailableError:()=>hr,Endpoint:()=>Pl,EndpointGroup:()=>Ai,EndpointGroupList:()=>Ga,FeatureDisabledError:()=>Fc,ForbiddenError:()=>Lc,GlobalRole:()=>kp,HTTPError:()=>Ge,Header:()=>tt,InternalTable:()=>xr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Zu,MIN_VALID_DATE:()=>$T,NotFoundError:()=>Nc,NotImplementedError:()=>Uc,RedisClient:()=>Qe,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,UnexpectedError:()=>vc,UsageLimitError:()=>Mc,UserStatus:()=>zu,ViewName:()=>Br,accounts:()=>di,auth:()=>_h,blacklist:()=>Rh,cache:()=>ba,configs:()=>nn,constants:()=>Gp,context:()=>Ae,csv:()=>kh,db:()=>Hr,docIds:()=>vf,docUpdates:()=>bh,encryption:()=>Th,env:()=>h,errors:()=>Bc,events:()=>ys,features:()=>lh,getPublicError:()=>kc,init:()=>eB,installation:()=>Jc,locks:()=>_s,logging:()=>ua,middleware:()=>Sh,objectStore:()=>Hf,permissions:()=>ah,platform:()=>Yo,plugins:()=>Oh,queue:()=>Em,redis:()=>xh,roles:()=>oh,security:()=>Um,sessions:()=>rl,setEnv:()=>Do,sql:()=>Fh,tenancy:()=>Xk,timers:()=>Hc,userUtils:()=>dm,users:()=>Es,utils:()=>ls,withEnv:()=>KT});module.exports=zI(tB);var nn={};P(nn,{analyticsEnabled:()=>Qc,generateConfigID:()=>al,getAIConfig:()=>gF,getConfig:()=>_t,getDefaultGoogleConfig:()=>jm,getGoogleConfig:()=>ul,getGoogleDatasourceConfig:()=>Ym,getOIDCConfig:()=>fF,getOIDCConfigById:()=>Jm,getOIDCLogosDoc:()=>dF,getPlatformUrl:()=>La,getRecaptchaConfig:()=>yF,getSCIMConfig:()=>hF,getSMTPConfig:()=>mF,getSMTPConfigDoc:()=>W_,getSettingsConfig:()=>Km,getSettingsConfigDoc:()=>Zc,save:()=>cF});var ZI=["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"],XI=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Vh=[...ZI,...XI],$h={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"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 Ll=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ll||{}),Ul=(f=>(f.STRING="string",f.CODE="code",f.LONGFORM="longForm",f.BOOLEAN="boolean",f.NUMBER="number",f.PASSWORD="password",f.LIST="list",f.OBJECT="object",f.JSON="json",f.FILE="file",f.FIELD_GROUP="fieldGroup",f.SELECT="select",f))(Ul||{}),Wa=(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))(Wa||{});var Ml=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Ml||{});var eO=W(require("lodash")),Ir=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Ir||{}),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 Wh(t){return Object.values(Ir).includes(t)}function qh(t){return Object.values(zt).includes(t)}function Qa(t){return Object.values(fn).includes(t)}var _i=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(_i||{});var Qh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var jh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACES:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var iG={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var ja=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(ja||{});var Ha=t=>t.hosting==="cloud";var Ka=t=>t.authType==="sso";var C="_",Ve="\uFFF0",Or=t=>`${t}${C}`,ye=(J=>(J.USER="us",J.GROUP="gr",J.WORKSPACE="workspace",J.CONFIG="config",J.TEMPLATE="template",J.APP="app",J.DEV="dev",J.APP_DEV="app_dev",J.APP_METADATA="app_metadata",J.ROLE="role",J.DEV_INFO="devinfo",J.AUTOMATION_LOG="log_au",J.ACCOUNT_METADATA="acc_metadata",J.PLUGIN="plg",J.DATASOURCE="datasource",J.DATASOURCE_PLUS="datasource_plus",J.APP_BACKUP="backup",J.TABLE="ta",J.ROW="ro",J.AUTOMATION="au",J.LINK="li",J.WEBHOOK="wh",J.INSTANCE="inst",J.LAYOUT="layout",J.SCREEN="screen",J.QUERY="query",J.DEPLOYMENTS="deployments",J.METADATA="metadata",J.MEM_VIEW="view",J.USER_FLAG="flag",J.AUTOMATION_METADATA="meta_au",J.AUDIT_LOG="al",J.SCIM_LOG="scimlog",J.ROW_ACTIONS="ra",J.OAUTH2_CONFIG="oauth2",J.OAUTH2_CONFIG_LOG="oauth2log",J.AGENT_CHAT="agentchat",J.AGENT_TOOL_SOURCE="agenttoolsource",J.WORKSPACE_APP="workspace_app",J.WORKSPACE_FAVOURITE="workspace_favourite",J))(ye||{});var xr=(e=>(e.USER_METADATA="ta_users",e))(xr||{}),Fl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Fl||{});var Z=(l=>(l.OBJECT="object",l.STRING="string",l.BOOLEAN="boolean",l.NUMBER="number",l.ARRAY="array",l.JSON="json",l.DATE="date",l.DATETIME="datetime",l.ATTACHMENT="attachment",l.LONGFORM="longform",l))(Z||{}),pe=(x=>(x.TABLE="table",x.ROW="row",x.ROWS="rows",x.WIDE="wide",x.QUERY="query",x.QUERY_PARAMS="queryParams",x.QUERY_LIMIT="queryLimit",x.LOOP_OPTION="loopOption",x.ITEM="item",x.CODE="code",x.FILTERS="filters",x.COLUMN="column",x.TRIGGER_SCHEMA="triggerSchema",x.CRON="cron",x.WEBHOOK_URL="webhookUrl",x.AUTOMATION="automation",x.AUTOMATION_FIELDS="automationFields",x.MULTI_ATTACHMENTS="multi_attachments",x.TRIGGER_FILTER="trigger_filter",x.CATEGORIES="categories",x))(pe||{}),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||{}),Hh=[...Object.values(ne),...Object.values(Ot)];var kl=(a=>(a.EMAIL="email",a.DOCUMENT="document",a.BLOG_POST="blog_post",a.CHAT_MESSAGE="chat_message",a.LETTER="letter",a.PROPOSAL="proposal",a.OTHER="other",a))(kl||{}),Kh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Bl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Bl||{}),Gl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Gl||{});function Yh(t){return t.stepId==="BRANCH"}var Vl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Vl||{});var $l=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))($l||{});var Wl="bb_internal";var Jh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Ya(t){return!!t.providerType}var ql=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(ql||{});var l$=Object.values(ql);var h$=["rows","queries","automations"],g$=["queries","automations"];var se;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(se||(se={}));var jl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(jl||(jl={}));var M=se.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),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"]),iO=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}},Xh=xi;function sO(t){Xh=t}function Ja(){return Xh}var za=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},oO=[];function L(t,e){let r=Ja(),n=za({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===xi?void 0:xi].filter(i=>!!i)});t.common.issues.push(n)}var Be=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return 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}),Hl=t=>t.status==="aborted",Kl=t=>t.status==="dirty",Cs=t=>t.status==="valid",vs=t=>typeof Promise<"u"&&t instanceof Promise;function Za(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function eg(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var bs,Ds,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 er.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}},aO=/^c[^\s-]{8,}$/i,uO=/^[0-9a-z]+$/,cO=/^[0-9A-HJKMNP-TV-Z]{26}$/,lO=/^[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,dO=/^[a-z0-9_-]{21}$/i,pO=/^[-+]?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)?)??$/,fO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,mO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ql,hO=/^(?:(?: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])$/,gO=/^(([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}=))?$/,tg="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",EO=new RegExp(`^${tg}$`);function rg(t){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`),e}function TO(t){return new RegExp(`^${rg(t)}$`)}function ng(t){let e=`${tg}T${rg(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function AO(t,e){return!!((e==="v4"||!e)&&hO.test(t)||(e==="v6"||!e)&&gO.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")fO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"email",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ql||(Ql=new RegExp(mO,"u")),Ql.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"emoji",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")lO.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")dO.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")aO.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")uO.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")cO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"ulid",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),L(i,{validation:"url",code:R.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"regex",code:R.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?ng(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?EO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?TO(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"?pO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"duration",code:R.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?AO(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 SO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var hn=class t extends 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"?SO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),L(n,{code:R.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:R.not_finite,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&se.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};hn.create=t=>new hn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...X(t)});var gn=class t extends ee{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_type,expected:M.bigint,received:s.parsedType}),Y}let n,i=new Be;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),L(n,{code:R.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),L(n,{code:R.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),L(n,{code:R.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};gn.create=t=>{var e;return new gn({checks:[],typeName:H.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...X(t)})};var yn=class extends ee{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.boolean,received:n.parsedType}),Y}return $e(e.data)}};yn.create=t=>new yn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...X(t)});var En=class t extends ee{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_type,expected:M.date,received:s.parsedType}),Y}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_date}),Y}let n=new Be,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:R.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:R.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):se.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};En.create=t=>new En({checks:[],coerce:t?.coerce||!1,typeName:H.ZodDate,...X(t)});var Ri=class extends ee{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.symbol,received:n.parsedType}),Y}return $e(e.data)}};Ri.create=t=>new Ri({typeName:H.ZodSymbol,...X(t)});var Tn=class extends ee{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.undefined,received:n.parsedType}),Y}return $e(e.data)}};Tn.create=t=>new Tn({typeName:H.ZodUndefined,...X(t)});var An=class extends ee{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.null,received:n.parsedType}),Y}return $e(e.data)}};An.create=t=>new An({typeName:H.ZodNull,...X(t)});var 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 Xt=class extends ee{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};Xt.create=t=>new Xt({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 er=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)}};er.create=(t,e)=>new er({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 er?new er({...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,f=await l.value;c.push({key:d,value:f,alwaysSet:l.alwaysSet})}return c}).then(c=>Be.mergeObjectSync(n,c)):Be.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName: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 ig(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 Zt=t=>t instanceof In?Zt(t.schema):t instanceof et?Zt(t.innerType()):t instanceof On?[t.value]:t instanceof xn?t.options:t instanceof Rn?se.objectValues(t.enum):t instanceof wn?Zt(t._def.innerType):t instanceof Tn?[void 0]:t instanceof An?[null]:t instanceof pt?[void 0,...Zt(t.unwrap())]:t instanceof Wt?[null,...Zt(t.unwrap())]:t instanceof Ns||t instanceof Dn?Zt(t.unwrap()):t instanceof bn?Zt(t._def.innerType):[],Xa=class t extends ee{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return L(r,{code:R.invalid_type,expected:M.object,received:r.parsedType}),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=Zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...X(n)})}};function Yl(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=Yl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Yl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _n=class extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Hl(s)||Hl(o))return Y;let a=Yl(s.value,o.value);return a.valid?((Kl(s)||Kl(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 eu=class t extends ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return L(n,{code:R.invalid_type,expected:M.object,received:n.parsedType}),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 tu=class t extends ee{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return L(r,{code:R.invalid_type,expected:M.function,received:r.parsedType}),Y;function n(a,u){return za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ja(),xi].filter(c=>!!c),issueData:{code:R.invalid_arguments,argumentsError:u}})}function i(a,u){return za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ja(),xi].filter(c=>!!c),issueData:{code:R.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof 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(Xt.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(Xt.create()),returns:r||Xt.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 ig(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(Za(this,bs,"f")||eg(this,bs,new Set(this._def.values),"f"),!Za(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return 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=ig;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(Za(this,Ds,"f")||eg(this,Ds,new Set(se.getValidEnumValues(this._def.values)),"f"),!Za(this,Ds,"f").has(e.data)){let i=se.objectValues(r);return 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 _O=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 sg(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 IO={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 OO=(t,e={message:`Input not instance of ${t.name}`})=>sg(r=>r instanceof t,e),og=wr.create,ag=hn.create,xO=Ci.create,RO=gn.create,ug=yn.create,wO=En.create,bO=Ri.create,DO=Tn.create,CO=An.create,vO=br.create,NO=Xt.create,PO=xt.create,LO=wi.create,UO=er.create,MO=He.create,FO=He.strictCreate,kO=Sn.create,BO=Xa.create,GO=_n.create,VO=$t.create,$O=eu.create,WO=bi.create,qO=Di.create,QO=tu.create,jO=In.create,HO=On.create,KO=xn.create,YO=Rn.create,JO=Dr.create,Zh=et.create,zO=pt.create,ZO=Wt.create,XO=et.createWithPreprocess,ex=Ps.create,tx=()=>og().optional(),rx=()=>ag().optional(),nx=()=>ug().optional(),ix={string:t=>wr.create({...t,coerce:!0}),number:t=>hn.create({...t,coerce:!0}),boolean:t=>yn.create({...t,coerce:!0}),bigint:t=>gn.create({...t,coerce:!0}),date:t=>En.create({...t,coerce:!0})},sx=Y,re=Object.freeze({__proto__:null,defaultErrorMap:xi,setErrorMap:sO,getErrorMap:Ja,makeIssue:za,EMPTY_PATH:oO,addIssueToContext:L,ParseStatus:Be,INVALID:Y,DIRTY:Oi,OK:$e,isAborted:Hl,isDirty:Kl,isValid:Cs,isAsync:vs,get util(){return se},get objectUtil(){return jl},ZodParsedType:M,getParsedType:Rr,ZodType:ee,datetimeRegex:ng,ZodString:wr,ZodNumber:hn,ZodBigInt:gn,ZodBoolean:yn,ZodDate:En,ZodSymbol:Ri,ZodUndefined:Tn,ZodNull:An,ZodAny:br,ZodUnknown:Xt,ZodNever:xt,ZodVoid:wi,ZodArray:er,ZodObject:He,ZodUnion:Sn,ZodDiscriminatedUnion:Xa,ZodIntersection:_n,ZodTuple:$t,ZodRecord:eu,ZodMap:bi,ZodSet:Di,ZodFunction:tu,ZodLazy:In,ZodLiteral:On,ZodEnum:xn,ZodNativeEnum:Rn,ZodPromise:Dr,ZodEffects:et,ZodTransformer:et,ZodOptional:pt,ZodNullable:Wt,ZodDefault:wn,ZodCatch:bn,ZodNaN:Ci,BRAND:_O,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Dn,custom:sg,Schema:ee,ZodSchema:ee,late:IO,get ZodFirstPartyTypeKind(){return H},coerce:ix,any:vO,array:UO,bigint:RO,boolean:ug,date:wO,discriminatedUnion:BO,effect:Zh,enum:KO,function:QO,instanceof:OO,intersection:GO,lazy:jO,literal:HO,map:WO,nan:xO,nativeEnum:YO,never:PO,null:CO,nullable:ZO,number:ag,object:MO,oboolean:nx,onumber:rx,optional:zO,ostring:tx,pipeline:ex,preprocess:XO,promise:JO,record:$O,set:qO,strictObject:FO,string:og,symbol:bO,transformer:Zh,tuple:VO,undefined:DO,union:kO,unknown:NO,void:LO,NEVER:sx,ZodIssueCode:R,quotelessJson:iO,ZodError:Xe});var Cn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Cn||{}),ru=(r=>(r.STRING="string",r.NUMBER="number",r))(ru||{});var ou=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),cg=re.record(ou,re.string()),nu=re.record(ou,re.any()),iu=re.record(ou,re.union([re.any().array(),re.string()])),lg=re.lazy(()=>re.object({conditions:re.array(re.object(dg))})),su=re.union([re.string(),re.number()]),dg={string:cg.optional(),fuzzy:cg.optional(),range:re.record(ou,re.union([re.object({high:su,low:su}),re.object({high:su}),re.object({low:su})])).optional(),equal:nu.optional(),notEqual:nu.optional(),empty:nu.optional(),notEmpty:nu.optional(),oneOf:iu.optional(),contains:iu.optional(),notContains:iu.optional(),containsAny:iu.optional(),$and:lg.optional(),$or:lg.optional()},pW=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(_i).optional(),...dg}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(Cn).optional(),sortType:re.nativeEnum(ru).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Gp={};P(Gp,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Yu,BUDIBASE_DATASOURCE_TYPE:()=>Pp,Config:()=>Bp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Up,DEFAULT_JOBS_TABLE_ID:()=>Lp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Ki,DesignDocuments:()=>xo,DocumentType:()=>ye,GlobalRole:()=>kp,Header:()=>tt,InternalTable:()=>xr,MAX_VALID_DATE:()=>Zu,MIN_VALID_DATE:()=>$T,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,UserStatus:()=>zu,ViewName:()=>Br});var B1={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 W1={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 Y1="darkest",J1="light",ux=[{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"}},pg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var vi="datasource_internal_bb_default";var Fr={};P(Fr,{ColumnSplitter:()=>Ep,NoEmptyFilterStrings:()=>PT,buildQuery:()=>LT,cleanupQuery:()=>Sp,fixupFilterArrays:()=>Ip,getKeyNumbering:()=>_p,getValidOperatorsForType:()=>LC,hasFilters:()=>Tp,limit:()=>MT,recurseLogicalOperators:()=>Ap,removeKeyNumbering:()=>au,runQuery:()=>$u,search:()=>FC,sort:()=>UT,splitFiltersArray:()=>uu});var ji=W(fg());var Cr={};P(Cr,{filterValueToLabel:()=>mx,hasSchema:()=>hx,isSupportedUserSearch:()=>hg,parallelForeach:()=>fx,processSearchFilters:()=>Zl,toMap:()=>yx,trimOtherProps:()=>gx,unreachable:()=>px});var mg=W(require("lodash")),dx=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function px(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function fx(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 mx(){return Object.keys(rt).reduce((t,e)=>{let n=rt[e];return t[n.value]=n.label,t},{})}function hx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function gx(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function hg(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(qa(s)){for(let c of t[s].conditions)if(!hg(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function Zl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=uu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=mg.default.pick(i,dx);return s.field=au(s.field),s})}]}}function yx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Je={};P(Je,{cancelableTimeout:()=>gg,cron:()=>pp,deepGet:()=>Xl,duplicateName:()=>CC,getSequentialName:()=>vC,getUserColor:()=>Tx,getUserInitials:()=>Ex,getUserLabel:()=>Ax,isGoogleSheets:()=>_x,isSQL:()=>Ix,lists:()=>yp,retry:()=>Ox,roles:()=>gp,schema:()=>_o,views:()=>hp,wait:()=>ed,withTimeout:()=>Sx});var Xl=(t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},Ex=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"},Tx=t=>{let e=t?._id;if(!e)return"var(--spectrum-global-color-blue-400)";e=e.replace("ro_ta_users_","");let r=1;for(let n=0;n<e.length;n++)r+=e.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},Ax=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function gg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function Sx(t,e){let[r,n]=gg(t),i=await Promise.race([e(),r]);return n(),i}function _x(t){return t==="GOOGLE_SHEETS"}function Ix(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function ed(t){return new Promise(e=>setTimeout(e,t))}async function Ox(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let s=1.5**i*1e3*(Math.random()+.5);await ed(s);try{return await t()}catch(o){n=o}}throw n}var pp={};P(pp,{getNextExecutionDates:()=>hC,validate:()=>gC});var bT=W(qt()),DT=W(RT()),wT="(Input cron: ",fC={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function mC(t){let e=[];for(let r of t){r.includes(wT)&&(r=r.split(wT)[0].trim());for(let[n,i]of Object.entries(fC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function hC(t,e=4){let r=DT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function gC(t){let e=(0,bT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:mC(e.getError())}}var _o={};P(_o,{decodeNonAscii:()=>fp,encodeNonAscii:()=>TC,isDeprecatedSingleUserColumn:()=>yC,isNumeric:()=>AC,isRequired:()=>EC});function yC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function EC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function TC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function fp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function AC(t){return t.type==="number"||t.type==="bigint"}var hp={};P(hp,{basicFields:()=>xC,calculationFields:()=>OC,hasCalculationFields:()=>IC,isBasicViewField:()=>SC,isCalculationField:()=>Io,isCalculationView:()=>_C,isV2:()=>RC,isVisible:()=>CT});var mp=require("lodash");function Io(t){return"calculationType"in t}function SC(t){return!Io(t)}function _C(t){return t.type==="calculation"}function IC(t){return Object.values(t.schema||{}).some(Io)}function OC(t){return(0,mp.pickBy)(t.schema||{},Io)}function CT(t){return t.visible!==!1}function xC(t,e){let{visible:r=!0}=e||{};return(0,mp.pickBy)(t.schema||{},n=>!Io(n)&&(!r||CT(n)))}function RC(t){return t.version===2}var gp={};P(gp,{checkForRoleInheritanceLoops:()=>bC});function wC(t){return`role${C}${t}`}function bC(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=wC(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:()=>DC});function DC(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}var CC=(t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),s=[];e.filter(a=>{if(a===n)return!0;let u=a.match(i);return u?(s.push(parseInt(u[1])),!0):!1}),s.sort((a,u)=>a-u);let o;if(s.length===0)o=1;else{for(let a=0;a<s.length;a++)if(s[a]!==a+1){o=a+1;break}o||(o=s.length+1)}return`${n} ${o}`},vC=(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 NC=/{{([^{].*?)}}/g,NT=Object.values(Si),PC=[...Object.values(Ir),...Object.values(zt),...Object.values(fn)],LC=(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},PT=[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 Ap(t,e){for(let r of NT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Sp=t=>{for(let e of PT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,s]of Object.entries(t[r]))(s==null||s===""||UC(s))&&delete t[e][i]}return t=Ap(t,Sp),t};function UC(t){return Array.isArray(t)&&t.length===0}var au=t=>_p(t).key,_p=t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},Ep=class{constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=_p(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=fp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function MC(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(NC)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;if(typeof o=="string")o=new Date(o).toISOString();else if(Qa(r))return e[r]??={},e[r][n]=o,e}break;case"number":typeof o=="string"&&!a&&(r==="oneOf"?o=o.split(",").map(parseFloat):o=parseFloat(o));break;case"boolean":o=`${o}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof o=="string"&&(o=o.split(","));break}if(Qa(r)){let c=pg[s]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?c.min:"0000-00-00T00:00:00.000Z",high:i==="number"?c.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],high:o};else if(r==="rangeLow"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],low:o};else if(Wh(r)||qh(r)||Qa(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function uu(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function LT(t){if(!t)return{};if(Array.isArray(t)&&(t=Zl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=vT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=LT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=uu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=vT(n.logicalOperator)),{[a]:{conditions:o.map(MC).filter(u=>u)}}})},e}function vT(t){return t==="all"?"$and":"$or"}function Ip(t){if(!t)return t;for(let e of Object.values(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 Ap(t,Ip),t}function FC(t,e){let r=$u(t,e.query);e.sort&&(r=UT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=MT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function $u(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Sp(e),e=Ip(e),!Tp(e)&&e.onEmptyFilter==="none")return[];let r=(E,I)=>k=>{for(let[b,B]of Object.entries(e[E]||{})){let de=qa(E)?k:Xl(k,au(b)),ln=I(de,B);if(e.allOr&&ln)return!0;if(!e.allOr&&!ln)return!1}return!e.allOr},n=r("string",(E,I)=>typeof E!="string"||typeof I!="string"?!1:E.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(E,I)=>typeof E!="string"||typeof I!="string"?!1:E.toLowerCase().includes(I.toLowerCase())),s=r("range",(E,I)=>{if(E==null||E===""||((0,Yn.isPlainObject)(I.low)&&(0,Yn.isEmpty)(I.low)&&(I.low=void 0),(0,Yn.isPlainObject)(I.high)&&(0,Yn.isEmpty)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let k=+E;if(!isNaN(k)){let B=+I.low,de=+I.high;if(!isNaN(B)&&!isNaN(de))return k>=B&&k<=de;if(isNaN(B)){if(!isNaN(de))return k<=de}else return k>=B}let b=(0,ji.default)(E);if(b.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 b.isAfter(B)&&b.isBefore(de)||b.isSame(B)||b.isSame(de);if(B.isValid())return b.isAfter(B)||b.isSame(B);if(de.isValid())return b.isBefore(de)||b.isSame(de)}return I.low!=null&&I.high!=null?E>=I.low&&E<=I.high:I.low!=null?E>=I.low:I.high!=null?E<=I.high:!1}),o=(E,I)=>{if(Array.isArray(E)){for(let b of E)if(o(b,I))return!0;return!1}if(E&&typeof E=="object"&&typeof I=="string")return E._id===I;if(E===I)return!0;if(E==null&&I!=null||E!=null&&I==null)return!1;let k=(0,ji.default)(E);if(k.isValid()){let b=(0,ji.default)(I);if(b.isValid())return k.isSame(b)}return!1},a=E=>(...I)=>!E(...I),u=r("equal",o),c=r("notEqual",a(o)),l=E=>typeof E=="string"?E==="":Array.isArray(E)?E.length===0:E&&typeof E=="object"?Object.keys(E).length===0:E==null,d=r("empty",l),f=r("notEmpty",a(l)),m=r("oneOf",(E,I)=>(typeof I=="string"&&(I=I.split(",")),typeof E=="number"&&(I=I.map(k=>parseFloat(k))),Array.isArray(I)?I.some(k=>o(E,k)):!1)),p=E=>(I,k)=>!Array.isArray(I)||(typeof k=="string"&&(k=k.split(","),typeof I[0]=="number"&&(k=k.map(b=>parseFloat(b)))),!Array.isArray(k))?!1:k.length===0?!0:k[E](b=>o(I,b)),g=r("contains",(E,I)=>Array.isArray(I)&&I.length===0?!0:p("every")(E,I)),y=r("notContains",(E,I)=>Array.isArray(I)&&I.length===0?!0:a(p("every"))(E,I)),T=r("containsAny",p("some")),_=r("$and",(E,I)=>{if(!I.length)return!1;for(let k of I)if(!$u([E],k).length)return!1;return!0}),S=r("$or",(E,I)=>{if(!I.length)return!1;for(let k of I)if($u([E],{...k,allOr:!0}).length)return!0;return!1}),x=E=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:f,oneOf:m,contains:g,containsAny:T,notContains:y,$and:_,$or:S},k=Object.entries(e||{}).filter(([b,B])=>!["allOr","onEmptyFilter"].includes(b)&&B&&Object.keys(B).length>0).map(([b])=>I[b]?.(E)??!1);return Tp(e)?e.allOr?k.some(b=>b===!0):k.every(b=>b===!0):!0};return t.filter(x)}function UT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function MT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Tp=t=>{if(!t)return!1;let e=r=>{for(let n of NT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of PC){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var ut={};P(ut,{applications:()=>xp,automations:()=>Rp,screens:()=>vp,users:()=>Cp});var xp={};P(xp,{getDevAppID:()=>kC,getProdAppID:()=>Wu});var Op=Or("app"),Oo=Or("app_dev");function kC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Oo))return t;let e=t.split(Op);e.shift();let r=e.join(Op);return`${Oo}${r}`}function Wu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Oo))return t;let e=t.split(Oo);e.shift();let r=e.join(Oo);return`${Op}${r}`}var Rp={};P(Rp,{checkForCollectStep:()=>$C,isAppAction:()=>VC,isRowAction:()=>BC,isWebhookAction:()=>GC});function BC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function GC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function VC(t){return t.definition.trigger?.stepId==="APP"}function FT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Yh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(FT(r))return!0}}return!1}function $C(t){return FT(t.definition.steps)}var Cp={};P(Cp,{canCreateApps:()=>WC,containsUserID:()=>YC,getGlobalUserID:()=>KC,getUserAppGroups:()=>JC,getUserGroups:()=>Dp,hasAdminPermissions:()=>bp,hasAppBuilderPermissions:()=>ju,hasAppCreatorPermissions:()=>kT,hasBuilderPermissions:()=>jC,hasCreatorPermissions:()=>Hu,isAdmin:()=>Qu,isAdminOrBuilder:()=>qC,isAdminOrGlobalBuilder:()=>QC,isBuilder:()=>wp,isCreator:()=>HC,isGlobalBuilder:()=>qu,userAppAccessList:()=>zC});var kr=W(require("lodash/fp"));function wp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Wu(e))):!1}function qu(t){return wp(t)&&!ju(t)||Qu(t)}function WC(t){return qu(t)||Hu(t)}function Qu(t){return t?bp(t):!1}function qC(t,e){return wp(t,e)||Qu(t)}function QC(t){return qu(t)||Qu(t)}function ju(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function kT(t){return t?kr.flow(kr.get("roles"),kr.values,kr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function jC(t){return t?t.builder?.global||ju(t)||Hu(t):!1}function bp(t){return t?!!t.admin?.global:!1}function Hu(t){return t?!!t.builder?.creator:!1}function HC(t){return t?qu(t)||bp(t)||Hu(t)||ju(t)||kT(t):!1}function KC(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function YC(t){return typeof t!="string"?!1:t.includes(`us${C}`)}function Dp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function JC(t,e,r){let n=Wu(t);return Dp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function zC(t,e){let n=Dp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var vp={};P(vp,{findInSettings:()=>ZC});function ZC(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 pH={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},fH={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},mH={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 _H={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 xH={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 bH={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 vH={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 LH={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 FH={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 GH={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var WH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"database",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var jH={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 YH={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 ZH={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 lv={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},tK={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"git-branch",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Vl),pretty:Object.values(lv)},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 iK={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 aK={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 lK={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values($l)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var BT=(a=>(a.GPT_4O_MINI="gpt-4o-mini",a.GPT_4O="gpt-4o",a.GPT_4="gpt-4",a.GPT_35_TURBO="gpt-3.5-turbo",a.GPT_5_MINI="gpt-5-mini",a.GPT_5="gpt-5",a.GPT_5_NANO="gpt-5-nano",a))(BT||{}),fK={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"flow-arrow",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(BT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var GT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(GT||{}),gK={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(GT),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var yv={ascending:"Ascending",descending:"Descending"},TK={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 _K={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 xK={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 bK={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 vK={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 LK={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 FK={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 GK={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 WK={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var jK={name:"Translate",tagline:"Translate text to a different language",icon:"globe",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var VT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(VT||{}),YK={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(VT)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var ZK={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},features:{LOOPING:!0},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(kl),pretty:Object.values(Kh)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var t2={name:"Extract Document Data",icon:"Document",tagline:"Extract structured data from documents using AI",description:"Extracts structured data from PDF or image according to provided schema.",stepId:"EXTRACT_FILE_DATA",internal:!0,inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{file:{type:"string",title:"Document",description:"Attachment or Link to the document to extract data from."},source:{type:"string",enum:Object.values(Bl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Gl),title:"File Type",description:"The type of file at the URL."},schema:{customType:"triggerSchema",title:"Data schema",description:'Schema defining the structure of data to extract. Example: {"name": "string", "price": "number"}.'}},required:["file","schema"]},outputs:{properties:{data:{type:"json",description:"The structured data extracted from the document."},success:{type:"boolean",description:"Whether the extraction was successful."}},required:["data","success"]}},type:"ACTION"};var i2={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 a2={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 Lv={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 Mv={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 kv={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 Gv={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 $v={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 jv={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 I2=Object.values(ye).sort((t,e)=>e.length-t.length);var O2=Object.values(Fl).sort((t,e)=>e.length-t.length);var x2=new RegExp("^datasource_plus_(.+)__(.+)$"),Ku=t=>e=>!!e&&e.startsWith(`${t}${C}`);var R2=Ku("ta"),w2=Ku("view"),b2=Ku("datasource"),D2=Ku("query");var Yu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Yu||{}),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"}},yt=Or("app"),Ju=Or("app_dev"),Et=Ju,Np="internal",Pp="budibase",Kt="_design/sqlite",Lp="ta_bb_jobs",Up="ta_bb_inventory",Mp="ta_bb_expenses",Fp="ta_bb_employee",xo=(r=>(r[r.SQLITE=Kt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(xo||{});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||{}),kp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(kp||{}),Bp=(u=>(u.SETTINGS="settings",u.ACCOUNT="account",u.SMTP="smtp",u.GOOGLE="google",u.OIDC="oidc",u.OIDC_LOGOS="logos_oidc",u.SCIM="scim",u.AI="AI",u))(Bp||{}),$T=new Date(-2147483647e3),Zu=new Date(2147483647e3),Te="default";var ba={};P(ba,{CacheKey:()=>ve,TTL:()=>si,app:()=>Zo,bustCache:()=>ns,destroy:()=>Qo,docWritethrough:()=>Qm,generic:()=>jo,get:()=>oi,invite:()=>cm,keys:()=>mc,passwordReset:()=>Wm,store:()=>cr,user:()=>sn,withCache:()=>Qr,withCacheWithDynamicTTL:()=>gA,writethrough:()=>$m});var jo={};P(jo,{CacheKey:()=>ve,TTL:()=>si,bustCache:()=>ns,destroy:()=>Qo,get:()=>oi,keys:()=>mc,store:()=>cr,withCache:()=>Qr,withCacheWithDynamicTTL:()=>gA});var Ae={};P(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Lo,doInAppContext:()=>LN,doInAppMigrationContext:()=>MN,doInAutomationContext:()=>DN,doInContext:()=>af,doInEnvironmentContext:()=>BN,doInFeatureFlagOverrideContext:()=>mf,doInIPContext:()=>lf,doInIdentityContext:()=>wo,doInLicenseContext:()=>vN,doInScimContext:()=>GN,doInSelfHostTenantUsingCloud:()=>CN,doInTenant:()=>qe,ensureSnippetContext:()=>pA,getAppDB:()=>ts,getAppId:()=>Ue,getAuditLogDBName:()=>cA,getAuditLogsDB:()=>$N,getAutomationId:()=>uf,getCurrentContext:()=>Xn,getDevAppDB:()=>qN,getDevAppId:()=>FN,getEnvironmentVariables:()=>VN,getFeatureFlagOverrides:()=>ff,getFeatureFlags:()=>df,getGlobalDB:()=>ie,getGlobalDBName:()=>Zn,getIP:()=>cf,getIdentity:()=>ur,getLicense:()=>NN,getPlatformURL:()=>of,getProdAppDB:()=>WN,getProdAppId:()=>kN,getScimDBName:()=>xN,getSelfHostCloudDB:()=>PN,getTableForView:()=>QN,getTenantIDFromAppID:()=>es,getTenantId:()=>Q,identity:()=>Ro,isMultiTenant:()=>$r,isScim:()=>Ut,isSelfHostUsingCloud:()=>lA,isTenancyEnabled:()=>wN,isTenantIdSet:()=>RN,setFeatureFlags:()=>pf,setTableForView:()=>jN});var Ro={};P(Ro,{doInAccountContext:()=>Jv,doInIdentityContext:()=>$p,doInUserContext:()=>Wp,getAccountUserId:()=>WT,getIdentity:()=>Vp});function Vp(){return ur()}function $p(t,e){return wo(t,e)}function Wp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return $p(n,r)}function Jv(t,e){let r=WT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return $p(i,e)}function WT(t){let e;return Ha(t)?e=t.budibaseUserId:e=t.accountId,e}var tc=require("fs");var jT=require("lodash"),qp=require("crypto"),bo=require("path"),zv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,bo.resolve)((0,bo.join)(__dirname,"..","..","..")),qT=!1;!qT&&ec()&&!Qp()&&(require("dotenv").config({path:(0,bo.join)(zv,".env")}),qT=!0);function Qp(){return HT()}function HT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function ec(){return process.env.NODE_ENV!=="production"}function Zv(t){if(t)return parseInt(t)}var Yi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},QT=!!parseInt(process.env.SELF_HOSTED||"");function Xv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function eN(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function tN(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,tc.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,tc.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ec()&&!Qp())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}function rN(){return Nt.SERVICE_TYPE==="worker"}function nN(){return Nt.SERVICE_TYPE==="apps"}function iN(){return Nt.BUDIBASE_ENVIRONMENT==="QA"}function sN(){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:Qp,isJest:HT,isDev:ec,isWorker:rN,isApps:nN,isQA:iN,isProd:()=>!ec(),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:Xv(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:QT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Yi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:sN(),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:eN(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:QT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...tN(),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:Zv(process.env.BSON_BUFFER_SIZE)};function Do(t){let e=(0,jT.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 KT(t,e){let r=Do(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var YT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Nt))e==="0"&&(Nt[t]=0),e==="false"&&(Nt[t]=0);var h=Nt;var JT=require("async_hooks"),be=class t{static{this.storage=new JT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var jp="No app provided";function Gr(t){if(!t)throw jp;return t.startsWith(Et)}function oN(t){if(!t)throw jp;return t.startsWith(yt)&&!Gr(t)}function Co(t){if(!t)throw jp;return Gr(t.appId)}function rc(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var Ji=rc;function ct(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function aN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Pt=t=>{let e=Hp(t),r,n;if(e.auth?.username)r=e.auth.username;else if(h.COUCH_DB_USERNAME)r=h.COUCH_DB_USERNAME;else if(!h.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(h.COUCH_DB_PASSWORD)n=h.COUCH_DB_PASSWORD;else if(!h.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),s=h.COUCH_DB_SQL_URL;if(h.isDev()&&!s)s="http://localhost:4006";else if(!s&&e.url){let o=new URL(e.url);s=e.url.replace(o.port,"4984")}return{url:e.url,sqlUrl:Hp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Hp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var aA=W(require("@budibase/nano"));var zT=W(require("node-fetch"));function nc(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function ZT(t,e="GET",r){let{url:n,cookie:i}=Pt(),s=`${n}/${t}`;return await vo({url:s,cookie:i,method:e,body:r})}async function vo({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,zT.default)(nc(encodeURI(t)),i)}async function Kp(t,e="GET",r){let n=await ZT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var zn=W(require("pouchdb"));var XT,eA=!1,Yp=(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 ic(t){XT=Yp(t),eA=!0}var cN=()=>{if(!eA)throw new Error("init has not been called")};function Tt(t,e){cN();let r=new XT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function No(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var tA=require("uuid");function fe(){return(0,tA.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 nf={};P(nf,{breakExternalTableId:()=>Zp,breakRowIdField:()=>_N,buildExternalTableId:()=>gN,convertRowId:()=>SN,encodeTableId:()=>yN,encodeViewId:()=>EN,extractDate:()=>ef,generateRowIdField:()=>TN,getNativeSql:()=>Zi,isExternalTable:()=>zp,isExternalTableID:()=>sc,isInternalTableID:()=>hN,isRowId:()=>AN,isValidFilter:()=>ac,isValidISODateString:()=>oc,isValidISODateStringWithoutTimezone:()=>Xp,isValidTime:()=>tf,sqlLog:()=>Po,validateManyToMany:()=>rf});var Jp=`${C}${C}`,nA=/^\[.*]$/g,lN=encodeURIComponent(" "),dN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,pN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,fN=/(\d{4}-\d{2}-\d{2})/,mN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function sc(t){return t.startsWith("datasource"+C)}function hN(t){return!sc(t)}function Zi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function zp(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==vi||t?.sourceType==="external"?!0:!!(t?._id&&sc(t._id))}function gN(t,e){return`${t}${Jp}${encodeURIComponent(e)}`}function yN(t){return sc(t)?encodeURIComponent(t):t}function EN(t){return encodeURIComponent(t)}function Zp(t){let e=t.split(Jp),r=e.shift(),n=e.join(Jp);if(n.includes(lN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function TN(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 AN(t){return Array.isArray(t)||typeof t=="string"&&t.match(nA)!=null}function SN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(nA)!=null?t.substring(1,t.length-1):t}function _N(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function oc(t){let e=t.trim();if(!dN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Xp(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.match(fN);if(e)return e[0]}function ac(t){return t!=null&&t!==""}function tf(t){return mN.test(t)}function Po(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function IN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function rf(t){if(IN(t))return t}var iA="Database does not exist.";function sA(t){return(0,aA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var 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 ON(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=sA(this.couchInfo)),t.nano||t.init()}static init(){let e=Pt();t.nano=sA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await vo({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new 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===iA)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(Qh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new 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===iA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=nc(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await vo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new 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 Po("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(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 sf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Kp(e)}var uA=null;function Zn(t){return t||(t=Q()),Lo(t)}function cA(t){return t||(t=Q()),t===Te?xe.AUDIT_LOGS.name:`${t}${C}${xe.AUDIT_LOGS.name}`}function xN(t){return t||(t=Q()),t===Te?xe.SCIM_LOGS.name:`${t}${C}${xe.SCIM_LOGS.name}`}function Lo(t){return!t||t===Te?xe.GLOBAL.name:`${t}${C}${xe.GLOBAL.name}`}function of(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function RN(){return!!be.get()?.tenantId}function wN(){return h.MULTI_TENANCY}function es(t){if(!t)return;if(!$r())return Te;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function bN(t){let e;try{e=be.get()}catch{e={}}return e={...e,...t},e}async function Lt(t,e){UN();let r=bN(t);return be.run(r,e)}async function DN(t){return await pA(),await Lt({tenantId:es(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function af(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 CN(t,e){return Lt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function vN(t,e){return Lt({license:t},e)}function NN(){return be.get()?.license}function lA(){return!!be.get()?.isSelfHostUsingCloud}function PN(){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 LN(t,e){return dA(t,e)}async function dA(t,e,r){if(!t)throw new Error("appId is required");let n=es(t),i={appId:t,...r};return n&&(i.tenantId=n),Lt(i,e)}async function wo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Lt(r,e)}function UN(){if(be.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function MN(t,e){return dA(t,e,{isMigrating:!0})}function ur(){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 uf(){return be.get()?.automationId}function Ue(){let e=be.get()?.appId;return!e&&h.isTest()&&uA?uA:e}function cf(){return be.get()?.ip}var FN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return Ji(t)},kN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return ct(t)};function BN(t,e){if(!t)throw new Error("Must supply environment variables.");return Lt({environmentVariables:t},e)}function GN(t){return Lt({isScim:!0},t)}function lf(t,e){return Lt({ip:t},e)}async function pA(){let t=Xn();if(!t||t.snippets)return;let e,r=ts();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function VN(){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(Lo(t?.tenantId))}function $N(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return We(cA())}function ts(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(lA())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return We(e,t)}function WN(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(rc(e),t)}function Ut(){return!!be.get()?.isScim}function Xn(){try{return be.get()}catch{return}}function df(t){let e=Xn();if(e)return e.featureFlagCache?.[t]}function pf(t,e){let r=Xn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function ff(){return Xn()?.featureFlagOverrides||{}}async function mf(t,e){return await Lt({featureFlagOverrides:t},e)}function QN(t){let e=Xn();if(e)return e.viewToTableCache?.[t]}function jN(t,e){let r=Xn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var qr={};P(qr,{getAppClient:()=>fc,getCacheClient:()=>Af,getDocWritethroughClient:()=>zN,getInviteClient:()=>ri,getLockClient:()=>_f,getPasswordResetClient:()=>qo,getSessionClient:()=>Wr,getSocketClient:()=>JN,getUserClient:()=>Wo,getWritethroughClient:()=>Sf,init:()=>Mt,shutdown:()=>hA});var pc=W(require("ioredis"));var lc={};P(lc,{Databases:()=>hf,SEPARATOR:()=>rs,SelectableDatabase:()=>uc,getRedisClusterOptions:()=>gf,getRedisConnectionDetails:()=>cc,getRedisOptions:()=>ei,removeDbPrefix:()=>yf});var rs="-",hf=(_=>(_.PW_RESETS="pwReset",_.VERIFICATIONS="verification",_.INVITATIONS="invitation",_.DEV_LOCKS="devLocks",_.DEBOUNCE="debounce",_.SESSIONS="session",_.USER_CACHE="users",_.FLAGS="flags",_.APP_METADATA="appMetadata",_.QUERY_VARS="queryVars",_.LICENSES="license",_.GENERIC_CACHE="data_cache",_.WRITE_THROUGH="writeThrough",_.LOCKS="locks",_.SOCKET_IO="socket_io",_.BPM_EVENTS="bpmEvents",_.DOC_WRITE_THROUGH="docWriteThrough",_.RECAPTCHA_SESSION="recaptchaSession",_))(hf||{}),uc=(y=>(y[y.DEFAULT=0]="DEFAULT",y[y.SOCKET_IO=1]="SOCKET_IO",y[y.RATE_LIMITING=2]="RATE_LIMITING",y[y.UNUSED_2=3]="UNUSED_2",y[y.UNUSED_3=4]="UNUSED_3",y[y.UNUSED_4=5]="UNUSED_4",y[y.UNUSED_5=6]="UNUSED_5",y[y.UNUSED_6=7]="UNUSED_6",y[y.UNUSED_7=8]="UNUSED_7",y[y.UNUSED_8=9]="UNUSED_8",y[y.UNUSED_9=10]="UNUSED_9",y[y.UNUSED_10=11]="UNUSED_10",y[y.UNUSED_11=12]="UNUSED_11",y[y.UNUSED_12=13]="UNUSED_12",y[y.UNUSED_13=14]="UNUSED_13",y[y.UNUSED_14=15]="UNUSED_14",y))(uc||{});function cc(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function gf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...ei(),tls:{}}}}function ei(){let{host:t,password:e,port:r}=cc();return{connectTimeout:3e4,port:r,host:t,password:e}}function yf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var dc=require("dd-trace"),mA=require("lodash"),fA;if(h.MOCK_REDIS)try{fA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function HN(t=0){return await dc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new fA(ei());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=cc();r=new pc.Cluster([{host:n,port:i}],gf())}else r=new pc.default(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 KN(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 YN(t){return t.isCluster}var Ef=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await dc.tracer.trace("RedisWrapper.init",async n=>{let i=await HN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return dc.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${rs}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${rs}${e}`;let n;YN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await KN(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(e){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:e}),this.client.keys(this.prefixed(e))))}async exists(e){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:e}),await this.client.exists(this.prefixed(e))))}async get(e){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:e});let n=await this.client.get(this.prefixed(e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}})}async bulkGet(e){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:e.length}),e.length===0)return{};let n=await this.client.mget(e.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,mA.zip)(e,n).reduce((i,[s,o])=>{if(s===void 0||o===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[s]=o?JSON.parse(o):null}catch{i[s]=o}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((o,[a,u])=>(o[this.prefixed(a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=this.client.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e});let i=`
4
+ `+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,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=`
6
6
  if redis.call('GET', KEYS[1]) == ARGV[1] then
7
7
  redis.call('DEL', KEYS[1])
8
8
  end
9
- `;await this.client.eval(i,1,this.prefixed(e),r)})}},Qe=Ef;var Uo,Mo,Fo,ko,ti,Bo,Go,Vo,$o,Tf;async function Mt(){Uo=await Qe.init("users"),Mo=await Qe.init("session"),Fo=await Qe.init("appMetadata"),ko=await Qe.init("data_cache"),Bo=await Qe.init("locks"),ti=await Qe.init("writeThrough"),Vo=await Qe.init("invitation"),$o=await Qe.init("pwReset"),Go=await Qe.init("socket_io",1),Tf=await Qe.init("docWriteThrough")}async function hA(){Uo&&await Uo.finish(),Mo&&await Mo.finish(),Fo&&await Fo.finish(),ko&&await ko.finish(),ti&&await ti.finish(),Bo&&await Bo.finish(),Vo&&await Vo.finish(),$o&&await $o.finish(),Go&&await Go.finish(),Tf&&await Tf.finish()}process.on("exit",async()=>{await hA()});async function Wo(){return Uo||await Mt(),Uo}async function Wr(){return Mo||await Mt(),Mo}async function fc(){return Fo||await Mt(),Fo}async function Af(){return ko||await Mt(),ko}async function Sf(){return ti||await Mt(),ti}async function _f(){return Bo||await Mt(),Bo}async function JN(){return Go||await Mt(),Go}async function ri(){return Vo||await Mt(),Vo}async function qo(){return $o||await Mt(),$o}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 Af()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Yt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[Yt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Yt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Yt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var 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||{}),mc=(...t)=>ii.keys(...t),oi=(...t)=>ii.get(...t),cr=(...t)=>ii.store(...t),Qo=(...t)=>ii.delete(...t),Qr=(...t)=>ii.withCache(...t),gA=(...t)=>ii.withCacheWithDynamicTTL(...t),ns=(...t)=>ii.bustCache(...t);var sn={};P(sn,{getUser:()=>Ca,getUsers:()=>Y0,invalidateUser:()=>va});var Ko={};P(Ko,{addTenantToUrl:()=>ZN,getTenantDB:()=>If,getTenantIDFromCtx:()=>Ho,isUserInAppTenant:()=>XN});function If(t){return We(Zn(t))}function ZN(t){let e=Q();if($r()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var XN=(t,e)=>{let r;return e?r=e.tenantId||Te:r=Q(),(es(t)||Te)===r},eP=Object.values(Rs),Ho=(t,e)=>{if(!$r())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=eP),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(of()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var Yo={};P(Yo,{getPlatformDB:()=>jr,users:()=>Ft});var Ft={};P(Ft,{addSsoUser:()=>EA,addUser:()=>oP,getUserDoc:()=>yA,lookupTenantId:()=>tP,removeUser:()=>aP,updateUserDoc:()=>rP});function jr(){return We(xe.PLATFORM_INFO.name)}async function tP(t){return h.MULTI_TENANCY?(await yA(t)).tenantId:Te}async function yA(t){return jr().get(t)}async function rP(t){await jr().put(t)}function nP(t,e){return{_id:t,tenantId:e}}function iP(t,e,r){return{_id:e,userId:t,tenantId:r}}function sP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Of(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 EA(t,e,r,n){return Of(t,()=>sP(t,e,r,n))}async function oP(t,e,r,n){let i=[Of(e,()=>nP(e,t)),Of(r,()=>iP(e,r,t))];n&&i.push(EA(n,r,e,t)),await Promise.all(i)}async function aP(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:()=>rL});var CS=W(require("node-fetch"));var ua={};P(ua,{correlation:()=>Jo,logAlert:()=>li,logAlertWithInfo:()=>tL,logWarn:()=>us,logger:()=>Rc,system:()=>Jf});var Jo={};P(Jo,{getId:()=>xf,setHeader:()=>uP});var TA=require("correlation-id"),uP=t=>{let e=TA.getId();e&&(t["x-budibase-correlation-id"]=e)};function xf(){return TA.getId()}var xc=W(require("pino")),bS=W(require("pino-pretty"));var zf=W(require("dd-trace")),DS=require("dd-trace/ext");var Jf={};P(Jf,{getLogReadStream:()=>YP,getSingleFileMaxSizeInfo:()=>wS,localFileDestination:()=>Yf});var aa=W(require("fs")),Kf=W(require("path")),IS=W(require("rotating-file-stream"));var Hf={};P(Hf,{ObjectStore:()=>kt,ObjectStoreBuckets:()=>lP,SIGNED_FILE_PREFIX:()=>Wf,bucketTTLConfig:()=>hc,budibaseTempDir:()=>ai,clientLibraryCDNUrl:()=>$P,clientLibraryPath:()=>mS,clientLibraryUrl:()=>WP,createBucketIfNotExists:()=>oa,deleteFile:()=>UP,deleteFiles:()=>MP,deleteFolder:()=>dS,downloadTarball:()=>kP,downloadTarballDirect:()=>FP,enrichPWAImages:()=>qP,enrichPluginURLs:()=>jP,extractBucketAndPath:()=>Rf,getAppFileUrl:()=>hS,getGlobalFileS3Key:()=>gS,getGlobalFileUrl:()=>QP,getObjectMetadata:()=>BP,getPluginIconKey:()=>TS,getPluginJSKey:()=>ES,getPluginS3Dir:()=>SS,getPresignedUrl:()=>zr,getReadStream:()=>gc,listAllObjects:()=>lS,processAutomationAttachment:()=>pP,processObjectStoreAttachment:()=>OA,retrieve:()=>cS,retrieveDirectory:()=>LP,retrieveToTmp:()=>PP,sanitizeBucket:()=>ze,sanitizeKey:()=>Me,streamUpload:()=>uS,upload:()=>NP,uploadDirectory:()=>qf});var _c=require("@aws-sdk/client-s3"),kf=require("@aws-sdk/lib-storage"),aS=require("@aws-sdk/s3-request-presigner"),Ic=W(require("stream")),Bf=W(require("node-fetch")),Gf=W(require("tar-fs")),Vf=W(require("zlib")),Yr=require("path"),os=W(require("fs"));var zo=W(require("path")),AA=require("os"),SA=W(require("fs"));var _A=W(require("stream")),lP={BACKUPS:h.BACKUPS_BUCKET_NAME,APPS:h.APPS_BUCKET_NAME,TEMPLATES:h.TEMPLATES_BUCKET_NAME,GLOBAL:h.GLOBAL_BUCKET_NAME,PLUGINS:h.PLUGIN_BUCKET_NAME,TEMP:h.TEMP_BUCKET_NAME},IA=(0,zo.join)((0,AA.tmpdir)(),".budibase");try{SA.default.mkdirSync(IA)}catch(t){if(t.code!=="EEXIST")throw t}function ai(){return IA}var hc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function dP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=zo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:_A.default.Readable.fromWeb(e.body)}}async function OA(t){let e=Rf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await gc(r,n),s=zo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function pP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await dP(t):await OA(t)}var $f=require("uuid");var Hr={};P(Hr,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Yu,BUDIBASE_DATASOURCE_TYPE:()=>Pp,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Up,DEFAULT_JOBS_TABLE_ID:()=>Lp,DatabaseImpl:()=>Xi,DatabaseWithConnection:()=>ON,DeprecatedViews:()=>Ki,DesignDocuments:()=>xo,DocumentType:()=>ye,InternalTable:()=>xr,QueryBuilder:()=>fr,Replication:()=>rS,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,ViewName:()=>Br,baseGlobalDBName:()=>Lo,checkErrorCode:()=>oS,closePouchDB:()=>No,createApiKeyView:()=>zA,createNewUserEmailView:()=>YA,createPlatformAccountEmailView:()=>XA,createPlatformUserView:()=>eS,createUserAppView:()=>JA,createView:()=>ss,dbExists:()=>_P,directCouchAllDbs:()=>sf,directCouchCall:()=>ZT,directCouchQuery:()=>Kp,directCouchUrlCall:()=>vo,doWithDB:()=>lt,extractAppUUID:()=>aN,fullSearch:()=>RP,generateAgentChatID:()=>MA,generateAgentToolSourceID:()=>FA,generateAppID:()=>RA,generateAppUserID:()=>Tc,generateDevInfoID:()=>PA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>UA,generatePluginID:()=>LA,generateRoleID:()=>Df,generateRowID:()=>bf,generateTableID:()=>wA,generateTemplateID:()=>NA,generateUserMetadataID:()=>CA,generateWorkspaceAppID:()=>kA,generateWorkspaceFavouriteID:()=>BA,generateWorkspaceID:()=>bA,getAllApps:()=>ea,getAllDbs:()=>KA,getAppsByIDs:()=>EP,getCouchInfo:()=>Pt,getDB:()=>We,getDevAppID:()=>Ji,getDevAppIDs:()=>AP,getDevelopmentAppID:()=>rc,getDocParams:()=>dr,getGlobalDBName:()=>Zn,getGlobalIDFromUserMetadataID:()=>vA,getGlobalUserParams:()=>ui,getOAuth2ConfigParams:()=>QA,getPluginParams:()=>qA,getPouch:()=>Yp,getPouchDB:()=>Tt,getProdAppID:()=>ct,getProdAppIDs:()=>TP,getQueryIndex:()=>GA,getRoleParams:()=>Sc,getRowParams:()=>Cf,getStartEndKeyURL:()=>Xo,getTemplateParams:()=>WA,getUrlInfo:()=>Hp,getUserMetadataParams:()=>$A,getUsersByAppParams:()=>Ac,getWorkspaceAppParams:()=>jA,getWorkspaceFavouriteParams:()=>HA,getWorkspaceParams:()=>VA,init:()=>ic,isDevApp:()=>Co,isDevAppID:()=>Gr,isDocumentConflictError:()=>bP,isGlobalUserID:()=>DA,isProdAppID:()=>oN,isSameAppID:()=>SP,paginatedSearch:()=>xP,pagination:()=>Nf,prefixRoleID:()=>lr,queryGlobalView:()=>pr,queryGlobalViewRaw:()=>Uf,queryPlatformView:()=>ra,queryView:()=>Lf,queryViewRaw:()=>ta,removeKeyNumbering:()=>na,searchIndexes:()=>Ff});var Zo={};P(Zo,{AppState:()=>wf,getAppMetadata:()=>Ec,invalidateAppMetadata:()=>gP});var wf=(e=>(e.INVALID="invalid",e))(wf||{}),xA=3600,fP=60;async function mP(t){return lt(t,e=>e.get("app_metadata"),{skip_setup:!0})}function hP(t){return!t||t.state==="invalid"}async function Ec(t){let e=await fc(),r=await e.get(t);if(!r){let n=xA;try{r=await mP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=fP;else throw i}if(hP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function gP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await fc();await r.delete(t),e&&await r.store(t,e,xA)}var vf={};P(vf,{generateAgentChatID:()=>MA,generateAgentToolSourceID:()=>FA,generateAppID:()=>RA,generateAppUserID:()=>Tc,generateDevInfoID:()=>PA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>UA,generatePluginID:()=>LA,generateRoleID:()=>Df,generateRowID:()=>bf,generateTableID:()=>wA,generateTemplateID:()=>NA,generateUserMetadataID:()=>CA,generateWorkspaceAppID:()=>kA,generateWorkspaceFavouriteID:()=>BA,generateWorkspaceID:()=>bA,getDocParams:()=>dr,getGlobalIDFromUserMetadataID:()=>vA,getGlobalUserParams:()=>ui,getOAuth2ConfigParams:()=>QA,getPluginParams:()=>qA,getQueryIndex:()=>GA,getRoleParams:()=>Sc,getRowParams:()=>Cf,getStartEndKeyURL:()=>Xo,getTemplateParams:()=>WA,getUserMetadataParams:()=>$A,getUsersByAppParams:()=>Ac,getWorkspaceAppParams:()=>jA,getWorkspaceFavouriteParams:()=>HA,getWorkspaceParams:()=>VA,isGlobalUserID:()=>DA,prefixRoleID:()=>lr});var RA=t=>{let e=yt;return t&&(e+=`${t}${C}`),`${e}${fe()}`};function wA(){return`ta${C}${fe()}`}function bf(t,e){return e=e||fe(),`ro${C}${t}${C}${e}`}function bA(){return`workspace${C}${fe()}`}function is(t){return`us${C}${t||fe()}`}var yP=new RegExp(`^us${C}.+`);function DA(t){return yP.test(t)}function CA(t){return bf("ta_users",t)}function vA(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}function NA(t){return`template${C}${t}${C}${fe()}`}function Tc(t,e){return`${t}${C}${e}`}function Df(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return Df(t)}var PA=t=>`devinfo${C}${t}`,LA=t=>`plg${C}${t}`,UA=t=>`oauth2log${C}${t}`,MA=()=>`agentchat${C}${fe()}`,FA=()=>`agenttoolsource${C}${fe()}`,kA=()=>`workspace_app${C}${fe()}`,BA=()=>`workspace_favourite${C}${fe()}`;function dr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${C}${e}`,endkey:`${t}${C}${e}${Ve}`}}function Cf(t,e,r={}){if(t==null)return dr("ro",null,r);let n=e??`${t}${C}`;return dr("ro",n,r)}function GA(t){return`database/${t}`}function VA(t="",e={}){return{...e,startkey:`workspace${C}${t}`,endkey:`workspace${C}${t}${Ve}`}}function ui(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${Ve}`}}function $A(t,e={}){return Cf("ta_users",t,e)}function Ac(t,e={}){let r=ct(t);return{...e,startkey:r,endkey:`${r}${Ve}`}}function WA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${Ve}`}}function Sc(t,e={}){return dr("role",t,e)}function Xo(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ve}"`}var qA=(t,e={})=>dr("plg",t,e),QA=(t,e={})=>dr("oauth2",t,e),jA=(t,e={})=>dr("workspace_app",t,e),HA=(t,e={})=>dr("workspace_favourite",t,e);async function KA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await sf(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(Xo("app",i)),await n(Xo("app_dev",i)),r.push(Zn(i))),r}async function ea({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=Te);let o=(await KA({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(C);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Te&&d||l===i}return!1});if(r){let u=o.filter(l=>Gr(l)),c=o.filter(l=>!Gr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>Ec(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:Co(l)?"development":"published"})):c.filter(l=>t?Co(l):!Co(l))}}async function EP(t){return(await Promise.allSettled(t.map(r=>Ec(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function TP(){return(await ea({idsOnly:!0})).filter(e=>!Gr(e))}async function AP(){return(await ea({idsOnly:!0})).filter(e=>Gr(e))}function SP(t,e){return t==null||e==null?!1:ct(t)===ct(e)}async function _P(t){return lt(t,async e=>await e.exists(),{skip_setup:!0})}function Nf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let s=t.length>e,o;return i||(i=a=>n?a?.[n]:a?._id),s&&(o=i(t[e])),{data:t.slice(0,e),hasNextPage:s,nextPage:o}}var Pf="_design/database";function IP(){return{_id:Pf,views:{}}}async function OP(t,e){if(Ki[e])try{let r=await t.get(Pf);for(let n of Ki[e])delete r.views?.[n];await t.put(r)}catch{}}async function ss(t,e,r){let n;try{n=await t.get(Pf)}catch{n=IP()}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 YA=async()=>{let t=ie(),e=`function(doc) {
10
- if (doc._id.startsWith("us${C}")) {
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) {
10
+ if (doc._id.startsWith("us${w}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await ss(t,e,"by_email2")},JA=async()=>{let t=ie(),e=`function(doc) {
14
- if (doc._id.startsWith("us${C}") && doc.roles) {
13
+ }`;await ss(t,e,"by_email2")},zA=async()=>{let t=ie(),e=`function(doc) {
14
+ if (doc._id.startsWith("us${w}") && doc.roles) {
15
15
  for (let prodAppId of Object.keys(doc.roles)) {
16
- let emitted = prodAppId + "${C}" + doc._id
16
+ let emitted = prodAppId + "${w}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await ss(t,e,"by_app")},zA=async()=>{let t=ie(),e=`function(doc) {
20
+ }`;await ss(t,e,"by_app")},ZA=async()=>{let t=ie(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await ss(t,e,"by_api_key")};async function ta(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await OP(r,t),await n(),ta(t,e,r,n,i);if(s.status===409)return ta(t,e,r,n,i);throw s}}var Lf=async(t,e,r,n,i)=>{let a=(await ta(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function ZA(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 XA=async()=>{let t=`function(doc) {
25
- if (doc._id.startsWith("acc_metadata${C}")) {
24
+ }`;await ss(t,e,"by_api_key")};async function ra(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(),ra(t,e,r,n,i);if(s.status===409)return ra(t,e,r,n,i);throw s}}var Uf=async(t,e,r,n,i)=>{let a=(await ra(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
+ if (doc._id.startsWith("acc_metadata${w}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await ZA(t,"account_by_email")},eS=async()=>{await ZA(`function(doc) {
28
+ }`;await XA(t,"account_by_email")},tS=async()=>{await XA(`function(doc) {
29
29
  if (doc.tenantId) {
30
30
  emit(doc._id.toLowerCase(), doc._id)
31
31
  }
@@ -33,7 +33,7 @@ attempted value: ${s}
33
33
  if (doc.ssoId) {
34
34
  emit(doc.ssoId, doc._id)
35
35
  }
36
- }`,"platform_users_lowercase_2")},ra=async(t,e)=>{let r={account_by_email:XA,platform_users_lowercase_2:eS};return lt(xe.PLATFORM_INFO.name,async n=>{let i=r[t];return Lf(t,e,n,i,{arrayResponse:!0})})},tS={by_email2:YA,by_api_key:zA,by_app:JA},pr=async(t,e,r,n)=>{r||(r=ie());let i=tS[t];return Lf(t,e,r,i,n)};async function Uf(t,e,r){let n=ie(),i=tS[t];return ta(t,e,n,i,r)}var Mf=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([No(this.source),No(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";delete e.filter;let s=e.isCreation,o=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let a=!1,u;typeof o=="string"&&o==="all"?a=!0:o&&(u=o);let c=l=>l?.startsWith("ro")||l?.startsWith("li");return{...e,filter:(l,d)=>!s&&l._id==="_design/migrations"||i&&l._id?.startsWith("_design")?!1:l._deleted||c(l._id)&&(u?.find(f=>l._id?.includes(f))||a)?!0:c(l._id)||l._id?.startsWith("log_au")||l._id==="app_metadata"?!1:r?r(l,d):!0}}async rollback(){await this.target.destroy(),this.target=Tt(this.target.name),await this.replicate()}},rS=Mf;var iS=W(require("node-fetch"));var na=Fr.removeKeyNumbering;function ci(t){return t==null||t===""}var fr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=na(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(p,g)=>ci(g)?null:`${p}:${e.preprocess(g,s)}`,u=(p,g,y="AND")=>{if(ci(g))return null;if(!Array.isArray(g))return`${p}:${g}`;let T=`${e.preprocess(g[0],{escape:!0})}`;for(let _=1;_<g.length;_++)T+=` ${y} ${e.preprocess(g[_],{escape:!0})}`;return`${p}:(${T})`},c=(p,g)=>ci(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${p}:/.*${g}.*/`),l=(p,g)=>{let y=r?"*:* AND ":"",T=r?"AND":void 0;return y+"NOT "+u(p,g,T)},d=(p,g)=>u(p,g,"OR"),f=(p,g)=>{if(ci(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let y=`${e.preprocess(g[0],s)}`;for(let T=1;T<g.length;T++)y+=` OR ${e.preprocess(g[T],s)}`;return`${p}:(${y})`};function m(p,g,y){let T="";for(let[_,S]of Object.entries(p)){_=na(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let x=g(_,S);if(x!=null){if(T.length>0||n.length>0){let E=y?.mode?y.mode:r?"OR":"AND";T+=` ${E} `}T+=x,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(y?.returnBuilt)return T;n+=T}if(this.#e.string&&m(this.#e.string,(p,g)=>ci(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${p}:${g}*`)),this.#e.range&&m(this.#e.range,(p,g)=>{if(ci(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let y=e.preprocess(g.low,s),T=e.preprocess(g.high,s);return`${p}:[${y} TO ${T}]`}),this.#e.fuzzy&&m(this.#e.fuzzy,c),this.#e.equal&&m(this.#e.equal,a),this.#e.notEqual&&m(this.#e.notEqual,(p,g)=>ci(g)?null:typeof g=="boolean"?`(*:* AND !${p}:${g})`:`!${p}:${e.preprocess(g,s)}`),this.#e.empty&&m(this.#e.empty,p=>(i=!1,`(*:* -${p}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,p=>(i=!1,`${p}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,f),this.#e.contains&&m(this.#e.contains,u),this.#e.notContains&&m(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&m(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,m({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Pt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await nS(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await nS(n,i,r);throw s}}};async function nS(t,e,r){let n=await(0,iS.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 sS(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=fr.maxLimit;n.limit&&s.length>n.limit-fr.maxLimit&&(o=n.limit-s.length);let a=new fr(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<fr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await sS(t,e,r,c)}async function xP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,fr.maxLimit);let s=new fr(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 RP(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 sS(t,e,r,n)}}var Ff={};P(Ff,{createUserIndex:()=>wP});async function wP(){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 oS(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 bP(t){return oS(t,409)}var ia=W(require("fs/promises")),Jr=W(require("dd-trace")),sa=require("stream/promises");var DP=require("sanitize-s3-objectkey"),CP={bucketCreationPromises:{}},Wf="/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"},vP=[Kr.html,Kr.css,Kr.js,Kr.json];function Me(t){return DP(ze(t)).replace(/\\/g,"/")}function ze(t){return t.replace(new RegExp(Et,"g"),yt)}function kt(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new _c.S3(e)}async function oa(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=CP.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 NP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await ia.default.open(r)).createReadStream():s,c=kt(),l=await oa(c,t);if(o&&l.created){let g=hc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,f=d||(a?Kr[a.toLowerCase()]:Kr.txt),m={Bucket:ze(t),Key:Me(e),Body:u,ContentType:f};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];m.Metadata=i}return new kf.Upload({client:c,params:m}).done()}async function uS({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 oa(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=hc(t,s);await u.putBucketLifecycleConfiguration(T)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let l=n;l||(l=a?Kr[a.toLowerCase()]:Kr.txt),o.addTags({contentType:l});let d=ze(t),f=Me(r),m={Bucket:d,Key:f,Body:e,ContentType:l,...i},g=await new kf.Upload({client:u,params:m}).done(),y=await u.headObject({Bucket:d,Key:f});return o.addTags({contentLength:y.ContentLength}),{...g,ContentLength:y.ContentLength}})}async function cS(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}),vP.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return Ic.default.Readable.fromWeb(o)}})}async function*lS(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,aS.getSignedUrl)(n,new _c.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Wf}${a}${u}`}else return s}async function PP(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 cS(t,e),i=(0,Yr.join)(ai(),(0,$f.v4)());return r.addTags({outputPath:i}),n instanceof Ic.default.Readable?(r.addTags({stream:!0}),await(0,sa.pipeline)(n,os.default.createWriteStream(i))):(r.addTags({stream:!1}),os.default.writeFileSync(i,n)),i})}async function LP(t,e){return await Jr.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,Yr.join)(ai(),(0,$f.v4)());await ia.default.mkdir(n,{recursive:!0});let i=0;return await Cr.parallelForeach(lS(t,e),async s=>{i++,await Jr.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await gc(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,Yr.join)(n,...l);c.length>1&&!os.default.existsSync(d)&&await ia.default.mkdir(d,{recursive:!0}),await(0,sa.pipeline)(u,os.default.createWriteStream((0,Yr.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function UP(t,e){let r=kt();await oa(r,t);let n={Bucket:t,Key:Me(e)};return r.deleteObject(n)}async function MP(t,e){let r=kt();await oa(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Me(i)}))}};return r.deleteObjects(n)}async function dS(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 dS(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 ia.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=Me((0,Yr.join)(r,s.name)),a=(0,Yr.join)(e,s.name);s.isDirectory()?await qf(t,a,o):await uS({bucket:t,filename:o,stream:os.default.createReadStream(a)})}return i})}async function FP(t,e,r={}){e=Me(e);let n=await(0,Bf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,sa.pipeline)(n.body,Vf.default.createUnzip(),Gf.default.extract(e))}async function kP(t,e,r){e=ze(e),r=Me(r);let n=await(0,Bf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Yr.join)(ai(),r);return await(0,sa.pipeline)(n.body,Vf.default.createUnzip(),Gf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await qf(e,i,r),i}async function gc(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 Ic.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function BP(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 Rf(t){let e=t.split("?")[0],r=new RegExp(`^${Wf}/(?<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 pS=W(require("aws-cloudfront-sign")),Oc;function GP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Oc||(Oc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Oc)}var VP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:GP(),expireTime:new Date().getTime()+1e3*60*60*24}),as=t=>{let e=Qf(t);return pS.getSignedUrl(e,VP())},Qf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var fS=W(require("querystring"));function mS(t){return`${Me(t)}/budibase-client.js`}async function $P(t,e){let r=mS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Qf(r)):await zr(h.APPS_BUCKET_NAME,r)}function WP(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${fS.default.encode(n)}`}async function hS(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 hS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var QP=async(t,e,r)=>{let n=gS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),as(n)):await zr(h.GLOBAL_BUCKET_NAME,n)},gS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function jP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await HP(e),n=await KP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function HP(t){let e=ES(t);return yS(e)}async function KP(t){let e=TS(t);if(e)return yS(e)}async function yS(t){return h.CLOUDFRONT_CDN?as(t):await zr(h.PLUGIN_BUCKET_NAME,t)}function ES(t){return AS(t,"plugin.min.js")}function TS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return AS(t,e)}function AS(t,e){return`${SS(t.name)}/${e}`}function SS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var OS="budibase.log",xS="budibase-logs-history.txt",RS=Kf.default.join(ai(),"systemlogs");function _S(t){return Kf.default.join(RS,t)}function wS(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}function Yf(){let t=wS(h.ROLLING_LOG_MAX_SIZE);return IS.createStream(OS,{size:t?.size,path:RS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:xS,initialRotation:!1})}function YP(){let t=[],e=_S(xS);if(aa.default.existsSync(e)){let i=aa.default.readFileSync(e,"utf-8").split(`
37
- `);for(let s of i.filter(o=>o))t.push(aa.default.readFileSync(s))}return t.push(aa.default.readFileSync(_S(OS))),Buffer.concat(t)}function JP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function zP(t){return t instanceof Error}function ZP(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,bS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Yf(),level:t}),Zr=r.length?(0,xc.default)(e,xc.default.multistream(r)):(0,xc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(y=>{ZP(y)&&(d=`${d} ${y}`.trimStart()),JP(y)&&l.push(y),zP(y)&&(c=y)});let f=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:f?._id,identityType:f?.type,correlationId:xf()};let p=zf.default.scope().active();p&&zf.default.inject(p.context(),DS.formats.LOG,m);let g={err:c,pid:process.pid,...m};if(l.length){let y={},T=0;for(let _=0;_<l.length;_++){let S=l[_],x=S._logKey;x?(delete S._logKey,g[x]=S):(y[T]=S,T++)}Object.keys(y).length&&(g.data=y)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Zr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Zr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Zr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Zr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Zr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Zr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=uf()}catch{}return u},a=()=>{let u;try{u=ur()}catch{}return u}}var Rc=Zr;var XP=["AccountError"];function eL(t){return t&&t.suppressAlert}function li(t,e){e&&XP.includes(e.name)&&eL(e)||console.error(`bb-alert: ${t}`,e)}function tL(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 ca=class{constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Jo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,CS.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var Zf=new ca(h.INTERNAL_ACCOUNT_PORTAL_URL),Xf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Xr=async t=>{if(Xf)return;let e={email:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},cs=async t=>{if(Xf)return;let e={tenantId:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},rL=async()=>{if(Xf)return;let t=await Zf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};P(Es,{UserDB:()=>Jt,addAppBuilder:()=>Q0,bulkGetGlobalUsersById:()=>nl,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>Fm,creatorsInList:()=>pi,doesUserExist:()=>G0,getAccountHolderFromUsers:()=>$c,getAllUserIds:()=>k0,getAllUsers:()=>B0,getById:()=>hi,getCreatorCount:()=>W0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>GS,getExistingTenantUsers:()=>BS,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>U_,getGlobalUserByEmail:()=>Vt,getPlatformUsers:()=>Cc,getUserCount:()=>$0,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>WS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>$S,isBuilder:()=>ms,isCreatorAsync:()=>pa,isCreatorSync:()=>Gc,isGlobalBuilder:()=>VS,paginatedUsers:()=>F_,removeAppBuilder:()=>j0,removePortalUserPermissions:()=>q0,searchExistingEmails:()=>lm,searchGlobalUsersByApp:()=>il,searchGlobalUsersByAppAccess:()=>Mm,searchGlobalUsersByEmail:()=>M_,validateUniqueUser:()=>Vc});var dm={};P(dm,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>$c,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>WS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>$S,isBuilder:()=>ms,isCreatorAsync:()=>pa,isCreatorSync:()=>Gc,isGlobalBuilder:()=>VS,validateUniqueUser:()=>Vc});var cm={};P(cm,{createCode:()=>gL,deleteCode:()=>EL,getCode:()=>yL,getExistingInvites:()=>um,getInviteCodes:()=>kS,updateCode:()=>hL});var ls={};P(ls,{Duration:()=>De,DurationType:()=>am,clearCookie:()=>en,compare:()=>rm,getAppIdFromCtx:()=>lL,getCookie:()=>mr,hasCircularStructure:()=>pL,hash:()=>tm,isAudited:()=>sm,isClient:()=>dL,isPublicApiRequest:()=>cL,isServingApp:()=>oL,isServingBuilder:()=>aL,isServingBuilderPreview:()=>uL,isValidInternalAPIKey:()=>la,newid:()=>fe,openJwt:()=>bc,resolveAppUrl:()=>US,setCookie:()=>MS,time:()=>mL,timeout:()=>im,urlHasProtocol:()=>fL,validEmail:()=>om});var em=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),nL=h.SALT_ROUNDS||10;async function tm(t){let e=await em.genSalt(nL);return em.hash(t,e)}async function rm(t,e){return em.compare(t,e)}var wc=W(require("jsonwebtoken")),nm="app"+C,NS="/app/",PS="/app/preview",iL="/builder",LS=`${iL}/app/`,sL="/api/public/v";async function US(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Ho(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>ea({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function oL(t){return t.path.startsWith(`/${nm}`)?!0:t.path.startsWith(NS)}function aL(t){return t.path.startsWith(LS)}function uL(t){return t.path.startsWith(PS)}function cL(t){return t.path.startsWith(sL)}async function lL(t){let e=[t.request.headers["x-budibase-app-id"]],r;function n(u){return!u||!u.startsWith(nm)?r:(r&&Ji(r)!==Ji(u)&&t.throw("App id conflict",403),r??u)}for(let u of e)if(r=n(u),r)break;t.request.body&&t.request.body.appId&&(r=n(t.request.body.appId));let i=vS(t.path);i&&(r=n(i)),t.query?.appId&&(r=n(t.query?.appId));let s=t.path.startsWith(PS);if(t.path.startsWith(NS)&&!s&&(r=n(await US(t))),t.request.headers.referer?.includes(LS)){let u=vS(t.request.headers.referer);r=n(u)}return r}function vS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(nm))}function bc(t){if(t)try{return wc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return wc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function la(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function mr(t,e){let r=t.cookies.get(e);if(r)return bc(r)}function MS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=wc.default.sign(e,h.JWT_SECRET));let i={expires:Zu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function en(t,e){MS(t,null,e)}function dL(t){return t.headers["x-budibase-type"]==="client"}function im(t){return new Promise(e=>setTimeout(e,t))}function sm(t){return!!$h[t]}function pL(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 fL(t){return!!t.match(/^.+:\/\/.+$/)}function om(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}var am=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(am||{}),Dc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},De=class t{constructor(e){this.ms=e}to(e){return this.ms/Dc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Dc[e]/Dc[r]}static from(e,r){return new t(r*Dc[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function mL(t){let e=performance.now();return[await t(),De.fromMilliseconds(performance.now()-e)]}var FS=De.fromDays(7).toSeconds();async function hL(t,e){await(await ri()).store(t,e,FS)}async function gL(t,e){let r=fe();return await(await ri()).store(r,{email:t,info:e},FS),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 EL(t){await(await ri()).delete(t)}async function kS(){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 um(t){return(await kS()).filter(e=>t.includes(e.email))}async function lm(t){let e=[],r=await BS(t);e.push(...r.map(o=>o.email));let n=await GS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await um(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Cc(t){return await ra("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Cc(t))[0]??null}async function BS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await pr("by_email2",r,void 0,n)}async function GS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ra("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ra("account_by_email",r)}var Bc={};P(Bc,{BadRequestError:()=>Pc,BudibaseError:()=>ps,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>Fc,ForbiddenError:()=>Lc,HTTPError:()=>Ge,InvalidAPIKeyError:()=>fs,NotFoundError:()=>Nc,NotImplementedError:()=>Uc,UnexpectedError:()=>vc,UsageLimitError:()=>Mc,getPublicError:()=>kc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},kc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},Ge=class t extends ps{constructor(r,n,i="http"){super(r,i);this.status=n}static async fromResponse(r){let n=await r.text(),i=n,s=r.status,o="http";try{let a=JSON.parse(n);i=a.message,s=a.status,o=a.error?.code}catch{}return new t(i,s,o)}},vc=class extends Ge{constructor(e){super(e,500)}},Nc=class extends Ge{constructor(e){super(e,404)}},Pc=class extends Ge{constructor(e){super(e,400)}},Lc=class extends Ge{constructor(e){super(e,403)}},Uc=class extends Ge{constructor(e){super(e,501)}},Mc=class extends Ge{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Fc=class extends Ge{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},fs=class extends ps{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},hr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=ut.users.isBuilder,tn=ut.users.isAdmin,VS=ut.users.isGlobalBuilder,$S=ut.users.isAdminOrBuilder,rn=ut.users.hasAdminPermissions,At=ut.users.hasBuilderPermissions,WS=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=>Gc(i,e))}async function pa(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Gc(t,e)}function Gc(t,e){let r=ut.users.isCreator(t);return!r&&t?AL(t,e):r}function AL(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes("CREATOR")):!1}async function Vc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Xr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function $c(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ds(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var ys={};P(ys,{account:()=>o_,action:()=>a_,ai:()=>p_,analytics:()=>qc,app:()=>u_,auditLog:()=>w_,auth:()=>tl,automation:()=>c_,backfill:()=>__,backfillCache:()=>Xc,backup:()=>x_,datasource:()=>l_,email:()=>d_,environmentVariable:()=>R_,group:()=>I_,identification:()=>Gt,initAsyncEvents:()=>O0,installation:()=>Aa,layout:()=>m_,license:()=>f_,org:()=>h_,plugin:()=>O_,processors:()=>Tm,publishEvent:()=>A,query:()=>g_,role:()=>xa,rowAction:()=>b_,rows:()=>E_,screen:()=>y_,serve:()=>A_,shutdown:()=>x0,table:()=>T_,user:()=>Ze,view:()=>S_,workspace:()=>D_});var Tm={};P(Tm,{analyticsProcessor:()=>t_,init:()=>GL,processors:()=>yr});var qc={};P(qc,{enabled:()=>Wc});var Wc=async()=>Qc();var KS=require("posthog-node");var SL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",_L=t=>t==="served:app:preview"||t==="served:app";var QS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},jS=async t=>{if(!SL(t))return!1;let e=await IL(t);if(e){let r=new Date(e.timestamp);switch(QS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await qS(t,{timestamp:Date.now()}),!1):!0}}else return await qS(t,{timestamp:Date.now()}),!1},HS=t=>{let e=`${ve.EVENTS_RATE_LIMIT}:${t}`;return _L(t)&&(e=e+":"+Ue()),e},IL=async t=>{let e=HS(t);return await oi(e)},qS=async(t,e)=>{let r=HS(t),n=QS[t],i;switch(n){case"calendarDay":i=86400}await cr(r,e,i)};var xL=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],fa=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new KS.PostHog(e)}async processEvent(e,r,n,i){if(xL.includes(e)||await jS(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 YS=fa;var RL=["installation:version:upgraded","installation:version:downgraded"],wL=["installation","tenant"],ma=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new YS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!RL.includes(e)&&!await Wc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!wL.includes(e.type)&&!await Wc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}async shutdown(){this.posthog&&await this.posthog.shutdown()}};var pm=h.SELF_HOSTED&&!h.isDev(),ha=class{async processEvent(e,r,n){pm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){pm||console.log("[audit] identified",e)}async identifyGroup(e){pm||console.log("[audit] group identified",e)}async shutdown(){}};var Em={};P(Em,{BudibaseQueue:()=>Bt,InMemoryQueue:()=>jc,JobQueue:()=>hs,QueuedProcessor:()=>ym,UnretriableError:()=>Yc,shutdown:()=>FL});var JS=W(require("events"));function bL(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var jc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new JS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((u,c)=>{r(n,(d,f)=>{d?c(d):u(f)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await 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=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),c(m))},d=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),u(m))};this._emitter.on("error",l),this._emitter.on("completed",d)})}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>bL(e))}async whenCurrentJobsFinished(){do await im(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},zS=jc;var hm=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 ZS(t,e,r){vL(t,e),r&&DL(t,r)}function DL(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 CL={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 vL(t,e){let r=CL[e];function n(i,s){let o=i.data.event?.appId;if(o)return af(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...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 Hc={};P(Hc,{cleanup:()=>NL,clear:()=>mm,set:()=>fm});var ga=[];function fm(t,e){let r=setInterval(t,e);return ga.push(r),r}function mm(t){let e=ga.indexOf(t);e!==-1&&ga.splice(e,1),clearInterval(t)}function NL(){for(let t of ga)clearInterval(t);ga=[]}var gr=W(require("dd-trace")),ya=W(require("object-sizeof")),PL=De.fromMinutes(5).toMs(),LL=De.fromSeconds(30).toMs(),gm=De.fromSeconds(60).toMs(),Ea=[],Kc;async function XS(){for(let t of Ea)await t.clean(gm,"completed"),await t.clean(gm,"failed")}async function UL(t,e,r){let n=performance.now();try{let i=await e();return gr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw gr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;gr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),gr.default.dogstatsd.increment(t,1,r)}}function e_(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 ML(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,ya.default)(t.data),...e_(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:PL,lockRenewTime:LL}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new hm.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new zS(this.jobQueue,r):n=new hm.default(this.jobQueue,r),ZS(n,this.jobQueue,this.opts.removeStalledCb),Ea.push(n),!Kc&&!h.isTest()&&(Kc=fm(XS,gm),XS().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 gr.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,...ML(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),gr.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 gr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ya.default)(e),...e_(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},gr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,ya.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return UL(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function FL(){Kc&&mm(Kc),console.log("Waiting for current queue jobs to finish...");for(let t of Ea)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Ea)await t.close();Ea=[],console.log("Queues shutdown")}var Yc=class extends Error{constructor(e){super(e),this.name="PermanentError"}},ym=class{constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:s=!0,maxStalledCount:o=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new 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 Yc&&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&&sm(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var Ta=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var t_=new ma,kL=new ha,BL=new gs;function GL(t){return gs.init(t)}var yr=new Ta([t_,kL,BL]);var Jc={};P(Jc,{checkInstallVersion:()=>WL,getInstall:()=>Sa,getInstallFromDB:()=>Sm});var Am=W(require("semver"));var Sa=async()=>Qr(ve.INSTALLATION,86400,Sm,{useTenancy:!1});async function VL(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 Sm();throw r}}var Sm=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 VL(t);else throw r}return e}),$L=async t=>{try{await lt(xe.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await ns(ve.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},WL=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Am.default.gt(r,e),i=Am.default.lt(r,e);await $L(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.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=Vp(),e=Oa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=_a();return{id:r_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await zc(Q()),s=_a();return{id:r_(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=_a(),{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")},QL=async(t,e)=>{let r=t,n="installation",i=_a(),s=h.VERSION,o=Oa(),a={id:r,type:n,hosting:i,version:s,environment:o};await _m(a,e),await Ia({...a,id:`$${n}_${r}`},e)},jL=async(t,e,r,n=h.VERSION)=>{let i=await zc(t),s="tenant",o=await fi(),a=Oa(),u={id:i,type:s,hosting:e,environment:a,installationId:o,createdAt:r,createdVersion:n};await _m(u,r),await Ia({...u,id:`$${s}_${i}`},r)},HL=async(t,e,r)=>{let n=t._id,i=await zc(t.tenantId),s="user",o=At(t),a=rn(t),u;Ya(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,f=await fi(),m=e?e.hosting:_a(),p=Oa();await Ia({id:n,type:s,hosting:m,installationId:f,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:p},r)},KL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ka(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=Oa();if(Ha(t)){let d=await Vt(t.email);d?._id&&(e=d._id)}await Ia({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ia=async(t,e)=>{await yr.identify(t,e)},_m=async(t,e)=>{await yr.identifyGroup(t,e)},Oa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,_a=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>YL()?"account-portal":(await Sa()).installId,zc=async t=>h.SELF_HOSTED?n_(t):t,n_=async t=>qe(t,()=>Qr(ve.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Zc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${fe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),YL=()=>h.SERVICE==="account-portal",r_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Gt={getCurrentIdentity:qL,identifyInstallationGroup:QL,identifyTenantGroup:jL,identifyUser:HL,identifyAccount:KL,identify:Ia,identifyGroup:_m,getInstallationId:fi,getUniqueTenantId:n_};var Xc={};P(Xc,{end:()=>zL,isAlreadySent:()=>xm,isBackfillingEvent:()=>Om,recordEvent:()=>Im,start:()=>JL});var JL=async t=>XL({eventWhitelist:t}),Im=async(t,e)=>{let r=Rm(t,e);await cr(r,e,void 0,{useTenancy:!1})},zL=async()=>{await eU(),await tU()},ZL=async()=>oi(ve.BACKFILL_METADATA),XL=async t=>cr(ve.BACKFILL_METADATA,t),eU=async()=>{await Qo(ve.BACKFILL_METADATA)},tU=async()=>{let t=Rm(),e=await mc(t);for(let r of e)await Qo(r,{useTenancy:!1})},Om=async t=>{let r=(await ZL())?.eventWhitelist;return!!(r&&r.includes(t))},xm=async(t,e)=>{let r=Rm(t,e);return!!await oi(r,{useTenancy:!1})},rU={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},Rm=(t,e)=>{let r,n=Q();if(t){r=`${ve.EVENTS}:${n}:${t}`;let i=rU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${ve.EVENTS}:${n}:*`;return r};var Er;function el(){Er=new Bt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function i_(){Er&&await Er.close()}async function s_(t){Er||el();let{event:e,identity:r}=t;Vh.indexOf(e)!==-1&&r.tenantId&&await Er.add(t)}var A=async(t,e,r,n)=>{let i=n||await Gt.getCurrentIdentity();if(!(n?!1:await Om(t))){await s_({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await xm(t,e)||(await yr.processEvent(t,i,e,r),await Im(t,e))};async function nU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function iU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function sU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var o_={created:nU,deleted:iU,verified:sU};async function oU(t,e){await A("action:automation_step:executed",t,e)}async function aU(t,e){await A("action:crud:executed",t,e)}async function uU(t,e){await A("action:ai_agent:executed",t,e)}var a_={aiAgentExecuted:uU,automationStepExecuted:oU,crudExecuted:aU};var cU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function lU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function dU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function pU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function fU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function mU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function hU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function gU(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 EU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function TU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function AU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var u_={created:cU,updated:lU,deleted:dU,published:pU,unpublished:fU,fileImported:mU,duplicated:hU,templateImported:gU,versionUpdated:yU,versionReverted:EU,reverted:TU,exported:AU};async function SU(t,e){let n={userId:(await Gt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function _U(t){let r={userId:(await Gt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function IU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function OU(t){let e={type:t};await A("auth:sso:updated",e)}async function xU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function RU(t){let e={type:t};await A("auth:sso:deactivated",e)}var tl={login:SU,logout:_U,SSOCreated:IU,SSOUpdated:OU,SSOActivated:xU,SSODeactivated:RU};async function wU(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 bU(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 DU(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 CU(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 vU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function NU(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 PU(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 c_={created:wU,triggerUpdated:bU,deleted:DU,tested:CU,run:vU,stepCreated:NU,stepDeleted:PU};function wm(t){return!Object.values(Wa).includes(t.source)}async function LU(t,e){let r={datasourceId:t._id,source:t.source,custom:wm(t)};await A("datasource:created",r,e)}async function UU(t){let e={datasourceId:t._id,source:t.source,custom:wm(t)};await A("datasource:updated",e)}async function MU(t){let e={datasourceId:t._id,source:t.source,custom:wm(t)};await A("datasource:deleted",e)}var l_={created:LU,updated:UU,deleted:MU};async function FU(t){let e={};await A("email:smtp:created",e,t)}async function kU(){let t={};await A("email:smtp:updated",t)}var d_={SMTPCreated:FU,SMTPUpdated:kU};async function BU(t){let e={};await A("ai:config:created",e,t)}async function GU(){let t={};await A("ai:config:updated",t)}var p_={AIConfigCreated:BU,AIConfigUpdated:GU};async function VU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function $U(t){let e={accountId:t.accountId};await A("license:activated",e)}async function WU(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 QU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function jU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function HU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var f_={planChanged:VU,activated:$U,checkoutOpened:WU,checkoutSuccess:qU,portalOpened:QU,paymentFailed:jU,paymentRecovered:HU};async function KU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function YU(t){let e={layoutId:t};await A("layout:deleted",e)}var m_={created:KU,deleted:YU};async function JU(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 ZU(t){let e={};await A("org:platformurl:updated",e,t)}async function XU(){let t={};await A("analytics:opt:out",t)}async function eM(){let t={};await A("analytics:opt:out",t)}var h_={nameUpdated:JU,logoUpdated:zU,platformURLUpdated:ZU,analyticsOptOut:XU,analyticsOptIn:eM};var tM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},rM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},nM=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)},iM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},sM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},oM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},g_={created:tM,updated:rM,deleted:nM,imported:iM,run:sM,previewed:oM};async function aM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function uM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function cM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function lM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function dM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var xa={created:aM,updated:uM,deleted:cM,assigned:lM,unassigned:dM};async function pM(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 fM(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:pM,deleted:fM};var mM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},hM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},E_={created:mM,imported:hM};async function gM(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 EM(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}async function TM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function AM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var T_={created:gM,updated:yM,deleted:EM,exported:TM,imported:AM};async function SM(t){let e={timezone:t};await A("served:builder",e)}async function _M(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function IM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var A_={servedBuilder:SM,servedApp:_M,servedAppPreview:IM};async function OM(t,e){let r={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:created",r,e)}async function xM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:updated",e)}async function RM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:deleted",e)}async function wM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function bM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function DM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function CM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function vM(t){let e={audited:{email:t}};await A("user:invited",e)}async function NM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function PM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function LM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function UM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function MM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function FM(t){let e={users:t};await A("user:data:collaboration",e)}var Ze={created:OM,updated:xM,deleted:RM,permissionAdminAssigned:wM,permissionAdminRemoved:bM,permissionBuilderAssigned:DM,permissionBuilderRemoved:CM,invited:vM,inviteAccepted:NM,passwordForceReset:PM,passwordUpdated:LM,passwordResetRequested:UM,passwordReset:MM,dataCollaboration:FM};async function kM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function BM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function GM(t,e){let r={...Je.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}async function VM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function $M({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function WM({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 QM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function jM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function HM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function KM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var S_={created:kM,updated:BM,deleted:GM,exported:VM,filterCreated:$M,filterUpdated:WM,filterDeleted:qM,calculationCreated:QM,calculationUpdated:jM,calculationDeleted:HM,viewJoinCreated:KM};async function YM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function JM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function zM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function ZM(){let t={};await A("installation:firstStartup",t)}var Aa={versionChecked:YM,upgraded:JM,downgraded:zM,firstStartup:ZM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function XM(t){Ts||await A("app:backfill:succeeded",t)}async function e0(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function t0(t){Ts||await A("tenant:backfill:succeeded",t)}async function r0(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function n0(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function i0(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var __={appSucceeded:XM,appFailed:e0,tenantSucceeded:t0,tenantFailed:r0,installationSucceeded:n0,installationFailed:i0};async function s0(t,e){let r={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:created",r,e)}async function o0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:updated",e)}async function a0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:deleted",e)}async function u0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:user_added",r)}async function c0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function l0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function d0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var I_={created:s0,updated:o0,deleted:a0,usersAdded:u0,usersDeleted:c0,createdOnboarding:l0,permissionsEdited:d0};async function p0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function f0(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 m0(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 O_={init:p0,imported:f0,deleted:m0};async function h0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function g0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var x_={appBackupRestored:h0,appBackupTriggered:g0};async function y0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function E0(t){let e={name:t};await A("environment_variable:deleted",e)}async function T0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var R_={created:y0,deleted:E0,upgradePanelOpened:T0};async function A0(t){let e={filters:t};await A("audit_log:filtered",e)}async function S0(t){let e={filters:t};await A("audit_log:downloaded",e)}var w_={filtered:A0,downloaded:S0};async function _0(t,e){await A("row_action:created",t,e)}var b_={created:_0};async function I0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}var D_={deleted:I0};function O0(){}var x0=async()=>{await yr.shutdown(),console.log("Events shutdown")};var bm=async t=>{await Ze.deleted(t),At(t)&&await Ze.permissionBuilderRemoved(t),rn(t)&&await Ze.permissionAdminRemoved(t)},R0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},w0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},b0=async(t,e)=>{let r=t.roles,n=e?.roles;await R0(t,r,n),await w0(t,r,n)},Dm=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),C0(t,e)&&await Ze.permissionBuilderRemoved(t),N0(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),D0(t,e)&&await Ze.permissionBuilderAssigned(t),v0(t,e)&&await Ze.permissionAdminAssigned(t),await b0(t,e)},D0=(t,e)=>C_(t,e,At),C0=(t,e)=>v_(t,e,At),v0=(t,e)=>C_(t,e,rn),N0=(t,e)=>v_(t,e,rn),C_=(t,e,r)=>!(!r(t)||e&&r(e)),v_=(t,e,r)=>!(r(t)||!e||!r(e));var rl={};P(rl,{createASession:()=>L0,endSession:()=>U0,getSession:()=>vm,getSessionsForUser:()=>Ra,invalidateSessions:()=>mi,updateSessionTTL:()=>Cm});var P_=require("uuid");var L_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):De.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function Ra(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 Ra(t)).map(o=>({key:As(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:As(t,s)}))),i&&i.length>0){let s=await 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 L0(t,e){let r=await Ra(t),n=0;if(r.length>=3){let c=r.sort((f,m)=>new Date(f.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,d=c.slice(0,l).map(f=>f.sessionId);n=d.length,await mi(t,{sessionIds:d,reason:"session limit exceeded"})}let i=await Wr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,P_.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,L_),{session:u,invalidatedSessionCount:n}}async function Cm(t){let e=await Wr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,L_)}async function U0(t,e){await(await Wr()).delete(As(t,e))}async function vm(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 Um={};P(Um,{PASSWORD_MAX_LENGTH:()=>Pm,PASSWORD_MIN_LENGTH:()=>Nm,validatePassword:()=>Lm});var Nm=+(h.PASSWORD_MIN_LENGTH||12),Pm=+(h.PASSWORD_MAX_LENGTH||512);function Lm(t){return!t||t.length<Nm?{valid:!1,error:`Password invalid. Minimum ${Nm} characters.`}:t.length>Pm?{valid:!1,error:`Password invalid. Maximum ${Pm} characters.`}:{valid:!0}}var M0=async t=>{let e=t._id;await Ft.removeUser(t),await bm(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()||Ya(e)?!0:(r||(r=await cs(Q())),!!(r&&r.email===e.email&&Ka(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new Ge("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Lm(o);if(!d.valid)throw new Ge(d.error,400)}u=r.hashPassword?await tm(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||is();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ie().allDocs(ui(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await il(e,{})).length}}static async getUsersByAppAccess(e){return await Mm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Vt(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await nl(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=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(f){if(f.status!==404)throw f}if(!c&&s&&(c=await Vt(s),c&&c._id!==o))throw new hr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[f,m]=await pi([c,e]);d=f!==m?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Vc(s,n);let f=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(f=Fm(f,c)),!c&&u?.length&&(f.roles={...u});let m=[];if(!o&&a.length>0)for(let p of a)m.push(t.groups.addUsers(p,[f._id]));try{let p=await i.put(f);return f._rev=p.rev,await Dm(f,c),c&&f.email!==c.email&&await Ft.removeUser({email:c.email}),await Ft.addUser(n,f._id,f.email,f.ssoId),await sn.invalidateUser(p.id),await Promise.all(m),i.get(f._id)}catch(p){throw p.status===409?"User exists already":p}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(f=>f.email),u=await lm(a),c=[];for(let f of e){let m=s.find(g=>g.email.toLowerCase()===f.email.toLowerCase()),p=u.includes(f.email.toLowerCase());if(m||p){c.push({email:f.email,reason:"Unavailable"});continue}f.userGroups=r||[],s.push(f),await pa(f)&&o.push(f)}let l=await cs(n),d=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let p of s)d&&delete p.password,i.push(t.buildUser(p,{hashPassword:!0,requirePassword:!d},n,void 0,l));let f=await Promise.all(i);await wa(f);for(let p of f)await Ft.addUser(n,p._id,p.email),await Dm(p,void 0);let m=f.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],g=m.map(y=>y._id);for(let y of r)p.push(t.groups.addUsers(y,g));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await $c(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),a=o.map(m=>({...m,_deleted:!0})),u=await wa(a),l=(await pi(o)).filter(m=>m).length,d=[];for(let m of o){let g=(await da(m._id)).ssoId;g&&(await Cc(g)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await M0(m)}await jr().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let f={};return o.reduce((m,p)=>(m[p._id]=p,m),f),u.forEach(m=>{let p=f[m.id].email;m.ok?n.successful.push({_id:m.id,email:p}):n.unsuccessful.push({_id:m.id,email:p,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Xr(o))throw n.userId===ur()._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 pa(n)?1:0;await t.quotas.removeUsers(1,s),await bm(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 Da(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function nl(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function k0(){let t=ie(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ve}`})).rows.map(n=>n.id)}async function B0(){let t=ie(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ve}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(t){return await ie().bulkDocs(t)}async function hi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Da(n)),n}async function Vt(t,e){if(t==null)throw"Must supply an email address to view";let r=await pr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Da(n)),n}async function G0(t){try{let e=await Vt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function il(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=Ac(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await pr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Da(s)),s}async function Mm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}return(await ie().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function U_(t,e){if(e)return Tc(ct(t),e._id)}async function M_(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 pr("by_email2",{...e,startkey:i,endkey:`${n}${Ve}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Da(o)),o}var V0=8;async function F_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??V0,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 il(r,a),l=d=>U_(r,d)):e?.string?.email?(u=await M_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await nl(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(ui(null,{...a,limit:void 0}))).rows.map(f=>f.doc),u=Fr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(ui(null,a))).rows.map(f=>f.doc),Nf(u,s,{paginate:!0,property:c,getKey:l})}async function $0(){return(await Uf("by_email2",{limit:0,include_docs:!1})).total_rows}async function W0(){let t=0;async function e(r){let n=await F_({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 Fm(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}async function Q0(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 j0(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 k_=3600;async function H0(t,e){let n=await If(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 K0(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 Ca({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=H0),!e)try{e=Q()}catch{e=await Ft.lookupTenantId(t)}let i=await Wo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,k_)),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 Y0(t){let e=await Wo(),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 K0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,k_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await Wo()).delete(t)}var $m={};P($m,{Writethrough:()=>Gm});var _s={};P(_s,{AUTO_EXTEND_POLLING_MS:()=>G_,doWithLock:()=>km,newRedlock:()=>gi});var B_=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 _f()).client;return new B_.default([n],e)}function Z0(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var G_=De.fromSeconds(10).toMs();async function km(t,e){let r=await z0(t.type,t.customOptions),n,i;try{let s=Z0(t),o=t.type==="auto_extend"?G_: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 V_=1e4,Bm=null;async function sl(){if(!Bm){let t=await Sf();Bm=new ni(t)}return Bm}function Na(t,e){return t.name+e}function Vm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function X0(t,e,r=V_){let n=await sl(),i=e._id,s;i&&(s=await n.get(Na(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await km({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;us("Ignoring conflict in write-through cache")}})).executed||us("Ignoring redlock conflict in write-through cache")),s=Vm(a,o?null:s?.lastWrite),a._id&&await n.store(Na(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function eF(t,e){let r=await sl(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Vm(s),await r.store(n,i)}return i.doc}async function tF(t,e){let r=await sl(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Vm(s),await r.store(n,i)}return i.doc}async function rF(t,e,r){let n=await sl();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Na(t,i))}finally{await t.remove(i,r)}}var Gm=class{constructor(e,r=V_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return X0(this.db,e,r)}async get(e){return eF(this.db,e)}async tryGet(e){return tF(this.db,e)}async remove(e,r){return rF(this.db,e,r)}};var Wm={};P(Wm,{createCode:()=>iF,getCode:()=>sF,invalidateCode:()=>oF});var nF=De.fromHours(1).toSeconds();async function iF(t,e){let r=fe();return await(await qo()).store(r,{userId:t,info:e},nF),r}async function sF(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 oF(t){await(await qo()).delete(t)}var Qm={};P(Qm,{DocWritethrough:()=>qm,DocWritethroughProcessor:()=>Pa,getProcessor:()=>uF,init:()=>$_});var aF=100,ol,Pa=class t{static get queue(){return t._queue||(t._queue=new Bt("docWritethroughQueue",{jobOptions:{attempts:aF}})),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 Pa.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function $_(){return ol=new Pa().init(),ol}function uF(){return ol||$_()}function al(t){return`config${C}${t}`}async function _t(t){let e=ie();try{return await e.get(al(t))}catch(r){if(r.status===404)return;throw r}}async function cF(t){return t._id||(t._id=al(t.type)),ie().put(t)}async function Zc(){let t=await _t("settings");return t||(t={_id:al("settings"),type:"settings",config:{}}),t.config.platformUrl=await La({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Qc({config:t.config}),t}async function Km(){return(await Zc()).config}async function La(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=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 Qc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Qr(ve.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await _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 lF(){return await _t("google")}async function ul(){return(await lF())?.config}async function Ym(){if(!h.SELF_HOSTED)return jm();let t=await ul();return(!t||!t.activated)&&(t=jm()),t}function jm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function dF(){return _t("logos_oidc")}async function pF(){return _t("oidc")}async function fF(){let t=(await pF())?.config;return t?.configs&&t.configs[0]}async function Jm(t){let e=(await _t("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function W_(){return _t("smtp")}async function mF(t){let e=await W_();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 hF(){return(await _t("scim"))?.config}async function gF(){return _t("ai")}async function yF(){return _t("recaptcha")}var oh={};P(oh,{AccessController:()=>Xm,BUILTIN_ROLE_IDS:()=>eh,Role:()=>on,RoleHierarchyTraversal:()=>cl,RoleIDVersion:()=>th,builtinRoleToNumber:()=>Ua,checkForRoleResourceArray:()=>H_,externalRole:()=>IF,findRole:()=>Ma,getAllRoleIds:()=>wF,getAllRoles:()=>sh,getBuiltinRole:()=>Q_,getBuiltinRoles:()=>nh,getDBRoleID:()=>K_,getExternalRoleID:()=>an,getExternalRoleIDs:()=>Y_,getRole:()=>OF,getUserRoleHierarchy:()=>ih,getUserRoleIdHierarchy:()=>j_,isBuiltin:()=>yi,lowerBuiltinRoleID:()=>_F,prefixRoleIDNoBuiltin:()=>Zm,roleIDsAreEqual:()=>It,roleToNumber:()=>SF,saveRoles:()=>xF,validInherits:()=>AF});var zm=W(require("semver"));var ll=W(require("lodash/fp/cloneDeep"));var q_=require("lodash");var eh={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...eh,BUILDER:"BUILDER"},th={UUID:void 0,NAME:"name"};function TF(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=th.NAME}addInheritance(e){return e&&typeof e=="string"?e=Zm(e):e&&Array.isArray(e)&&(e=e.map(Zm)),this.inherits=e,this}},cl=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=Ma(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!TF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ma(o.inherits,n,r),o&&i.push(o),Je.roles.checkForRoleInheritanceLoops(i))break}}return(0,q_.uniqBy)(i,s=>s._id)}},rh={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 nh(){return(0,ll.default)(rh)}function yi(t){return Object.values(eh).includes(t)}function Zm(t){return yi(t)?t:lr(t)}function Q_(t){let e=Object.values(rh).find(r=>t.includes(r._id));if(e)return(0,ll.default)(e)}function AF(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 Ua(t){let e=nh(),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 SF(t){if(yi(t))return Ua(t);let e=await ih(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>It(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(yi(n.inherits))return Ua(n.inherits)+1;return 0};return Math.max(...e.map(r))}function _F(t,e){return t?e&&Ua(t)>Ua(e)?e:t:e}function It(t,e){return lr(t)===lr(e)}function IF(t){let e;return t._id&&(e=an(t._id)),{...t,_id:e,inherits:Y_(t.inherits,t.version)}}function Ma(t,e,r){let n=Q_(t);n||(t=lr(t));let i=e.find(s=>s._id&&It(s._id,t));return!i&&!yi(t)&&r?.defaultPublic?(0,ll.default)(rh.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 OF(t,e){let r=ts(),n=[];if(!yi(t)){let i=await r.tryGet(K_(t));i&&n.push(i)}return Ma(t,n,e)}async function xF(t){await ts().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function RF(t,e){let r=await sh();if(It(t,he.ADMIN))return r;let n=Ma(t,r,e),i=[];return n&&(i=new cl(r,e).walk(n)),i}async function j_(t){return(await ih(t)).map(r=>r._id)}async function ih(t,e){return RF(t,e)}function H_(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 wF(t){return(await sh(t)).map(r=>r._id)}async function sh(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(Sc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=an(a._id,a.version)));let i=nh(),s=[];!r||await bF(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=H_(o.permissions,a);return n}}async function bF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!zm.default.valid(r)?!0:!zm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Xm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||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 j_(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 K_(t){return t?.startsWith("role")?t:lr(t)}function an(t,e){if(t.startsWith(`role${C}`)&&(yi(t)||e===th.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function Y_(t,e){return t&&(typeof t=="string"?an(t,e):t.map(r=>an(r,e)))}var ah={};P(ah,{BUILDER:()=>PF,BUILTIN_PERMISSIONS:()=>dl,CREATOR:()=>LF,GLOBAL_BUILDER:()=>UF,PermissionImpl:()=>ge,PermissionLevel:()=>ws,PermissionType:()=>ja,doesHaveBasePermission:()=>vF,getAllowedLevels:()=>X_,getBuiltinPermissionByID:()=>CF,getBuiltinPermissions:()=>DF,isPermissionLevelHigherThanRead:()=>NF,levelToNumber:()=>Z_});var J_=W(require("lodash/flatten")),z_=W(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function Z_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function X_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var dl={PUBLIC:{_id:"public",name:"Public",permissions:[new ge("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new ge("query","read"),new ge("table","read"),new ge("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new ge("query","write"),new ge("table","write"),new ge("automation","execute"),new ge("legacy_view","read"),new ge("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new ge("table","write"),new ge("user","read"),new ge("automation","execute"),new ge("webhook","read"),new ge("legacy_view","read"),new ge("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new ge("table","admin"),new ge("user","admin"),new ge("automation","admin"),new ge("webhook","read"),new ge("query","admin"),new ge("legacy_view","read"),new ge("app","read")]}};function DF(){return(0,z_.default)(dl)}function CF(t){return Object.values(dl).find(r=>r._id===t)}function vF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(dl),s=(0,J_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&X_(o.level).indexOf(e)!==-1)return!0;return!1}function NF(t){return Z_(t)>1}var PF="builder",LF="creator",UF="globalBuilder";var lh={};P(lh,{FlagSet:()=>fl,all:()=>BF,flags:()=>uh,getEnvFlags:()=>nI,init:()=>MF,isEnabled:()=>kF,parseEnvFlags:()=>hl,shutdown:()=>FF,testutils:()=>ch});var ml=W(require("crypto"));var eI=require("posthog-node"),tI=W(require("dd-trace"));var rI=require("lodash");var pl;function MF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),pl=new eI.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 FF(){pl?.shutdown()}function hl(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}function nI(){return hl(h.TENANT_FEATURE_FLAGS||"")}var fl=class{constructor(e){this.flagSchema=e;this.setId=ml.randomUUID()}defaults(){return(0,rI.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await tI.default.trace("features.fetch",async e=>{let r=df(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:d,key:f,value:m}of nI())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(f),!!this.isFlagName(f))){if(typeof i[f]!="boolean")throw new Error(`Feature: ${f} is not a boolean`);i[f]=m,n[`flags.${f}.source`]="environment"}let a=ur(),u=a?._id;if(!u){let d=cf();d&&(u=ml.createHash("sha512").update(d).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,pl&&u){n.readFromPostHog=!0;let d={tenantId:c},f=await pl.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[m,p]of Object.entries(f))if(this.isFlagName(m)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${m}": ${p}`,g)}}}let l=ff();for(let[d,f]of Object.entries(l))this.isFlagName(d)&&typeof f=="boolean"&&(i[d]=f,n[`flags.${d}.source`]="override");pf(this.setId,i);for(let[d,f]of Object.entries(i))n[`flags.${d}.value`]=f;return e?.addTags(n),i})}},uh=new fl(jh);async function kF(t){return await uh.isEnabled(t)}async function BF(){return await uh.fetch()}var ch={};P(ch,{setFeatureFlags:()=>iI,withFeatureFlags:()=>$F});function GF(){let t={};for(let{tenantId:e,key:r,value:n}of hl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function VF(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 iI(t,e){let r=GF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=VF(r);return Do({TENANT_FEATURE_FLAGS:n})}function $F(t,e,r){let n=iI(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var _h={};P(_h,{adminOnly:()=>Rl,auditLog:()=>_l,authError:()=>Fe,buildAuthMiddleware:()=>xk,buildCsrfMiddleware:()=>wk,buildTenancyMiddleware:()=>Rk,builderOnly:()=>bl,builderOrAdmin:()=>wl,google:()=>Tr,internalApi:()=>Ol,joiValidator:()=>ka,oidc:()=>Ar,passport:()=>bk,platformLogout:()=>Pk,refreshOAuthToken:()=>vk,ssoCallbackUrl:()=>un,updateUserOAuth:()=>Nk});var Sh={};P(Sh,{adminOnly:()=>Rl,auditLog:()=>_l,authError:()=>Fe,authenticated:()=>Sl,builderOnly:()=>bl,builderOrAdmin:()=>wl,correlation:()=>EI,csp:()=>OI,csrf:()=>xl,datasource:()=>Ik,errorHandling:()=>AI,featureFlagCookie:()=>xI,google:()=>Tr,internalApi:()=>Ol,ip:()=>wI,joiValidator:()=>ka,local:()=>Is,oidc:()=>Ar,pino:()=>gI,querystringToBody:()=>SI,ssoCallbackUrl:()=>un,tenancy:()=>Il});var Is={};P(Is,{authenticate:()=>QF,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 Km(),n="/api/global/auth";return $r()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var dh="Invalid credentials",WF="This account has expired. Please reset your password",qF={passReqToCallback:!0};async function QF(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,dh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Fe(n,dh)):i.password?await rm(r,i.password)?(delete i.password,n(null,i)):Fe(n,dh):(console.info(`user=${e} has no password set`,i),Fe(n,WF))}var Tr={};P(Tr,{buildVerifyFn:()=>aI,getCallbackUrl:()=>KF,strategyFactory:()=>ph});var Fa=t=>Promise.resolve(t);async function gl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Fe(r,"sso user id required");if(!t.email)return Fe(r,"sso user email required");let i=is(t.userId),s;try{s=await 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 jF(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 jF(t,e){let r,n,i;if(e.profile){let s=e.profile;if(s.name){let o=s.name;o.givenName&&(r=o.givenName),o.familyName&&(n=o.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}var HF=require("passport-google-oauth").OAuth2Strategy;function aI(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return gl(s,!0,i,t)}}async function ph(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=aI(r);return new HF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function KF(t){return un("google",t)}var Ar={};P(Ar,{buildVerifyFn:()=>cI,fetchStrategyConfig:()=>ZF,getCallbackUrl:()=>XF,strategyFactory:()=>zF});var uI=W(require("node-fetch"));var YF=require("@techpass/passport-openidconnect").Strategy;function cI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:JF(n,i),oauth2:{accessToken:s,refreshToken:o}};return gl(l,!1,c,t)}}function JF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&om(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function zF(t,e){try{let r=cI(e),n=new YF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function ZF(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,uI.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 XF(){return un("oidc")}var fh={};P(fh,{postAuth:()=>rk,preAuth:()=>tk});var ek=require("passport-google-oauth").OAuth2Strategy;async function lI(){let t=await Ym();if(!t)throw new Error("No google configuration found");return t}async function tk(t,e,r){let n=await lI(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await ph(n,s,Fa);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function rk(t,e,r){let n=await lI(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=mr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new ek({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 cr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var nk=/\/:(.*?)(\/.*)?$/g,Ei=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(nk);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 Th={};P(Th,{SecretOption:()=>fI,decrypt:()=>Eh,decryptFile:()=>ck,encrypt:()=>ok,encryptFile:()=>ak,getSecret:()=>yh});var Sr=W(require("crypto")),cn=W(require("fs")),hh=W(require("zlib"));var mh=require("path"),yl="aes-256-ctr",pI="-",ik=1e4,sk=32,El=16,gh=16,fI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(fI||{});function yh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function Tl(t,e){return Sr.default.pbkdf2Sync(t,e,ik,sk,"sha512")}function ok(t,e="api"){let r=Sr.default.randomBytes(El),n=Tl(yh(e),r),i=Sr.default.createCipheriv(yl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${pI}${a}`}function Eh(t,e="api"){let[r,n]=t.split(pI),i=Buffer.from(r,"hex"),s=Tl(yh(e),i),o=Sr.default.createDecipheriv(yl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function ak({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,mh.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,mh.join)(t,n)),a=Sr.default.randomBytes(El),u=Sr.default.randomBytes(gh),c=Tl(r,a),l=Sr.default.createCipheriv(yl,c,u);return o.write(a),o.write(u),s.pipe(hh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function uk(t){let e=cn.default.createReadStream(t),r=await dI(e,El),n=await dI(e,gh);return e.close(),{salt:r,iv:n}}async function ck(t,e,r){if(cn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await uk(t),s=cn.default.createReadStream(t,{start:El+gh}),o=cn.default.createWriteStream(e),a=Tl(r,n),u=Sr.default.createDecipheriv(yl,a,i),c=hh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",f=>{o.close(),d(f)}),u.on("error",f=>{o.close(),d(f)}),c.on("error",f=>{o.close(),d(f)}),o.on("error",f=>{o.close(),d(f)})})}function dI(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 hI=W(require("dd-trace")),lk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function dk(){return new Date(Date.now()-lk).toISOString()}function mI(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 pk(t,e){if(la(t))return{valid:!0,user:void 0};let n=Eh(t).split(C)[0];return qe(n,async()=>{let i;try{let s=ie();i=await pr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Ca({userId:i,tenantId:n,populateUser:e})};throw new fs})}function Al(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function Sl(t=[],e={publicAllowed:!1}){let r=t?Ei(t):[];return async(n,i)=>{let s=!1,o=Al(n,"x-budibase-api-version");Ti(n,r)&&(s=!0);try{let u=Al(n,"x-budibase-token"),c=mr(n,"budibase:auth")||bc(u),l=Al(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=Al(n,"x-budibase-tenant-id"),f=!1,m,p=!1,g;if(c&&!l){let T=c.sessionId,_=c.userId,S;try{S=await vm(_,T),e&&e.populateUser?m=await Ca({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await Ca({userId:_,tenantId:S.tenantId,email:S.email}),m.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<dk()&&await Cm(S),f=!0}catch(x){f=!1,console.error(`Auth Error: ${x.message}`),en(n,"budibase:auth")}}if(!f&&l){let T=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await pk(l,T);_&&(f=!0,g="api_key",m=S,p=!S)}!m&&d?m={tenantId:d}:m&&"password"in m&&delete m.password,f||(f=!1);let y=T=>T&&T.email;return y(m)&&hI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),mI(n,{authenticated:f,user:m,internal:p,version:o,publicEndpoint:s,loginMethod:g}),y(m)?Wp(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 mI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var _l=async(t,e)=>e();function Il(t,e,r={noTenancyRequired:!1}){let n=Ei(t),i=Ei(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ti(s,i)};!!Ti(s,n)||(u.excludeStrategies=["query"]);let l=Ho(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}async function Ol(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),la(r)||t.throw(403,"Unauthorized"),e()}var fk=["GET","HEAD","OPTIONS"],mk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function xl(t={noCsrfPatterns:[]}){let e=Ei(t.noCsrfPatterns);return async(r,n)=>{if(Ti(r,e)||fk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!mk.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Rl=async(t,e)=>(!t.internal&&!tn(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function wl(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 bl(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 hk=require("koa-pino-logger"),gk=require("correlation-id");function yk(){return{logger:Rc,genReqId:gk.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 Ek(){return h.HTTP_LOGGING?hk(yk()):(t,e)=>e()}var gI=Ek();var yI=require("uuid"),Tk=require("correlation-id"),EI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,yI.v4)()),Tk.withId(r,()=>e())};function TI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of YT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function AI(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:kc(r)};if(TI(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}function SI(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 II=W(require("crypto"));var _I={"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'"]},Ak=/^[A-Za-z0-9-*:/.]+$/,OI=async(t,e)=>{let r=II.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={..._I};if(n["script-src"]=[..._I["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Zo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
- `).filter(c=>Ak.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 xI=async(t,e)=>{let n=mr(t,"budibase:featureflags")?.flags||{};await mf(n,async()=>{await e()})};var ka={};P(ka,{body:()=>Sk,params:()=>_k});var Ah=W(require("joi"));function RI(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:Ah.default.any().optional(),updatedAt:Ah.default.any().optional()}));let{error:u}=t.validate(o,{allowUnknown:r?.allowUnknown});if(u){let c=u.message;n&&(c=`Invalid ${e} - ${c}`),i.throw(400,c)}return s()}}function Sk(t,e){return RI(t,"body",e)}function _k(t,e){return RI(t,"params",e)}async function wI(t,e){return t.ip?await lf(t.ip,()=>e()):e()}var Ik={google:fh};var bI=require("koa-passport"),Ok=require("passport-local").Strategy,Dl=require("passport-oauth2-refresh"),xk=Sl,Rk=Il,wk=xl,bk=bI;bI.use(new Ok(Is.options,Is.authenticate));async function Dk(t,e){let r=await Ar.getCallbackUrl(),n,i;try{if(n=await Ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Ar.strategyFactory(n,Fa)}catch{throw new Error("Could not refresh OAuth Token")}return Dl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Dl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Ck(t,e){let r=await Tr.getCallbackUrl(t),n;try{n=await Tr.strategyFactory(t,r,Fa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Dl.use(n),new Promise(i=>{Dl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function vk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Jm(r);return n?Dk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await ul();return n?Ck(n,t):{err:{data:"Google configuration not found"}}}}}async function Nk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Pk(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=mr(e,"budibase:auth"),s=await Ra(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 tl.logout(e.user?.email),await va(r)}var Oh={};P(Oh,{validate:()=>kk});var D=W(require("joi")),Lk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Ih(t,e){let{error:r}=t.validate(e);if(r)throw r}function Uk(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});Ih(e,t)}function Mk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(Ul)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(Ll)),readable:D.default.boolean(),displayName:D.default.string(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(Ml).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...Lk),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});Ih(n,t)}function Fk(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(Z)).required(),customType:D.default.string().allow(...Object.values(pe)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...Hh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});Ih(n,t)}function kk(t){switch(t?.type){case"component":Uk(t);break;case"datasource":Mk(t);break;case"automation":Fk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var xh={};P(xh,{Client:()=>Qe,clients:()=>qr,locks:()=>_s,utils:()=>lc});var Rh={};P(Rh,{isBlacklisted:()=>Gk,refreshBlacklist:()=>NI});var DI=W(require("dns")),vl=W(require("net"));var CI=require("util"),Cl,Bk=(0,CI.promisify)(DI.default.lookup);async function vI(t){return vl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Bk(t,{all:!0})).map(r=>r.address)}async function NI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(vl.default.isIP(i))r.push(i);else{let s=await vI(i);r=r.concat(s)}}Cl=r}async function Gk(t){if(Cl||await NI(),Cl?.length===0)return!1;let e;return vl.default.isIP(t)?e=[t]:e=await vI(t),!!Cl?.find(r=>e.includes(r))}var bh={};P(bh,{init:()=>$k});var Vk={"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 PI(t,e){let r=Vk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ba=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=PI(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 i_()}};var LI,wh;function $k(t){Er||el(),wh||(wh=new Ba(t)),LI||(LI=Er.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await wh.processEvent(r,n,i)}))}var Fh={};P(Fh,{COUNT_FIELD_NAME:()=>Uh,Sql:()=>WI,SqlTable:()=>Nl,designDoc:()=>Mh,utils:()=>nf});var kI=require("knex");var Wk=require("knex");function Dh(t){return["link","formula","ai"].indexOf(t)!==-1}function UI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(f=>f.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(f=>f.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(f=>f.foreignKey);for(let[f,m]of Object.entries(e.schema)){let p=n?.schema[f];if(p&&p.type||c.includes(f)||i?.updated===f)continue;let g=m.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(f)?t.string(f,255):t.text(f);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:y,toTable:T}=m.meta;t.integer(f).unsigned(),t.foreign(f).references(`${T}.${y}`)}else l.indexOf(f)===-1&&t.float(f);break;case"bigint":t.bigint(f);break;case"boolean":t.boolean(f);break;case"datetime":m.timeOnly?t.time(f):t.datetime(f,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":Je.schema.isDeprecatedSingleUserColumn(m)?t.text(f):t.json(f);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:y}=Zp(m.tableId),T=r[y];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let _=T.primary[0],S=T.schema[_].externalType;S?t.specificType(m.foreignKey,S):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${y}.${_}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(f);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:Cr.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Dh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,p])=>!Dh(p.type)&&e.schema[m]==null).forEach(([m,p])=>{i?.old===m||Dh(p.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function Qk(t,e,r){return t.createTable(e.name,n=>{UI(n,e,r)})}function jk(t,e,r,n,i){return t.alterTable(e.name,s=>{UI(s,e,r,n,i)})}function Hk(t,e){return t.dropTable(e.name)}var Ch=class{constructor(e){this.sqlClient=e}getBaseSqlClient(){return this.sqlClient}getSqlClient(){return this.extendedSqlClient||this.sqlClient}setExtendedSqlClient(e){this.extendedSqlClient=e}_operation(e){return e.operation}_tableQuery(e){let r=(0,Wk.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=Qk(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=jk(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=Hk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Zi(n)}},Nl=Ch;var BI=require("lodash"),Uh="__bb_total";function MI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function vh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Kk(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 GI(t){return Array.isArray(t)?t.map(e=>GI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function FI(t){return t.sourceType==="internal"||t.sourceId===Wl}function Yk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function VI(t,e='"'){return`${e}${Yk(t,e)}${e}`}function Nh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=VI(t[r],e));return`[${t.join(",")}]`}function $I(t){return Jh.includes(t.type)&&!Je.schema.isDeprecatedSingleUserColumn(t)}var Jk={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},Ph=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array",POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new 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()&&$I(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${e}}`;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!tf(e))return null}else if(r.dateOnly){let n=ef(e);return n?new Date(n):null}else return r.ignoreTimezones?oc(e)?new Date(e):Xp(e)?new Date(e+"Z"):null:oc(e)?new Date(e.trim()):null;return e}parseBody(e){for(let[r,n]of Object.entries(e)){let{column:i}=this.splitter.run(r),s=this.table.schema[i];s&&(e[r]=this.parse(n,s))}return e}parseFilters(e){e=(0,BI.cloneDeep)(e);for(let r of Object.values(Ir)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(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 f=d.tableName,m=a?.[f]||f,p=l(f)||l(m),g=l(d.column);if((p||g)&&d.to&&d.tableName){let y=this.knex.select(this.knex.raw(1)).from({[m]:f}),T=y.clone(),_=rf(d),S;if(p?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let x=a?.[_.through]||d.through,E=this.tableNameWithSchema(_.through,{alias:x,schema:o});T=T.innerJoin(E,function(){this.on(`${m}.${_.toPrimary}`,"=",`${x}.${_.to}`)}).where(`${x}.${_.from}`,"=",this.rawQuotedIdentifier(`${c}.${_.fromPrimary}`)),this.client==="sqlite3"&&(T=this.addJoinFieldCheck(T,_)),e=e.where(I=>{I.whereExists(i(S,T)),r&&I.orWhereNotExists(y.clone().innerJoin(E,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${x}.${_.from}`)}))})}else{let x=`${m}.${d.to}`,E=`${c}.${d.from}`;T=T.where(x,"=",this.rawQuotedIdentifier(E)),e=e.where(I=>{I.whereExists(i(S,T.clone())),r&&I.orWhereNotExists(T)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(p){return s?.[p]||p}function l(p,g,y,T){let _=(S,x,E)=>{let[I,...k]=x.split("."),b=k.join("."),B=c(I);return S.andWhere(de=>y(de,B?`${B}.${b}`:b,E))};for(let S in p){let x=p[S],E=na(S),I=E.includes("."),k=n?.relationship&&I,b;if(S==="_complexIdOperator"&&(b=p[S])&&T){let B=c(u);e=T(e,b.id.map(de=>B?`${B}.${de}`:de),b.values)}else if(I)k&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Jk[g],E,(B,de)=>_(de,B,x)));else{let B=c(u);e=y(e,B?`${B}.${E}`:E,x)}}}let d=(p,g,y)=>((r?.fuzzyOr||o)&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3"?p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):p.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),f=(p,g=!1)=>{function y(T){return(o||p===r?.containsAny)&&(T=T.or),p===r?.notContains&&(T=T.not),T}this.client==="pg"?l(p,"contains",(T,_,S)=>{T=y(T);let x=this.getFieldSchema(_),E="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(x)&&(E="",S=`{${S.map(k=>k.substring(1,k.length-1))}}`),g?T.whereRaw(E?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(_),E?this.knex.raw(Nh(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${E} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),E?this.knex.raw(Nh(S)):this.knex.raw(S)])}):this.client==="mysql2"||this.client==="mariadb"?l(p,"contains",(T,_,S)=>y(T).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw(VI(Nh(S)))])):l(p,"contains",(T,_,S)=>(S.length===0||(T=T.where(x=>(p===r?.notContains&&(x=x.not),x=x.where(E=>{for(let I of S){p===r?.containsAny?E=E.or:E=E.and;let k=typeof I=="string"?`"${I.toLowerCase()}"`:I;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${k}%`)}}),p===r?.notContains&&(x=x.or.whereNull(this.rawQuotedIdentifier(_))),x))),T))};if(r.$and){let{$and:p}=r;for(let g of p.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:p}=r;e=e.where(g=>{for(let y of p.conditions)g.orWhere(T=>this.addFilters(T,{...y,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(p,g,y)=>{let T=this.getFieldSchema(g),_=Array.isArray(y)?y:[y];if(o&&(p=p.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly){for(let S of _)S!=null?p=p.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):p=p.or.whereNull(g);return p}return p.whereIn(g,_)},(p,g,y)=>(o&&(p=p.or),this.client==="oracledb"&&(g=g.map(T=>this.convertClobs(T))),p.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&l(r.string,"string",(p,g,y)=>{if(o&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3")return p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let T=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?p.whereRaw(`??::text ilike '${y}%'`,[this.knex.raw(this.quote(T.name))]):p.whereILike(g,`${y}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(p,g,y)=>{let T=b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype;T(y.low)&&(y.low=""),T(y.high)&&(y.high="");let _=ac(y.low),S=ac(y.high),x=this.getFieldSchema(g),E=g,I=y.high,k=y.low;return this.client==="sqlite3"&&x?.type==="datetime"&&x.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),k!=null&&(k=k.toISOString().slice(0,10))),this.client==="oracledb"?E=this.convertClobs(g):this.client==="sqlite3"&&x?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[y.high]),k=this.knex.raw("CAST(? AS INTEGER)",[y.low])),o&&(p=p.or),_&&S?p.whereBetween(E,[k,I]):_?p.where(E,">=",k):S?p.where(E,"<=",I):p}),r.equal&&l(r.equal,"equal",(p,g,y)=>{let T=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return p.where(S=>S.whereNotNull(_).andWhere(_,y))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?p.whereLike(g,`${y.toISOString().slice(0,10)}%`):p.whereNull(g):p.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&l(r.notEqual,"notEqual",(p,g,y)=>{let T=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return p.where(S=>S.not.whereNull(_).and.where(_,"!=",y)).or.whereNull(_)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?p.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):p.not.whereNull(g):p.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&l(r.empty,"empty",(p,g)=>(o&&(p=p.or),p.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(p,g)=>(o&&(p=p.or),p.whereNotNull(g))),r.contains&&f(r.contains),r.notContains&&f(r.notContains),r.containsAny&&f(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!zp(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Or(r.documentType)}%`),e}isSqs(){return FI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;FI(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${Uh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,f;this.isAggregateField(a)?f=this.rawQuotedIdentifier(a):this.client==="oracledb"?f=this.convertClobs(d):f=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[f,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}if(!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)){if(i[0]===void 0)throw new Error(`Primary key not found for table ${this.table.name}`);e=e.orderBy(`${s}.${i[0]}`)}return e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:f,through:m,to:p,from:g,fromPrimary:y,toPrimary:T}=d;if(!f||!r)continue;let _=c[f];if(!_)throw new Error(`related table "${f}" not found in datasource`);let S=a?.[f]||f,x=a?.[r]||r,E=m&&a?.[m]||m,I=this.tableNameWithSchema(f,{alias:S,schema:u}),k=[..._?.primary||[],_?.primaryDisplay].filter($=>$),b=Kk(l.filter($=>$.split(".")[0]===S),k);b=b.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=b.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||p}`,V=s.from(I).orderBy(ln),F=m&&T&&y,N=F?`${E}.${g}`:`${S}.${p}`,q=F?`${x}.${y}`:`${x}.${g}`;if(F){let $=this.tableNameWithSchema(m,{alias:E,schema:u});V=V.join($,function(){this.on(`${S}.${T}`,"=",`${E}.${p}`)})}V=V.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(q));let O=$=>(V=V.select(b.map(ue=>this.rawQuotedIdentifier(ue))).limit(vh()),s.select($).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,d),K=O(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":K=O(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${vh()})`));break;case"mysql2":case"oracledb":K=O(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let $=s.select("*").from({[x]:V.select(B.map(ue=>s.ref(ue[1]).as(ue[0]))).limit(vh())});K=s.raw(`(SELECT ?? = (${$} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,f=this.tableNameWithSchema(o,{alias:c,schema:s}),m=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(m,function(){for(let p of n){let g=p.fromPrimary,y=p.from;this.orOn(`${d}.${g}`,"=",`${l}.${y}`)}}).leftJoin(f,function(){for(let p of n){let g=p.toPrimary,y=p.to;this.orOn(`${c}.${g}`,`${l}.${y}`)}}):e=e.leftJoin(f,function(){for(let p of n){let g=p.from,y=p.to;this.orOn(`${d}.${g}`,"=",`${c}.${y}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let m=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=m}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let f=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[f]:"paginated"}));return this.addJsonRelationships(m,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Lh=class extends Nl{constructor(r,n=MI()){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=GI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,kI.knex)(s),a,u=new Ph(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:MI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let f of a)d.push(await n(f,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Wl){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(!$I(a))continue;let u=`${s}.${o}`;for(let c of n)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return n}log(r,n){Po(this.getSqlClient(),r,n)}},WI=Lh;var Mh={};P(Mh,{base:()=>zk});function zk(t){return{_id:Kt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var kh={};P(kh,{jsonFromCsvString:()=>Zk});var qI=W(require("csvtojson"));async function Zk(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 Bh=class{constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,s=this.controller,o=this.outputMiddlewares,a=()=>{},u=[n,...i,s,...o,a];e[r](...u)}},Pl=Bh;var QI=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 Pl(e,r,i);if(n.length!==0)for(let o of n)s.addMiddleware(o);return this.endpoints.push(s),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new QI.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var Ga=class{constructor(){this.groups=[]}group(...e){let r=new 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 Xk={...Ko,...Ae},eB=(t={})=>{ic(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DesignDocuments,DocumentType,Duration,DurationType,EmailUnavailableError,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UnexpectedError,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
36
+ }`,"platform_users_lowercase_2")},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});
39
39
  //# sourceMappingURL=index.js.map