@budibase/backend-core 3.32.3 → 3.32.5

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 pO=Object.create;var Ii=Object.defineProperty;var mO=Object.getOwnPropertyDescriptor;var hO=Object.getOwnPropertyNames;var gO=Object.getPrototypeOf,EO=Object.prototype.hasOwnProperty;var s=(t,e)=>Ii(t,"name",{value:e,configurable:!0});var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)Ii(t,r,{get:e[r],enumerable:!0})},Xm=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of hO(e))!EO.call(t,i)&&i!==r&&Ii(t,i,{get:()=>e[i],enumerable:!(n=mO(e,i))||n.enumerable});return t};var B=(t,e,r)=>(r=t!=null?pO(gO(t)):{},Xm(e||!t||!t.__esModule?Ii(r,"default",{value:t,enumerable:!0}):r,t)),yO=t=>Xm(Ii({},"__esModule",{value:!0}),t);var ch=q((Hc,Yc)=>{"use strict";(function(t,e){typeof Hc=="object"&&typeof Yc<"u"?Yc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Hc,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",o="minute",a="hour",u="day",c="week",l="month",d="quarter",f="year",h="date",p="Invalid Date",S=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|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(W){var F=["th","st","nd","rd"],N=W%100;return"["+W+(F[(N-20)%10]||F[N]||F[0])+"]"}},y=s(function(W,F,N){var G=String(W);return!G||G.length>=F?W:""+Array(F+1-G.length).join(N)+W},"m"),I={s:y,z:function(W){var F=-W.utcOffset(),N=Math.abs(F),G=Math.floor(N/60),M=N%60;return(F<=0?"+":"-")+y(G,2,"0")+":"+y(M,2,"0")},m:s(function W(F,N){if(F.date()<N.date())return-W(N,F);var G=12*(N.year()-F.year())+(N.month()-F.month()),M=F.clone().add(G,l),K=N-M<0,D=F.clone().add(G+(K?-1:1),l);return+(-(G+(N-M)/(K?M-D:D-M))||0)},"t"),a:function(W){return W<0?Math.ceil(W)||0:Math.floor(W)},p:function(W){return{M:l,y:f,w:c,d:u,D:h,h:a,m:o,s:i,ms:n,Q:d}[W]||String(W||"").toLowerCase().replace(/s$/,"")},u:function(W){return W===void 0}},O="en",w={};w[O]=E;var T="$isDayjsObject",_=s(function(W){return W instanceof H||!(!W||!W[T])},"S"),U=s(function W(F,N,G){var M;if(!F)return O;if(typeof F=="string"){var K=F.toLowerCase();w[K]&&(M=K),N&&(w[K]=N,M=K);var D=F.split("-");if(!M&&D.length>1)return W(D[0])}else{var J=F.name;w[J]=F,M=J}return!G&&M&&(O=M),M||!G&&O},"t"),R=s(function(W,F){if(_(W))return W.clone();var N=typeof F=="object"?F:{};return N.date=W,N.args=arguments,new H(N)},"O"),k=I;k.l=U,k.i=_,k.w=function(W,F){return R(W,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var H=function(){function W(N){this.$L=U(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[T]=!0}s(W,"M");var F=W.prototype;return F.parse=function(N){this.$d=function(G){var M=G.date,K=G.utc;if(M===null)return new Date(NaN);if(k.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var D=M.match(S);if(D){var J=D[2]-1||0,de=(D[7]||"0").substring(0,3);return K?new Date(Date.UTC(D[1],J,D[3]||1,D[4]||0,D[5]||0,D[6]||0,de)):new Date(D[1],J,D[3]||1,D[4]||0,D[5]||0,D[6]||0,de)}}return new Date(M)}(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 k},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(N,G){var M=R(N);return this.startOf(G)<=M&&M<=this.endOf(G)},F.isAfter=function(N,G){return R(N)<this.startOf(G)},F.isBefore=function(N,G){return this.endOf(G)<R(N)},F.$g=function(N,G,M){return k.u(N)?this[G]:this.set(M,N)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(N,G){var M=this,K=!!k.u(G)||G,D=k.p(N),J=s(function(Lr,ve){var nr=k.w(M.$u?Date.UTC(M.$y,ve,Lr):new Date(M.$y,ve,Lr),M);return K?nr:nr.endOf(u)},"l"),de=s(function(Lr,ve){return k.w(M.toDate()[Lr].apply(M.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(ve)),M)},"$"),Te=this.$W,we=this.$M,Ye=this.$D,Dn="set"+(this.$u?"UTC":"");switch(D){case f:return K?J(1,0):J(31,11);case l:return K?J(1,we):J(0,we+1);case c:var Ur=this.$locale().weekStart||0,Oi=(Te<Ur?Te+7:Te)-Ur;return J(K?Ye-Oi:Ye+(6-Oi),we);case u:case h:return de(Dn+"Hours",0);case a:return de(Dn+"Minutes",1);case o:return de(Dn+"Seconds",2);case i:return de(Dn+"Milliseconds",3);default:return this.clone()}},F.endOf=function(N){return this.startOf(N,!1)},F.$set=function(N,G){var M,K=k.p(N),D="set"+(this.$u?"UTC":""),J=(M={},M[u]=D+"Date",M[h]=D+"Date",M[l]=D+"Month",M[f]=D+"FullYear",M[a]=D+"Hours",M[o]=D+"Minutes",M[i]=D+"Seconds",M[n]=D+"Milliseconds",M)[K],de=K===u?this.$D+(G-this.$W):G;if(K===l||K===f){var Te=this.clone().set(h,1);Te.$d[J](de),Te.init(),this.$d=Te.set(h,Math.min(this.$D,Te.daysInMonth())).$d}else J&&this.$d[J](de);return this.init(),this},F.set=function(N,G){return this.clone().$set(N,G)},F.get=function(N){return this[k.p(N)]()},F.add=function(N,G){var M,K=this;N=Number(N);var D=k.p(G),J=s(function(we){var Ye=R(K);return k.w(Ye.date(Ye.date()+Math.round(we*N)),K)},"y");if(D===l)return this.set(l,this.$M+N);if(D===f)return this.set(f,this.$y+N);if(D===u)return J(1);if(D===c)return J(7);var de=(M={},M[o]=e,M[a]=r,M[i]=t,M)[D]||1,Te=this.$d.getTime()+N*de;return k.w(Te,this)},F.subtract=function(N,G){return this.add(-1*N,G)},F.format=function(N){var G=this,M=this.$locale();if(!this.isValid())return M.invalidDate||p;var K=N||"YYYY-MM-DDTHH:mm:ssZ",D=k.z(this),J=this.$H,de=this.$m,Te=this.$M,we=M.weekdays,Ye=M.months,Dn=M.meridiem,Ur=s(function(ve,nr,V,Fo){return ve&&(ve[nr]||ve(G,K))||V[nr].slice(0,Fo)},"h"),Oi=s(function(ve){return k.s(J%12||12,ve,"0")},"d"),Lr=Dn||function(ve,nr,V){var Fo=ve<12?"AM":"PM";return V?Fo.toLowerCase():Fo};return K.replace(m,function(ve,nr){return nr||function(V){switch(V){case"YY":return String(G.$y).slice(-2);case"YYYY":return k.s(G.$y,4,"0");case"M":return Te+1;case"MM":return k.s(Te+1,2,"0");case"MMM":return Ur(M.monthsShort,Te,Ye,3);case"MMMM":return Ur(Ye,Te);case"D":return G.$D;case"DD":return k.s(G.$D,2,"0");case"d":return String(G.$W);case"dd":return Ur(M.weekdaysMin,G.$W,we,2);case"ddd":return Ur(M.weekdaysShort,G.$W,we,3);case"dddd":return we[G.$W];case"H":return String(J);case"HH":return k.s(J,2,"0");case"h":return Oi(1);case"hh":return Oi(2);case"a":return Lr(J,de,!0);case"A":return Lr(J,de,!1);case"m":return String(de);case"mm":return k.s(de,2,"0");case"s":return String(G.$s);case"ss":return k.s(G.$s,2,"0");case"SSS":return k.s(G.$ms,3,"0");case"Z":return D}return null}(ve)||D.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(N,G,M){var K,D=this,J=k.p(G),de=R(N),Te=(de.utcOffset()-this.utcOffset())*e,we=this-de,Ye=s(function(){return k.m(D,de)},"D");switch(J){case f:K=Ye()/12;break;case l:K=Ye();break;case d:K=Ye()/3;break;case c:K=(we-Te)/6048e5;break;case u:K=(we-Te)/864e5;break;case a:K=we/r;break;case o:K=we/e;break;case i:K=we/t;break;default:K=we}return M?K:k.a(K)},F.daysInMonth=function(){return this.endOf(l).$D},F.$locale=function(){return w[this.$L]},F.locale=function(N,G){if(!N)return this.$L;var M=this.clone(),K=U(N,G,!0);return K&&(M.$L=K),M},F.clone=function(){return k.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},W}(),Ie=H.prototype;return R.prototype=Ie,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",h]].forEach(function(W){Ie[W[1]]=function(F){return this.$g(F,W[0],W[1])}}),R.extend=function(W,F){return W.$i||(W(F,H,R),W.$i=!0),R},R.locale=U,R.isDayjs=_,R.unix=function(W){return R(1e3*W)},R.en=w[O],R.Ls=w,R.p={},R})});var at=q(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.Err=Ne.Valid=Ne.err=Ne.valid=void 0;var VO=s(t=>new Yo(t),"valid");Ne.valid=VO;var qO=s(t=>new zo(t),"err");Ne.err=qO;var Yo=class{static{s(this,"Valid")}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,Ne.valid)(e(this.value))}mapErr(e){return(0,Ne.valid)(this.value)}};Ne.Valid=Yo;var zo=class{static{s(this,"Err")}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,Ne.err)(this.error)}mapErr(e){return(0,Ne.err)(e(this.error))}};Ne.Err=zo});var ut=q(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0})});var or=q(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Ot();var z=at();ut();var KO=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],QO=["sun","mon","tue","wed","thu","fri","sat"],jO=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),Ci=s((t,e,r)=>{if(e==="months"&&r.useAliases&&KO.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&QO.indexOf(t.toLowerCase())!==-1)return(0,z.valid)(!0);let n=Number(t);if(isNaN(n))return(0,z.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,z.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,z.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,z.valid)(!0)},"checkSingleElementWithinLimits"),HO=s((t,e,r)=>{if(t==="*")return jO(e,r)?(0,z.valid)(!0):(0,z.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,z.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,z.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,z.valid)(!0):Ci(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,z.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,z.valid)(!0):Ci(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,z.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,z.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,z.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ci(n,e,r)}return Ci(t,e,r)},"checkSingleElement"),hh=s((t,e,r,n)=>t==="*"?(0,z.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,z.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,z.valid)(!0):Ci(t,e,r),"checkRangeElement"),YO=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return HO(n[0],e,r);if(n.length===2){let i=hh(n[0],e,r,0),o=hh(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,z.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,z.valid)(!0)}return(0,z.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),zO=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '/')`);let i=YO(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,z.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,z.valid)(!0)},"checkListElement"),JO=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,z.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,z.valid)(!0):(0,z.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,z.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(zO(a,e,r))}),i.every(a=>a.isValid()))return(0,z.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,z.err)(o)},"checkField");Xc.default=JO});var gh=q(bi=>{"use strict";var ZO=bi&&bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bi,"__esModule",{value:!0});Ot();var XO=at(),eI=ZO(or());ut();var tI=s((t,e)=>{if(!t.seconds)return(0,XO.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,eI.default)(r,"seconds",e)},"checkSeconds");bi.default=tI});var Eh=q(xi=>{"use strict";var rI=xi&&xi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xi,"__esModule",{value:!0});Ot();var nI=at(),iI=rI(or());ut();var sI=s((t,e)=>{if(!t.minutes)return(0,nI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,iI.default)(r,"minutes",e)},"checkMinutes");xi.default=sI});var yh=q(vi=>{"use strict";var oI=vi&&vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vi,"__esModule",{value:!0});Ot();var aI=at(),uI=oI(or());ut();var cI=s((t,e)=>{if(!t.hours)return(0,aI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,uI.default)(r,"hours",e)},"checkHours");vi.default=cI});var Th=q(Ni=>{"use strict";var lI=Ni&&Ni.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ni,"__esModule",{value:!0});Ot();var Pi=at(),dI=lI(or());ut();var fI=s((t,e)=>{if(!t.daysOfMonth)return(0,Pi.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Pi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Pi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Pi.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Pi.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,dI.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");Ni.default=fI});var Sh=q(Ui=>{"use strict";var pI=Ui&&Ui.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ui,"__esModule",{value:!0});Ot();var mI=at(),hI=pI(or());ut();var gI=s((t,e)=>{if(!t.months)return(0,mI.err)(["months field is undefined."]);let{months:r}=t;return(0,hI.default)(r,"months",e)},"checkMonths");Ui.default=gI});var Ah=q(Mi=>{"use strict";var EI=Mi&&Mi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Mi,"__esModule",{value:!0});Ot();var Li=at(),yI=EI(or());ut();var TI=s((t,e)=>{if(!t.daysOfWeek)return(0,Li.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Li.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Li.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Li.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Li.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,yI.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");Mi.default=TI});var _h=q(ki=>{"use strict";var SI=ki&&ki.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ki,"__esModule",{value:!0});Ot();var AI=at(),_I=SI(or());ut();var OI=s((t,e)=>{if(!t.years)return(0,AI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,_I.default)(r,"years",e)},"checkYears");ki.default=OI});var Dh=q((wF,wh)=>{"use strict";var el;try{el=Map}catch{}var tl;try{tl=Set}catch{}function Oh(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(Ih);if(el&&t instanceof el)return new Map(Array.from(t.entries()));if(tl&&t instanceof tl)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 o=e.findIndex(function(a){return a===t[i]});n[i]=o>-1?r[o]:Oh(t[i],e,r)}return n}return t}s(Oh,"baseClone");function Ih(t){return Oh(t,[],[])}s(Ih,"clone");wh.exports=Ih});var Fi=q(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});rl.default=xI;var II=Object.prototype.toString,wI=Error.prototype.toString,DI=RegExp.prototype.toString,RI=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",CI=/^Symbol\((.*)\)(.*)$/;function bI(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(bI,"printNumber");function Rh(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return bI(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return RI.call(t).replace(CI,"Symbol($1)");let n=II.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+wI.call(t)+"]":n==="RegExp"?DI.call(t):null}s(Rh,"printSimpleValue");function xI(t,e){let r=Rh(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=Rh(this[n],e);return o!==null?o:i},2)}s(xI,"printValue")});var Nt=q(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.default=Se.array=Se.object=Se.boolean=Se.date=Se.number=Se.string=Se.mixed=void 0;var Ch=vI(Fi());function vI(t){return t&&t.__esModule?t:{default:t}}s(vI,"_interopRequireDefault");var bh={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,o=`${t} must be a \`${e}\` type, but the final value was: \`${(0,Ch.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Ch.default)(n,!0)}\`).`:".");return r===null&&(o+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),o},defined:"${path} must be defined"};Se.mixed=bh;var xh={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"};Se.string=xh;var vh={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"};Se.number=vh;var Ph={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=Ph;var Nh={isValue:"${path} field must be ${value}"};Se.boolean=Nh;var Uh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=Uh;var Lh={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"};Se.array=Lh;var PI=Object.assign(Object.create(null),{mixed:bh,string:xh,number:vh,date:Ph,object:Uh,array:Lh,boolean:Nh});Se.default=PI});var xn=q(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.default=void 0;var NI=s(t=>t&&t.__isYupSchema__,"_default");Jo.default=NI});var kh=q(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var UI=Mh(require("lodash/has")),LI=Mh(xn());function Mh(t){return t&&t.__esModule?t:{default:t}}s(Mh,"_interopRequireDefault");var nl=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,UI.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:o}=r,a=typeof n=="function"?n:(...u)=>u.every(c=>c===n);this.fn=function(...u){let c=u.pop(),l=u.pop(),d=a(...u)?i:o;if(d)return typeof d=="function"?d(l):l.concat(d.resolve(c))}}resolve(e,r){let n=this.refs.map(o=>o.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,LI.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},MI=nl;Zo.default=MI});var sl=q(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.default=kI;function kI(t){return t==null?[]:[].concat(t)}s(kI,"toArray")});var kr=q(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.default=void 0;var FI=Fh(Fi()),BI=Fh(sl());function Fh(t){return t&&t.__esModule?t:{default:t}}s(Fh,"_interopRequireDefault");function ol(){return ol=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},ol.apply(this,arguments)}s(ol,"_extends");var WI=/\$\{\s*(\w+)\s*\}/g,al=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ol({},r,{path:n})),typeof e=="string"?e.replace(WI,(i,o)=>(0,FI.default)(r[o])):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,BI.default)(e).forEach(o=>{t.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};Xo.default=al});var ea=q(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.default=VI;var ul=$I(kr());function $I(t){return t&&t.__esModule?t:{default:t}}s($I,"_interopRequireDefault");var GI=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function VI(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=GI(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new ul.default(a,o,c)):l(null,o);for(let h=0;h<n.length;h++){let p=n[h];p(i,s(function(m){if(m){if(!ul.default.isError(m))return l(m,o);if(r)return m.value=o,l(m,o);f.push(m)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new ul.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s(VI,"runTests")});var Bi=q(($F,Vh)=>{"use strict";function Fr(t){this._maxSize=t,this.clear()}s(Fr,"Cache");Fr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Fr.prototype.get=function(t){return this._values[t]};Fr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var qI=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Gh=/^\d+$/,KI=/^\d/,QI=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,jI=/^\s*(['"]?)(.*?)(\1)\s*$/,fl=512,Bh=new Fr(fl),Wh=new Fr(fl),$h=new Fr(fl);Vh.exports={Cache:Fr,split:dl,normalizePath:ll,setter:function(t){var e=ll(t);return Wh.get(t)||Wh.set(t,s(function(n,i){for(var o=0,a=e.length,u=n;o<a-1;){var c=e[o];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;u=u[e[o++]]}u[e[o]]=i},"setter"))},getter:function(t,e){var r=ll(t);return $h.get(t)||$h.set(t,s(function(i){for(var o=0,a=r.length;o<a;)if(i!=null||!e)i=i[r[o++]];else return;return i},"getter"))},join:function(t){return t.reduce(function(e,r){return e+(pl(r)||Gh.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){HI(Array.isArray(t)?t:dl(t),e,r)}};function ll(t){return Bh.get(t)||Bh.set(t,dl(t).map(function(e){return e.replace(jI,"$2")}))}s(ll,"normalizePath");function dl(t){return t.match(qI)||[""]}s(dl,"split");function HI(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(JI(i)&&(i='"'+i+'"'),u=pl(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(HI,"forEach");function pl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(pl,"isQuoted");function YI(t){return t.match(KI)&&!t.match(Gh)}s(YI,"hasLeadingNumber");function zI(t){return QI.test(t)}s(zI,"hasSpecialChars");function JI(t){return!pl(t)&&(YI(t)||zI(t))}s(JI,"shouldBeQuoted")});var Br=q($i=>{"use strict";Object.defineProperty($i,"__esModule",{value:!0});$i.create=XI;$i.default=void 0;var ZI=Bi(),ta={context:"$",value:"."};function XI(t,e){return new Wi(t,e)}s(XI,"create");var Wi=class{static{s(this,"Reference")}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]===ta.context,this.isValue=this.key[0]===ta.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?ta.context:this.isValue?ta.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,ZI.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}};$i.default=Wi;Wi.prototype.__isYupRef=!0});var qh=q(hl=>{"use strict";Object.defineProperty(hl,"__esModule",{value:!0});hl.default=nw;var ew=ml(require("lodash/mapValues")),ra=ml(kr()),tw=ml(Br());function ml(t){return t&&t.__esModule?t:{default:t}}s(ml,"_interopRequireDefault");function na(){return na=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},na.apply(this,arguments)}s(na,"_extends");function rw(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,o;for(o=0;o<n.length;o++)i=n[o],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}s(rw,"_objectWithoutPropertiesLoose");function nw(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=rw(r,["value","path","label","options","originalValue","sync"]),{name:f,test:h,params:p,message:S}=t,{parent:m,context:E}=u;function y(_){return tw.default.isRef(_)?_.getValue(i,m,E):_}s(y,"resolve");function I(_={}){let U=(0,ew.default)(na({value:i,originalValue:c,label:a,path:_.path||o},p,_.params),y),R=new ra.default(ra.default.formatError(_.message||S,U),i,U.path,_.type||f);return R.params=U,R}s(I,"createError");let O=na({path:o,parent:m,type:f,createError:I,resolve:y,options:u,originalValue:c},d);if(!l){try{Promise.resolve(h.call(O,i,O)).then(_=>{ra.default.isError(_)?n(_):_?n(null,_):n(I())})}catch(_){n(_)}return}let w;try{var T;if(w=h.call(O,i,O),typeof((T=w)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${O.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}ra.default.isError(w)?n(w):w?n(null,w):n(I())}return s(e,"validate"),e.OPTIONS=t,e}s(nw,"createValidation")});var gl=q(Gi=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.getIn=Kh;Gi.default=void 0;var iw=Bi(),sw=s(t=>t.substr(0,t.length-1).substr(1),"trim");function Kh(t,e,r,n=r){let i,o,a;return e?((0,iw.forEach)(e,(u,c,l)=>{let d=c?sw(u):u;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=l?parseInt(d,10):0;if(r&&f>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${u}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[f],t=t.innerType}if(!l){if(!t.fields||!t.fields[d])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${a} which is a type: "${t._type}")`);i=r,r=r&&r[d],t=t.fields[d]}o=d,a=c?"["+u+"]":"."+u}),{schema:t,parent:i,parentPath:o}):{parent:i,parentPath:e,schema:t}}s(Kh,"getIn");var ow=s((t,e,r,n)=>Kh(t,e,r,n).schema,"reach"),aw=ow;Gi.default=aw});var jh=q(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.default=void 0;var Qh=uw(Br());function uw(t){return t&&t.__esModule?t:{default:t}}s(uw,"_interopRequireDefault");var El=class t{static{s(this,"ReferenceSet")}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){Qh.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Qh.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}};ia.default=El});var Lt=q(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.default=void 0;var Hh=Ut(Dh()),vn=Nt(),cw=Ut(kh()),Yh=Ut(ea()),sa=Ut(qh()),zh=Ut(Fi()),lw=Ut(Br()),dw=gl(),fw=Ut(sl()),Jh=Ut(kr()),Zh=Ut(jh());function Ut(t){return t&&t.__esModule?t:{default:t}}s(Ut,"_interopRequireDefault");function ze(){return ze=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},ze.apply(this,arguments)}s(ze,"_extends");var ct=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Zh.default,this._blacklist=new Zh.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(vn.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ze({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=ze({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Hh.default)(ze({},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=ze({},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(o=>{e.tests.forEach(a=>{o.test(a.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,o)=>o.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ze({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,zh.default)(e),a=(0,zh.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 hO=Object.create;var wi=Object.defineProperty;var gO=Object.getOwnPropertyDescriptor;var EO=Object.getOwnPropertyNames;var yO=Object.getPrototypeOf,TO=Object.prototype.hasOwnProperty;var s=(t,e)=>wi(t,"name",{value:e,configurable:!0});var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)wi(t,r,{get:e[r],enumerable:!0})},eh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of EO(e))!TO.call(t,i)&&i!==r&&wi(t,i,{get:()=>e[i],enumerable:!(n=gO(e,i))||n.enumerable});return t};var B=(t,e,r)=>(r=t!=null?hO(yO(t)):{},eh(e||!t||!t.__esModule?wi(r,"default",{value:t,enumerable:!0}):r,t)),SO=t=>eh(wi({},"__esModule",{value:!0}),t);var lh=q((Yc,zc)=>{"use strict";(function(t,e){typeof Yc=="object"&&typeof zc<"u"?zc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Yc,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",o="minute",a="hour",u="day",c="week",l="month",d="quarter",f="year",h="date",p="Invalid Date",S=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|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(W){var F=["th","st","nd","rd"],N=W%100;return"["+W+(F[(N-20)%10]||F[N]||F[0])+"]"}},y=s(function(W,F,N){var G=String(W);return!G||G.length>=F?W:""+Array(F+1-G.length).join(N)+W},"m"),I={s:y,z:function(W){var F=-W.utcOffset(),N=Math.abs(F),G=Math.floor(N/60),M=N%60;return(F<=0?"+":"-")+y(G,2,"0")+":"+y(M,2,"0")},m:s(function W(F,N){if(F.date()<N.date())return-W(N,F);var G=12*(N.year()-F.year())+(N.month()-F.month()),M=F.clone().add(G,l),K=N-M<0,D=F.clone().add(G+(K?-1:1),l);return+(-(G+(N-M)/(K?M-D:D-M))||0)},"t"),a:function(W){return W<0?Math.ceil(W)||0:Math.floor(W)},p:function(W){return{M:l,y:f,w:c,d:u,D:h,h:a,m:o,s:i,ms:n,Q:d}[W]||String(W||"").toLowerCase().replace(/s$/,"")},u:function(W){return W===void 0}},O="en",w={};w[O]=E;var T="$isDayjsObject",_=s(function(W){return W instanceof H||!(!W||!W[T])},"S"),U=s(function W(F,N,G){var M;if(!F)return O;if(typeof F=="string"){var K=F.toLowerCase();w[K]&&(M=K),N&&(w[K]=N,M=K);var D=F.split("-");if(!M&&D.length>1)return W(D[0])}else{var J=F.name;w[J]=F,M=J}return!G&&M&&(O=M),M||!G&&O},"t"),R=s(function(W,F){if(_(W))return W.clone();var N=typeof F=="object"?F:{};return N.date=W,N.args=arguments,new H(N)},"O"),k=I;k.l=U,k.i=_,k.w=function(W,F){return R(W,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var H=function(){function W(N){this.$L=U(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[T]=!0}s(W,"M");var F=W.prototype;return F.parse=function(N){this.$d=function(G){var M=G.date,K=G.utc;if(M===null)return new Date(NaN);if(k.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var D=M.match(S);if(D){var J=D[2]-1||0,de=(D[7]||"0").substring(0,3);return K?new Date(Date.UTC(D[1],J,D[3]||1,D[4]||0,D[5]||0,D[6]||0,de)):new Date(D[1],J,D[3]||1,D[4]||0,D[5]||0,D[6]||0,de)}}return new Date(M)}(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 k},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(N,G){var M=R(N);return this.startOf(G)<=M&&M<=this.endOf(G)},F.isAfter=function(N,G){return R(N)<this.startOf(G)},F.isBefore=function(N,G){return this.endOf(G)<R(N)},F.$g=function(N,G,M){return k.u(N)?this[G]:this.set(M,N)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(N,G){var M=this,K=!!k.u(G)||G,D=k.p(N),J=s(function(Lr,ve){var ir=k.w(M.$u?Date.UTC(M.$y,ve,Lr):new Date(M.$y,ve,Lr),M);return K?ir:ir.endOf(u)},"l"),de=s(function(Lr,ve){return k.w(M.toDate()[Lr].apply(M.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(ve)),M)},"$"),Te=this.$W,we=this.$M,Ye=this.$D,Dn="set"+(this.$u?"UTC":"");switch(D){case f:return K?J(1,0):J(31,11);case l:return K?J(1,we):J(0,we+1);case c:var Ur=this.$locale().weekStart||0,Oi=(Te<Ur?Te+7:Te)-Ur;return J(K?Ye-Oi:Ye+(6-Oi),we);case u:case h:return de(Dn+"Hours",0);case a:return de(Dn+"Minutes",1);case o:return de(Dn+"Seconds",2);case i:return de(Dn+"Milliseconds",3);default:return this.clone()}},F.endOf=function(N){return this.startOf(N,!1)},F.$set=function(N,G){var M,K=k.p(N),D="set"+(this.$u?"UTC":""),J=(M={},M[u]=D+"Date",M[h]=D+"Date",M[l]=D+"Month",M[f]=D+"FullYear",M[a]=D+"Hours",M[o]=D+"Minutes",M[i]=D+"Seconds",M[n]=D+"Milliseconds",M)[K],de=K===u?this.$D+(G-this.$W):G;if(K===l||K===f){var Te=this.clone().set(h,1);Te.$d[J](de),Te.init(),this.$d=Te.set(h,Math.min(this.$D,Te.daysInMonth())).$d}else J&&this.$d[J](de);return this.init(),this},F.set=function(N,G){return this.clone().$set(N,G)},F.get=function(N){return this[k.p(N)]()},F.add=function(N,G){var M,K=this;N=Number(N);var D=k.p(G),J=s(function(we){var Ye=R(K);return k.w(Ye.date(Ye.date()+Math.round(we*N)),K)},"y");if(D===l)return this.set(l,this.$M+N);if(D===f)return this.set(f,this.$y+N);if(D===u)return J(1);if(D===c)return J(7);var de=(M={},M[o]=e,M[a]=r,M[i]=t,M)[D]||1,Te=this.$d.getTime()+N*de;return k.w(Te,this)},F.subtract=function(N,G){return this.add(-1*N,G)},F.format=function(N){var G=this,M=this.$locale();if(!this.isValid())return M.invalidDate||p;var K=N||"YYYY-MM-DDTHH:mm:ssZ",D=k.z(this),J=this.$H,de=this.$m,Te=this.$M,we=M.weekdays,Ye=M.months,Dn=M.meridiem,Ur=s(function(ve,ir,Ii,Wo){return ve&&(ve[ir]||ve(G,K))||Ii[ir].slice(0,Wo)},"h"),Oi=s(function(ve){return k.s(J%12||12,ve,"0")},"d"),Lr=Dn||function(ve,ir,Ii){var Wo=ve<12?"AM":"PM";return Ii?Wo.toLowerCase():Wo};return K.replace(m,function(ve,ir){return ir||function(Ii){switch(Ii){case"YY":return String(G.$y).slice(-2);case"YYYY":return k.s(G.$y,4,"0");case"M":return Te+1;case"MM":return k.s(Te+1,2,"0");case"MMM":return Ur(M.monthsShort,Te,Ye,3);case"MMMM":return Ur(Ye,Te);case"D":return G.$D;case"DD":return k.s(G.$D,2,"0");case"d":return String(G.$W);case"dd":return Ur(M.weekdaysMin,G.$W,we,2);case"ddd":return Ur(M.weekdaysShort,G.$W,we,3);case"dddd":return we[G.$W];case"H":return String(J);case"HH":return k.s(J,2,"0");case"h":return Oi(1);case"hh":return Oi(2);case"a":return Lr(J,de,!0);case"A":return Lr(J,de,!1);case"m":return String(de);case"mm":return k.s(de,2,"0");case"s":return String(G.$s);case"ss":return k.s(G.$s,2,"0");case"SSS":return k.s(G.$ms,3,"0");case"Z":return D}return null}(ve)||D.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(N,G,M){var K,D=this,J=k.p(G),de=R(N),Te=(de.utcOffset()-this.utcOffset())*e,we=this-de,Ye=s(function(){return k.m(D,de)},"D");switch(J){case f:K=Ye()/12;break;case l:K=Ye();break;case d:K=Ye()/3;break;case c:K=(we-Te)/6048e5;break;case u:K=(we-Te)/864e5;break;case a:K=we/r;break;case o:K=we/e;break;case i:K=we/t;break;default:K=we}return M?K:k.a(K)},F.daysInMonth=function(){return this.endOf(l).$D},F.$locale=function(){return w[this.$L]},F.locale=function(N,G){if(!N)return this.$L;var M=this.clone(),K=U(N,G,!0);return K&&(M.$L=K),M},F.clone=function(){return k.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},W}(),Ie=H.prototype;return R.prototype=Ie,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",h]].forEach(function(W){Ie[W[1]]=function(F){return this.$g(F,W[0],W[1])}}),R.extend=function(W,F){return W.$i||(W(F,H,R),W.$i=!0),R},R.locale=U,R.isDayjs=_,R.unix=function(W){return R(1e3*W)},R.en=w[O],R.Ls=w,R.p={},R})});var at=q(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.Err=Ne.Valid=Ne.err=Ne.valid=void 0;var KO=s(t=>new zo(t),"valid");Ne.valid=KO;var QO=s(t=>new Jo(t),"err");Ne.err=QO;var zo=class{static{s(this,"Valid")}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,Ne.valid)(e(this.value))}mapErr(e){return(0,Ne.valid)(this.value)}};Ne.Valid=zo;var Jo=class{static{s(this,"Err")}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,Ne.err)(this.error)}mapErr(e){return(0,Ne.err)(e(this.error))}};Ne.Err=Jo});var ut=q(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0})});var ar=q(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});Ot();var z=at();ut();var jO=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],HO=["sun","mon","tue","wed","thu","fri","sat"],YO=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),xi=s((t,e,r)=>{if(e==="months"&&r.useAliases&&jO.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&HO.indexOf(t.toLowerCase())!==-1)return(0,z.valid)(!0);let n=Number(t);if(isNaN(n))return(0,z.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,z.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,z.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,z.valid)(!0)},"checkSingleElementWithinLimits"),zO=s((t,e,r)=>{if(t==="*")return YO(e,r)?(0,z.valid)(!0):(0,z.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,z.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,z.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,z.valid)(!0):xi(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,z.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,z.valid)(!0):xi(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,z.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,z.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,z.err)("Number of occurrence of the day of the week cannot be greater than 5."):xi(n,e,r)}return xi(t,e,r)},"checkSingleElement"),gh=s((t,e,r,n)=>t==="*"?(0,z.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,z.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,z.valid)(!0):xi(t,e,r),"checkRangeElement"),JO=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return zO(n[0],e,r);if(n.length===2){let i=gh(n[0],e,r,0),o=gh(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,z.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,z.valid)(!0)}return(0,z.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),XO=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '/')`);let i=JO(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,z.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,z.valid)(!0)},"checkListElement"),ZO=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,z.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,z.valid)(!0):(0,z.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,z.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(XO(a,e,r))}),i.every(a=>a.isValid()))return(0,z.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,z.err)(o)},"checkField");el.default=ZO});var Eh=q(vi=>{"use strict";var eI=vi&&vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vi,"__esModule",{value:!0});Ot();var tI=at(),rI=eI(ar());ut();var nI=s((t,e)=>{if(!t.seconds)return(0,tI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,rI.default)(r,"seconds",e)},"checkSeconds");vi.default=nI});var yh=q(Pi=>{"use strict";var iI=Pi&&Pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pi,"__esModule",{value:!0});Ot();var sI=at(),oI=iI(ar());ut();var aI=s((t,e)=>{if(!t.minutes)return(0,sI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,oI.default)(r,"minutes",e)},"checkMinutes");Pi.default=aI});var Th=q(Ni=>{"use strict";var uI=Ni&&Ni.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ni,"__esModule",{value:!0});Ot();var cI=at(),lI=uI(ar());ut();var dI=s((t,e)=>{if(!t.hours)return(0,cI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,lI.default)(r,"hours",e)},"checkHours");Ni.default=dI});var Sh=q(Li=>{"use strict";var fI=Li&&Li.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Li,"__esModule",{value:!0});Ot();var Ui=at(),pI=fI(ar());ut();var mI=s((t,e)=>{if(!t.daysOfMonth)return(0,Ui.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ui.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ui.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ui.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ui.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,pI.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");Li.default=mI});var Ah=q(Mi=>{"use strict";var hI=Mi&&Mi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Mi,"__esModule",{value:!0});Ot();var gI=at(),EI=hI(ar());ut();var yI=s((t,e)=>{if(!t.months)return(0,gI.err)(["months field is undefined."]);let{months:r}=t;return(0,EI.default)(r,"months",e)},"checkMonths");Mi.default=yI});var _h=q(Fi=>{"use strict";var TI=Fi&&Fi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fi,"__esModule",{value:!0});Ot();var ki=at(),SI=TI(ar());ut();var AI=s((t,e)=>{if(!t.daysOfWeek)return(0,ki.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,ki.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,ki.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,ki.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,ki.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,SI.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");Fi.default=AI});var Oh=q(Bi=>{"use strict";var _I=Bi&&Bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bi,"__esModule",{value:!0});Ot();var OI=at(),II=_I(ar());ut();var wI=s((t,e)=>{if(!t.years)return(0,OI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,II.default)(r,"years",e)},"checkYears");Bi.default=wI});var Rh=q((RF,Dh)=>{"use strict";var tl;try{tl=Map}catch{}var rl;try{rl=Set}catch{}function Ih(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(wh);if(tl&&t instanceof tl)return new Map(Array.from(t.entries()));if(rl&&t instanceof rl)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 o=e.findIndex(function(a){return a===t[i]});n[i]=o>-1?r[o]:Ih(t[i],e,r)}return n}return t}s(Ih,"baseClone");function wh(t){return Ih(t,[],[])}s(wh,"clone");Dh.exports=wh});var Wi=q(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});nl.default=PI;var DI=Object.prototype.toString,RI=Error.prototype.toString,CI=RegExp.prototype.toString,bI=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",xI=/^Symbol\((.*)\)(.*)$/;function vI(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(vI,"printNumber");function Ch(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return vI(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return bI.call(t).replace(xI,"Symbol($1)");let n=DI.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+RI.call(t)+"]":n==="RegExp"?CI.call(t):null}s(Ch,"printSimpleValue");function PI(t,e){let r=Ch(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=Ch(this[n],e);return o!==null?o:i},2)}s(PI,"printValue")});var Nt=q(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.default=Se.array=Se.object=Se.boolean=Se.date=Se.number=Se.string=Se.mixed=void 0;var bh=NI(Wi());function NI(t){return t&&t.__esModule?t:{default:t}}s(NI,"_interopRequireDefault");var xh={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,o=`${t} must be a \`${e}\` type, but the final value was: \`${(0,bh.default)(r,!0)}\``+(i?` (cast from the value \`${(0,bh.default)(n,!0)}\`).`:".");return r===null&&(o+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),o},defined:"${path} must be defined"};Se.mixed=xh;var vh={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"};Se.string=vh;var Ph={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"};Se.number=Ph;var Nh={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=Nh;var Uh={isValue:"${path} field must be ${value}"};Se.boolean=Uh;var Lh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=Lh;var Mh={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"};Se.array=Mh;var UI=Object.assign(Object.create(null),{mixed:xh,string:vh,number:Ph,date:Nh,object:Lh,array:Mh,boolean:Uh});Se.default=UI});var xn=q(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.default=void 0;var LI=s(t=>t&&t.__isYupSchema__,"_default");Xo.default=LI});var Fh=q(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var MI=kh(require("lodash/has")),kI=kh(xn());function kh(t){return t&&t.__esModule?t:{default:t}}s(kh,"_interopRequireDefault");var il=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,MI.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:o}=r,a=typeof n=="function"?n:(...u)=>u.every(c=>c===n);this.fn=function(...u){let c=u.pop(),l=u.pop(),d=a(...u)?i:o;if(d)return typeof d=="function"?d(l):l.concat(d.resolve(c))}}resolve(e,r){let n=this.refs.map(o=>o.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,kI.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},FI=il;Zo.default=FI});var ol=q(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.default=BI;function BI(t){return t==null?[]:[].concat(t)}s(BI,"toArray")});var kr=q(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.default=void 0;var WI=Bh(Wi()),$I=Bh(ol());function Bh(t){return t&&t.__esModule?t:{default:t}}s(Bh,"_interopRequireDefault");function al(){return al=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},al.apply(this,arguments)}s(al,"_extends");var GI=/\$\{\s*(\w+)\s*\}/g,ul=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=al({},r,{path:n})),typeof e=="string"?e.replace(GI,(i,o)=>(0,WI.default)(r[o])):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,$I.default)(e).forEach(o=>{t.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};ea.default=ul});var ta=q(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});ll.default=KI;var cl=VI(kr());function VI(t){return t&&t.__esModule?t:{default:t}}s(VI,"_interopRequireDefault");var qI=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function KI(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=qI(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new cl.default(a,o,c)):l(null,o);for(let h=0;h<n.length;h++){let p=n[h];p(i,s(function(m){if(m){if(!cl.default.isError(m))return l(m,o);if(r)return m.value=o,l(m,o);f.push(m)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new cl.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s(KI,"runTests")});var $i=q((VF,qh)=>{"use strict";function Fr(t){this._maxSize=t,this.clear()}s(Fr,"Cache");Fr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Fr.prototype.get=function(t){return this._values[t]};Fr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var QI=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Vh=/^\d+$/,jI=/^\d/,HI=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,YI=/^\s*(['"]?)(.*?)(\1)\s*$/,pl=512,Wh=new Fr(pl),$h=new Fr(pl),Gh=new Fr(pl);qh.exports={Cache:Fr,split:fl,normalizePath:dl,setter:function(t){var e=dl(t);return $h.get(t)||$h.set(t,s(function(n,i){for(var o=0,a=e.length,u=n;o<a-1;){var c=e[o];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;u=u[e[o++]]}u[e[o]]=i},"setter"))},getter:function(t,e){var r=dl(t);return Gh.get(t)||Gh.set(t,s(function(i){for(var o=0,a=r.length;o<a;)if(i!=null||!e)i=i[r[o++]];else return;return i},"getter"))},join:function(t){return t.reduce(function(e,r){return e+(ml(r)||Vh.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){zI(Array.isArray(t)?t:fl(t),e,r)}};function dl(t){return Wh.get(t)||Wh.set(t,fl(t).map(function(e){return e.replace(YI,"$2")}))}s(dl,"normalizePath");function fl(t){return t.match(QI)||[""]}s(fl,"split");function zI(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(ZI(i)&&(i='"'+i+'"'),u=ml(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(zI,"forEach");function ml(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(ml,"isQuoted");function JI(t){return t.match(jI)&&!t.match(Vh)}s(JI,"hasLeadingNumber");function XI(t){return HI.test(t)}s(XI,"hasSpecialChars");function ZI(t){return!ml(t)&&(JI(t)||XI(t))}s(ZI,"shouldBeQuoted")});var Br=q(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.create=tw;Vi.default=void 0;var ew=$i(),ra={context:"$",value:"."};function tw(t,e){return new Gi(t,e)}s(tw,"create");var Gi=class{static{s(this,"Reference")}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]===ra.context,this.isValue=this.key[0]===ra.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?ra.context:this.isValue?ra.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,ew.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}};Vi.default=Gi;Gi.prototype.__isYupRef=!0});var Kh=q(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});gl.default=sw;var rw=hl(require("lodash/mapValues")),na=hl(kr()),nw=hl(Br());function hl(t){return t&&t.__esModule?t:{default:t}}s(hl,"_interopRequireDefault");function ia(){return ia=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},ia.apply(this,arguments)}s(ia,"_extends");function iw(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,o;for(o=0;o<n.length;o++)i=n[o],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}s(iw,"_objectWithoutPropertiesLoose");function sw(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=iw(r,["value","path","label","options","originalValue","sync"]),{name:f,test:h,params:p,message:S}=t,{parent:m,context:E}=u;function y(_){return nw.default.isRef(_)?_.getValue(i,m,E):_}s(y,"resolve");function I(_={}){let U=(0,rw.default)(ia({value:i,originalValue:c,label:a,path:_.path||o},p,_.params),y),R=new na.default(na.default.formatError(_.message||S,U),i,U.path,_.type||f);return R.params=U,R}s(I,"createError");let O=ia({path:o,parent:m,type:f,createError:I,resolve:y,options:u,originalValue:c},d);if(!l){try{Promise.resolve(h.call(O,i,O)).then(_=>{na.default.isError(_)?n(_):_?n(null,_):n(I())})}catch(_){n(_)}return}let w;try{var T;if(w=h.call(O,i,O),typeof((T=w)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${O.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}na.default.isError(w)?n(w):w?n(null,w):n(I())}return s(e,"validate"),e.OPTIONS=t,e}s(sw,"createValidation")});var El=q(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});qi.getIn=Qh;qi.default=void 0;var ow=$i(),aw=s(t=>t.substr(0,t.length-1).substr(1),"trim");function Qh(t,e,r,n=r){let i,o,a;return e?((0,ow.forEach)(e,(u,c,l)=>{let d=c?aw(u):u;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=l?parseInt(d,10):0;if(r&&f>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${u}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[f],t=t.innerType}if(!l){if(!t.fields||!t.fields[d])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${a} which is a type: "${t._type}")`);i=r,r=r&&r[d],t=t.fields[d]}o=d,a=c?"["+u+"]":"."+u}),{schema:t,parent:i,parentPath:o}):{parent:i,parentPath:e,schema:t}}s(Qh,"getIn");var uw=s((t,e,r,n)=>Qh(t,e,r,n).schema,"reach"),cw=uw;qi.default=cw});var Hh=q(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.default=void 0;var jh=lw(Br());function lw(t){return t&&t.__esModule?t:{default:t}}s(lw,"_interopRequireDefault");var yl=class t{static{s(this,"ReferenceSet")}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){jh.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){jh.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}};sa.default=yl});var Lt=q(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.default=void 0;var Yh=Ut(Rh()),vn=Nt(),dw=Ut(Fh()),zh=Ut(ta()),oa=Ut(Kh()),Jh=Ut(Wi()),fw=Ut(Br()),pw=El(),mw=Ut(ol()),Xh=Ut(kr()),Zh=Ut(Hh());function Ut(t){return t&&t.__esModule?t:{default:t}}s(Ut,"_interopRequireDefault");function ze(){return ze=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},ze.apply(this,arguments)}s(ze,"_extends");var ct=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Zh.default,this._blacklist=new Zh.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(vn.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ze({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=ze({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Yh.default)(ze({},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=ze({},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(o=>{e.tests.forEach(a=>{o.test(a.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,o)=>o.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ze({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,Jh.default)(e),a=(0,Jh.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: ${o}
4
- `+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,o)=>o.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:o,from:a=[],originalValue:u=e,strict:c=this.spec.strict,abortEarly:l=this.spec.abortEarly}=r,d=e;c||(d=this._cast(d,ze({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,Yh.default)({args:f,value:d,path:o,sync:i,tests:h,endEarly:l},p=>{if(p)return void n(p,d);(0,Yh.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(ze({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((o,a)=>i._validate(e,r,(u,c)=>{u?a(u):o(c)}))}validateSync(e,r){let n=this.resolve(ze({},r,{value:e})),i;return n._validate(e,ze({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Jh.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Jh.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Hh.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=vn.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=vn.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=vn.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,sa.default)(r),o=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(a=>!(a.OPTIONS.name===r.name&&(o||a.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,fw.default)(e).map(o=>new lw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new cw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,sa.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=vn.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,sa.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let o=this.schema._whitelist;return o.has(i,this.resolve)?!0:this.createError({params:{values:o.toArray().join(", ")}})}}),n}notOneOf(e,r=vn.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,sa.default)({message:r,name:"notOneOf",test(i){let o=this.schema._blacklist;return o.has(i,this.resolve)?this.createError({params:{values:o.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(o=>({name:o.OPTIONS.name,params:o.OPTIONS.params})).filter((o,a,u)=>u.findIndex(c=>c.name===o.name)===a)}}};oa.default=ct;ct.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])ct.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,dw.getIn)(this,e,r,n.context);return a[t](i&&i[o],ze({},n,{parent:i,path:e}))};for(let t of["equals","is"])ct.prototype[t]=ct.prototype.oneOf;for(let t of["not","nope"])ct.prototype[t]=ct.prototype.notOneOf;ct.prototype.optional=ct.prototype.notRequired});var eg=q(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.create=Xh;Vi.default=void 0;var pw=mw(Lt());function mw(t){return t&&t.__esModule?t:{default:t}}s(mw,"_interopRequireDefault");var yl=pw.default,hw=yl;Vi.default=hw;function Xh(){return new yl}s(Xh,"create");Xh.prototype=yl.prototype});var Pn=q(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.default=void 0;var gw=s(t=>t==null,"_default");aa.default=gw});var sg=q(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.create=ig;Ki.default=void 0;var Ew=ng(Lt()),tg=Nt(),rg=ng(Pn());function ng(t){return t&&t.__esModule?t:{default:t}}s(ng,"_interopRequireDefault");function ig(){return new qi}s(ig,"create");var qi=class extends Ew.default{static{s(this,"BooleanSchema")}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=tg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,rg.default)(r)||r===!0}})}isFalse(e=tg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,rg.default)(r)||r===!1}})}};Ki.default=qi;ig.prototype=qi.prototype});var ug=q(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.create=ag;ji.default=void 0;var It=Nt(),Mt=og(Pn()),yw=og(Lt());function og(t){return t&&t.__esModule?t:{default:t}}s(og,"_interopRequireDefault");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,Sw=/^((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,Aw=/^(?:[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,_w=s(t=>(0,Mt.default)(t)||t===t.trim(),"isTrimmed"),Ow={}.toString();function ag(){return new Qi}s(ag,"create");var Qi=class extends yw.default{static{s(this,"StringSchema")}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=It.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Mt.default)(n)||n.length===this.resolve(e)}})}min(e,r=It.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Mt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=It.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,Mt.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,o;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:o}=r:i=r),this.test({name:o||"matches",message:i||It.string.matches,params:{regex:e},test:a=>(0,Mt.default)(a)||a===""&&n||a.search(e)!==-1})}email(e=It.string.email){return this.matches(Tw,{name:"email",message:e,excludeEmptyString:!0})}url(e=It.string.url){return this.matches(Sw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=It.string.uuid){return this.matches(Aw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=It.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:_w})}lowercase(e=It.string.lowercase){return this.transform(r=>(0,Mt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Mt.default)(r)||r===r.toLowerCase()})}uppercase(e=It.string.uppercase){return this.transform(r=>(0,Mt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Mt.default)(r)||r===r.toUpperCase()})}};ji.default=Qi;ag.prototype=Qi.prototype});var dg=q(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.create=lg;Yi.default=void 0;var Wr=Nt(),$r=cg(Pn()),Iw=cg(Lt());function cg(t){return t&&t.__esModule?t:{default:t}}s(cg,"_interopRequireDefault");var ww=s(t=>t!=+t,"isNaN");function lg(){return new Hi}s(lg,"create");var Hi=class extends Iw.default{static{s(this,"NumberSchema")}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"&&!ww(e)}min(e,r=Wr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,$r.default)(n)||n>=this.resolve(e)}})}max(e,r=Wr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,$r.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Wr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,$r.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Wr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,$r.default)(n)||n>this.resolve(e)}})}positive(e=Wr.number.positive){return this.moreThan(0,e)}negative(e=Wr.number.negative){return this.lessThan(0,e)}integer(e=Wr.number.integer){return this.test({name:"integer",message:e,test:r=>(0,$r.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,$r.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,$r.default)(i)?i:Math[e](i))}};Yi.default=Hi;lg.prototype=Hi.prototype});var fg=q(Tl=>{"use strict";Object.defineProperty(Tl,"__esModule",{value:!0});Tl.default=Rw;var Dw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Rw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Dw.exec(t)){for(var o=0,a;a=e[o];++o)i[a]=+i[a]||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}s(Rw,"parseIsoDate")});var hg=q(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.create=Al;zi.default=void 0;var Cw=ua(fg()),pg=Nt(),mg=ua(Pn()),bw=ua(Br()),xw=ua(Lt());function ua(t){return t&&t.__esModule?t:{default:t}}s(ua,"_interopRequireDefault");var Sl=new Date(""),vw=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function Al(){return new Nn}s(Al,"create");var Nn=class extends xw.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Cw.default)(e),isNaN(e)?Sl:new Date(e))})})}_typeCheck(e){return vw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(bw.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=pg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,mg.default)(i)||i>=this.resolve(n)}})}max(e,r=pg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,mg.default)(i)||i<=this.resolve(n)}})}};zi.default=Nn;Nn.INVALID_DATE=Sl;Al.prototype=Nn.prototype;Al.INVALID_DATE=Sl});var Eg=q((pB,_l)=>{"use strict";_l.exports=function(t){return gg(Pw(t),t)};_l.exports.array=gg;function gg(t,e){var r=t.length,n=new Array(r),i={},o=r,a=Nw(e),u=Uw(t);for(e.forEach(function(l){if(!u.has(l[0])||!u.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||c(t[o],o,new Set);return n;function c(l,d,f){if(f.has(l)){var h;try{h=", node was:"+JSON.stringify(l)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var p=a.get(l)||new Set;if(p=Array.from(p),d=p.length){f.add(l);do{var S=p[--d];c(S,u.get(S),f)}while(d);f.delete(l)}n[--r]=l}}}s(gg,"toposort");function Pw(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)}s(Pw,"uniqueNodes");function Nw(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}s(Nw,"makeOutgoingEdges");function Uw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(Uw,"makeNodesHash")});var yg=q(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});Ol.default=Ww;var Lw=ca(require("lodash/has")),Mw=ca(Eg()),kw=Bi(),Fw=ca(Br()),Bw=ca(xn());function ca(t){return t&&t.__esModule?t:{default:t}}s(ca,"_interopRequireDefault");function Ww(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,kw.split)(o)[0];~n.indexOf(u)||n.push(u),~e.indexOf(`${a}-${u}`)||r.push([a,u])}s(i,"addNode");for(let o in t)if((0,Lw.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),Fw.default.isRef(a)&&a.isSibling?i(a.path,o):(0,Bw.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return Mw.default.array(n,r).reverse()}s(Ww,"sortFields")});var Sg=q(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});Il.default=$w;function Tg(t,e){let r=1/0;return t.some((n,i)=>{var o;if(((o=e.path)==null?void 0:o.indexOf(n))!==-1)return r=i,!0}),r}s(Tg,"findIndex");function $w(t){return(e,r)=>Tg(t,e)-Tg(t,r)}s($w,"sortByKeyOrder")});var Rg=q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=Dg;Zi.default=void 0;var Ag=wt(require("lodash/has")),_g=wt(require("lodash/snakeCase")),Gw=wt(require("lodash/camelCase")),Vw=wt(require("lodash/mapKeys")),qw=wt(require("lodash/mapValues")),Kw=Bi(),Og=Nt(),Qw=wt(yg()),wg=wt(Sg()),jw=wt(ea()),Hw=wt(kr()),wl=wt(Lt());function wt(t){return t&&t.__esModule?t:{default:t}}s(wt,"_interopRequireDefault");function Un(){return Un=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},Un.apply(this,arguments)}s(Un,"_extends");var Ig=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function Yw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(Yw,"unknown");var zw=(0,wg.default)([]),Ji=class extends wl.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=zw,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(s(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null},"coerce")),e&&this.shape(e)})}_typeCheck(e){return Ig(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 o=this.fields,a=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,u=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),c={},l=Un({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let h=o[f],p=(0,Ag.default)(i,f);if(h){let S,m=i[f];l.path=(r.path?`${r.path}.`:"")+f,h=h.resolve({value:m,context:r.context,parent:c});let E="spec"in h?h.spec:void 0,y=E?.strict;if(E?.strip){d=d||f in i;continue}S=!r.__validating||!y?h.cast(i[f],l):i[f],S!==void 0&&(c[f]=S)}else p&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!Hw.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!Ig(f)){n(i[0]||null,f);return}u=u||f;let h=this._nodes.map(p=>(S,m)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(f[p],Un({},r,{path:E,from:a,strict:!0,parent:f,originalValue:u[p]}),m);return}m(null)});(0,jw.default)({sync:o,tests:h,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Un({},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,o]of Object.entries(this.fields)){let a=n[i];a===void 0?n[i]=o:a instanceof wl.default&&o instanceof wl.default&&(n[i]=o.concat(a))}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,wg.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let o=r.map(([a,u])=>`${a}-${u}`);n._excludedEdges=n._excludedEdges.concat(o)}return n._nodes=(0,Qw.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,Kw.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,Ag.default)(o,e)&&(a=Un({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=Og.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 o=Yw(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Og.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Vw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Gw.default)}snakeCase(){return this.transformKeys(_g.default)}constantCase(){return this.transformKeys(e=>(0,_g.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,qw.default)(this.fields,r=>r.describe()),e}};Zi.default=Ji;function Dg(t){return new Ji(t)}s(Dg,"create");Dg.prototype=Ji.prototype});var bg=q(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.create=Cg;es.default=void 0;var Dl=Ln(Pn()),Jw=Ln(xn()),Zw=Ln(Fi()),Rl=Nt(),Xw=Ln(ea()),eD=Ln(kr()),tD=Ln(Lt());function Ln(t){return t&&t.__esModule?t:{default:t}}s(Ln,"_interopRequireDefault");function la(){return la=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},la.apply(this,arguments)}s(la,"_extends");function Cg(t){return new Xi(t)}s(Cg,"create");var Xi=class extends tD.default{static{s(this,"ArraySchema")}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,o=n.map((a,u)=>{let c=this.innerType.cast(a,la({},r,{path:`${r.path||""}[${u}]`}));return c!==a&&(i=!0),c});return i?o:n}_validate(e,r={},n){var i,o;let a=[],u=r.sync,c=r.path,l=this.innerType,d=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(o=r.recursive)!=null?o:this.spec.recursive,h=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,S)=>{if(p){if(!eD.default.isError(p)||d)return void n(p,S);a.push(p)}if(!f||!l||!this._typeCheck(S)){n(a[0]||null,S);return}h=h||S;let m=new Array(S.length);for(let E=0;E<S.length;E++){let y=S[E],I=`${r.path||""}[${E}]`,O=la({},r,{path:I,strict:!0,parent:S,index:E,originalValue:h[E]});m[E]=(w,T)=>l.validate(y,O,T)}(0,Xw.default)({sync:u,path:c,value:S,errors:a,endEarly:d,tests:m},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,Jw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Zw.default)(e));return r.innerType=e,r}length(e,r=Rl.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Dl.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Rl.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Dl.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Rl.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Dl.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,o)=>!e(n,i,o):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)}};es.default=Xi;Cg.prototype=Xi.prototype});var xg=q(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.create=iD;ts.default=void 0;var rD=nD(xn());function nD(t){return t&&t.__esModule?t:{default:t}}s(nD,"_interopRequireDefault");function iD(t){return new da(t)}s(iD,"create");var da=class{static{s(this,"Lazy")}constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,rD.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)}},sD=da;ts.default=sD});var vg=q(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});Cl.default=uD;var oD=aD(Nt());function aD(t){return t&&t.__esModule?t:{default:t}}s(aD,"_interopRequireDefault");function uD(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{oD.default[e][r]=t[e][r]})})}s(uD,"setLocale")});var xl=q(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.addMethod=hD;Object.defineProperty(re,"MixedSchema",{enumerable:!0,get:function(){return Pg.default}});Object.defineProperty(re,"mixed",{enumerable:!0,get:function(){return Pg.create}});Object.defineProperty(re,"BooleanSchema",{enumerable:!0,get:function(){return bl.default}});Object.defineProperty(re,"bool",{enumerable:!0,get:function(){return bl.create}});Object.defineProperty(re,"boolean",{enumerable:!0,get:function(){return bl.create}});Object.defineProperty(re,"StringSchema",{enumerable:!0,get:function(){return Ng.default}});Object.defineProperty(re,"string",{enumerable:!0,get:function(){return Ng.create}});Object.defineProperty(re,"NumberSchema",{enumerable:!0,get:function(){return Ug.default}});Object.defineProperty(re,"number",{enumerable:!0,get:function(){return Ug.create}});Object.defineProperty(re,"DateSchema",{enumerable:!0,get:function(){return Lg.default}});Object.defineProperty(re,"date",{enumerable:!0,get:function(){return Lg.create}});Object.defineProperty(re,"ObjectSchema",{enumerable:!0,get:function(){return Mg.default}});Object.defineProperty(re,"object",{enumerable:!0,get:function(){return Mg.create}});Object.defineProperty(re,"ArraySchema",{enumerable:!0,get:function(){return kg.default}});Object.defineProperty(re,"array",{enumerable:!0,get:function(){return kg.create}});Object.defineProperty(re,"ref",{enumerable:!0,get:function(){return cD.create}});Object.defineProperty(re,"lazy",{enumerable:!0,get:function(){return lD.create}});Object.defineProperty(re,"ValidationError",{enumerable:!0,get:function(){return dD.default}});Object.defineProperty(re,"reach",{enumerable:!0,get:function(){return fD.default}});Object.defineProperty(re,"isSchema",{enumerable:!0,get:function(){return Fg.default}});Object.defineProperty(re,"setLocale",{enumerable:!0,get:function(){return pD.default}});Object.defineProperty(re,"BaseSchema",{enumerable:!0,get:function(){return mD.default}});var Pg=Gr(eg()),bl=Gr(sg()),Ng=Gr(ug()),Ug=Gr(dg()),Lg=Gr(hg()),Mg=Gr(Rg()),kg=Gr(bg()),cD=Br(),lD=xg(),dD=rs(kr()),fD=rs(gl()),Fg=rs(xn()),pD=rs(vg()),mD=rs(Lt());function rs(t){return t&&t.__esModule?t:{default:t}}s(rs,"_interopRequireDefault");function Bg(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Bg=s(function(){return t},"_getRequireWildcardCache"),t}s(Bg,"_getRequireWildcardCache");function Gr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Bg();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 o=n?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}s(Gr,"_interopRequireWildcard");function hD(t,e,r){if(!t||!(0,Fg.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}s(hD,"addMethod")});var Wg=q(Pl=>{"use strict";Object.defineProperty(Pl,"__esModule",{value:!0});var vl=Nl();Pl.default=()=>{(0,vl.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,vl.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,vl.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 Nl=q(Ae=>{"use strict";var gD=Ae&&Ae.__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]}),ED=Ae&&Ae.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),yD=Ae&&Ae.__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)&&gD(e,t,r);return ED(e,t),e},TD=Ae&&Ae.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.validateOptions=Ae.registerOptionPreset=Ae.getOptionPresets=Ae.getOptionPreset=void 0;var b=yD(xl());xl();var ns=at(),SD=TD(Wg());ut();var Vr={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}}},$g=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(),AD=s(t=>Vr[t]?(0,ns.valid)(Vr[t]):(0,ns.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=AD;var _D=s(()=>Vr,"getOptionPresets");Ae.getOptionPresets=_D;var OD=s((t,e)=>{Vr[t]=$g.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=OD;var ID=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,h,p,S,m,E,y,I,O,w;try{(0,SD.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Vr[t.preset])return(0,ns.err)([`Option preset ${t.preset} does not exist.`]);T=Vr[t.preset]}else T=t.preset;else T=Vr.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=T.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=T.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=T.seconds.lowerLimit)!==null&&u!==void 0?u:T.seconds.minValue,upperLimit:(c=T.seconds.upperLimit)!==null&&c!==void 0?c:T.seconds.maxValue},minutes:{lowerLimit:(l=T.minutes.lowerLimit)!==null&&l!==void 0?l:T.minutes.minValue,upperLimit:(d=T.minutes.upperLimit)!==null&&d!==void 0?d:T.minutes.maxValue},hours:{lowerLimit:(f=T.hours.lowerLimit)!==null&&f!==void 0?f:T.hours.minValue,upperLimit:(h=T.hours.upperLimit)!==null&&h!==void 0?h:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(S=T.daysOfMonth.upperLimit)!==null&&S!==void 0?S:T.daysOfMonth.maxValue},months:{lowerLimit:(m=T.months.lowerLimit)!==null&&m!==void 0?m:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(I=T.daysOfWeek.upperLimit)!==null&&I!==void 0?I:T.daysOfWeek.maxValue},years:{lowerLimit:(O=T.years.lowerLimit)!==null&&O!==void 0?O:T.years.minValue,upperLimit:(w=T.years.upperLimit)!==null&&w!==void 0?w:T.years.maxValue}}),t.override),R=b.object({presetId:b.string().required(),preset:$g.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(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:b.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:b.object({lowerLimit:b.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:b.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:b.object({lowerLimit:b.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:b.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:b.object({lowerLimit:b.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:b.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:b.object({lowerLimit:b.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:b.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:b.object({lowerLimit:b.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:b.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:b.object({lowerLimit:b.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:b.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ns.valid)(R)}catch(T){return(0,ns.err)(T.errors)}},"validateOptions");Ae.validateOptions=ID});var Ot=q((is,Ll)=>{"use strict";var Kr=is&&is.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(is,"__esModule",{value:!0});var qr=at(),wD=Kr(gh()),DD=Kr(Eh()),RD=Kr(yh()),CD=Kr(Th()),bD=Kr(Sh()),xD=Kr(Ah()),vD=Kr(_h()),PD=Nl();ut();var ND=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,qr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,qr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,qr.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,qr.valid)(n)},"splitCronString"),Ul=s((t,e={})=>{let r=(0,PD.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=ND(t,n);if(i.isError())return(0,qr.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,wD.default)(o,n)),a.push((0,DD.default)(o,n)),a.push((0,RD.default)(o,n)),a.push((0,CD.default)(o,n)),a.push((0,bD.default)(o,n)),a.push((0,xD.default)(o,n)),n.useYears&&a.push((0,vD.default)(o,n)),a.every(c=>c.isValid()))return(0,qr.valid)(o);let u=[];return a.forEach(c=>{c.isError()&&c.getError().forEach(l=>{u.push(l)})}),u.forEach((c,l)=>{u[l]=`${c} (Input cron: '${t}')`}),(0,qr.err)(u)},"cron");is.default=Ul;Ll.exports=Ul;Ll.exports.default=Ul});var Ey=q(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var Ft=class extends Error{static{s(this,"LuxonError")}},Kl=class extends Ft{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ql=class extends Ft{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},jl=class extends Ft{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},cr=class extends Ft{static{s(this,"ConflictingSpecificationError")}},Ta=class extends Ft{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends Ft{static{s(this,"InvalidArgumentError")}},Dt=class extends Ft{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},v="numeric",ft="short",qe="long",Sa={year:v,month:v,day:v},yE={year:v,month:ft,day:v},UD={year:v,month:ft,day:v,weekday:ft},TE={year:v,month:qe,day:v},SE={year:v,month:qe,day:v,weekday:qe},AE={hour:v,minute:v},_E={hour:v,minute:v,second:v},OE={hour:v,minute:v,second:v,timeZoneName:ft},IE={hour:v,minute:v,second:v,timeZoneName:qe},wE={hour:v,minute:v,hourCycle:"h23"},DE={hour:v,minute:v,second:v,hourCycle:"h23"},RE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:ft},CE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:qe},bE={year:v,month:v,day:v,hour:v,minute:v},xE={year:v,month:v,day:v,hour:v,minute:v,second:v},vE={year:v,month:ft,day:v,hour:v,minute:v},PE={year:v,month:ft,day:v,hour:v,minute:v,second:v},LD={year:v,month:ft,day:v,weekday:ft,hour:v,minute:v},NE={year:v,month:qe,day:v,hour:v,minute:v,timeZoneName:ft},UE={year:v,month:qe,day:v,hour:v,minute:v,second:v,timeZoneName:ft},LE={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,timeZoneName:qe},ME={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,second:v,timeZoneName:qe},dr=class{static{s(this,"Zone")}get type(){throw new Dt}get name(){throw new Dt}get ianaName(){return this.name}get isUniversal(){throw new Dt}offsetName(e,r){throw new Dt}formatOffset(e,r){throw new Dt}offset(e){throw new Dt}equals(e){throw new Dt}get isValid(){throw new Dt}},Ml=null,ls=class t extends dr{static{s(this,"SystemZone")}static get instance(){return Ml===null&&(Ml=new t),Ml}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return jE(e,r,n)}formatOffset(e,r){return cs(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Hl=new Map;function MD(t){let e=Hl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),Hl.set(t,e)),e}s(MD,"makeDTF");var kD={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function FD(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,o,a,u,c,l,d]=n;return[a,i,o,u,c,l,d]}s(FD,"hackyOffset");function BD(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=kD[o];o==="era"?n[u]=a:Q(u)||(n[u]=parseInt(a,10))}return n}s(BD,"partsOffset");var kl=new Map,Bt=class t extends dr{static{s(this,"IANAZone")}static create(e){let r=kl.get(e);return r===void 0&&kl.set(e,r=new t(e)),r}static resetCache(){kl.clear(),Hl.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return jE(e,r,n,this.name)}formatOffset(e,r){return cs(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=MD(this.name),[i,o,a,u,c,l,d]=n.formatToParts?BD(n,r):FD(n,r);u==="BC"&&(i=-Math.abs(i)+1);let h=Ra({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),p=+r,S=p%1e3;return p-=S>=0?S:1e3+S,(h-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Gg={};function WD(t,e={}){let r=JSON.stringify([t,e]),n=Gg[r];return n||(n=new Intl.ListFormat(t,e),Gg[r]=n),n}s(WD,"getCachedLF");var Yl=new Map;function zl(t,e={}){let r=JSON.stringify([t,e]),n=Yl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Yl.set(r,n)),n}s(zl,"getCachedDTF");var Jl=new Map;function $D(t,e={}){let r=JSON.stringify([t,e]),n=Jl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Jl.set(r,n)),n}s($D,"getCachedINF");var Zl=new Map;function GD(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=Zl.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),Zl.set(i,o)),o}s(GD,"getCachedRTF");var os=null;function VD(){return os||(os=new Intl.DateTimeFormat().resolvedOptions().locale,os)}s(VD,"systemLocale");var Xl=new Map;function kE(t){let e=Xl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Xl.set(t,e)),e}s(kE,"getCachedIntResolvedOptions");var ed=new Map;function qD(t){let e=ed.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...FE,...e}),ed.set(t,e)}return e}s(qD,"getCachedWeekInfo");function KD(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=zl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=zl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(KD,"parseLocaleString");function QD(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(QD,"intlConfigString");function jD(t){let e=[];for(let r=1;r<=12;r++){let n=oe.utc(2009,r,1);e.push(t(n))}return e}s(jD,"mapMonths");function HD(t){let e=[];for(let r=1;r<=7;r++){let n=oe.utc(2016,11,13+r);e.push(t(n))}return e}s(HD,"mapWeekdays");function fa(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(fa,"listStuff");function YD(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||kE(t.locale).numberingSystem==="latn"}s(YD,"supportsFastNumbers");var td=class{static{s(this,"PolyNumberFormatter")}constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:o,...a}=n;if(!r||Object.keys(a).length>0){let u={useGrouping:!1,...n};n.padTo>0&&(u.minimumIntegerDigits=n.padTo),this.inf=$D(e,u)}}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):fd(e,3);return me(r,this.padTo)}}},rd=class{static{s(this,"PolyDateFormatter")}constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),u=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&Bt.create(u).valid?(i=u,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=zl(r,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},nd=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&KE()&&(this.rtf=GD(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):gR(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},FE={firstDay:1,minimalDays:4,weekend:[6,7]},te=class t{static{s(this,"Locale")}static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,o=!1){let a=e||ne.defaultLocale,u=a||(o?"en-US":VD()),c=r||ne.defaultNumberingSystem,l=n||ne.defaultOutputCalendar,d=sd(i)||ne.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){os=null,Yl.clear(),Jl.clear(),Zl.clear(),Xl.clear(),ed.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,o){let[a,u,c]=KD(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=QD(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=YD(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,sd(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return fa(this,e,zE,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;let i=r?{month:e,day:"numeric"}:{month:e},o=r?"format":"standalone";if(!this.monthsCache[o][e]){let a=n?u=>this.dtFormatter(u,i).format():u=>this.extract(u,i,"month");this.monthsCache[o][e]=jD(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return fa(this,e,XE,()=>{let n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=r?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=HD(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return fa(this,void 0,()=>ey,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[oe.utc(2016,11,13,9),oe.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return fa(this,e,ty,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[oe.utc(-40,1,1),oe.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),o=i.formatToParts(),a=o.find(u=>u.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new td(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new rd(e,this.intl,r)}relFormatter(e={}){return new nd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return WD(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||kE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:QE()?qD(this.locale):FE}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Fl=null,Ke=class t extends dr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Fl===null&&(Fl=new t(0)),Fl}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(Ca(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${cs(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${cs(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return cs(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}},Aa=class extends dr{static{s(this,"InvalidZone")}constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function ur(t,e){if(Q(t)||t===null)return e;if(t instanceof dr)return t;if(tR(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?ls.instance:r==="utc"||r==="gmt"?Ke.utcInstance:Ke.parseSpecifier(r)||Bt.create(t)}else return lr(t)?Ke.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Aa(t)}s(ur,"normalizeZone");var ud={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"},Vg={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]},zD=ud.hanidec.replace(/[\[|\]]/g,"").split("");function JD(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(ud.hanidec)!==-1)e+=zD.indexOf(t[r]);else for(let i in Vg){let[o,a]=Vg[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(JD,"parseDigits");var id=new Map;function ZD(){id.clear()}s(ZD,"resetDigitRegexCache");function lt({numberingSystem:t},e=""){let r=t||"latn",n=id.get(r);n===void 0&&(n=new Map,id.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${ud[r]}${e}`),n.set(e,i)),i}s(lt,"digitRegex");var qg=s(()=>Date.now(),"now"),Kg="system",Qg=null,jg=null,Hg=null,Yg=60,zg,Jg=null,ne=class{static{s(this,"Settings")}static get now(){return qg}static set now(e){qg=e}static set defaultZone(e){Kg=e}static get defaultZone(){return ur(Kg,ls.instance)}static get defaultLocale(){return Qg}static set defaultLocale(e){Qg=e}static get defaultNumberingSystem(){return jg}static set defaultNumberingSystem(e){jg=e}static get defaultOutputCalendar(){return Hg}static set defaultOutputCalendar(e){Hg=e}static get defaultWeekSettings(){return Jg}static set defaultWeekSettings(e){Jg=sd(e)}static get twoDigitCutoffYear(){return Yg}static set twoDigitCutoffYear(e){Yg=e%100}static get throwOnInvalid(){return zg}static set throwOnInvalid(e){zg=e}static resetCaches(){te.resetCache(),Bt.resetCache(),oe.resetCache(),ZD()}},Ve=class{static{s(this,"Invalid")}constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},BE=[0,31,59,90,120,151,181,212,243,273,304,334],WE=[0,31,60,91,121,152,182,213,244,274,305,335];function Ze(t,e){return new Ve("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(Ze,"unitOutOfRange");function cd(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}s(cd,"dayOfWeek");function $E(t,e,r){return r+(fs(t)?WE:BE)[e-1]}s($E,"computeOrdinal");function GE(t,e){let r=fs(t)?WE:BE,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(GE,"uncomputeOrdinal");function ld(t,e){return(t-e+7)%7+1}s(ld,"isoWeekdayToLocal");function _a(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=$E(n,i,o),u=ld(cd(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=ds(l,e,r)):c>ds(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...ba(t)}}s(_a,"gregorianToWeek");function Zg(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=ld(cd(n,1,e),r),u=Bn(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Bn(l)):c>u?(l=n+1,c-=Bn(n)):l=n;let{month:d,day:f}=GE(l,c);return{year:l,month:d,day:f,...ba(t)}}s(Zg,"weekToGregorian");function Bl(t){let{year:e,month:r,day:n}=t,i=$E(e,r,n);return{year:e,ordinal:i,...ba(t)}}s(Bl,"gregorianToOrdinal");function Xg(t){let{year:e,ordinal:r}=t,{month:n,day:i}=GE(e,r);return{year:e,month:n,day:i,...ba(t)}}s(Xg,"ordinalToGregorian");function eE(t,e){if(!Q(t.localWeekday)||!Q(t.localWeekNumber)||!Q(t.localWeekYear)){if(!Q(t.weekday)||!Q(t.weekNumber)||!Q(t.weekYear))throw new cr("Cannot mix locale-based week fields with ISO-based week fields");return Q(t.localWeekday)||(t.weekday=t.localWeekday),Q(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Q(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}s(eE,"usesLocalWeekValues");function XD(t,e=4,r=1){let n=Da(t.weekYear),i=Xe(t.weekNumber,1,ds(t.weekYear,e,r)),o=Xe(t.weekday,1,7);return n?i?o?!1:Ze("weekday",t.weekday):Ze("week",t.weekNumber):Ze("weekYear",t.weekYear)}s(XD,"hasInvalidWeekData");function eR(t){let e=Da(t.year),r=Xe(t.ordinal,1,Bn(t.year));return e?r?!1:Ze("ordinal",t.ordinal):Ze("year",t.year)}s(eR,"hasInvalidOrdinalData");function VE(t){let e=Da(t.year),r=Xe(t.month,1,12),n=Xe(t.day,1,Oa(t.year,t.month));return e?r?n?!1:Ze("day",t.day):Ze("month",t.month):Ze("year",t.year)}s(VE,"hasInvalidGregorianData");function qE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=Xe(e,0,23)||e===24&&r===0&&n===0&&i===0,a=Xe(r,0,59),u=Xe(n,0,59),c=Xe(i,0,999);return o?a?u?c?!1:Ze("millisecond",i):Ze("second",n):Ze("minute",r):Ze("hour",e)}s(qE,"hasInvalidTimeData");function Q(t){return typeof t>"u"}s(Q,"isUndefined");function lr(t){return typeof t=="number"}s(lr,"isNumber");function Da(t){return typeof t=="number"&&t%1===0}s(Da,"isInteger");function tR(t){return typeof t=="string"}s(tR,"isString");function rR(t){return Object.prototype.toString.call(t)==="[object Date]"}s(rR,"isDate");function KE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(KE,"hasRelative");function QE(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(QE,"hasLocaleWeekInfo");function nR(t){return Array.isArray(t)?t:[t]}s(nR,"maybeArray");function tE(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let o=[e(i),i];return n&&r(n[0],o[0])===n[0]?n:o},null)[1]}s(tE,"bestBy");function iR(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(iR,"pick");function $n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s($n,"hasOwnProperty");function sd(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!Xe(t.firstDay,1,7)||!Xe(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!Xe(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(sd,"validateWeekSettings");function Xe(t,e,r){return Da(t)&&t>=e&&t<=r}s(Xe,"integerBetween");function sR(t,e){return t-e*Math.floor(t/e)}s(sR,"floorMod");function me(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(me,"padStart");function ar(t){if(!(Q(t)||t===null||t===""))return parseInt(t,10)}s(ar,"parseInteger");function Qr(t){if(!(Q(t)||t===null||t===""))return parseFloat(t)}s(Qr,"parseFloating");function dd(t){if(!(Q(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(dd,"parseMillis");function fd(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}s(fd,"roundTo");function fs(t){return t%4===0&&(t%100!==0||t%400===0)}s(fs,"isLeapYear");function Bn(t){return fs(t)?366:365}s(Bn,"daysInYear");function Oa(t,e){let r=sR(e-1,12)+1,n=t+(e-r)/12;return r===2?fs(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(Oa,"daysInMonth");function Ra(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}s(Ra,"objToLocalTS");function rE(t,e,r){return-ld(cd(t,1,e),r)+e-1}s(rE,"firstWeekOffset");function ds(t,e=4,r=1){let n=rE(t,e,r),i=rE(t+1,e,r);return(Bn(t)-n+i)/7}s(ds,"weeksInWeekYear");function od(t){return t>99?t:t>ne.twoDigitCutoffYear?1900+t:2e3+t}s(od,"untruncateYear");function jE(t,e,r,n=null){let i=new Date(t),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(o.timeZone=n);let a={timeZoneName:e,...o},u=new Intl.DateTimeFormat(r,a).formatToParts(i).find(c=>c.type.toLowerCase()==="timezonename");return u?u.value:null}s(jE,"parseZoneInfo");function Ca(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}s(Ca,"signedOffset");function HE(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(HE,"asNumber");function Ia(t,e){let r={};for(let n in t)if($n(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=HE(i)}return r}s(Ia,"normalizeObject");function cs(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}${me(r,2)}:${me(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${me(r,2)}${me(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(cs,"formatOffset");function ba(t){return iR(t,["hour","minute","second","millisecond"])}s(ba,"timeObject");var oR=["January","February","March","April","May","June","July","August","September","October","November","December"],YE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],aR=["J","F","M","A","M","J","J","A","S","O","N","D"];function zE(t){switch(t){case"narrow":return[...aR];case"short":return[...YE];case"long":return[...oR];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}}s(zE,"months");var JE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ZE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],uR=["M","T","W","T","F","S","S"];function XE(t){switch(t){case"narrow":return[...uR];case"short":return[...ZE];case"long":return[...JE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(XE,"weekdays");var ey=["AM","PM"],cR=["Before Christ","Anno Domini"],lR=["BC","AD"],dR=["B","A"];function ty(t){switch(t){case"narrow":return[...dR];case"short":return[...lR];case"long":return[...cR];default:return null}}s(ty,"eras");function fR(t){return ey[t.hour<12?0:1]}s(fR,"meridiemForDateTime");function pR(t,e){return XE(e)[t.weekday-1]}s(pR,"weekdayForDateTime");function mR(t,e){return zE(e)[t.month-1]}s(mR,"monthForDateTime");function hR(t,e){return ty(e)[t.year<0?0:1]}s(hR,"eraForDateTime");function gR(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."]},o=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&o){let f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${i[t][0]}`;case-1:return f?"yesterday":`last ${i[t][0]}`;case 0:return f?"today":`this ${i[t][0]}`}}let a=Object.is(e,-0)||e<0,u=Math.abs(e),c=u===1,l=i[t],d=n?c?l[1]:l[2]||l[1]:c?i[t][0]:t;return a?`${u} ${d} ago`:`in ${u} ${d}`}s(gR,"formatRelativeTime");function nE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(nE,"stringifyTokens");var ER={D:Sa,DD:yE,DDD:TE,DDDD:SE,t:AE,tt:_E,ttt:OE,tttt:IE,T:wE,TT:DE,TTT:RE,TTTT:CE,f:bE,ff:vE,fff:NE,ffff:LE,F:xE,FF:PE,FFF:UE,FFFF:ME},Ge=class t{static{s(this,"Formatter")}static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,o=[];for(let a=0;a<e.length;a++){let u=e.charAt(a);u==="'"?((n.length>0||i)&&o.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||u===r?n+=u:(n.length>0&&o.push({literal:/^\s+$/.test(n),val:n}),n=u,r=u)}return n.length>0&&o.push({literal:i||/^\s+$/.test(n),val:n}),o}static macroTokenToFormatOpts(e){return ER[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return me(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=s((p,S)=>this.loc.extract(e,p,S),"string"),a=s(p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"","formatOffset"),u=s(()=>n?fR(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((p,S)=>n?mR(e,p):o(S?{month:p}:{month:p,day:"numeric"},"month"),"month"),l=s((p,S)=>n?pR(e,p):o(S?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(p=>{let S=t.macroTokenToFormatOpts(p);return S?this.formatWithSystemDefault(e,S):p},"maybeMacro"),f=s(p=>n?hR(e,p):o({era:p},"era"),"era"),h=s(p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({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 u();case"d":return i?o({day:"numeric"},"day"):this.num(e.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(e.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(e.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(p)}},"tokenToString");return nE(t.parseFormat(r),h)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>h=>{let p=i(h);if(p){let S=f.isNegativeDuration&&p!==f.largestUnit?n:1,m;return this.opts.signMode==="negativeLargestOnly"&&p!==f.largestUnit?m="never":this.opts.signMode==="all"?m="always":m="auto",this.num(d.get(p)*S,h.length,m)}else return h},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:h})=>f?d:d.concat(h),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return nE(a,o(c,l))}},ry=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Gn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Gn,"combineRegexes");function Vn(...t){return e=>t.reduce(([r,n,i],o)=>{let[a,u,c]=o(e,i);return[{...r,...a},u||n,c]},[{},null,1]).slice(0,2)}s(Vn,"combineExtractors");function qn(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]}s(qn,"parse");function ny(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=ar(e[r+i]);return[n,null,r+i]}}s(ny,"simpleParse");var iy=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,yR=`(?:${iy.source}?(?:\\[(${ry.source})\\])?)?`,pd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,sy=RegExp(`${pd.source}${yR}`),md=RegExp(`(?:[Tt]${sy.source})?`),TR=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,SR=/(\d{4})-?W(\d\d)(?:-?(\d))?/,AR=/(\d{4})-?(\d{3})/,_R=ny("weekYear","weekNumber","weekDay"),OR=ny("year","ordinal"),IR=/(\d{4})-(\d\d)-(\d\d)/,oy=RegExp(`${pd.source} ?(?:${iy.source}|(${ry.source}))?`),wR=RegExp(`(?: ${oy.source})?`);function Wn(t,e,r){let n=t[e];return Q(n)?r:ar(n)}s(Wn,"int");function DR(t,e){return[{year:Wn(t,e),month:Wn(t,e+1,1),day:Wn(t,e+2,1)},null,e+3]}s(DR,"extractISOYmd");function Kn(t,e){return[{hours:Wn(t,e,0),minutes:Wn(t,e+1,0),seconds:Wn(t,e+2,0),milliseconds:dd(t[e+3])},null,e+4]}s(Kn,"extractISOTime");function ps(t,e){let r=!t[e]&&!t[e+1],n=Ca(t[e+1],t[e+2]),i=r?null:Ke.instance(n);return[{},i,e+3]}s(ps,"extractISOOffset");function ms(t,e){let r=t[e]?Bt.create(t[e]):null;return[{},r,e+1]}s(ms,"extractIANAZone");var RR=RegExp(`^T?${pd.source}$`),CR=/^-?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 bR(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",h=s((p,S=!1)=>p!==void 0&&(S||p&&d)?-p:p,"maybeNegate");return[{years:h(Qr(r)),months:h(Qr(n)),weeks:h(Qr(i)),days:h(Qr(o)),hours:h(Qr(a)),minutes:h(Qr(u)),seconds:h(Qr(c),c==="-0"),milliseconds:h(dd(l),f)}]}s(bR,"extractISODuration");var xR={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 hd(t,e,r,n,i,o,a){let u={year:e.length===2?od(ar(e)):ar(e),month:YE.indexOf(r)+1,day:ar(n),hour:ar(i),minute:ar(o)};return a&&(u.second=ar(a)),t&&(u.weekday=t.length>3?JE.indexOf(t)+1:ZE.indexOf(t)+1),u}s(hd,"fromStrings");var vR=/^(?:(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 PR(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,h=hd(e,i,n,r,o,a,u),p;return c?p=xR[c]:l?p=0:p=Ca(d,f),[h,new Ke(p)]}s(PR,"extractRFC2822");function NR(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(NR,"preprocessRFC2822");var UR=/^(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$/,LR=/^(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$/,MR=/^(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 iE(t){let[,e,r,n,i,o,a,u]=t;return[hd(e,i,n,r,o,a,u),Ke.utcInstance]}s(iE,"extractRFC1123Or850");function kR(t){let[,e,r,n,i,o,a,u]=t;return[hd(e,u,r,n,i,o,a),Ke.utcInstance]}s(kR,"extractASCII");var FR=Gn(TR,md),BR=Gn(SR,md),WR=Gn(AR,md),$R=Gn(sy),ay=Vn(DR,Kn,ps,ms),GR=Vn(_R,Kn,ps,ms),VR=Vn(OR,Kn,ps,ms),qR=Vn(Kn,ps,ms);function KR(t){return qn(t,[FR,ay],[BR,GR],[WR,VR],[$R,qR])}s(KR,"parseISODate");function QR(t){return qn(NR(t),[vR,PR])}s(QR,"parseRFC2822Date");function jR(t){return qn(t,[UR,iE],[LR,iE],[MR,kR])}s(jR,"parseHTTPDate");function HR(t){return qn(t,[CR,bR])}s(HR,"parseISODuration");var YR=Vn(Kn);function zR(t){return qn(t,[RR,YR])}s(zR,"parseISOTimeOnly");var JR=Gn(IR,wR),ZR=Gn(oy),XR=Vn(Kn,ps,ms);function eC(t){return qn(t,[JR,ay],[ZR,XR])}s(eC,"parseSQL");var sE="Invalid Duration",uy={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}},tC={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},...uy},Je=146097/400,Mn=146097/4800,rC={years:{quarters:4,months:12,weeks:Je/7,days:Je,hours:Je*24,minutes:Je*24*60,seconds:Je*24*60*60,milliseconds:Je*24*60*60*1e3},quarters:{months:3,weeks:Je/28,days:Je/4,hours:Je*24/4,minutes:Je*24*60/4,seconds:Je*24*60*60/4,milliseconds:Je*24*60*60*1e3/4},months:{weeks:Mn/7,days:Mn,hours:Mn*24,minutes:Mn*24*60,seconds:Mn*24*60*60,milliseconds:Mn*24*60*60*1e3},...uy},Hr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],nC=Hr.slice(0).reverse();function kt(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 Ee(n)}s(kt,"clone$1");function cy(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of nC.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(cy,"durationToMillis");function oE(t,e){let r=cy(t,e)<0?-1:1;Hr.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),Hr.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(oE,"normalizeValues");function aE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(aE,"removeZeroes");var Ee=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?rC:tC;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||te.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 _e(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Ia(e,t.normalizeUnit),loc:te.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(lr(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new _e(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=HR(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]=zR(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 _e("need to specify a reason the Duration is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new jl(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 Ta(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?Ge.create(this.loc,n).formatDurationFromString(this,e):sE}toHuman(e={}){if(!this.isValid)return sE;let r=e.showZeros!==!1,n=Hr.map(i=>{let o=this.values[i];return Q(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=fd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},oe.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?cy(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Hr)($n(r.values,i)||$n(this.values,i))&&(n[i]=r.get(i)+this.get(i));return kt(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]=HE(e(this.values[n],n));return kt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Ia(e,t.normalizeUnit)};return kt(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return kt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return oE(this.matrix,e),kt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=aE(this.normalize().shiftToAll().toObject());return kt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of Hr)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;lr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else lr(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return oE(this.matrix,r),kt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return kt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=aE(this.values);return kt(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}s(r,"eq");for(let n of Hr)if(!r(this.values[n],e.values[n]))return!1;return!0}},kn="Invalid Interval";function iC(t,e){return!t||!t.isValid?zr.invalid("missing or invalid start"):!e||!e.isValid?zr.invalid("missing or invalid end"):e<t?zr.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}s(iC,"validateStartEnd");var zr=class t{static{s(this,"Interval")}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 _e("need to specify a reason the Interval is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new Ql(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ss(e),i=ss(r),o=iC(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=Ee.fromDurationLike(r),i=ss(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Ee.fromDurationLike(r),i=ss(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=oe.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=oe.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=Ee.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=Ee.fromISO(n,r);if(l.isValid)return t.before(u,l)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(ss).filter(a=>this.contains(a)).sort((a,u)=>a.toMillis()-u.toMillis()),n=[],{s:i}=this,o=0;for(;i<this.e;){let a=r[o]||this.e,u=+a>+this.e?this.e:a;n.push(t.fromDateTimes(i,u)),i=u,o+=1}return n}splitBy(e){let r=Ee.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}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,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.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()})`:kn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Sa,r={}){return this.isValid?Ge.create(this.s.loc.clone(r),e).formatInterval(this):kn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:kn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:kn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:kn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:kn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):Ee.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Yr=class{static{s(this,"Info")}static hasDST(e=ne.defaultZone){let r=oe.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Bt.isValidZone(e)}static normalizeZone(e){return ur(e,ne.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return te.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return te.create(r,null,"gregory").eras(e)}static features(){return{relative:KE(),localeWeek:QE()}}};function uE(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(Ee.fromMillis(n).as("days"))}s(uE,"dayDiff");function sC(t,e,r){let n=[["years",(c,l)=>l.year-c.year],["quarters",(c,l)=>l.quarter-c.quarter+(l.year-c.year)*4],["months",(c,l)=>l.month-c.month+(l.year-c.year)*12],["weeks",(c,l)=>{let d=uE(c,l);return(d-d%7)/7}],["days",uE]],i={},o=t,a,u;for(let[c,l]of n)r.indexOf(c)>=0&&(a=c,i[c]=l(t,e),u=o.plus(i),u>e?(i[c]--,t=o.plus(i),t>e&&(u=t,i[c]--,t=o.plus(i))):t=u);return[t,i,u,a]}s(sC,"highOrderDiffs");function oC(t,e,r,n){let[i,o,a,u]=sC(t,e,r),c=e-i,l=r.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);l.length===0&&(a<e&&(a=i.plus({[u]:1})),a!==i&&(o[u]=(o[u]||0)+c/(a-i)));let d=Ee.fromObject(o,n);return l.length>0?Ee.fromMillis(c,n).shiftTo(...l).plus(d):d}s(oC,"diff");var aC="missing Intl.DateTimeFormat.formatToParts support";function X(t,e=r=>r){return{regex:t,deser:([r])=>e(JD(r))}}s(X,"intUnit");var uC=String.fromCharCode(160),ly=`[ ${uC}]`,dy=new RegExp(ly,"g");function cC(t){return t.replace(/\./g,"\\.?").replace(dy,ly)}s(cC,"fixListRegex");function cE(t){return t.replace(/\./g,"").replace(dy," ").toLowerCase()}s(cE,"stripInsensitivities");function dt(t,e){return t===null?null:{regex:RegExp(t.map(cC).join("|")),deser:([r])=>t.findIndex(n=>cE(r)===cE(n))+e}}s(dt,"oneOf");function lE(t,e){return{regex:t,deser:([,r,n])=>Ca(r,n),groups:e}}s(lE,"offset");function pa(t){return{regex:t,deser:([e])=>e}}s(pa,"simple");function lC(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(lC,"escapeToken");function dC(t,e){let r=lt(e),n=lt(e,"{2}"),i=lt(e,"{3}"),o=lt(e,"{4}"),a=lt(e,"{6}"),u=lt(e,"{1,2}"),c=lt(e,"{1,3}"),l=lt(e,"{1,6}"),d=lt(e,"{1,9}"),f=lt(e,"{2,4}"),h=lt(e,"{4,6}"),p=s(E=>({regex:RegExp(lC(E.val)),deser:([y])=>y,literal:!0}),"literal"),m=s(E=>{if(t.literal)return p(E);switch(E.val){case"G":return dt(e.eras("short"),0);case"GG":return dt(e.eras("long"),0);case"y":return X(l);case"yy":return X(f,od);case"yyyy":return X(o);case"yyyyy":return X(h);case"yyyyyy":return X(a);case"M":return X(u);case"MM":return X(n);case"MMM":return dt(e.months("short",!0),1);case"MMMM":return dt(e.months("long",!0),1);case"L":return X(u);case"LL":return X(n);case"LLL":return dt(e.months("short",!1),1);case"LLLL":return dt(e.months("long",!1),1);case"d":return X(u);case"dd":return X(n);case"o":return X(c);case"ooo":return X(i);case"HH":return X(n);case"H":return X(u);case"hh":return X(n);case"h":return X(u);case"mm":return X(n);case"m":return X(u);case"q":return X(u);case"qq":return X(n);case"s":return X(u);case"ss":return X(n);case"S":return X(c);case"SSS":return X(i);case"u":return pa(d);case"uu":return pa(u);case"uuu":return X(r);case"a":return dt(e.meridiems(),0);case"kkkk":return X(o);case"kk":return X(f,od);case"W":return X(u);case"WW":return X(n);case"E":case"c":return X(r);case"EEE":return dt(e.weekdays("short",!1),1);case"EEEE":return dt(e.weekdays("long",!1),1);case"ccc":return dt(e.weekdays("short",!0),1);case"cccc":return dt(e.weekdays("long",!0),1);case"Z":case"ZZ":return lE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return lE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return pa(/[a-z_+-/]{1,256}?/i);case" ":return pa(/[^\S\n\r]/);default:return p(E)}},"unitate")(t)||{invalidReason:aC};return m.token=t,m}s(dC,"unitForToken");var fC={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function pC(t,e,r){let{type:n,value:i}=t;if(n==="literal"){let c=/^\s+$/.test(i);return{literal:!c,val:c?" ":i}}let o=e[n],a=n;n==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=r.hour12?"hour12":"hour24");let u=fC[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(pC,"tokenForPart");function mC(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(mC,"buildRegex");function hC(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if($n(r,a)){let u=r[a],c=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(n.slice(o,o+c))),o+=c}return[n,i]}else return[n,{}]}s(hC,"match");function gC(t){let e=s(o=>{switch(o){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}},"toField"),r=null,n;return Q(t.z)||(r=Bt.create(t.z)),Q(t.Z)||(r||(r=new Ke(t.Z)),n=t.Z),Q(t.q)||(t.M=(t.q-1)*3+1),Q(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),Q(t.u)||(t.S=dd(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s(gC,"dateTimeFromMatches");var Wl=null;function EC(){return Wl||(Wl=oe.fromMillis(1555555555555)),Wl}s(EC,"getDummyDateTime");function yC(t,e){if(t.literal)return t;let r=Ge.macroTokenToFormatOpts(t.val),n=my(r,e);return n==null||n.includes(void 0)?t:n}s(yC,"maybeExpandMacroToken");function fy(t,e){return Array.prototype.concat(...t.map(r=>yC(r,e)))}s(fy,"expandMacroTokens");var wa=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=fy(Ge.parseFormat(r),e),this.units=this.tokens.map(n=>dC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=mC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=hC(e,this.regex,this.handlers),[i,o,a]=n?gC(n):[null,null,void 0];if($n(n,"a")&&$n(n,"H"))throw new cr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function py(t,e,r){return new wa(t,r).explainFromTokens(e)}s(py,"explainFromTokens");function TC(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=py(t,e,r);return[n,i,o,a]}s(TC,"parseFromTokens");function my(t,e){if(!t)return null;let n=Ge.create(e,t).dtFormatter(EC()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>pC(a,t,o))}s(my,"formatOptsToTokens");var $l="Invalid DateTime",dE=864e13;function as(t){return new Ve("unsupported zone",`the zone "${t.name}" is not supported`)}s(as,"unsupportedZone");function Gl(t){return t.weekData===null&&(t.weekData=_a(t.c)),t.weekData}s(Gl,"possiblyCachedWeekData");function Vl(t){return t.localWeekData===null&&(t.localWeekData=_a(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s(Vl,"possiblyCachedLocalWeekData");function jr(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new oe({...r,...e,old:r})}s(jr,"clone");function hy(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 o=r.offset(n);return i===o?[n,i]:[t-Math.min(i,o)*60*1e3,Math.max(i,o)]}s(hy,"fixOffset");function ma(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()}}s(ma,"tsToObj");function ga(t,e,r){return hy(Ra(t),e,r)}s(ga,"objToTS");function fE(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,o={...t.c,year:n,month:i,day:Math.min(t.c.day,Oa(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=Ee.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"),u=Ra(o),[c,l]=hy(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(fE,"adjustTime");function Fn(t,e,r,n,i,o){let{setZone:a,zone:u}=r;if(t&&Object.keys(t).length!==0||e){let c=e||u,l=oe.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return oe.invalid(new Ve("unparsable",`the input "${i}" can't be parsed as ${n}`))}s(Fn,"parseDataToDateTime");function ha(t,e,r=!0){return t.isValid?Ge.create(te.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}s(ha,"toTechFormat");function ql(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=me(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=me(t.c.month),r==="month")return i;i+="-"}else if(i+=me(t.c.month),r==="month")return i;return i+=me(t.c.day),i}s(ql,"toISODate");function pE(t,e,r,n,i,o,a){let u=!r||t.c.millisecond!==0||t.c.second!==0,c="";switch(a){case"day":case"month":case"year":break;default:if(c+=me(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=me(t.c.minute),a==="minute")break;u&&(c+=":",c+=me(t.c.second))}else{if(c+=me(t.c.minute),a==="minute")break;u&&(c+=me(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=me(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=me(Math.trunc(-t.o/60)),c+=":",c+=me(Math.trunc(-t.o%60))):(c+="+",c+=me(Math.trunc(t.o/60)),c+=":",c+=me(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(pE,"toISOTime");var gy={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},AC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Ea=["year","month","day","hour","minute","second","millisecond"],_C=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],OC=["year","ordinal","hour","minute","second","millisecond"];function ya(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 Ta(t);return e}s(ya,"normalizeUnit");function mE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return ya(t)}}s(mE,"normalizeUnitWithLocalWeeks");function IC(t){if(us===void 0&&(us=ne.now()),t.type!=="iana")return t.offset(us);let e=t.name,r=ad.get(e);return r===void 0&&(r=t.offset(us),ad.set(e,r)),r}s(IC,"guessOffsetForZone");function hE(t,e){let r=ur(e.zone,ne.defaultZone);if(!r.isValid)return oe.invalid(as(r));let n=te.fromObject(e),i,o;if(Q(t.year))i=ne.now();else{for(let c of Ea)Q(t[c])&&(t[c]=gy[c]);let a=VE(t)||qE(t);if(a)return oe.invalid(a);let u=IC(r);[i,o]=ga(t,u,r)}return new oe({ts:i,zone:r,loc:n,o})}s(hE,"quickDT");function gE(t,e,r){let n=Q(r.round)?!0:r.round,i=Q(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=fd(u,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(u,c)),"format"),a=s(u=>r.calendary?e.hasSame(t,u)?0:e.startOf(u).diff(t.startOf(u),u).get(u):e.diff(t,u).get(u),"differ");if(r.unit)return o(a(r.unit),r.unit);for(let u of r.units){let c=a(u);if(Math.abs(c)>=1)return o(c,u)}return o(t>e?-0:0,r.units[r.units.length-1])}s(gE,"diffRelative");function EE(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]}s(EE,"lastOpts");var us,ad=new Map,oe=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||ne.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ve("invalid input"):null)||(r.isValid?null:as(r));this.ts=Q(e.ts)?ne.now():e.ts;let i=null,o=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,o]=[e.old.c,e.old.o];else{let u=lr(e.o)&&!e.old?e.o:r.offset(this.ts);i=ma(this.ts,u),n=Number.isNaN(i.year)?new Ve("invalid input"):null,i=n?null:i,o=n?null:u}this._zone=r,this.loc=e.loc||te.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=EE(arguments),[n,i,o,a,u,c,l]=r;return hE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=EE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,hE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=rR(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=ur(r.zone,ne.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:te.fromObject(r)}):t.invalid(as(i))}static fromMillis(e,r={}){if(lr(e))return e<-dE||e>dE?t.invalid("Timestamp out of range"):new t({ts:e,zone:ur(r.zone,ne.defaultZone),loc:te.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(lr(e))return new t({ts:e*1e3,zone:ur(r.zone,ne.defaultZone),loc:te.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=ur(r.zone,ne.defaultZone);if(!n.isValid)return t.invalid(as(n));let i=te.fromObject(r),o=Ia(e,mE),{minDaysInFirstWeek:a,startOfWeek:u}=eE(o,i),c=ne.now(),l=Q(r.specificOffset)?n.offset(c):r.specificOffset,d=!Q(o.ordinal),f=!Q(o.year),h=!Q(o.month)||!Q(o.day),p=f||h,S=o.weekYear||o.weekNumber;if((p||d)&&S)throw new cr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&d)throw new cr("Can't mix ordinal dates with month/day");let m=S||o.weekday&&!p,E,y,I=ma(c,l);m?(E=_C,y=SC,I=_a(I,a,u)):d?(E=OC,y=AC,I=Bl(I)):(E=Ea,y=gy);let O=!1;for(let H of E){let Ie=o[H];Q(Ie)?O?o[H]=y[H]:o[H]=I[H]:O=!0}let w=m?XD(o,a,u):d?eR(o):VE(o),T=w||qE(o);if(T)return t.invalid(T);let _=m?Zg(o,a,u):d?Xg(o):o,[U,R]=ga(_,l,n),k=new t({ts:U,zone:n,o:R,loc:i});return o.weekday&&p&&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.isValid?k:t.invalid(k.invalid)}static fromISO(e,r={}){let[n,i]=KR(e);return Fn(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=QR(e);return Fn(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=jR(e);return Fn(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=TC(a,e,r);return d?t.invalid(d):Fn(u,c,n,`format ${r}`,e,l)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=eC(e);return Fn(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the DateTime is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new Kl(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=my(e,te.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return fy(Ge.parseFormat(e),te.fromObject(r)).map(i=>i.val).join("")}static resetCache(){us=void 0,ad.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Gl(this).weekYear:NaN}get weekNumber(){return this.isValid?Gl(this).weekNumber:NaN}get weekday(){return this.isValid?Gl(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Vl(this).weekday:NaN}get localWeekNumber(){return this.isValid?Vl(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Vl(this).weekYear:NaN}get ordinal(){return this.isValid?Bl(this.c).ordinal:NaN}get monthShort(){return this.isValid?Yr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Yr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Yr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Yr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=Ra(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ma(c,a),f=ma(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[jr(this,{ts:c}),jr(this,{ts:l})]:[this]}get isInLeapYear(){return fs(this.year)}get daysInMonth(){return Oa(this.year,this.month)}get daysInYear(){return this.isValid?Bn(this.year):NaN}get weeksInWeekYear(){return this.isValid?ds(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?ds(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=Ge.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ke.instance(e),r)}toLocal(){return this.setZone(ne.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=ur(e,ne.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=ga(a,o,e)}return jr(this,{ts:i,zone:e})}else return t.invalid(as(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return jr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Ia(e,mE),{minDaysInFirstWeek:n,startOfWeek:i}=eE(r,this.loc),o=!Q(r.weekYear)||!Q(r.weekNumber)||!Q(r.weekday),a=!Q(r.ordinal),u=!Q(r.year),c=!Q(r.month)||!Q(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new cr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new cr("Can't mix ordinal dates with month/day");let f;o?f=Zg({..._a(this.c,n,i),...r},n,i):Q(r.ordinal)?(f={...this.toObject(),...r},Q(r.day)&&(f.day=Math.min(Oa(f.year,f.month),f.day))):f=Xg({...Bl(this.c),...r});let[h,p]=ga(f,this.o,this.zone);return jr(this,{ts:h,o:p})}plus(e){if(!this.isValid)return this;let r=Ee.fromDurationLike(e);return jr(this,fE(this,r))}minus(e){if(!this.isValid)return this;let r=Ee.fromDurationLike(e).negate();return jr(this,fE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=Ee.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?Ge.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):$l}toLocaleString(e=Sa,r={}){return this.isValid?Ge.create(this.loc.clone(r),e).formatDateTime(this):$l}toLocaleParts(e={}){return this.isValid?Ge.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:o=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=ya(a);let u=e==="extended",c=ql(this,u,a);return Ea.indexOf(a)>=3&&(c+="T"),c+=pE(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?ql(this,e==="extended",ya(r)):null}toISOWeekDate(){return ha(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:u="milliseconds"}={}){return this.isValid?(u=ya(u),(i&&Ea.indexOf(u)>=3?"T":"")+pE(this,a==="extended",r,e,n,o,u)):null}toRFC2822(){return ha(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ha(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?ql(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")),ha(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():$l}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return Ee.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=nR(r).map(Ee.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=oC(u,c,o,i);return a?l.negate():l}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?zr.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(r,n)<=i&&i<=o.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],o=e.unit;return Array.isArray(e.unit)&&(i=e.unit,o=void 0),gE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?gE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new _e("min requires all arguments be DateTimes");return tE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return tE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return py(a,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,o=te.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new wa(o,e)}static fromFormatParser(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(r.locale))throw new _e(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${r.locale}`);let{result:u,zone:c,specificOffset:l,invalidReason:d}=r.explainFromTokens(e);return d?t.invalid(d):Fn(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return Sa}static get DATE_MED(){return yE}static get DATE_MED_WITH_WEEKDAY(){return UD}static get DATE_FULL(){return TE}static get DATE_HUGE(){return SE}static get TIME_SIMPLE(){return AE}static get TIME_WITH_SECONDS(){return _E}static get TIME_WITH_SHORT_OFFSET(){return OE}static get TIME_WITH_LONG_OFFSET(){return IE}static get TIME_24_SIMPLE(){return wE}static get TIME_24_WITH_SECONDS(){return DE}static get TIME_24_WITH_SHORT_OFFSET(){return RE}static get TIME_24_WITH_LONG_OFFSET(){return CE}static get DATETIME_SHORT(){return bE}static get DATETIME_SHORT_WITH_SECONDS(){return xE}static get DATETIME_MED(){return vE}static get DATETIME_MED_WITH_SECONDS(){return PE}static get DATETIME_MED_WITH_WEEKDAY(){return LD}static get DATETIME_FULL(){return NE}static get DATETIME_FULL_WITH_SECONDS(){return UE}static get DATETIME_HUGE(){return LE}static get DATETIME_HUGE_WITH_SECONDS(){return ME}};function ss(t){if(oe.isDateTime(t))return t;if(t&&t.valueOf&&lr(t.valueOf()))return oe.fromJSDate(t);if(t&&typeof t=="object")return oe.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(ss,"friendlyDateTime");var wC="3.7.2";Qe.DateTime=oe;Qe.Duration=Ee;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Bt;Qe.Info=Yr;Qe.Interval=zr;Qe.InvalidZone=Aa;Qe.Settings=ne;Qe.SystemZone=ls;Qe.VERSION=wC;Qe.Zone=dr});var Ty=q((LB,yy)=>{"use strict";var Jr=Ey();j.prototype.addYear=function(){this._date=this._date.plus({years:1})};j.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};j.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};j.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}))};j.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}))};j.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}))};j.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};j.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};j.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};j.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}))};j.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}))};j.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}))};j.prototype.getDate=function(){return this._date.day};j.prototype.getFullYear=function(){return this._date.year};j.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};j.prototype.getMonth=function(){return this._date.month-1};j.prototype.getHours=function(){return this._date.hour};j.prototype.getMinutes=function(){return this._date.minute};j.prototype.getSeconds=function(){return this._date.second};j.prototype.getMilliseconds=function(){return this._date.millisecond};j.prototype.getTime=function(){return this._date.valueOf()};j.prototype.getUTCDate=function(){return this._getUTC().day};j.prototype.getUTCFullYear=function(){return this._getUTC().year};j.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};j.prototype.getUTCMonth=function(){return this._getUTC().month-1};j.prototype.getUTCHours=function(){return this._getUTC().hour};j.prototype.getUTCMinutes=function(){return this._getUTC().minute};j.prototype.getUTCSeconds=function(){return this._getUTC().second};j.prototype.toISOString=function(){return this._date.toUTC().toISO()};j.prototype.toJSON=function(){return this._date.toJSON()};j.prototype.setDate=function(t){this._date=this._date.set({day:t})};j.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};j.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};j.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};j.prototype.setHours=function(t){this._date=this._date.set({hour:t})};j.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};j.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};j.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};j.prototype._getUTC=function(){return this._date.toUTC()};j.prototype.toString=function(){return this.toDate().toString()};j.prototype.toDate=function(){return this._date.toJSDate()};j.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};j.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function j(t,e){var r={zone:e};if(t?t instanceof j?this._date=t._date:t instanceof Date?this._date=Jr.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Jr.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Jr.DateTime.fromISO(t,r),this._date.isValid||(this._date=Jr.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Jr.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Jr.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Jr.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))}s(j,"CronDate");yy.exports=j});var _y=q((kB,Ay)=>{"use strict";function Zr(t){return{start:t,count:1}}s(Zr,"buildRange");function Sy(t,e){t.end=e,t.step=e-t.start,t.count=2}s(Sy,"completeRangeWithItem");function gd(t,e,r){e&&(e.count===2?(t.push(Zr(e.start)),t.push(Zr(e.end))):t.push(e)),r&&t.push(r)}s(gd,"finalizeCurrentRange");function DC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(gd(e,r,Zr(i)),r=void 0):r?r.count===1?Sy(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Zr(r.start)),r=Zr(r.end),Sy(r,i)):(gd(e,r),r=Zr(i)):r=Zr(i)}return gd(e,r),e}s(DC,"compactField");Ay.exports=DC});var Iy=q((BB,Oy)=>{"use strict";var RC=_y();function CC(t,e,r){var n=RC(t);if(n.length===1){var i=n[0],o=i.step;if(o===1&&i.start===e&&i.end===r)return"*";if(o!==1&&i.start===e&&i.end===r-o+1)return"*/"+o}for(var a=[],u=0,c=n.length;u<c;++u){var l=n[u];if(l.count===1){a.push(l.start);continue}var o=l.step;if(l.step===1){a.push(l.start+"-"+l.end);continue}var d=l.start==0?l.count-1:l.count;l.step*d>l.end?a=a.concat(Array.from({length:l.end-l.start+1}).map(function(h,p){var S=l.start+p;return(S-l.start)%l.step===0?S:null}).filter(function(h){return h!=null})):l.end===r-l.step+1?a.push(l.start+"/"+l.step):a.push(l.start+"-"+l.end+"/"+l.step)}return a.join(",")}s(CC,"stringifyField");Oy.exports=CC});var Ry=q(($B,Dy)=>{"use strict";var Xr=Ty(),bC=Iy(),wy=1e4;function L(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Xr(e.currentDate,this._tz),this._startDate=e.startDate?new Xr(e.startDate,this._tz):null,this._endDate=e.endDate?new Xr(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=L._freezeFields(t)}s(L,"CronExpression");L.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];L.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};L.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];L.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];L.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};L.parseDefaults=["0","*","*","*","*","*"];L.standardValidCharacters=/^[,*\d/-]+$/;L.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;L.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;L.validCharacters={second:L.standardValidCharacters,minute:L.standardValidCharacters,hour:L.standardValidCharacters,dayOfMonth:L.dayOfMonthValidCharacters,month:L.standardValidCharacters,dayOfWeek:L.dayOfWeekValidCharacters};L._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");L._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=L.aliases[e];r=r.replace(/[a-z]{3}/gi,function(c){if(c=c.toLowerCase(),typeof i[c]<"u")return i[c];throw new Error('Validation error, cannot resolve alias "'+c+'"')});break}if(!L.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function o(c){var l=[];function d(S){if(S instanceof Array)for(var m=0,E=S.length;m<E;m++){var y=S[m];if(L._isValidConstraintChar(n,y)){l.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);l.push(y)}else{if(L._isValidConstraintChar(n,S)){l.push(S);return}var I=+S;if(Number.isNaN(I)||I<n.min||I>n.max)throw new Error("Constraint error, got value "+S+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(I=I%7),l.push(I)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(S){return S.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var h=0,p=f.length;h<p;h++)d(a(f[h]));else d(a(c));return l.sort(L._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var h=+f[0],p=+f[1];if(Number.isNaN(h)||Number.isNaN(p)||h<n.min||p>n.max)throw new Error("Constraint error, got range "+h+"-"+p+" expected range "+n.min+"-"+n.max);if(h>p)throw new Error("Invalid range: "+c);var S=+l;if(Number.isNaN(S)||S<=0)throw new Error("Constraint error, cannot repeat at every "+S+" time.");e==="dayOfWeek"&&p%7===0&&d.push(0);for(var m=h,E=p;m<=E;m++){var y=d.indexOf(m)!==-1;!y&&S>0&&S%l===0?(S=1,d.push(m)):S++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");L._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};L._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=L.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(L._sortCompareFn)}};L._freezeFields=function(t){for(var e=0,r=L.map.length;e<r;++e){var n=L.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};L.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};L.prototype._findSchedule=s(function(e){function r(y,I){for(var O=0,w=I.length;O<w;O++)if(I[O]>=y)return I[O]===y;return I[0]===y}s(r,"matchSchedule");function n(y,I){if(I<6){if(y.getDate()<8&&I===1)return!0;var O=y.getDate()%7?1:0,w=y.getDate()-y.getDate()%7,T=Math.floor(w/7)+O;return T===I}return!1}s(n,"isNthDayMatch");function i(y){return y.length>0&&y.some(function(I){return typeof I=="string"&&I.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new Xr(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(y){return y.some(function(I){if(!i([I]))return!1;var O=Number.parseInt(I[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+I);return a.getDay()===O&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<wy;){if(d++,e){if(u&&a.getTime()-u.getTime()<0)throw new Error("Out of the timespan range")}else if(c&&c.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var h=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(h=h||a.isLastDayOfMonth());var p=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||f(this.fields.dayOfWeek));var S=this.fields.dayOfMonth.length>=L.daysInMonth[a.getMonth()],m=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,E=a.getHours();if(!h&&(!p||m)){this._applyTimezoneShift(a,o,"Day");continue}if(!S&&m&&!h){this._applyTimezoneShift(a,o,"Day");continue}if(S&&!m&&!p){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(E-1,this.fields.hour)){a[o+"Hour"]();continue}if(!r(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,o,"Minute");continue}if(!r(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,o,"Second");continue}if(l===a.getTime()){o==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,o,"Second"):a.setMilliseconds(0);continue}break}if(d>=wy)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Xr(a,this._tz),this._hasIterated=!0,a},"_findSchedule");L.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");L.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");L.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};L.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};L.prototype.iterate=s(function(e,r){var n=[];if(e>=0)for(var i=0,o=e;i<o;i++)try{var a=this.next();n.push(a),r&&r(a,i)}catch{break}else for(var i=0,o=e;i>o;i--)try{var a=this.prev();n.push(a),r&&r(a,i)}catch{break}return n},"iterate");L.prototype.reset=s(function(e){this._currentDate=new Xr(e||this._options.currentDate)},"reset");L.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=L.map.length;n<i;++n){var o=L.map[n],a=this.fields[o],u=L.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:L.daysInMonth[this.fields.month[0]-1]}:o==="dayOfWeek"&&(u={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),r.push(bC(a,u.min,u.max))}return r.join(" ")},"stringify");L.parse=s(function(e,r){var n=this;typeof r=="function"&&(r={});function i(o,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new Xr(void 0,n._tz)),L.predefined[o]&&(o=L.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=L.map.length-c.length,d=0,f=L.map.length;d<f;++d){var h=L.map[d],p=c[c.length>f?d:d-l];if(d<l||!p)u.push(L._parseField(h,L.parseDefaults[d],L.constraints[d]));else{var S=h==="dayOfWeek"?I(p):p;u.push(L._parseField(h,S,L.constraints[d]))}}for(var m={},d=0,f=L.map.length;d<f;d++){var E=L.map[d];m[E]=u[d]}var y=L._handleMaxDaysInMonth(m);return m.dayOfMonth=y||m.dayOfMonth,new L(m,a);function I(O){var w=O.split("#");if(w.length>1){var T=+w[w.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(w.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=T,w[0]}return O}s(I,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");L.fieldsToExpression=s(function(e,r){function n(h,p,S){if(!p)throw new Error("Validation error, Field "+h+" is missing");if(p.length===0)throw new Error("Validation error, Field "+h+" contains no values");for(var m=0,E=p.length;m<E;m++){var y=p[m];if(!L._isValidConstraintChar(S,y)&&(typeof y!="number"||Number.isNaN(y)||y<S.min||y>S.max))throw new Error("Constraint error, got value "+y+" expected range "+S.min+"-"+S.max)}}s(n,"validateConstraints");for(var i={},o=0,a=L.map.length;o<a;++o){var u=L.map[o],c=e[u];n(u,c,L.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(L._sortCompareFn).filter(function(h,p,S){return!p||h!==S[p-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=L._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new L(i,r||{})},"fieldsToExpression");Dy.exports=L});var by=q((VB,Cy)=>{"use strict";var xa=Ry();function fr(){}s(fr,"CronParser");fr._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:xa.parse(e)};if(r.length>6)return{interval:xa.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");fr.parseExpression=s(function(e,r){return xa.parse(e,r)},"parseExpression");fr.fieldsToExpression=s(function(e,r){return xa.fieldsToExpression(e,r)},"fieldsToExpression");fr.parseString=s(function(e){for(var r=e.split(`
5
- `),n={variables:{},expressions:[],errors:{}},i=0,o=r.length;i<o;i++){var a=r[i],u=null,c=a.trim();if(c.length>0){if(c.match(/^#/))continue;if(u=c.match(/^(.*)=(.*)$/))n.variables[u[1]]=u[2];else{var l=null;try{l=fr._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");fr.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,fr.parseString(i.toString()))})},"parseFile");Cy.exports=fr});var rk={};P(rk,{APIWarning:()=>In,ActiveContentFileError:()=>Bu,AutomationViewMode:()=>Ba,BUDIBASE_DATASOURCE_TYPE:()=>jd,BadRequestError:()=>co,BudibaseError:()=>uo,Config:()=>Xd,Cookie:()=>en,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Jd,DEFAULT_EXPENSES_TABLE_ID:()=>zd,DEFAULT_INVENTORY_TABLE_ID:()=>Yd,DEFAULT_JOBS_TABLE_ID:()=>Hd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>jn,DesignDocuments:()=>As,DocumentType:()=>ce,Duration:()=>pe,DurationType:()=>ep,EmailUnavailableError:()=>zt,Endpoint:()=>Bc,EndpointGroup:()=>wn,EndpointGroupList:()=>ko,FeatureDisabledError:()=>Gu,FeatureDisabledWarning:()=>wc,ForbiddenError:()=>Wu,GlobalRole:()=>Zd,HTTPError:()=>Me,Header:()=>We,InternalTable:()=>Pt,InvalidAPIKeyWarning:()=>Ai,MAX_VALID_DATE:()=>Ga,MIN_VALID_DATE:()=>jy,NotFoundError:()=>Fu,NotImplementedError:()=>$u,RedisClient:()=>De,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>Qd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Pe,USER_METADATA_PREFIX:()=>Ss,UnexpectedError:()=>ku,UsageLimitError:()=>Vu,UsageLimitWarning:()=>Ic,UserStatus:()=>$a,ViewName:()=>Wt,WORKSPACE_DEV:()=>Wa,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et,accounts:()=>yn,auth:()=>Lm,blacklist:()=>Bm,cache:()=>wo,configs:()=>Jt,constants:()=>ef,context:()=>ue,csv:()=>Jm,db:()=>Sr,docIds:()=>Vf,docUpdates:()=>$m,encryption:()=>Cm,env:()=>g,errors:()=>Ku,events:()=>hi,features:()=>Om,getErrorMessage:()=>uA,getPublicError:()=>qu,init:()=>tk,installation:()=>Zu,locks:()=>En,logging:()=>Xs,middleware:()=>Um,objectStore:()=>yp,permissions:()=>Sm,platform:()=>oo,plugins:()=>km,queue:()=>Ip,redis:()=>Fm,roles:()=>Tm,security:()=>kp,sessions:()=>Qu,setEnv:()=>Os,sql:()=>zm,tenancy:()=>ek,timers:()=>Ou,userUtils:()=>Jp,users:()=>Ei,utils:()=>si,warnings:()=>bm,withEnv:()=>Zy});module.exports=yO(rk);var Jt={};P(Jt,{analyticsEnabled:()=>Yu,generateConfigID:()=>xo,getConfig:()=>Be,getDefaultGoogleConfig:()=>om,getGoogleConfig:()=>lc,getGoogleDatasourceConfig:()=>um,getOIDCConfig:()=>l0,getOIDCConfigById:()=>cm,getOIDCLogosDoc:()=>u0,getPlatformUrl:()=>vo,getRecaptchaConfig:()=>p0,getSCIMConfig:()=>f0,getSMTPConfig:()=>d0,getSMTPConfigDoc:()=>u_,getSettingsConfig:()=>am,getSettingsConfigDoc:()=>yi,getTranslationsConfig:()=>o0,getTranslationsConfigDoc:()=>a_,save:()=>s0});var TO=["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"],SO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],eh=[...TO,...SO],th={"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_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0,"resource:copied_to_workspace":"{{ resource.type }} copied to workspace"};var Wc=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Wc||{}),$c=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.SENSITIVE_LONGFORM="sensitiveLongForm",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))($c||{}),Bo=(y=>(y.AIRTABLE="AIRTABLE",y.ARANGODB="ARANGODB",y.BUDIBASE="BUDIBASE",y.COUCHDB="COUCHDB",y.DYNAMODB="DYNAMODB",y.ELASTICSEARCH="ELASTICSEARCH",y.FIRESTORE="FIRESTORE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.MONGODB="MONGODB",y.MYSQL="MYSQL",y.ORACLE="ORACLE",y.POSTGRES="POSTGRES",y.REDIS="REDIS",y.REST="REST",y.S3="S3",y.SNOWFLAKE="SNOWFLAKE",y.SQL_SERVER="SQL_SERVER",y))(Bo||{});var Gc=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(Gc||{});var AO=B(require("lodash/isPlainObject"));var Mr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Mr||{}),ir=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(ir||{}),Rn=(e=>(e.RANGE="range",e))(Rn||{}),wi=(r=>(r.AND="$and",r.OR="$or",r))(wi||{});function Wo(t){return Object.values(wi).includes(t)}s(Wo,"isLogicalSearchOperator");function rh(t){return Object.values(Mr).includes(t)}s(rh,"isBasicSearchOperator");function nh(t){return Object.values(ir).includes(t)}s(nh,"isArraySearchOperator");function $o(t){return Object.values(Rn).includes(t)}s($o,"isRangeSearchOperator");var ih=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Di=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Di||{});var Ri=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ri||{});var Go=(f=>(f.WORKSPACE="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(Go||{});var Vo=s(t=>t.hosting==="cloud","isCloudAccount");var qo=s(t=>t.authType==="sso","isSSOAccount");var C="_",Pe="\uFFF0",sr=s(t=>`${t}${C}`,"prefixed"),ce=(V=>(V.USER="us",V.GROUP="gr",V.CONFIG="config",V.TEMPLATE="template",V.WORKSPACE="app",V.DEV="dev",V.WORKSPACE_DEV="app_dev",V.WORKSPACE_METADATA="app_metadata",V.ROLE="role",V.DEV_INFO="devinfo",V.AUTOMATION_LOG="log_au",V.ACCOUNT_METADATA="acc_metadata",V.PLUGIN="plg",V.DATASOURCE="datasource",V.DATASOURCE_PLUS="datasource_plus",V.APP_BACKUP="backup",V.TABLE="ta",V.ROW="ro",V.AUTOMATION="au",V.LINK="li",V.WEBHOOK="wh",V.INSTANCE="inst",V.LAYOUT="layout",V.SCREEN="screen",V.QUERY="query",V.DEPLOYMENTS="deployments",V.METADATA="metadata",V.MEM_VIEW="view",V.USER_FLAG="flag",V.AUTOMATION_METADATA="meta_au",V.AUDIT_LOG="al",V.SCIM_LOG="scimlog",V.ROW_ACTIONS="ra",V.OAUTH2_CONFIG="oauth2",V.OAUTH2_CONFIG_LOG="oauth2log",V.AGENT="agent",V.CHAT_APP="chatapp",V.CHAT_CONVERSATION="chatconvo",V.AGENT_TOOL_SOURCE="agenttoolsource",V.AGENT_FILE="agentfile",V.AI_CONFIG="aiconfig",V.LITELLM_KEY="litellmkey",V.VECTOR_STORE="vectordb",V.WORKSPACE_APP="workspace_app",V.WORKSPACE_FAVOURITE="workspace_favourite",V.AUTO_COLUMN_STATE="autocolumn_state",V))(ce||{});var Pt=(e=>(e.USER_METADATA="ta_users",e))(Pt||{});function Ko(t){return!!t.providerType}s(Ko,"isSSOUser");var Vc=(d=>(d.OBJECT="object",d.STRING="string",d.BOOLEAN="boolean",d.NUMBER="number",d.ARRAY="array",d.JSON="json",d.DATE="date",d.DATETIME="datetime",d.ATTACHMENT="attachment",d.LONGFORM="longform",d))(Vc||{}),qc=(_=>(_.TABLE="table",_.ROW="row",_.ROWS="rows",_.WIDE="wide",_.QUERY="query",_.QUERY_PARAMS="queryParams",_.QUERY_LIMIT="queryLimit",_.LOOP_OPTION="loopOption",_.ITEM="item",_.CODE="code",_.FILTERS="filters",_.COLUMN="column",_.TRIGGER_SCHEMA="triggerSchema",_.CRON="cron",_.WEBHOOK_URL="webhookUrl",_.AUTOMATION="automation",_.AUTOMATION_FIELDS="automationFields",_.MULTI_ATTACHMENTS="multi_attachments",_.TRIGGER_FILTER="trigger_filter",_.CATEGORIES="categories",_.AGENT="agent",_.OUTPUT_SCHEMA="outputSchema",_))(qc||{}),Kc=(c=>(c.ROW_SAVED="ROW_SAVED",c.ROW_UPDATED="ROW_UPDATED",c.ROW_DELETED="ROW_DELETED",c.WEBHOOK="WEBHOOK",c.APP="APP",c.CRON="CRON",c.ROW_ACTION="ROW_ACTION",c.EMAIL="EMAIL",c))(Kc||{});var Qc=(D=>(D.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",D.CREATE_ROW="CREATE_ROW",D.GET_ROW="GET_ROW",D.UPDATE_ROW="UPDATE_ROW",D.DELETE_ROW="DELETE_ROW",D.QUERY_ROWS="QUERY_ROWS",D.EXECUTE_BASH="EXECUTE_BASH",D.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",D.EXECUTE_SCRIPT="EXECUTE_SCRIPT",D.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",D.EXECUTE_QUERY="EXECUTE_QUERY",D.SERVER_LOG="SERVER_LOG",D.DELAY="DELAY",D.FILTER="FILTER",D.API_REQUEST="API_REQUEST",D.LOOP="LOOP",D.COLLECT="COLLECT",D.OPENAI="OPENAI",D.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",D.BRANCH="BRANCH",D.CLASSIFY_CONTENT="CLASSIFY_CONTENT",D.PROMPT_LLM="PROMPT_LLM",D.TRANSLATE="TRANSLATE",D.SUMMARISE="SUMMARISE",D.GENERATE_TEXT="GENERATE_TEXT",D.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",D.EXTRACT_STATE="EXTRACT_STATE",D.LOOP_V2="LOOP_V2",D.AGENT="AGENT",D.discord="discord",D.slack="slack",D.zapier="zapier",D.integromat="integromat",D.n8n="n8n",D))(Qc||{}),sh=[...Object.values(Qc),...Object.values(Kc)];function oh(t){return t.stepId==="BRANCH"}s(oh,"isBranchStep");var jc="bb_internal";var ah=["attachment_single","attachment","signature_single","bb_reference","json","array"];var ef={};P(ef,{AutomationViewMode:()=>Ba,BUDIBASE_DATASOURCE_TYPE:()=>jd,Config:()=>Xd,Cookie:()=>en,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Jd,DEFAULT_EXPENSES_TABLE_ID:()=>zd,DEFAULT_INVENTORY_TABLE_ID:()=>Yd,DEFAULT_JOBS_TABLE_ID:()=>Hd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>jn,DesignDocuments:()=>As,DocumentType:()=>ce,GlobalRole:()=>Zd,Header:()=>We,InternalTable:()=>Pt,MAX_VALID_DATE:()=>Ga,MIN_VALID_DATE:()=>jy,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>Qd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Pe,USER_METADATA_PREFIX:()=>Ss,UserStatus:()=>$a,ViewName:()=>Wt,WORKSPACE_DEV:()=>Wa,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et});var We=(w=>(w.API_KEY="x-budibase-api-key",w.LICENSE_KEY="x-budibase-license-key",w.API_VER="x-budibase-api-version",w.APP_ID="x-budibase-app-id",w.SESSION_ID="x-budibase-session-id",w.CLIENT="x-budibase-client",w.TYPE="x-budibase-type",w.PREVIEW_ROLE="x-budibase-role",w.TENANT_ID="x-budibase-tenant-id",w.VERIFICATION_CODE="x-budibase-verification-code",w.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",w.RESET_PASSWORD_CODE="x-budibase-reset-password-code",w.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",w.TOKEN="x-budibase-token",w.CSRF_TOKEN="x-csrf-token",w.CORRELATION_ID="x-budibase-correlation-id",w.AUTHORIZATION="authorization",w.MIGRATING_APP="x-budibase-migrating-app",w.SKIP_MIGRATING_WAIT="x-budibase-migrating-app-skip-wait",w.COOKIE="cookie",w))(We||{});var Cn={WORKSPACES:"/builder/workspaces",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Qo={ACCOUNT:"/portal/account",BILLING:"/portal/billing",UPGRADE:"/portal/upgrade"};var $e={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"}},uh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var bn="datasource_internal_bb_default";var mr={};P(mr,{ColumnSplitter:()=>Nd,NoEmptyFilterStrings:()=>$y,buildQuery:()=>Gy,cleanupQuery:()=>Md,fixupFilterArrays:()=>Fd,getKeyNumbering:()=>kd,getValidOperatorsForType:()=>tb,hasFilters:()=>Ud,limit:()=>qy,recurseLogicalOperators:()=>Ld,removeKeyNumbering:()=>jo,runQuery:()=>La,search:()=>ib,sort:()=>Vy,splitFiltersArray:()=>Ho});var Qn=B(ch());var _t={};P(_t,{filterValueToLabel:()=>RO,hasSchema:()=>CO,isSupportedUserSearch:()=>fh,nameToUrl:()=>NO,parallelForeach:()=>DO,processSearchFilters:()=>zc,toMap:()=>xO,trimOtherProps:()=>bO,unreachable:()=>wO});var dh=B(require("lodash/pick"));var IO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function wO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(wO,"unreachable");async function DO(t,e,r){let n=[],i=Symbol.asyncIterator in t,o=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),a=s(async()=>{let u=await(i?o.next():Promise.resolve(o.next()));for(;!u.done;)await e(u.value),u=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}s(DO,"parallelForeach");function RO(){return Object.keys($e).reduce((t,e)=>{let n=$e[e];return t[n.value]=n.label,t},{})}s(RO,"filterValueToLabel");function CO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(CO,"hasSchema");function bO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(bO,"trimOtherProps");function fh(t){let e=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(Wo(o)){for(let l of t[o].conditions)if(!fh(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!e.find(l=>l.op===o&&u.length===1&&u[0]===l.key))return!1}return!0}s(fh,"isSupportedUserSearch");function zc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Ho(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,dh.default)(i,IO);return o.field=jo(o.field),o})}]}}s(zc,"processSearchFilters");function xO(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(xO,"toMap");var vO=s(t=>t?t.trim():null,"resolveWorkspaceName"),PO=s(t=>{let e,r=vO(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),NO=s(t=>{let e=PO(t);return UO(e)},"nameToUrl"),UO=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var Ue={};P(Ue,{accountPortalAccountUrl:()=>Od,accountPortalBillingUrl:()=>Id,accountPortalUpgradeUrl:()=>wd,agentChatUrl:()=>vd,appAgentUrl:()=>Na,appChatUrl:()=>Pa,builderAppsUrl:()=>xd,builderSettingsAuthUrl:()=>Cd,builderSettingsEmailUrl:()=>Rd,builderSettingsPeopleUsersUrl:()=>bd,builderWorkspacesUrl:()=>Dd,cancelableTimeout:()=>ph,cron:()=>JC,deepGet:()=>Jc,duplicateName:()=>QC,escapeHtml:()=>BO,formatBytes:()=>zC,getSequentialName:()=>jC,getUserColor:()=>MO,getUserInitials:()=>LO,getUserLabel:()=>kO,isGoogleSheets:()=>WO,isSQL:()=>$O,lists:()=>_d,retry:()=>GO,roles:()=>Ad,schema:()=>hs,structuredOutput:()=>yd,urlHelpers:()=>Fy,views:()=>Sd,wait:()=>Zc,withTimeout:()=>FO});var Jc=s((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},"deepGet"),LO=s(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"},"getUserInitials"),MO=s(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%)`},"getUserColor"),kO=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function ph(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(ph,"cancelableTimeout");async function FO(t,e){let[r,n]=ph(t),i=await Promise.race([e(),r]);return n(),i}s(FO,"withTimeout");var BO=s(t=>t==null?"":String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),"escapeHtml");function WO(t){return t==="GOOGLE_SHEETS"}s(WO,"isGoogleSheets");function $O(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s($O,"isSQL");async function Zc(t){return new Promise(e=>setTimeout(e,t))}s(Zc,"wait");async function GO(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 o=1.5**i*1e3*(Math.random()+.5);await Zc(o);try{return await t()}catch(a){n=a}}throw n}s(GO,"retry");var vy=B(Ot()),Py=B(by());var xy="(Input cron: ",xC={"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 vC(t){let e=[];for(let r of t){r.includes(xy)&&(r=r.split(xy)[0].trim());for(let[n,i]of Object.entries(xC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(vC,"improveErrors");function Ny(t,e=4){let r=Py.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}s(Ny,"getNextExecutionDates");function Uy(t){let e=(0,vy.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:vC(e.getError())}}s(Uy,"validate");var hs={};P(hs,{decodeNonAscii:()=>Ed,encodeNonAscii:()=>UC,isDeprecatedSingleUserColumn:()=>PC,isNumeric:()=>LC,isRequired:()=>NC});function PC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(PC,"isDeprecatedSingleUserColumn");function NC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(NC,"isRequired");function UC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(UC,"encodeNonAscii");function Ed(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(Ed,"decodeNonAscii");function LC(t){return t.type==="number"||t.type==="bigint"}s(LC,"isNumeric");var yd={};P(yd,{normalizeSchemaForStructuredOutput:()=>MC});function MC(t){function e(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let o=i.properties,a=[],u={};for(let[d,f]of Object.entries(o))if(typeof f=="object"&&f!==null){let h=f;if(h.required===!0){a.push(d);let{required:p,...S}=h;u[d]=e(S)}else u[d]=e(h)}else u[d]=f;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=e(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>e(a)));return i}s(e,"processSchema");let r=e(t);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}s(MC,"normalizeSchemaForStructuredOutput");var Sd={};P(Sd,{basicFields:()=>$C,calculationFields:()=>WC,hasCalculationFields:()=>BC,isBasicViewField:()=>kC,isCalculationField:()=>gs,isCalculationView:()=>FC,isV2:()=>GC,isVisible:()=>Ly});var Td=B(require("lodash/pickBy"));function gs(t){return"calculationType"in t}s(gs,"isCalculationField");function kC(t){return!gs(t)}s(kC,"isBasicViewField");function FC(t){return t.type==="calculation"}s(FC,"isCalculationView");function BC(t){return Object.values(t.schema||{}).some(gs)}s(BC,"hasCalculationFields");function WC(t){return(0,Td.default)(t.schema||{},gs)}s(WC,"calculationFields");function Ly(t){return t.visible!==!1}s(Ly,"isVisible");function $C(t,e){let{visible:r=!0}=e||{};return(0,Td.default)(t.schema||{},n=>!gs(n)&&(!r||Ly(n)))}s($C,"basicFields");function GC(t){return t.version===2}s(GC,"isV2");var Ad={};P(Ad,{checkForRoleInheritanceLoops:()=>qC});function VC(t){return`role${C}${t}`}s(VC,"prefixForCheck");function qC(t){let e=new Map;t.forEach(o=>{e.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=VC(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let u=e.get(a)||e.get(o);if(!u)return n.delete(o),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!t.find(o=>i(o._id))}s(qC,"checkForRoleInheritanceLoops");var _d={};P(_d,{punctuateList:()=>KC});function KC(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]}s(KC,"punctuateList");var QC=s((t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];e.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(o.push(parseInt(c[1])),!0):!1}),o.sort((u,c)=>u-c);let a;if(o.length===0)a=1;else{for(let u=0;u<o.length;u++)if(o[u]!==u+1){a=u+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),jC=s((t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let o=e.trim(),a=n?`${e}1`:o;if(!t?.length)return a;let u=0;return t.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(o))return;let d=l.split(o);if(d.length!==2)return;d[1].trim()===""&&(d[1]="1");let f=parseInt(d[1]);f>u&&(u=f)}),u===0?a:`${e}${i}${u+1}`},"getSequentialName");var My=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),HC=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),pr=s((t,e)=>{let r=My(e);if(!t)return r;let n=HC(t);return r?`${n}${r}`:n},"joinBaseAndPath"),YC=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),ky=s(t=>YC(My(t)),"normalizeAppUrl"),Od=s(t=>pr(t,Qo.ACCOUNT),"accountPortalAccountUrl"),Id=s(t=>pr(t,Qo.BILLING),"accountPortalBillingUrl"),wd=s(t=>pr(t,Qo.UPGRADE),"accountPortalUpgradeUrl"),Dd=s(t=>pr(t,Cn.WORKSPACES),"builderWorkspacesUrl"),Rd=s(t=>pr(t,Cn.SETTINGS_EMAIL),"builderSettingsEmailUrl"),Cd=s(t=>pr(t,Cn.SETTINGS_AUTH),"builderSettingsAuthUrl"),bd=s(t=>pr(t,Cn.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),xd=s(t=>pr(t,Cn.APPS),"builderAppsUrl"),Pa=s(t=>`/app-chat${ky(t)}`,"appChatUrl"),Na=s((t,e)=>`${ky(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),vd=s((t,e)=>Pa(Na(t,e)),"agentChatUrl"),Fy={accountPortalAccountUrl:Od,accountPortalBillingUrl:Id,accountPortalUpgradeUrl:wd,builderWorkspacesUrl:Dd,builderSettingsEmailUrl:Rd,builderSettingsAuthUrl:Cd,builderSettingsPeopleUsersUrl:bd,builderAppsUrl:xd,appChatUrl:Pa,appAgentUrl:Na,agentChatUrl:vd};function zC(t,e=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,o=typeof t=="string"?parseInt(t,10):t||0;for(;o>=1024&&i<r.length-1&&++i;)o/=1024;return`${o.toFixed(o<10&&i>0?1:0)}${e}${r[i]}`}s(zC,"formatBytes");var JC={getNextExecutionDates:Ny,validate:Uy};var Ua=B(require("lodash/isPlainObject")),Pd=B(require("lodash/isEmpty"));var XC=/{{([^{].*?)}}/g,Wy=Object.values(wi),eb=[...Object.values(Mr),...Object.values(ir),...Object.values(Rn)],tb=s((t,e,r)=>{let n=$e,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:d}=t;c==="string"?d==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||hs.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let f=r?.tableId?.includes("datasource_plus");return e==="_id"&&f&&(u=[n.Equals,n.NotEquals,n.In]),u},"getValidOperatorsForType"),$y=[$e.StartsWith.value,$e.Like.value,$e.Equals.value,$e.NotEquals.value,$e.Contains.value,$e.NotContains.value,$e.ContainsAny.value,$e.In.value];function Ld(t,e){for(let r of Wy)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Ld,"recurseLogicalOperators");var Md=s(t=>{for(let e of $y)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,o]of Object.entries(t[r]))(o==null||o===""||rb(o))&&delete t[e][i]}return t=Ld(t,Md),t},"cleanupQuery");function rb(t){return Array.isArray(t)&&t.length===0}s(rb,"isEmptyArray");var jo=s(t=>kd(t).key,"removeKeyNumbering"),kd=s(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}},"getKeyNumbering"),Nd=class{static{s(this,"ColumnSplitter")}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}=kd(e),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let o;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),o=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=Ed(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function nb(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:o}=t,{value:a}=t;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(XC)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if($o(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if($o(r)){let l=uh[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],low:a};else if(rh(r)||nh(r)||$o(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(nb,"buildCondition");function Ho(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}s(Ho,"splitFiltersArray");function Gy(t){if(!t)return{};if(Array.isArray(t)&&(t=zc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=By(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=Gy(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=Ho(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=By(n.logicalOperator)),{[u]:{conditions:a.map(nb).filter(c=>c)}}})},e}s(Gy,"buildQuery");function By(t){return t==="all"?"$and":"$or"}s(By,"logicalOperatorFromUI");function Fd(t){if(!t)return t;for(let e of Object.values(ir)){let r=t[e];if(!(r==null||!(0,Ua.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(o=>o.trim()):r[n]=[i]}}return Ld(t,Fd),t}s(Fd,"fixupFilterArrays");function ib(t,e){let r=La(t,e.query);e.sort&&(r=Vy(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=qy(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(ib,"search");function La(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Md(e),e=Fd(e),!Ud(e)&&e.onEmptyFilter==="none")return[];let r=s((T,_)=>U=>{for(let[R,k]of Object.entries(e[T]||{})){let H=Wo(T)?U:Jc(U,jo(R)),Ie=_(H,k);if(e.allOr&&Ie)return!0;if(!e.allOr&&!Ie)return!1}return!e.allOr},"match"),n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),o=r("range",(T,_)=>{if(T==null||T===""||((0,Ua.default)(_.low)&&(0,Pd.default)(_.low)&&(_.low=void 0),(0,Ua.default)(_.high)&&(0,Pd.default)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let U=+T;if(!isNaN(U)){let k=+_.low,H=+_.high;if(!isNaN(k)&&!isNaN(H))return U>=k&&U<=H;if(isNaN(k)){if(!isNaN(H))return U<=H}else return U>=k}let R=(0,Qn.default)(T);if(R.isValid()){let k=(0,Qn.default)(_.low||"0000-00-00T00:00:00.000Z"),H=(0,Qn.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&H.isValid())return R.isAfter(k)&&R.isBefore(H)||R.isSame(k)||R.isSame(H);if(k.isValid())return R.isAfter(k)||R.isSame(k);if(H.isValid())return R.isBefore(H)||R.isSame(H)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),a=s((T,_)=>{if(Array.isArray(T)){for(let R of T)if(a(R,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let U=(0,Qn.default)(T);if(U.isValid()){let R=(0,Qn.default)(_);if(R.isValid())return U.isSame(R)}return!1},"_valueMatches"),u=s(T=>(..._)=>!T(..._),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),f=r("empty",d),h=r("notEmpty",u(d)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(U=>parseFloat(U))),Array.isArray(_)?_.some(U=>a(T,U)):!1)),S=s(T=>(_,U)=>!Array.isArray(_)||(typeof U=="string"&&(U=U.split(","),typeof _[0]=="number"&&(U=U.map(R=>parseFloat(R)))),!Array.isArray(U))?!1:U.length===0?!0:U[T](R=>a(_,R)),"_contains"),m=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:S("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:u(S("every"))(T,_)),y=r("containsAny",S("some")),I=r("$and",(T,_)=>{if(!_.length)return!1;for(let U of _)if(!La([T],U).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let U of _)if(La([T],{...U,allOr:!0}).length)return!0;return!1}),w=s(T=>{let _={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:h,oneOf:p,contains:m,containsAny:y,notContains:E,$and:I,$or:O},U=Object.entries(e||{}).filter(([R,k])=>!["allOr","onEmptyFilter"].includes(R)&&k&&Object.keys(k).length>0).map(([R])=>_[R]?.(T)??!1);return Ud(e)?e.allOr?U.some(R=>R===!0):U.every(R=>R===!0):!0},"docMatch");return t.filter(w)}s(La,"runQuery");function Vy(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return t.slice().sort((o,a)=>{let u=i(o[e]),c=i(a[e]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(Vy,"sort");function qy(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(qy,"limit");var Ud=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of Wy)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of eb){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return e(t)},"hasFilters");var Le={};P(Le,{applications:()=>Wd,automations:()=>$d,screens:()=>Kd,users:()=>qd});var Wd={};P(Wd,{getDevAppID:()=>sb,getProdAppID:()=>ys});var Bd=sr("app"),Es=sr("app_dev");function sb(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Es))return t;let e=t.split(Bd);e.shift();let r=e.join(Bd);return`${Es}${r}`}s(sb,"getDevAppID");function ys(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Es))return t;let e=t.split(Es);e.shift();let r=e.join(Es);return`${Bd}${r}`}s(ys,"getProdAppID");var $d={};P($d,{checkForCollectStep:()=>cb,isAppAction:()=>ub,isRowAction:()=>ob,isWebhookAction:()=>ab});function ob(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(ob,"isRowAction");function ab(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(ab,"isWebhookAction");function ub(t){return t.definition.trigger?.stepId==="APP"}s(ub,"isAppAction");function Ky(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(oh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(Ky(r))return!0}}return!1}s(Ky,"hasCollectBlockRecursive");function cb(t){return Ky(t.definition.steps)}s(cb,"checkForCollectStep");var qd={};P(qd,{canCreateApps:()=>lb,containsUserID:()=>yb,getGlobalUserID:()=>Eb,getUserAppGroups:()=>Tb,hasAdminPermissions:()=>Vd,hasAppBuilderPermissions:()=>ka,hasBuilderPermissions:()=>hb,hasCreatorPermissions:()=>Fa,isAdmin:()=>Ts,isAdminOrBuilder:()=>fb,isAdminOrGlobalBuilder:()=>pb,isAdminOrWorkspaceBuilder:()=>db,isBuilder:()=>Gd,isCreator:()=>gb,isGlobalBuilder:()=>Ma,userAppAccessList:()=>Sb});function Gd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ys(e))):!1}s(Gd,"isBuilder");function Ma(t){return Gd(t)&&!ka(t)||Ts(t)}s(Ma,"isGlobalBuilder");function lb(t){return Ma(t)||Fa(t)}s(lb,"canCreateApps");function Ts(t){return t?Vd(t):!1}s(Ts,"isAdmin");function db(t,e){return t?!!(Ts(t)||e&&t.builder?.apps?.includes(ys(e))):!1}s(db,"isAdminOrWorkspaceBuilder");function fb(t,e){return Gd(t,e)||Ts(t)}s(fb,"isAdminOrBuilder");function pb(t){return Ma(t)||Ts(t)}s(pb,"isAdminOrGlobalBuilder");function ka(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(ka,"hasAppBuilderPermissions");function mb(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(mb,"hasAppCreatorPermissions");function hb(t){return t?t.builder?.global||ka(t)||Fa(t):!1}s(hb,"hasBuilderPermissions");function Vd(t){return t?!!t.admin?.global:!1}s(Vd,"hasAdminPermissions");function Fa(t){return t?!!t.builder?.creator:!1}s(Fa,"hasCreatorPermissions");function gb(t){return t?Ma(t)||Vd(t)||Fa(t)||ka(t)||mb(t):!1}s(gb,"isCreator");function Eb(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}s(Eb,"getGlobalUserID");function yb(t){return typeof t!="string"?!1:t.includes(`us${C}`)}s(yb,"containsUserID");function Qy(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(Qy,"getUserGroups");function Tb(t,e,r){let n=ys(t);return Qy(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(Tb,"getUserAppGroups");function Sb(t,e){let n=Qy(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Sb,"userAppAccessList");var Kd={};P(Kd,{findInSettings:()=>Ab});function Ab(t,e){let r=[];function n(i,o=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(e)?r.push({setting:o?`${o}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return s(n,"recurse"),n(t.props),r}s(Ab,"findInSettings");var Ba=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ba||{}),Wt=(d=>(d.USER_BY_WORKSPACE="by_app",d.USER_BY_EMAIL="by_email2",d.BY_API_KEY="by_api_key",d.LINK="by_link",d.ROUTING="screen_routes_2",d.AUTOMATION_LOGS="automation_logs",d.ACCOUNT_BY_EMAIL="account_by_email",d.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",d.USER_BY_GROUP="user_by_group",d.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",d))(Wt||{}),jn={by_email2:["by_email"]},fe={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=sr("app"),Wa=sr("app_dev"),tt=Wa,Qd="internal",jd="budibase",Rt="_design/sqlite",Hd="ta_bb_jobs",Yd="ta_bb_inventory",zd="ta_bb_expenses",Jd="ta_bb_employee",Ss=`ro${C}ta_users${C}`,As=(r=>(r[r.SQLITE=Rt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(As||{});var $a=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))($a||{}),en=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(en||{}),Zd=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Zd||{}),Xd=(c=>(c.SETTINGS="settings",c.ACCOUNT="account",c.SMTP="smtp",c.GOOGLE="google",c.OIDC="oidc",c.OIDC_LOGOS="logos_oidc",c.SCIM="scim",c.AI="AI",c))(Xd||{}),jy=new Date(-2147483647e3),Ga=new Date(2147483647e3),ae="default";var wo={};P(wo,{CacheKey:()=>ye,TTL:()=>mn,bustCache:()=>li,destroy:()=>to,docWritethrough:()=>Dp,generic:()=>ro,get:()=>hn,invite:()=>bp,keys:()=>Lu,passwordReset:()=>xp,store:()=>Yt,user:()=>br,withCache:()=>wr,withCacheWithDynamicTTL:()=>JS,workspace:()=>Us,writethrough:()=>sm});var Dp={};P(Dp,{DocWritethrough:()=>wp,DocWritethroughProcessor:()=>eo,getProcessor:()=>cP,init:()=>zS});var Ip={};P(Ip,{BudibaseQueue:()=>Et,InMemoryQueue:()=>_u,JobQueue:()=>oi,QueuedProcessor:()=>Op,UnretriableError:()=>Nu,shutdown:()=>Ov});var tf=require("crypto"),qa=require("fs"),zy=require("lodash"),_s=require("path");var _b=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,_s.resolve)((0,_s.join)(__dirname,"..","..","..")),Hy=!1;!Hy&&Va()&&!rf()&&(require("dotenv").config({path:(0,_s.join)(_b,".env")}),Hy=!0);function rf(){return Jy()}s(rf,"isTest");function Jy(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(Jy,"isJest");function Va(){return process.env.NODE_ENV!=="production"}s(Va,"isDev");function Ob(t){if(t)return parseInt(t)}s(Ob,"parseIntSafe");var Hn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},Yy=!!parseInt(process.env.SELF_HOSTED||"");function Ib(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(Ib,"getAPIEncryptionKey");function wb(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(wb,"httpLogging");function Db(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,qa.existsSync)(l))return l;let d=`${c}/..`;return d===c?null:n(u,d)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,qa.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(Va()&&!rf())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:""}}}s(Db,"getPackageJsonFields");function Rb(){return pt.SERVICE_TYPE==="worker"}s(Rb,"isWorker");function Cb(){return pt.SERVICE_TYPE==="apps"}s(Cb,"isApps");function bb(){return pt.BUDIBASE_ENVIRONMENT==="QA"}s(bb,"isQA");function xb(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}s(xb,"getServiceName");var pt={isTest:rf,isJest:Jy,isDev:Va,isWorker:Rb,isApps:Cb,isQA:bb,isProd:()=>!Va(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,tf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,tf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Ib(),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_USERNAME:process.env.REDIS_USERNAME,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,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,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:Yy,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||Hn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Hn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Hn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Hn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Hn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Hn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:xb(),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:wb(),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:Yy?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Db(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,pt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,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:Ob(process.env.BSON_BUFFER_SIZE),CUSTOM_CSP_MEDIA_SRC:process.env.CUSTOM_CSP_MEDIA_SRC,CUSTOM_CSP_SCRIPT_SRC:process.env.CUSTOM_CSP_SCRIPT_SRC,CUSTOM_CSP_CONNECT_SRC:process.env.CUSTOM_CSP_CONNECT_SRC,CUSTOM_CSP_IMG_SRC:process.env.CUSTOM_CSP_IMG_SRC,CUSTOM_CSP_FONT_SRC:process.env.CUSTOM_CSP_FONT_SRC,CUSTOM_CSP_FRAME_SRC:process.env.CUSTOM_CSP_FRAME_SRC,OPENROUTER_BASE_URL:process.env.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1"};function Os(t){let e=(0,zy.cloneDeep)(pt),r;for(r in t)pt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))pt._set(n,i)}}s(Os,"setEnv");function Zy(t,e){let r=Os(t);try{let n=e();return n instanceof Promise?n.finally(r):(r(),n)}catch(n){throw r(),n}}s(Zy,"withEnv");var Xy=["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","REDIS_PASSWORD","REDIS_USERNAME"];for(let[t,e]of Object.entries(pt))e==="0"&&(pt[t]=0),e==="false"&&(pt[t]=0);var g=pt;var ja={};P(ja,{Databases:()=>nf,SEPARATOR:()=>Yn,SelectableDatabase:()=>Ka,getRedisClusterOptions:()=>sf,getRedisConnectionDetails:()=>Qa,getRedisOptions:()=>tn,removeDbPrefix:()=>of});var Yn="-",nf=(O=>(O.PW_RESETS="pwReset",O.VERIFICATIONS="verification",O.INVITATIONS_LIST="invitationList",O.DEV_LOCKS="devLocks",O.DEBOUNCE="debounce",O.SESSIONS="session",O.USER_CACHE="users",O.FLAGS="flags",O.WORKSPACE_METADATA="appMetadata",O.QUERY_VARS="queryVars",O.LICENSES="license",O.GENERIC_CACHE="data_cache",O.WRITE_THROUGH="writeThrough",O.LOCKS="locks",O.SOCKET_IO="socket_io",O.BPM_EVENTS="bpmEvents",O.DOC_WRITE_THROUGH="docWriteThrough",O.RECAPTCHA_SESSION="recaptchaSession",O.OPENAPI_IMPORT_SPECS="openapiImportSpecs",O))(nf||{}),Ka=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",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))(Ka||{});function Qa(){let t=g.REDIS_PASSWORD,e=g.REDIS_USERNAME,r=g.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");e=e||a[0]||void 0,t=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:t,username:e,port:isNaN(o)?6379:o}}s(Qa,"getRedisConnectionDetails");function sf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...tn(),tls:{}}}}s(sf,"getRedisClusterOptions");function tn(){let{host:t,password:e,port:r,username:n}=Qa();return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n}}}s(tn,"getRedisOptions");function of(t){let e=t.split(Yn);return e.length>=2?(e.shift(),e.join(Yn)):e[0]}s(of,"removeDbPrefix");var pS=B(require("events"));var si={};P(si,{Duration:()=>pe,DurationType:()=>ep,GZIP_PREFIX:()=>Au,clearCookie:()=>Ar,compare:()=>cf,getBearerToken:()=>pv,getCookie:()=>Qt,getDispatcher:()=>uv,getWorkspaceIdFromCtx:()=>un,gunzipFromBase64:()=>fv,gzipToBase64:()=>dv,hasCircularStructure:()=>ev,hash:()=>uf,isAudited:()=>Zf,isClient:()=>Xx,isPublicApiRequest:()=>Jx,isServingApp:()=>Hx,isServingBuilder:()=>Yx,isServingBuilderPreview:()=>zx,isValidInternalAPIKey:()=>Vs,newid:()=>ee,openJwt:()=>yu,setCookie:()=>fS,time:()=>rv,timeout:()=>Jf,urlHasProtocol:()=>tv,validEmail:()=>Xf});var eT=require("uuid");function ee(){return(0,eT.v4)().replace(/-/g,"")}s(ee,"newid");var af=require("bcrypt"),vb=g.SALT_ROUNDS||10;async function uf(t){let e=await af.genSalt(vb);return af.hash(t,e)}s(uf,"hash");async function cf(t,e){return af.compare(t,e)}s(cf,"compare");var Eu=B(require("jsonwebtoken"));var ue={};P(ue,{DEFAULT_TENANT_ID:()=>ae,baseGlobalDBName:()=>xs,doInAutomationContext:()=>tx,doInContext:()=>Rf,doInEnvironmentContext:()=>fx,doInFeatureFlagOverrideContext:()=>Uf,doInIPContext:()=>xf,doInIdentityContext:()=>ws,doInLicenseContext:()=>nx,doInScimContext:()=>px,doInSelfHostTenantUsingCloud:()=>rx,doInTenant:()=>Ce,doInWorkspaceContext:()=>ox,doInWorkspaceMigrationContext:()=>ux,ensureSnippetContext:()=>gT,getAuditLogDBName:()=>mT,getAuditLogsDB:()=>hx,getAutomationId:()=>Cf,getCurrentContext:()=>sn,getDevWorkspaceDB:()=>Ex,getDevWorkspaceId:()=>lx,getEnvironmentVariables:()=>mx,getFeatureFlagOverrides:()=>Nf,getFeatureFlags:()=>vf,getGlobalDB:()=>Y,getGlobalDBName:()=>nn,getIP:()=>bf,getIdentity:()=>$t,getLicense:()=>ix,getOrThrowWorkspaceId:()=>cx,getPlatformURL:()=>Df,getProdWorkspaceDB:()=>gx,getProdWorkspaceId:()=>dx,getScimDBName:()=>Jb,getSelfHostCloudDB:()=>sx,getTableForView:()=>yx,getTenantIDFromWorkspaceID:()=>Xn,getTenantId:()=>$,getWorkspaceDB:()=>ei,getWorkspaceId:()=>be,identity:()=>Is,isMultiTenant:()=>Er,isScim:()=>gt,isSelfHostUsingCloud:()=>tu,isTenancyEnabled:()=>Xb,isTenantIdSet:()=>Zb,setFeatureFlags:()=>Pf,setTableForView:()=>Tx});var Is={};P(Is,{doInAccountContext:()=>Pb,doInIdentityContext:()=>df,doInUserContext:()=>ff,getAccountUserId:()=>tT,getIdentity:()=>lf});function lf(){return $t()}s(lf,"getIdentity");function df(t,e){return ws(t,e)}s(df,"doInIdentityContext");function ff(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return df(n,r)}s(ff,"doInUserContext");function Pb(t,e){let r=tT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return df(i,e)}s(Pb,"doInAccountContext");function tT(t){let e;return Vo(t)?e=t.budibaseUserId:e=t.accountId,e}s(tT,"getAccountUserId");var mt=s(t=>{let e=pf(t),r,n;if(e.auth?.username)r=e.auth.username;else if(g.COUCH_DB_USERNAME)r=g.COUCH_DB_USERNAME;else if(!g.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(g.COUCH_DB_PASSWORD)n=g.COUCH_DB_PASSWORD;else if(!g.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=g.COUCH_DB_SQL_URL;if(g.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:pf(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),pf=s((t=g.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var dT=B(require("@budibase/nano"));var rT=B(require("node-fetch"));function Ya(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(Ya,"checkSlashesInUrl");async function nT(t,e="GET",r){let{url:n,cookie:i}=mt(),o=`${n}/${t}`;return await Ds({url:o,cookie:i,method:e,body:r})}s(nT,"directCouchCall");async function Ds({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,rT.default)(Ya(encodeURI(t)),i)}s(Ds,"directCouchUrlCall");async function mf(t,e="GET",r){let n=await nT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(mf,"directCouchQuery");var rn=B(require("pouchdb"));var iT,sT=!1,hf=s((t={})=>{let{url:e,cookie:r}=mt(),n={prefix:e,fetch:(i,o)=>(o.headers.set("Authorization",r),rn.default.fetch(i,o))};if(t.inMemory){let i=require("pouchdb-adapter-memory");rn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");rn.default.plugin(i.plugin),rn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");rn.default.plugin(i)}return rn.default.defaults(n)},"getPouch");function za(t){iT=hf(t),sT=!0}s(za,"init");var Nb=s(()=>{if(!sT)throw new Error("init has not been called")},"checkInitialised");function rt(t,e){Nb();let r=new iT(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(rt,"getPouchDB");async function Rs(t){if(!(!t||g.isTest()))try{return await t.close()}catch{}}s(Rs,"closePouchDB");var le=B(require("dd-trace"));var zn=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return le.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 le.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return le.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 le.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 le.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return le.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 le.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 le.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return le.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 le.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 le.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 le.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 le.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 le.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 le.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return le.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return le.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return le.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return le.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 le.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 le.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Of={};P(Of,{breakExternalTableId:()=>yf,breakRowIdField:()=>Qb,buildExternalTableId:()=>Wb,convertRowId:()=>Kb,encodeTableId:()=>$b,encodeViewId:()=>Gb,extractDate:()=>Sf,generateRowIdField:()=>Vb,getNativeSql:()=>Jn,isExternalTable:()=>Ef,isExternalTableID:()=>Ja,isInternalTableID:()=>Bb,isRowId:()=>qb,isValidFilter:()=>Xa,isValidISODateString:()=>Za,isValidISODateStringWithoutTimezone:()=>Tf,isValidTime:()=>Af,sqlLog:()=>Cs,validateManyToMany:()=>_f});var gf=`${C}${C}`,aT=/^\[.*]$/g,Ub=encodeURIComponent(" "),Lb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Mb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,kb=/(\d{4}-\d{2}-\d{2})/,Fb=/^\d{1,2}:\d{2}(?:\.\d{1,6}|:\d{2}(?:\.\d{1,6})?)?$/;function Ja(t){return t.startsWith("datasource"+C)}s(Ja,"isExternalTableID");function Bb(t){return!Ja(t)}s(Bb,"isInternalTableID");function Jn(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}}s(Jn,"getNativeSql");function Ef(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==bn||t?.sourceType==="external"?!0:!!(t?._id&&Ja(t._id))}s(Ef,"isExternalTable");function Wb(t,e){return`${t}${gf}${encodeURIComponent(e)}`}s(Wb,"buildExternalTableId");function $b(t){return Ja(t)?encodeURIComponent(t):t}s($b,"encodeTableId");function Gb(t){return encodeURIComponent(t)}s(Gb,"encodeViewId");function yf(t){let e=t.split(gf),r=e.shift(),n=e.join(gf);if(n.includes(Ub)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(yf,"breakExternalTableId");function Vb(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,"'"))}s(Vb,"generateRowIdField");function qb(t){return Array.isArray(t)||typeof t=="string"&&t.match(aT)!=null}s(qb,"isRowId");function Kb(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(aT)!=null?t.substring(1,t.length-1):t}s(Kb,"convertRowId");function Qb(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]}}s(Qb,"breakRowIdField");function Za(t){let e=t.trim();if(!Lb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Za,"isValidISODateString");function Tf(t){let e=t.trim();if(!Mb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Tf,"isValidISODateStringWithoutTimezone");function Sf(t){let e=t.match(kb);if(e)return e[0]}s(Sf,"extractDate");function Xa(t){return t!=null&&t!==""}s(Xa,"isValidFilter");function Af(t){return Fb.test(t)}s(Af,"isValidTime");function Cs(t,e,r){if(!g.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Cs,"sqlLog");function jb(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(jb,"isValidManyToManyRelationship");function _f(t){if(jb(t))return t}s(_f,"validateManyToMany");var uT="Database does not exist.";function cT(t){return(0,dT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(cT,"buildNano");var hr=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"}static{s(this,"CouchDBError")}};function Hb(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zn(t,r,e);return new zn(n)}s(Hb,"DatabaseWithConnection");var Zn=class t{constructor(e,r,n){this.couchInfo=mt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=mt(n),this.instanceNano=cT(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=mt();t.nano=cT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Ds({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 hr(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===uT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new hr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new hr(`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}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(ih(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new hr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ee()),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===uT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ya(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await Ds(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new hr("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${Rt}`;return Cs("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,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(Rt)){let e=await this.get(Rt);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 hr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return rt(this.name).dump(e,r)}async load(e){return rt(this.name).load(e)}async createIndex(e){return rt(this.name).createIndex(e)}async deleteIndex(e){return rt(this.name).deleteIndex(e)}async getIndexes(){return rt(this.name).getIndexes()}};function Re(t,e){return new zn(new Zn(t,e))}s(Re,"getDB");async function je(t,e,r){let n=Re(t,r);return await e(n)}s(je,"doWithDB");async function If(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await mf(e)}s(If,"directCouchAllDbs");var wf="No app provided";function gr(t){if(!t)throw wf;return t.startsWith(tt)}s(gr,"isDevWorkspaceID");function Yb(t){if(!t)throw wf;return t.startsWith(et)&&!gr(t)}s(Yb,"isProdWorkspaceID");function bs(t){if(!t)throw wf;return gr(t.appId)}s(bs,"isDevWorkspace");function eu(t){if(!t||t.startsWith(tt))return t;let e=t.split(et);e.shift();let r=e.join(et);return`${tt}${r}`}s(eu,"getDevWorkspaceID");function He(t){if(!t||!t.startsWith(tt))return t;let e=t.split(tt);e.shift();let r=e.join(tt);return`${et}${r}`}s(He,"getProdWorkspaceID");var fT=require("async_hooks");var he=class t{static{s(this,"Context")}static{this.storage=new fT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var pT=null;function nn(t){return t||(t=$()),xs(t)}s(nn,"getGlobalDBName");function mT(t){return t||(t=$()),t===ae?fe.AUDIT_LOGS.name:`${t}${C}${fe.AUDIT_LOGS.name}`}s(mT,"getAuditLogDBName");function Jb(t){return t||(t=$()),t===ae?fe.SCIM_LOGS.name:`${t}${C}${fe.SCIM_LOGS.name}`}s(Jb,"getScimDBName");function xs(t){return!t||t===ae?fe.GLOBAL.name:`${t}${C}${fe.GLOBAL.name}`}s(xs,"baseGlobalDBName");function Df(){return g.PLATFORM_URL}s(Df,"getPlatformURL");function Er(){return!!g.MULTI_TENANCY}s(Er,"isMultiTenant");function Zb(){return!!he.get()?.tenantId}s(Zb,"isTenantIdSet");function Xb(){return g.MULTI_TENANCY}s(Xb,"isTenancyEnabled");function Xn(t){if(!t)return;if(!Er())return ae;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(Xn,"getTenantIDFromWorkspaceID");function ex(t){let e;try{e=he.get()}catch{e={}}return e={...e,...t},e}s(ex,"updateContext");async function ht(t,e){ax();let r=ex(t);return he.run(r,e)}s(ht,"newContext");async function tx(t){return await gT(),await ht({tenantId:Xn(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(tx,"doInAutomationContext");async function Rf(t,e){let r=Xn(t);return ht({tenantId:r,appId:t},e)}s(Rf,"doInContext");async function Ce(t,e){return g.MULTI_TENANCY||(t=t||ae),ht(t?{tenantId:t}:{},e)}s(Ce,"doInTenant");async function rx(t,e){return ht({tenantId:t,isSelfHostUsingCloud:!0},e)}s(rx,"doInSelfHostTenantUsingCloud");async function nx(t,e){return ht({license:t},e)}s(nx,"doInLicenseContext");function ix(){return he.get()?.license}s(ix,"getLicense");function tu(){return!!he.get()?.isSelfHostUsingCloud}s(tu,"isSelfHostUsingCloud");function sx(){let t=he.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Re(fe.SELF_HOST_CLOUD.name)}s(sx,"getSelfHostCloudDB");async function ox(t,e){return hT(t,e)}s(ox,"doInWorkspaceContext");async function hT(t,e,r){if(!t)throw new Error("workspaceId is required");let n=Xn(t),i={appId:t,...r};return n&&(i.tenantId=n),ht(i,e)}s(hT,"_doInWorkspaceContext");async function ws(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),ht(r,e)}s(ws,"doInIdentityContext");function ax(){if(he.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(ax,"guardMigration");async function ux(t,e){return hT(t,e,{isMigrating:!0})}s(ux,"doInWorkspaceMigrationContext");function $t(){try{return he.get()?.identity}catch{}}s($t,"getIdentity");function $(){if(!Er())return ae;let e=he.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s($,"getTenantId");function Cf(){return he.get()?.automationId}s(Cf,"getAutomationId");function be(){let e=he.get()?.appId;return!e&&g.isTest()&&pT?pT:e}s(be,"getWorkspaceId");function cx(){let t=be();if(!t)throw new Error("Workspace id not set");return t}s(cx,"getOrThrowWorkspaceId");function bf(){return he.get()?.ip}s(bf,"getIP");var lx=s(()=>{let t=be();if(!t)throw new Error("Could not get workspaceId");return eu(t)},"getDevWorkspaceId"),dx=s(()=>{let t=be();if(!t)throw new Error("Could not get workspaceId");return He(t)},"getProdWorkspaceId");function fx(t,e){if(!t)throw new Error("Must supply environment variables.");return ht({environmentVariables:t},e)}s(fx,"doInEnvironmentContext");function px(t){return ht({isScim:!0},t)}s(px,"doInScimContext");function xf(t,e){return ht({ip:t},e)}s(xf,"doInIPContext");async function gT(){let t=sn();if(!t||t.snippets)return;let e,r=ei();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(gT,"ensureSnippetContext");function mx(){let t=he.get();return t.environmentVariables?t.environmentVariables:null}s(mx,"getEnvironmentVariables");function Y(){let t=he.get();if(!t||g.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 Re(xs(t?.tenantId))}s(Y,"getGlobalDB");function hx(){if(!$())throw new Error("No tenant ID found - cannot open audit log DB");return Re(mT())}s(hx,"getAuditLogsDB");function ei(t){let e=be();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(tu())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return Re(e,t)}s(ei,"getWorkspaceDB");function gx(t){let e=be();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return Re(He(e),t)}s(gx,"getProdWorkspaceDB");function Ex(t){let e=be();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return Re(eu(e),t)}s(Ex,"getDevWorkspaceDB");function gt(){return!!he.get()?.isScim}s(gt,"isScim");function sn(){try{return he.get()}catch{return}}s(sn,"getCurrentContext");function vf(t){let e=sn();if(e)return e.featureFlagCache?.[t]}s(vf,"getFeatureFlags");function Pf(t,e){let r=sn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(Pf,"setFeatureFlags");function Nf(){return sn()?.featureFlagOverrides||{}}s(Nf,"getFeatureFlagOverrides");async function Uf(t,e){return await ht({featureFlagOverrides:t},e)}s(Uf,"doInFeatureFlagOverrideContext");function yx(t){let e=sn();if(e)return e.viewToTableCache?.[t]}s(yx,"getTableForView");function Tx(t,e){let r=sn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(Tx,"setTableForView");var Sr={};P(Sr,{AutomationViewMode:()=>Ba,BUDIBASE_DATASOURCE_TYPE:()=>jd,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Jd,DEFAULT_EXPENSES_TABLE_ID:()=>zd,DEFAULT_INVENTORY_TABLE_ID:()=>Yd,DEFAULT_JOBS_TABLE_ID:()=>Hd,DatabaseImpl:()=>Zn,DatabaseWithConnection:()=>Hb,DeprecatedViews:()=>jn,DesignDocuments:()=>As,DocumentType:()=>ce,InternalTable:()=>Pt,QueryBuilder:()=>Kt,Replication:()=>iS,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>Qd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Pe,USER_METADATA_PREFIX:()=>Ss,ViewName:()=>Wt,WORKSPACE_DEV:()=>Wa,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et,baseGlobalDBName:()=>xs,checkErrorCode:()=>uS,closePouchDB:()=>Rs,createApiKeyView:()=>ZT,createNewUserEmailView:()=>zT,createPlatformAccountEmailView:()=>eS,createPlatformUserView:()=>tS,createUserAppView:()=>JT,createView:()=>ii,dbExists:()=>Mx,directCouchAllDbs:()=>If,directCouchCall:()=>nT,directCouchQuery:()=>mf,directCouchUrlCall:()=>Ds,doWithDB:()=>je,fullSearch:()=>$x,generateAIConfigID:()=>kT,generateAgentFileID:()=>LT,generateAgentID:()=>vT,generateAgentToolSourceID:()=>UT,generateAppUserID:()=>hu,generateChatAppID:()=>PT,generateChatConversationID:()=>NT,generateDevInfoID:()=>CT,generateGlobalUserID:()=>ri,generateOAuth2LogID:()=>xT,generatePluginID:()=>bT,generateRoleID:()=>$f,generateRowID:()=>Wf,generateTableID:()=>OT,generateTemplateID:()=>RT,generateUserMetadataID:()=>wT,generateVectorDbID:()=>$T,generateWorkspaceAppID:()=>BT,generateWorkspaceFavouriteID:()=>WT,generateWorkspaceID:()=>_T,getAllDbs:()=>YT,getAllWorkspaces:()=>Ms,getCouchInfo:()=>mt,getDB:()=>Re,getDevWorkspaceID:()=>eu,getDevWorkspaceIDs:()=>Ux,getDocParams:()=>Vt,getGlobalDBName:()=>nn,getGlobalIDFromUserMetadataID:()=>DT,getGlobalUserParams:()=>on,getLiteLLMKeyID:()=>FT,getOAuth2ConfigParams:()=>QT,getPluginParams:()=>KT,getPouch:()=>hf,getPouchDB:()=>rt,getProdWorkpaceIDs:()=>Nx,getProdWorkspaceID:()=>He,getQueryIndex:()=>GT,getRoleParams:()=>gu,getRowParams:()=>Gf,getStartEndKeyURL:()=>Ls,getTemplateParams:()=>qT,getUrlInfo:()=>pf,getUserMetadataParams:()=>VT,getUsersByWorkspaceParams:()=>ni,getWorkspaceAppParams:()=>jT,getWorkspaceFavouriteParams:()=>HT,getWorkspacesByIDs:()=>Px,init:()=>za,isAgentFileID:()=>MT,isDevWorkspace:()=>bs,isDevWorkspaceID:()=>gr,isDocumentConflictError:()=>Vx,isGlobalUserID:()=>IT,isProdWorkspaceID:()=>Yb,isSameWorkspaceID:()=>Lx,paginatedSearch:()=>Wx,pagination:()=>qf,prefixRoleID:()=>Gt,queryGlobalView:()=>qt,queryGlobalViewRaw:()=>Bs,queryPlatformView:()=>Fs,queryView:()=>Qf,queryViewRaw:()=>ks,removeKeyNumbering:()=>Ws,searchIndexes:()=>Hf});var Us={};P(Us,{WorkspaceState:()=>Bf,getWorkspaceMetadata:()=>mu,invalidateWorkspaceMetadata:()=>bx});var Tr={};P(Tr,{getCacheClient:()=>Mf,getDocWritethroughClient:()=>wx,getInviteListClient:()=>Ps,getLockClient:()=>Ff,getOpenapiImportSpecsClient:()=>Ox,getPasswordResetClient:()=>Ns,getSessionClient:()=>yr,getSocketClient:()=>Ix,getUserClient:()=>vs,getWorkspaceClient:()=>pu,getWritethroughClient:()=>kf,init:()=>nt,shutdown:()=>ST});var nu=B(require("ioredis"));var ru=require("dd-trace"),yT=require("lodash");var ET;if(g.MOCK_REDIS)try{ET=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function Sx(t=0){return await ru.tracer.trace("Redis.init",async e=>{if(g.MOCK_REDIS)return e.addTags({mock:!0}),new ET(tn());let r;if(g.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=Qa();r=new nu.Cluster([{host:n,port:i}],sf())}else r=new nu.default(tn());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),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)})})})}s(Sx,"init");function Ax(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",o=>o.forEach(a=>i.add(a))),t.on("error",o=>n(o)),t.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let u=await e.get(a);return u&&(u=JSON.parse(u)),{key:of(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(Ax,"promisifyStream");function _x(t){return t.isCluster}s(_x,"isCluster");var Lf=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await ru.tracer.trace("RedisWrapper.init",async n=>{let i=await Sx(r);return r&&!g.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return ru.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Yn}${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}${Yn}${e}`;let n;_x(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await Ax(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,yT.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}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((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.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
+ `+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,o)=>o.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:o,from:a=[],originalValue:u=e,strict:c=this.spec.strict,abortEarly:l=this.spec.abortEarly}=r,d=e;c||(d=this._cast(d,ze({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,zh.default)({args:f,value:d,path:o,sync:i,tests:h,endEarly:l},p=>{if(p)return void n(p,d);(0,zh.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(ze({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((o,a)=>i._validate(e,r,(u,c)=>{u?a(u):o(c)}))}validateSync(e,r){let n=this.resolve(ze({},r,{value:e})),i;return n._validate(e,ze({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Xh.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Xh.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Yh.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=vn.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=vn.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=vn.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,oa.default)(r),o=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(a=>!(a.OPTIONS.name===r.name&&(o||a.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,mw.default)(e).map(o=>new fw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new dw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,oa.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=vn.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,oa.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let o=this.schema._whitelist;return o.has(i,this.resolve)?!0:this.createError({params:{values:o.toArray().join(", ")}})}}),n}notOneOf(e,r=vn.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,oa.default)({message:r,name:"notOneOf",test(i){let o=this.schema._blacklist;return o.has(i,this.resolve)?this.createError({params:{values:o.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(o=>({name:o.OPTIONS.name,params:o.OPTIONS.params})).filter((o,a,u)=>u.findIndex(c=>c.name===o.name)===a)}}};aa.default=ct;ct.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])ct.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,pw.getIn)(this,e,r,n.context);return a[t](i&&i[o],ze({},n,{parent:i,path:e}))};for(let t of["equals","is"])ct.prototype[t]=ct.prototype.oneOf;for(let t of["not","nope"])ct.prototype[t]=ct.prototype.notOneOf;ct.prototype.optional=ct.prototype.notRequired});var tg=q(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.create=eg;Ki.default=void 0;var hw=gw(Lt());function gw(t){return t&&t.__esModule?t:{default:t}}s(gw,"_interopRequireDefault");var Tl=hw.default,Ew=Tl;Ki.default=Ew;function eg(){return new Tl}s(eg,"create");eg.prototype=Tl.prototype});var Pn=q(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.default=void 0;var yw=s(t=>t==null,"_default");ua.default=yw});var og=q(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.create=sg;ji.default=void 0;var Tw=ig(Lt()),rg=Nt(),ng=ig(Pn());function ig(t){return t&&t.__esModule?t:{default:t}}s(ig,"_interopRequireDefault");function sg(){return new Qi}s(sg,"create");var Qi=class extends Tw.default{static{s(this,"BooleanSchema")}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=rg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,ng.default)(r)||r===!0}})}isFalse(e=rg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,ng.default)(r)||r===!1}})}};ji.default=Qi;sg.prototype=Qi.prototype});var cg=q(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.create=ug;Yi.default=void 0;var It=Nt(),Mt=ag(Pn()),Sw=ag(Lt());function ag(t){return t&&t.__esModule?t:{default:t}}s(ag,"_interopRequireDefault");var Aw=/^((([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,_w=/^((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,Ow=/^(?:[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=s(t=>(0,Mt.default)(t)||t===t.trim(),"isTrimmed"),ww={}.toString();function ug(){return new Hi}s(ug,"create");var Hi=class extends Sw.default{static{s(this,"StringSchema")}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===ww?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=It.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Mt.default)(n)||n.length===this.resolve(e)}})}min(e,r=It.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Mt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=It.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,Mt.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,o;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:o}=r:i=r),this.test({name:o||"matches",message:i||It.string.matches,params:{regex:e},test:a=>(0,Mt.default)(a)||a===""&&n||a.search(e)!==-1})}email(e=It.string.email){return this.matches(Aw,{name:"email",message:e,excludeEmptyString:!0})}url(e=It.string.url){return this.matches(_w,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=It.string.uuid){return this.matches(Ow,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=It.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:Iw})}lowercase(e=It.string.lowercase){return this.transform(r=>(0,Mt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Mt.default)(r)||r===r.toLowerCase()})}uppercase(e=It.string.uppercase){return this.transform(r=>(0,Mt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Mt.default)(r)||r===r.toUpperCase()})}};Yi.default=Hi;ug.prototype=Hi.prototype});var fg=q(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=dg;Ji.default=void 0;var Wr=Nt(),$r=lg(Pn()),Dw=lg(Lt());function lg(t){return t&&t.__esModule?t:{default:t}}s(lg,"_interopRequireDefault");var Rw=s(t=>t!=+t,"isNaN");function dg(){return new zi}s(dg,"create");var zi=class extends Dw.default{static{s(this,"NumberSchema")}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"&&!Rw(e)}min(e,r=Wr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,$r.default)(n)||n>=this.resolve(e)}})}max(e,r=Wr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,$r.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Wr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,$r.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Wr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,$r.default)(n)||n>this.resolve(e)}})}positive(e=Wr.number.positive){return this.moreThan(0,e)}negative(e=Wr.number.negative){return this.lessThan(0,e)}integer(e=Wr.number.integer){return this.test({name:"integer",message:e,test:r=>(0,$r.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,$r.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,$r.default)(i)?i:Math[e](i))}};Ji.default=zi;dg.prototype=zi.prototype});var pg=q(Sl=>{"use strict";Object.defineProperty(Sl,"__esModule",{value:!0});Sl.default=bw;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 bw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Cw.exec(t)){for(var o=0,a;a=e[o];++o)i[a]=+i[a]||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}s(bw,"parseIsoDate")});var gg=q(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.create=_l;Xi.default=void 0;var xw=ca(pg()),mg=Nt(),hg=ca(Pn()),vw=ca(Br()),Pw=ca(Lt());function ca(t){return t&&t.__esModule?t:{default:t}}s(ca,"_interopRequireDefault");var Al=new Date(""),Nw=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function _l(){return new Nn}s(_l,"create");var Nn=class extends Pw.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,xw.default)(e),isNaN(e)?Al:new Date(e))})})}_typeCheck(e){return Nw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(vw.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=mg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,hg.default)(i)||i>=this.resolve(n)}})}max(e,r=mg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,hg.default)(i)||i<=this.resolve(n)}})}};Xi.default=Nn;Nn.INVALID_DATE=Al;_l.prototype=Nn.prototype;_l.INVALID_DATE=Al});var yg=q((hB,Ol)=>{"use strict";Ol.exports=function(t){return Eg(Uw(t),t)};Ol.exports.array=Eg;function Eg(t,e){var r=t.length,n=new Array(r),i={},o=r,a=Lw(e),u=Mw(t);for(e.forEach(function(l){if(!u.has(l[0])||!u.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||c(t[o],o,new Set);return n;function c(l,d,f){if(f.has(l)){var h;try{h=", node was:"+JSON.stringify(l)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var p=a.get(l)||new Set;if(p=Array.from(p),d=p.length){f.add(l);do{var S=p[--d];c(S,u.get(S),f)}while(d);f.delete(l)}n[--r]=l}}}s(Eg,"toposort");function Uw(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)}s(Uw,"uniqueNodes");function Lw(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}s(Lw,"makeOutgoingEdges");function Mw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(Mw,"makeNodesHash")});var Tg=q(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});Il.default=Gw;var kw=la(require("lodash/has")),Fw=la(yg()),Bw=$i(),Ww=la(Br()),$w=la(xn());function la(t){return t&&t.__esModule?t:{default:t}}s(la,"_interopRequireDefault");function Gw(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,Bw.split)(o)[0];~n.indexOf(u)||n.push(u),~e.indexOf(`${a}-${u}`)||r.push([a,u])}s(i,"addNode");for(let o in t)if((0,kw.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),Ww.default.isRef(a)&&a.isSibling?i(a.path,o):(0,$w.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return Fw.default.array(n,r).reverse()}s(Gw,"sortFields")});var Ag=q(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});wl.default=Vw;function Sg(t,e){let r=1/0;return t.some((n,i)=>{var o;if(((o=e.path)==null?void 0:o.indexOf(n))!==-1)return r=i,!0}),r}s(Sg,"findIndex");function Vw(t){return(e,r)=>Sg(t,e)-Sg(t,r)}s(Vw,"sortByKeyOrder")});var Cg=q(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.create=Rg;es.default=void 0;var _g=wt(require("lodash/has")),Og=wt(require("lodash/snakeCase")),qw=wt(require("lodash/camelCase")),Kw=wt(require("lodash/mapKeys")),Qw=wt(require("lodash/mapValues")),jw=$i(),Ig=Nt(),Hw=wt(Tg()),Dg=wt(Ag()),Yw=wt(ta()),zw=wt(kr()),Dl=wt(Lt());function wt(t){return t&&t.__esModule?t:{default:t}}s(wt,"_interopRequireDefault");function Un(){return Un=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},Un.apply(this,arguments)}s(Un,"_extends");var wg=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function Jw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(Jw,"unknown");var Xw=(0,Dg.default)([]),Zi=class extends Dl.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Xw,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(s(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null},"coerce")),e&&this.shape(e)})}_typeCheck(e){return wg(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 o=this.fields,a=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,u=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),c={},l=Un({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let h=o[f],p=(0,_g.default)(i,f);if(h){let S,m=i[f];l.path=(r.path?`${r.path}.`:"")+f,h=h.resolve({value:m,context:r.context,parent:c});let E="spec"in h?h.spec:void 0,y=E?.strict;if(E?.strip){d=d||f in i;continue}S=!r.__validating||!y?h.cast(i[f],l):i[f],S!==void 0&&(c[f]=S)}else p&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!zw.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!wg(f)){n(i[0]||null,f);return}u=u||f;let h=this._nodes.map(p=>(S,m)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(f[p],Un({},r,{path:E,from:a,strict:!0,parent:f,originalValue:u[p]}),m);return}m(null)});(0,Yw.default)({sync:o,tests:h,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Un({},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,o]of Object.entries(this.fields)){let a=n[i];a===void 0?n[i]=o:a instanceof Dl.default&&o instanceof Dl.default&&(n[i]=o.concat(a))}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,Dg.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let o=r.map(([a,u])=>`${a}-${u}`);n._excludedEdges=n._excludedEdges.concat(o)}return n._nodes=(0,Hw.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,jw.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,_g.default)(o,e)&&(a=Un({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=Ig.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 o=Jw(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Ig.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Kw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(qw.default)}snakeCase(){return this.transformKeys(Og.default)}constantCase(){return this.transformKeys(e=>(0,Og.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Qw.default)(this.fields,r=>r.describe()),e}};es.default=Zi;function Rg(t){return new Zi(t)}s(Rg,"create");Rg.prototype=Zi.prototype});var xg=q(rs=>{"use strict";Object.defineProperty(rs,"__esModule",{value:!0});rs.create=bg;rs.default=void 0;var Rl=Ln(Pn()),Zw=Ln(xn()),eD=Ln(Wi()),Cl=Nt(),tD=Ln(ta()),rD=Ln(kr()),nD=Ln(Lt());function Ln(t){return t&&t.__esModule?t:{default:t}}s(Ln,"_interopRequireDefault");function da(){return da=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},da.apply(this,arguments)}s(da,"_extends");function bg(t){return new ts(t)}s(bg,"create");var ts=class extends nD.default{static{s(this,"ArraySchema")}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,o=n.map((a,u)=>{let c=this.innerType.cast(a,da({},r,{path:`${r.path||""}[${u}]`}));return c!==a&&(i=!0),c});return i?o:n}_validate(e,r={},n){var i,o;let a=[],u=r.sync,c=r.path,l=this.innerType,d=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(o=r.recursive)!=null?o:this.spec.recursive,h=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,S)=>{if(p){if(!rD.default.isError(p)||d)return void n(p,S);a.push(p)}if(!f||!l||!this._typeCheck(S)){n(a[0]||null,S);return}h=h||S;let m=new Array(S.length);for(let E=0;E<S.length;E++){let y=S[E],I=`${r.path||""}[${E}]`,O=da({},r,{path:I,strict:!0,parent:S,index:E,originalValue:h[E]});m[E]=(w,T)=>l.validate(y,O,T)}(0,tD.default)({sync:u,path:c,value:S,errors:a,endEarly:d,tests:m},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,Zw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,eD.default)(e));return r.innerType=e,r}length(e,r=Cl.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Rl.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Cl.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Rl.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Cl.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Rl.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,o)=>!e(n,i,o):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)}};rs.default=ts;bg.prototype=ts.prototype});var vg=q(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.create=oD;ns.default=void 0;var iD=sD(xn());function sD(t){return t&&t.__esModule?t:{default:t}}s(sD,"_interopRequireDefault");function oD(t){return new fa(t)}s(oD,"create");var fa=class{static{s(this,"Lazy")}constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,iD.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)}},aD=fa;ns.default=aD});var Pg=q(bl=>{"use strict";Object.defineProperty(bl,"__esModule",{value:!0});bl.default=lD;var uD=cD(Nt());function cD(t){return t&&t.__esModule?t:{default:t}}s(cD,"_interopRequireDefault");function lD(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{uD.default[e][r]=t[e][r]})})}s(lD,"setLocale")});var vl=q(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.addMethod=ED;Object.defineProperty(re,"MixedSchema",{enumerable:!0,get:function(){return Ng.default}});Object.defineProperty(re,"mixed",{enumerable:!0,get:function(){return Ng.create}});Object.defineProperty(re,"BooleanSchema",{enumerable:!0,get:function(){return xl.default}});Object.defineProperty(re,"bool",{enumerable:!0,get:function(){return xl.create}});Object.defineProperty(re,"boolean",{enumerable:!0,get:function(){return xl.create}});Object.defineProperty(re,"StringSchema",{enumerable:!0,get:function(){return Ug.default}});Object.defineProperty(re,"string",{enumerable:!0,get:function(){return Ug.create}});Object.defineProperty(re,"NumberSchema",{enumerable:!0,get:function(){return Lg.default}});Object.defineProperty(re,"number",{enumerable:!0,get:function(){return Lg.create}});Object.defineProperty(re,"DateSchema",{enumerable:!0,get:function(){return Mg.default}});Object.defineProperty(re,"date",{enumerable:!0,get:function(){return Mg.create}});Object.defineProperty(re,"ObjectSchema",{enumerable:!0,get:function(){return kg.default}});Object.defineProperty(re,"object",{enumerable:!0,get:function(){return kg.create}});Object.defineProperty(re,"ArraySchema",{enumerable:!0,get:function(){return Fg.default}});Object.defineProperty(re,"array",{enumerable:!0,get:function(){return Fg.create}});Object.defineProperty(re,"ref",{enumerable:!0,get:function(){return dD.create}});Object.defineProperty(re,"lazy",{enumerable:!0,get:function(){return fD.create}});Object.defineProperty(re,"ValidationError",{enumerable:!0,get:function(){return pD.default}});Object.defineProperty(re,"reach",{enumerable:!0,get:function(){return mD.default}});Object.defineProperty(re,"isSchema",{enumerable:!0,get:function(){return Bg.default}});Object.defineProperty(re,"setLocale",{enumerable:!0,get:function(){return hD.default}});Object.defineProperty(re,"BaseSchema",{enumerable:!0,get:function(){return gD.default}});var Ng=Gr(tg()),xl=Gr(og()),Ug=Gr(cg()),Lg=Gr(fg()),Mg=Gr(gg()),kg=Gr(Cg()),Fg=Gr(xg()),dD=Br(),fD=vg(),pD=is(kr()),mD=is(El()),Bg=is(xn()),hD=is(Pg()),gD=is(Lt());function is(t){return t&&t.__esModule?t:{default:t}}s(is,"_interopRequireDefault");function Wg(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Wg=s(function(){return t},"_getRequireWildcardCache"),t}s(Wg,"_getRequireWildcardCache");function Gr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Wg();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 o=n?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}s(Gr,"_interopRequireWildcard");function ED(t,e,r){if(!t||!(0,Bg.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}s(ED,"addMethod")});var $g=q(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});var Pl=Ul();Nl.default=()=>{(0,Pl.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,Pl.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,Pl.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 Ul=q(Ae=>{"use strict";var yD=Ae&&Ae.__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]}),TD=Ae&&Ae.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),SD=Ae&&Ae.__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)&&yD(e,t,r);return TD(e,t),e},AD=Ae&&Ae.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.validateOptions=Ae.registerOptionPreset=Ae.getOptionPresets=Ae.getOptionPreset=void 0;var b=SD(vl());vl();var ss=at(),_D=AD($g());ut();var Vr={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}}},Gg=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(),OD=s(t=>Vr[t]?(0,ss.valid)(Vr[t]):(0,ss.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=OD;var ID=s(()=>Vr,"getOptionPresets");Ae.getOptionPresets=ID;var wD=s((t,e)=>{Vr[t]=Gg.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=wD;var DD=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,h,p,S,m,E,y,I,O,w;try{(0,_D.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Vr[t.preset])return(0,ss.err)([`Option preset ${t.preset} does not exist.`]);T=Vr[t.preset]}else T=t.preset;else T=Vr.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=T.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=T.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=T.seconds.lowerLimit)!==null&&u!==void 0?u:T.seconds.minValue,upperLimit:(c=T.seconds.upperLimit)!==null&&c!==void 0?c:T.seconds.maxValue},minutes:{lowerLimit:(l=T.minutes.lowerLimit)!==null&&l!==void 0?l:T.minutes.minValue,upperLimit:(d=T.minutes.upperLimit)!==null&&d!==void 0?d:T.minutes.maxValue},hours:{lowerLimit:(f=T.hours.lowerLimit)!==null&&f!==void 0?f:T.hours.minValue,upperLimit:(h=T.hours.upperLimit)!==null&&h!==void 0?h:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(S=T.daysOfMonth.upperLimit)!==null&&S!==void 0?S:T.daysOfMonth.maxValue},months:{lowerLimit:(m=T.months.lowerLimit)!==null&&m!==void 0?m:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(I=T.daysOfWeek.upperLimit)!==null&&I!==void 0?I:T.daysOfWeek.maxValue},years:{lowerLimit:(O=T.years.lowerLimit)!==null&&O!==void 0?O:T.years.minValue,upperLimit:(w=T.years.upperLimit)!==null&&w!==void 0?w:T.years.maxValue}}),t.override),R=b.object({presetId:b.string().required(),preset:Gg.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(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:b.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:b.object({lowerLimit:b.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:b.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:b.object({lowerLimit:b.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:b.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:b.object({lowerLimit:b.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:b.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:b.object({lowerLimit:b.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:b.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:b.object({lowerLimit:b.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:b.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:b.object({lowerLimit:b.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:b.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ss.valid)(R)}catch(T){return(0,ss.err)(T.errors)}},"validateOptions");Ae.validateOptions=DD});var Ot=q((os,Ml)=>{"use strict";var Kr=os&&os.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(os,"__esModule",{value:!0});var qr=at(),RD=Kr(Eh()),CD=Kr(yh()),bD=Kr(Th()),xD=Kr(Sh()),vD=Kr(Ah()),PD=Kr(_h()),ND=Kr(Oh()),UD=Ul();ut();var LD=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,qr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,qr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,qr.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,qr.valid)(n)},"splitCronString"),Ll=s((t,e={})=>{let r=(0,UD.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=LD(t,n);if(i.isError())return(0,qr.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,RD.default)(o,n)),a.push((0,CD.default)(o,n)),a.push((0,bD.default)(o,n)),a.push((0,xD.default)(o,n)),a.push((0,vD.default)(o,n)),a.push((0,PD.default)(o,n)),n.useYears&&a.push((0,ND.default)(o,n)),a.every(c=>c.isValid()))return(0,qr.valid)(o);let u=[];return a.forEach(c=>{c.isError()&&c.getError().forEach(l=>{u.push(l)})}),u.forEach((c,l)=>{u[l]=`${c} (Input cron: '${t}')`}),(0,qr.err)(u)},"cron");os.default=Ll;Ml.exports=Ll;Ml.exports.default=Ll});var yy=q(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var Ft=class extends Error{static{s(this,"LuxonError")}},Ql=class extends Ft{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},jl=class extends Ft{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Hl=class extends Ft{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},lr=class extends Ft{static{s(this,"ConflictingSpecificationError")}},Sa=class extends Ft{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends Ft{static{s(this,"InvalidArgumentError")}},Dt=class extends Ft{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},v="numeric",ft="short",qe="long",Aa={year:v,month:v,day:v},TE={year:v,month:ft,day:v},MD={year:v,month:ft,day:v,weekday:ft},SE={year:v,month:qe,day:v},AE={year:v,month:qe,day:v,weekday:qe},_E={hour:v,minute:v},OE={hour:v,minute:v,second:v},IE={hour:v,minute:v,second:v,timeZoneName:ft},wE={hour:v,minute:v,second:v,timeZoneName:qe},DE={hour:v,minute:v,hourCycle:"h23"},RE={hour:v,minute:v,second:v,hourCycle:"h23"},CE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:ft},bE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:qe},xE={year:v,month:v,day:v,hour:v,minute:v},vE={year:v,month:v,day:v,hour:v,minute:v,second:v},PE={year:v,month:ft,day:v,hour:v,minute:v},NE={year:v,month:ft,day:v,hour:v,minute:v,second:v},kD={year:v,month:ft,day:v,weekday:ft,hour:v,minute:v},UE={year:v,month:qe,day:v,hour:v,minute:v,timeZoneName:ft},LE={year:v,month:qe,day:v,hour:v,minute:v,second:v,timeZoneName:ft},ME={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,timeZoneName:qe},kE={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,second:v,timeZoneName:qe},fr=class{static{s(this,"Zone")}get type(){throw new Dt}get name(){throw new Dt}get ianaName(){return this.name}get isUniversal(){throw new Dt}offsetName(e,r){throw new Dt}formatOffset(e,r){throw new Dt}offset(e){throw new Dt}equals(e){throw new Dt}get isValid(){throw new Dt}},kl=null,fs=class t extends fr{static{s(this,"SystemZone")}static get instance(){return kl===null&&(kl=new t),kl}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return HE(e,r,n)}formatOffset(e,r){return ds(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Yl=new Map;function FD(t){let e=Yl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),Yl.set(t,e)),e}s(FD,"makeDTF");var BD={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function WD(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,o,a,u,c,l,d]=n;return[a,i,o,u,c,l,d]}s(WD,"hackyOffset");function $D(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=BD[o];o==="era"?n[u]=a:Q(u)||(n[u]=parseInt(a,10))}return n}s($D,"partsOffset");var Fl=new Map,Bt=class t extends fr{static{s(this,"IANAZone")}static create(e){let r=Fl.get(e);return r===void 0&&Fl.set(e,r=new t(e)),r}static resetCache(){Fl.clear(),Yl.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return HE(e,r,n,this.name)}formatOffset(e,r){return ds(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=FD(this.name),[i,o,a,u,c,l,d]=n.formatToParts?$D(n,r):WD(n,r);u==="BC"&&(i=-Math.abs(i)+1);let h=Ca({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),p=+r,S=p%1e3;return p-=S>=0?S:1e3+S,(h-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Vg={};function GD(t,e={}){let r=JSON.stringify([t,e]),n=Vg[r];return n||(n=new Intl.ListFormat(t,e),Vg[r]=n),n}s(GD,"getCachedLF");var zl=new Map;function Jl(t,e={}){let r=JSON.stringify([t,e]),n=zl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),zl.set(r,n)),n}s(Jl,"getCachedDTF");var Xl=new Map;function VD(t,e={}){let r=JSON.stringify([t,e]),n=Xl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Xl.set(r,n)),n}s(VD,"getCachedINF");var Zl=new Map;function qD(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=Zl.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),Zl.set(i,o)),o}s(qD,"getCachedRTF");var us=null;function KD(){return us||(us=new Intl.DateTimeFormat().resolvedOptions().locale,us)}s(KD,"systemLocale");var ed=new Map;function FE(t){let e=ed.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),ed.set(t,e)),e}s(FE,"getCachedIntResolvedOptions");var td=new Map;function QD(t){let e=td.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...BE,...e}),td.set(t,e)}return e}s(QD,"getCachedWeekInfo");function jD(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=Jl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=Jl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(jD,"parseLocaleString");function HD(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(HD,"intlConfigString");function YD(t){let e=[];for(let r=1;r<=12;r++){let n=oe.utc(2009,r,1);e.push(t(n))}return e}s(YD,"mapMonths");function zD(t){let e=[];for(let r=1;r<=7;r++){let n=oe.utc(2016,11,13+r);e.push(t(n))}return e}s(zD,"mapWeekdays");function pa(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(pa,"listStuff");function JD(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||FE(t.locale).numberingSystem==="latn"}s(JD,"supportsFastNumbers");var rd=class{static{s(this,"PolyNumberFormatter")}constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:o,...a}=n;if(!r||Object.keys(a).length>0){let u={useGrouping:!1,...n};n.padTo>0&&(u.minimumIntegerDigits=n.padTo),this.inf=VD(e,u)}}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):pd(e,3);return me(r,this.padTo)}}},nd=class{static{s(this,"PolyDateFormatter")}constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),u=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&Bt.create(u).valid?(i=u,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=Jl(r,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},id=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&QE()&&(this.rtf=qD(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):yR(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},BE={firstDay:1,minimalDays:4,weekend:[6,7]},te=class t{static{s(this,"Locale")}static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,o=!1){let a=e||ne.defaultLocale,u=a||(o?"en-US":KD()),c=r||ne.defaultNumberingSystem,l=n||ne.defaultOutputCalendar,d=od(i)||ne.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){us=null,zl.clear(),Xl.clear(),Zl.clear(),ed.clear(),td.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,o){let[a,u,c]=jD(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=HD(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=JD(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,od(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return pa(this,e,JE,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;let i=r?{month:e,day:"numeric"}:{month:e},o=r?"format":"standalone";if(!this.monthsCache[o][e]){let a=n?u=>this.dtFormatter(u,i).format():u=>this.extract(u,i,"month");this.monthsCache[o][e]=YD(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return pa(this,e,ey,()=>{let n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=r?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=zD(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return pa(this,void 0,()=>ty,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[oe.utc(2016,11,13,9),oe.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return pa(this,e,ry,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[oe.utc(-40,1,1),oe.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),o=i.formatToParts(),a=o.find(u=>u.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new rd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new nd(e,this.intl,r)}relFormatter(e={}){return new id(this.intl,this.isEnglish(),e)}listFormatter(e={}){return GD(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||FE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:jE()?QD(this.locale):BE}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Bl=null,Ke=class t extends fr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Bl===null&&(Bl=new t(0)),Bl}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(ba(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ds(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ds(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ds(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}},_a=class extends fr{static{s(this,"InvalidZone")}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 cr(t,e){if(Q(t)||t===null)return e;if(t instanceof fr)return t;if(nR(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?fs.instance:r==="utc"||r==="gmt"?Ke.utcInstance:Ke.parseSpecifier(r)||Bt.create(t)}else return dr(t)?Ke.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new _a(t)}s(cr,"normalizeZone");var cd={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"},qg={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]},XD=cd.hanidec.replace(/[\[|\]]/g,"").split("");function ZD(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(cd.hanidec)!==-1)e+=XD.indexOf(t[r]);else for(let i in qg){let[o,a]=qg[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(ZD,"parseDigits");var sd=new Map;function eR(){sd.clear()}s(eR,"resetDigitRegexCache");function lt({numberingSystem:t},e=""){let r=t||"latn",n=sd.get(r);n===void 0&&(n=new Map,sd.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${cd[r]}${e}`),n.set(e,i)),i}s(lt,"digitRegex");var Kg=s(()=>Date.now(),"now"),Qg="system",jg=null,Hg=null,Yg=null,zg=60,Jg,Xg=null,ne=class{static{s(this,"Settings")}static get now(){return Kg}static set now(e){Kg=e}static set defaultZone(e){Qg=e}static get defaultZone(){return cr(Qg,fs.instance)}static get defaultLocale(){return jg}static set defaultLocale(e){jg=e}static get defaultNumberingSystem(){return Hg}static set defaultNumberingSystem(e){Hg=e}static get defaultOutputCalendar(){return Yg}static set defaultOutputCalendar(e){Yg=e}static get defaultWeekSettings(){return Xg}static set defaultWeekSettings(e){Xg=od(e)}static get twoDigitCutoffYear(){return zg}static set twoDigitCutoffYear(e){zg=e%100}static get throwOnInvalid(){return Jg}static set throwOnInvalid(e){Jg=e}static resetCaches(){te.resetCache(),Bt.resetCache(),oe.resetCache(),eR()}},Ve=class{static{s(this,"Invalid")}constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},WE=[0,31,59,90,120,151,181,212,243,273,304,334],$E=[0,31,60,91,121,152,182,213,244,274,305,335];function Xe(t,e){return new Ve("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(Xe,"unitOutOfRange");function ld(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}s(ld,"dayOfWeek");function GE(t,e,r){return r+(ms(t)?$E:WE)[e-1]}s(GE,"computeOrdinal");function VE(t,e){let r=ms(t)?$E:WE,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(VE,"uncomputeOrdinal");function dd(t,e){return(t-e+7)%7+1}s(dd,"isoWeekdayToLocal");function Oa(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=GE(n,i,o),u=dd(ld(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=ps(l,e,r)):c>ps(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...xa(t)}}s(Oa,"gregorianToWeek");function Zg(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=dd(ld(n,1,e),r),u=Bn(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Bn(l)):c>u?(l=n+1,c-=Bn(n)):l=n;let{month:d,day:f}=VE(l,c);return{year:l,month:d,day:f,...xa(t)}}s(Zg,"weekToGregorian");function Wl(t){let{year:e,month:r,day:n}=t,i=GE(e,r,n);return{year:e,ordinal:i,...xa(t)}}s(Wl,"gregorianToOrdinal");function eE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=VE(e,r);return{year:e,month:n,day:i,...xa(t)}}s(eE,"ordinalToGregorian");function tE(t,e){if(!Q(t.localWeekday)||!Q(t.localWeekNumber)||!Q(t.localWeekYear)){if(!Q(t.weekday)||!Q(t.weekNumber)||!Q(t.weekYear))throw new lr("Cannot mix locale-based week fields with ISO-based week fields");return Q(t.localWeekday)||(t.weekday=t.localWeekday),Q(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Q(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}s(tE,"usesLocalWeekValues");function tR(t,e=4,r=1){let n=Ra(t.weekYear),i=Ze(t.weekNumber,1,ps(t.weekYear,e,r)),o=Ze(t.weekday,1,7);return n?i?o?!1:Xe("weekday",t.weekday):Xe("week",t.weekNumber):Xe("weekYear",t.weekYear)}s(tR,"hasInvalidWeekData");function rR(t){let e=Ra(t.year),r=Ze(t.ordinal,1,Bn(t.year));return e?r?!1:Xe("ordinal",t.ordinal):Xe("year",t.year)}s(rR,"hasInvalidOrdinalData");function qE(t){let e=Ra(t.year),r=Ze(t.month,1,12),n=Ze(t.day,1,Ia(t.year,t.month));return e?r?n?!1:Xe("day",t.day):Xe("month",t.month):Xe("year",t.year)}s(qE,"hasInvalidGregorianData");function KE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=Ze(e,0,23)||e===24&&r===0&&n===0&&i===0,a=Ze(r,0,59),u=Ze(n,0,59),c=Ze(i,0,999);return o?a?u?c?!1:Xe("millisecond",i):Xe("second",n):Xe("minute",r):Xe("hour",e)}s(KE,"hasInvalidTimeData");function Q(t){return typeof t>"u"}s(Q,"isUndefined");function dr(t){return typeof t=="number"}s(dr,"isNumber");function Ra(t){return typeof t=="number"&&t%1===0}s(Ra,"isInteger");function nR(t){return typeof t=="string"}s(nR,"isString");function iR(t){return Object.prototype.toString.call(t)==="[object Date]"}s(iR,"isDate");function QE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(QE,"hasRelative");function jE(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(jE,"hasLocaleWeekInfo");function sR(t){return Array.isArray(t)?t:[t]}s(sR,"maybeArray");function rE(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let o=[e(i),i];return n&&r(n[0],o[0])===n[0]?n:o},null)[1]}s(rE,"bestBy");function oR(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(oR,"pick");function $n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s($n,"hasOwnProperty");function od(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!Ze(t.firstDay,1,7)||!Ze(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!Ze(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(od,"validateWeekSettings");function Ze(t,e,r){return Ra(t)&&t>=e&&t<=r}s(Ze,"integerBetween");function aR(t,e){return t-e*Math.floor(t/e)}s(aR,"floorMod");function me(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(me,"padStart");function ur(t){if(!(Q(t)||t===null||t===""))return parseInt(t,10)}s(ur,"parseInteger");function Qr(t){if(!(Q(t)||t===null||t===""))return parseFloat(t)}s(Qr,"parseFloating");function fd(t){if(!(Q(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(fd,"parseMillis");function pd(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}s(pd,"roundTo");function ms(t){return t%4===0&&(t%100!==0||t%400===0)}s(ms,"isLeapYear");function Bn(t){return ms(t)?366:365}s(Bn,"daysInYear");function Ia(t,e){let r=aR(e-1,12)+1,n=t+(e-r)/12;return r===2?ms(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(Ia,"daysInMonth");function Ca(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}s(Ca,"objToLocalTS");function nE(t,e,r){return-dd(ld(t,1,e),r)+e-1}s(nE,"firstWeekOffset");function ps(t,e=4,r=1){let n=nE(t,e,r),i=nE(t+1,e,r);return(Bn(t)-n+i)/7}s(ps,"weeksInWeekYear");function ad(t){return t>99?t:t>ne.twoDigitCutoffYear?1900+t:2e3+t}s(ad,"untruncateYear");function HE(t,e,r,n=null){let i=new Date(t),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(o.timeZone=n);let a={timeZoneName:e,...o},u=new Intl.DateTimeFormat(r,a).formatToParts(i).find(c=>c.type.toLowerCase()==="timezonename");return u?u.value:null}s(HE,"parseZoneInfo");function ba(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}s(ba,"signedOffset");function YE(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(YE,"asNumber");function wa(t,e){let r={};for(let n in t)if($n(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=YE(i)}return r}s(wa,"normalizeObject");function ds(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}${me(r,2)}:${me(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${me(r,2)}${me(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(ds,"formatOffset");function xa(t){return oR(t,["hour","minute","second","millisecond"])}s(xa,"timeObject");var uR=["January","February","March","April","May","June","July","August","September","October","November","December"],zE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],cR=["J","F","M","A","M","J","J","A","S","O","N","D"];function JE(t){switch(t){case"narrow":return[...cR];case"short":return[...zE];case"long":return[...uR];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}}s(JE,"months");var XE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ZE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],lR=["M","T","W","T","F","S","S"];function ey(t){switch(t){case"narrow":return[...lR];case"short":return[...ZE];case"long":return[...XE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(ey,"weekdays");var ty=["AM","PM"],dR=["Before Christ","Anno Domini"],fR=["BC","AD"],pR=["B","A"];function ry(t){switch(t){case"narrow":return[...pR];case"short":return[...fR];case"long":return[...dR];default:return null}}s(ry,"eras");function mR(t){return ty[t.hour<12?0:1]}s(mR,"meridiemForDateTime");function hR(t,e){return ey(e)[t.weekday-1]}s(hR,"weekdayForDateTime");function gR(t,e){return JE(e)[t.month-1]}s(gR,"monthForDateTime");function ER(t,e){return ry(e)[t.year<0?0:1]}s(ER,"eraForDateTime");function yR(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."]},o=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&o){let f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${i[t][0]}`;case-1:return f?"yesterday":`last ${i[t][0]}`;case 0:return f?"today":`this ${i[t][0]}`}}let a=Object.is(e,-0)||e<0,u=Math.abs(e),c=u===1,l=i[t],d=n?c?l[1]:l[2]||l[1]:c?i[t][0]:t;return a?`${u} ${d} ago`:`in ${u} ${d}`}s(yR,"formatRelativeTime");function iE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(iE,"stringifyTokens");var TR={D:Aa,DD:TE,DDD:SE,DDDD:AE,t:_E,tt:OE,ttt:IE,tttt:wE,T:DE,TT:RE,TTT:CE,TTTT:bE,f:xE,ff:PE,fff:UE,ffff:ME,F:vE,FF:NE,FFF:LE,FFFF:kE},Ge=class t{static{s(this,"Formatter")}static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,o=[];for(let a=0;a<e.length;a++){let u=e.charAt(a);u==="'"?((n.length>0||i)&&o.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||u===r?n+=u:(n.length>0&&o.push({literal:/^\s+$/.test(n),val:n}),n=u,r=u)}return n.length>0&&o.push({literal:i||/^\s+$/.test(n),val:n}),o}static macroTokenToFormatOpts(e){return TR[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return me(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=s((p,S)=>this.loc.extract(e,p,S),"string"),a=s(p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"","formatOffset"),u=s(()=>n?mR(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((p,S)=>n?gR(e,p):o(S?{month:p}:{month:p,day:"numeric"},"month"),"month"),l=s((p,S)=>n?hR(e,p):o(S?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(p=>{let S=t.macroTokenToFormatOpts(p);return S?this.formatWithSystemDefault(e,S):p},"maybeMacro"),f=s(p=>n?ER(e,p):o({era:p},"era"),"era"),h=s(p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({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 u();case"d":return i?o({day:"numeric"},"day"):this.num(e.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(e.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(e.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(p)}},"tokenToString");return iE(t.parseFormat(r),h)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>h=>{let p=i(h);if(p){let S=f.isNegativeDuration&&p!==f.largestUnit?n:1,m;return this.opts.signMode==="negativeLargestOnly"&&p!==f.largestUnit?m="never":this.opts.signMode==="all"?m="always":m="auto",this.num(d.get(p)*S,h.length,m)}else return h},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:h})=>f?d:d.concat(h),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return iE(a,o(c,l))}},ny=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Gn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Gn,"combineRegexes");function Vn(...t){return e=>t.reduce(([r,n,i],o)=>{let[a,u,c]=o(e,i);return[{...r,...a},u||n,c]},[{},null,1]).slice(0,2)}s(Vn,"combineExtractors");function qn(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]}s(qn,"parse");function iy(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=ur(e[r+i]);return[n,null,r+i]}}s(iy,"simpleParse");var sy=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,SR=`(?:${sy.source}?(?:\\[(${ny.source})\\])?)?`,md=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,oy=RegExp(`${md.source}${SR}`),hd=RegExp(`(?:[Tt]${oy.source})?`),AR=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,_R=/(\d{4})-?W(\d\d)(?:-?(\d))?/,OR=/(\d{4})-?(\d{3})/,IR=iy("weekYear","weekNumber","weekDay"),wR=iy("year","ordinal"),DR=/(\d{4})-(\d\d)-(\d\d)/,ay=RegExp(`${md.source} ?(?:${sy.source}|(${ny.source}))?`),RR=RegExp(`(?: ${ay.source})?`);function Wn(t,e,r){let n=t[e];return Q(n)?r:ur(n)}s(Wn,"int");function CR(t,e){return[{year:Wn(t,e),month:Wn(t,e+1,1),day:Wn(t,e+2,1)},null,e+3]}s(CR,"extractISOYmd");function Kn(t,e){return[{hours:Wn(t,e,0),minutes:Wn(t,e+1,0),seconds:Wn(t,e+2,0),milliseconds:fd(t[e+3])},null,e+4]}s(Kn,"extractISOTime");function hs(t,e){let r=!t[e]&&!t[e+1],n=ba(t[e+1],t[e+2]),i=r?null:Ke.instance(n);return[{},i,e+3]}s(hs,"extractISOOffset");function gs(t,e){let r=t[e]?Bt.create(t[e]):null;return[{},r,e+1]}s(gs,"extractIANAZone");var bR=RegExp(`^T?${md.source}$`),xR=/^-?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 vR(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",h=s((p,S=!1)=>p!==void 0&&(S||p&&d)?-p:p,"maybeNegate");return[{years:h(Qr(r)),months:h(Qr(n)),weeks:h(Qr(i)),days:h(Qr(o)),hours:h(Qr(a)),minutes:h(Qr(u)),seconds:h(Qr(c),c==="-0"),milliseconds:h(fd(l),f)}]}s(vR,"extractISODuration");var PR={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 gd(t,e,r,n,i,o,a){let u={year:e.length===2?ad(ur(e)):ur(e),month:zE.indexOf(r)+1,day:ur(n),hour:ur(i),minute:ur(o)};return a&&(u.second=ur(a)),t&&(u.weekday=t.length>3?XE.indexOf(t)+1:ZE.indexOf(t)+1),u}s(gd,"fromStrings");var NR=/^(?:(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 UR(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,h=gd(e,i,n,r,o,a,u),p;return c?p=PR[c]:l?p=0:p=ba(d,f),[h,new Ke(p)]}s(UR,"extractRFC2822");function LR(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(LR,"preprocessRFC2822");var MR=/^(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$/,kR=/^(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$/,FR=/^(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 sE(t){let[,e,r,n,i,o,a,u]=t;return[gd(e,i,n,r,o,a,u),Ke.utcInstance]}s(sE,"extractRFC1123Or850");function BR(t){let[,e,r,n,i,o,a,u]=t;return[gd(e,u,r,n,i,o,a),Ke.utcInstance]}s(BR,"extractASCII");var WR=Gn(AR,hd),$R=Gn(_R,hd),GR=Gn(OR,hd),VR=Gn(oy),uy=Vn(CR,Kn,hs,gs),qR=Vn(IR,Kn,hs,gs),KR=Vn(wR,Kn,hs,gs),QR=Vn(Kn,hs,gs);function jR(t){return qn(t,[WR,uy],[$R,qR],[GR,KR],[VR,QR])}s(jR,"parseISODate");function HR(t){return qn(LR(t),[NR,UR])}s(HR,"parseRFC2822Date");function YR(t){return qn(t,[MR,sE],[kR,sE],[FR,BR])}s(YR,"parseHTTPDate");function zR(t){return qn(t,[xR,vR])}s(zR,"parseISODuration");var JR=Vn(Kn);function XR(t){return qn(t,[bR,JR])}s(XR,"parseISOTimeOnly");var ZR=Gn(DR,RR),eC=Gn(ay),tC=Vn(Kn,hs,gs);function rC(t){return qn(t,[ZR,uy],[eC,tC])}s(rC,"parseSQL");var oE="Invalid Duration",cy={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}},nC={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},...cy},Je=146097/400,Mn=146097/4800,iC={years:{quarters:4,months:12,weeks:Je/7,days:Je,hours:Je*24,minutes:Je*24*60,seconds:Je*24*60*60,milliseconds:Je*24*60*60*1e3},quarters:{months:3,weeks:Je/28,days:Je/4,hours:Je*24/4,minutes:Je*24*60/4,seconds:Je*24*60*60/4,milliseconds:Je*24*60*60*1e3/4},months:{weeks:Mn/7,days:Mn,hours:Mn*24,minutes:Mn*24*60,seconds:Mn*24*60*60,milliseconds:Mn*24*60*60*1e3},...cy},Hr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],sC=Hr.slice(0).reverse();function kt(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 Ee(n)}s(kt,"clone$1");function ly(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of sC.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(ly,"durationToMillis");function aE(t,e){let r=ly(t,e)<0?-1:1;Hr.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),Hr.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(aE,"normalizeValues");function uE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(uE,"removeZeroes");var Ee=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?iC:nC;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||te.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 _e(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:wa(e,t.normalizeUnit),loc:te.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(dr(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new _e(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=zR(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]=XR(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 _e("need to specify a reason the Duration is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new Hl(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 Sa(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?Ge.create(this.loc,n).formatDurationFromString(this,e):oE}toHuman(e={}){if(!this.isValid)return oE;let r=e.showZeros!==!1,n=Hr.map(i=>{let o=this.values[i];return Q(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=pd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},oe.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?ly(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Hr)($n(r.values,i)||$n(this.values,i))&&(n[i]=r.get(i)+this.get(i));return kt(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]=YE(e(this.values[n],n));return kt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...wa(e,t.normalizeUnit)};return kt(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return kt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return aE(this.matrix,e),kt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=uE(this.normalize().shiftToAll().toObject());return kt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of Hr)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;dr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else dr(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return aE(this.matrix,r),kt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return kt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=uE(this.values);return kt(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}s(r,"eq");for(let n of Hr)if(!r(this.values[n],e.values[n]))return!1;return!0}},kn="Invalid Interval";function oC(t,e){return!t||!t.isValid?zr.invalid("missing or invalid start"):!e||!e.isValid?zr.invalid("missing or invalid end"):e<t?zr.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}s(oC,"validateStartEnd");var zr=class t{static{s(this,"Interval")}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 _e("need to specify a reason the Interval is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new jl(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=as(e),i=as(r),o=oC(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=Ee.fromDurationLike(r),i=as(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Ee.fromDurationLike(r),i=as(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=oe.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=oe.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=Ee.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=Ee.fromISO(n,r);if(l.isValid)return t.before(u,l)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(as).filter(a=>this.contains(a)).sort((a,u)=>a.toMillis()-u.toMillis()),n=[],{s:i}=this,o=0;for(;i<this.e;){let a=r[o]||this.e,u=+a>+this.e?this.e:a;n.push(t.fromDateTimes(i,u)),i=u,o+=1}return n}splitBy(e){let r=Ee.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}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,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.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()})`:kn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Aa,r={}){return this.isValid?Ge.create(this.s.loc.clone(r),e).formatInterval(this):kn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:kn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:kn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:kn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:kn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):Ee.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Yr=class{static{s(this,"Info")}static hasDST(e=ne.defaultZone){let r=oe.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Bt.isValidZone(e)}static normalizeZone(e){return cr(e,ne.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return te.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return te.create(r,null,"gregory").eras(e)}static features(){return{relative:QE(),localeWeek:jE()}}};function cE(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(Ee.fromMillis(n).as("days"))}s(cE,"dayDiff");function aC(t,e,r){let n=[["years",(c,l)=>l.year-c.year],["quarters",(c,l)=>l.quarter-c.quarter+(l.year-c.year)*4],["months",(c,l)=>l.month-c.month+(l.year-c.year)*12],["weeks",(c,l)=>{let d=cE(c,l);return(d-d%7)/7}],["days",cE]],i={},o=t,a,u;for(let[c,l]of n)r.indexOf(c)>=0&&(a=c,i[c]=l(t,e),u=o.plus(i),u>e?(i[c]--,t=o.plus(i),t>e&&(u=t,i[c]--,t=o.plus(i))):t=u);return[t,i,u,a]}s(aC,"highOrderDiffs");function uC(t,e,r,n){let[i,o,a,u]=aC(t,e,r),c=e-i,l=r.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);l.length===0&&(a<e&&(a=i.plus({[u]:1})),a!==i&&(o[u]=(o[u]||0)+c/(a-i)));let d=Ee.fromObject(o,n);return l.length>0?Ee.fromMillis(c,n).shiftTo(...l).plus(d):d}s(uC,"diff");var cC="missing Intl.DateTimeFormat.formatToParts support";function Z(t,e=r=>r){return{regex:t,deser:([r])=>e(ZD(r))}}s(Z,"intUnit");var lC=String.fromCharCode(160),dy=`[ ${lC}]`,fy=new RegExp(dy,"g");function dC(t){return t.replace(/\./g,"\\.?").replace(fy,dy)}s(dC,"fixListRegex");function lE(t){return t.replace(/\./g,"").replace(fy," ").toLowerCase()}s(lE,"stripInsensitivities");function dt(t,e){return t===null?null:{regex:RegExp(t.map(dC).join("|")),deser:([r])=>t.findIndex(n=>lE(r)===lE(n))+e}}s(dt,"oneOf");function dE(t,e){return{regex:t,deser:([,r,n])=>ba(r,n),groups:e}}s(dE,"offset");function ma(t){return{regex:t,deser:([e])=>e}}s(ma,"simple");function fC(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(fC,"escapeToken");function pC(t,e){let r=lt(e),n=lt(e,"{2}"),i=lt(e,"{3}"),o=lt(e,"{4}"),a=lt(e,"{6}"),u=lt(e,"{1,2}"),c=lt(e,"{1,3}"),l=lt(e,"{1,6}"),d=lt(e,"{1,9}"),f=lt(e,"{2,4}"),h=lt(e,"{4,6}"),p=s(E=>({regex:RegExp(fC(E.val)),deser:([y])=>y,literal:!0}),"literal"),m=s(E=>{if(t.literal)return p(E);switch(E.val){case"G":return dt(e.eras("short"),0);case"GG":return dt(e.eras("long"),0);case"y":return Z(l);case"yy":return Z(f,ad);case"yyyy":return Z(o);case"yyyyy":return Z(h);case"yyyyyy":return Z(a);case"M":return Z(u);case"MM":return Z(n);case"MMM":return dt(e.months("short",!0),1);case"MMMM":return dt(e.months("long",!0),1);case"L":return Z(u);case"LL":return Z(n);case"LLL":return dt(e.months("short",!1),1);case"LLLL":return dt(e.months("long",!1),1);case"d":return Z(u);case"dd":return Z(n);case"o":return Z(c);case"ooo":return Z(i);case"HH":return Z(n);case"H":return Z(u);case"hh":return Z(n);case"h":return Z(u);case"mm":return Z(n);case"m":return Z(u);case"q":return Z(u);case"qq":return Z(n);case"s":return Z(u);case"ss":return Z(n);case"S":return Z(c);case"SSS":return Z(i);case"u":return ma(d);case"uu":return ma(u);case"uuu":return Z(r);case"a":return dt(e.meridiems(),0);case"kkkk":return Z(o);case"kk":return Z(f,ad);case"W":return Z(u);case"WW":return Z(n);case"E":case"c":return Z(r);case"EEE":return dt(e.weekdays("short",!1),1);case"EEEE":return dt(e.weekdays("long",!1),1);case"ccc":return dt(e.weekdays("short",!0),1);case"cccc":return dt(e.weekdays("long",!0),1);case"Z":case"ZZ":return dE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return dE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return ma(/[a-z_+-/]{1,256}?/i);case" ":return ma(/[^\S\n\r]/);default:return p(E)}},"unitate")(t)||{invalidReason:cC};return m.token=t,m}s(pC,"unitForToken");var mC={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function hC(t,e,r){let{type:n,value:i}=t;if(n==="literal"){let c=/^\s+$/.test(i);return{literal:!c,val:c?" ":i}}let o=e[n],a=n;n==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=r.hour12?"hour12":"hour24");let u=mC[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(hC,"tokenForPart");function gC(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(gC,"buildRegex");function EC(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if($n(r,a)){let u=r[a],c=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(n.slice(o,o+c))),o+=c}return[n,i]}else return[n,{}]}s(EC,"match");function yC(t){let e=s(o=>{switch(o){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}},"toField"),r=null,n;return Q(t.z)||(r=Bt.create(t.z)),Q(t.Z)||(r||(r=new Ke(t.Z)),n=t.Z),Q(t.q)||(t.M=(t.q-1)*3+1),Q(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),Q(t.u)||(t.S=fd(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s(yC,"dateTimeFromMatches");var $l=null;function TC(){return $l||($l=oe.fromMillis(1555555555555)),$l}s(TC,"getDummyDateTime");function SC(t,e){if(t.literal)return t;let r=Ge.macroTokenToFormatOpts(t.val),n=hy(r,e);return n==null||n.includes(void 0)?t:n}s(SC,"maybeExpandMacroToken");function py(t,e){return Array.prototype.concat(...t.map(r=>SC(r,e)))}s(py,"expandMacroTokens");var Da=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=py(Ge.parseFormat(r),e),this.units=this.tokens.map(n=>pC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=gC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=EC(e,this.regex,this.handlers),[i,o,a]=n?yC(n):[null,null,void 0];if($n(n,"a")&&$n(n,"H"))throw new lr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function my(t,e,r){return new Da(t,r).explainFromTokens(e)}s(my,"explainFromTokens");function AC(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=my(t,e,r);return[n,i,o,a]}s(AC,"parseFromTokens");function hy(t,e){if(!t)return null;let n=Ge.create(e,t).dtFormatter(TC()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>hC(a,t,o))}s(hy,"formatOptsToTokens");var Gl="Invalid DateTime",fE=864e13;function cs(t){return new Ve("unsupported zone",`the zone "${t.name}" is not supported`)}s(cs,"unsupportedZone");function Vl(t){return t.weekData===null&&(t.weekData=Oa(t.c)),t.weekData}s(Vl,"possiblyCachedWeekData");function ql(t){return t.localWeekData===null&&(t.localWeekData=Oa(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s(ql,"possiblyCachedLocalWeekData");function jr(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new oe({...r,...e,old:r})}s(jr,"clone");function gy(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 o=r.offset(n);return i===o?[n,i]:[t-Math.min(i,o)*60*1e3,Math.max(i,o)]}s(gy,"fixOffset");function ha(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()}}s(ha,"tsToObj");function Ea(t,e,r){return gy(Ca(t),e,r)}s(Ea,"objToTS");function pE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,Ia(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=Ee.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"),u=Ca(o),[c,l]=gy(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(pE,"adjustTime");function Fn(t,e,r,n,i,o){let{setZone:a,zone:u}=r;if(t&&Object.keys(t).length!==0||e){let c=e||u,l=oe.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return oe.invalid(new Ve("unparsable",`the input "${i}" can't be parsed as ${n}`))}s(Fn,"parseDataToDateTime");function ga(t,e,r=!0){return t.isValid?Ge.create(te.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}s(ga,"toTechFormat");function Kl(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=me(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=me(t.c.month),r==="month")return i;i+="-"}else if(i+=me(t.c.month),r==="month")return i;return i+=me(t.c.day),i}s(Kl,"toISODate");function mE(t,e,r,n,i,o,a){let u=!r||t.c.millisecond!==0||t.c.second!==0,c="";switch(a){case"day":case"month":case"year":break;default:if(c+=me(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=me(t.c.minute),a==="minute")break;u&&(c+=":",c+=me(t.c.second))}else{if(c+=me(t.c.minute),a==="minute")break;u&&(c+=me(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=me(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=me(Math.trunc(-t.o/60)),c+=":",c+=me(Math.trunc(-t.o%60))):(c+="+",c+=me(Math.trunc(t.o/60)),c+=":",c+=me(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(mE,"toISOTime");var Ey={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},_C={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},OC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ya=["year","month","day","hour","minute","second","millisecond"],IC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],wC=["year","ordinal","hour","minute","second","millisecond"];function Ta(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 Sa(t);return e}s(Ta,"normalizeUnit");function hE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Ta(t)}}s(hE,"normalizeUnitWithLocalWeeks");function DC(t){if(ls===void 0&&(ls=ne.now()),t.type!=="iana")return t.offset(ls);let e=t.name,r=ud.get(e);return r===void 0&&(r=t.offset(ls),ud.set(e,r)),r}s(DC,"guessOffsetForZone");function gE(t,e){let r=cr(e.zone,ne.defaultZone);if(!r.isValid)return oe.invalid(cs(r));let n=te.fromObject(e),i,o;if(Q(t.year))i=ne.now();else{for(let c of ya)Q(t[c])&&(t[c]=Ey[c]);let a=qE(t)||KE(t);if(a)return oe.invalid(a);let u=DC(r);[i,o]=Ea(t,u,r)}return new oe({ts:i,zone:r,loc:n,o})}s(gE,"quickDT");function EE(t,e,r){let n=Q(r.round)?!0:r.round,i=Q(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=pd(u,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(u,c)),"format"),a=s(u=>r.calendary?e.hasSame(t,u)?0:e.startOf(u).diff(t.startOf(u),u).get(u):e.diff(t,u).get(u),"differ");if(r.unit)return o(a(r.unit),r.unit);for(let u of r.units){let c=a(u);if(Math.abs(c)>=1)return o(c,u)}return o(t>e?-0:0,r.units[r.units.length-1])}s(EE,"diffRelative");function yE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}s(yE,"lastOpts");var ls,ud=new Map,oe=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||ne.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ve("invalid input"):null)||(r.isValid?null:cs(r));this.ts=Q(e.ts)?ne.now():e.ts;let i=null,o=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,o]=[e.old.c,e.old.o];else{let u=dr(e.o)&&!e.old?e.o:r.offset(this.ts);i=ha(this.ts,u),n=Number.isNaN(i.year)?new Ve("invalid input"):null,i=n?null:i,o=n?null:u}this._zone=r,this.loc=e.loc||te.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=yE(arguments),[n,i,o,a,u,c,l]=r;return gE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=yE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,gE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=iR(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=cr(r.zone,ne.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:te.fromObject(r)}):t.invalid(cs(i))}static fromMillis(e,r={}){if(dr(e))return e<-fE||e>fE?t.invalid("Timestamp out of range"):new t({ts:e,zone:cr(r.zone,ne.defaultZone),loc:te.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(dr(e))return new t({ts:e*1e3,zone:cr(r.zone,ne.defaultZone),loc:te.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=cr(r.zone,ne.defaultZone);if(!n.isValid)return t.invalid(cs(n));let i=te.fromObject(r),o=wa(e,hE),{minDaysInFirstWeek:a,startOfWeek:u}=tE(o,i),c=ne.now(),l=Q(r.specificOffset)?n.offset(c):r.specificOffset,d=!Q(o.ordinal),f=!Q(o.year),h=!Q(o.month)||!Q(o.day),p=f||h,S=o.weekYear||o.weekNumber;if((p||d)&&S)throw new lr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&d)throw new lr("Can't mix ordinal dates with month/day");let m=S||o.weekday&&!p,E,y,I=ha(c,l);m?(E=IC,y=_C,I=Oa(I,a,u)):d?(E=wC,y=OC,I=Wl(I)):(E=ya,y=Ey);let O=!1;for(let H of E){let Ie=o[H];Q(Ie)?O?o[H]=y[H]:o[H]=I[H]:O=!0}let w=m?tR(o,a,u):d?rR(o):qE(o),T=w||KE(o);if(T)return t.invalid(T);let _=m?Zg(o,a,u):d?eE(o):o,[U,R]=Ea(_,l,n),k=new t({ts:U,zone:n,o:R,loc:i});return o.weekday&&p&&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.isValid?k:t.invalid(k.invalid)}static fromISO(e,r={}){let[n,i]=jR(e);return Fn(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=HR(e);return Fn(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=YR(e);return Fn(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=AC(a,e,r);return d?t.invalid(d):Fn(u,c,n,`format ${r}`,e,l)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=rC(e);return Fn(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the DateTime is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new Ql(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=hy(e,te.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return py(Ge.parseFormat(e),te.fromObject(r)).map(i=>i.val).join("")}static resetCache(){ls=void 0,ud.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Vl(this).weekYear:NaN}get weekNumber(){return this.isValid?Vl(this).weekNumber:NaN}get weekday(){return this.isValid?Vl(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?ql(this).weekday:NaN}get localWeekNumber(){return this.isValid?ql(this).weekNumber:NaN}get localWeekYear(){return this.isValid?ql(this).weekYear:NaN}get ordinal(){return this.isValid?Wl(this.c).ordinal:NaN}get monthShort(){return this.isValid?Yr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Yr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Yr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Yr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=Ca(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ha(c,a),f=ha(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[jr(this,{ts:c}),jr(this,{ts:l})]:[this]}get isInLeapYear(){return ms(this.year)}get daysInMonth(){return Ia(this.year,this.month)}get daysInYear(){return this.isValid?Bn(this.year):NaN}get weeksInWeekYear(){return this.isValid?ps(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?ps(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=Ge.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ke.instance(e),r)}toLocal(){return this.setZone(ne.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=cr(e,ne.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=Ea(a,o,e)}return jr(this,{ts:i,zone:e})}else return t.invalid(cs(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return jr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=wa(e,hE),{minDaysInFirstWeek:n,startOfWeek:i}=tE(r,this.loc),o=!Q(r.weekYear)||!Q(r.weekNumber)||!Q(r.weekday),a=!Q(r.ordinal),u=!Q(r.year),c=!Q(r.month)||!Q(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new lr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new lr("Can't mix ordinal dates with month/day");let f;o?f=Zg({...Oa(this.c,n,i),...r},n,i):Q(r.ordinal)?(f={...this.toObject(),...r},Q(r.day)&&(f.day=Math.min(Ia(f.year,f.month),f.day))):f=eE({...Wl(this.c),...r});let[h,p]=Ea(f,this.o,this.zone);return jr(this,{ts:h,o:p})}plus(e){if(!this.isValid)return this;let r=Ee.fromDurationLike(e);return jr(this,pE(this,r))}minus(e){if(!this.isValid)return this;let r=Ee.fromDurationLike(e).negate();return jr(this,pE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=Ee.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?Ge.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Gl}toLocaleString(e=Aa,r={}){return this.isValid?Ge.create(this.loc.clone(r),e).formatDateTime(this):Gl}toLocaleParts(e={}){return this.isValid?Ge.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:o=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=Ta(a);let u=e==="extended",c=Kl(this,u,a);return ya.indexOf(a)>=3&&(c+="T"),c+=mE(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?Kl(this,e==="extended",Ta(r)):null}toISOWeekDate(){return ga(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:u="milliseconds"}={}){return this.isValid?(u=Ta(u),(i&&ya.indexOf(u)>=3?"T":"")+mE(this,a==="extended",r,e,n,o,u)):null}toRFC2822(){return ga(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ga(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Kl(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")),ga(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Gl}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return Ee.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=sR(r).map(Ee.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=uC(u,c,o,i);return a?l.negate():l}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?zr.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(r,n)<=i&&i<=o.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],o=e.unit;return Array.isArray(e.unit)&&(i=e.unit,o=void 0),EE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?EE(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 _e("min requires all arguments be DateTimes");return rE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return rE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return my(a,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,o=te.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Da(o,e)}static fromFormatParser(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(r.locale))throw new _e(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${r.locale}`);let{result:u,zone:c,specificOffset:l,invalidReason:d}=r.explainFromTokens(e);return d?t.invalid(d):Fn(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return Aa}static get DATE_MED(){return TE}static get DATE_MED_WITH_WEEKDAY(){return MD}static get DATE_FULL(){return SE}static get DATE_HUGE(){return AE}static get TIME_SIMPLE(){return _E}static get TIME_WITH_SECONDS(){return OE}static get TIME_WITH_SHORT_OFFSET(){return IE}static get TIME_WITH_LONG_OFFSET(){return wE}static get TIME_24_SIMPLE(){return DE}static get TIME_24_WITH_SECONDS(){return RE}static get TIME_24_WITH_SHORT_OFFSET(){return CE}static get TIME_24_WITH_LONG_OFFSET(){return bE}static get DATETIME_SHORT(){return xE}static get DATETIME_SHORT_WITH_SECONDS(){return vE}static get DATETIME_MED(){return PE}static get DATETIME_MED_WITH_SECONDS(){return NE}static get DATETIME_MED_WITH_WEEKDAY(){return kD}static get DATETIME_FULL(){return UE}static get DATETIME_FULL_WITH_SECONDS(){return LE}static get DATETIME_HUGE(){return ME}static get DATETIME_HUGE_WITH_SECONDS(){return kE}};function as(t){if(oe.isDateTime(t))return t;if(t&&t.valueOf&&dr(t.valueOf()))return oe.fromJSDate(t);if(t&&typeof t=="object")return oe.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(as,"friendlyDateTime");var RC="3.7.2";Qe.DateTime=oe;Qe.Duration=Ee;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Bt;Qe.Info=Yr;Qe.Interval=zr;Qe.InvalidZone=_a;Qe.Settings=ne;Qe.SystemZone=fs;Qe.VERSION=RC;Qe.Zone=fr});var Sy=q((kB,Ty)=>{"use strict";var Jr=yy();j.prototype.addYear=function(){this._date=this._date.plus({years:1})};j.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};j.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};j.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}))};j.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}))};j.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}))};j.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};j.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};j.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};j.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}))};j.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}))};j.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}))};j.prototype.getDate=function(){return this._date.day};j.prototype.getFullYear=function(){return this._date.year};j.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};j.prototype.getMonth=function(){return this._date.month-1};j.prototype.getHours=function(){return this._date.hour};j.prototype.getMinutes=function(){return this._date.minute};j.prototype.getSeconds=function(){return this._date.second};j.prototype.getMilliseconds=function(){return this._date.millisecond};j.prototype.getTime=function(){return this._date.valueOf()};j.prototype.getUTCDate=function(){return this._getUTC().day};j.prototype.getUTCFullYear=function(){return this._getUTC().year};j.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};j.prototype.getUTCMonth=function(){return this._getUTC().month-1};j.prototype.getUTCHours=function(){return this._getUTC().hour};j.prototype.getUTCMinutes=function(){return this._getUTC().minute};j.prototype.getUTCSeconds=function(){return this._getUTC().second};j.prototype.toISOString=function(){return this._date.toUTC().toISO()};j.prototype.toJSON=function(){return this._date.toJSON()};j.prototype.setDate=function(t){this._date=this._date.set({day:t})};j.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};j.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};j.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};j.prototype.setHours=function(t){this._date=this._date.set({hour:t})};j.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};j.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};j.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};j.prototype._getUTC=function(){return this._date.toUTC()};j.prototype.toString=function(){return this.toDate().toString()};j.prototype.toDate=function(){return this._date.toJSDate()};j.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};j.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function j(t,e){var r={zone:e};if(t?t instanceof j?this._date=t._date:t instanceof Date?this._date=Jr.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Jr.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Jr.DateTime.fromISO(t,r),this._date.isValid||(this._date=Jr.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Jr.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Jr.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Jr.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))}s(j,"CronDate");Ty.exports=j});var Oy=q((BB,_y)=>{"use strict";function Xr(t){return{start:t,count:1}}s(Xr,"buildRange");function Ay(t,e){t.end=e,t.step=e-t.start,t.count=2}s(Ay,"completeRangeWithItem");function Ed(t,e,r){e&&(e.count===2?(t.push(Xr(e.start)),t.push(Xr(e.end))):t.push(e)),r&&t.push(r)}s(Ed,"finalizeCurrentRange");function CC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Ed(e,r,Xr(i)),r=void 0):r?r.count===1?Ay(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Xr(r.start)),r=Xr(r.end),Ay(r,i)):(Ed(e,r),r=Xr(i)):r=Xr(i)}return Ed(e,r),e}s(CC,"compactField");_y.exports=CC});var wy=q(($B,Iy)=>{"use strict";var bC=Oy();function xC(t,e,r){var n=bC(t);if(n.length===1){var i=n[0],o=i.step;if(o===1&&i.start===e&&i.end===r)return"*";if(o!==1&&i.start===e&&i.end===r-o+1)return"*/"+o}for(var a=[],u=0,c=n.length;u<c;++u){var l=n[u];if(l.count===1){a.push(l.start);continue}var o=l.step;if(l.step===1){a.push(l.start+"-"+l.end);continue}var d=l.start==0?l.count-1:l.count;l.step*d>l.end?a=a.concat(Array.from({length:l.end-l.start+1}).map(function(h,p){var S=l.start+p;return(S-l.start)%l.step===0?S:null}).filter(function(h){return h!=null})):l.end===r-l.step+1?a.push(l.start+"/"+l.step):a.push(l.start+"-"+l.end+"/"+l.step)}return a.join(",")}s(xC,"stringifyField");Iy.exports=xC});var Cy=q((VB,Ry)=>{"use strict";var Zr=Sy(),vC=wy(),Dy=1e4;function L(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Zr(e.currentDate,this._tz),this._startDate=e.startDate?new Zr(e.startDate,this._tz):null,this._endDate=e.endDate?new Zr(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=L._freezeFields(t)}s(L,"CronExpression");L.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];L.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};L.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];L.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];L.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};L.parseDefaults=["0","*","*","*","*","*"];L.standardValidCharacters=/^[,*\d/-]+$/;L.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;L.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;L.validCharacters={second:L.standardValidCharacters,minute:L.standardValidCharacters,hour:L.standardValidCharacters,dayOfMonth:L.dayOfMonthValidCharacters,month:L.standardValidCharacters,dayOfWeek:L.dayOfWeekValidCharacters};L._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");L._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=L.aliases[e];r=r.replace(/[a-z]{3}/gi,function(c){if(c=c.toLowerCase(),typeof i[c]<"u")return i[c];throw new Error('Validation error, cannot resolve alias "'+c+'"')});break}if(!L.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function o(c){var l=[];function d(S){if(S instanceof Array)for(var m=0,E=S.length;m<E;m++){var y=S[m];if(L._isValidConstraintChar(n,y)){l.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);l.push(y)}else{if(L._isValidConstraintChar(n,S)){l.push(S);return}var I=+S;if(Number.isNaN(I)||I<n.min||I>n.max)throw new Error("Constraint error, got value "+S+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(I=I%7),l.push(I)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(S){return S.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var h=0,p=f.length;h<p;h++)d(a(f[h]));else d(a(c));return l.sort(L._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var h=+f[0],p=+f[1];if(Number.isNaN(h)||Number.isNaN(p)||h<n.min||p>n.max)throw new Error("Constraint error, got range "+h+"-"+p+" expected range "+n.min+"-"+n.max);if(h>p)throw new Error("Invalid range: "+c);var S=+l;if(Number.isNaN(S)||S<=0)throw new Error("Constraint error, cannot repeat at every "+S+" time.");e==="dayOfWeek"&&p%7===0&&d.push(0);for(var m=h,E=p;m<=E;m++){var y=d.indexOf(m)!==-1;!y&&S>0&&S%l===0?(S=1,d.push(m)):S++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");L._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};L._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=L.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(L._sortCompareFn)}};L._freezeFields=function(t){for(var e=0,r=L.map.length;e<r;++e){var n=L.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};L.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};L.prototype._findSchedule=s(function(e){function r(y,I){for(var O=0,w=I.length;O<w;O++)if(I[O]>=y)return I[O]===y;return I[0]===y}s(r,"matchSchedule");function n(y,I){if(I<6){if(y.getDate()<8&&I===1)return!0;var O=y.getDate()%7?1:0,w=y.getDate()-y.getDate()%7,T=Math.floor(w/7)+O;return T===I}return!1}s(n,"isNthDayMatch");function i(y){return y.length>0&&y.some(function(I){return typeof I=="string"&&I.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new Zr(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(y){return y.some(function(I){if(!i([I]))return!1;var O=Number.parseInt(I[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+I);return a.getDay()===O&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<Dy;){if(d++,e){if(u&&a.getTime()-u.getTime()<0)throw new Error("Out of the timespan range")}else if(c&&c.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var h=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(h=h||a.isLastDayOfMonth());var p=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||f(this.fields.dayOfWeek));var S=this.fields.dayOfMonth.length>=L.daysInMonth[a.getMonth()],m=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,E=a.getHours();if(!h&&(!p||m)){this._applyTimezoneShift(a,o,"Day");continue}if(!S&&m&&!h){this._applyTimezoneShift(a,o,"Day");continue}if(S&&!m&&!p){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(E-1,this.fields.hour)){a[o+"Hour"]();continue}if(!r(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,o,"Minute");continue}if(!r(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,o,"Second");continue}if(l===a.getTime()){o==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,o,"Second"):a.setMilliseconds(0);continue}break}if(d>=Dy)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Zr(a,this._tz),this._hasIterated=!0,a},"_findSchedule");L.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");L.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");L.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};L.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};L.prototype.iterate=s(function(e,r){var n=[];if(e>=0)for(var i=0,o=e;i<o;i++)try{var a=this.next();n.push(a),r&&r(a,i)}catch{break}else for(var i=0,o=e;i>o;i--)try{var a=this.prev();n.push(a),r&&r(a,i)}catch{break}return n},"iterate");L.prototype.reset=s(function(e){this._currentDate=new Zr(e||this._options.currentDate)},"reset");L.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=L.map.length;n<i;++n){var o=L.map[n],a=this.fields[o],u=L.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:L.daysInMonth[this.fields.month[0]-1]}:o==="dayOfWeek"&&(u={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),r.push(vC(a,u.min,u.max))}return r.join(" ")},"stringify");L.parse=s(function(e,r){var n=this;typeof r=="function"&&(r={});function i(o,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new Zr(void 0,n._tz)),L.predefined[o]&&(o=L.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=L.map.length-c.length,d=0,f=L.map.length;d<f;++d){var h=L.map[d],p=c[c.length>f?d:d-l];if(d<l||!p)u.push(L._parseField(h,L.parseDefaults[d],L.constraints[d]));else{var S=h==="dayOfWeek"?I(p):p;u.push(L._parseField(h,S,L.constraints[d]))}}for(var m={},d=0,f=L.map.length;d<f;d++){var E=L.map[d];m[E]=u[d]}var y=L._handleMaxDaysInMonth(m);return m.dayOfMonth=y||m.dayOfMonth,new L(m,a);function I(O){var w=O.split("#");if(w.length>1){var T=+w[w.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(w.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=T,w[0]}return O}s(I,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");L.fieldsToExpression=s(function(e,r){function n(h,p,S){if(!p)throw new Error("Validation error, Field "+h+" is missing");if(p.length===0)throw new Error("Validation error, Field "+h+" contains no values");for(var m=0,E=p.length;m<E;m++){var y=p[m];if(!L._isValidConstraintChar(S,y)&&(typeof y!="number"||Number.isNaN(y)||y<S.min||y>S.max))throw new Error("Constraint error, got value "+y+" expected range "+S.min+"-"+S.max)}}s(n,"validateConstraints");for(var i={},o=0,a=L.map.length;o<a;++o){var u=L.map[o],c=e[u];n(u,c,L.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(L._sortCompareFn).filter(function(h,p,S){return!p||h!==S[p-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=L._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new L(i,r||{})},"fieldsToExpression");Ry.exports=L});var xy=q((KB,by)=>{"use strict";var va=Cy();function pr(){}s(pr,"CronParser");pr._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:va.parse(e)};if(r.length>6)return{interval:va.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");pr.parseExpression=s(function(e,r){return va.parse(e,r)},"parseExpression");pr.fieldsToExpression=s(function(e,r){return va.fieldsToExpression(e,r)},"fieldsToExpression");pr.parseString=s(function(e){for(var r=e.split(`
5
+ `),n={variables:{},expressions:[],errors:{}},i=0,o=r.length;i<o;i++){var a=r[i],u=null,c=a.trim();if(c.length>0){if(c.match(/^#/))continue;if(u=c.match(/^(.*)=(.*)$/))n.variables[u[1]]=u[2];else{var l=null;try{l=pr._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");pr.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,pr.parseString(i.toString()))})},"parseFile");by.exports=pr});var ik={};P(ik,{APIWarning:()=>In,ActiveContentFileError:()=>Wu,AutomationViewMode:()=>Wa,BUDIBASE_DATASOURCE_TYPE:()=>Hd,BadRequestError:()=>fo,BudibaseError:()=>lo,Config:()=>ef,Cookie:()=>en,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Xd,DEFAULT_EXPENSES_TABLE_ID:()=>Jd,DEFAULT_INVENTORY_TABLE_ID:()=>zd,DEFAULT_JOBS_TABLE_ID:()=>Yd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>jn,DesignDocuments:()=>Os,DocumentType:()=>ce,Duration:()=>pe,DurationType:()=>tp,EmailUnavailableError:()=>Jt,Endpoint:()=>Wc,EndpointGroup:()=>wn,EndpointGroupList:()=>Bo,FeatureDisabledError:()=>Vu,FeatureDisabledWarning:()=>Dc,ForbiddenError:()=>$u,GlobalRole:()=>Zd,HTTPError:()=>Me,Header:()=>We,InternalTable:()=>Pt,InvalidAPIKeyWarning:()=>Ai,MAX_VALID_DATE:()=>Va,MIN_VALID_DATE:()=>Hy,NotFoundError:()=>Bu,NotImplementedError:()=>Gu,RedisClient:()=>De,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>jd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Pe,USER_METADATA_PREFIX:()=>_s,UnexpectedError:()=>Fu,UsageLimitError:()=>qu,UsageLimitWarning:()=>wc,UserStatus:()=>Ga,ViewName:()=>$t,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et,accounts:()=>yn,auth:()=>Mm,blacklist:()=>Wm,cache:()=>Ro,configs:()=>Xt,constants:()=>tf,context:()=>ue,csv:()=>Xm,db:()=>Sr,docIds:()=>qf,docUpdates:()=>Gm,encryption:()=>bm,env:()=>g,errors:()=>Qu,events:()=>hi,features:()=>Im,getErrorMessage:()=>lA,getPublicError:()=>Ku,init:()=>nk,installation:()=>Zu,locks:()=>En,logging:()=>to,middleware:()=>Lm,objectStore:()=>Tp,permissions:()=>Am,platform:()=>uo,plugins:()=>Fm,queue:()=>wp,redis:()=>Bm,roles:()=>Sm,security:()=>Fp,sessions:()=>ju,setEnv:()=>ws,sql:()=>Jm,tenancy:()=>rk,timers:()=>Iu,userUtils:()=>Xp,users:()=>Ei,utils:()=>si,warnings:()=>xm,withEnv:()=>Zy});module.exports=SO(ik);var Xt={};P(Xt,{analyticsEnabled:()=>zu,generateConfigID:()=>Po,getConfig:()=>Be,getDefaultGoogleConfig:()=>am,getGoogleConfig:()=>dc,getGoogleDatasourceConfig:()=>cm,getOIDCConfig:()=>f0,getOIDCConfigById:()=>lm,getOIDCLogosDoc:()=>l0,getPlatformUrl:()=>No,getRecaptchaConfig:()=>h0,getSCIMConfig:()=>m0,getSMTPConfig:()=>p0,getSMTPConfigDoc:()=>l_,getSettingsConfig:()=>um,getSettingsConfigDoc:()=>yi,getTranslationsConfig:()=>u0,getTranslationsConfigDoc:()=>c_,save:()=>a0});var AO=["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"],_O=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],th=[...AO,..._O],rh={"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_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0,"resource:copied_to_workspace":"{{ resource.type }} copied to workspace"};var $c=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))($c||{}),Gc=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.SENSITIVE_LONGFORM="sensitiveLongForm",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))(Gc||{}),$o=(y=>(y.AIRTABLE="AIRTABLE",y.ARANGODB="ARANGODB",y.BUDIBASE="BUDIBASE",y.COUCHDB="COUCHDB",y.DYNAMODB="DYNAMODB",y.ELASTICSEARCH="ELASTICSEARCH",y.FIRESTORE="FIRESTORE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.MONGODB="MONGODB",y.MYSQL="MYSQL",y.ORACLE="ORACLE",y.POSTGRES="POSTGRES",y.REDIS="REDIS",y.REST="REST",y.S3="S3",y.SNOWFLAKE="SNOWFLAKE",y.SQL_SERVER="SQL_SERVER",y))($o||{});var Vc=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(Vc||{});var OO=B(require("lodash/isPlainObject"));var Mr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Mr||{}),sr=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(sr||{}),Rn=(e=>(e.RANGE="range",e))(Rn||{}),Di=(r=>(r.AND="$and",r.OR="$or",r))(Di||{});function Go(t){return Object.values(Di).includes(t)}s(Go,"isLogicalSearchOperator");function nh(t){return Object.values(Mr).includes(t)}s(nh,"isBasicSearchOperator");function ih(t){return Object.values(sr).includes(t)}s(ih,"isArraySearchOperator");function Vo(t){return Object.values(Rn).includes(t)}s(Vo,"isRangeSearchOperator");var sh=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Ri=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Ri||{});var Ci=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ci||{});var qo=(f=>(f.WORKSPACE="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(qo||{});var Ko=s(t=>t.hosting==="cloud","isCloudAccount");var Qo=s(t=>t.authType==="sso","isSSOAccount");var C="_",Pe="\uFFF0",or=s(t=>`${t}${C}`,"prefixed"),ce=(V=>(V.USER="us",V.GROUP="gr",V.CONFIG="config",V.TEMPLATE="template",V.WORKSPACE="app",V.DEV="dev",V.WORKSPACE_DEV="app_dev",V.WORKSPACE_METADATA="app_metadata",V.ROLE="role",V.DEV_INFO="devinfo",V.AUTOMATION_LOG="log_au",V.ACCOUNT_METADATA="acc_metadata",V.PLUGIN="plg",V.DATASOURCE="datasource",V.DATASOURCE_PLUS="datasource_plus",V.APP_BACKUP="backup",V.TABLE="ta",V.ROW="ro",V.AUTOMATION="au",V.LINK="li",V.WEBHOOK="wh",V.INSTANCE="inst",V.LAYOUT="layout",V.SCREEN="screen",V.QUERY="query",V.DEPLOYMENTS="deployments",V.METADATA="metadata",V.MEM_VIEW="view",V.USER_FLAG="flag",V.AUTOMATION_METADATA="meta_au",V.AUDIT_LOG="al",V.SCIM_LOG="scimlog",V.ROW_ACTIONS="ra",V.OAUTH2_CONFIG="oauth2",V.OAUTH2_CONFIG_LOG="oauth2log",V.AGENT="agent",V.CHAT_APP="chatapp",V.CHAT_CONVERSATION="chatconvo",V.AGENT_TOOL_SOURCE="agenttoolsource",V.AGENT_FILE="agentfile",V.AGENT_LOG_SESSION="agentlogsession",V.AGENT_LOG_REQUEST="agentlogrequest",V.KNOWLEDGE_BASE_FILE="knowledgebasefile",V.AI_CONFIG="aiconfig",V.LITELLM_KEY="litellmkey",V.VECTOR_STORE="vectordb",V.KNOWLEDGE_BASE="knowledgebase",V.WORKSPACE_APP="workspace_app",V.WORKSPACE_FAVOURITE="workspace_favourite",V.AUTO_COLUMN_STATE="autocolumn_state",V))(ce||{});var Pt=(e=>(e.USER_METADATA="ta_users",e))(Pt||{});function jo(t){return!!t.providerType}s(jo,"isSSOUser");var qc=(d=>(d.OBJECT="object",d.STRING="string",d.BOOLEAN="boolean",d.NUMBER="number",d.ARRAY="array",d.JSON="json",d.DATE="date",d.DATETIME="datetime",d.ATTACHMENT="attachment",d.LONGFORM="longform",d))(qc||{}),Kc=(_=>(_.TABLE="table",_.ROW="row",_.ROWS="rows",_.WIDE="wide",_.QUERY="query",_.QUERY_PARAMS="queryParams",_.QUERY_LIMIT="queryLimit",_.LOOP_OPTION="loopOption",_.ITEM="item",_.CODE="code",_.FILTERS="filters",_.COLUMN="column",_.TRIGGER_SCHEMA="triggerSchema",_.CRON="cron",_.WEBHOOK_URL="webhookUrl",_.AUTOMATION="automation",_.AUTOMATION_FIELDS="automationFields",_.MULTI_ATTACHMENTS="multi_attachments",_.TRIGGER_FILTER="trigger_filter",_.CATEGORIES="categories",_.AGENT="agent",_.OUTPUT_SCHEMA="outputSchema",_))(Kc||{}),Qc=(c=>(c.ROW_SAVED="ROW_SAVED",c.ROW_UPDATED="ROW_UPDATED",c.ROW_DELETED="ROW_DELETED",c.WEBHOOK="WEBHOOK",c.APP="APP",c.CRON="CRON",c.ROW_ACTION="ROW_ACTION",c.EMAIL="EMAIL",c))(Qc||{});var jc=(D=>(D.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",D.CREATE_ROW="CREATE_ROW",D.GET_ROW="GET_ROW",D.UPDATE_ROW="UPDATE_ROW",D.DELETE_ROW="DELETE_ROW",D.QUERY_ROWS="QUERY_ROWS",D.EXECUTE_BASH="EXECUTE_BASH",D.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",D.EXECUTE_SCRIPT="EXECUTE_SCRIPT",D.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",D.EXECUTE_QUERY="EXECUTE_QUERY",D.SERVER_LOG="SERVER_LOG",D.DELAY="DELAY",D.FILTER="FILTER",D.API_REQUEST="API_REQUEST",D.LOOP="LOOP",D.COLLECT="COLLECT",D.OPENAI="OPENAI",D.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",D.BRANCH="BRANCH",D.CLASSIFY_CONTENT="CLASSIFY_CONTENT",D.PROMPT_LLM="PROMPT_LLM",D.TRANSLATE="TRANSLATE",D.SUMMARISE="SUMMARISE",D.GENERATE_TEXT="GENERATE_TEXT",D.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",D.EXTRACT_STATE="EXTRACT_STATE",D.LOOP_V2="LOOP_V2",D.AGENT="AGENT",D.discord="discord",D.slack="slack",D.zapier="zapier",D.integromat="integromat",D.n8n="n8n",D))(jc||{}),oh=[...Object.values(jc),...Object.values(Qc)];function ah(t){return t.stepId==="BRANCH"}s(ah,"isBranchStep");var Hc="bb_internal";var uh=["attachment_single","attachment","signature_single","bb_reference","json","array"];var tf={};P(tf,{AutomationViewMode:()=>Wa,BUDIBASE_DATASOURCE_TYPE:()=>Hd,Config:()=>ef,Cookie:()=>en,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Xd,DEFAULT_EXPENSES_TABLE_ID:()=>Jd,DEFAULT_INVENTORY_TABLE_ID:()=>zd,DEFAULT_JOBS_TABLE_ID:()=>Yd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>jn,DesignDocuments:()=>Os,DocumentType:()=>ce,GlobalRole:()=>Zd,Header:()=>We,InternalTable:()=>Pt,MAX_VALID_DATE:()=>Va,MIN_VALID_DATE:()=>Hy,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>jd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Pe,USER_METADATA_PREFIX:()=>_s,UserStatus:()=>Ga,ViewName:()=>$t,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et});var We=(w=>(w.API_KEY="x-budibase-api-key",w.LICENSE_KEY="x-budibase-license-key",w.API_VER="x-budibase-api-version",w.APP_ID="x-budibase-app-id",w.SESSION_ID="x-budibase-session-id",w.CLIENT="x-budibase-client",w.TYPE="x-budibase-type",w.PREVIEW_ROLE="x-budibase-role",w.TENANT_ID="x-budibase-tenant-id",w.VERIFICATION_CODE="x-budibase-verification-code",w.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",w.RESET_PASSWORD_CODE="x-budibase-reset-password-code",w.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",w.TOKEN="x-budibase-token",w.CSRF_TOKEN="x-csrf-token",w.CORRELATION_ID="x-budibase-correlation-id",w.AUTHORIZATION="authorization",w.MIGRATING_APP="x-budibase-migrating-app",w.SKIP_MIGRATING_WAIT="x-budibase-migrating-app-skip-wait",w.COOKIE="cookie",w))(We||{});var Cn={WORKSPACES:"/builder/workspaces",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},bi={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var $e={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"}},ch={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var bn="datasource_internal_bb_default";var mr={};P(mr,{ColumnSplitter:()=>Ud,NoEmptyFilterStrings:()=>Gy,buildQuery:()=>Vy,cleanupQuery:()=>kd,fixupFilterArrays:()=>Bd,getKeyNumbering:()=>Fd,getValidOperatorsForType:()=>nb,hasFilters:()=>Ld,limit:()=>Ky,recurseLogicalOperators:()=>Md,removeKeyNumbering:()=>Ho,runQuery:()=>Ma,search:()=>ob,sort:()=>qy,splitFiltersArray:()=>Yo});var Qn=B(lh());var _t={};P(_t,{filterValueToLabel:()=>bO,hasSchema:()=>xO,isSupportedUserSearch:()=>ph,nameToUrl:()=>LO,parallelForeach:()=>CO,processSearchFilters:()=>Jc,toMap:()=>PO,trimOtherProps:()=>vO,unreachable:()=>RO});var fh=B(require("lodash/pick"));var DO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function RO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(RO,"unreachable");async function CO(t,e,r){let n=[],i=Symbol.asyncIterator in t,o=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),a=s(async()=>{let u=await(i?o.next():Promise.resolve(o.next()));for(;!u.done;)await e(u.value),u=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}s(CO,"parallelForeach");function bO(){return Object.keys($e).reduce((t,e)=>{let n=$e[e];return t[n.value]=n.label,t},{})}s(bO,"filterValueToLabel");function xO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(xO,"hasSchema");function vO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(vO,"trimOtherProps");function ph(t){let e=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(Go(o)){for(let l of t[o].conditions)if(!ph(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!e.find(l=>l.op===o&&u.length===1&&u[0]===l.key))return!1}return!0}s(ph,"isSupportedUserSearch");function Jc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Yo(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,fh.default)(i,DO);return o.field=Ho(o.field),o})}]}}s(Jc,"processSearchFilters");function PO(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(PO,"toMap");var NO=s(t=>t?t.trim():null,"resolveWorkspaceName"),UO=s(t=>{let e,r=NO(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),LO=s(t=>{let e=UO(t);return MO(e)},"nameToUrl"),MO=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var Ue={};P(Ue,{accountPortalAccountUrl:()=>Id,accountPortalBillingUrl:()=>wd,accountPortalUpgradeUrl:()=>Dd,agentChatUrl:()=>Pd,appAgentUrl:()=>Ua,appChatUrl:()=>Na,builderAppsUrl:()=>vd,builderSettingsAuthUrl:()=>bd,builderSettingsEmailUrl:()=>Cd,builderSettingsPeopleUsersUrl:()=>xd,builderWorkspacesUrl:()=>Rd,cancelableTimeout:()=>mh,cron:()=>ZC,deepGet:()=>Xc,duplicateName:()=>HC,escapeHtml:()=>$O,formatBytes:()=>XC,getSequentialName:()=>YC,getUserColor:()=>FO,getUserInitials:()=>kO,getUserLabel:()=>BO,isGoogleSheets:()=>GO,isSQL:()=>VO,lists:()=>Od,retry:()=>qO,roles:()=>_d,schema:()=>Es,structuredOutput:()=>Td,urlHelpers:()=>By,views:()=>Ad,wait:()=>Zc,withTimeout:()=>WO});var Xc=s((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},"deepGet"),kO=s(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"},"getUserInitials"),FO=s(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%)`},"getUserColor"),BO=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function mh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(mh,"cancelableTimeout");async function WO(t,e){let[r,n]=mh(t),i=await Promise.race([e(),r]);return n(),i}s(WO,"withTimeout");var $O=s(t=>t==null?"":String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),"escapeHtml");function GO(t){return t==="GOOGLE_SHEETS"}s(GO,"isGoogleSheets");function VO(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(VO,"isSQL");async function Zc(t){return new Promise(e=>setTimeout(e,t))}s(Zc,"wait");async function qO(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 o=1.5**i*1e3*(Math.random()+.5);await Zc(o);try{return await t()}catch(a){n=a}}throw n}s(qO,"retry");var Py=B(Ot()),Ny=B(xy());var vy="(Input cron: ",PC={"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 NC(t){let e=[];for(let r of t){r.includes(vy)&&(r=r.split(vy)[0].trim());for(let[n,i]of Object.entries(PC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(NC,"improveErrors");function Uy(t,e=4){let r=Ny.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}s(Uy,"getNextExecutionDates");function Ly(t){let e=(0,Py.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:NC(e.getError())}}s(Ly,"validate");var Es={};P(Es,{decodeNonAscii:()=>yd,encodeNonAscii:()=>MC,isDeprecatedSingleUserColumn:()=>UC,isNumeric:()=>kC,isRequired:()=>LC});function UC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(UC,"isDeprecatedSingleUserColumn");function LC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(LC,"isRequired");function MC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(MC,"encodeNonAscii");function yd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(yd,"decodeNonAscii");function kC(t){return t.type==="number"||t.type==="bigint"}s(kC,"isNumeric");var Td={};P(Td,{normalizeSchemaForStructuredOutput:()=>FC});function FC(t){function e(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let o=i.properties,a=[],u={};for(let[d,f]of Object.entries(o))if(typeof f=="object"&&f!==null){let h=f;if(h.required===!0){a.push(d);let{required:p,...S}=h;u[d]=e(S)}else u[d]=e(h)}else u[d]=f;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=e(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>e(a)));return i}s(e,"processSchema");let r=e(t);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}s(FC,"normalizeSchemaForStructuredOutput");var Ad={};P(Ad,{basicFields:()=>VC,calculationFields:()=>GC,hasCalculationFields:()=>$C,isBasicViewField:()=>BC,isCalculationField:()=>ys,isCalculationView:()=>WC,isV2:()=>qC,isVisible:()=>My});var Sd=B(require("lodash/pickBy"));function ys(t){return"calculationType"in t}s(ys,"isCalculationField");function BC(t){return!ys(t)}s(BC,"isBasicViewField");function WC(t){return t.type==="calculation"}s(WC,"isCalculationView");function $C(t){return Object.values(t.schema||{}).some(ys)}s($C,"hasCalculationFields");function GC(t){return(0,Sd.default)(t.schema||{},ys)}s(GC,"calculationFields");function My(t){return t.visible!==!1}s(My,"isVisible");function VC(t,e){let{visible:r=!0}=e||{};return(0,Sd.default)(t.schema||{},n=>!ys(n)&&(!r||My(n)))}s(VC,"basicFields");function qC(t){return t.version===2}s(qC,"isV2");var _d={};P(_d,{checkForRoleInheritanceLoops:()=>QC});function KC(t){return`role${C}${t}`}s(KC,"prefixForCheck");function QC(t){let e=new Map;t.forEach(o=>{e.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=KC(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let u=e.get(a)||e.get(o);if(!u)return n.delete(o),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!t.find(o=>i(o._id))}s(QC,"checkForRoleInheritanceLoops");var Od={};P(Od,{punctuateList:()=>jC});function jC(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]}s(jC,"punctuateList");var HC=s((t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];e.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(o.push(parseInt(c[1])),!0):!1}),o.sort((u,c)=>u-c);let a;if(o.length===0)a=1;else{for(let u=0;u<o.length;u++)if(o[u]!==u+1){a=u+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),YC=s((t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let o=e.trim(),a=n?`${e}1`:o;if(!t?.length)return a;let u=0;return t.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(o))return;let d=l.split(o);if(d.length!==2)return;d[1].trim()===""&&(d[1]="1");let f=parseInt(d[1]);f>u&&(u=f)}),u===0?a:`${e}${i}${u+1}`},"getSequentialName");var ky=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),zC=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),Wt=s((t,e)=>{let r=ky(e);if(!t)return r;let n=zC(t);return r?`${n}${r}`:n},"joinBaseAndPath"),JC=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),Fy=s(t=>JC(ky(t)),"normalizeAppUrl"),Id=s(t=>Wt(t,bi.ACCOUNT),"accountPortalAccountUrl"),wd=s(t=>Wt(t,bi.BILLING),"accountPortalBillingUrl"),Dd=s((t,e)=>{if(e){let r=Wt(t,bi.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return Wt(t,bi.UPGRADE)},"accountPortalUpgradeUrl"),Rd=s(t=>Wt(t,Cn.WORKSPACES),"builderWorkspacesUrl"),Cd=s(t=>Wt(t,Cn.SETTINGS_EMAIL),"builderSettingsEmailUrl"),bd=s(t=>Wt(t,Cn.SETTINGS_AUTH),"builderSettingsAuthUrl"),xd=s(t=>Wt(t,Cn.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),vd=s(t=>Wt(t,Cn.APPS),"builderAppsUrl"),Na=s(t=>`/app-chat${Fy(t)}`,"appChatUrl"),Ua=s((t,e)=>`${Fy(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),Pd=s((t,e)=>Na(Ua(t,e)),"agentChatUrl"),By={accountPortalAccountUrl:Id,accountPortalBillingUrl:wd,accountPortalUpgradeUrl:Dd,builderWorkspacesUrl:Rd,builderSettingsEmailUrl:Cd,builderSettingsAuthUrl:bd,builderSettingsPeopleUsersUrl:xd,builderAppsUrl:vd,appChatUrl:Na,appAgentUrl:Ua,agentChatUrl:Pd};function XC(t,e=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,o=typeof t=="string"?parseInt(t,10):t||0;for(;o>=1024&&i<r.length-1&&++i;)o/=1024;return`${o.toFixed(o<10&&i>0?1:0)}${e}${r[i]}`}s(XC,"formatBytes");var ZC={getNextExecutionDates:Uy,validate:Ly};var La=B(require("lodash/isPlainObject")),Nd=B(require("lodash/isEmpty"));var tb=/{{([^{].*?)}}/g,$y=Object.values(Di),rb=[...Object.values(Mr),...Object.values(sr),...Object.values(Rn)],nb=s((t,e,r)=>{let n=$e,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:d}=t;c==="string"?d==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||Es.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let f=r?.tableId?.includes("datasource_plus");return e==="_id"&&f&&(u=[n.Equals,n.NotEquals,n.In]),u},"getValidOperatorsForType"),Gy=[$e.StartsWith.value,$e.Like.value,$e.Equals.value,$e.NotEquals.value,$e.Contains.value,$e.NotContains.value,$e.ContainsAny.value,$e.In.value];function Md(t,e){for(let r of $y)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Md,"recurseLogicalOperators");var kd=s(t=>{for(let e of Gy)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,o]of Object.entries(t[r]))(o==null||o===""||ib(o))&&delete t[e][i]}return t=Md(t,kd),t},"cleanupQuery");function ib(t){return Array.isArray(t)&&t.length===0}s(ib,"isEmptyArray");var Ho=s(t=>Fd(t).key,"removeKeyNumbering"),Fd=s(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}},"getKeyNumbering"),Ud=class{static{s(this,"ColumnSplitter")}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}=Fd(e),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let o;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),o=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=yd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function sb(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:o}=t,{value:a}=t;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(tb)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Vo(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(Vo(r)){let l=ch[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],low:a};else if(nh(r)||ih(r)||Vo(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(sb,"buildCondition");function Yo(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}s(Yo,"splitFiltersArray");function Vy(t){if(!t)return{};if(Array.isArray(t)&&(t=Jc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=Wy(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=Vy(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=Yo(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=Wy(n.logicalOperator)),{[u]:{conditions:a.map(sb).filter(c=>c)}}})},e}s(Vy,"buildQuery");function Wy(t){return t==="all"?"$and":"$or"}s(Wy,"logicalOperatorFromUI");function Bd(t){if(!t)return t;for(let e of Object.values(sr)){let r=t[e];if(!(r==null||!(0,La.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(o=>o.trim()):r[n]=[i]}}return Md(t,Bd),t}s(Bd,"fixupFilterArrays");function ob(t,e){let r=Ma(t,e.query);e.sort&&(r=qy(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=Ky(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(ob,"search");function Ma(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=kd(e),e=Bd(e),!Ld(e)&&e.onEmptyFilter==="none")return[];let r=s((T,_)=>U=>{for(let[R,k]of Object.entries(e[T]||{})){let H=Go(T)?U:Xc(U,Ho(R)),Ie=_(H,k);if(e.allOr&&Ie)return!0;if(!e.allOr&&!Ie)return!1}return!e.allOr},"match"),n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),o=r("range",(T,_)=>{if(T==null||T===""||((0,La.default)(_.low)&&(0,Nd.default)(_.low)&&(_.low=void 0),(0,La.default)(_.high)&&(0,Nd.default)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let U=+T;if(!isNaN(U)){let k=+_.low,H=+_.high;if(!isNaN(k)&&!isNaN(H))return U>=k&&U<=H;if(isNaN(k)){if(!isNaN(H))return U<=H}else return U>=k}let R=(0,Qn.default)(T);if(R.isValid()){let k=(0,Qn.default)(_.low||"0000-00-00T00:00:00.000Z"),H=(0,Qn.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&H.isValid())return R.isAfter(k)&&R.isBefore(H)||R.isSame(k)||R.isSame(H);if(k.isValid())return R.isAfter(k)||R.isSame(k);if(H.isValid())return R.isBefore(H)||R.isSame(H)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),a=s((T,_)=>{if(Array.isArray(T)){for(let R of T)if(a(R,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let U=(0,Qn.default)(T);if(U.isValid()){let R=(0,Qn.default)(_);if(R.isValid())return U.isSame(R)}return!1},"_valueMatches"),u=s(T=>(..._)=>!T(..._),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),f=r("empty",d),h=r("notEmpty",u(d)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(U=>parseFloat(U))),Array.isArray(_)?_.some(U=>a(T,U)):!1)),S=s(T=>(_,U)=>!Array.isArray(_)||(typeof U=="string"&&(U=U.split(","),typeof _[0]=="number"&&(U=U.map(R=>parseFloat(R)))),!Array.isArray(U))?!1:U.length===0?!0:U[T](R=>a(_,R)),"_contains"),m=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:S("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:u(S("every"))(T,_)),y=r("containsAny",S("some")),I=r("$and",(T,_)=>{if(!_.length)return!1;for(let U of _)if(!Ma([T],U).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let U of _)if(Ma([T],{...U,allOr:!0}).length)return!0;return!1}),w=s(T=>{let _={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:h,oneOf:p,contains:m,containsAny:y,notContains:E,$and:I,$or:O},U=Object.entries(e||{}).filter(([R,k])=>!["allOr","onEmptyFilter"].includes(R)&&k&&Object.keys(k).length>0).map(([R])=>_[R]?.(T)??!1);return Ld(e)?e.allOr?U.some(R=>R===!0):U.every(R=>R===!0):!0},"docMatch");return t.filter(w)}s(Ma,"runQuery");function qy(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return t.slice().sort((o,a)=>{let u=i(o[e]),c=i(a[e]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(qy,"sort");function Ky(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(Ky,"limit");var Ld=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of $y)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of rb){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return e(t)},"hasFilters");var Le={};P(Le,{applications:()=>$d,automations:()=>Gd,screens:()=>Qd,users:()=>Kd});var $d={};P($d,{getDevAppID:()=>ab,getProdAppID:()=>Ss});var Wd=or("app"),Ts=or("app_dev");function ab(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Ts))return t;let e=t.split(Wd);e.shift();let r=e.join(Wd);return`${Ts}${r}`}s(ab,"getDevAppID");function Ss(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Ts))return t;let e=t.split(Ts);e.shift();let r=e.join(Ts);return`${Wd}${r}`}s(Ss,"getProdAppID");var Gd={};P(Gd,{checkForCollectStep:()=>db,isAppAction:()=>lb,isRowAction:()=>ub,isWebhookAction:()=>cb});function ub(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(ub,"isRowAction");function cb(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(cb,"isWebhookAction");function lb(t){return t.definition.trigger?.stepId==="APP"}s(lb,"isAppAction");function Qy(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(ah(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(Qy(r))return!0}}return!1}s(Qy,"hasCollectBlockRecursive");function db(t){return Qy(t.definition.steps)}s(db,"checkForCollectStep");var Kd={};P(Kd,{canCreateApps:()=>fb,containsUserID:()=>Sb,getGlobalUserID:()=>Tb,getUserAppGroups:()=>Ab,hasAdminPermissions:()=>qd,hasAppBuilderPermissions:()=>Fa,hasBuilderPermissions:()=>Eb,hasCreatorPermissions:()=>Ba,isAdmin:()=>As,isAdminOrBuilder:()=>mb,isAdminOrGlobalBuilder:()=>hb,isAdminOrWorkspaceBuilder:()=>pb,isBuilder:()=>Vd,isCreator:()=>yb,isGlobalBuilder:()=>ka,userAppAccessList:()=>_b});function Vd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Ss(e))):!1}s(Vd,"isBuilder");function ka(t){return Vd(t)&&!Fa(t)||As(t)}s(ka,"isGlobalBuilder");function fb(t){return ka(t)||Ba(t)}s(fb,"canCreateApps");function As(t){return t?qd(t):!1}s(As,"isAdmin");function pb(t,e){return t?!!(As(t)||e&&t.builder?.apps?.includes(Ss(e))):!1}s(pb,"isAdminOrWorkspaceBuilder");function mb(t,e){return Vd(t,e)||As(t)}s(mb,"isAdminOrBuilder");function hb(t){return ka(t)||As(t)}s(hb,"isAdminOrGlobalBuilder");function Fa(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Fa,"hasAppBuilderPermissions");function gb(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(gb,"hasAppCreatorPermissions");function Eb(t){return t?t.builder?.global||Fa(t)||Ba(t):!1}s(Eb,"hasBuilderPermissions");function qd(t){return t?!!t.admin?.global:!1}s(qd,"hasAdminPermissions");function Ba(t){return t?!!t.builder?.creator:!1}s(Ba,"hasCreatorPermissions");function yb(t){return t?ka(t)||qd(t)||Ba(t)||Fa(t)||gb(t):!1}s(yb,"isCreator");function Tb(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}s(Tb,"getGlobalUserID");function Sb(t){return typeof t!="string"?!1:t.includes(`us${C}`)}s(Sb,"containsUserID");function jy(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(jy,"getUserGroups");function Ab(t,e,r){let n=Ss(t);return jy(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(Ab,"getUserAppGroups");function _b(t,e){let n=jy(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(_b,"userAppAccessList");var Qd={};P(Qd,{findInSettings:()=>Ob});function Ob(t,e){let r=[];function n(i,o=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(e)?r.push({setting:o?`${o}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return s(n,"recurse"),n(t.props),r}s(Ob,"findInSettings");var Wa=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Wa||{}),$t=(d=>(d.USER_BY_WORKSPACE="by_app",d.USER_BY_EMAIL="by_email2",d.BY_API_KEY="by_api_key",d.LINK="by_link",d.ROUTING="screen_routes_2",d.AUTOMATION_LOGS="automation_logs",d.ACCOUNT_BY_EMAIL="account_by_email",d.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",d.USER_BY_GROUP="user_by_group",d.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",d))($t||{}),jn={by_email2:["by_email"]},fe={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=or("app"),$a=or("app_dev"),tt=$a,jd="internal",Hd="budibase",Rt="_design/sqlite",Yd="ta_bb_jobs",zd="ta_bb_inventory",Jd="ta_bb_expenses",Xd="ta_bb_employee",_s=`ro${C}ta_users${C}`,Os=(r=>(r[r.SQLITE=Rt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Os||{});var Ga=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Ga||{}),en=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(en||{}),Zd=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Zd||{}),ef=(c=>(c.SETTINGS="settings",c.ACCOUNT="account",c.SMTP="smtp",c.GOOGLE="google",c.OIDC="oidc",c.OIDC_LOGOS="logos_oidc",c.SCIM="scim",c.AI="AI",c))(ef||{}),Hy=new Date(-2147483647e3),Va=new Date(2147483647e3),ae="default";var Ro={};P(Ro,{CacheKey:()=>ye,TTL:()=>mn,bustCache:()=>li,destroy:()=>no,docWritethrough:()=>Rp,generic:()=>io,get:()=>hn,invite:()=>xp,keys:()=>Mu,passwordReset:()=>vp,store:()=>zt,user:()=>br,withCache:()=>wr,withCacheWithDynamicTTL:()=>ZS,workspace:()=>Ms,writethrough:()=>om});var Rp={};P(Rp,{DocWritethrough:()=>Dp,DocWritethroughProcessor:()=>ro,getProcessor:()=>dP,init:()=>XS});var wp={};P(wp,{BudibaseQueue:()=>Et,InMemoryQueue:()=>Ou,JobQueue:()=>oi,QueuedProcessor:()=>Ip,UnretriableError:()=>Uu,shutdown:()=>wv});var rf=require("crypto"),Ka=require("fs"),Jy=require("lodash"),Is=require("path");var Ib=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Is.resolve)((0,Is.join)(__dirname,"..","..","..")),Yy=!1;!Yy&&qa()&&!nf()&&(require("dotenv").config({path:(0,Is.join)(Ib,".env")}),Yy=!0);function nf(){return Xy()}s(nf,"isTest");function Xy(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(Xy,"isJest");function qa(){return process.env.NODE_ENV!=="production"}s(qa,"isDev");function wb(t){if(t)return parseInt(t)}s(wb,"parseIntSafe");var Hn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},zy=!!parseInt(process.env.SELF_HOSTED||"");function Db(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(Db,"getAPIEncryptionKey");function Rb(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(Rb,"httpLogging");function Cb(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Ka.existsSync)(l))return l;let d=`${c}/..`;return d===c?null:n(u,d)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Ka.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(qa()&&!nf())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(Cb,"getPackageJsonFields");function bb(){return pt.SERVICE_TYPE==="worker"}s(bb,"isWorker");function xb(){return pt.SERVICE_TYPE==="apps"}s(xb,"isApps");function vb(){return pt.BUDIBASE_ENVIRONMENT==="QA"}s(vb,"isQA");function Pb(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}s(Pb,"getServiceName");var pt={isTest:nf,isJest:Xy,isDev:qa,isWorker:bb,isApps:xb,isQA:vb,isProd:()=>!qa(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,rf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,rf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Db(),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_USERNAME:process.env.REDIS_USERNAME,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,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,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:zy,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||Hn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Hn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Hn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Hn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Hn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Hn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Pb(),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:Rb(),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:zy?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Cb(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,pt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,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:wb(process.env.BSON_BUFFER_SIZE),CUSTOM_CSP_MEDIA_SRC:process.env.CUSTOM_CSP_MEDIA_SRC,CUSTOM_CSP_SCRIPT_SRC:process.env.CUSTOM_CSP_SCRIPT_SRC,CUSTOM_CSP_CONNECT_SRC:process.env.CUSTOM_CSP_CONNECT_SRC,CUSTOM_CSP_IMG_SRC:process.env.CUSTOM_CSP_IMG_SRC,CUSTOM_CSP_FONT_SRC:process.env.CUSTOM_CSP_FONT_SRC,CUSTOM_CSP_FRAME_SRC:process.env.CUSTOM_CSP_FRAME_SRC,OPENROUTER_BASE_URL:process.env.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1"};function ws(t){let e=(0,Jy.cloneDeep)(pt),r;for(r in t)pt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))pt._set(n,i)}}s(ws,"setEnv");function Zy(t,e){let r=ws(t);try{let n=e();return n instanceof Promise?n.finally(r):(r(),n)}catch(n){throw r(),n}}s(Zy,"withEnv");var eT=["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","REDIS_PASSWORD","REDIS_USERNAME"];for(let[t,e]of Object.entries(pt))e==="0"&&(pt[t]=0),e==="false"&&(pt[t]=0);var g=pt;var Ha={};P(Ha,{Databases:()=>sf,SEPARATOR:()=>Yn,SelectableDatabase:()=>Qa,getRedisClusterOptions:()=>of,getRedisConnectionDetails:()=>ja,getRedisOptions:()=>tn,removeDbPrefix:()=>af});var Yn="-",sf=(O=>(O.PW_RESETS="pwReset",O.VERIFICATIONS="verification",O.INVITATIONS_LIST="invitationList",O.DEV_LOCKS="devLocks",O.DEBOUNCE="debounce",O.SESSIONS="session",O.USER_CACHE="users",O.FLAGS="flags",O.WORKSPACE_METADATA="appMetadata",O.QUERY_VARS="queryVars",O.LICENSES="license",O.GENERIC_CACHE="data_cache",O.WRITE_THROUGH="writeThrough",O.LOCKS="locks",O.SOCKET_IO="socket_io",O.BPM_EVENTS="bpmEvents",O.DOC_WRITE_THROUGH="docWriteThrough",O.RECAPTCHA_SESSION="recaptchaSession",O.OPENAPI_IMPORT_SPECS="openapiImportSpecs",O))(sf||{}),Qa=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",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))(Qa||{});function ja(){let t=g.REDIS_PASSWORD,e=g.REDIS_USERNAME,r=g.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");e=e||a[0]||void 0,t=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:t,username:e,port:isNaN(o)?6379:o}}s(ja,"getRedisConnectionDetails");function of(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...tn(),tls:{}}}}s(of,"getRedisClusterOptions");function tn(){let{host:t,password:e,port:r,username:n}=ja();return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n}}}s(tn,"getRedisOptions");function af(t){let e=t.split(Yn);return e.length>=2?(e.shift(),e.join(Yn)):e[0]}s(af,"removeDbPrefix");var hS=B(require("events"));var si={};P(si,{Duration:()=>pe,DurationType:()=>tp,GZIP_PREFIX:()=>_u,clearCookie:()=>Ar,compare:()=>lf,getBearerToken:()=>hv,getCookie:()=>jt,getDispatcher:()=>lv,getWorkspaceIdFromCtx:()=>un,gunzipFromBase64:()=>mv,gzipToBase64:()=>pv,hasCircularStructure:()=>rv,hash:()=>cf,isAudited:()=>Zf,isClient:()=>tv,isPublicApiRequest:()=>Zx,isServingApp:()=>zx,isServingBuilder:()=>Jx,isServingBuilderPreview:()=>Xx,isValidInternalAPIKey:()=>Ks,newid:()=>ee,openJwt:()=>Tu,setCookie:()=>mS,time:()=>iv,timeout:()=>Xf,urlHasProtocol:()=>nv,validEmail:()=>ep});var tT=require("uuid");function ee(){return(0,tT.v4)().replace(/-/g,"")}s(ee,"newid");var uf=require("bcrypt"),Nb=g.SALT_ROUNDS||10;async function cf(t){let e=await uf.genSalt(Nb);return uf.hash(t,e)}s(cf,"hash");async function lf(t,e){return uf.compare(t,e)}s(lf,"compare");var yu=B(require("jsonwebtoken"));var ue={};P(ue,{DEFAULT_TENANT_ID:()=>ae,baseGlobalDBName:()=>Ps,doInAutomationContext:()=>nx,doInContext:()=>Cf,doInEnvironmentContext:()=>mx,doInFeatureFlagOverrideContext:()=>Lf,doInIPContext:()=>vf,doInIdentityContext:()=>Rs,doInLicenseContext:()=>sx,doInScimContext:()=>hx,doInSelfHostTenantUsingCloud:()=>ix,doInTenant:()=>Ce,doInWorkspaceContext:()=>ux,doInWorkspaceMigrationContext:()=>lx,ensureSnippetContext:()=>ET,getAuditLogDBName:()=>hT,getAuditLogsDB:()=>Ex,getAutomationId:()=>bf,getCurrentContext:()=>sn,getDevWorkspaceDB:()=>Tx,getDevWorkspaceId:()=>fx,getEnvironmentVariables:()=>gx,getFeatureFlagOverrides:()=>Uf,getFeatureFlags:()=>Pf,getGlobalDB:()=>Y,getGlobalDBName:()=>nn,getIP:()=>xf,getIdentity:()=>Gt,getLicense:()=>ox,getOrThrowWorkspaceId:()=>dx,getPlatformURL:()=>Rf,getProdWorkspaceDB:()=>yx,getProdWorkspaceId:()=>px,getScimDBName:()=>Zb,getSelfHostCloudDB:()=>ax,getTableForView:()=>Sx,getTenantIDFromWorkspaceID:()=>Zn,getTenantId:()=>$,getWorkspaceDB:()=>ei,getWorkspaceId:()=>be,identity:()=>Ds,isMultiTenant:()=>Er,isScim:()=>gt,isSelfHostUsingCloud:()=>ru,isTenancyEnabled:()=>tx,isTenantIdSet:()=>ex,setFeatureFlags:()=>Nf,setTableForView:()=>Ax});var Ds={};P(Ds,{doInAccountContext:()=>Ub,doInIdentityContext:()=>ff,doInUserContext:()=>pf,getAccountUserId:()=>rT,getIdentity:()=>df});function df(){return Gt()}s(df,"getIdentity");function ff(t,e){return Rs(t,e)}s(ff,"doInIdentityContext");function pf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return ff(n,r)}s(pf,"doInUserContext");function Ub(t,e){let r=rT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return ff(i,e)}s(Ub,"doInAccountContext");function rT(t){let e;return Ko(t)?e=t.budibaseUserId:e=t.accountId,e}s(rT,"getAccountUserId");var mt=s(t=>{let e=mf(t),r,n;if(e.auth?.username)r=e.auth.username;else if(g.COUCH_DB_USERNAME)r=g.COUCH_DB_USERNAME;else if(!g.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(g.COUCH_DB_PASSWORD)n=g.COUCH_DB_PASSWORD;else if(!g.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=g.COUCH_DB_SQL_URL;if(g.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:mf(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),mf=s((t=g.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var fT=B(require("@budibase/nano"));var nT=B(require("node-fetch"));function za(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(za,"checkSlashesInUrl");async function iT(t,e="GET",r){let{url:n,cookie:i}=mt(),o=`${n}/${t}`;return await Cs({url:o,cookie:i,method:e,body:r})}s(iT,"directCouchCall");async function Cs({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,nT.default)(za(encodeURI(t)),i)}s(Cs,"directCouchUrlCall");async function hf(t,e="GET",r){let n=await iT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(hf,"directCouchQuery");var rn=B(require("pouchdb"));var sT,oT=!1,gf=s((t={})=>{let{url:e,cookie:r}=mt(),n={prefix:e,fetch:(i,o)=>(o.headers.set("Authorization",r),rn.default.fetch(i,o))};if(t.inMemory){let i=require("pouchdb-adapter-memory");rn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");rn.default.plugin(i.plugin),rn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");rn.default.plugin(i)}return rn.default.defaults(n)},"getPouch");function Ja(t){sT=gf(t),oT=!0}s(Ja,"init");var Lb=s(()=>{if(!oT)throw new Error("init has not been called")},"checkInitialised");function rt(t,e){Lb();let r=new sT(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(rt,"getPouchDB");async function bs(t){if(!(!t||g.isTest()))try{return await t.close()}catch{}}s(bs,"closePouchDB");var le=B(require("dd-trace"));var zn=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return le.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 le.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return le.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 le.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 le.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return le.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 le.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 le.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return le.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 le.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 le.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 le.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 le.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 le.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 le.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return le.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return le.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return le.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return le.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 le.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 le.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var If={};P(If,{breakExternalTableId:()=>Tf,breakRowIdField:()=>Hb,buildExternalTableId:()=>Gb,convertRowId:()=>jb,encodeTableId:()=>Vb,encodeViewId:()=>qb,extractDate:()=>Af,generateRowIdField:()=>Kb,getNativeSql:()=>Jn,isExternalTable:()=>yf,isExternalTableID:()=>Xa,isInternalTableID:()=>$b,isRowId:()=>Qb,isValidFilter:()=>eu,isValidISODateString:()=>Za,isValidISODateStringWithoutTimezone:()=>Sf,isValidTime:()=>_f,sqlLog:()=>xs,validateManyToMany:()=>Of});var Ef=`${C}${C}`,uT=/^\[.*]$/g,Mb=encodeURIComponent(" "),kb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Fb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Bb=/(\d{4}-\d{2}-\d{2})/,Wb=/^\d{1,2}:\d{2}(?:\.\d{1,6}|:\d{2}(?:\.\d{1,6})?)?$/;function Xa(t){return t.startsWith("datasource"+C)}s(Xa,"isExternalTableID");function $b(t){return!Xa(t)}s($b,"isInternalTableID");function Jn(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}}s(Jn,"getNativeSql");function yf(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==bn||t?.sourceType==="external"?!0:!!(t?._id&&Xa(t._id))}s(yf,"isExternalTable");function Gb(t,e){return`${t}${Ef}${encodeURIComponent(e)}`}s(Gb,"buildExternalTableId");function Vb(t){return Xa(t)?encodeURIComponent(t):t}s(Vb,"encodeTableId");function qb(t){return encodeURIComponent(t)}s(qb,"encodeViewId");function Tf(t){let e=t.split(Ef),r=e.shift(),n=e.join(Ef);if(n.includes(Mb)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(Tf,"breakExternalTableId");function Kb(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,"'"))}s(Kb,"generateRowIdField");function Qb(t){return Array.isArray(t)||typeof t=="string"&&t.match(uT)!=null}s(Qb,"isRowId");function jb(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(uT)!=null?t.substring(1,t.length-1):t}s(jb,"convertRowId");function Hb(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]}}s(Hb,"breakRowIdField");function Za(t){let e=t.trim();if(!kb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Za,"isValidISODateString");function Sf(t){let e=t.trim();if(!Fb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Sf,"isValidISODateStringWithoutTimezone");function Af(t){let e=t.match(Bb);if(e)return e[0]}s(Af,"extractDate");function eu(t){return t!=null&&t!==""}s(eu,"isValidFilter");function _f(t){return Wb.test(t)}s(_f,"isValidTime");function xs(t,e,r){if(!g.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(xs,"sqlLog");function Yb(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(Yb,"isValidManyToManyRelationship");function Of(t){if(Yb(t))return t}s(Of,"validateManyToMany");var cT="Database does not exist.";function lT(t){return(0,fT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(lT,"buildNano");var hr=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"}static{s(this,"CouchDBError")}};function zb(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Xn(t,r,e);return new zn(n)}s(zb,"DatabaseWithConnection");var Xn=class t{constructor(e,r,n){this.couchInfo=mt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=mt(n),this.instanceNano=lT(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=mt();t.nano=lT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Cs({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 hr(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===cT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new hr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new hr(`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}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(sh(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new hr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ee()),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===cT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=za(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await Cs(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new hr("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${Rt}`;return xs("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,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(Rt)){let e=await this.get(Rt);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 hr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return rt(this.name).dump(e,r)}async load(e){return rt(this.name).load(e)}async createIndex(e){return rt(this.name).createIndex(e)}async deleteIndex(e){return rt(this.name).deleteIndex(e)}async getIndexes(){return rt(this.name).getIndexes()}};function Re(t,e){return new zn(new Xn(t,e))}s(Re,"getDB");async function je(t,e,r){let n=Re(t,r);return await e(n)}s(je,"doWithDB");async function wf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await hf(e)}s(wf,"directCouchAllDbs");var Df="No app provided";function gr(t){if(!t)throw Df;return t.startsWith(tt)}s(gr,"isDevWorkspaceID");function Jb(t){if(!t)throw Df;return t.startsWith(et)&&!gr(t)}s(Jb,"isProdWorkspaceID");function vs(t){if(!t)throw Df;return gr(t.appId)}s(vs,"isDevWorkspace");function tu(t){if(!t||t.startsWith(tt))return t;let e=t.split(et);e.shift();let r=e.join(et);return`${tt}${r}`}s(tu,"getDevWorkspaceID");function He(t){if(!t||!t.startsWith(tt))return t;let e=t.split(tt);e.shift();let r=e.join(tt);return`${et}${r}`}s(He,"getProdWorkspaceID");var pT=require("async_hooks");var he=class t{static{s(this,"Context")}static{this.storage=new pT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var mT=null;function nn(t){return t||(t=$()),Ps(t)}s(nn,"getGlobalDBName");function hT(t){return t||(t=$()),t===ae?fe.AUDIT_LOGS.name:`${t}${C}${fe.AUDIT_LOGS.name}`}s(hT,"getAuditLogDBName");function Zb(t){return t||(t=$()),t===ae?fe.SCIM_LOGS.name:`${t}${C}${fe.SCIM_LOGS.name}`}s(Zb,"getScimDBName");function Ps(t){return!t||t===ae?fe.GLOBAL.name:`${t}${C}${fe.GLOBAL.name}`}s(Ps,"baseGlobalDBName");function Rf(){return g.PLATFORM_URL}s(Rf,"getPlatformURL");function Er(){return!!g.MULTI_TENANCY}s(Er,"isMultiTenant");function ex(){return!!he.get()?.tenantId}s(ex,"isTenantIdSet");function tx(){return g.MULTI_TENANCY}s(tx,"isTenancyEnabled");function Zn(t){if(!t)return;if(!Er())return ae;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(Zn,"getTenantIDFromWorkspaceID");function rx(t){let e;try{e=he.get()}catch{e={}}return e={...e,...t},e}s(rx,"updateContext");async function ht(t,e){cx();let r=rx(t);return he.run(r,e)}s(ht,"newContext");async function nx(t){return await ET(),await ht({tenantId:Zn(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(nx,"doInAutomationContext");async function Cf(t,e){let r=Zn(t);return ht({tenantId:r,appId:t},e)}s(Cf,"doInContext");async function Ce(t,e){return g.MULTI_TENANCY||(t=t||ae),ht(t?{tenantId:t}:{},e)}s(Ce,"doInTenant");async function ix(t,e){return ht({tenantId:t,isSelfHostUsingCloud:!0},e)}s(ix,"doInSelfHostTenantUsingCloud");async function sx(t,e){return ht({license:t},e)}s(sx,"doInLicenseContext");function ox(){return he.get()?.license}s(ox,"getLicense");function ru(){return!!he.get()?.isSelfHostUsingCloud}s(ru,"isSelfHostUsingCloud");function ax(){let t=he.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Re(fe.SELF_HOST_CLOUD.name)}s(ax,"getSelfHostCloudDB");async function ux(t,e){return gT(t,e)}s(ux,"doInWorkspaceContext");async function gT(t,e,r){if(!t)throw new Error("workspaceId is required");let n=Zn(t),i={appId:t,...r};return n&&(i.tenantId=n),ht(i,e)}s(gT,"_doInWorkspaceContext");async function Rs(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),ht(r,e)}s(Rs,"doInIdentityContext");function cx(){if(he.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(cx,"guardMigration");async function lx(t,e){return gT(t,e,{isMigrating:!0})}s(lx,"doInWorkspaceMigrationContext");function Gt(){try{return he.get()?.identity}catch{}}s(Gt,"getIdentity");function $(){if(!Er())return ae;let e=he.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s($,"getTenantId");function bf(){return he.get()?.automationId}s(bf,"getAutomationId");function be(){let e=he.get()?.appId;return!e&&g.isTest()&&mT?mT:e}s(be,"getWorkspaceId");function dx(){let t=be();if(!t)throw new Error("Workspace id not set");return t}s(dx,"getOrThrowWorkspaceId");function xf(){return he.get()?.ip}s(xf,"getIP");var fx=s(()=>{let t=be();if(!t)throw new Error("Could not get workspaceId");return tu(t)},"getDevWorkspaceId"),px=s(()=>{let t=be();if(!t)throw new Error("Could not get workspaceId");return He(t)},"getProdWorkspaceId");function mx(t,e){if(!t)throw new Error("Must supply environment variables.");return ht({environmentVariables:t},e)}s(mx,"doInEnvironmentContext");function hx(t){return ht({isScim:!0},t)}s(hx,"doInScimContext");function vf(t,e){return ht({ip:t},e)}s(vf,"doInIPContext");async function ET(){let t=sn();if(!t||t.snippets)return;let e,r=ei();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(ET,"ensureSnippetContext");function gx(){let t=he.get();return t.environmentVariables?t.environmentVariables:null}s(gx,"getEnvironmentVariables");function Y(){let t=he.get();if(!t||g.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 Re(Ps(t?.tenantId))}s(Y,"getGlobalDB");function Ex(){if(!$())throw new Error("No tenant ID found - cannot open audit log DB");return Re(hT())}s(Ex,"getAuditLogsDB");function ei(t){let e=be();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(ru())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return Re(e,t)}s(ei,"getWorkspaceDB");function yx(t){let e=be();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return Re(He(e),t)}s(yx,"getProdWorkspaceDB");function Tx(t){let e=be();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return Re(tu(e),t)}s(Tx,"getDevWorkspaceDB");function gt(){return!!he.get()?.isScim}s(gt,"isScim");function sn(){try{return he.get()}catch{return}}s(sn,"getCurrentContext");function Pf(t){let e=sn();if(e)return e.featureFlagCache?.[t]}s(Pf,"getFeatureFlags");function Nf(t,e){let r=sn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(Nf,"setFeatureFlags");function Uf(){return sn()?.featureFlagOverrides||{}}s(Uf,"getFeatureFlagOverrides");async function Lf(t,e){return await ht({featureFlagOverrides:t},e)}s(Lf,"doInFeatureFlagOverrideContext");function Sx(t){let e=sn();if(e)return e.viewToTableCache?.[t]}s(Sx,"getTableForView");function Ax(t,e){let r=sn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(Ax,"setTableForView");var Sr={};P(Sr,{AutomationViewMode:()=>Wa,BUDIBASE_DATASOURCE_TYPE:()=>Hd,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Xd,DEFAULT_EXPENSES_TABLE_ID:()=>Jd,DEFAULT_INVENTORY_TABLE_ID:()=>zd,DEFAULT_JOBS_TABLE_ID:()=>Yd,DatabaseImpl:()=>Xn,DatabaseWithConnection:()=>zb,DeprecatedViews:()=>jn,DesignDocuments:()=>Os,DocumentType:()=>ce,InternalTable:()=>Pt,QueryBuilder:()=>Qt,Replication:()=>oS,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>jd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Pe,USER_METADATA_PREFIX:()=>_s,ViewName:()=>$t,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et,baseGlobalDBName:()=>Ps,checkErrorCode:()=>lS,closePouchDB:()=>bs,createApiKeyView:()=>eS,createNewUserEmailView:()=>XT,createPlatformAccountEmailView:()=>rS,createPlatformUserView:()=>nS,createUserAppView:()=>ZT,createView:()=>ii,dbExists:()=>Fx,directCouchAllDbs:()=>wf,directCouchCall:()=>iT,directCouchQuery:()=>hf,directCouchUrlCall:()=>Cs,doWithDB:()=>je,fullSearch:()=>Vx,generateAIConfigID:()=>FT,generateAgentID:()=>PT,generateAgentToolSourceID:()=>LT,generateAppUserID:()=>gu,generateChatAppID:()=>NT,generateChatConversationID:()=>UT,generateDevInfoID:()=>bT,generateGlobalUserID:()=>ri,generateKnowledgeBaseFileID:()=>MT,generateKnowledgeBaseID:()=>VT,generateOAuth2LogID:()=>vT,generatePluginID:()=>xT,generateRoleID:()=>Gf,generateRowID:()=>$f,generateTableID:()=>IT,generateTemplateID:()=>CT,generateUserMetadataID:()=>DT,generateVectorDbID:()=>GT,generateWorkspaceAppID:()=>WT,generateWorkspaceFavouriteID:()=>$T,generateWorkspaceID:()=>OT,getAllDbs:()=>JT,getAllWorkspaces:()=>Fs,getCouchInfo:()=>mt,getDB:()=>Re,getDevWorkspaceID:()=>tu,getDevWorkspaceIDs:()=>Mx,getDocParams:()=>qt,getGlobalDBName:()=>nn,getGlobalIDFromUserMetadataID:()=>RT,getGlobalUserParams:()=>on,getLiteLLMKeyID:()=>BT,getOAuth2ConfigParams:()=>HT,getPluginParams:()=>jT,getPouch:()=>gf,getPouchDB:()=>rt,getProdWorkpaceIDs:()=>Lx,getProdWorkspaceID:()=>He,getQueryIndex:()=>qT,getRoleParams:()=>Eu,getRowParams:()=>Vf,getStartEndKeyURL:()=>ks,getTemplateParams:()=>QT,getUrlInfo:()=>mf,getUserMetadataParams:()=>KT,getUsersByWorkspaceParams:()=>ni,getWorkspaceAppParams:()=>YT,getWorkspaceFavouriteParams:()=>zT,getWorkspacesByIDs:()=>Ux,init:()=>Ja,isDevWorkspace:()=>vs,isDevWorkspaceID:()=>gr,isDocumentConflictError:()=>Kx,isGlobalUserID:()=>wT,isKnowledgeBaseFileID:()=>kT,isProdWorkspaceID:()=>Jb,isSameWorkspaceID:()=>kx,paginatedSearch:()=>Gx,pagination:()=>Kf,prefixRoleID:()=>Vt,queryGlobalView:()=>Kt,queryGlobalViewRaw:()=>$s,queryPlatformView:()=>Ws,queryView:()=>jf,queryViewRaw:()=>Bs,removeKeyNumbering:()=>Gs,searchIndexes:()=>Yf});var Ms={};P(Ms,{WorkspaceState:()=>Wf,getWorkspaceMetadata:()=>hu,invalidateWorkspaceMetadata:()=>vx});var Tr={};P(Tr,{getCacheClient:()=>kf,getDocWritethroughClient:()=>Rx,getInviteListClient:()=>Us,getLockClient:()=>Bf,getOpenapiImportSpecsClient:()=>wx,getPasswordResetClient:()=>Ls,getSessionClient:()=>yr,getSocketClient:()=>Dx,getUserClient:()=>Ns,getWorkspaceClient:()=>mu,getWritethroughClient:()=>Ff,init:()=>nt,shutdown:()=>AT});var iu=B(require("ioredis"));var nu=require("dd-trace"),TT=require("lodash");var yT;if(g.MOCK_REDIS)try{yT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function _x(t=0){return await nu.tracer.trace("Redis.init",async e=>{if(g.MOCK_REDIS)return e.addTags({mock:!0}),new yT(tn());let r;if(g.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=ja();r=new iu.Cluster([{host:n,port:i}],of())}else r=new iu.default(tn());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),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)})})})}s(_x,"init");function Ox(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",o=>o.forEach(a=>i.add(a))),t.on("error",o=>n(o)),t.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let u=await e.get(a);return u&&(u=JSON.parse(u)),{key:af(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(Ox,"promisifyStream");function Ix(t){return t.isCluster}s(Ix,"isCluster");var Mf=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await nu.tracer.trace("RedisWrapper.init",async n=>{let i=await _x(r);return r&&!g.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return nu.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Yn}${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}${Yn}${e}`;let n;Ix(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await Ox(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,TT.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}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((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.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)})}},De=Lf;var iu,su,ou,au,uu,ti,cu,lu,du,fu,TT;async function nt(){iu=await De.init("users"),su=await De.init("session"),ou=await De.init("appMetadata"),au=await De.init("data_cache"),uu=await De.init("openapiImportSpecs",3),cu=await De.init("locks"),ti=await De.init("writeThrough"),du=await De.init("invitationList"),fu=await De.init("pwReset"),lu=await De.init("socket_io",1),TT=await De.init("docWriteThrough")}s(nt,"init");async function ST(){await iu?.finish(),await su?.finish(),await ou?.finish(),await au?.finish(),await uu?.finish(),await ti?.finish(),await cu?.finish(),await du?.finish(),await fu?.finish(),await lu?.finish(),await TT?.finish()}s(ST,"shutdown");process.on("exit",async()=>{await ST()});async function vs(){return iu||await nt(),iu}s(vs,"getUserClient");async function yr(){return su||await nt(),su}s(yr,"getSessionClient");async function pu(){return ou||await nt(),ou}s(pu,"getWorkspaceClient");async function Mf(){return au||await nt(),au}s(Mf,"getCacheClient");async function Ox(){return uu||await nt(),uu}s(Ox,"getOpenapiImportSpecsClient");async function kf(){return ti||await nt(),ti}s(kf,"getWritethroughClient");async function Ff(){return cu||await nt(),cu}s(Ff,"getLockClient");async function Ix(){return lu||await nt(),lu}s(Ix,"getSocketClient");async function Ps(){return du||await nt(),du}s(Ps,"getInviteListClient");async function Ns(){return fu||await nt(),fu}s(Ns,"getPasswordResetClient");async function wx(){return ti||await nt(),ti}s(wx,"getDocWritethroughClient");var Bf=(e=>(e.INVALID="invalid",e))(Bf||{}),AT=3600,Dx=60;async function Rx(t){return je(t,e=>e.get("app_metadata"),{skip_setup:!0})}s(Rx,"populateFromDB");function Cx(t){return!t||t.state==="invalid"}s(Cx,"isInvalid");async function mu(t){let e=await pu(),r=await e.get(t);if(!r){let n=AT;try{r=await Rx(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=Dx;else throw i}if(Cx(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}s(mu,"getWorkspaceMetadata");async function bx(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await pu();await r.delete(t),e&&await r.store(t,e,AT)}s(bx,"invalidateWorkspaceMetadata");var Vf={};P(Vf,{generateAIConfigID:()=>kT,generateAgentFileID:()=>LT,generateAgentID:()=>vT,generateAgentToolSourceID:()=>UT,generateAppUserID:()=>hu,generateChatAppID:()=>PT,generateChatConversationID:()=>NT,generateDevInfoID:()=>CT,generateGlobalUserID:()=>ri,generateOAuth2LogID:()=>xT,generatePluginID:()=>bT,generateRoleID:()=>$f,generateRowID:()=>Wf,generateTableID:()=>OT,generateTemplateID:()=>RT,generateUserMetadataID:()=>wT,generateVectorDbID:()=>$T,generateWorkspaceAppID:()=>BT,generateWorkspaceFavouriteID:()=>WT,generateWorkspaceID:()=>_T,getDocParams:()=>Vt,getGlobalIDFromUserMetadataID:()=>DT,getGlobalUserParams:()=>on,getLiteLLMKeyID:()=>FT,getOAuth2ConfigParams:()=>QT,getPluginParams:()=>KT,getQueryIndex:()=>GT,getRoleParams:()=>gu,getRowParams:()=>Gf,getStartEndKeyURL:()=>Ls,getTemplateParams:()=>qT,getUserMetadataParams:()=>VT,getUsersByWorkspaceParams:()=>ni,getWorkspaceAppParams:()=>jT,getWorkspaceFavouriteParams:()=>HT,isAgentFileID:()=>MT,isGlobalUserID:()=>IT,prefixRoleID:()=>Gt});var _T=s(t=>{let e=et;return t&&(e+=`${t}${C}`),`${e}${ee()}`},"generateWorkspaceID");function OT(){return`ta${C}${ee()}`}s(OT,"generateTableID");function Wf(t,e){return e=e||ee(),`ro${C}${t}${C}${e}`}s(Wf,"generateRowID");function ri(t){return`us${C}${t||ee()}`}s(ri,"generateGlobalUserID");var xx=new RegExp(`^us${C}.+`);function IT(t){return xx.test(t)}s(IT,"isGlobalUserID");function wT(t){return Wf("ta_users",t)}s(wT,"generateUserMetadataID");function DT(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}s(DT,"getGlobalIDFromUserMetadataID");function RT(t){return`template${C}${t}${C}${ee()}`}s(RT,"generateTemplateID");function hu(t,e){return`${t}${C}${e}`}s(hu,"generateAppUserID");function $f(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}s($f,"generateRoleID");function Gt(t){return $f(t)}s(Gt,"prefixRoleID");var CT=s(t=>`devinfo${C}${t}`,"generateDevInfoID"),bT=s(t=>`plg${C}${t}`,"generatePluginID"),xT=s(t=>`oauth2log${C}${t}`,"generateOAuth2LogID"),vT=s(()=>`agent${C}${ee()}`,"generateAgentID"),PT=s(()=>`chatapp${C}${ee()}`,"generateChatAppID"),NT=s(()=>`chatconvo${C}${ee()}`,"generateChatConversationID"),UT=s(()=>`agenttoolsource${C}${ee()}`,"generateAgentToolSourceID"),LT=s(t=>`agentfile${C}${t}${C}${ee()}`,"generateAgentFileID"),vx=new RegExp(`^agentfile${C}.+`),MT=s(t=>vx.test(t),"isAgentFileID"),kT=s((t=ee())=>`aiconfig${C}${t}`,"generateAIConfigID"),FT=s(()=>`litellmkey${C}config`,"getLiteLLMKeyID"),BT=s(()=>`workspace_app${C}${ee()}`,"generateWorkspaceAppID"),WT=s(()=>`workspace_favourite${C}${ee()}`,"generateWorkspaceFavouriteID"),$T=s(()=>`vectordb${C}${ee()}`,"generateVectorDbID");function Vt(t,e,r={}){e==null&&(e="");let n=`${t}${C}${e}`,i=`${t}${C}${e}${Pe}`;return{startkey:n,endkey:i,...r}}s(Vt,"getDocParams");function Gf(t,e,r={}){if(t==null)return Vt("ro",null,r);let n=e??`${t}${C}`;return Vt("ro",n,r)}s(Gf,"getRowParams");function GT(t){return`database/${t}`}s(GT,"getQueryIndex");function on(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${Pe}`}}s(on,"getGlobalUserParams");function VT(t,e={}){return Gf("ta_users",t,e)}s(VT,"getUserMetadataParams");function ni(t,e={}){let r=He(t);return{...e,startkey:r,endkey:`${r}${Pe}`}}s(ni,"getUsersByWorkspaceParams");function qT(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${Pe}`}}s(qT,"getTemplateParams");function gu(t,e={}){return Vt("role",t,e)}s(gu,"getRoleParams");function Ls(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Pe}"`}s(Ls,"getStartEndKeyURL");var KT=s((t,e={})=>Vt("plg",t,e),"getPluginParams"),QT=s((t,e={})=>Vt("oauth2",t,e),"getOAuth2ConfigParams"),jT=s((t,e={})=>Vt("workspace_app",t,e),"getWorkspaceAppParams"),HT=s((t,e={})=>Vt("workspace_favourite",t,e),"getWorkspaceFavouriteParams");async function YT(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(o){let a=await If(o);r=r.concat(a)}s(n,"addDbs");let i=$();return!g.MULTI_TENANCY||!e&&i===ae?await n():(await n(Ls("app",i)),await n(Ls("app_dev",i)),r.push(nn(i))),r}s(YT,"getAllDbs");async function Ms({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=$();!g.MULTI_TENANCY&&!i&&(i=ae);let a=(await YT({efficient:n||!1})).filter(c=>{if(g.isTest()&&!c)return!1;let l=c.split(C);if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ae&&f||d===i}return!1});if(r){let c=a.filter(d=>gr(d)),l=a.filter(d=>!gr(d));switch(t){case!0:return c;case!1:return l;default:return a}}let u=a.map(c=>mu(c));if(u.length===0)return[];{let l=(await Promise.allSettled(u)).filter(d=>d.status==="fulfilled"&&d.value?.state!=="invalid").map(({value:d})=>d);return e?l.map(d=>({...d,status:bs(d)?"development":"published"})):l.filter(d=>t?bs(d):!bs(d))}}s(Ms,"getAllWorkspaces");async function Px(t){return(await Promise.allSettled(t.map(r=>mu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}s(Px,"getWorkspacesByIDs");async function Nx(){return(await Ms({idsOnly:!0})).filter(e=>!gr(e))}s(Nx,"getProdWorkpaceIDs");async function Ux(){return(await Ms({idsOnly:!0})).filter(e=>gr(e))}s(Ux,"getDevWorkspaceIDs");function Lx(t,e){return t==null||e==null?!1:He(t)===He(e)}s(Lx,"isSameWorkspaceID");async function Mx(t){return je(t,async e=>await e.exists(),{skip_setup:!0})}s(Mx,"dbExists");function qf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let o=t.length>e,a;return i||(i=s(u=>n?u?.[n]:u?._id,"getKey")),o&&(a=i(t[e])),{data:t.slice(0,e),hasNextPage:o,nextPage:a}}s(qf,"pagination");var Kf="_design/database";function kx(){return{_id:Kf,views:{}}}s(kx,"DesignDoc");async function Fx(t,e){if(jn[e])try{let r=await t.get(Kf);for(let n of jn[e])delete r.views?.[n];await t.put(r)}catch{}}s(Fx,"removeDeprecated");async function ii(t,e,r){let n;try{n=await t.get(Kf)}catch{n=kx()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(o){if(o.status===409)return await ii(t,e,r);throw o}}s(ii,"createView");var zT=s(async()=>{let t=Y(),e=`function(doc) {
9
+ `;await this.client.eval(i,1,this.prefixed(e),r)})}},De=Mf;var su,ou,au,uu,cu,ti,lu,du,fu,pu,ST;async function nt(){su=await De.init("users"),ou=await De.init("session"),au=await De.init("appMetadata"),uu=await De.init("data_cache"),cu=await De.init("openapiImportSpecs",3),lu=await De.init("locks"),ti=await De.init("writeThrough"),fu=await De.init("invitationList"),pu=await De.init("pwReset"),du=await De.init("socket_io",1),ST=await De.init("docWriteThrough")}s(nt,"init");async function AT(){await su?.finish(),await ou?.finish(),await au?.finish(),await uu?.finish(),await cu?.finish(),await ti?.finish(),await lu?.finish(),await fu?.finish(),await pu?.finish(),await du?.finish(),await ST?.finish()}s(AT,"shutdown");process.on("exit",async()=>{await AT()});async function Ns(){return su||await nt(),su}s(Ns,"getUserClient");async function yr(){return ou||await nt(),ou}s(yr,"getSessionClient");async function mu(){return au||await nt(),au}s(mu,"getWorkspaceClient");async function kf(){return uu||await nt(),uu}s(kf,"getCacheClient");async function wx(){return cu||await nt(),cu}s(wx,"getOpenapiImportSpecsClient");async function Ff(){return ti||await nt(),ti}s(Ff,"getWritethroughClient");async function Bf(){return lu||await nt(),lu}s(Bf,"getLockClient");async function Dx(){return du||await nt(),du}s(Dx,"getSocketClient");async function Us(){return fu||await nt(),fu}s(Us,"getInviteListClient");async function Ls(){return pu||await nt(),pu}s(Ls,"getPasswordResetClient");async function Rx(){return ti||await nt(),ti}s(Rx,"getDocWritethroughClient");var Wf=(e=>(e.INVALID="invalid",e))(Wf||{}),_T=3600,Cx=60;async function bx(t){return je(t,e=>e.get("app_metadata"),{skip_setup:!0})}s(bx,"populateFromDB");function xx(t){return!t||t.state==="invalid"}s(xx,"isInvalid");async function hu(t){let e=await mu(),r=await e.get(t);if(!r){let n=_T;try{r=await bx(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=Cx;else throw i}if(xx(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}s(hu,"getWorkspaceMetadata");async function vx(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await mu();await r.delete(t),e&&await r.store(t,e,_T)}s(vx,"invalidateWorkspaceMetadata");var qf={};P(qf,{generateAIConfigID:()=>FT,generateAgentID:()=>PT,generateAgentToolSourceID:()=>LT,generateAppUserID:()=>gu,generateChatAppID:()=>NT,generateChatConversationID:()=>UT,generateDevInfoID:()=>bT,generateGlobalUserID:()=>ri,generateKnowledgeBaseFileID:()=>MT,generateKnowledgeBaseID:()=>VT,generateOAuth2LogID:()=>vT,generatePluginID:()=>xT,generateRoleID:()=>Gf,generateRowID:()=>$f,generateTableID:()=>IT,generateTemplateID:()=>CT,generateUserMetadataID:()=>DT,generateVectorDbID:()=>GT,generateWorkspaceAppID:()=>WT,generateWorkspaceFavouriteID:()=>$T,generateWorkspaceID:()=>OT,getDocParams:()=>qt,getGlobalIDFromUserMetadataID:()=>RT,getGlobalUserParams:()=>on,getLiteLLMKeyID:()=>BT,getOAuth2ConfigParams:()=>HT,getPluginParams:()=>jT,getQueryIndex:()=>qT,getRoleParams:()=>Eu,getRowParams:()=>Vf,getStartEndKeyURL:()=>ks,getTemplateParams:()=>QT,getUserMetadataParams:()=>KT,getUsersByWorkspaceParams:()=>ni,getWorkspaceAppParams:()=>YT,getWorkspaceFavouriteParams:()=>zT,isGlobalUserID:()=>wT,isKnowledgeBaseFileID:()=>kT,prefixRoleID:()=>Vt});var OT=s(t=>{let e=et;return t&&(e+=`${t}${C}`),`${e}${ee()}`},"generateWorkspaceID");function IT(){return`ta${C}${ee()}`}s(IT,"generateTableID");function $f(t,e){return e=e||ee(),`ro${C}${t}${C}${e}`}s($f,"generateRowID");function ri(t){return`us${C}${t||ee()}`}s(ri,"generateGlobalUserID");var Px=new RegExp(`^us${C}.+`);function wT(t){return Px.test(t)}s(wT,"isGlobalUserID");function DT(t){return $f("ta_users",t)}s(DT,"generateUserMetadataID");function RT(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}s(RT,"getGlobalIDFromUserMetadataID");function CT(t){return`template${C}${t}${C}${ee()}`}s(CT,"generateTemplateID");function gu(t,e){return`${t}${C}${e}`}s(gu,"generateAppUserID");function Gf(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}s(Gf,"generateRoleID");function Vt(t){return Gf(t)}s(Vt,"prefixRoleID");var bT=s(t=>`devinfo${C}${t}`,"generateDevInfoID"),xT=s(t=>`plg${C}${t}`,"generatePluginID"),vT=s(t=>`oauth2log${C}${t}`,"generateOAuth2LogID"),PT=s(()=>`agent${C}${ee()}`,"generateAgentID"),NT=s(()=>`chatapp${C}${ee()}`,"generateChatAppID"),UT=s(()=>`chatconvo${C}${ee()}`,"generateChatConversationID"),LT=s(()=>`agenttoolsource${C}${ee()}`,"generateAgentToolSourceID"),MT=s(t=>`knowledgebasefile${C}${t}${C}${ee()}`,"generateKnowledgeBaseFileID"),Nx=new RegExp(`^knowledgebasefile${C}.+`),kT=s(t=>Nx.test(t),"isKnowledgeBaseFileID"),FT=s((t=ee())=>`aiconfig${C}${t}`,"generateAIConfigID"),BT=s(()=>`litellmkey${C}config`,"getLiteLLMKeyID"),WT=s(()=>`workspace_app${C}${ee()}`,"generateWorkspaceAppID"),$T=s(()=>`workspace_favourite${C}${ee()}`,"generateWorkspaceFavouriteID"),GT=s(()=>`vectordb${C}${ee()}`,"generateVectorDbID"),VT=s(()=>`knowledgebase${C}${ee()}`,"generateKnowledgeBaseID");function qt(t,e,r={}){e==null&&(e="");let n=`${t}${C}${e}`,i=`${t}${C}${e}${Pe}`;return{startkey:n,endkey:i,...r}}s(qt,"getDocParams");function Vf(t,e,r={}){if(t==null)return qt("ro",null,r);let n=e??`${t}${C}`;return qt("ro",n,r)}s(Vf,"getRowParams");function qT(t){return`database/${t}`}s(qT,"getQueryIndex");function on(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${Pe}`}}s(on,"getGlobalUserParams");function KT(t,e={}){return Vf("ta_users",t,e)}s(KT,"getUserMetadataParams");function ni(t,e={}){let r=He(t);return{...e,startkey:r,endkey:`${r}${Pe}`}}s(ni,"getUsersByWorkspaceParams");function QT(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${Pe}`}}s(QT,"getTemplateParams");function Eu(t,e={}){return qt("role",t,e)}s(Eu,"getRoleParams");function ks(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Pe}"`}s(ks,"getStartEndKeyURL");var jT=s((t,e={})=>qt("plg",t,e),"getPluginParams"),HT=s((t,e={})=>qt("oauth2",t,e),"getOAuth2ConfigParams"),YT=s((t,e={})=>qt("workspace_app",t,e),"getWorkspaceAppParams"),zT=s((t,e={})=>qt("workspace_favourite",t,e),"getWorkspaceFavouriteParams");async function JT(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(o){let a=await wf(o);r=r.concat(a)}s(n,"addDbs");let i=$();return!g.MULTI_TENANCY||!e&&i===ae?await n():(await n(ks("app",i)),await n(ks("app_dev",i)),r.push(nn(i))),r}s(JT,"getAllDbs");async function Fs({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=$();!g.MULTI_TENANCY&&!i&&(i=ae);let a=(await JT({efficient:n||!1})).filter(c=>{if(g.isTest()&&!c)return!1;let l=c.split(C);if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ae&&f||d===i}return!1});if(r){let c=a.filter(d=>gr(d)),l=a.filter(d=>!gr(d));switch(t){case!0:return c;case!1:return l;default:return a}}let u=a.map(c=>hu(c));if(u.length===0)return[];{let l=(await Promise.allSettled(u)).filter(d=>d.status==="fulfilled"&&d.value?.state!=="invalid").map(({value:d})=>d);return e?l.map(d=>({...d,status:vs(d)?"development":"published"})):l.filter(d=>t?vs(d):!vs(d))}}s(Fs,"getAllWorkspaces");async function Ux(t){return(await Promise.allSettled(t.map(r=>hu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}s(Ux,"getWorkspacesByIDs");async function Lx(){return(await Fs({idsOnly:!0})).filter(e=>!gr(e))}s(Lx,"getProdWorkpaceIDs");async function Mx(){return(await Fs({idsOnly:!0})).filter(e=>gr(e))}s(Mx,"getDevWorkspaceIDs");function kx(t,e){return t==null||e==null?!1:He(t)===He(e)}s(kx,"isSameWorkspaceID");async function Fx(t){return je(t,async e=>await e.exists(),{skip_setup:!0})}s(Fx,"dbExists");function Kf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let o=t.length>e,a;return i||(i=s(u=>n?u?.[n]:u?._id,"getKey")),o&&(a=i(t[e])),{data:t.slice(0,e),hasNextPage:o,nextPage:a}}s(Kf,"pagination");var Qf="_design/database";function Bx(){return{_id:Qf,views:{}}}s(Bx,"DesignDoc");async function Wx(t,e){if(jn[e])try{let r=await t.get(Qf);for(let n of jn[e])delete r.views?.[n];await t.put(r)}catch{}}s(Wx,"removeDeprecated");async function ii(t,e,r){let n;try{n=await t.get(Qf)}catch{n=Bx()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(o){if(o.status===409)return await ii(t,e,r);throw o}}s(ii,"createView");var XT=s(async()=>{let t=Y(),e=`function(doc) {
10
10
  if (doc._id.startsWith("us${C}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await ii(t,e,"by_email2")},"createNewUserEmailView"),JT=s(async()=>{let t=Y(),e=`function(doc) {
13
+ }`;await ii(t,e,"by_email2")},"createNewUserEmailView"),ZT=s(async()=>{let t=Y(),e=`function(doc) {
14
14
  if (doc._id.startsWith("us${C}") && doc.roles) {
15
15
  for (let prodWorkspaceId of Object.keys(doc.roles)) {
16
16
  let emitted = prodWorkspaceId + "${C}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await ii(t,e,"by_app")},"createUserAppView"),ZT=s(async()=>{let t=Y(),e=`function(doc) {
20
+ }`;await ii(t,e,"by_app")},"createUserAppView"),eS=s(async()=>{let t=Y(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await ii(t,e,"by_api_key")},"createApiKeyView");async function ks(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await Fx(r,t),await n(),ks(t,e,r,n,i);if(o.status===409)return ks(t,e,r,n,i);throw o}}s(ks,"queryViewRaw");var Qf=s(async(t,e,r,n,i)=>{let u=(await ks(t,e,r,n,i)).rows.map(c=>e.include_docs?c.doc:c.value);return i?.arrayResponse?u:u.length<=1?u[0]:u},"queryView");async function XT(t,e){try{await je(fe.PLATFORM_INFO.name,async r=>{await ii(r,t,e)})}catch(r){if(r.status===409&&g.isTest())return;throw r}}s(XT,"createPlatformView");var eS=s(async()=>{let t=`function(doc) {
24
+ }`;await ii(t,e,"by_api_key")},"createApiKeyView");async function Bs(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await Wx(r,t),await n(),Bs(t,e,r,n,i);if(o.status===409)return Bs(t,e,r,n,i);throw o}}s(Bs,"queryViewRaw");var jf=s(async(t,e,r,n,i)=>{let u=(await Bs(t,e,r,n,i)).rows.map(c=>e.include_docs?c.doc:c.value);return i?.arrayResponse?u:u.length<=1?u[0]:u},"queryView");async function tS(t,e){try{await je(fe.PLATFORM_INFO.name,async r=>{await ii(r,t,e)})}catch(r){if(r.status===409&&g.isTest())return;throw r}}s(tS,"createPlatformView");var rS=s(async()=>{let t=`function(doc) {
25
25
  if (doc._id.startsWith("acc_metadata${C}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await XT(t,"account_by_email")},"createPlatformAccountEmailView"),tS=s(async()=>{await XT(`function(doc) {
28
+ }`;await tS(t,"account_by_email")},"createPlatformAccountEmailView"),nS=s(async()=>{await tS(`function(doc) {
29
29
  if (doc.tenantId) {
30
30
  emit(doc._id.toLowerCase(), doc._id)
31
31
  }
@@ -33,7 +33,7 @@ attempted value: ${o}
33
33
  if (doc.ssoId) {
34
34
  emit(doc.ssoId, doc._id)
35
35
  }
36
- }`,"platform_users_lowercase_2")},"createPlatformUserView"),Fs=s(async(t,e)=>{let r={account_by_email:eS,platform_users_lowercase_2:tS};return je(fe.PLATFORM_INFO.name,async n=>{let i=r[t];return Qf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),rS={by_email2:zT,by_api_key:ZT,by_app:JT},qt=s(async(t,e,r,n)=>{r||(r=Y());let i=rS[t];return Qf(t,e,r,i,n)},"queryGlobalView");async function Bs(t,e,r){let n=Y(),i=rS[t];return ks(t,e,n,i,r)}s(Bs,"queryGlobalViewRaw");var Bx=B(require("pouchdb"));var nS=require("dd-trace");var jf=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=rt(e),this.target=rt(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([Rs(this.source),Rs(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})})}async resolveInconsistencies(e){for(let r of e)try{let[n,i]=await Promise.all([this.source.get(r),this.target.get(r)]),o=this.replicationDelta(n,i);if(o<0||o===0&&n._rev===i._rev)continue;let a=o+1;await nS.tracer.trace("Replication.resolveInconsistencies",async u=>{u.addTags({versionsToJump:a,toFix:!0,id:r,sourceRev:n._rev,targetRev:i._rev});for(let c=0;c<a;c++){let l=await this.source.get(i._id);await this.source.put(l)}})}catch{console.warn("Cannot resolve inconsistencies for document",r)}}replicationDelta(e,r){let n=this.getRevisionNumber(e);return this.getRevisionNumber(r)-n}getRevisionNumber(e){return parseInt(e._rev?.split("-")[0]||"0")}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,n=this.direction,i=n==="toDev";delete e.filter;let o=e.isCreation,a=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let u=!1,c;typeof a=="string"&&a==="all"?u=!0:a&&(c=a);let l=s((f,h)=>f?.startsWith(h+C),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:(f,h)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,Ss)?!0:n==="toProduction"&&!o&&l(f._id,"autocolumn_state")?!1:d(f._id)?!!c?.find(p=>f._id.includes(p))||u:l(f._id,"log_au")||f._id==="app_metadata"?!1:r?r(f,h):!0}}async rollback(){await this.target.destroy(),this.target=rt(this.target.name),await this.replicate()}},iS=jf;var oS=B(require("node-fetch"));var Ws=mr.removeKeyNumbering;function an(t){return t==null||t===""}s(an,"isEmpty");var Kt=class t{static{s(this,"QueryBuilder")}#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#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.#f=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:o}={}){let a=!!this.#f,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="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 o of Object.keys(e)){let a=Ws(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#e.equal.tableId&&(a=this.#e.equal.tableId,delete this.#e.equal.tableId);let u=s((S,m)=>an(m)?null:`${S}:${e.preprocess(m,o)}`,"equal"),c=s((S,m,E="AND")=>{if(an(m))return null;if(!Array.isArray(m))return`${S}:${m}`;let y=`${e.preprocess(m[0],{escape:!0})}`;for(let I=1;I<m.length;I++)y+=` ${E} ${e.preprocess(m[I],{escape:!0})}`;return`${S}:(${y})`},"contains"),l=s((S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"fuzzy"}),`${S}:/.*${m}.*/`),"fuzzy"),d=s((S,m)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+c(S,m,y)},"notContains"),f=s((S,m)=>c(S,m,"OR"),"containsAny"),h=s((S,m)=>{if(an(m))return"*:*";if(!Array.isArray(m))if(typeof m=="string")m=m.split(",");else return"";let E=`${e.preprocess(m[0],o)}`;for(let y=1;y<m.length;y++)E+=` OR ${e.preprocess(m[y],o)}`;return`${S}:(${E})`},"oneOf");function p(S,m,E){let y="";for(let[I,O]of Object.entries(S)){I=Ws(I),I=e.preprocess(e.handleSpaces(I),{escape:!0});let w=m(I,O);if(w!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=w,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==a&&O!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(s(p,"build"),this.#e.string&&p(this.#e.string,(S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"string"}),`${S}:${m}*`)),this.#e.range&&p(this.#e.range,(S,m)=>{if(an(m)||m.low==null||m.low===""||m.high==null||m.high==="")return null;let E=e.preprocess(m.low,o),y=e.preprocess(m.high,o);return`${S}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,l),this.#e.equal&&p(this.#e.equal,u),this.#e.notEqual&&p(this.#e.notEqual,(S,m)=>an(m)?null:typeof m=="boolean"?`(*:* AND !${S}:${m})`:`!${S}:${e.preprocess(m,o)}`),this.#e.empty&&p(this.#e.empty,S=>(i=!1,`(*:* -${S}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,S=>(i=!1,`${S}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,h),this.#e.contains&&p(this.#e.contains,c),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&p(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:a},u)),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.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=mt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await sS(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await sS(n,i,r);throw o}}};async function sS(t,e,r){let n=await(0,oS.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),o={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(o.rows=i.rows.map(a=>a.doc)),i.bookmark&&(o.bookmark=i.bookmark),i.total_rows&&(o.totalRows=i.total_rows),o}s(sS,"runQuery");async function aS(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Kt.maxLimit;n.limit&&o.length>n.limit-Kt.maxLimit&&(a=n.limit-o.length);let u=new Kt(t,e,r);u.setVersion(n.version).setBookmark(i).setLimit(a).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&u.setTable(n.tableId);let c=await u.run();if(!c.rows.length)return o;if(c.rows.length<Kt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await aS(t,e,r,l)}s(aS,"recursiveSearch");async function Wx(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Kt.maxLimit);let o=new Kt(t,e,r);n.version&&o.setVersion(n.version),n.tableId&&o.setTable(n.tableId),n.sort&&o.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&o.setIndexBuilder(n.indexer),n.disableEscaping&&o.disableEscaping();let a=await o.setBookmark(n.bookmark).setLimit(i).run();o.setBookmark(a.bookmark).setLimit(1),n.tableId&&o.setTable(n.tableId);let u=await o.run();return{...a,hasNextPage:u.rows&&u.rows.length>0}}s(Wx,"paginatedSearch");async function $x(t,e,r,n){let i=n.limit;return(i==null||isNaN(i)||i<0)&&(i=1e3),n.limit=Math.min(i,1e3),{rows:await aS(t,e,r,n)}}s($x,"fullSearch");var Hf={};P(Hf,{createUserIndex:()=>Gx});async function Gx(){let t=Y(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=s(function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function o(a,u){for(let c of Object.keys(a)){if(i.includes(c))continue;let l=u!=null?`${u}.${c}`:c;typeof a[c]=="string"?index(l,a[c].toLowerCase(),{facet:!0}):typeof a[c]!="object"?index(l,a[c],{facet:!0}):o(a[c],l)}}s(o,"idx"),o(n)},"fn");e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}s(Gx,"createUserIndex");function uS(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)}s(uS,"checkErrorCode");function Vx(t){return uS(t,409)}s(Vx,"isDocumentConflictError");var Gs={};P(Gs,{addTenantToUrl:()=>qx,getTenantDB:()=>Yf,getTenantIDFromCtx:()=>$s,isUserInWorkspaceTenant:()=>Kx});function Yf(t){return Re(nn(t))}s(Yf,"getTenantDB");function qx(t){let e=$();if(Er()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(qx,"addTenantToUrl");var Kx=s((t,e)=>{let r;return e?r=e.tenantId||ae:r=$(),(Xn(t)||ae)===r},"isUserInWorkspaceTenant"),Qx=Object.values(Di),$s=s((t,e)=>{if(!Er())return ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=Qx),e.excludeStrategies||(e.excludeStrategies=[]);let r=s(n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0},"isAllowed");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(Df()).host.split(":")[0]}catch(o){if(o.code!=="ERR_INVALID_URL")throw o}let i=t.host;if(n&&i.includes(n)){let o=i.substring(0,i.indexOf(`.${n}`));if(o)return o}}if(r("path")){let n=t.matched.find(a=>!!a.paramNames.find(u=>u.name==="tenantId")),i=t.originalUrl,o;if(i.includes("?")?o=i.split("?")[0]:o=i,n){let a=n.params(o,n.captures(o),{});if(a.tenantId)return a.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")},"getTenantIDFromCtx");var zf="app"+C,cS="/app/",lS="/app-chat/";async function jx(t){let r=t.path.split("/")[2];if(!r)return;let n=`/${r.toLowerCase()}`,i=$();!g.isDev()&&g.MULTI_TENANCY&&(i=$s(t,{includeStrategies:["subdomain"]}));let a=(await Ce(i,()=>Ms({dev:!1}))).filter(u=>u.url&&u.url.toLowerCase()===n)[0];return a&&a.appId?a.appId:void 0}s(jx,"resolveAppUrl");function Hx(t){return t.path.startsWith(`/${zf}`)?!0:t.path.startsWith(cS)||t.path.startsWith(lS)}s(Hx,"isServingApp");function Yx(t){return t.path.startsWith("/builder/workspace/")}s(Yx,"isServingBuilder");function zx(t){return dS(t.path)}s(zx,"isServingBuilderPreview");function dS(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(dS,"isBuilderPreviewUrl");function Jx(t){return t.path.startsWith("/api/public/v")}s(Jx,"isPublicApiRequest");async function un(t){let e;function r(u){u&&u.startsWith(zf)&&(e&&e!==u&&t.throw("App id conflict",403),e=u)}s(r,"setWorkspaceIdIfValid");function n(u){if(u){typeof u=="string"&&(u=[u]);for(let c of u)r(c)}}s(n,"checkPossibleValues"),n(t.request.headers["x-budibase-app-id"]),r(t.request.body?.appId);let i=Zx(t.path);r(i),n(t.query?.appId);let o=dS(t.path);return(t.path.startsWith(cS)||t.path.startsWith(lS))&&!o&&r(await jx(t)),e}s(un,"getWorkspaceIdFromCtx");function Zx(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(zf))}s(Zx,"parseWorkspaceIdFromUrlPath");function yu(t){if(t)try{return Eu.default.verify(t,g.JWT_SECRET)}catch(e){if(g.JWT_SECRET_FALLBACK)return Eu.default.verify(t,g.JWT_SECRET_FALLBACK);throw e}}s(yu,"openJwt");function Vs(t){return g.INTERNAL_API_KEY&&g.INTERNAL_API_KEY===t?!0:!!(g.INTERNAL_API_KEY_FALLBACK&&g.INTERNAL_API_KEY_FALLBACK===t)}s(Vs,"isValidInternalAPIKey");function Qt(t,e){let r=t.cookies.get(e);if(r)return yu(r)}s(Qt,"getCookie");function fS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Eu.default.sign(e,g.JWT_SECRET));let i={expires:Ga,path:"/",httpOnly:!1,overwrite:!0};g.COOKIE_DOMAIN&&(i.domain=g.COOKIE_DOMAIN),t.cookies.set(r,e,i)}s(fS,"setCookie");function Ar(t,e){fS(t,null,e)}s(Ar,"clearCookie");function Xx(t){return t.headers["x-budibase-type"]==="client"}s(Xx,"isClient");function Jf(t){return new Promise(e=>setTimeout(e,t))}s(Jf,"timeout");function Zf(t){return!!th[t]}s(Zf,"isAudited");function ev(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}s(ev,"hasCircularStructure");function tv(t){return!!t.match(/^.+:\/\/.+$/)}s(tv,"urlHasProtocol");function Xf(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,}))$/)}s(Xf,"validEmail");var ep=(o=>(o.MILLISECONDS="milliseconds",o.SECONDS="seconds",o.MINUTES="minutes",o.HOURS="hours",o.DAYS="days",o))(ep||{}),Tu={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},pe=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/Tu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Tu[e]/Tu[r]}static from(e,r){return new t(r*Tu[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 rv(t){let e=performance.now();return[await t(),pe.fromMilliseconds(performance.now()-e)]}s(rv,"time");var Su=require("undici");function nv(t,e){let r,n=null;try{let o=new URL(t);r=o.hostname,n=o.port||null}catch{return!1}let i=e.split(/[\s,]+/).filter(o=>o.length>0);for(let o of i){let u=o.replace(/^\./,"*").match(/^(.+?)(?::(\d+))?$/);if(!u||!u[1])continue;let c=u[1].toLowerCase(),l=u[2]||null,d=!1;if(c==="*")d=!0;else if(c.startsWith("*")){let h=c.slice(1);d=r===h.slice(1)||r.endsWith(h)}else d=r===c;if(d&&(!l||n===l))return!0}return!1}s(nv,"isUrlMatchingNoProxy");function iv(t){let e=process.env.GLOBAL_AGENT_HTTP_PROXY||process.env.HTTP_PROXY,n=process.env.GLOBAL_AGENT_HTTPS_PROXY||process.env.HTTPS_PROXY||e;if(!n||!n.trim())return!0;try{new URL(n.trim())}catch{return console.log("[fetch] Invalid proxy URL format:",n),!0}if(t){let i=process.env.GLOBAL_AGENT_NO_PROXY||process.env.NO_PROXY||"";if(i&&nv(t,i))return console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy",{url:t,noProxy:i}),!0}return!1}s(iv,"shouldBypassProxy");function sv(t){return new Su.Agent({connect:{rejectUnauthorized:t}})}s(sv,"createDirectAgent");function ov(t){let e=process.env.GLOBAL_AGENT_HTTP_PROXY||process.env.HTTP_PROXY,n=(process.env.GLOBAL_AGENT_HTTPS_PROXY||process.env.HTTPS_PROXY||e).trim();console.log("[fetch] Creating ProxyAgent",{proxyUrl:n,rejectUnauthorized:t});let i={uri:n,requestTls:{rejectUnauthorized:t}};return n.startsWith("https://")&&(i.proxyTls={rejectUnauthorized:t}),new Su.ProxyAgent(i)}s(ov,"createProxyAgent");function av(t){let e=t?.rejectUnauthorized??!0;return iv(t?.url)?sv(e):ov(e)}s(av,"createDispatcher");function uv(t){return av(t)}s(uv,"getDispatcher");var tp=require("util"),rp=B(require("zlib"));var cv=(0,tp.promisify)(rp.default.gzip),lv=(0,tp.promisify)(rp.default.gunzip),Au="gzip:",dv=s(async t=>{let e=await cv(t);return`${Au}${e.toString("base64")}`},"gzipToBase64"),fv=s(async t=>{let e=t.startsWith(Au)?t.slice(Au.length):t,r=Buffer.from(e,"base64");return(await lv(new Uint8Array(r))).toString("utf8")},"gunzipFromBase64");function pv(t){let e=t.get("authorization");if(!e)return null;let r=e.match(/^Bearer\s+(.+)$/i);return r?r[1]:null}s(pv,"getBearerToken");function mv(t){let e="",r=-1,n,i,o=t.opts?.repeat;return o&&(i=o.endDate?new Date(o.endDate).getTime():Date.now(),n=o.tz,"cron"in o?e=o.cron:r=o.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}s(mv,"jobToJobInformation");var _u=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new pS.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((c,l)=>{r(n,s((f,h)=>{f?l(f):c(h)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await Ue.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}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 o=ee(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{c._isDiscarded=!0}};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:()=>new Promise((c,l)=>{let d=s((h,p)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(p))},"errorHandler"),f=s((h,p)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(p))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)})}}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=>mv(e))}async whenCurrentJobsFinished(){do await Jf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},mS=_u;var sp=B(require("bull"));var oi=(l=>(l.AUTOMATION="automationQueue",l.APP_BACKUP="appBackupQueue",l.AUDIT_LOG="auditLogQueue",l.SYSTEM_EVENT_QUEUE="systemEventQueue",l.APP_MIGRATION="appMigration",l.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",l.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",l.BATCH_USER_SYNC_PROCESSOR="batchUserSyncProcessorQueue",l.RAG_INGESTION="ragIngestionQueue",l))(oi||{});function hS(t,e,r){Ev(t,e),r&&hv(t,r)}s(hS,"addListeners");function hv(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 o of i)o.id===n&&await t.removeRepeatableByKey(o.key);console.log(`jobId=${n} disabled`)}})}s(hv,"handleStalled");function it(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(it,"getLogParams");var gv={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event",batchUserSyncProcessorQueue:"batch-user-sync-processor",ragIngestionQueue:"rag-ingestion-processor"};function Ev(t,e){let r=gv[e];function n(i,o){let a=i.data.event?.appId;if(a)return Rf(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...it(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...it(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...it(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...it(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...it(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...it(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...it(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...it(r,"paused"))}).on("resumed",()=>{console.info(...it(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...it(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...it(r,"drained"))}).on("removed",i=>{console.info(...it(r,"removed",{job:i}))})}s(Ev,"logging");var Ou={};P(Ou,{cleanup:()=>yv,clear:()=>ip,set:()=>np});var qs=[];function np(t,e){let r=setInterval(t,e);return qs.push(r),r}s(np,"set");function ip(t){let e=qs.indexOf(t);e!==-1&&qs.splice(e,1),clearInterval(t)}s(ip,"clear");function yv(){for(let t of qs)clearInterval(t);qs=[]}s(yv,"cleanup");var jt=B(require("dd-trace")),Ks=B(require("object-sizeof"));var Tv=pe.fromMinutes(5).toMs(),Sv=pe.fromSeconds(30).toMs(),op=pe.fromSeconds(60).toMs(),Qs=[],Iu;async function gS(){for(let t of Qs)await t.clean(op,"completed"),await t.clean(op,"failed")}s(gS,"cleanup");async function Av(t,e,r){let n=performance.now();try{let i=await e();return jt.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw jt.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;jt.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),jt.default.dogstatsd.increment(t,1,r)}}s(Av,"withMetrics");function ES(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}}s(ES,"jobOptsTags");function _v(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Ks.default)(t.data),...ES(t.opts||{})}}s(_v,"jobTags");var Et=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:tn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:Tv,lockRenewTime:Sv}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return g.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new sp.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new mS(this.jobQueue,r):n=new sp.default(this.jobQueue,r),hS(n,this.jobQueue,this.opts.removeStalledCb),Qs.push(n),!Iu&&!g.isTest()&&(Iu=np(gS,op),gS().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=s(async(a,u)=>{await jt.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:()=>l.traceId,toSpanId:()=>l.spanId,toTraceparent:()=>""};c.addLink(d)}c.addTags({"queue.name":this.jobQueue,..._v(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),jt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Ks.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await jt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Ks.default)(e),...ES(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},jt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Ks.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return Av(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function Ov(){Iu&&ip(Iu),console.log("Waiting for current queue jobs to finish...");for(let t of Qs)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Qs)await t.close();Qs=[],console.log("Queues shutdown")}s(Ov,"shutdown");var Xs={};P(Xs,{correlation:()=>js,logAlert:()=>dn,logAlertWithInfo:()=>aP,logWarn:()=>ci,logger:()=>Pu,system:()=>Ap});var js={};P(js,{getId:()=>ap,setHeader:()=>Iv});var yS=require("correlation-id"),Iv=s(t=>{let e=yS.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function ap(){return yS.getId()}s(ap,"getId");var vu=B(require("pino")),HS=B(require("pino-pretty")),_p=B(require("dd-trace")),YS=require("dd-trace/ext");var Ap={};P(Ap,{getLogReadStream:()=>tP,getSingleFileMaxSizeInfo:()=>jS,localFileDestination:()=>Sp});var Zs=B(require("fs")),Tp=B(require("path")),VS=B(require("rotating-file-stream"));var yp={};P(yp,{ObjectStore:()=>st,ObjectStoreBuckets:()=>Dv,SIGNED_FILE_PREFIX:()=>mp,bucketTTLConfig:()=>wu,budibaseTempDir:()=>cn,client3rdPartyLibrary:()=>Hv,clientLibraryPath:()=>jv,clientLibraryUrl:()=>Yv,createBucketIfNotExists:()=>Js,deleteFile:()=>Fv,deleteFiles:()=>Bv,deleteFolder:()=>vS,downloadTarball:()=>$v,downloadTarballDirect:()=>Wv,enrichPWAImages:()=>zv,enrichPluginURLs:()=>Zv,extractBucketAndPath:()=>up,getAllFiles:()=>Lv,getAppFileUrl:()=>LS,getClientCacheKey:()=>US,getGlobalFileS3Key:()=>MS,getGlobalFileUrl:()=>Jv,getObjectMetadata:()=>Gv,getPluginIconKey:()=>BS,getPluginJSKey:()=>FS,getPluginS3Dir:()=>$S,getPresignedUrl:()=>ln,getReadStream:()=>Du,listAllObjects:()=>hp,objectExists:()=>Vv,processAutomationAttachment:()=>Cv,processObjectStoreAttachment:()=>OS,retrieve:()=>xS,retrieveDirectory:()=>kv,retrieveToTmp:()=>Mv,sanitizeBucket:()=>xe,sanitizeKey:()=>ge,streamUpload:()=>bS,streamUploadMany:()=>Uv,upload:()=>Nv,uploadDirectory:()=>gp});var Cu=require("@aws-sdk/client-s3"),cp=require("@aws-sdk/lib-storage"),IS=require("@aws-sdk/s3-request-presigner"),wS=require("@smithy/node-http-handler");var Ht=B(require("dd-trace")),ai=B(require("fs")),Ys=B(require("fs/promises")),DS=B(require("https")),lp=B(require("node-fetch")),Or=require("path"),bu=B(require("stream")),zs=require("stream/promises"),dp=B(require("tar-fs")),fp=require("uuid"),pp=B(require("zlib"));var TS=B(require("fs")),SS=require("os"),Hs=B(require("path")),AS=B(require("stream"));var Dv={BACKUPS:g.BACKUPS_BUCKET_NAME,APPS:g.APPS_BUCKET_NAME,TEMPLATES:g.TEMPLATES_BUCKET_NAME,GLOBAL:g.GLOBAL_BUCKET_NAME,PLUGINS:g.PLUGIN_BUCKET_NAME,TEMP:g.TEMP_BUCKET_NAME},_S=(0,Hs.join)((0,SS.tmpdir)(),".budibase");try{TS.default.mkdirSync(_S)}catch(t){if(t.code!=="EEXIST")throw t}function cn(){return _S}s(cn,"budibaseTempDir");var wu=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function Rv(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Hs.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:AS.default.Readable.fromWeb(e.body)}}s(Rv,"processUrlAttachment");async function OS(t){let e=up(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await Du(r,n),o=Hs.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(OS,"processObjectStoreAttachment");async function Cv(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await Rv(t):await OS(t)}s(Cv,"processAutomationAttachment");var bv=require("sanitize-s3-objectkey"),xv={bucketCreationPromises:{}},mp="/files/signed",_r={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"},vv=[_r.html,_r.css,_r.js,_r.json];function ge(t){return bv(xe(t)).replace(/\\/g,"/")}s(ge,"sanitizeKey");function xe(t){return t.replace(new RegExp(tt,"g"),et)}s(xe,"sanitizeBucket");function st(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:g.MINIO_ACCESS_KEY,secretAccessKey:g.MINIO_SECRET_KEY},region:g.AWS_REGION};if(!g.MINIO_ENABLED&&g.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:g.MINIO_ACCESS_KEY,secretAccessKey:g.MINIO_SECRET_KEY,sessionToken:g.AWS_SESSION_TOKEN}),g.MINIO_URL&&(t.presigning&&g.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=g.MINIO_URL),g.S3_IGNORE_SELF_SIGNED==="true"){let r=new DS.default.Agent({rejectUnauthorized:!1});e.requestHandler=new wS.NodeHttpHandler({httpsAgent:r})}return new Cu.S3(e)}s(st,"ObjectStore");async function Js(t,e){e=xe(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=xv.bucketCreationPromises,o=n===404,a=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(o||a){if(o)return i[e]=t.createBucket({Bucket:e}).catch(u=>{if(u.Code!=="BucketAlreadyOwnedByYou")throw u}),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.")}}s(Js,"createBucketIfNotExists");var Pv=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?_r[r.toLowerCase()]:_r.txt},"resolveContentType"),RS=s(async(t,e,r)=>{let n=xe(t),i=st(),o=await Js(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=wu(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),CS=s(async({client:t,bucket:e,filename:r,stream:n,type:i,extra:o})=>{if(!n)throw new Error("Stream to upload is invalid/undefined");let a=Pv(r,i),u=ge(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new cp.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function Nv({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await Ys.default.open(r)).createReadStream():o,l=st(),d=await Js(l,t);if(a&&d.created){let m=wu(t,a);await l.putBucketLifecycleConfiguration(m)}let f=n,h=f||(u?_r[u.toLowerCase()]:_r.txt),p={Bucket:xe(t),Key:ge(e),Body:c,ContentType:h};if(i&&typeof i=="object"){for(let m of Object.keys(i))(!i[m]||typeof i[m]!="string")&&delete i[m];p.Metadata=i}return new cp.Upload({client:l,params:p}).done()}s(Nv,"upload");async function bS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await Ht.default.trace("streamUpload",async a=>{a.addTags({bucketName:t,filename:r,type:n,ttl:o});let u=r.split(".").pop();a.addTags({extension:u});let{bucket:c,client:l}=await RS(t,o,a),{details:d,contentType:f}=await CS({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),h=await l.headObject({Bucket:c,Key:ge(r)});return a.addTags({contentType:f,contentLength:h.ContentLength}),{...d,ContentLength:h.ContentLength}})}s(bS,"streamUpload");async function Uv({bucket:t,files:e,ttl:r}){return await Ht.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await RS(t,r,i),u=e.map((l,d)=>({...l,index:d})),c=new Array(e.length);return await _t.parallelForeach(u,async l=>{let{details:d}=await CS({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=d},10),c})}s(Uv,"streamUploadMany");async function xS(t,e){return await Ht.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=st(),i={Bucket:xe(t),Key:ge(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),vv.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return bu.default.Readable.fromWeb(a)}})}s(xS,"retrieve");async function*hp(t,e){let r=st(),n=s((a={})=>r.listObjectsV2({...a,Bucket:xe(t),Prefix:ge(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s(hp,"listAllObjects");async function Lv(t,e){let r={};return await _t.parallelForeach(hp(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(Lv,"getAllFiles");async function ln(t,e,r=3600){let n=st({presigning:!0}),i={Bucket:xe(t),Key:ge(e)},o=await(0,IS.getSignedUrl)(n,new Cu.GetObjectCommand(i),{expiresIn:r});if(g.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${mp}${u}${c}`}else return o}s(ln,"getPresignedUrl");async function Mv(t,e){return await Ht.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=xe(t),e=ge(e);let n=await xS(t,e),i=(0,Or.join)(cn(),(0,fp.v4)());return r.addTags({outputPath:i}),n instanceof bu.default.Readable?(r.addTags({stream:!0}),await(0,zs.pipeline)(n,ai.default.createWriteStream(i))):(r.addTags({stream:!1}),ai.default.writeFileSync(i,n)),i})}s(Mv,"retrieveToTmp");async function kv(t,e,r){return await Ht.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Or.join)(cn(),(0,fp.v4)());await Ys.default.mkdir(i,{recursive:!0});let o=0;return await _t.parallelForeach(hp(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await Ht.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let{stream:d}=await Du(t,l),f=l.split("/"),h=f.slice(0,f.length-1),p=(0,Or.join)(i,...h);f.length>1&&!ai.default.existsSync(p)&&await Ys.default.mkdir(p,{recursive:!0}),await(0,zs.pipeline)(d,ai.default.createWriteStream((0,Or.join)(i,...f),{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(kv,"retrieveDirectory");async function Fv(t,e){let r=st();await Js(r,t);let n={Bucket:t,Key:ge(e)};return r.deleteObject(n)}s(Fv,"deleteFile");async function Bv(t,e){let r=st();await Js(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:ge(i)}))}};return r.deleteObjects(n)}s(Bv,"deleteFiles");async function vS(t,e){t=xe(t),e=ge(e);let r=st(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return vS(t,e)}s(vS,"deleteFolder");async function gp(t,e,r){return await Ht.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=xe(t);let i=await Ys.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=ge((0,Or.join)(r,o.name)),u=(0,Or.join)(e,o.name);o.isDirectory()?await gp(t,u,a):await bS({bucket:t,filename:a,stream:ai.default.createReadStream(u)})}return i})}s(gp,"uploadDirectory");async function Wv(t,e,r={}){e=ge(e);let n=await(0,lp.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,zs.pipeline)(n.body,pp.default.createUnzip(),dp.default.extract(e))}s(Wv,"downloadTarballDirect");async function $v(t,e,r){e=xe(e),r=ge(r);let n=await(0,lp.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Or.join)(cn(),r);return await(0,zs.pipeline)(n.body,pp.default.createUnzip(),dp.default.extract(i)),!g.isTest()&&g.SELF_HOSTED&&await gp(e,i,r),i}s($v,"downloadTarball");async function Du(t,e){return await Ht.default.trace("getReadStream",async r=>{t=xe(t),e=ge(e),r.addTags({bucketName:t,path:e});let n=st(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof bu.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(Du,"getReadStream");async function Gv(t,e){t=xe(t),e=ge(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(Gv,"getObjectMetadata");async function Vv(t,e){t=xe(t),e=ge(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode)===404)return!1;throw i}}s(Vv,"objectExists");function up(t){let e=t.split("?")[0],r=new RegExp(`^${mp}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:o}=n.groups;return{bucket:i,path:o}}return null}s(up,"extractBucketAndPath");var NS=B(require("querystring"));var PS=B(require("aws-cloudfront-sign"));var xu;function qv(){if(!g.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return xu||(xu=Buffer.from(g.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),xu)}s(qv,"getPrivateKey");var Kv=s(()=>({keypairId:g.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:qv(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),ui=s(t=>{let e=Qv(t);return PS.getSignedUrl(e,Kv())},"getPresignedUrl"),Qv=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${g.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function jv(t){return`${ge(t)}/budibase-client.js`}s(jv,"clientLibraryPath");function Hv(t,e){return`${ge(t)}/${e}`}s(Hv,"client3rdPartyLibrary");async function Yv(t,e){return`/api/assets/${t}/client?${await US(e)}`}s(Yv,"clientLibraryUrl");async function US(t){let e,r;try{e=$()}finally{r={version:t}}return e&&e!==ae&&(r.tenantId=e),NS.default.encode(r)}s(US,"getClientCacheKey");async function LS(t){return g.CLOUDFRONT_CDN?ui(t):await ln(g.APPS_BUCKET_NAME,t)}s(LS,"getAppFileUrl");async function zv(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await LS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(zv,"enrichPWAImages");var Jv=s(async(t,e,r)=>{let n=MS(t,e);return g.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ui(n)):await ln(g.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),MS=s((t,e)=>{let r=`${t}/${e}`;return g.MULTI_TENANCY&&(r=`${$()}/${r}`),r},"getGlobalFileS3Key");async function Zv(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await Xv(e),n=await eP(e);return{...e,jsUrl:r,iconUrl:n}}))}s(Zv,"enrichPluginURLs");async function Xv(t){let e=FS(t);return kS(e)}s(Xv,"getPluginJSUrl");async function eP(t){let e=BS(t);if(e)return kS(e)}s(eP,"getPluginIconUrl");async function kS(t){return g.CLOUDFRONT_CDN?ui(t):await ln(g.PLUGIN_BUCKET_NAME,t)}s(kS,"getPluginUrl");function FS(t){return WS(t,"plugin.min.js")}s(FS,"getPluginJSKey");function BS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return WS(t,e)}s(BS,"getPluginIconKey");function WS(t,e){return`${$S(t.name)}/${e}`}s(WS,"getPluginS3Key");function $S(t){let e=`${t}`;return g.MULTI_TENANCY&&(e=`${$()}/${e}`),g.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s($S,"getPluginS3Dir");var qS="budibase.log",KS="budibase-logs-history.txt",QS=Tp.default.join(cn(),"systemlogs");function GS(t){return Tp.default.join(QS,t)}s(GS,"getFullPath");function jS(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}}s(jS,"getSingleFileMaxSizeInfo");function Sp(){let t=jS(g.ROLLING_LOG_MAX_SIZE);return VS.createStream(qS,{size:t?.size,path:QS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:KS,initialRotation:!1})}s(Sp,"localFileDestination");function tP(){let t=[],e=GS(KS);if(Zs.default.existsSync(e)){let i=Zs.default.readFileSync(e,"utf-8").split(`
37
- `);for(let o of i.filter(a=>a))t.push(Zs.default.readFileSync(o))}return t.push(Zs.default.readFileSync(GS(qS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(tP,"getLogReadStream");function rP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(rP,"isPlainObject");function nP(t){return t instanceof Error}s(nP,"isError");function iP(t){return typeof t=="string"}s(iP,"isMessage");var Ir;if(!g.DISABLE_PINO_LOGGER){let t=g.LOG_LEVEL,e={level:t,formatters:{level:c=>({level:c.toUpperCase()}),bindings:()=>g.SELF_HOSTED?{service:g.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(g.isDev()?{stream:(0,HS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),g.SELF_HOSTED&&r.push({stream:Sp(),level:t}),Ir=r.length?(0,vu.default)(e,vu.default.multistream(r)):(0,vu.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(E=>{iP(E)&&(f=`${f} ${E}`.trimStart()),rP(E)&&d.push(E),nP(E)&&(l=E)});let h=u(),p={};p={tenantId:i(),appId:o(),automationId:a(),identityId:h?._id,identityType:h?.type,correlationId:ap()};let S=_p.default.scope().active();S&&_p.default.inject(S.context(),YS.formats.LOG,p);let m={err:l,pid:process.pid,...p};if(d.length){let E={},y=0;for(let I=0;I<d.length;I++){let O=d[I],w=O._logKey;w?(delete O._logKey,m[w]=O):(E[y]=O,y++)}Object.keys(E).length&&(m.data=E)}return[m,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Ir?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Ir?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Ir?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Ir?.debug(l,d)};let i=s(()=>{let c;try{c=$()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=be()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=Cf()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=$t()}catch{}return c},"getIdentity")}var Pu=Ir;var sP=["AccountError"];function oP(t){return t&&t.suppressAlert}s(oP,"isSuppressed");function dn(t,e){e&&sP.includes(e.name)&&oP(e)||console.error(`bb-alert: ${t}`,e)}s(dn,"logAlert");function aP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,dn(t,n)}s(aP,"logAlertWithInfo");function ci(t,e){console.warn(`bb-warn: ${t}`,e)}s(ci,"logWarn");var Nu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},Op=class{static{s(this,"QueuedProcessor")}constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:o=!0,maxStalledCount:a=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new Et(e,{maxStalledCount:a,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:o}}),this._queue.process(async(u,c)=>{try{let l=await this.processFn(u.data);c?.(null,l)}catch(l){l instanceof Nu&&await u.discard(),dn(`Failed to process job in ${this._queue.name}`,l),c?.(l)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await Ue.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var uP=100,Uu,eo=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new Et("docWritethroughQueue",{jobOptions:{attempts:uP}})),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=Re(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},wp=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await eo.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function zS(){return Uu=new eo().init(),Uu}s(zS,"init");function cP(){return Uu||zS()}s(cP,"getProcessor");var ro={};P(ro,{CacheKey:()=>ye,TTL:()=>mn,bustCache:()=>li,destroy:()=>to,get:()=>hn,keys:()=>Lu,store:()=>Yt,withCache:()=>wr,withCacheWithDynamicTTL:()=>JS});function Ct(t){let e=$();return`${t}:${e}`}s(Ct,"generateTenantKey");var fn=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Mf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ct(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Ct(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((o,[a,u])=>(o[Ct(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ct(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(Ct(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Ct(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var pn=new fn,ye={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}`},mn=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(mn||{}),Lu=s((...t)=>pn.keys(...t),"keys"),hn=s((...t)=>pn.get(...t),"get"),Yt=s((...t)=>pn.store(...t),"store"),to=s((...t)=>pn.delete(...t),"destroy"),wr=s((...t)=>pn.withCache(...t),"withCache"),JS=s((...t)=>pn.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),li=s((...t)=>pn.bustCache(...t),"bustCache");var bp={};P(bp,{createCode:()=>EP,deleteCode:()=>TP,getCode:()=>yP,getExistingInvites:()=>Cp,getInviteCodes:()=>iA,updateCode:()=>gP});var En={};P(En,{AUTO_EXTEND_POLLING_MS:()=>eA,doWithLock:()=>no,newRedlock:()=>gn});var XS=B(require("redlock"));async function lP(t,e){if(t==="custom")return gn(e);switch(t){case"try_once":return gn(di.TRY_ONCE);case"try_twice":return gn(di.TRY_TWICE);case"default":return gn(di.DEFAULT);case"delay_500":return gn(di.DELAY_500);case"auto_extend":return gn(di.AUTO_EXTEND);default:throw _t.unreachable(t)}}s(lP,"getClient");var di={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 gn(t={}){let e={...di.DEFAULT,...t},n=(await Ff()).client;return new XS.default([n],e)}s(gn,"newRedlock");function dP(t){let r=`lock:${t.systemLock?"system":$()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(dP,"getLockName");var eA=pe.fromSeconds(10).toMs();async function no(t,e){let r=await lP(t.type,t.customOptions),n,i;try{let o=dP(t),a=t.type==="auto_extend"?eA:t.ttl;if(n=await r.lock(o,a),t.type==="auto_extend"){let c=s(()=>{i=setTimeout(async()=>{n=await n.extend(a,()=>t.onExtend&&t.onExtend()),c()},a/2)},"extendInIntervals");c()}return{executed:!0,result:await e()}}catch(o){if(o.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw o}else throw o}finally{clearTimeout(i),await n?.unlock()}}s(no,"doWithLock");var tA=pe.fromDays(7).toSeconds(),pP=pe.fromSeconds(10).toMs(),Mu="Invitation is not valid or has expired, please request a new one.";function rA(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(rA,"normaliseInviteList");function mP(t){let e=!1,r=Date.now();for(let[n,i]of Object.entries(t.invites))(!i?.expiresAt||i.expiresAt<=r)&&(delete t.invites[n],e=!0);return{list:t,changed:e}}s(mP,"pruneExpiredInvites");async function Rp(t){let r=await(await Ps()).get(t);return rA(r,t)}s(Rp,"loadInviteList");async function io(t,e){await(await Ps()).store(t,e)}s(io,"saveInviteList");async function so(t,e){let{result:r}=await no({type:"default",name:"process_user_invite",systemLock:!0,resource:t,ttl:pP},e);return r}s(so,"withInviteListLock");function hP(t,e){return{code:t,email:e.email,info:e.info}}s(hP,"toInviteWithCode");async function nA(t,e){let r=await Ps(),n=rA(await r.get(e),e);if(!n)throw new Error(Mu);if(!Object.keys(n.invites).includes(t))throw new Error(Mu);return{list:n,invite:n.invites[t]}}s(nA,"findInviteInList");async function gP(t,e){let r={...e.info},n=r.tenantId||$();r.tenantId=n,await so(n,async()=>{let i=await Rp(n)||{tenantId:n,invites:{}};i.invites[t]={email:e.email,info:r,expiresAt:Date.now()+tA*1e3},await io(n,i)})}s(gP,"updateCode");async function EP(t,e){let r=ee(),n={...e||{}},i=n.tenantId||$();return n.tenantId=i,await so(i,async()=>{let o=await Rp(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+tA*1e3},await io(i,o)}),r}s(EP,"createCode");async function yP(t,e){let r=e||$();return await so(r,async()=>{let n=await nA(t,r),{list:i,invite:o}=n;if(o.expiresAt<=Date.now())throw delete i.invites[t],await io(i.tenantId,i),new Error(Mu);return{email:o.email,info:o.info}})}s(yP,"getCode");async function TP(t,e){let r=e||$();try{await so(r,async()=>{let n=await nA(t,r);delete n.list.invites[t],await io(n.list.tenantId,n.list)})}catch(n){if(n instanceof Error&&n.message===Mu)return;throw n}}s(TP,"deleteCode");async function iA(){let t=$(),e=await so(t,async()=>{let n=await Rp(t)||{tenantId:t,invites:{}},i=mP(n);return n=i.list,i.changed&&await io(t,n),n}),r=new Map;for(let[n,i]of Object.entries(e.invites))r.set(n,hP(n,i));return Array.from(r.values())}s(iA,"getInviteCodes");async function Cp(t){let e=new Set(t.map(r=>r.toLowerCase()));return(await iA()).filter(r=>e.has(r.email.toLowerCase()))}s(Cp,"getExistingInvites");var xp={};P(xp,{createCode:()=>AP,getCode:()=>_P,invalidateCode:()=>OP});var SP=pe.fromHours(1).toSeconds();async function AP(t,e){let r=ee();return await(await Ns()).store(r,{userId:t,info:e},SP),r}s(AP,"createCode");async function _P(t){let r=await(await Ns()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(_P,"getCode");async function OP(t){await(await Ns()).delete(t)}s(OP,"invalidateCode");var br={};P(br,{getUser:()=>Ro,getUsers:()=>ZL,invalidateUser:()=>Co});var oo={};P(oo,{getPlatformDB:()=>Dr,users:()=>yt});var yt={};P(yt,{addSsoUser:()=>oA,addUser:()=>bP,getUserDoc:()=>sA,lookupTenantId:()=>IP,removeUser:()=>xP,updateUserDoc:()=>wP});function Dr(){return Re(fe.PLATFORM_INFO.name)}s(Dr,"getPlatformDB");async function IP(t){return g.MULTI_TENANCY?(await sA(t)).tenantId:ae}s(IP,"lookupTenantId");async function sA(t){return Dr().get(t)}s(sA,"getUserDoc");async function wP(t){await Dr().put(t)}s(wP,"updateUserDoc");function DP(t,e){return{_id:t,tenantId:e}}s(DP,"newUserIdDoc");function RP(t,e,r){return{_id:e,userId:t,tenantId:r}}s(RP,"newUserEmailDoc");function CP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(CP,"newUserSsoIdDoc");async function vp(t,e){let r=Dr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s(vp,"addUserDoc");async function oA(t,e,r,n){return vp(t,()=>CP(t,e,r,n))}s(oA,"addSsoUser");async function bP(t,e,r,n){let i=[vp(e,()=>DP(e,t)),vp(r,()=>RP(e,r,t))];n&&i.push(oA(n,r,e,t)),await Promise.all(i)}s(bP,"addUser");async function xP(t){let e=Dr(),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})}s(xP,"removeUser");var yn={};P(yn,{getAccount:()=>Rr,getAccountByTenantId:()=>fi,getStatus:()=>vP});var aA=B(require("node-fetch"));var ao=class{static{s(this,"API")}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";js.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,aA.default)(`${this.host}${r}`,o)}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 Pp=new ao(g.INTERNAL_ACCOUNT_PORTAL_URL),Np=g.SELF_HOSTED||g.DISABLE_ACCOUNT_PORTAL,Rr=s(async t=>{if(Np)return;let e={email:t},r=await Pp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),fi=s(async t=>{if(Np)return;let e={tenantId:t},r=await Pp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),vP=s(async()=>{if(Np)return;let t=await Pp.get("/api/status",{headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var Ei={};P(Ei,{UserDB:()=>xt,addAppBuilder:()=>HL,bulkGetGlobalUsersById:()=>oc,bulkUpdateGlobalUsers:()=>Io,cleanseUserObject:()=>tm,creatorsInList:()=>An,doesUserExist:()=>VL,getAccountHolderFromUsers:()=>sc,getAllUserIds:()=>$L,getAllUsers:()=>GL,getById:()=>_n,getCreatorCount:()=>QL,getExistingAccounts:()=>gi,getExistingPlatformUsers:()=>YA,getExistingTenantUsers:()=>HA,getFirstPlatformUser:()=>_o,getGlobalUserByAppPage:()=>r_,getGlobalUserByEmail:()=>At,getPlatformUsers:()=>tc,getUserCount:()=>KL,hasAdminPermissions:()=>Cr,hasAppBuilderPermissions:()=>ZA,hasBuilderPermissions:()=>ke,isAdmin:()=>bt,isAdminOrBuilder:()=>JA,isAdminOrWorkspaceBuilder:()=>rc,isBuilder:()=>Si,isCreatorAsync:()=>Oo,isCreatorSync:()=>nc,isGlobalBuilder:()=>zA,paginatedUsers:()=>i_,removeAppBuilder:()=>YL,removePortalUserPermissions:()=>jL,searchExistingEmails:()=>zp,searchGlobalUsersByApp:()=>t_,searchGlobalUsersByAppAccess:()=>em,searchGlobalUsersByEmail:()=>n_,validateUniqueUser:()=>ic});var Ku={};P(Ku,{ActiveContentFileError:()=>Bu,BadRequestError:()=>co,BudibaseError:()=>uo,EmailUnavailableError:()=>zt,FeatureDisabledError:()=>Gu,ForbiddenError:()=>Wu,HTTPError:()=>Me,NotFoundError:()=>Fu,NotImplementedError:()=>$u,UnexpectedError:()=>ku,UsageLimitError:()=>Vu,getErrorMessage:()=>uA,getPublicError:()=>qu});var uo=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"BudibaseError")}};function uA(t){if(t==null)return"No error provided.";if(t instanceof Error)return t.message;if(typeof t=="string")return t;if(typeof t=="object"&&"message"in t)return String(t.message);try{let r=JSON.stringify(t);if(r!=="{}")return r}catch{}let e=String(t);return e!=="[object Object]"?e:"An unknown error occurred"}s(uA,"getErrorMessage");var qu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),Me=class t extends uo{constructor(r,n,i="http"){super(r,i);this.status=n}static{s(this,"HTTPError")}static async fromResponse(r){let n=await r.text(),i=n,o=r.status,a="http";try{let u=JSON.parse(n);i=u.error?.message||u.message,o=u.status??r.status,a=u.error?.code??r.statusText}catch{}return new t(i,o,a)}},ku=class extends Me{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},Fu=class extends Me{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},co=class extends Me{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},Bu=class extends co{static{s(this,"ActiveContentFileError")}constructor(e){super(`File "${e}" contains active content which is not permitted`)}},Wu=class extends Me{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},$u=class extends Me{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},Gu=class extends Error{static{s(this,"FeatureDisabledError")}constructor(e){super(`Feature disabled: '${e}'`)}},Vu=class extends Error{static{s(this,"UsageLimitError")}constructor(e){super(`Usage limit exceeded: '${e}'`)}},zt=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var kp={};P(kp,{PASSWORD_MAX_LENGTH:()=>Lp,PASSWORD_MIN_LENGTH:()=>Up,validatePassword:()=>Mp});var Up=+(g.PASSWORD_MIN_LENGTH||12),Lp=+(g.PASSWORD_MAX_LENGTH||512);function Mp(t){return!t||t.length<Up?{valid:!1,error:`Password invalid. Minimum ${Up} characters.`}:t.length>Lp?{valid:!1,error:`Password invalid. Maximum ${Lp} characters.`}:{valid:!0}}s(Mp,"validatePassword");var Qu={};P(Qu,{createASession:()=>PP,endSession:()=>NP,getSession:()=>Bp,getSessionsForUser:()=>lo,invalidateSessions:()=>Tn,updateSessionTTL:()=>Fp});var lA=require("uuid");var dA=g.SESSION_EXPIRY_SECONDS?parseInt(g.SESSION_EXPIRY_SECONDS):pe.fromDays(7).toSeconds();function pi(t,e){return`${t}/${e}`}s(pi,"makeSessionID");async function lo(t){return t?(await(await yr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(lo,"getSessionsForUser");async function Tn(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await lo(t)).map(a=>({key:pi(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:pi(t,o)}))),i&&i.length>0){let o=await yr(),a=[];for(let u of i)a.push(o.delete(u.key));g.isTest()||ci(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(Tn,"invalidateSessions");async function PP(t,e){let r=await lo(t),n=0;if(r.length>=3){let l=r.sort((h,p)=>new Date(h.createdAt).getTime()-new Date(p.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(h=>h.sessionId);n=f.length,await Tn(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await yr(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,lA.v4)(),u=pi(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,dA),{session:c,invalidatedSessionCount:n}}s(PP,"createASession");async function Fp(t){let e=await yr(),r=pi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,dA)}s(Fp,"updateSessionTTL");async function NP(t,e){await(await yr()).delete(pi(t,e))}s(NP,"endSession");async function Bp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await yr()).get(pi(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(Bp,"getSession");var hi={};P(hi,{account:()=>OA,action:()=>IA,ai:()=>wA,analytics:()=>Hu,app:()=>DA,asyncEventQueue:()=>Tt,auditLog:()=>RA,auth:()=>ec,automation:()=>CA,backfill:()=>bA,backfillCache:()=>Ju,backup:()=>xA,datasource:()=>vA,email:()=>PA,environmentVariable:()=>NA,group:()=>UA,identification:()=>St,initAsyncEvents:()=>CL,installation:()=>go,layout:()=>LA,license:()=>MA,org:()=>kA,plugin:()=>FA,processors:()=>Kp,publishEvent:()=>A,query:()=>BA,resource:()=>WA,role:()=>Ao,rowAction:()=>$A,rows:()=>GA,screen:()=>VA,serve:()=>qA,shutdown:()=>bL,table:()=>KA,user:()=>Fe,view:()=>QA,workspace:()=>jA});var Hu={};P(Hu,{enabled:()=>ju});var ju=s(async()=>Yu(),"enabled");var Tt;function zu(){Tt=new Et("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}s(zu,"init");async function fA(){Tt&&await Tt.close()}s(fA,"shutdown");async function pA(t){Tt||zu();let{event:e,identity:r}=t;eh.indexOf(e)!==-1&&r.tenantId&&await Tt.add(t)}s(pA,"publishAsyncEvent");var Ju={};P(Ju,{end:()=>LP,isAlreadySent:()=>Gp,isBackfillingEvent:()=>$p,recordEvent:()=>Wp,start:()=>UP});var UP=s(async t=>kP({eventWhitelist:t}),"start"),Wp=s(async(t,e)=>{let r=Vp(t,e);await Yt(r,e,void 0,{useTenancy:!1})},"recordEvent"),LP=s(async()=>{await FP(),await BP()},"end"),MP=s(async()=>hn(ye.BACKFILL_METADATA),"getBackfillMetadata"),kP=s(async t=>Yt(ye.BACKFILL_METADATA,t),"saveBackfillMetadata"),FP=s(async()=>{await to(ye.BACKFILL_METADATA)},"deleteBackfillMetadata"),BP=s(async()=>{let t=Vp(),e=await Lu(t);for(let r of e)await to(r,{useTenancy:!1})},"clearEvents"),$p=s(async t=>{let r=(await MP())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),Gp=s(async(t,e)=>{let r=Vp(t,e);return!!await hn(r,{useTenancy:!1})},"isAlreadySent"),WP={"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}`},Vp=s((t,e)=>{let r,n=$();if(t){r=`${ye.EVENTS}:${n}:${t}`;let i=WP[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${ye.EVENTS}:${n}:*`;return r},"getEventKey");var Kp={};P(Kp,{analyticsProcessor:()=>SA,init:()=>zP,processors:()=>Zt});var yA=require("posthog-node");var $P=s(t=>t==="served:builder"||t==="served:app:preview"||t==="served:app","isRateLimited"),GP=s(t=>t==="served:app:preview"||t==="served:app","isPerApp");var hA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},gA=s(async t=>{if(!$P(t))return!1;let e=await VP(t);if(e){let r=new Date(e.timestamp);switch(hA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await mA(t,{timestamp:Date.now()}),!1):!0}}else return await mA(t,{timestamp:Date.now()}),!1},"limited"),EA=s(t=>{let e=`${ye.EVENTS_RATE_LIMIT}:${t}`;return GP(t)&&(e=e+":"+be()),e},"eventKey"),VP=s(async t=>{let e=EA(t);return await hn(e)},"readEvent"),mA=s(async(t,e)=>{let r=EA(t),n=hA[t],i;switch(n){case"calendarDay":i=86400}await Yt(r,e,i)},"recordEvent");var KP=["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"],fo=class{static{s(this,"PosthogProcessor")}constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new yA.PostHog(e)}async processEvent(e,r,n,i){if(KP.includes(e)||await gA(e))return;n=this.clearPIIProperties(n),n.version=g.VERSION,n.service=g.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let o=be();o&&(n.appId=o);let a={distinctId:r.id,event:e,properties:n};i&&(a.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(a.groups={},r.installationId&&(a.groups.installation=r.installationId,a.properties.installationId=r.installationId),r.tenantId&&(a.groups.tenant=r.tenantId,a.properties.tenantId=r.tenantId)),this.posthog.capture(a)}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 TA=fo;var QP=["installation:version:upgraded","installation:version:downgraded"],jP=["installation","tenant"],po=class{static{s(this,"AnalyticsProcessor")}constructor(){g.POSTHOG_TOKEN&&!g.isTest()&&(this.posthog=new TA(g.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!QP.includes(e)&&!await ju()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!jP.includes(e.type)&&!await ju()||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 qp=g.SELF_HOSTED&&!g.isDev(),mo=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){qp||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){qp||console.log("[audit] identified",e)}async identifyGroup(e){qp||console.log("[audit] group identified",e)}async shutdown(){}};var mi=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new Et("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Ce(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};g.ENABLE_AUDIT_LOG_IP_ADDR&&(o=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:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Zf(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:be(),hostInfo:r.hostInfo},tenantId:$()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var ho=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.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 SA=new po,HP=new mo,YP=new mi;function zP(t){return mi.init(t)}s(zP,"init");var Zt=new ho([SA,HP,YP]);var Zu={};P(Zu,{checkInstallVersion:()=>XP,getInstall:()=>Eo,getInstallFromDB:()=>jp});var Qp=B(require("semver"));var Eo=s(async()=>wr(ye.INSTALLATION,86400,jp,{useTenancy:!1}),"getInstall");async function JP(t){let e={_id:fe.PLATFORM_INFO.docs.install,installId:ee(),version:g.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return jp();throw r}}s(JP,"createInstallDoc");var jp=s(async()=>je(fe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(fe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await JP(t);else throw r}return e}),"getInstallFromDB"),ZP=s(async t=>{try{await je(fe.PLATFORM_INFO.name,async e=>{let r=await Eo();r.version=t,await e.put(r),await li(ye.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),XP=s(async()=>{let t=await Eo(),e=t.version,r=g.VERSION;try{if(e!==r){let n=Qp.default.gt(r,e),i=Qp.default.lt(r,e);await ZP(r)&&(await ws({_id:t.installId,type:"installation"},async()=>{n?await go.upgraded(e,r):i&&await go.downgraded(e,r)}),await St.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?dn(`Invalid version "${r}" - is it semver?`):dn("Failed to retrieve version",n)}},"checkInstallVersion");var eN=s(async()=>{let t=lf(),e=So(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await Sn(),i=yo();return{id:AA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await Sn(),i=await Xu($()),o=yo();return{id:AA(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:$(),environment:e}}else if(r==="user"){let n=t,i=await Xu($()),o=await Sn(),a=n.account,u;return a?u=a.hosting:u=yo(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:$(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),tN=s(async(t,e)=>{let r=t,n="installation",i=yo(),o=g.VERSION,a=So(),u={id:r,type:n,hosting:i,version:o,environment:a};await Hp(u,e),await To({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),rN=s(async(t,e,r,n=g.VERSION)=>{let i=await Xu(t),o="tenant",a=await Sn(),u=So(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await Hp(c,r),await To({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),nN=s(async(t,e,r)=>{let n=t._id,i=await Xu(t.tenantId),o="user",a=ke(t),u=Cr(t),c;Ko(t)&&(c=t.providerType);let d=(await gi([t.email])).length>0,f=!!e&&d&&e.verified,h=await Sn(),p=e?e.hosting:yo(),S=So();await To({id:n,type:o,hosting:p,installationId:h,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:S},r)},"identifyUser"),iN=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=qo(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await Sn(),l=So();if(Vo(t)){let f=await At(t.email);f?._id&&(e=f._id)}await To({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),To=s(async(t,e)=>{await Zt.identify(t,e)},"identify"),Hp=s(async(t,e)=>{await Zt.identifyGroup(t,e)},"identifyGroup"),So=s(()=>g.isDev()?"development":g.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),yo=s(()=>g.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),Sn=s(async()=>sN()?"account-portal":(await Eo()).installId,"getInstallationId"),Xu=s(async t=>g.SELF_HOSTED?_A(t):t,"getEventTenantId"),_A=s(async t=>Ce(t,()=>wr(ye.UNIQUE_TENANT_ID,86400,async()=>{let e=Y(),r=await yi(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ee()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=g.VERSION,await e.put(r),n)})),"getUniqueTenantId"),sN=s(()=>g.SERVICE==="account-portal","isAccountPortal"),AA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),St={getCurrentIdentity:eN,identifyInstallationGroup:tN,identifyTenantGroup:rN,identifyUser:nN,identifyAccount:iN,identify:To,identifyGroup:Hp,getInstallationId:Sn,getUniqueTenantId:_A};var A=s(async(t,e,r,n)=>{let i=n||await St.getCurrentIdentity();if(!(n?!1:await $p(t))){await pA({event:t,identity:i,properties:e,timestamp:r}),await Zt.processEvent(t,i,e,r);return}await Gp(t,e)||(await Zt.processEvent(t,i,e,r),await Wp(t,e))},"publishEvent");async function oN(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}s(oN,"created");async function aN(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}s(aN,"deleted");async function uN(t){let e={tenantId:t.tenantId};await A("account:verified",e)}s(uN,"verified");var OA={created:oN,deleted:aN,verified:uN};async function cN(t,e){console.info("action:automation_step:executed",`disabled. Action step ${t.stepId} not published at ${e}`)}s(cN,"automationStepExecuted");async function lN(t,e){console.info("action:automation_step:executed",`disabled. Action type ${t.type} not published at ${e}`)}s(lN,"crudExecuted");async function dN(t,e){console.info("action:automation_step:executed",`disabled. Execution for ai agent ${t.agentId} not published at ${e}`)}s(dN,"aiAgentExecuted");var IA={aiAgentExecuted:dN,automationStepExecuted:cN,crudExecuted:lN};async function fN(t){let e={};await A("ai:config:created",e,t)}s(fN,"AIConfigCreated");async function pN(){let t={};await A("ai:config:updated",t)}s(pN,"AIConfigUpdated");var wA={AIConfigCreated:fN,AIConfigUpdated:pN};var mN=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)},"created");async function hN(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}s(hN,"updated");async function gN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}s(gN,"deleted");async function EN(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}s(EN,"published");async function yN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}s(yN,"unpublished");async function TN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}s(TN,"fileImported");async function SN(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}s(SN,"duplicated");async function AN(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}s(AN,"templateImported");async function _N(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}s(_N,"versionUpdated");async function ON(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}s(ON,"versionReverted");async function IN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}s(IN,"reverted");async function wN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}s(wN,"exported");var DA={created:mN,updated:hN,deleted:gN,published:EN,unpublished:yN,fileImported:TN,duplicated:SN,templateImported:AN,versionUpdated:_N,versionReverted:ON,reverted:IN,exported:wN};async function DN(t){let e={filters:t};await A("audit_log:filtered",e)}s(DN,"filtered");async function RN(t){let e={filters:t};await A("audit_log:downloaded",e)}s(RN,"downloaded");var RA={filtered:DN,downloaded:RN};async function CN(t,e){let n={userId:(await St.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}s(CN,"login");async function bN(t){let r={userId:(await St.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}s(bN,"logout");async function xN(t,e){let r={type:t};await A("auth:sso:created",r,e)}s(xN,"SSOCreated");async function vN(t){let e={type:t};await A("auth:sso:updated",e)}s(vN,"SSOUpdated");async function PN(t,e){let r={type:t};await A("auth:sso:activated",r,e)}s(PN,"SSOActivated");async function NN(t){let e={type:t};await A("auth:sso:deactivated",e)}s(NN,"SSODeactivated");var ec={login:CN,logout:bN,SSOCreated:xN,SSOUpdated:vN,SSOActivated:PN,SSODeactivated:NN};async function UN(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)}s(UN,"created");async function LN(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)}s(LN,"triggerUpdated");async function MN(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)}s(MN,"deleted");async function kN(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}s(kN,"tested");var FN=s(async(t,e)=>{let r={count:t};await A("automations:run",r,e)},"run");async function BN(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)}s(BN,"stepCreated");async function WN(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)}s(WN,"stepDeleted");var CA={created:UN,triggerUpdated:LN,deleted:MN,tested:kN,run:FN,stepCreated:BN,stepDeleted:WN};var Ti=!g.SELF_HOSTED&&!g.isDev();async function $N(t){Ti||await A("app:backfill:succeeded",t)}s($N,"appSucceeded");async function GN(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}s(GN,"appFailed");async function VN(t){Ti||await A("tenant:backfill:succeeded",t)}s(VN,"tenantSucceeded");async function qN(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}s(qN,"tenantFailed");async function KN(){if(Ti)return;let t={};await A("installation:backfill:succeeded",t)}s(KN,"installationSucceeded");async function QN(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}s(QN,"installationFailed");var bA={appSucceeded:$N,appFailed:GN,tenantSucceeded:VN,tenantFailed:qN,installationSucceeded:KN,installationFailed:QN};async function jN(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}s(jN,"appBackupRestored");async function HN(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",o)}s(HN,"appBackupTriggered");var xA={appBackupRestored:jN,appBackupTriggered:HN};function Yp(t){return!Object.values(Bo).includes(t.source)}s(Yp,"isCustom");async function YN(t,e){let r={datasourceId:t._id,source:t.source,custom:Yp(t)};await A("datasource:created",r,e)}s(YN,"created");async function zN(t){let e={datasourceId:t._id,source:t.source,custom:Yp(t)};await A("datasource:updated",e)}s(zN,"updated");async function JN(t){let e={datasourceId:t._id,source:t.source,custom:Yp(t)};await A("datasource:deleted",e)}s(JN,"deleted");var vA={created:YN,updated:zN,deleted:JN};async function ZN(t){let e={};await A("email:smtp:created",e,t)}s(ZN,"SMTPCreated");async function XN(){let t={};await A("email:smtp:updated",t)}s(XN,"SMTPUpdated");var PA={SMTPCreated:ZN,SMTPUpdated:XN};async function eU(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}s(eU,"created");async function tU(t){let e={name:t};await A("environment_variable:deleted",e)}s(tU,"deleted");async function rU(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}s(rU,"upgradePanelOpened");var NA={created:eU,deleted:tU,upgradePanelOpened:rU};async function nU(t,e){let r={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await A("user_group:created",r,e)}s(nU,"created");async function iU(t){let e={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await A("user_group:updated",e)}s(iU,"updated");async function sU(t){let e={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await A("user_group:deleted",e)}s(sU,"deleted");async function oU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:gt(),audited:{name:e.name}};await A("user_group:user_added",n)}s(oU,"usersAdded");async function aU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:gt(),audited:{name:e.name}};await A("user_group:users_deleted",n)}s(aU,"usersDeleted");async function uU(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}s(uU,"createdOnboarding");async function cU(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}s(cU,"permissionsEdited");var UA={created:nU,updated:iU,deleted:sU,usersAdded:oU,usersDeleted:aU,createdOnboarding:uU,permissionsEdited:cU};async function lU(t){let e={currentVersion:t};await A("installation:version:checked",e)}s(lU,"versionChecked");async function dU(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}s(dU,"upgraded");async function fU(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}s(fU,"downgraded");async function pU(){let t={};await A("installation:firstStartup",t)}s(pU,"firstStartup");var go={versionChecked:lU,upgraded:dU,downgraded:fU,firstStartup:pU};async function mU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}s(mU,"created");async function hU(t){let e={layoutId:t};await A("layout:deleted",e)}s(hU,"deleted");var LA={created:mU,deleted:hU};async function gU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}s(gU,"planChanged");async function EU(t){let e={accountId:t.accountId};await A("license:activated",e)}s(EU,"activated");async function yU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}s(yU,"checkoutOpened");async function TU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}s(TU,"checkoutSuccess");async function SU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}s(SU,"portalOpened");async function AU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}s(AU,"paymentFailed");async function _U(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}s(_U,"paymentRecovered");var MA={planChanged:gU,activated:EU,checkoutOpened:yU,checkoutSuccess:TU,portalOpened:SU,paymentFailed:AU,paymentRecovered:_U};async function OU(t){let e={};await A("org:info:name:updated",e,t)}s(OU,"nameUpdated");async function IU(t){let e={};await A("org:info:logo:updated",e,t)}s(IU,"logoUpdated");async function wU(t){let e={};await A("org:platformurl:updated",e,t)}s(wU,"platformURLUpdated");async function DU(){let t={};await A("analytics:opt:out",t)}s(DU,"analyticsOptOut");async function RU(){let t={};await A("analytics:opt:out",t)}s(RU,"analyticsOptIn");var kA={nameUpdated:OU,logoUpdated:IU,platformURLUpdated:wU,analyticsOptOut:DU,analyticsOptIn:RU};async function CU(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}s(CU,"init");async function bU(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)}s(bU,"imported");async function xU(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}s(xU,"deleted");var FA={init:CU,imported:bU,deleted:xU};var vU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},"created"),PU=s(async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},"updated"),NU=s(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)},"deleted"),UU=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},"imported"),LU=s(async(t,e)=>{let r={count:t};await A("queries:run",r,e)},"run"),MU=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},"previewed"),BA={created:vU,updated:PU,deleted:NU,imported:UU,run:LU,previewed:MU};async function kU({resource:t,fromWorkspace:e,toWorkspace:r},n){let i={resource:t,fromWorkspace:e,toWorkspace:r};await A("resource:copied_to_workspace",i,n)}s(kU,"duplicatedToWorkspace");var WA={duplicatedToWorkspace:kU};async function FU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}s(FU,"created");async function BU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}s(BU,"updated");async function WU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}s(WU,"deleted");async function $U(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}s($U,"assigned");async function GU(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}s(GU,"unassigned");var Ao={created:FU,updated:BU,deleted:WU,assigned:$U,unassigned:GU};async function VU(t,e){await A("row_action:created",t,e)}s(VU,"created");var $A={created:VU};var qU=s(async(t,e)=>{let r={count:t};await A("rows:created",r,e)},"created"),KU=s(async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},"imported"),GA={created:qU,imported:KU};async function QU(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)}s(QU,"created");async function jU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}s(jU,"deleted");var VA={created:QU,deleted:jU};async function HU(t){let e={timezone:t};await A("served:builder",e)}s(HU,"servedBuilder");async function YU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}s(YU,"servedApp");async function zU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}s(zU,"servedAppPreview");var qA={servedBuilder:HU,servedApp:YU,servedAppPreview:zU};async function JU(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}s(JU,"created");async function ZU(t,e){let r,n;for(let o in e.schema)if(!t.schema[o]){let a=e.schema[o];"default"in a&&a.default!=null&&(r=!0),a.type==="ai"&&(n=a.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}s(ZU,"updated");async function XU(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}s(XU,"deleted");async function eL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}s(eL,"exported");async function tL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}s(tL,"imported");var KA={created:JU,updated:ZU,deleted:XU,exported:eL,imported:tL};async function rL(t,e){let r={userId:t._id,viaScim:gt(),audited:{email:t.email}};await A("user:created",r,e)}s(rL,"created");async function nL(t){let e={userId:t._id,viaScim:gt(),audited:{email:t.email}};await A("user:updated",e)}s(nL,"updated");async function iL(t){let e={userId:t._id,viaScim:gt(),audited:{email:t.email}};await A("user:deleted",e)}s(iL,"deleted");async function sL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}s(sL,"permissionAdminAssigned");async function oL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}s(oL,"permissionAdminRemoved");async function aL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}s(aL,"permissionBuilderAssigned");async function uL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}s(uL,"permissionBuilderRemoved");async function cL(t){let e={audited:{email:t}};await A("user:invited",e)}s(cL,"invited");async function lL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}s(lL,"inviteAccepted");async function dL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}s(dL,"passwordForceReset");async function fL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}s(fL,"passwordUpdated");async function pL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}s(pL,"passwordResetRequested");async function mL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}s(mL,"passwordReset");async function hL(t){let e={users:t};await A("user:data:collaboration",e)}s(hL,"dataCollaboration");var Fe={created:rL,updated:nL,deleted:iL,permissionAdminAssigned:sL,permissionAdminRemoved:oL,permissionBuilderAssigned:aL,permissionBuilderRemoved:uL,invited:cL,inviteAccepted:lL,passwordForceReset:dL,passwordUpdated:fL,passwordResetRequested:pL,passwordReset:mL,dataCollaboration:hL};async function gL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}s(gL,"created");async function EL(t){let e={tableId:t.tableId};await A("view:updated",e)}s(EL,"updated");async function yL(t,e){let r={...Ue.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}s(yL,"deleted");async function TL(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}s(TL,"exported");async function SL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}s(SL,"filterCreated");async function AL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}s(AL,"filterUpdated");async function _L(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}s(_L,"filterDeleted");async function OL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}s(OL,"calculationCreated");async function IL(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}s(IL,"calculationUpdated");async function wL(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}s(wL,"calculationDeleted");async function DL(t,e){let r={tableId:t};await A("view:join:created",r,e)}s(DL,"viewJoinCreated");var QA={created:gL,updated:EL,deleted:yL,exported:TL,filterCreated:SL,filterUpdated:AL,filterDeleted:_L,calculationCreated:OL,calculationUpdated:IL,calculationDeleted:wL,viewJoinCreated:DL};async function RL(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}s(RL,"deleted");var jA={deleted:RL};function CL(){}s(CL,"initAsyncEvents");var bL=s(async()=>{await Zt.shutdown(),console.log("Events shutdown")},"shutdown");var Jp={};P(Jp,{creatorsInList:()=>An,getAccountHolderFromUsers:()=>sc,hasAdminPermissions:()=>Cr,hasAppBuilderPermissions:()=>ZA,hasBuilderPermissions:()=>ke,isAdmin:()=>bt,isAdminOrBuilder:()=>JA,isAdminOrWorkspaceBuilder:()=>rc,isBuilder:()=>Si,isCreatorAsync:()=>Oo,isCreatorSync:()=>nc,isGlobalBuilder:()=>zA,validateUniqueUser:()=>ic});async function zp(t){let e=[],r=await HA(t);e.push(...r.map(a=>a.email));let n=await YA(t);e.push(...n.map(a=>a._id));let i=await gi(t);e.push(...i.map(a=>a.email));let o=await Cp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(zp,"searchExistingEmails");async function tc(t){return await Fs("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(tc,"getPlatformUsers");async function _o(t){return(await tc(t))[0]??null}s(_o,"getFirstPlatformUser");async function HA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await qt("by_email2",r,void 0,n)}s(HA,"getExistingTenantUsers");async function YA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fs("platform_users_lowercase_2",r)}s(YA,"getExistingPlatformUsers");async function gi(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fs("account_by_email",r)}s(gi,"getExistingAccounts");var Si=Le.users.isBuilder,bt=Le.users.isAdmin,zA=Le.users.isGlobalBuilder,JA=Le.users.isAdminOrBuilder,Cr=Le.users.hasAdminPermissions,ke=Le.users.hasBuilderPermissions,ZA=Le.users.hasAppBuilderPermissions,rc=Le.users.isAdminOrWorkspaceBuilder;async function An(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await Y().getMultiple(r,{allowMissing:!0}),t.map(i=>nc(i,e))}s(An,"creatorsInList");async function Oo(t){let e=[];return t.userGroups&&(e=await Y().getMultiple(t.userGroups)),nc(t,e)}s(Oo,"isCreatorAsync");function nc(t,e){let r=Le.users.isCreator(t);return!r&&t?xL(t,e):r}s(nc,"isCreatorSync");function xL(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}s(xL,"isCreatorByGroupMembership");async function ic(t,e){if(g.MULTI_TENANCY){let r=await _o(t);if(r!=null&&r.tenantId!==e)throw new zt(t)}if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let r=await Rr(t);if(r&&r.verified&&r.tenantId!==e)throw new zt(t)}}s(ic,"validateUniqueUser");async function sc(t){if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let e=await gi(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(sc,"getAccountHolderFromUsers");var Zp=s(async t=>{await Fe.deleted(t),ke(t)&&await Fe.permissionBuilderRemoved(t),Cr(t)&&await Fe.permissionAdminRemoved(t)},"handleDeleteEvents"),vL=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ao.assigned(t,i)},"assignAppRoleEvents"),PL=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ao.unassigned(t,i)},"unassignAppRoleEvents"),NL=s(async(t,e)=>{let r=t.roles,n=e?.roles;await vL(t,r,n),await PL(t,r,n)},"handleAppRoleEvents"),Xp=s(async(t,e,r)=>{let n=r;!n&&!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL&&(n=await fi($())),await St.identifyUser(t,n),e?(await Fe.updated(t),LL(t,e)&&await Fe.permissionBuilderRemoved(t),kL(t,e)&&await Fe.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Fe.passwordForceReset(t),t.password!==e.password&&await Fe.passwordUpdated(t)):await Fe.created(t),UL(t,e)&&await Fe.permissionBuilderAssigned(t),ML(t,e)&&await Fe.permissionAdminAssigned(t),await NL(t,e)},"handleSaveEvents"),UL=s((t,e)=>XA(t,e,ke),"isAddingBuilder"),LL=s((t,e)=>e_(t,e,ke),"isRemovingBuilder"),ML=s((t,e)=>XA(t,e,Cr),"isAddingAdmin"),kL=s((t,e)=>e_(t,e,Cr),"isRemovingAdmin"),XA=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),e_=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var BL=s(async t=>{let e=t._id;await yt.removeUser(t),await Zp(t),await br.invalidateUser(e),await Tn(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),xt=class t{static{s(this,"UserDB")}static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return g.ENABLE_SSO_MAINTENANCE_MODE&&bt(e)?!1:await t.features.isSSOEnforced()||Ko(e)?!0:(r||(r=await fi($())),!!(r&&r.email===e.email&&qo(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,o){let{password:a,_id:u}=e;i&&!i.password&&(r.requirePassword=!1);let c;if(a&&a!==i?.password){if(await t.isPreventPasswordActions(e,o))throw new Me("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=Mp(a);if(!f.valid)throw new Me(f.error,400)}c=r.hashPassword?await uf(a):a}else i&&(c=i.password);let l=r.requirePassword&&!await t.features.isSSOEnforced();if(!c&&l)throw"Password must be specified.";u=u||ri();let d={createdAt:Date.now(),...i,...e,_id:u,password:c,tenantId:n};return d.roles||(d.roles={}),d.status==null&&(d.status="active"),d}static async allUsers(){return(await Y().allDocs(on(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByWorkspace(e){if(typeof e!="string"||!e)throw new Error("Must provide a string based workspace ID");return{userCount:(await Bs("by_app",ni(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await em(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return At(e)}static async getUser(e){let r=await _n(e);return r&&delete r.password,r}static async bulkGet(e){return await oc(e)}static async bulkUpdate(e){return await Io(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=$(),i=Y(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await _n(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!l&&o&&(l=await At(o),l&&l._id!==a))throw new zt(o);let d=1,f=0;if((r.isAccountHolder||l)&&(d=0,f=1),l){let[m,E]=await An([l,e]);f=m!==E?1:0}let h=!l,p=!!l&&!!o&&l.email!==o,S=!r.isAccountHolder&&!!o&&(h||p);return t.quotas.addUsers(d,f,async()=>{S&&await ic(o,n);let m=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(m=tm(m,l)),!l&&c?.length&&(m.roles={...c});let E=[];if(!a&&u.length>0)for(let y of u)E.push(t.groups.addUsers(y,[m._id]));try{let y=await i.put(m);return m._rev=y.rev,await Xp(m,l),l&&m.email!==l.email&&await yt.removeUser({email:l.email}),await yt.addUser(n,m._id,m.email,m.ssoId),await br.invalidateUser(y.id),await Promise.all(E),i.get(m._id)}catch(y){throw y.status===409?"User exists already":y}})}static async bulkCreate(e,r){let n=$(),i=[],o=[],a=[],u=e.map(h=>h.email),c=await zp(u),l=[];for(let h of e){let p=o.find(m=>m.email.toLowerCase()===h.email.toLowerCase()),S=c.includes(h.email.toLowerCase());if(p||S){l.push({email:h.email,reason:"Unavailable"});continue}h.userGroups=r||[],o.push(h),await Oo(h)&&a.push(h)}let d=await fi(n),f=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let S of o)f&&delete S.password,i.push(t.buildUser(S,{hashPassword:!0,requirePassword:!f},n,void 0,d));let h=await Promise.all(i);await Io(h);for(let S of h)await yt.addUser(n,S._id,S.email),await Xp(S,void 0,d);let p=h.map(S=>({_id:S._id,email:S.email}));if(Array.isArray(p)&&r){let S=[],m=p.map(E=>E._id);for(let E of r)S.push(t.groups.addUsers(E,m));await Promise.all(S)}return{successful:p,unsuccessful:l}})}static async bulkDelete(e){let r=Y(),n={successful:[],unsuccessful:[]},i=await sc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),u=a.map(p=>({...p,_deleted:!0})),c=await Io(u),d=(await An(a)).filter(p=>p).length,f=[];for(let p of a){let m=(await _o(p._id)).ssoId;m&&(await tc(m)).filter(y=>y.ssoId==null).forEach(y=>{f.push({...y,_deleted:!0})}),await BL(p)}await Dr().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let h={};return a.reduce((p,S)=>(p[S._id]=S,p),h),c.forEach(p=>{let S=h[p.id].email;p.ok?n.successful.push({_id:p.id,email:S}):n.unsuccessful.push({_id:p.id,email:S,reason:"Database error"})}),n}static async destroy(e){let r=Y(),n=await r.get(e),i=n._id;if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Rr(a))throw n.userId===$t()._id?new Me('Please visit "Account" to delete this user',400):new Me("Account holder cannot be deleted",400)}await yt.removeUser(n),await r.remove(i,n._rev);let o=await Oo(n)?1:0;await t.quotas.removeUsers(1,o),await Zp(n),await br.invalidateUser(i),await Tn(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,o={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&&(o.ssoId=n.ssoId),await li(ye.CHECKLIST),await t.save(o,{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 Do(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(Do,"removeUserPassword");async function oc(t,e){let n=(await Y().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Do(n)),n}s(oc,"bulkGetGlobalUsersById");async function $L(){let t=Y(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Pe}`})).rows.map(n=>n.id)}s($L,"getAllUserIds");async function GL(){let t=Y(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Pe}`,include_docs:!0})).rows.map(n=>n.doc)}s(GL,"getAllUsers");async function Io(t){return await Y().bulkDocs(t)}s(Io,"bulkUpdateGlobalUsers");async function _n(t,e){let n=await Y().get(t);return e?.cleanup&&(n=Do(n)),n}s(_n,"getById");async function At(t,e){if(t==null)throw"Must supply an email address to view";let r=await qt("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=Do(n)),n}s(At,"getGlobalUserByEmail");async function VL(t){try{let e=await At(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(VL,"doesUserExist");async function t_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ni(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await qt("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=Do(o)),o}s(t_,"searchGlobalUsersByApp");async function em(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let a={[r]:{$exists:!0}};n.push(a)}return(await Y().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(em,"searchGlobalUsersByAppAccess");function r_(t,e){if(e)return hu(He(t),e._id)}s(r_,"getGlobalUserByAppPage");async function n_(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,o=await qt("by_email2",{...e,startkey:i,endkey:`${n}${Pe}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=Do(a)),a}s(n_,"searchGlobalUsersByEmail");var qL=8;async function i_({bookmark:t,query:e,appId:r,limit:n}={}){let i=Y(),o=n??qL,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await _n(e.equal._id)]:r?(c=await t_(r,u),d=s(f=>r_(r,f),"getKey")):e?.string?.email?(c=await n_(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await oc(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(on(null,{...u,limit:void 0}))).rows.map(h=>h.doc),c=mr.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(on(null,u))).rows.map(h=>h.doc),qf(c,o,{paginate:!0,property:l,getKey:d})}s(i_,"paginatedUsers");async function KL(){return(await Bs("by_email2",{limit:0,include_docs:!1})).total_rows}s(KL,"getUserCount");async function QL(){let t=0;async function e(r){let n=await i_({bookmark:r}),i=await An(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(QL,"getCreatorCount");function jL(t){return delete t.admin,delete t.builder,t}s(jL,"removePortalUserPermissions");function tm(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}s(tm,"cleanseUserObject");async function HL(t,e){let r=He(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await xt.save(t,{hashPassword:!1})}s(HL,"addAppBuilder");async function YL(t,e){let r=He(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await xt.save(t,{hashPassword:!1})}s(YL,"removeAppBuilder");var s_=3600;async function zL(t,e){let n=await Yf(e).get(t);if(n.budibaseAccess=!0,!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let i=await Rr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(zL,"populateFromDB");async function JL(t){let e=await xt.bulkGet(t),r=t.filter((i,o)=>!e[o]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let o=await Rr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(JL,"populateUsersFromDB");async function Ro({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=zL),!e)try{e=$()}catch{e=await yt.lookupTenantId(t)}let i=await vs(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,s_)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Le.users.isGlobalBuilder(o)&&await Ce(e,async()=>{let a=await xt.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(Ro,"getUser");async function ZL(t){let e=await vs(),r=await e.bulkGet(t),n=t.filter(a=>!r[a]),i=Object.values(r).filter(a=>!!a),o;if(n.length){let a=await JL(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,s_);i.push(...a.users)}return{users:i,notFoundIds:o}}s(ZL,"getUsers");async function Co(t){await(await vs()).delete(t)}s(Co,"invalidateUser");var sm={};P(sm,{Writethrough:()=>nm});var o_=1e4,rm=null;async function ac(){if(!rm){let t=await kf();rm=new fn(t)}return rm}s(ac,"getCache");function bo(t,e){return t.name+e}s(bo,"makeCacheKey");function im(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(im,"makeCacheItem");async function XL(t,e,r=o_){let n=await ac(),i=e._id,o;i&&(o=await n.get(bo(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await no({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let l=s(async d=>{let f=await t.put(d,{force:!0});u._id=f.id,u._rev=f.rev},"writeDb");try{await l(e)}catch(d){if(d.status!==409)throw d;ci("Ignoring conflict in write-through cache")}})).executed||ci("Ignoring redlock conflict in write-through cache")),o=im(u,a?null:o?.lastWrite),u._id&&await n.store(bo(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(XL,"put");async function e0(t,e){let r=await ac(),n=bo(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=im(o),await r.store(n,i)}return i.doc}s(e0,"get");async function t0(t,e){let r=await ac(),n=bo(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=im(o),await r.store(n,i)}return i.doc}s(t0,"tryGet");async function r0(t,e,r){let n=await ac();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(bo(t,i))}finally{await t.remove(i,r)}}s(r0,"remove");var nm=class{static{s(this,"Writethrough")}constructor(e,r=o_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return XL(this.db,e,r)}async get(e){return e0(this.db,e)}async tryGet(e){return t0(this.db,e)}async remove(e,r){return r0(this.db,e,r)}};function xo(t){return`config${C}${t}`}s(xo,"generateConfigID");var uc="en";function n0(){return{_id:xo("translations"),type:"translations",config:{defaultLocale:uc,locales:{[uc]:{label:"English",overrides:{}}}}}}s(n0,"createDefaultTranslationsConfig");function i0(t){let e=t?.defaultLocale||uc,r={...t?.locales??{}};r[e]||(r[e]={label:e===uc?"English":e,overrides:{}});for(let n of Object.keys(r))r[n].overrides||(r[n]={...r[n],overrides:{}});return{defaultLocale:e,locales:r}}s(i0,"prepareTranslationsConfig");async function Be(t){let e=Y();try{return await e.get(xo(t))}catch(r){if(r.status===404)return;throw r}}s(Be,"getConfig");async function s0(t){return t._id||(t._id=xo(t.type)),Y().put(t)}s(s0,"save");async function a_(){let t=await Be("translations");return t?(t.config=i0(t.config),t):n0()}s(a_,"getTranslationsConfigDoc");async function o0(){return(await a_()).config}s(o0,"getTranslationsConfig");async function yi(){let t=await Be("settings");return t||(t={_id:xo("settings"),type:"settings",config:{}}),t.config.platformUrl=await vo({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Yu({config:t.config}),t}s(yi,"getSettingsConfigDoc");async function am(){return(await yi()).config}s(am,"getSettingsConfig");async function vo(t={tenantAware:!0}){let e=g.PLATFORM_URL||"http://localhost:10000";if(!g.SELF_HOSTED&&g.MULTI_TENANCY&&t.tenantAware){let r=$();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(g.SELF_HOSTED){let r=t?.config?t.config:(await Be("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(vo,"getPlatformUrl");var Yu=s(async t=>{if(!g.SELF_HOSTED)return!!g.ENABLE_ANALYTICS;let e=await wr(ye.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Be("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=g.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function a0(){return await Be("google")}s(a0,"getGoogleConfigDoc");async function lc(){return(await a0())?.config}s(lc,"getGoogleConfig");async function um(){if(!g.SELF_HOSTED)return om();let t=await lc();return(!t||!t.activated)&&(t=om()),t}s(um,"getGoogleDatasourceConfig");function om(){if(g.GOOGLE_CLIENT_ID&&g.GOOGLE_CLIENT_SECRET)return{clientID:g.GOOGLE_CLIENT_ID,clientSecret:g.GOOGLE_CLIENT_SECRET,activated:!0}}s(om,"getDefaultGoogleConfig");async function u0(){return Be("logos_oidc")}s(u0,"getOIDCLogosDoc");async function c0(){return Be("oidc")}s(c0,"getOIDCConfigDoc");async function l0(){let t=(await c0())?.config;return t?.configs&&t.configs[0]}s(l0,"getOIDCConfig");async function cm(t){let e=(await Be("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(cm,"getOIDCConfigById");async function u_(){return Be("smtp")}s(u_,"getSMTPConfigDoc");async function d0(t){let e=await u_();if(e)return e.config;let r=g.SELF_HOSTED||!t;if(g.SMTP_FALLBACK_ENABLED&&r)return{port:g.SMTP_PORT,host:g.SMTP_HOST,secure:!1,from:g.SMTP_FROM_ADDRESS,auth:{user:g.SMTP_USER,pass:g.SMTP_PASSWORD},fallback:!0}}s(d0,"getSMTPConfig");async function f0(){return(await Be("scim"))?.config}s(f0,"getSCIMConfig");async function p0(){return Be("recaptcha")}s(p0,"getRecaptchaConfig");var Tm={};P(Tm,{AccessController:()=>fm,BUILTIN_ROLE_IDS:()=>pm,Role:()=>xr,RoleHierarchyTraversal:()=>dc,RoleIDVersion:()=>mm,builtinRoleToNumber:()=>Po,checkForRoleResourceArray:()=>f_,externalRole:()=>T0,findRole:()=>No,getAllRoleIds:()=>O0,getAllRoles:()=>ym,getBuiltinRole:()=>l_,getBuiltinRoles:()=>gm,getDBRoleID:()=>p_,getExternalRoleID:()=>vr,getExternalRoleIDs:()=>m_,getRole:()=>S0,getUserRoleHierarchy:()=>Em,getUserRoleIdHierarchy:()=>d_,isBuiltin:()=>On,lowerBuiltinRoleID:()=>y0,prefixRoleIDNoBuiltin:()=>dm,roleIDsAreEqual:()=>ot,roleToNumber:()=>E0,saveRoles:()=>A0,validInherits:()=>g0});var c_=require("lodash"),fc=B(require("lodash/fp/cloneDeep")),lm=B(require("semver"));var pm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ie={...pm,BUILDER:"BUILDER"},mm={UUID:void 0,NAME:"name"};function h0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(h0,"rolesInList");var xr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=mm.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=dm(e):e&&Array.isArray(e)&&(e=e.map(dm)),this.inherits=e,this}},dc=class{static{s(this,"RoleHierarchyTraversal")}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 o of e.inherits){let a=No(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!h0(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=No(a.inherits,n,r),a&&i.push(a),Ue.roles.checkForRoleInheritanceLoops(i))break}}return(0,c_.uniqBy)(i,o=>o._id)}},hm={ADMIN:new xr(ie.ADMIN,ie.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ie.POWER),POWER:new xr(ie.POWER,ie.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ie.BASIC),BASIC:new xr(ie.BASIC,ie.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ie.PUBLIC),PUBLIC:new xr(ie.PUBLIC,ie.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new xr(ie.BUILDER,ie.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function gm(){return(0,fc.default)(hm)}s(gm,"getBuiltinRoles");function On(t){return Object.values(pm).includes(t)}s(On,"isBuiltin");function dm(t){return On(t)?t:Gt(t)}s(dm,"prefixRoleIDNoBuiltin");function l_(t){let e=Object.values(hm).find(r=>t.includes(r._id));if(e)return(0,fc.default)(e)}s(l_,"getBuiltinRole");function g0(t,e){if(!e)return!1;let r=s(n=>t.find(i=>ot(i._id,n)),"find");if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}s(g0,"validInherits");function Po(t){let e=gm(),r=Object.values(e).length+1;if(ot(t,ie.ADMIN)||ot(t,ie.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}s(Po,"builtinRoleToNumber");async function E0(t){if(On(t))return Po(t);let e=await Em(t,{defaultPublic:!0}),r=s(n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(o=>{let a=e.find(u=>ot(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(On(n.inherits))return Po(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(E0,"roleToNumber");function y0(t,e){return t?e&&Po(t)>Po(e)?e:t:e}s(y0,"lowerBuiltinRoleID");function ot(t,e){return Gt(t)===Gt(e)}s(ot,"roleIDsAreEqual");function T0(t){let e;return t._id&&(e=vr(t._id)),{...t,_id:e,inherits:m_(t.inherits,t.version)}}s(T0,"externalRole");function No(t,e,r){let n=l_(t);n||(t=Gt(t));let i=e.find(o=>o._id&&ot(o._id,t));return!i&&!On(t)&&r?.defaultPublic?(0,fc.default)(hm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=vr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(No,"findRole");async function S0(t,e){let r=ei(),n=[];if(!On(t)){let i=await r.tryGet(p_(t));i&&n.push(i)}return No(t,n,e)}s(S0,"getRole");async function A0(t){await ei().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:Gt(r._id)})))}s(A0,"saveRoles");async function _0(t,e){let r=await ym();if(ot(t,ie.ADMIN))return r;let n=No(t,r,e),i=[];return n&&(i=new dc(r,e).walk(n)),i}s(_0,"getAllUserRoles");async function d_(t){return(await Em(t)).map(r=>r._id)}s(d_,"getUserRoleIdHierarchy");async function Em(t,e){return _0(t,e)}s(Em,"getUserRoleHierarchy");function f_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(f_,"checkForRoleResourceArray");async function O0(t){return(await ym(t)).map(r=>r._id)}s(O0,"getAllRoleIds");async function ym(t){if(t)return je(t,e);{let r;try{r=ei()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(gu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=vr(u._id,u.version)));let i=gm(),o=[];!r||await I0(r)?o=[ie.ADMIN,ie.POWER,ie.BASIC,ie.PUBLIC]:o=[ie.ADMIN,ie.BASIC,ie.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>ot(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=vr(u._id,c.version),n.push({...u,...c,name:u.name,_id:vr(u._id,u.version),uiMetadata:{...c.uiMetadata,...u.uiMetadata}}))}for(let a of n)if(a.permissions)for(let u of Object.keys(a.permissions))a.permissions=f_(a.permissions,u);return n}s(e,"internal")}s(ym,"getAllRoles");async function I0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!lm.default.valid(r)?!0:!lm.default.gte(r,g.MIN_VERSION_WITHOUT_POWER_ROLE)}s(I0,"shouldIncludePowerRole");var fm=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||ot(e,ie.BUILDER)||ot(r,e)||ot(r,ie.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await d_(r),this.userHierarchies[r]=n),n?.find(i=>ot(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let o=await this.checkScreenAccess(i,r);o&&n.push(o)}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 p_(t){return t?.startsWith("role")?t:Gt(t)}s(p_,"getDBRoleID");function vr(t,e){if(t.startsWith(`role${C}`)&&(On(t)||e===mm.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}s(vr,"getExternalRoleID");function m_(t,e){return t&&(typeof t=="string"?vr(t,e):t.map(r=>vr(r,e)))}s(m_,"getExternalRoleIDs");var Sm={};P(Sm,{BUILDER:()=>b0,BUILTIN_PERMISSIONS:()=>pc,CREATOR:()=>x0,GLOBAL_BUILDER:()=>v0,PermissionImpl:()=>se,PermissionLevel:()=>Ri,PermissionType:()=>Go,doesHaveBasePermission:()=>R0,getAllowedLevels:()=>y_,getBuiltinPermissionByID:()=>D0,getBuiltinPermissions:()=>w0,isPermissionLevelHigherThanRead:()=>C0,levelToNumber:()=>E_});var h_=B(require("lodash/flatten")),g_=B(require("lodash/fp/cloneDeep"));var se=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function E_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(E_,"levelToNumber");function y_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(y_,"getAllowedLevels");var pc={PUBLIC:{_id:"public",name:"Public",permissions:[new se("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new se("query","read"),new se("table","read"),new se("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new se("query","write"),new se("table","write"),new se("automation","execute"),new se("legacy_view","read"),new se("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new se("table","write"),new se("user","read"),new se("automation","execute"),new se("webhook","read"),new se("legacy_view","read"),new se("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new se("table","admin"),new se("user","admin"),new se("automation","admin"),new se("webhook","read"),new se("query","admin"),new se("legacy_view","read"),new se("app","read")]}};function w0(){return(0,g_.default)(pc)}s(w0,"getBuiltinPermissions");function D0(t){return Object.values(pc).find(r=>r._id===t)}s(D0,"getBuiltinPermissionByID");function R0(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(pc),o=(0,h_.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&y_(a.level).indexOf(e)!==-1)return!0;return!1}s(R0,"doesHaveBasePermission");function C0(t){return E_(t)>1}s(C0,"isPermissionLevelHigherThanRead");var b0="builder",x0="creator",v0="globalBuilder";var Om={};P(Om,{FlagSet:()=>hc,all:()=>M0,flags:()=>Am,getEnvFlags:()=>__,init:()=>P0,isEnabled:()=>L0,parseEnvFlags:()=>Ec,shutdown:()=>N0,testutils:()=>_m});var gc=B(require("crypto")),T_=B(require("dd-trace")),S_=require("lodash"),A_=require("posthog-node");var mc;function P0(t){g.POSTHOG_TOKEN&&g.POSTHOG_API_HOST&&!g.SELF_HOSTED&&g.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),mc=new A_.PostHog(g.POSTHOG_TOKEN,{host:g.POSTHOG_API_HOST,personalApiKey:g.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:pe.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}s(P0,"init");function N0(){mc?.shutdown()}s(N0,"shutdown");function Ec(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let o of i){let a=!0;o.startsWith("!")&&(o=o.slice(1),a=!1),r.push({tenantId:n,key:o,value:a})}return r}s(Ec,"parseEnvFlags");function __(){return Ec(g.TENANT_FEATURE_FLAGS||"")}s(__,"getEnvFlags");var hc=class{constructor(e){this.flagSchema=e;this.setId=gc.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,S_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await T_.default.trace("features.fetch",async e=>{let r=vf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=$(),a=new Set;if(tu())return i;for(let{tenantId:f,key:h,value:p}of __())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,p===!1&&a.add(h),!!this.isFlagName(h))){if(typeof i[h]!="boolean")throw new Error(`Feature: ${h} is not a boolean`);i[h]=p,n[`flags.${h}.source`]="environment"}let u=$t(),c=u?._id;if(!c){let f=bf();f&&(c=gc.createHash("sha512").update(f).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,mc&&c){n.readFromPostHog=!0;let f=await yi(),h={tenantId:l},p={tenant:{id:l}};f.config.createdVersion&&(p.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(p.tenant.createdAt=`${f.createdAt}`);let S=await mc.getAllFlags(c,{personProperties:h,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:p});for(let[m,E]of Object.entries(S))if(this.isFlagName(m)){if(typeof E!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${E}`);continue}if(!(i[m]===!0||a.has(m)))try{i[m]=E,n[`flags.${m}.source`]="posthog"}catch(y){console.warn(`Error parsing posthog flag "${m}": ${E}`,y)}}}let d=Nf();for(let[f,h]of Object.entries(d))this.isFlagName(f)&&typeof h=="boolean"&&(i[f]=h,n[`flags.${f}.source`]="override");Pf(this.setId,i);for(let[f,h]of Object.entries(i))n[`flags.${f}.value`]=h;return e?.addTags(n),i})}},U0={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,AI_CHAT:!1,AI_RAG:!1,WORKSPACE_HOME:!1,DEBUG_UI:g.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1},Am=new hc(U0);async function L0(t){return await Am.isEnabled(t)}s(L0,"isEnabled");async function M0(){return await Am.fetch()}s(M0,"all");var _m={};P(_m,{setFeatureFlags:()=>O_,withFeatureFlags:()=>B0});function k0(){let t={};for(let{tenantId:e,key:r,value:n}of Ec(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(k0,"getCurrentFlags");function F0(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,o]of Object.entries(n))o===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}s(F0,"buildFlagString");function O_(t,e){let r=k0();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=F0(r);return Os({TENANT_FEATURE_FLAGS:n})}s(O_,"setFeatureFlags");function B0(t,e,r){let n=O_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(B0,"withFeatureFlags");var Lm={};P(Lm,{adminOnly:()=>yc,auditLog:()=>Tc,authError:()=>Oe,buildAuthMiddleware:()=>IM,buildCsrfMiddleware:()=>DM,buildTenancyMiddleware:()=>wM,builderOnly:()=>Cc,builderOrAdmin:()=>bc,google:()=>tr,internalApi:()=>vc,joiValidator:()=>Uo,oidc:()=>rr,passport:()=>RM,platformLogout:()=>PM,refreshOAuthToken:()=>xM,ssoCallbackUrl:()=>Nr,updateUserOAuth:()=>vM,workspaceBuilderOrAdmin:()=>Uc});var Um={};P(Um,{activeTenant:()=>H_,adminOnly:()=>yc,auditLog:()=>Tc,authError:()=>Oe,authenticated:()=>Rc,builderOnly:()=>Cc,builderOrAdmin:()=>bc,correlation:()=>w_,csp:()=>L_,csrf:()=>xc,datasource:()=>_M,errorHandling:()=>k_,featureFlagCookie:()=>F_,google:()=>tr,internalApi:()=>vc,ip:()=>B_,joiValidator:()=>Uo,local:()=>_i,oidc:()=>rr,pino:()=>D_,querystringToBody:()=>j_,ssoCallbackUrl:()=>Nr,tenancy:()=>Nc,workspaceBuilderOrAdmin:()=>Uc});var I_=require("uuid");var W0=require("correlation-id"),w_=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,I_.v4)()),W0.withId(r,()=>e())},"correlationMiddleware");var $0=require("koa-pino-logger"),G0=require("correlation-id");function V0(){return{logger:Pu,genReqId:G0.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})}}}s(V0,"pinoSettings");function q0(){return g.HTTP_LOGGING?$0(V0()):(t,e)=>e()}s(q0,"getMiddleware");var D_=q0();var yc=s(async(t,e)=>(!t.internal&&!bt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var Tc=s(async(t,e)=>e(),"auditLog");var K0=/\/:(.*?)(\/.*)?$/g,Xt=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(K0);if(i)for(let o of i){let u="/.*"+(o.endsWith("/")?"/":"");r=r.replace(o,u)}return{regex:new RegExp(r),method:n,route:r}}):[],"buildMatcherRegex"),er=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var Cm={};P(Cm,{SecretOption:()=>b_,compare:()=>Y0,decrypt:()=>Oc,decryptFile:()=>Z0,encrypt:()=>H0,encryptFile:()=>z0,getSecret:()=>Rm});var vt=B(require("crypto")),Pr=B(require("fs")),Im=require("path"),wm=B(require("zlib"));var Sc="aes-256-ctr",C_="-",Q0=1e4,j0=32,Ac=16,Dm=16,b_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(b_||{});function Rm(t){let e,r;switch(t){case"encryption":e=g.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=g.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(Rm,"getSecret");function _c(t,e){return vt.default.pbkdf2Sync(t,new Uint8Array(e),Q0,j0,"sha512")}s(_c,"stretchString");function H0(t,e="api"){let r=vt.default.randomBytes(Ac),n=_c(Rm(e),r),i=vt.default.createCipheriv(Sc,new Uint8Array(n),new Uint8Array(r)),o=i.update(t,"utf8"),a=i.final(),u=Buffer.concat([new Uint8Array(o),new Uint8Array(a)]).toString("hex");return`${r.toString("hex")}${C_}${u}`}s(H0,"encrypt");function Oc(t,e="api"){let[r,n]=t.split(C_),i=Buffer.from(r,"hex"),o=_c(Rm(e),i),a=vt.default.createDecipheriv(Sc,new Uint8Array(o),new Uint8Array(i)),u=a.update(n,"hex"),c=a.final();return Buffer.concat([new Uint8Array(u),new Uint8Array(c)]).toString()}s(Oc,"decrypt");function Y0(t,e,r="api"){try{let n=new TextEncoder,i=n.encode(Oc(e,r)),o=n.encode(t);return i.length!==o.length?!1:vt.default.timingSafeEqual(i,o)}catch{return!1}}s(Y0,"compare");async function z0({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Im.join)(t,e);if(Pr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=Pr.default.createReadStream(i),a=Pr.default.createWriteStream((0,Im.join)(t,n)),u=vt.default.randomBytes(Ac),c=vt.default.randomBytes(Dm),l=_c(r,u),d=vt.default.createCipheriv(Sc,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(wm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(z0,"encryptFile");async function J0(t){let e=Pr.default.createReadStream(t),r=await R_(e,Ac),n=await R_(e,Dm);return e.close(),{salt:r,iv:n}}s(J0,"getSaltAndIV");async function Z0(t,e,r){if(Pr.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await J0(t),o=Pr.default.createReadStream(t,{start:Ac+Dm}),a=Pr.default.createWriteStream(e),u=_c(r,n),c=vt.default.createDecipheriv(Sc,new Uint8Array(u),new Uint8Array(i)),l=wm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",h=>{a.close(),f(h)}),c.on("error",h=>{a.close(),f(h)}),l.on("error",h=>{a.close(),f(h)}),a.on("error",h=>{a.close(),f(h)})})}s(Z0,"decryptFile");function R_(t,e){return new Promise((r,n)=>{let i=0,o=[];t.on("readable",()=>{let a;for(;(a=t.read(e-i))!==null;)o.push(a),i+=a.length;r(Buffer.concat(o.map(u=>new Uint8Array(u))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",a=>{n(a)})})}s(R_,"readBytes");var bm={};P(bm,{APIWarning:()=>In,FeatureDisabledWarning:()=>wc,InvalidAPIKeyWarning:()=>Ai,UsageLimitWarning:()=>Ic});var In=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"APIWarning")}},Ai=class extends In{static{s(this,"InvalidAPIKeyWarning")}constructor(){super("Invalid API key","invalid_api_key")}},Ic=class extends In{constructor(r){super(`Usage limit exceeded: '${r}'`,"usage_limit_exceeded");this.limitName=r}static{s(this,"UsageLimitWarning")}getPublicWarning(){return{limitName:this.limitName}}},wc=class extends In{constructor(r){super(`Feature disabled: '${r}'`,"feature_disabled");this.featureName=r,this.status=400}static{s(this,"FeatureDisabledWarning")}getPublicWarning(){return{featureName:this.featureName}}getPublicError(){return{featureName:this.featureName}}};var v_=B(require("dd-trace"));var eM=g.SESSION_UPDATE_PERIOD?parseInt(g.SESSION_UPDATE_PERIOD):60*1e3;function tM(){return new Date(Date.now()-eM).toISOString()}s(tM,"timeMinusOneMinute");function x_(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}s(x_,"finalise");async function rM(t,e){if(Vs(t))return{valid:!0,user:void 0};let n=Oc(t).split(C)[0];return Ce(n,async()=>{let i;try{let o=Y();i=await qt("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await Ro({userId:i,tenantId:n,populateUser:e})};throw new Ai})}s(rM,"checkApiKey");function Dc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(Dc,"getHeader");function Rc(t=[],e={publicAllowed:!1}){let r=t?Xt(t):[];return async(n,i)=>{let o=!1,a=Dc(n,"x-budibase-api-version");er(n,r)&&(o=!0);try{let c=Dc(n,"x-budibase-token"),l=Qt(n,"budibase:auth")||yu(c),d=Dc(n,"x-budibase-api-key");!d&&n.request.headers.authorization&&(d=n.request.headers.authorization.split(" ")[1]);let f=Dc(n,"x-budibase-tenant-id"),h=!1,p,S=!1,m;if(l&&!d){let y=l.sessionId,I=l.userId,O;try{O=await Bp(I,y),e&&e.populateUser?p=await Ro({userId:I,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):p=await Ro({userId:I,tenantId:O.tenantId,email:O.email}),p.csrfToken=O.csrfToken,m="cookie",O?.lastAccessedAt<tM()&&await Fp(O),h=!0}catch(w){h=!1,console.warn(`Auth Error: ${w.message}`),Ar(n,"budibase:auth")}}if(!h&&d){let y=e.populateUser?e.populateUser(n):null,{valid:I,user:O}=await rM(d,y);I&&(h=!0,m="api_key",p=O,S=!O)}!p&&f?p={tenantId:f}:p&&"password"in p&&delete p.password,h||(h=!1);let E=s(y=>y&&y.email,"isUser");return E(p)&&v_.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),x_(n,{authenticated:h,user:p,internal:S,version:a,publicEndpoint:o,loginMethod:m}),E(p)?ff(p,n,i):i()}catch(c){if(console.warn(`Auth Error: ${c.message}`),c?.name==="JsonWebTokenError"?Ar(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return x_(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c)}}}s(Rc,"authenticated");async function Cc(t,e){if(t.internal)return e();let r=await un(t);return!r&&!g.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!ke(t.user)?t.throw(403,"Builder user only endpoint."):r&&!Si(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(Cc,"builderOnly");async function bc(t,e){if(t.internal||bt(t.user))return e();let r=await un(t);return!r&&!g.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!ke(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!Si(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(bc,"builderOrAdmin");var U_=B(require("crypto"));var P_={"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","https://d2l5prqdbvm3op.cloudfront.net"],"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'"]},N_=/^[A-Za-z0-9-*:/.]+$/,L_=s(async(t,e)=>{let r=U_.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...P_};n["script-src"]=[...P_["script-src"],`'nonce-${r}'`];let i={"media-src":g.CUSTOM_CSP_MEDIA_SRC,"script-src":g.CUSTOM_CSP_SCRIPT_SRC,"connect-src":g.CUSTOM_CSP_CONNECT_SRC,"img-src":g.CUSTOM_CSP_IMG_SRC,"font-src":g.CUSTOM_CSP_FONT_SRC,"frame-src":g.CUSTOM_CSP_FRAME_SRC};for(let[u,c]of Object.entries(i))if(c){let l=c.split(",").map(d=>d.trim()).filter(d=>N_.test(d));n[u]=[...n[u]||[],...l]}if(t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let u=await Us.getWorkspaceMetadata(t.appId);if("name"in u)for(let c of u.scripts||[]){let l=(c.cspWhitelist||"").split(`
38
- `).filter(f=>N_.test(f)),d=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let f of d)n[f]=[...n[f]||[],...l]}}catch(u){console.error(`Error occurred in Content-Security-Policy middleware: ${u}`)}let a=Object.entries(n).map(([u,c])=>`${u} ${c.join(" ")}`).join("; ");t.set("Content-Security-Policy",a),await e()},"contentSecurityPolicy");var nM=["GET","HEAD","OPTIONS"],iM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function xc(t={noCsrfPatterns:[]}){let e=Xt(t.noCsrfPatterns);return async(r,n)=>{if(er(r,e)||nM.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!iM.filter(c=>o.includes(c)).length||r.internal)return n();let a=r.user?.csrfToken;if(!a)return n();let u=r.get("x-csrf-token");return(!u||u!==a)&&r.throw(403,"Invalid CSRF token"),n()}}s(xc,"csrf");function M_(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of Xy){let r=g[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(M_,"stringContainsSecret");async function k_(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:qu(r)};if(M_(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),g.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(k_,"errorHandling");var F_=s(async(t,e)=>{let n=Qt(t,"budibase:featureflags")?.flags||{};await Uf(n,async()=>{await e()})},"featureFlagCookie");async function vc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Vs(r)||t.throw(403,"Unauthorized"),e()}s(vc,"internalApi");async function B_(t,e){return t.ip?await xf(t.ip,()=>e()):e()}s(B_,"ip");var Uo={};P(Uo,{body:()=>sM,params:()=>oM});var xm=B(require("joi"));function W_(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,o)=>{if(!t)return o();let a=null,u=i.request?.[e];i[e]!=null?a=i[e]:u!=null&&(a=u),t.append&&(t=t.append({createdAt:xm.default.any().optional(),updatedAt:xm.default.any().optional()}));let{error:c}=t.validate(a,{allowUnknown:r?.allowUnknown});if(c){let l=c.message;n&&(l=`Invalid ${e} - ${l}`),i.throw(400,l)}return o()}}s(W_,"validate");function sM(t,e){return W_(t,"body",e)}s(sM,"body");function oM(t,e){return W_(t,"params",e)}s(oM,"params");var _i={};P(_i,{authenticate:()=>cM,options:()=>uM});function Oe(t,e,r){return t(r,null,{message:e})}s(Oe,"authError");async function Nr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await am(),n="/api/global/auth";return Er()&&(n+=`/${$()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(Nr,"ssoCallbackUrl");var vm="Invalid credentials",aM="This account has expired. Please reset your password",uM={passReqToCallback:!0};async function cM(t,e,r,n){if(!e)return Oe(n,"Email Required");if(!r)return Oe(n,"Password Required");let i=await At(e);return i==null?(console.info(`user=${e} could not be found`),Oe(n,vm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Oe(n,vm)):i.password?await cf(r,i.password)?(delete i.password,n(null,i)):Oe(n,vm):(console.info(`user=${e} has no password set`,i),Oe(n,aM))}s(cM,"authenticate");var tr={};P(tr,{buildVerifyFn:()=>V_,getCallbackUrl:()=>fM,strategyFactory:()=>Pm});var Lo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function Pc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Oe(r,"sso user id required");if(!t.email)return Oe(r,"sso user email required");let i=ri(t.userId),o;try{o=await _n(i)}catch(u){if(!u.status||u.status!==404)return Oe(r,"Unexpected error when retrieving existing user",u)}if(o||(o=await At(t.email)),!o&&e)return Oe(r,"Email does not yet exist. You must set up your local budibase account first.");o||(o={_id:i,email:t.email,roles:{},tenantId:$()});let a=await lM(o,t);a.forceResetPassword=!1;try{delete a.password,a=await n(a,{hashPassword:!1,requirePassword:!1})}catch(u){return Oe(r,"Error saving user",u)}return r(null,a)}s(Pc,"authenticate");async function lM(t,e){let r,n,i;if(e.profile){let o=e.profile;if(o.name){let a=o.name;a.givenName&&(r=a.givenName),a.familyName&&(n=a.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}s(lM,"syncUser");var dM=require("passport-google-oauth").OAuth2Strategy;function V_(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return Pc(o,!0,i,t)}}s(V_,"buildVerifyFn");async function Pm(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 o=V_(r);return new dM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(Pm,"strategyFactory");async function fM(t){return Nr("google",t)}s(fM,"getCallbackUrl");var rr={};P(rr,{buildVerifyFn:()=>Q_,fetchStrategyConfig:()=>EM,getCallbackUrl:()=>yM,strategyFactory:()=>gM});var q_=B(require("node-fetch"));var K_=require("@govtechsg/passport-openidconnect");function Q_(t){return async(e,r,n,i,o,a,u,c,l)=>{let d=pM(r,n),f=mM(r,n),h={provider:e,providerType:"oidc",userId:d.id,profile:d,email:hM(d,f),oauth2:{accessToken:a,refreshToken:u}};return Pc(h,!1,l,t)}}s(Q_,"buildVerifyFn");function pM(t,e){let r={...t?._json||{}};!r.email&&e.emails?.length&&(r.email=e.emails[0].value);let n=t?.displayName||e.displayName;return{id:t?.id||e.id,name:t?.name||e.name||!!n&&{givenName:n,familyName:""}||void 0,_json:r,provider:t?.provider}}s(pM,"normalizeProfile");function mM(t,e){return{email:t?._json?.email||e.emails?.[0]?.value,preferred_username:e.username}}s(mM,"buildJwtClaims");function hM(t,e){if(t._json.email)return t._json.email.toLowerCase();if(e.email)return e.email.toLowerCase();let r=e.preferred_username;if(r&&Xf(r))return r.toLowerCase();throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(hM,"getEmail");async function gM(t,e){try{let r=Q_(e),n=new K_.Strategy(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(gM,"strategyFactory");async function EM(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let a=await(0,q_.default)(i);if(!a.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${a.statusText}`);let u=await a.json();return{issuer:u.issuer,authorizationURL:u.authorization_endpoint,tokenURL:u.token_endpoint,userInfoURL:u.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(EM,"fetchStrategyConfig");async function yM(){return Nr("oidc")}s(yM,"getCallbackUrl");function j_(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()}s(j_,"querystringToBody");function Nc(t,e,r={noTenancyRequired:!1}){let n=Xt(t),i=Xt(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!er(o,i)};!!er(o,n)||(c.excludeStrategies=["query"]);let d=$s(o,c);return o.set("x-budibase-tenant-id",d),Ce(d,a)}}s(Nc,"tenancy");function H_(t=[]){let e=Xt(t);return async function(r,n){if(er(r,e))return n();try{if((await Be("settings"))?.config?.active===!1){r.status=404,r.body={message:"Tenant not found"};return}}catch(i){if(i.message==="Global DB not found")return n();throw i}return n()}}s(H_,"activeTenant");async function Uc(t,e){if(t.internal||bt(t.user))return e();let r=await un(t);return r&&!rc(t.user,r)?t.throw(403,"Workspace Admin/Builder user only endpoint."):!r&&!g.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!ke(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}s(Uc,"workspaceBuilderOrAdmin");var Nm={};P(Nm,{postAuth:()=>AM,preAuth:()=>SM});var TM=require("passport-google-oauth").OAuth2Strategy;async function Y_(){let t=await um();if(!t)throw new Error("No google configuration found");return t}s(Y_,"fetchGoogleCreds");async function SM(t,e,r){let n=await Y_(),o=`${await vo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await Pm(n,o,Lo);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(a,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}s(SM,"preAuth");async function AM(t,e,r){let n=await Y_(),o=`${await vo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=Qt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new TM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{Ar(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=ee();await Yt(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(AM,"postAuth");var _M={google:Nm};var z_=require("koa-passport"),OM=require("passport-local").Strategy,Lc=require("passport-oauth2-refresh"),IM=Rc,wM=Nc,DM=xc,RM=z_;z_.use(new OM(_i.options,_i.authenticate));async function CM(t,e){let r=await rr.getCallbackUrl(),n,i;try{if(n=await rr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await rr.strategyFactory(n,Lo)}catch{throw new Error("Could not refresh OAuth Token")}return Lc.use(i),new Promise(o=>{Lc.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s(CM,"refreshOIDCAccessToken");async function bM(t,e){let r=await tr.getCallbackUrl(t),n;try{n=await tr.strategyFactory(t,r,Lo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Lc.use(n),new Promise(i=>{Lc.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(bM,"refreshGoogleAccessToken");async function xM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await cm(r);return n?CM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await lc();return n?bM(n,t):{err:{data:"Google configuration not found"}}}}}s(xM,"refreshOAuthToken");async function vM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=Y(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Co(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(vM,"updateUserOAuth");async function PM(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=Qt(e,"budibase:auth"),o=await lo(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):Ar(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await Tn(r,{sessionIds:a,reason:"logout"}),await ec.logout(e.user?.email),await Co(r)}s(PM,"platformLogout");var km={};P(km,{validate:()=>kM});var x=B(require("joi"));var NM=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Mm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(Mm,"runJoi");function UM(t){let e=x.default.object({type:x.default.string().allow("component").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({name:x.default.string().required(),settings:x.default.array().items(x.default.object().unknown(!0)).required()}).unknown(!0)});Mm(e,t)}s(UM,"validateComponent");function LM(t){let e=x.default.object({type:x.default.string().allow(...Object.values($c)).required(),required:x.default.boolean().required(),default:x.default.any(),display:x.default.string()}),r=x.default.object({type:x.default.string().allow(...Object.values(Wc)),readable:x.default.boolean(),displayName:x.default.string(),fields:x.default.object().pattern(x.default.string(),e)}).required(),n=x.default.object({type:x.default.string().allow("datasource").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({docs:x.default.string(),plus:x.default.boolean().optional(),isSQL:x.default.boolean().optional(),auth:x.default.object({type:x.default.string().required()}).optional(),features:x.default.object(Object.fromEntries(Object.values(Gc).map(i=>[i,x.default.boolean().optional()]))).optional(),relationships:x.default.boolean().optional(),description:x.default.string().required(),friendlyName:x.default.string().required(),type:x.default.string().allow(...NM),datasource:x.default.object().pattern(x.default.string(),e).required(),query:x.default.object().pattern(x.default.string(),r).unknown(!0).required(),extra:x.default.object().pattern(x.default.string(),x.default.object({type:x.default.string().required(),displayName:x.default.string().required(),required:x.default.boolean(),data:x.default.object()}))})});Mm(n,t)}s(LM,"validateDatasource");function MM(t){let e=x.default.object().pattern(x.default.string(),{type:x.default.string().allow(...Object.values(Vc)).required(),customType:x.default.string().allow(...Object.values(qc)),title:x.default.string(),description:x.default.string(),enum:x.default.array().items(x.default.string()),pretty:x.default.array().items(x.default.string())}),r=x.default.object({properties:e,required:x.default.array().items(x.default.string())}).concat(e).required(),n=x.default.object({type:x.default.string().allow("automation").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({name:x.default.string().required(),tagline:x.default.string().required(),icon:x.default.string().required(),description:x.default.string().required(),type:x.default.string().allow("ACTION","LOGIC").required(),stepId:x.default.string().disallow(...sh).required(),inputs:x.default.object().optional(),schema:x.default.object({inputs:r,outputs:r}).required()})});Mm(n,t)}s(MM,"validateAutomation");function kM(t){switch(t?.type){case"component":UM(t);break;case"datasource":LM(t);break;case"automation":MM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(kM,"validate");var Fm={};P(Fm,{Client:()=>De,clients:()=>Tr,locks:()=>En,utils:()=>ja});var Bm={};P(Bm,{isBlacklisted:()=>BM,refreshBlacklist:()=>eO});var J_=B(require("dns")),kc=B(require("net"));var Z_=require("util");var Mc,FM=(0,Z_.promisify)(J_.default.lookup);async function X_(t){return kc.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await FM(t,{all:!0})).map(r=>r.address)}s(X_,"lookup");async function eO(){let e=g.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(kc.default.isIP(i))r.push(i);else{let o=await X_(i);r=r.concat(o)}}Mc=r}s(eO,"refreshBlacklist");async function BM(t){if(Mc||await eO(),Mc?.length===0)return!1;let e;return kc.default.isIP(t)?e=[t]:e=await X_(t),!!Mc?.find(r=>e.includes(r))}s(BM,"isBlacklisted");var $m={};P($m,{init:()=>$M});var WM={"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 tO(t,e){let r=WM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(tO,"getDocumentId");var Mo=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=tO(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await Ce(i,async()=>{await u({id:o,tenantId:i,appId:n.appId,properties:n})})}shutdown(){return fA()}};var rO,Wm;function $M(t){Tt||zu(),Wm||(Wm=new Mo(t)),rO||(rO=Tt.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Wm.processEvent(r,n,i)}))}s($M,"init");var zm={};P(zm,{COUNT_FIELD_NAME:()=>Hm,Sql:()=>lO,SqlTable:()=>Fc,designDoc:()=>Ym,utils:()=>Of});var oO=require("knex");var GM=require("knex");function Gm(t){return["link","formula","ai"].indexOf(t)!==-1}s(Gm,"isIgnoredType");function nO(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(h=>h.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(h=>h.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(h=>h.foreignKey);for(let[h,p]of Object.entries(e.schema)){let S=n?.schema[h];if(S&&S.type||l.includes(h)||i?.updated===h)continue;let m=p.type;switch(m){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(h)?t.string(h,255):t.text(h);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(h).unsigned(),t.foreign(h).references(`${y}.${E}`)}else d.indexOf(h)===-1&&t.float(h);break;case"bigint":t.bigint(h);break;case"boolean":t.boolean(h);break;case"datetime":p.timeOnly?t.time(h):t.datetime(h,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":Ue.schema.isDeprecatedSingleUserColumn(p)?t.text(h):t.json(h);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=yf(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let I=y.primary[0],O=y.schema[I].externalType;O?t.specificType(p.foreignKey,O):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${I}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(h);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:_t.unreachable(m)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!Gm(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,S])=>!Gm(S.type)&&e.schema[p]==null).forEach(([p,S])=>{i?.old===p||Gm(S.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}s(nO,"generateSchema");function qM(t,e,r){return t.createTable(e.name,n=>{nO(n,e,r)})}s(qM,"buildCreateTable");function KM(t,e,r,n,i){return t.alterTable(e.name,o=>{nO(o,e,r,n,i)})}s(KM,"buildUpdateTable");function QM(t,e){return t.dropTable(e.name)}s(QM,"buildDeleteTable");var Vm=class{static{s(this,"SqlTableQueryBuilder")}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,GM.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=qM(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=KM(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,o=e.meta.renamed.updated,a=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,u=Jn(n);if(Array.isArray(u))for(let c of u)c.sql.startsWith("exec sp_rename")&&(c.sql=`exec sp_rename '${a}.${i}', '${o}', 'COLUMN'`,c.bindings=[]);return u}break;case"DELETE_TABLE":n=QM(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Jn(n)}},Fc=Vm;var aO=require("lodash");var Hm="__bb_total";function iO(){return(g.SQL_MAX_ROWS?parseInt(g.SQL_MAX_ROWS):null)||5e3}s(iO,"getBaseLimit");function qm(){return(g.SQL_MAX_RELATED_ROWS?parseInt(g.SQL_MAX_RELATED_ROWS):null)||500}s(qm,"getRelationshipLimit");function jM(t,e){return t.sort((r,n)=>{let i=e.find(a=>a&&r.endsWith(a)),o=e.find(a=>a&&n.endsWith(a));return i&&!o?-1:!i&&o?1:r.localeCompare(n)})}s(jM,"prioritisedArraySort");function uO(t){return Array.isArray(t)?t.map(e=>uO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(uO,"convertBooleans");function sO(t){return t.sourceType==="internal"||t.sourceId===jc}s(sO,"isSqs");function HM(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(HM,"escapeQuotes");function YM(t,e='"'){return`${e}${HM(t,e)}${e}`}s(YM,"wrap");function zM(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=YM(t[r],e));return`[${t.join(",")}]`}s(zM,"stringifyArray");function Km(t){return`{${(Array.isArray(t)?t:t==null?[]:[t]).map(n=>{if(typeof n=="string"&&n.length>1){let i=n[0],o=n[n.length-1];if(i==='"'&&o==='"'||i==="'"&&o==="'")return n.substring(1,n.length-1)}return`${n}`}).join(",")}}`}s(Km,"toPgArrayLiteral");function cO(t){return ah.includes(t.type)&&!Ue.schema.isDeprecatedSingleUserColumn(t)}s(cO,"isJsonColumn");var JM={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},Qm=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 mr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}static{s(this,"InternalBuilder")}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(a=>{let u=a.split(/\./g),c,l=u[0];return u.length>1&&(c=u[0],l=u.slice(1).join(".")),{table:c,column:l,field:a}}).filter(({table:a})=>!a||a===n).map(({table:a,column:u,field:c})=>{let l=i[u];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(l)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([a,u].join(".")),this.knex.raw(this.quote(c))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(l)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(c),this.knex.raw(this.quote(c))]):a?this.rawQuotedIdentifier(`${a}.${u}`):this.rawQuotedIdentifier(c)})}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(),o=this.table.schema[i],a=this.rawQuotedIdentifier(e);return(o.type==="string"||o.type==="longform"||o.type==="bb_reference_single"||o.type==="bb_reference"||o.type==="options"||o.type==="barcodeqr")&&(r?.forSelect?a=this.knex.raw("to_char(??) as ??",[a,this.rawQuotedIdentifier(i)]):a=this.knex.raw("to_char(??)",[a])),a}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&cO(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"),o=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${o}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!Af(e))return null}else if(r.dateOnly){let n=Sf(e);return n?new Date(n):null}else return r.ignoreTimezones?Za(e)?new Date(e):Tf(e)?new Date(e+"Z"):null:Za(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),o=this.table.schema[i];o&&(e[r]=this.parse(n,o))}return e}parseFilters(e){e=(0,aO.cloneDeep)(e);for(let r of Object.values(Mr)){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:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=this.parse(n[i],a))}}for(let r of Object.values(ir)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=n[i].map(u=>this.parse(u,a)))}}for(let r of Object.values(Rn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];if(!a)continue;let u=n[i];"low"in u&&(u.low=this.parse(u.low,a)),"high"in u&&(u.high=this.parse(u.high,a))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i,o){let{relationships:a,schema:u,tableAliases:c,table:l}=this.query,d=c?.[l.name]||l.name,f=s(h=>n.match(new RegExp(`^${h}\\.`)),"matches");if(!a)return e;for(let h of a){let p=h.tableName,S=c?.[p]||p,m=f(p)||f(S),E=f(h.column),y=h.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((m||E||y)&&h.to&&h.tableName){let I=this.knex.select(this.knex.raw(1)).from({[S]:p}),O=I.clone(),w=_f(h),T;if(m?T=n:T=n.replace(new RegExp(`^${h.column}.`),`${c?.[h.tableName]||h.tableName}.`),w){let _=c?.[w.through]||h.through,U=this.tableNameWithSchema(w.through,{alias:_,schema:u});O=O.innerJoin(U,function(){this.on(`${S}.${w.toPrimary}`,"=",`${_}.${w.to}`)}).where(`${_}.${w.from}`,"=",this.rawQuotedIdentifier(`${d}.${w.fromPrimary}`)),this.client==="sqlite3"&&(O=this.addJoinFieldCheck(O,w)),y&&i==="empty"?e=e.whereNotExists(O):y&&i==="notEmpty"?e=e.whereExists(O):e=e.where(R=>{R.whereExists(o(T,O)),r&&R.orWhereNotExists(I.clone().innerJoin(U,function(){this.on(`${d}.${w.fromPrimary}`,"=",`${_}.${w.from}`)}))})}else{let _=`${S}.${h.to}`,U=`${d}.${h.from}`;O=O.where(_,"=",this.rawQuotedIdentifier(U)),y&&i==="empty"?e=e.whereNotExists(O):y&&i==="notEmpty"?e=e.whereExists(O):e=e.where(R=>{R.whereExists(o(T,O.clone())),r&&R.orWhereNotExists(O)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let o=this.query.tableAliases,a=r.allOr,c=this.client==="sqlite3"?this.table._id:this.table.name;function l(m){return o?.[m]||m}s(l,"getTableAlias");function d(m,E,y,I){let O=s((w,T,_)=>{let[U,...R]=T.split("."),k=R.join("."),H=l(U);return w.andWhere(Ie=>y(Ie,H?`${H}.${k}`:k,_))},"handleRelationship");for(let w in m){let T=m[w],_=Ws(w),U=_.includes(".")||i.getFieldSchema(_)?.type==="link",R=n?.relationship&&U,k;if(w==="_complexIdOperator"&&(k=m[w])&&I){let H=l(c);e=I(e,k.id.map(Ie=>H?`${H}.${Ie}`:Ie),k.values)}else if(U)R&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,JM[E],_,E,(H,Ie)=>O(Ie,H,T)));else{let H=l(c);e=y(e,H?`${H}.${_}`:_,T)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,h=s((m,E,y)=>((r?.fuzzyOr||a)&&(m=m.or),f?m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(E),`%${y}%`]):this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(E),`%${y.toLowerCase()}%`]):m.whereILike(this.rawQuotedIdentifier(E),this.knex.raw("?",[`%${y}%`]))),"like"),p=s((m,E=!1)=>{function y(I){return(a||m===r?.containsAny)&&(I=I.or),m===r?.notContains&&(I=I.not),I}s(y,"addModifiers"),this.client==="pg"?d(m,"contains",(I,O,w)=>{I=y(I);let T=this.getFieldSchema(O),_=this.rawQuotedIdentifier(O),U=Array.isArray(w)?[...w]:[w],R=this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(T);return E?R?I.whereRaw("COALESCE(?? && ?::text[], FALSE)",[_,Km(U)]):I.whereRaw("COALESCE(??::jsonb \\?| ?::text[], FALSE)",[_,Km(U)]):R?I.whereRaw("COALESCE(?? @> ?::text[], FALSE)",[_,Km(U)]):I.whereRaw("COALESCE(??::jsonb @> ?::jsonb, FALSE)",[_,zM(U)])}):this.client==="mysql2"||this.client==="mariadb"?d(m,"contains",(I,O,w)=>{let T=Array.isArray(w)?w:[w];return y(I).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(E?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),JSON.stringify(T)])}):d(m,"contains",(I,O,w)=>(w.length===0||(I=I.where(T=>(m===r?.notContains&&(T=T.not),T=T.where(_=>{for(let U of w){m===r?.containsAny?_=_.or:_=_.and;let R=!f,k=typeof U=="string"?`"${R?U.toLowerCase():U}"`:U,H=R?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";_=_.whereLike(this.knex.raw(H,[this.rawQuotedIdentifier(O)]),`%${k}%`)}}),m===r?.notContains&&(T=T.or.whereNull(this.rawQuotedIdentifier(O))),T))),I))},"contains");if(r.$and){let{$and:m}=r;for(let E of m.conditions)e=e.where(y=>{this.addFilters(y,E,n)})}if(r.$or){let{$or:m}=r;e=e.where(E=>{for(let y of m.conditions)E.orWhere(I=>this.addFilters(I,{...y,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(m,E,y)=>{let I=this.getFieldSchema(E),O=Array.isArray(y)?y:[y];if(a&&(m=m.or),this.client==="oracledb")E=this.convertClobs(E);else if(this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly){for(let w of O)w!=null?m=m.or.whereLike(E,`${w.toISOString().slice(0,10)}%`):m=m.or.whereNull(E);return m}return m.whereIn(E,O)},(m,E,y)=>(a&&(m=m.or),this.client==="oracledb"&&(E=E.map(I=>this.convertClobs(I))),m.whereIn(E,Array.isArray(y)?y:[y]))),r.string&&d(r.string,"string",(m,E,y)=>{if(a&&(m=m.or),f)return m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(E),`${y}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(E),`${y.toLowerCase()}%`]);{let I=this.getFieldSchema(E);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(I)?m.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(I.name)),`${y}%`]):m.whereILike(E,`${y}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",h),r.range&&d(r.range,"range",(m,E,y)=>{let I=s(k=>k&&Object.keys(k).length===0&&Object.getPrototypeOf(k)===Object.prototype,"isEmptyObject");I(y.low)&&(y.low=""),I(y.high)&&(y.high="");let O=Xa(y.low),w=Xa(y.high),T=this.getFieldSchema(E),_=E,U=y.high,R=y.low;return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly&&(U!=null&&(U=`${U.toISOString().slice(0,10)}T23:59:59.999Z`),R!=null&&(R=R.toISOString().slice(0,10))),this.client==="oracledb"?_=this.convertClobs(E):this.client==="sqlite3"&&T?.type==="bigint"&&(_=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(E)]),U=this.knex.raw("CAST(? AS INTEGER)",[y.high]),R=this.knex.raw("CAST(? AS INTEGER)",[y.low])),a&&(m=m.or),O&&w?m.whereBetween(_,[R,U]):O?m.where(_,">=",R):w?m.where(_,"<=",U):m}),r.equal&&d(r.equal,"equal",(m,E,y)=>{let I=this.getFieldSchema(E);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(E),y]);if(this.client==="oracledb"){let O=this.convertClobs(E);return m.where(w=>w.whereNotNull(O).andWhere(O,y))}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.whereLike(E,`${y.toISOString().slice(0,10)}%`):m.whereNull(E):m.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(E),y])}),r.notEqual&&d(r.notEqual,"notEqual",(m,E,y)=>{let I=this.getFieldSchema(E);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(E),y]);if(this.client==="oracledb"){let O=this.convertClobs(E);return m.where(w=>w.not.whereNull(O).and.where(O,"!=",y)).or.whereNull(O)}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.not.whereLike(E,`${y.toISOString().slice(0,10)}%`).or.whereNull(E):m.not.whereNull(E):m.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(E),y])}),r.empty&&d(r.empty,"empty",(m,E)=>(a&&(m=m.or),m.whereNull(E))),r.notEmpty&&d(r.notEmpty,"notEmpty",(m,E)=>(a&&(m=m.or),m.whereNotNull(E))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let S=o?.[this.table._id]||this.table._id;return r.documentType&&!Ef(this.table)&&S&&e.andWhereLike(`${S}._id`,`${sr(r.documentType)}%`),e}isSqs(){return sO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;sO(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 ${Hm}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let o=n.map(a=>this.qualifyIdentifier(a));if(this.client==="oracledb"){let a=o.map(c=>this.convertClobs(c)),u=o.map(c=>this.convertClobs(c,{forSelect:!0}));e=e.groupBy(a).select(u)}else e=e.groupBy(o).select(o)}for(let o of r){let a=o.calculationType;if(a==="count")if("distinct"in o&&o.distinct)if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[u,o.name]))}else e=e.countDistinct(`${i}.${o.field} as ${o.name}`);else if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[u,o.name]))}else e=e.count(`${o.field} as ${o.name}`);else{let u=this.getFieldSchema(o.field);if(!u)throw new Error(`field schema missing for aggregation target: ${o.field}`);let c=this.knex.raw("??(??)",[this.knex.raw(a),this.rawQuotedIdentifier(`${i}.${o.field}`)]);u.type==="bigint"&&(c=this.castIntToString(c)),e=e.select(this.knex.raw("?? as ??",[c,o.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,o=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[u,c]of Object.entries(r)){let l=this.getFieldSchema(u);if(this.isUnsortableField(l))continue;let d=c.direction==="ascending"?"asc":"desc",f;(this.client==="pg"||this.client==="oracledb")&&(f=c.direction==="ascending"?"first":"last");let h=`${o}.${u}`,p;this.isAggregateField(u)?p=this.rawQuotedIdentifier(u):this.client==="oracledb"?p=this.convertClobs(h):p=this.rawQuotedIdentifier(h),e=e.orderByRaw(`?? ?? ${f?"nulls ??":""}`,[p,this.knex.raw(d),...f?[this.knex.raw(f)]:[]])}if(!((n?.aggregations?.length??0)>0)){let u=this.findSortablePrimaryKey(i);if(u&&(!r||r[u]===void 0))e=e.orderBy(`${o}.${u}`);else if(!u&&(!r||Object.keys(r).length===0))throw new Error(`Primary key not found for table ${this.table.name}`)}return e}isUnsortableField(e){return e?.type==="json"}findSortablePrimaryKey(e){return e.find(r=>{if(r==null)return!1;let n=this.getFieldSchema(r);return!this.isUnsortableField(n)})}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],o,a;if(n.length>1){let l=n.shift();o=n.join("."),a=`${l}.${o}`}else o=n.join("."),a=o;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let u=this.rawQuotedIdentifier(a),c=e.schema[i];return c&&c.type==="bigint"&&(u=this.castIntToString(u)),[o,u]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,o=this.knex,{resource:a,tableAliases:u,schema:c,tables:l}=this.query,d=a?.fields||[];for(let f of n){let{tableName:h,through:p,to:S,from:m,fromPrimary:E,toPrimary:y}=f;if(!h||!r)continue;let I=l[h];if(!I)throw new Error(`related table "${h}" not found in datasource`);let O=u?.[h]||h,w=u?.[r]||r,T=p&&u?.[p]||p,_=this.tableNameWithSchema(h,{alias:O,schema:c}),U=[...I?.primary||[],I?.primaryDisplay].filter(D=>D),R=jM(d.filter(D=>D.split(".")[0]===O),U);R=R.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=R.map(D=>this.buildJsonField(I,D));if(!k.length)continue;let H=k.map(D=>{let J=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${J}??`,[D[0],D[1]]).toString()}).join(","),Ie=`${O}.${y||S}`,W=o.from(_).orderBy(Ie),F=p&&y&&E,N=F?`${T}.${m}`:`${O}.${S}`,G=F?`${w}.${E}`:`${w}.${m}`;if(F){let D=this.tableNameWithSchema(p,{alias:T,schema:c});W=W.join(D,function(){this.on(`${O}.${y}`,"=",`${T}.${S}`)})}W=W.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(G));let M=s(D=>(W=W.select(R.map(J=>this.rawQuotedIdentifier(J))).limit(qm()),o.select(D).from({[O]:W})),"standardWrap"),K;switch(i){case"sqlite3":W=this.addJoinFieldCheck(W,f),K=M(this.knex.raw(`json_group_array(json_object(${H}))`));break;case"pg":K=M(this.knex.raw(`json_agg(json_build_object(${H}))`));break;case"mariadb":K=W.select(o.raw(`json_arrayagg(json_object(${H}) LIMIT ${qm()})`));break;case"mysql2":case"oracledb":K=M(this.knex.raw(`json_arrayagg(json_object(${H}))`));break;case"mssql":{let D=o.select("*").from({[w]:W.select(k.map(J=>o.ref(J[1]).as(J[0]))).limit(qm())});K=o.raw(`(SELECT ?? = (${D} FOR JSON PATH))`,[this.rawQuotedIdentifier(O)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:o}=this.query,a=r.to,u=r.from,c=r.through,l=i?.[a]||a,d=c&&i?.[c]||c,f=i?.[u]||u,h=this.tableNameWithSchema(a,{alias:l,schema:o}),p=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(p,function(){for(let S of n){let m=S.fromPrimary,E=S.from;this.orOn(`${f}.${m}`,"=",`${d}.${E}`)}}).leftJoin(h,function(){for(let S of n){let m=S.toPrimary,E=S.to;this.orOn(`${l}.${m}`,`${d}.${E}`)}}):e=e.leftJoin(h,function(){for(let S of n){let m=S.from,E=S.to;this.orOn(`${f}.${m}`,"=",`${l}.${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[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];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:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=p}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let h=this.query.tableAliases?.[a.name]||a.name,p=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[h]:"paginated"}));return this.addJsonRelationships(p,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n,{relationship:!0}),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r,{relationship:!0}),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},jm=class extends Fc{constructor(r,n=iO()){super(r);this.limit=n}static{s(this,"SqlQueryBuilder")}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let o=Jn(r);return i==="sqlite3"&&(o=uO(o)),o}}_query(r,n={}){let i=this.getSqlClient(),o={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(o.useNullAsDefault=!0);let a=(0,oO.knex)(o),u,c=new Qm(i,a,r);switch(this._operation(r)){case"CREATE":u=c.create(n);break;case"READ":u=c.read({limits:{query:this.limit,base:iO()}});break;case"COUNT":u=c.read();break;case"UPDATE":u=c.update(n);break;case"DELETE":u=c.delete(n);break;case"BULK_CREATE":u=c.bulkCreate();break;case"BULK_UPSERT":u=c.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(u,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=o=>o){let o=this.getSqlClient(),a=this._operation(r),u=this._query(r,{disableReturning:!0});if(Array.isArray(u)){let f=[];for(let h of u)f.push(await n(h,a));return f}let c;a==="DELETE"&&(c=i(await this.getReturningRow(n,r)));let l=await n(u,a),d=i(l);if(a==="CREATE"||a==="UPDATE"){let f;o==="mssql"?f=d?.[0].id:(o==="mysql2"||o==="mariadb")&&(f=d?.insertId),c=i(await this.getReturningRow(n,this.checkLookupKeys(f,r)))}return a==="COUNT"?d:a!=="READ"?c:d.length?d:[{[a.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===jc){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let o=this.getTableName(r,i);for(let[a,u]of Object.entries(r.schema)){if(!cO(u))continue;let c=`${o}.${a}`;for(let l of n)typeof l[c]=="string"&&(l[c]=JSON.parse(l[c])),typeof l[a]=="string"&&(l[a]=JSON.parse(l[a]))}return n}log(r,n){Cs(this.getSqlClient(),r,n)}},lO=jm;var Ym={};P(Ym,{base:()=>ZM});function ZM(t){return{_id:Rt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(ZM,"base");var Jm={};P(Jm,{jsonFromCsvString:()=>XM});var dO=B(require("csvtojson"));async function XM(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let o of i){let a,u=!1;try{let c=await(0,dO.default)({ignoreEmpty:r,delimiter:o}).fromString(t);for(let[,l]of c.entries()){let d=Object.keys(l);if(a==null&&(a=d),!n&&d.length===1){u=!0;break}if(a.length!==d.length){u=!0;break}for(let f of a)(l[f]===void 0||l[f]==="")&&(l[f]=null)}if(u)continue;return c}catch{continue}}throw new Error("Unable to determine delimiter")}s(XM,"jsonFromCsvString");var Zm=class{static{s(this,"Endpoint")}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,o=this.controller,a=this.outputMiddlewares,u=s(()=>{},"complete"),c=[n,...i,o,...a,u];e[r](...c)}},Bc=Zm;var fO=B(require("@koa/router"));var wn=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}static{s(this,"EndpointGroup")}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(),o=new Bc(e,r,i);if(n.length!==0)for(let a of n)o.addMiddleware(a);return this.endpoints.push(o),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 fO.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 ko=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new wn;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 ek={...Gs,...ue},tk=s((t={})=>{za(t.db)},"init");0&&(module.exports={APIWarning,ActiveContentFileError,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,FeatureDisabledWarning,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyWarning,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,UsageLimitWarning,UserStatus,ViewName,WORKSPACE_DEV,WORKSPACE_DEV_PREFIX,WORKSPACE_PREFIX,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getErrorMessage,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,warnings,withEnv});
36
+ }`,"platform_users_lowercase_2")},"createPlatformUserView"),Ws=s(async(t,e)=>{let r={account_by_email:rS,platform_users_lowercase_2:nS};return je(fe.PLATFORM_INFO.name,async n=>{let i=r[t];return jf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),iS={by_email2:XT,by_api_key:eS,by_app:ZT},Kt=s(async(t,e,r,n)=>{r||(r=Y());let i=iS[t];return jf(t,e,r,i,n)},"queryGlobalView");async function $s(t,e,r){let n=Y(),i=iS[t];return Bs(t,e,n,i,r)}s($s,"queryGlobalViewRaw");var $x=B(require("pouchdb"));var sS=require("dd-trace");var Hf=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=rt(e),this.target=rt(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([bs(this.source),bs(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})})}async resolveInconsistencies(e){for(let r of e)try{let[n,i]=await Promise.all([this.source.get(r),this.target.get(r)]),o=this.replicationDelta(n,i);if(o<0||o===0&&n._rev===i._rev)continue;let a=o+1;await sS.tracer.trace("Replication.resolveInconsistencies",async u=>{u.addTags({versionsToJump:a,toFix:!0,id:r,sourceRev:n._rev,targetRev:i._rev});for(let c=0;c<a;c++){let l=await this.source.get(i._id);await this.source.put(l)}})}catch{console.warn("Cannot resolve inconsistencies for document",r)}}replicationDelta(e,r){let n=this.getRevisionNumber(e);return this.getRevisionNumber(r)-n}getRevisionNumber(e){return parseInt(e._rev?.split("-")[0]||"0")}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,n=this.direction,i=n==="toDev";delete e.filter;let o=e.isCreation,a=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let u=!1,c;typeof a=="string"&&a==="all"?u=!0:a&&(c=a);let l=s((f,h)=>f?.startsWith(h+C),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:(f,h)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,_s)?!0:n==="toProduction"&&!o&&l(f._id,"autocolumn_state")?!1:d(f._id)?!!c?.find(p=>f._id.includes(p))||u:l(f._id,"log_au")||l(f._id,"agentlogsession")||f._id==="app_metadata"?!1:r?r(f,h):!0}}async rollback(){await this.target.destroy(),this.target=rt(this.target.name),await this.replicate()}},oS=Hf;var uS=B(require("node-fetch"));var Gs=mr.removeKeyNumbering;function an(t){return t==null||t===""}s(an,"isEmpty");var Qt=class t{static{s(this,"QueryBuilder")}#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#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.#f=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:o}={}){let a=!!this.#f,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="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 o of Object.keys(e)){let a=Gs(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#e.equal.tableId&&(a=this.#e.equal.tableId,delete this.#e.equal.tableId);let u=s((S,m)=>an(m)?null:`${S}:${e.preprocess(m,o)}`,"equal"),c=s((S,m,E="AND")=>{if(an(m))return null;if(!Array.isArray(m))return`${S}:${m}`;let y=`${e.preprocess(m[0],{escape:!0})}`;for(let I=1;I<m.length;I++)y+=` ${E} ${e.preprocess(m[I],{escape:!0})}`;return`${S}:(${y})`},"contains"),l=s((S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"fuzzy"}),`${S}:/.*${m}.*/`),"fuzzy"),d=s((S,m)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+c(S,m,y)},"notContains"),f=s((S,m)=>c(S,m,"OR"),"containsAny"),h=s((S,m)=>{if(an(m))return"*:*";if(!Array.isArray(m))if(typeof m=="string")m=m.split(",");else return"";let E=`${e.preprocess(m[0],o)}`;for(let y=1;y<m.length;y++)E+=` OR ${e.preprocess(m[y],o)}`;return`${S}:(${E})`},"oneOf");function p(S,m,E){let y="";for(let[I,O]of Object.entries(S)){I=Gs(I),I=e.preprocess(e.handleSpaces(I),{escape:!0});let w=m(I,O);if(w!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=w,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==a&&O!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(s(p,"build"),this.#e.string&&p(this.#e.string,(S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"string"}),`${S}:${m}*`)),this.#e.range&&p(this.#e.range,(S,m)=>{if(an(m)||m.low==null||m.low===""||m.high==null||m.high==="")return null;let E=e.preprocess(m.low,o),y=e.preprocess(m.high,o);return`${S}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,l),this.#e.equal&&p(this.#e.equal,u),this.#e.notEqual&&p(this.#e.notEqual,(S,m)=>an(m)?null:typeof m=="boolean"?`(*:* AND !${S}:${m})`:`!${S}:${e.preprocess(m,o)}`),this.#e.empty&&p(this.#e.empty,S=>(i=!1,`(*:* -${S}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,S=>(i=!1,`${S}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,h),this.#e.contains&&p(this.#e.contains,c),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&p(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:a},u)),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.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=mt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await aS(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await aS(n,i,r);throw o}}};async function aS(t,e,r){let n=await(0,uS.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),o={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(o.rows=i.rows.map(a=>a.doc)),i.bookmark&&(o.bookmark=i.bookmark),i.total_rows&&(o.totalRows=i.total_rows),o}s(aS,"runQuery");async function cS(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Qt.maxLimit;n.limit&&o.length>n.limit-Qt.maxLimit&&(a=n.limit-o.length);let u=new Qt(t,e,r);u.setVersion(n.version).setBookmark(i).setLimit(a).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&u.setTable(n.tableId);let c=await u.run();if(!c.rows.length)return o;if(c.rows.length<Qt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await cS(t,e,r,l)}s(cS,"recursiveSearch");async function Gx(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Qt.maxLimit);let o=new Qt(t,e,r);n.version&&o.setVersion(n.version),n.tableId&&o.setTable(n.tableId),n.sort&&o.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&o.setIndexBuilder(n.indexer),n.disableEscaping&&o.disableEscaping();let a=await o.setBookmark(n.bookmark).setLimit(i).run();o.setBookmark(a.bookmark).setLimit(1),n.tableId&&o.setTable(n.tableId);let u=await o.run();return{...a,hasNextPage:u.rows&&u.rows.length>0}}s(Gx,"paginatedSearch");async function Vx(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 cS(t,e,r,n)}}s(Vx,"fullSearch");var Yf={};P(Yf,{createUserIndex:()=>qx});async function qx(){let t=Y(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=s(function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function o(a,u){for(let c of Object.keys(a)){if(i.includes(c))continue;let l=u!=null?`${u}.${c}`:c;typeof a[c]=="string"?index(l,a[c].toLowerCase(),{facet:!0}):typeof a[c]!="object"?index(l,a[c],{facet:!0}):o(a[c],l)}}s(o,"idx"),o(n)},"fn");e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}s(qx,"createUserIndex");function lS(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)}s(lS,"checkErrorCode");function Kx(t){return lS(t,409)}s(Kx,"isDocumentConflictError");var qs={};P(qs,{addTenantToUrl:()=>Qx,getTenantDB:()=>zf,getTenantIDFromCtx:()=>Vs,isUserInWorkspaceTenant:()=>jx});function zf(t){return Re(nn(t))}s(zf,"getTenantDB");function Qx(t){let e=$();if(Er()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(Qx,"addTenantToUrl");var jx=s((t,e)=>{let r;return e?r=e.tenantId||ae:r=$(),(Zn(t)||ae)===r},"isUserInWorkspaceTenant"),Hx=Object.values(Ri),Vs=s((t,e)=>{if(!Er())return ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=Hx),e.excludeStrategies||(e.excludeStrategies=[]);let r=s(n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0},"isAllowed");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(Rf()).host.split(":")[0]}catch(o){if(o.code!=="ERR_INVALID_URL")throw o}let i=t.host;if(n&&i.includes(n)){let o=i.substring(0,i.indexOf(`.${n}`));if(o)return o}}if(r("path")){let n=t.matched.find(a=>!!a.paramNames.find(u=>u.name==="tenantId")),i=t.originalUrl,o;if(i.includes("?")?o=i.split("?")[0]:o=i,n){let a=n.params(o,n.captures(o),{});if(a.tenantId)return a.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")},"getTenantIDFromCtx");var Jf="app"+C,dS="/app/",fS="/app-chat/";async function Yx(t){let r=t.path.split("/")[2];if(!r)return;let n=`/${r.toLowerCase()}`,i=$();!g.isDev()&&g.MULTI_TENANCY&&(i=Vs(t,{includeStrategies:["subdomain"]}));let a=(await Ce(i,()=>Fs({dev:!1}))).filter(u=>u.url&&u.url.toLowerCase()===n)[0];return a&&a.appId?a.appId:void 0}s(Yx,"resolveAppUrl");function zx(t){return t.path.startsWith(`/${Jf}`)?!0:t.path.startsWith(dS)||t.path.startsWith(fS)}s(zx,"isServingApp");function Jx(t){return t.path.startsWith("/builder/workspace/")}s(Jx,"isServingBuilder");function Xx(t){return pS(t.path)}s(Xx,"isServingBuilderPreview");function pS(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(pS,"isBuilderPreviewUrl");function Zx(t){return t.path.startsWith("/api/public/v")}s(Zx,"isPublicApiRequest");async function un(t){let e;function r(u){u&&u.startsWith(Jf)&&(e&&e!==u&&t.throw("App id conflict",403),e=u)}s(r,"setWorkspaceIdIfValid");function n(u){if(u){typeof u=="string"&&(u=[u]);for(let c of u)r(c)}}s(n,"checkPossibleValues"),n(t.request.headers["x-budibase-app-id"]),r(t.request.body?.appId);let i=ev(t.path);r(i),n(t.query?.appId);let o=pS(t.path);return(t.path.startsWith(dS)||t.path.startsWith(fS))&&!o&&r(await Yx(t)),e}s(un,"getWorkspaceIdFromCtx");function ev(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Jf))}s(ev,"parseWorkspaceIdFromUrlPath");function Tu(t){if(t)try{return yu.default.verify(t,g.JWT_SECRET)}catch(e){if(g.JWT_SECRET_FALLBACK)return yu.default.verify(t,g.JWT_SECRET_FALLBACK);throw e}}s(Tu,"openJwt");function Ks(t){return g.INTERNAL_API_KEY&&g.INTERNAL_API_KEY===t?!0:!!(g.INTERNAL_API_KEY_FALLBACK&&g.INTERNAL_API_KEY_FALLBACK===t)}s(Ks,"isValidInternalAPIKey");function jt(t,e){let r=t.cookies.get(e);if(r)return Tu(r)}s(jt,"getCookie");function mS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=yu.default.sign(e,g.JWT_SECRET));let i={expires:Va,path:"/",httpOnly:!1,overwrite:!0};g.COOKIE_DOMAIN&&(i.domain=g.COOKIE_DOMAIN),t.cookies.set(r,e,i)}s(mS,"setCookie");function Ar(t,e){mS(t,null,e)}s(Ar,"clearCookie");function tv(t){return t.headers["x-budibase-type"]==="client"}s(tv,"isClient");function Xf(t){return new Promise(e=>setTimeout(e,t))}s(Xf,"timeout");function Zf(t){return!!rh[t]}s(Zf,"isAudited");function rv(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}s(rv,"hasCircularStructure");function nv(t){return!!t.match(/^.+:\/\/.+$/)}s(nv,"urlHasProtocol");function ep(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,}))$/)}s(ep,"validEmail");var tp=(o=>(o.MILLISECONDS="milliseconds",o.SECONDS="seconds",o.MINUTES="minutes",o.HOURS="hours",o.DAYS="days",o))(tp||{}),Su={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},pe=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/Su[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Su[e]/Su[r]}static from(e,r){return new t(r*Su[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 iv(t){let e=performance.now();return[await t(),pe.fromMilliseconds(performance.now()-e)]}s(iv,"time");var Au=require("undici");function sv(t,e){let r,n=null;try{let o=new URL(t);r=o.hostname,n=o.port||null}catch{return!1}let i=e.split(/[\s,]+/).filter(o=>o.length>0);for(let o of i){let u=o.replace(/^\./,"*").match(/^(.+?)(?::(\d+))?$/);if(!u||!u[1])continue;let c=u[1].toLowerCase(),l=u[2]||null,d=!1;if(c==="*")d=!0;else if(c.startsWith("*")){let h=c.slice(1);d=r===h.slice(1)||r.endsWith(h)}else d=r===c;if(d&&(!l||n===l))return!0}return!1}s(sv,"isUrlMatchingNoProxy");function ov(t){let e=process.env.GLOBAL_AGENT_HTTP_PROXY||process.env.HTTP_PROXY,n=process.env.GLOBAL_AGENT_HTTPS_PROXY||process.env.HTTPS_PROXY||e;if(!n||!n.trim())return!0;try{new URL(n.trim())}catch{return console.log("[fetch] Invalid proxy URL format:",n),!0}if(t){let i=process.env.GLOBAL_AGENT_NO_PROXY||process.env.NO_PROXY||"";if(i&&sv(t,i))return console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy",{url:t,noProxy:i}),!0}return!1}s(ov,"shouldBypassProxy");function av(t){return new Au.Agent({connect:{rejectUnauthorized:t}})}s(av,"createDirectAgent");function uv(t){let e=process.env.GLOBAL_AGENT_HTTP_PROXY||process.env.HTTP_PROXY,n=(process.env.GLOBAL_AGENT_HTTPS_PROXY||process.env.HTTPS_PROXY||e).trim();console.log("[fetch] Creating ProxyAgent",{proxyUrl:n,rejectUnauthorized:t});let i={uri:n,requestTls:{rejectUnauthorized:t}};return n.startsWith("https://")&&(i.proxyTls={rejectUnauthorized:t}),new Au.ProxyAgent(i)}s(uv,"createProxyAgent");function cv(t){let e=t?.rejectUnauthorized??!0;return ov(t?.url)?av(e):uv(e)}s(cv,"createDispatcher");function lv(t){return cv(t)}s(lv,"getDispatcher");var rp=require("util"),np=B(require("zlib"));var dv=(0,rp.promisify)(np.default.gzip),fv=(0,rp.promisify)(np.default.gunzip),_u="gzip:",pv=s(async t=>{let e=await dv(t);return`${_u}${e.toString("base64")}`},"gzipToBase64"),mv=s(async t=>{let e=t.startsWith(_u)?t.slice(_u.length):t,r=Buffer.from(e,"base64");return(await fv(new Uint8Array(r))).toString("utf8")},"gunzipFromBase64");function hv(t){let e=t.get("authorization");if(!e)return null;let r=e.match(/^Bearer\s+(.+)$/i);return r?r[1]:null}s(hv,"getBearerToken");function gv(t){let e="",r=-1,n,i,o=t.opts?.repeat;return o&&(i=o.endDate?new Date(o.endDate).getTime():Date.now(),n=o.tz,"cron"in o?e=o.cron:r=o.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}s(gv,"jobToJobInformation");var Ou=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new hS.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((c,l)=>{r(n,s((f,h)=>{f?l(f):c(h)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await Ue.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}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 o=ee(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{c._isDiscarded=!0}};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:()=>new Promise((c,l)=>{let d=s((h,p)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(p))},"errorHandler"),f=s((h,p)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(p))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)})}}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=>gv(e))}async whenCurrentJobsFinished(){do await Xf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},gS=Ou;var op=B(require("bull"));var oi=(d=>(d.AUTOMATION="automationQueue",d.APP_BACKUP="appBackupQueue",d.AUDIT_LOG="auditLogQueue",d.SYSTEM_EVENT_QUEUE="systemEventQueue",d.APP_MIGRATION="appMigration",d.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",d.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",d.BATCH_USER_SYNC_PROCESSOR="batchUserSyncProcessorQueue",d.RAG_INGESTION="ragIngestionQueue",d.AGENT_LOG_INDEXING="agentLogIndexingQueue",d))(oi||{});function ES(t,e,r){Tv(t,e),r&&Ev(t,r)}s(ES,"addListeners");function Ev(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 o of i)o.id===n&&await t.removeRepeatableByKey(o.key);console.log(`jobId=${n} disabled`)}})}s(Ev,"handleStalled");function it(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(it,"getLogParams");var yv={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event",batchUserSyncProcessorQueue:"batch-user-sync-processor",ragIngestionQueue:"rag-ingestion-processor",agentLogIndexingQueue:"agent-log-indexing-processor"};function Tv(t,e){let r=yv[e];function n(i,o){let a=i.data.event?.appId;if(a)return Cf(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...it(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...it(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...it(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...it(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...it(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...it(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...it(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...it(r,"paused"))}).on("resumed",()=>{console.info(...it(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...it(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...it(r,"drained"))}).on("removed",i=>{console.info(...it(r,"removed",{job:i}))})}s(Tv,"logging");var Iu={};P(Iu,{cleanup:()=>Sv,clear:()=>sp,set:()=>ip});var Qs=[];function ip(t,e){let r=setInterval(t,e);return Qs.push(r),r}s(ip,"set");function sp(t){let e=Qs.indexOf(t);e!==-1&&Qs.splice(e,1),clearInterval(t)}s(sp,"clear");function Sv(){for(let t of Qs)clearInterval(t);Qs=[]}s(Sv,"cleanup");var Ht=B(require("dd-trace")),js=B(require("object-sizeof"));var Av=pe.fromMinutes(5).toMs(),_v=pe.fromSeconds(30).toMs(),ap=pe.fromSeconds(60).toMs(),Hs=[],wu;async function yS(){for(let t of Hs)await t.clean(ap,"completed"),await t.clean(ap,"failed")}s(yS,"cleanup");async function Ov(t,e,r){let n=performance.now();try{let i=await e();return Ht.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw Ht.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;Ht.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),Ht.default.dogstatsd.increment(t,1,r)}}s(Ov,"withMetrics");function TS(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}}s(TS,"jobOptsTags");function Iv(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,js.default)(t.data),...TS(t.opts||{})}}s(Iv,"jobTags");var Et=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:tn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:Av,lockRenewTime:_v}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return g.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new op.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new gS(this.jobQueue,r):n=new op.default(this.jobQueue,r),ES(n,this.jobQueue,this.opts.removeStalledCb),Hs.push(n),!wu&&!g.isTest()&&(wu=ip(yS,ap),yS().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=s(async(a,u)=>{await Ht.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:()=>l.traceId,toSpanId:()=>l.spanId,toTraceparent:()=>""};c.addLink(d)}c.addTags({"queue.name":this.jobQueue,...Iv(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),Ht.default.dogstatsd.distribution("queue.process.sizeBytes",(0,js.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await Ht.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,js.default)(e),...TS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},Ht.default.dogstatsd.distribution("queue.add.sizeBytes",(0,js.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return Ov(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function wv(){wu&&sp(wu),console.log("Waiting for current queue jobs to finish...");for(let t of Hs)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Hs)await t.close();Hs=[],console.log("Queues shutdown")}s(wv,"shutdown");var to={};P(to,{correlation:()=>Ys,logAlert:()=>dn,logAlertWithInfo:()=>cP,logWarn:()=>ci,logger:()=>Nu,system:()=>_p});var Ys={};P(Ys,{getId:()=>up,setHeader:()=>Dv});var SS=require("correlation-id"),Dv=s(t=>{let e=SS.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function up(){return SS.getId()}s(up,"getId");var Pu=B(require("pino")),zS=B(require("pino-pretty")),Op=B(require("dd-trace")),JS=require("dd-trace/ext");var _p={};P(_p,{getLogReadStream:()=>nP,getSingleFileMaxSizeInfo:()=>YS,localFileDestination:()=>Ap});var eo=B(require("fs")),Sp=B(require("path")),KS=B(require("rotating-file-stream"));var Tp={};P(Tp,{ObjectStore:()=>st,ObjectStoreBuckets:()=>Cv,SIGNED_FILE_PREFIX:()=>hp,bucketTTLConfig:()=>Du,budibaseTempDir:()=>cn,client3rdPartyLibrary:()=>zv,clientLibraryPath:()=>Yv,clientLibraryUrl:()=>Jv,createBucketIfNotExists:()=>Zs,deleteFile:()=>Wv,deleteFiles:()=>$v,deleteFolder:()=>NS,downloadTarball:()=>Vv,downloadTarballDirect:()=>Gv,enrichPWAImages:()=>Xv,enrichPluginURLs:()=>eP,extractBucketAndPath:()=>cp,getAllFiles:()=>kv,getAppFileUrl:()=>kS,getClientCacheKey:()=>MS,getGlobalFileS3Key:()=>FS,getGlobalFileUrl:()=>Zv,getObjectMetadata:()=>qv,getPluginIconKey:()=>$S,getPluginJSKey:()=>WS,getPluginS3Dir:()=>VS,getPresignedUrl:()=>ln,getReadStream:()=>Ru,listAllObjects:()=>gp,objectExists:()=>Kv,processAutomationAttachment:()=>xv,processObjectStoreAttachment:()=>wS,retrieve:()=>PS,retrieveDirectory:()=>Bv,retrieveToTmp:()=>Fv,sanitizeBucket:()=>xe,sanitizeKey:()=>ge,streamUpload:()=>vS,streamUploadMany:()=>Mv,upload:()=>Lv,uploadDirectory:()=>Ep});var bu=require("@aws-sdk/client-s3"),lp=require("@aws-sdk/lib-storage"),DS=require("@aws-sdk/s3-request-presigner"),RS=require("@smithy/node-http-handler");var Yt=B(require("dd-trace")),ai=B(require("fs")),Js=B(require("fs/promises")),CS=B(require("https")),dp=B(require("node-fetch")),Or=require("path"),xu=B(require("stream")),Xs=require("stream/promises"),fp=B(require("tar-fs")),pp=require("uuid"),mp=B(require("zlib"));var AS=B(require("fs")),_S=require("os"),zs=B(require("path")),OS=B(require("stream"));var Cv={BACKUPS:g.BACKUPS_BUCKET_NAME,APPS:g.APPS_BUCKET_NAME,TEMPLATES:g.TEMPLATES_BUCKET_NAME,GLOBAL:g.GLOBAL_BUCKET_NAME,PLUGINS:g.PLUGIN_BUCKET_NAME,TEMP:g.TEMP_BUCKET_NAME},IS=(0,zs.join)((0,_S.tmpdir)(),".budibase");try{AS.default.mkdirSync(IS)}catch(t){if(t.code!=="EEXIST")throw t}function cn(){return IS}s(cn,"budibaseTempDir");var Du=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function bv(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=zs.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:OS.default.Readable.fromWeb(e.body)}}s(bv,"processUrlAttachment");async function wS(t){let e=cp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await Ru(r,n),o=zs.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(wS,"processObjectStoreAttachment");async function xv(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await bv(t):await wS(t)}s(xv,"processAutomationAttachment");var vv=require("sanitize-s3-objectkey"),Pv={bucketCreationPromises:{}},hp="/files/signed",_r={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"},Nv=[_r.html,_r.css,_r.js,_r.json];function ge(t){return vv(xe(t)).replace(/\\/g,"/")}s(ge,"sanitizeKey");function xe(t){return t.replace(new RegExp(tt,"g"),et)}s(xe,"sanitizeBucket");function st(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:g.MINIO_ACCESS_KEY,secretAccessKey:g.MINIO_SECRET_KEY},region:g.AWS_REGION};if(!g.MINIO_ENABLED&&g.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:g.MINIO_ACCESS_KEY,secretAccessKey:g.MINIO_SECRET_KEY,sessionToken:g.AWS_SESSION_TOKEN}),g.MINIO_URL&&(t.presigning&&g.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=g.MINIO_URL),g.S3_IGNORE_SELF_SIGNED==="true"){let r=new CS.default.Agent({rejectUnauthorized:!1});e.requestHandler=new RS.NodeHttpHandler({httpsAgent:r})}return new bu.S3(e)}s(st,"ObjectStore");async function Zs(t,e){e=xe(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=Pv.bucketCreationPromises,o=n===404,a=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(o||a){if(o)return i[e]=t.createBucket({Bucket:e}).catch(u=>{if(u.Code!=="BucketAlreadyOwnedByYou")throw u}),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.")}}s(Zs,"createBucketIfNotExists");var Uv=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?_r[r.toLowerCase()]:_r.txt},"resolveContentType"),bS=s(async(t,e,r)=>{let n=xe(t),i=st(),o=await Zs(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=Du(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),xS=s(async({client:t,bucket:e,filename:r,stream:n,type:i,extra:o})=>{if(!n)throw new Error("Stream to upload is invalid/undefined");let a=Uv(r,i),u=ge(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new lp.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function Lv({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await Js.default.open(r)).createReadStream():o,l=st(),d=await Zs(l,t);if(a&&d.created){let m=Du(t,a);await l.putBucketLifecycleConfiguration(m)}let f=n,h=f||(u?_r[u.toLowerCase()]:_r.txt),p={Bucket:xe(t),Key:ge(e),Body:c,ContentType:h};if(i&&typeof i=="object"){for(let m of Object.keys(i))(!i[m]||typeof i[m]!="string")&&delete i[m];p.Metadata=i}return new lp.Upload({client:l,params:p}).done()}s(Lv,"upload");async function vS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await Yt.default.trace("streamUpload",async a=>{a.addTags({bucketName:t,filename:r,type:n,ttl:o});let u=r.split(".").pop();a.addTags({extension:u});let{bucket:c,client:l}=await bS(t,o,a),{details:d,contentType:f}=await xS({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),h=await l.headObject({Bucket:c,Key:ge(r)});return a.addTags({contentType:f,contentLength:h.ContentLength}),{...d,ContentLength:h.ContentLength}})}s(vS,"streamUpload");async function Mv({bucket:t,files:e,ttl:r}){return await Yt.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await bS(t,r,i),u=e.map((l,d)=>({...l,index:d})),c=new Array(e.length);return await _t.parallelForeach(u,async l=>{let{details:d}=await xS({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=d},10),c})}s(Mv,"streamUploadMany");async function PS(t,e){return await Yt.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=st(),i={Bucket:xe(t),Key:ge(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),Nv.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return xu.default.Readable.fromWeb(a)}})}s(PS,"retrieve");async function*gp(t,e){let r=st(),n=s((a={})=>r.listObjectsV2({...a,Bucket:xe(t),Prefix:ge(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s(gp,"listAllObjects");async function kv(t,e){let r={};return await _t.parallelForeach(gp(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(kv,"getAllFiles");async function ln(t,e,r=3600){let n=st({presigning:!0}),i={Bucket:xe(t),Key:ge(e)},o=await(0,DS.getSignedUrl)(n,new bu.GetObjectCommand(i),{expiresIn:r});if(g.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${hp}${u}${c}`}else return o}s(ln,"getPresignedUrl");async function Fv(t,e){return await Yt.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=xe(t),e=ge(e);let n=await PS(t,e),i=(0,Or.join)(cn(),(0,pp.v4)());return r.addTags({outputPath:i}),n instanceof xu.default.Readable?(r.addTags({stream:!0}),await(0,Xs.pipeline)(n,ai.default.createWriteStream(i))):(r.addTags({stream:!1}),ai.default.writeFileSync(i,n)),i})}s(Fv,"retrieveToTmp");async function Bv(t,e,r){return await Yt.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Or.join)(cn(),(0,pp.v4)());await Js.default.mkdir(i,{recursive:!0});let o=0;return await _t.parallelForeach(gp(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await Yt.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let{stream:d}=await Ru(t,l),f=l.split("/"),h=f.slice(0,f.length-1),p=(0,Or.join)(i,...h);f.length>1&&!ai.default.existsSync(p)&&await Js.default.mkdir(p,{recursive:!0}),await(0,Xs.pipeline)(d,ai.default.createWriteStream((0,Or.join)(i,...f),{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(Bv,"retrieveDirectory");async function Wv(t,e){let r=st();await Zs(r,t);let n={Bucket:t,Key:ge(e)};return r.deleteObject(n)}s(Wv,"deleteFile");async function $v(t,e){let r=st();await Zs(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:ge(i)}))}};return r.deleteObjects(n)}s($v,"deleteFiles");async function NS(t,e){t=xe(t),e=ge(e);let r=st(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return NS(t,e)}s(NS,"deleteFolder");async function Ep(t,e,r){return await Yt.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=xe(t);let i=await Js.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=ge((0,Or.join)(r,o.name)),u=(0,Or.join)(e,o.name);o.isDirectory()?await Ep(t,u,a):await vS({bucket:t,filename:a,stream:ai.default.createReadStream(u)})}return i})}s(Ep,"uploadDirectory");async function Gv(t,e,r={}){e=ge(e);let n=await(0,dp.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,Xs.pipeline)(n.body,mp.default.createUnzip(),fp.default.extract(e))}s(Gv,"downloadTarballDirect");async function Vv(t,e,r){e=xe(e),r=ge(r);let n=await(0,dp.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Or.join)(cn(),r);return await(0,Xs.pipeline)(n.body,mp.default.createUnzip(),fp.default.extract(i)),!g.isTest()&&g.SELF_HOSTED&&await Ep(e,i,r),i}s(Vv,"downloadTarball");async function Ru(t,e){return await Yt.default.trace("getReadStream",async r=>{t=xe(t),e=ge(e),r.addTags({bucketName:t,path:e});let n=st(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof xu.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(Ru,"getReadStream");async function qv(t,e){t=xe(t),e=ge(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(qv,"getObjectMetadata");async function Kv(t,e){t=xe(t),e=ge(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode)===404)return!1;throw i}}s(Kv,"objectExists");function cp(t){let e=t.split("?")[0],r=new RegExp(`^${hp}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:o}=n.groups;return{bucket:i,path:o}}return null}s(cp,"extractBucketAndPath");var LS=B(require("querystring"));var US=B(require("aws-cloudfront-sign"));var vu;function Qv(){if(!g.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return vu||(vu=Buffer.from(g.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),vu)}s(Qv,"getPrivateKey");var jv=s(()=>({keypairId:g.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:Qv(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),ui=s(t=>{let e=Hv(t);return US.getSignedUrl(e,jv())},"getPresignedUrl"),Hv=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${g.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function Yv(t){return`${ge(t)}/budibase-client.js`}s(Yv,"clientLibraryPath");function zv(t,e){return`${ge(t)}/${e}`}s(zv,"client3rdPartyLibrary");async function Jv(t,e){return`/api/assets/${t}/client?${await MS(e)}`}s(Jv,"clientLibraryUrl");async function MS(t){let e,r;try{e=$()}finally{r={version:t}}return e&&e!==ae&&(r.tenantId=e),LS.default.encode(r)}s(MS,"getClientCacheKey");async function kS(t){return g.CLOUDFRONT_CDN?ui(t):await ln(g.APPS_BUCKET_NAME,t)}s(kS,"getAppFileUrl");async function Xv(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await kS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(Xv,"enrichPWAImages");var Zv=s(async(t,e,r)=>{let n=FS(t,e);return g.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ui(n)):await ln(g.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),FS=s((t,e)=>{let r=`${t}/${e}`;return g.MULTI_TENANCY&&(r=`${$()}/${r}`),r},"getGlobalFileS3Key");async function eP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await tP(e),n=await rP(e);return{...e,jsUrl:r,iconUrl:n}}))}s(eP,"enrichPluginURLs");async function tP(t){let e=WS(t);return BS(e)}s(tP,"getPluginJSUrl");async function rP(t){let e=$S(t);if(e)return BS(e)}s(rP,"getPluginIconUrl");async function BS(t){return g.CLOUDFRONT_CDN?ui(t):await ln(g.PLUGIN_BUCKET_NAME,t)}s(BS,"getPluginUrl");function WS(t){return GS(t,"plugin.min.js")}s(WS,"getPluginJSKey");function $S(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return GS(t,e)}s($S,"getPluginIconKey");function GS(t,e){return`${VS(t.name)}/${e}`}s(GS,"getPluginS3Key");function VS(t){let e=`${t}`;return g.MULTI_TENANCY&&(e=`${$()}/${e}`),g.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(VS,"getPluginS3Dir");var QS="budibase.log",jS="budibase-logs-history.txt",HS=Sp.default.join(cn(),"systemlogs");function qS(t){return Sp.default.join(HS,t)}s(qS,"getFullPath");function YS(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}}s(YS,"getSingleFileMaxSizeInfo");function Ap(){let t=YS(g.ROLLING_LOG_MAX_SIZE);return KS.createStream(QS,{size:t?.size,path:HS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:jS,initialRotation:!1})}s(Ap,"localFileDestination");function nP(){let t=[],e=qS(jS);if(eo.default.existsSync(e)){let i=eo.default.readFileSync(e,"utf-8").split(`
37
+ `);for(let o of i.filter(a=>a))t.push(eo.default.readFileSync(o))}return t.push(eo.default.readFileSync(qS(QS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(nP,"getLogReadStream");function iP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(iP,"isPlainObject");function sP(t){return t instanceof Error}s(sP,"isError");function oP(t){return typeof t=="string"}s(oP,"isMessage");var Ir;if(!g.DISABLE_PINO_LOGGER){let t=g.LOG_LEVEL,e={level:t,formatters:{level:c=>({level:c.toUpperCase()}),bindings:()=>g.SELF_HOSTED?{service:g.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(g.isDev()?{stream:(0,zS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),g.SELF_HOSTED&&r.push({stream:Ap(),level:t}),Ir=r.length?(0,Pu.default)(e,Pu.default.multistream(r)):(0,Pu.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(E=>{oP(E)&&(f=`${f} ${E}`.trimStart()),iP(E)&&d.push(E),sP(E)&&(l=E)});let h=u(),p={};p={tenantId:i(),appId:o(),automationId:a(),identityId:h?._id,identityType:h?.type,correlationId:up()};let S=Op.default.scope().active();S&&Op.default.inject(S.context(),JS.formats.LOG,p);let m={err:l,pid:process.pid,...p};if(d.length){let E={},y=0;for(let I=0;I<d.length;I++){let O=d[I],w=O._logKey;w?(delete O._logKey,m[w]=O):(E[y]=O,y++)}Object.keys(E).length&&(m.data=E)}return[m,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Ir?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Ir?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Ir?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Ir?.debug(l,d)};let i=s(()=>{let c;try{c=$()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=be()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=bf()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=Gt()}catch{}return c},"getIdentity")}var Nu=Ir;var aP=["AccountError"];function uP(t){return t&&t.suppressAlert}s(uP,"isSuppressed");function dn(t,e){e&&aP.includes(e.name)&&uP(e)||console.error(`bb-alert: ${t}`,e)}s(dn,"logAlert");function cP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,dn(t,n)}s(cP,"logAlertWithInfo");function ci(t,e){console.warn(`bb-warn: ${t}`,e)}s(ci,"logWarn");var Uu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},Ip=class{static{s(this,"QueuedProcessor")}constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:o=!0,maxStalledCount:a=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new Et(e,{maxStalledCount:a,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:o}}),this._queue.process(async(u,c)=>{try{let l=await this.processFn(u.data);c?.(null,l)}catch(l){l instanceof Uu&&await u.discard(),dn(`Failed to process job in ${this._queue.name}`,l),c?.(l)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await Ue.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var lP=100,Lu,ro=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new Et("docWritethroughQueue",{jobOptions:{attempts:lP}})),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=Re(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},Dp=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await ro.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function XS(){return Lu=new ro().init(),Lu}s(XS,"init");function dP(){return Lu||XS()}s(dP,"getProcessor");var io={};P(io,{CacheKey:()=>ye,TTL:()=>mn,bustCache:()=>li,destroy:()=>no,get:()=>hn,keys:()=>Mu,store:()=>zt,withCache:()=>wr,withCacheWithDynamicTTL:()=>ZS});function Ct(t){let e=$();return`${t}:${e}`}s(Ct,"generateTenantKey");var fn=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await kf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ct(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Ct(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((o,[a,u])=>(o[Ct(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ct(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(Ct(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Ct(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var pn=new fn,ye={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}`},mn=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(mn||{}),Mu=s((...t)=>pn.keys(...t),"keys"),hn=s((...t)=>pn.get(...t),"get"),zt=s((...t)=>pn.store(...t),"store"),no=s((...t)=>pn.delete(...t),"destroy"),wr=s((...t)=>pn.withCache(...t),"withCache"),ZS=s((...t)=>pn.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),li=s((...t)=>pn.bustCache(...t),"bustCache");var xp={};P(xp,{createCode:()=>TP,deleteCode:()=>AP,getCode:()=>SP,getExistingInvites:()=>bp,getInviteCodes:()=>oA,updateCode:()=>yP});var En={};P(En,{AUTO_EXTEND_POLLING_MS:()=>rA,doWithLock:()=>so,newRedlock:()=>gn});var tA=B(require("redlock"));async function fP(t,e){if(t==="custom")return gn(e);switch(t){case"try_once":return gn(di.TRY_ONCE);case"try_twice":return gn(di.TRY_TWICE);case"default":return gn(di.DEFAULT);case"delay_500":return gn(di.DELAY_500);case"auto_extend":return gn(di.AUTO_EXTEND);default:throw _t.unreachable(t)}}s(fP,"getClient");var di={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 gn(t={}){let e={...di.DEFAULT,...t},n=(await Bf()).client;return new tA.default([n],e)}s(gn,"newRedlock");function pP(t){let r=`lock:${t.systemLock?"system":$()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(pP,"getLockName");var rA=pe.fromSeconds(10).toMs();async function so(t,e){let r=await fP(t.type,t.customOptions),n,i;try{let o=pP(t),a=t.type==="auto_extend"?rA:t.ttl;if(n=await r.lock(o,a),t.type==="auto_extend"){let c=s(()=>{i=setTimeout(async()=>{n=await n.extend(a,()=>t.onExtend&&t.onExtend()),c()},a/2)},"extendInIntervals");c()}return{executed:!0,result:await e()}}catch(o){if(o.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw o}else throw o}finally{clearTimeout(i),await n?.unlock()}}s(so,"doWithLock");var nA=pe.fromDays(7).toSeconds(),hP=pe.fromSeconds(10).toMs(),ku="Invitation is not valid or has expired, please request a new one.";function iA(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(iA,"normaliseInviteList");function gP(t){let e=!1,r=Date.now();for(let[n,i]of Object.entries(t.invites))(!i?.expiresAt||i.expiresAt<=r)&&(delete t.invites[n],e=!0);return{list:t,changed:e}}s(gP,"pruneExpiredInvites");async function Cp(t){let r=await(await Us()).get(t);return iA(r,t)}s(Cp,"loadInviteList");async function oo(t,e){await(await Us()).store(t,e)}s(oo,"saveInviteList");async function ao(t,e){let{result:r}=await so({type:"default",name:"process_user_invite",systemLock:!0,resource:t,ttl:hP},e);return r}s(ao,"withInviteListLock");function EP(t,e){return{code:t,email:e.email,info:e.info}}s(EP,"toInviteWithCode");async function sA(t,e){let r=await Us(),n=iA(await r.get(e),e);if(!n)throw new Error(ku);if(!Object.keys(n.invites).includes(t))throw new Error(ku);return{list:n,invite:n.invites[t]}}s(sA,"findInviteInList");async function yP(t,e){let r={...e.info},n=r.tenantId||$();r.tenantId=n,await ao(n,async()=>{let i=await Cp(n)||{tenantId:n,invites:{}};i.invites[t]={email:e.email,info:r,expiresAt:Date.now()+nA*1e3},await oo(n,i)})}s(yP,"updateCode");async function TP(t,e){let r=ee(),n={...e||{}},i=n.tenantId||$();return n.tenantId=i,await ao(i,async()=>{let o=await Cp(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+nA*1e3},await oo(i,o)}),r}s(TP,"createCode");async function SP(t,e){let r=e||$();return await ao(r,async()=>{let n=await sA(t,r),{list:i,invite:o}=n;if(o.expiresAt<=Date.now())throw delete i.invites[t],await oo(i.tenantId,i),new Error(ku);return{email:o.email,info:o.info}})}s(SP,"getCode");async function AP(t,e){let r=e||$();try{await ao(r,async()=>{let n=await sA(t,r);delete n.list.invites[t],await oo(n.list.tenantId,n.list)})}catch(n){if(n instanceof Error&&n.message===ku)return;throw n}}s(AP,"deleteCode");async function oA(){let t=$(),e=await ao(t,async()=>{let n=await Cp(t)||{tenantId:t,invites:{}},i=gP(n);return n=i.list,i.changed&&await oo(t,n),n}),r=new Map;for(let[n,i]of Object.entries(e.invites))r.set(n,EP(n,i));return Array.from(r.values())}s(oA,"getInviteCodes");async function bp(t){let e=new Set(t.map(r=>r.toLowerCase()));return(await oA()).filter(r=>e.has(r.email.toLowerCase()))}s(bp,"getExistingInvites");var vp={};P(vp,{createCode:()=>OP,getCode:()=>IP,invalidateCode:()=>wP});var _P=pe.fromHours(1).toSeconds();async function OP(t,e){let r=ee();return await(await Ls()).store(r,{userId:t,info:e},_P),r}s(OP,"createCode");async function IP(t){let r=await(await Ls()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(IP,"getCode");async function wP(t){await(await Ls()).delete(t)}s(wP,"invalidateCode");var br={};P(br,{getUser:()=>bo,getUsers:()=>e0,invalidateUser:()=>xo});var uo={};P(uo,{getPlatformDB:()=>Dr,users:()=>yt});var yt={};P(yt,{addSsoUser:()=>uA,addUser:()=>vP,getUserDoc:()=>aA,lookupTenantId:()=>DP,removeUser:()=>PP,updateUserDoc:()=>RP});function Dr(){return Re(fe.PLATFORM_INFO.name)}s(Dr,"getPlatformDB");async function DP(t){return g.MULTI_TENANCY?(await aA(t)).tenantId:ae}s(DP,"lookupTenantId");async function aA(t){return Dr().get(t)}s(aA,"getUserDoc");async function RP(t){await Dr().put(t)}s(RP,"updateUserDoc");function CP(t,e){return{_id:t,tenantId:e}}s(CP,"newUserIdDoc");function bP(t,e,r){return{_id:e,userId:t,tenantId:r}}s(bP,"newUserEmailDoc");function xP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(xP,"newUserSsoIdDoc");async function Pp(t,e){let r=Dr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s(Pp,"addUserDoc");async function uA(t,e,r,n){return Pp(t,()=>xP(t,e,r,n))}s(uA,"addSsoUser");async function vP(t,e,r,n){let i=[Pp(e,()=>CP(e,t)),Pp(r,()=>bP(e,r,t))];n&&i.push(uA(n,r,e,t)),await Promise.all(i)}s(vP,"addUser");async function PP(t){let e=Dr(),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})}s(PP,"removeUser");var yn={};P(yn,{getAccount:()=>Rr,getAccountByTenantId:()=>fi,getStatus:()=>NP});var cA=B(require("node-fetch"));var co=class{static{s(this,"API")}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";Ys.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,cA.default)(`${this.host}${r}`,o)}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 Np=new co(g.INTERNAL_ACCOUNT_PORTAL_URL),Up=g.SELF_HOSTED||g.DISABLE_ACCOUNT_PORTAL,Rr=s(async t=>{if(Up)return;let e={email:t},r=await Np.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),fi=s(async t=>{if(Up)return;let e={tenantId:t},r=await Np.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),NP=s(async()=>{if(Up)return;let t=await Np.get("/api/status",{headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var Ei={};P(Ei,{UserDB:()=>xt,addAppBuilder:()=>zL,bulkGetGlobalUsersById:()=>ac,bulkUpdateGlobalUsers:()=>Do,cleanseUserObject:()=>rm,creatorsInList:()=>An,doesUserExist:()=>KL,getAccountHolderFromUsers:()=>oc,getAllUserIds:()=>VL,getAllUsers:()=>qL,getById:()=>_n,getCreatorCount:()=>HL,getExistingAccounts:()=>gi,getExistingPlatformUsers:()=>JA,getExistingTenantUsers:()=>zA,getFirstPlatformUser:()=>Io,getGlobalUserByAppPage:()=>i_,getGlobalUserByEmail:()=>At,getPlatformUsers:()=>rc,getUserCount:()=>jL,hasAdminPermissions:()=>Cr,hasAppBuilderPermissions:()=>e_,hasBuilderPermissions:()=>ke,isAdmin:()=>bt,isAdminOrBuilder:()=>ZA,isAdminOrWorkspaceBuilder:()=>nc,isBuilder:()=>Si,isCreatorAsync:()=>wo,isCreatorSync:()=>ic,isGlobalBuilder:()=>XA,paginatedUsers:()=>o_,removeAppBuilder:()=>JL,removePortalUserPermissions:()=>YL,searchExistingEmails:()=>Jp,searchGlobalUsersByApp:()=>n_,searchGlobalUsersByAppAccess:()=>tm,searchGlobalUsersByEmail:()=>s_,validateUniqueUser:()=>sc});var Qu={};P(Qu,{ActiveContentFileError:()=>Wu,BadRequestError:()=>fo,BudibaseError:()=>lo,EmailUnavailableError:()=>Jt,FeatureDisabledError:()=>Vu,ForbiddenError:()=>$u,HTTPError:()=>Me,NotFoundError:()=>Bu,NotImplementedError:()=>Gu,UnexpectedError:()=>Fu,UsageLimitError:()=>qu,getErrorMessage:()=>lA,getPublicError:()=>Ku});var lo=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"BudibaseError")}};function lA(t){if(t==null)return"No error provided.";if(t instanceof Error)return t.message;if(typeof t=="string")return t;if(typeof t=="object"&&"message"in t)return String(t.message);try{let r=JSON.stringify(t);if(r!=="{}")return r}catch{}let e=String(t);return e!=="[object Object]"?e:"An unknown error occurred"}s(lA,"getErrorMessage");var Ku=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),Me=class t extends lo{constructor(r,n,i="http"){super(r,i);this.status=n}static{s(this,"HTTPError")}static async fromResponse(r){let n=await r.text(),i=n,o=r.status,a="http";try{let u=JSON.parse(n);i=u.error?.message||u.message,o=u.status??r.status,a=u.error?.code??r.statusText}catch{}return new t(i,o,a)}},Fu=class extends Me{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},Bu=class extends Me{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},fo=class extends Me{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},Wu=class extends fo{static{s(this,"ActiveContentFileError")}constructor(e){super(`File "${e}" contains active content which is not permitted`)}},$u=class extends Me{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},Gu=class extends Me{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},Vu=class extends Error{static{s(this,"FeatureDisabledError")}constructor(e){super(`Feature disabled: '${e}'`)}},qu=class extends Error{static{s(this,"UsageLimitError")}constructor(e){super(`Usage limit exceeded: '${e}'`)}},Jt=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var Fp={};P(Fp,{PASSWORD_MAX_LENGTH:()=>Mp,PASSWORD_MIN_LENGTH:()=>Lp,validatePassword:()=>kp});var Lp=+(g.PASSWORD_MIN_LENGTH||12),Mp=+(g.PASSWORD_MAX_LENGTH||512);function kp(t){return!t||t.length<Lp?{valid:!1,error:`Password invalid. Minimum ${Lp} characters.`}:t.length>Mp?{valid:!1,error:`Password invalid. Maximum ${Mp} characters.`}:{valid:!0}}s(kp,"validatePassword");var ju={};P(ju,{createASession:()=>UP,endSession:()=>LP,getSession:()=>Wp,getSessionsForUser:()=>po,invalidateSessions:()=>Tn,updateSessionTTL:()=>Bp});var fA=require("uuid");var pA=g.SESSION_EXPIRY_SECONDS?parseInt(g.SESSION_EXPIRY_SECONDS):pe.fromDays(7).toSeconds();function pi(t,e){return`${t}/${e}`}s(pi,"makeSessionID");async function po(t){return t?(await(await yr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(po,"getSessionsForUser");async function Tn(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await po(t)).map(a=>({key:pi(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:pi(t,o)}))),i&&i.length>0){let o=await yr(),a=[];for(let u of i)a.push(o.delete(u.key));g.isTest()||ci(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(Tn,"invalidateSessions");async function UP(t,e){let r=await po(t),n=0;if(r.length>=3){let l=r.sort((h,p)=>new Date(h.createdAt).getTime()-new Date(p.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(h=>h.sessionId);n=f.length,await Tn(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await yr(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,fA.v4)(),u=pi(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,pA),{session:c,invalidatedSessionCount:n}}s(UP,"createASession");async function Bp(t){let e=await yr(),r=pi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,pA)}s(Bp,"updateSessionTTL");async function LP(t,e){await(await yr()).delete(pi(t,e))}s(LP,"endSession");async function Wp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await yr()).get(pi(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(Wp,"getSession");var hi={};P(hi,{account:()=>wA,action:()=>DA,ai:()=>RA,analytics:()=>Yu,app:()=>CA,asyncEventQueue:()=>Tt,auditLog:()=>bA,auth:()=>tc,automation:()=>xA,backfill:()=>vA,backfillCache:()=>Xu,backup:()=>PA,datasource:()=>NA,email:()=>UA,environmentVariable:()=>LA,group:()=>MA,identification:()=>St,initAsyncEvents:()=>xL,installation:()=>yo,layout:()=>kA,license:()=>FA,org:()=>BA,plugin:()=>WA,processors:()=>Qp,publishEvent:()=>A,query:()=>$A,resource:()=>GA,role:()=>Oo,rowAction:()=>VA,rows:()=>qA,screen:()=>KA,serve:()=>QA,shutdown:()=>vL,table:()=>jA,user:()=>Fe,view:()=>HA,workspace:()=>YA});var Yu={};P(Yu,{enabled:()=>Hu});var Hu=s(async()=>zu(),"enabled");var Tt;function Ju(){Tt=new Et("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}s(Ju,"init");async function mA(){Tt&&await Tt.close()}s(mA,"shutdown");async function hA(t){Tt||Ju();let{event:e,identity:r}=t;th.indexOf(e)!==-1&&r.tenantId&&await Tt.add(t)}s(hA,"publishAsyncEvent");var Xu={};P(Xu,{end:()=>kP,isAlreadySent:()=>Vp,isBackfillingEvent:()=>Gp,recordEvent:()=>$p,start:()=>MP});var MP=s(async t=>BP({eventWhitelist:t}),"start"),$p=s(async(t,e)=>{let r=qp(t,e);await zt(r,e,void 0,{useTenancy:!1})},"recordEvent"),kP=s(async()=>{await WP(),await $P()},"end"),FP=s(async()=>hn(ye.BACKFILL_METADATA),"getBackfillMetadata"),BP=s(async t=>zt(ye.BACKFILL_METADATA,t),"saveBackfillMetadata"),WP=s(async()=>{await no(ye.BACKFILL_METADATA)},"deleteBackfillMetadata"),$P=s(async()=>{let t=qp(),e=await Mu(t);for(let r of e)await no(r,{useTenancy:!1})},"clearEvents"),Gp=s(async t=>{let r=(await FP())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),Vp=s(async(t,e)=>{let r=qp(t,e);return!!await hn(r,{useTenancy:!1})},"isAlreadySent"),GP={"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}`},qp=s((t,e)=>{let r,n=$();if(t){r=`${ye.EVENTS}:${n}:${t}`;let i=GP[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${ye.EVENTS}:${n}:*`;return r},"getEventKey");var Qp={};P(Qp,{analyticsProcessor:()=>_A,init:()=>XP,processors:()=>Zt});var SA=require("posthog-node");var VP=s(t=>t==="served:builder"||t==="served:app:preview"||t==="served:app","isRateLimited"),qP=s(t=>t==="served:app:preview"||t==="served:app","isPerApp");var EA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},yA=s(async t=>{if(!VP(t))return!1;let e=await KP(t);if(e){let r=new Date(e.timestamp);switch(EA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await gA(t,{timestamp:Date.now()}),!1):!0}}else return await gA(t,{timestamp:Date.now()}),!1},"limited"),TA=s(t=>{let e=`${ye.EVENTS_RATE_LIMIT}:${t}`;return qP(t)&&(e=e+":"+be()),e},"eventKey"),KP=s(async t=>{let e=TA(t);return await hn(e)},"readEvent"),gA=s(async(t,e)=>{let r=TA(t),n=EA[t],i;switch(n){case"calendarDay":i=86400}await zt(r,e,i)},"recordEvent");var jP=["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"],mo=class{static{s(this,"PosthogProcessor")}constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new SA.PostHog(e)}async processEvent(e,r,n,i){if(jP.includes(e)||await yA(e))return;n=this.clearPIIProperties(n),n.version=g.VERSION,n.service=g.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let o=be();o&&(n.appId=o);let a={distinctId:r.id,event:e,properties:n};i&&(a.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(a.groups={},r.installationId&&(a.groups.installation=r.installationId,a.properties.installationId=r.installationId),r.tenantId&&(a.groups.tenant=r.tenantId,a.properties.tenantId=r.tenantId)),this.posthog.capture(a)}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 AA=mo;var HP=["installation:version:upgraded","installation:version:downgraded"],YP=["installation","tenant"],ho=class{static{s(this,"AnalyticsProcessor")}constructor(){g.POSTHOG_TOKEN&&!g.isTest()&&(this.posthog=new AA(g.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!HP.includes(e)&&!await Hu()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!YP.includes(e.type)&&!await Hu()||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 Kp=g.SELF_HOSTED&&!g.isDev(),go=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){Kp||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Kp||console.log("[audit] identified",e)}async identifyGroup(e){Kp||console.log("[audit] group identified",e)}async shutdown(){}};var mi=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new Et("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Ce(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};g.ENABLE_AUDIT_LOG_IP_ADDR&&(o=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:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Zf(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:be(),hostInfo:r.hostInfo},tenantId:$()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var Eo=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.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 _A=new ho,zP=new go,JP=new mi;function XP(t){return mi.init(t)}s(XP,"init");var Zt=new Eo([_A,zP,JP]);var Zu={};P(Zu,{checkInstallVersion:()=>tN,getInstall:()=>To,getInstallFromDB:()=>Hp});var jp=B(require("semver"));var To=s(async()=>wr(ye.INSTALLATION,86400,Hp,{useTenancy:!1}),"getInstall");async function ZP(t){let e={_id:fe.PLATFORM_INFO.docs.install,installId:ee(),version:g.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Hp();throw r}}s(ZP,"createInstallDoc");var Hp=s(async()=>je(fe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(fe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await ZP(t);else throw r}return e}),"getInstallFromDB"),eN=s(async t=>{try{await je(fe.PLATFORM_INFO.name,async e=>{let r=await To();r.version=t,await e.put(r),await li(ye.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),tN=s(async()=>{let t=await To(),e=t.version,r=g.VERSION;try{if(e!==r){let n=jp.default.gt(r,e),i=jp.default.lt(r,e);await eN(r)&&(await Rs({_id:t.installId,type:"installation"},async()=>{n?await yo.upgraded(e,r):i&&await yo.downgraded(e,r)}),await St.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?dn(`Invalid version "${r}" - is it semver?`):dn("Failed to retrieve version",n)}},"checkInstallVersion");var rN=s(async()=>{let t=df(),e=_o(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await Sn(),i=So();return{id:OA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await Sn(),i=await ec($()),o=So();return{id:OA(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:$(),environment:e}}else if(r==="user"){let n=t,i=await ec($()),o=await Sn(),a=n.account,u;return a?u=a.hosting:u=So(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:$(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),nN=s(async(t,e)=>{let r=t,n="installation",i=So(),o=g.VERSION,a=_o(),u={id:r,type:n,hosting:i,version:o,environment:a};await Yp(u,e),await Ao({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),iN=s(async(t,e,r,n=g.VERSION)=>{let i=await ec(t),o="tenant",a=await Sn(),u=_o(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await Yp(c,r),await Ao({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),sN=s(async(t,e,r)=>{let n=t._id,i=await ec(t.tenantId),o="user",a=ke(t),u=Cr(t),c;jo(t)&&(c=t.providerType);let d=(await gi([t.email])).length>0,f=!!e&&d&&e.verified,h=await Sn(),p=e?e.hosting:So(),S=_o();await Ao({id:n,type:o,hosting:p,installationId:h,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:S},r)},"identifyUser"),oN=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Qo(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await Sn(),l=_o();if(Ko(t)){let f=await At(t.email);f?._id&&(e=f._id)}await Ao({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),Ao=s(async(t,e)=>{await Zt.identify(t,e)},"identify"),Yp=s(async(t,e)=>{await Zt.identifyGroup(t,e)},"identifyGroup"),_o=s(()=>g.isDev()?"development":g.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),So=s(()=>g.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),Sn=s(async()=>aN()?"account-portal":(await To()).installId,"getInstallationId"),ec=s(async t=>g.SELF_HOSTED?IA(t):t,"getEventTenantId"),IA=s(async t=>Ce(t,()=>wr(ye.UNIQUE_TENANT_ID,86400,async()=>{let e=Y(),r=await yi(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ee()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=g.VERSION,await e.put(r),n)})),"getUniqueTenantId"),aN=s(()=>g.SERVICE==="account-portal","isAccountPortal"),OA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),St={getCurrentIdentity:rN,identifyInstallationGroup:nN,identifyTenantGroup:iN,identifyUser:sN,identifyAccount:oN,identify:Ao,identifyGroup:Yp,getInstallationId:Sn,getUniqueTenantId:IA};var A=s(async(t,e,r,n)=>{let i=n||await St.getCurrentIdentity();if(!(n?!1:await Gp(t))){await hA({event:t,identity:i,properties:e,timestamp:r}),await Zt.processEvent(t,i,e,r);return}await Vp(t,e)||(await Zt.processEvent(t,i,e,r),await $p(t,e))},"publishEvent");async function uN(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}s(uN,"created");async function cN(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}s(cN,"deleted");async function lN(t){let e={tenantId:t.tenantId};await A("account:verified",e)}s(lN,"verified");var wA={created:uN,deleted:cN,verified:lN};async function dN(t,e){console.info("action:automation_step:executed",`disabled. Action step ${t.stepId} not published at ${e}`)}s(dN,"automationStepExecuted");async function fN(t,e){console.info("action:automation_step:executed",`disabled. Action type ${t.type} not published at ${e}`)}s(fN,"crudExecuted");async function pN(t,e){console.info("action:automation_step:executed",`disabled. Execution for ai agent ${t.agentId} not published at ${e}`)}s(pN,"aiAgentExecuted");var DA={aiAgentExecuted:pN,automationStepExecuted:dN,crudExecuted:fN};async function mN(t){let e={};await A("ai:config:created",e,t)}s(mN,"AIConfigCreated");async function hN(){let t={};await A("ai:config:updated",t)}s(hN,"AIConfigUpdated");var RA={AIConfigCreated:mN,AIConfigUpdated:hN};var gN=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)},"created");async function EN(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}s(EN,"updated");async function yN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}s(yN,"deleted");async function TN(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}s(TN,"published");async function SN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}s(SN,"unpublished");async function AN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}s(AN,"fileImported");async function _N(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}s(_N,"duplicated");async function ON(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}s(ON,"templateImported");async function IN(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}s(IN,"versionUpdated");async function wN(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}s(wN,"versionReverted");async function DN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}s(DN,"reverted");async function RN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}s(RN,"exported");var CA={created:gN,updated:EN,deleted:yN,published:TN,unpublished:SN,fileImported:AN,duplicated:_N,templateImported:ON,versionUpdated:IN,versionReverted:wN,reverted:DN,exported:RN};async function CN(t){let e={filters:t};await A("audit_log:filtered",e)}s(CN,"filtered");async function bN(t){let e={filters:t};await A("audit_log:downloaded",e)}s(bN,"downloaded");var bA={filtered:CN,downloaded:bN};async function xN(t,e){let n={userId:(await St.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}s(xN,"login");async function vN(t){let r={userId:(await St.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}s(vN,"logout");async function PN(t,e){let r={type:t};await A("auth:sso:created",r,e)}s(PN,"SSOCreated");async function NN(t){let e={type:t};await A("auth:sso:updated",e)}s(NN,"SSOUpdated");async function UN(t,e){let r={type:t};await A("auth:sso:activated",r,e)}s(UN,"SSOActivated");async function LN(t){let e={type:t};await A("auth:sso:deactivated",e)}s(LN,"SSODeactivated");var tc={login:xN,logout:vN,SSOCreated:PN,SSOUpdated:NN,SSOActivated:UN,SSODeactivated:LN};async function MN(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)}s(MN,"created");async function kN(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)}s(kN,"triggerUpdated");async function FN(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)}s(FN,"deleted");async function BN(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}s(BN,"tested");var WN=s(async(t,e)=>{let r={count:t};await A("automations:run",r,e)},"run");async function $N(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)}s($N,"stepCreated");async function GN(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)}s(GN,"stepDeleted");var xA={created:MN,triggerUpdated:kN,deleted:FN,tested:BN,run:WN,stepCreated:$N,stepDeleted:GN};var Ti=!g.SELF_HOSTED&&!g.isDev();async function VN(t){Ti||await A("app:backfill:succeeded",t)}s(VN,"appSucceeded");async function qN(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}s(qN,"appFailed");async function KN(t){Ti||await A("tenant:backfill:succeeded",t)}s(KN,"tenantSucceeded");async function QN(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}s(QN,"tenantFailed");async function jN(){if(Ti)return;let t={};await A("installation:backfill:succeeded",t)}s(jN,"installationSucceeded");async function HN(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}s(HN,"installationFailed");var vA={appSucceeded:VN,appFailed:qN,tenantSucceeded:KN,tenantFailed:QN,installationSucceeded:jN,installationFailed:HN};async function YN(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}s(YN,"appBackupRestored");async function zN(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",o)}s(zN,"appBackupTriggered");var PA={appBackupRestored:YN,appBackupTriggered:zN};function zp(t){return!Object.values($o).includes(t.source)}s(zp,"isCustom");async function JN(t,e){let r={datasourceId:t._id,source:t.source,custom:zp(t)};await A("datasource:created",r,e)}s(JN,"created");async function XN(t){let e={datasourceId:t._id,source:t.source,custom:zp(t)};await A("datasource:updated",e)}s(XN,"updated");async function ZN(t){let e={datasourceId:t._id,source:t.source,custom:zp(t)};await A("datasource:deleted",e)}s(ZN,"deleted");var NA={created:JN,updated:XN,deleted:ZN};async function eU(t){let e={};await A("email:smtp:created",e,t)}s(eU,"SMTPCreated");async function tU(){let t={};await A("email:smtp:updated",t)}s(tU,"SMTPUpdated");var UA={SMTPCreated:eU,SMTPUpdated:tU};async function rU(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}s(rU,"created");async function nU(t){let e={name:t};await A("environment_variable:deleted",e)}s(nU,"deleted");async function iU(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}s(iU,"upgradePanelOpened");var LA={created:rU,deleted:nU,upgradePanelOpened:iU};async function sU(t,e){let r={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await A("user_group:created",r,e)}s(sU,"created");async function oU(t){let e={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await A("user_group:updated",e)}s(oU,"updated");async function aU(t){let e={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await A("user_group:deleted",e)}s(aU,"deleted");async function uU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:gt(),audited:{name:e.name}};await A("user_group:user_added",n)}s(uU,"usersAdded");async function cU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:gt(),audited:{name:e.name}};await A("user_group:users_deleted",n)}s(cU,"usersDeleted");async function lU(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}s(lU,"createdOnboarding");async function dU(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}s(dU,"permissionsEdited");var MA={created:sU,updated:oU,deleted:aU,usersAdded:uU,usersDeleted:cU,createdOnboarding:lU,permissionsEdited:dU};async function fU(t){let e={currentVersion:t};await A("installation:version:checked",e)}s(fU,"versionChecked");async function pU(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}s(pU,"upgraded");async function mU(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}s(mU,"downgraded");async function hU(){let t={};await A("installation:firstStartup",t)}s(hU,"firstStartup");var yo={versionChecked:fU,upgraded:pU,downgraded:mU,firstStartup:hU};async function gU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}s(gU,"created");async function EU(t){let e={layoutId:t};await A("layout:deleted",e)}s(EU,"deleted");var kA={created:gU,deleted:EU};async function yU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}s(yU,"planChanged");async function TU(t){let e={accountId:t.accountId};await A("license:activated",e)}s(TU,"activated");async function SU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}s(SU,"checkoutOpened");async function AU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}s(AU,"checkoutSuccess");async function _U(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}s(_U,"portalOpened");async function OU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}s(OU,"paymentFailed");async function IU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}s(IU,"paymentRecovered");var FA={planChanged:yU,activated:TU,checkoutOpened:SU,checkoutSuccess:AU,portalOpened:_U,paymentFailed:OU,paymentRecovered:IU};async function wU(t){let e={};await A("org:info:name:updated",e,t)}s(wU,"nameUpdated");async function DU(t){let e={};await A("org:info:logo:updated",e,t)}s(DU,"logoUpdated");async function RU(t){let e={};await A("org:platformurl:updated",e,t)}s(RU,"platformURLUpdated");async function CU(){let t={};await A("analytics:opt:out",t)}s(CU,"analyticsOptOut");async function bU(){let t={};await A("analytics:opt:out",t)}s(bU,"analyticsOptIn");var BA={nameUpdated:wU,logoUpdated:DU,platformURLUpdated:RU,analyticsOptOut:CU,analyticsOptIn:bU};async function xU(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}s(xU,"init");async function vU(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)}s(vU,"imported");async function PU(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}s(PU,"deleted");var WA={init:xU,imported:vU,deleted:PU};var NU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},"created"),UU=s(async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},"updated"),LU=s(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)},"deleted"),MU=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},"imported"),kU=s(async(t,e)=>{let r={count:t};await A("queries:run",r,e)},"run"),FU=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},"previewed"),$A={created:NU,updated:UU,deleted:LU,imported:MU,run:kU,previewed:FU};async function BU({resource:t,fromWorkspace:e,toWorkspace:r},n){let i={resource:t,fromWorkspace:e,toWorkspace:r};await A("resource:copied_to_workspace",i,n)}s(BU,"duplicatedToWorkspace");var GA={duplicatedToWorkspace:BU};async function WU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}s(WU,"created");async function $U(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}s($U,"updated");async function GU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}s(GU,"deleted");async function VU(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}s(VU,"assigned");async function qU(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}s(qU,"unassigned");var Oo={created:WU,updated:$U,deleted:GU,assigned:VU,unassigned:qU};async function KU(t,e){await A("row_action:created",t,e)}s(KU,"created");var VA={created:KU};var QU=s(async(t,e)=>{let r={count:t};await A("rows:created",r,e)},"created"),jU=s(async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},"imported"),qA={created:QU,imported:jU};async function HU(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)}s(HU,"created");async function YU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}s(YU,"deleted");var KA={created:HU,deleted:YU};async function zU(t){let e={timezone:t};await A("served:builder",e)}s(zU,"servedBuilder");async function JU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}s(JU,"servedApp");async function XU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}s(XU,"servedAppPreview");var QA={servedBuilder:zU,servedApp:JU,servedAppPreview:XU};async function ZU(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}s(ZU,"created");async function eL(t,e){let r,n;for(let o in e.schema)if(!t.schema[o]){let a=e.schema[o];"default"in a&&a.default!=null&&(r=!0),a.type==="ai"&&(n=a.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}s(eL,"updated");async function tL(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}s(tL,"deleted");async function rL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}s(rL,"exported");async function nL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}s(nL,"imported");var jA={created:ZU,updated:eL,deleted:tL,exported:rL,imported:nL};async function iL(t,e){let r={userId:t._id,viaScim:gt(),audited:{email:t.email}};await A("user:created",r,e)}s(iL,"created");async function sL(t){let e={userId:t._id,viaScim:gt(),audited:{email:t.email}};await A("user:updated",e)}s(sL,"updated");async function oL(t){let e={userId:t._id,viaScim:gt(),audited:{email:t.email}};await A("user:deleted",e)}s(oL,"deleted");async function aL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}s(aL,"permissionAdminAssigned");async function uL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}s(uL,"permissionAdminRemoved");async function cL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}s(cL,"permissionBuilderAssigned");async function lL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}s(lL,"permissionBuilderRemoved");async function dL(t){let e={audited:{email:t}};await A("user:invited",e)}s(dL,"invited");async function fL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}s(fL,"inviteAccepted");async function pL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}s(pL,"passwordForceReset");async function mL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}s(mL,"passwordUpdated");async function hL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}s(hL,"passwordResetRequested");async function gL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}s(gL,"passwordReset");async function EL(t){let e={users:t};await A("user:data:collaboration",e)}s(EL,"dataCollaboration");var Fe={created:iL,updated:sL,deleted:oL,permissionAdminAssigned:aL,permissionAdminRemoved:uL,permissionBuilderAssigned:cL,permissionBuilderRemoved:lL,invited:dL,inviteAccepted:fL,passwordForceReset:pL,passwordUpdated:mL,passwordResetRequested:hL,passwordReset:gL,dataCollaboration:EL};async function yL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}s(yL,"created");async function TL(t){let e={tableId:t.tableId};await A("view:updated",e)}s(TL,"updated");async function SL(t,e){let r={...Ue.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}s(SL,"deleted");async function AL(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}s(AL,"exported");async function _L({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}s(_L,"filterCreated");async function OL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}s(OL,"filterUpdated");async function IL(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}s(IL,"filterDeleted");async function wL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}s(wL,"calculationCreated");async function DL(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}s(DL,"calculationUpdated");async function RL(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}s(RL,"calculationDeleted");async function CL(t,e){let r={tableId:t};await A("view:join:created",r,e)}s(CL,"viewJoinCreated");var HA={created:yL,updated:TL,deleted:SL,exported:AL,filterCreated:_L,filterUpdated:OL,filterDeleted:IL,calculationCreated:wL,calculationUpdated:DL,calculationDeleted:RL,viewJoinCreated:CL};async function bL(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}s(bL,"deleted");var YA={deleted:bL};function xL(){}s(xL,"initAsyncEvents");var vL=s(async()=>{await Zt.shutdown(),console.log("Events shutdown")},"shutdown");var Xp={};P(Xp,{creatorsInList:()=>An,getAccountHolderFromUsers:()=>oc,hasAdminPermissions:()=>Cr,hasAppBuilderPermissions:()=>e_,hasBuilderPermissions:()=>ke,isAdmin:()=>bt,isAdminOrBuilder:()=>ZA,isAdminOrWorkspaceBuilder:()=>nc,isBuilder:()=>Si,isCreatorAsync:()=>wo,isCreatorSync:()=>ic,isGlobalBuilder:()=>XA,validateUniqueUser:()=>sc});async function Jp(t){let e=[],r=await zA(t);e.push(...r.map(a=>a.email));let n=await JA(t);e.push(...n.map(a=>a._id));let i=await gi(t);e.push(...i.map(a=>a.email));let o=await bp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(Jp,"searchExistingEmails");async function rc(t){return await Ws("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(rc,"getPlatformUsers");async function Io(t){return(await rc(t))[0]??null}s(Io,"getFirstPlatformUser");async function zA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await Kt("by_email2",r,void 0,n)}s(zA,"getExistingTenantUsers");async function JA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Ws("platform_users_lowercase_2",r)}s(JA,"getExistingPlatformUsers");async function gi(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Ws("account_by_email",r)}s(gi,"getExistingAccounts");var Si=Le.users.isBuilder,bt=Le.users.isAdmin,XA=Le.users.isGlobalBuilder,ZA=Le.users.isAdminOrBuilder,Cr=Le.users.hasAdminPermissions,ke=Le.users.hasBuilderPermissions,e_=Le.users.hasAppBuilderPermissions,nc=Le.users.isAdminOrWorkspaceBuilder;async function An(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await Y().getMultiple(r,{allowMissing:!0}),t.map(i=>ic(i,e))}s(An,"creatorsInList");async function wo(t){let e=[];return t.userGroups&&(e=await Y().getMultiple(t.userGroups)),ic(t,e)}s(wo,"isCreatorAsync");function ic(t,e){let r=Le.users.isCreator(t);return!r&&t?PL(t,e):r}s(ic,"isCreatorSync");function PL(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}s(PL,"isCreatorByGroupMembership");async function sc(t,e){if(g.MULTI_TENANCY){let r=await Io(t);if(r!=null&&r.tenantId!==e)throw new Jt(t)}if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let r=await Rr(t);if(r&&r.verified&&r.tenantId!==e)throw new Jt(t)}}s(sc,"validateUniqueUser");async function oc(t){if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let e=await gi(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(oc,"getAccountHolderFromUsers");var Zp=s(async t=>{await Fe.deleted(t),ke(t)&&await Fe.permissionBuilderRemoved(t),Cr(t)&&await Fe.permissionAdminRemoved(t)},"handleDeleteEvents"),NL=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Oo.assigned(t,i)},"assignAppRoleEvents"),UL=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Oo.unassigned(t,i)},"unassignAppRoleEvents"),LL=s(async(t,e)=>{let r=t.roles,n=e?.roles;await NL(t,r,n),await UL(t,r,n)},"handleAppRoleEvents"),em=s(async(t,e,r)=>{let n=r;!n&&!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL&&(n=await fi($())),await St.identifyUser(t,n),e?(await Fe.updated(t),kL(t,e)&&await Fe.permissionBuilderRemoved(t),BL(t,e)&&await Fe.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Fe.passwordForceReset(t),t.password!==e.password&&await Fe.passwordUpdated(t)):await Fe.created(t),ML(t,e)&&await Fe.permissionBuilderAssigned(t),FL(t,e)&&await Fe.permissionAdminAssigned(t),await LL(t,e)},"handleSaveEvents"),ML=s((t,e)=>t_(t,e,ke),"isAddingBuilder"),kL=s((t,e)=>r_(t,e,ke),"isRemovingBuilder"),FL=s((t,e)=>t_(t,e,Cr),"isAddingAdmin"),BL=s((t,e)=>r_(t,e,Cr),"isRemovingAdmin"),t_=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),r_=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var $L=s(async t=>{let e=t._id;await yt.removeUser(t),await Zp(t),await br.invalidateUser(e),await Tn(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),xt=class t{static{s(this,"UserDB")}static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return g.ENABLE_SSO_MAINTENANCE_MODE&&bt(e)?!1:await t.features.isSSOEnforced()||jo(e)?!0:(r||(r=await fi($())),!!(r&&r.email===e.email&&Qo(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,o){let{password:a,_id:u}=e;i&&!i.password&&(r.requirePassword=!1);let c;if(a&&a!==i?.password){if(await t.isPreventPasswordActions(e,o))throw new Me("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=kp(a);if(!f.valid)throw new Me(f.error,400)}c=r.hashPassword?await cf(a):a}else i&&(c=i.password);let l=r.requirePassword&&!await t.features.isSSOEnforced();if(!c&&l)throw"Password must be specified.";u=u||ri();let d={createdAt:Date.now(),...i,...e,_id:u,password:c,tenantId:n};return d.roles||(d.roles={}),d.status==null&&(d.status="active"),d}static async allUsers(){return(await Y().allDocs(on(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByWorkspace(e){if(typeof e!="string"||!e)throw new Error("Must provide a string based workspace ID");return{userCount:(await $s("by_app",ni(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await tm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return At(e)}static async getUser(e){let r=await _n(e);return r&&delete r.password,r}static async bulkGet(e){return await ac(e)}static async bulkUpdate(e){return await Do(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=$(),i=Y(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await _n(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!l&&o&&(l=await At(o),l&&l._id!==a))throw new Jt(o);let d=1,f=0;if((r.isAccountHolder||l)&&(d=0,f=1),l){let[m,E]=await An([l,e]);f=m!==E?1:0}let h=!l,p=!!l&&!!o&&l.email!==o,S=!r.isAccountHolder&&!!o&&(h||p);return t.quotas.addUsers(d,f,async()=>{S&&await sc(o,n);let m=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(m=rm(m,l)),!l&&c?.length&&(m.roles={...c});let E=[];if(!a&&u.length>0)for(let y of u)E.push(t.groups.addUsers(y,[m._id]));try{let y=await i.put(m);return m._rev=y.rev,await em(m,l),l&&m.email!==l.email&&await yt.removeUser({email:l.email}),await yt.addUser(n,m._id,m.email,m.ssoId),await br.invalidateUser(y.id),await Promise.all(E),i.get(m._id)}catch(y){throw y.status===409?"User exists already":y}})}static async bulkCreate(e,r){let n=$(),i=[],o=[],a=[],u=e.map(h=>h.email),c=await Jp(u),l=[];for(let h of e){let p=o.find(m=>m.email.toLowerCase()===h.email.toLowerCase()),S=c.includes(h.email.toLowerCase());if(p||S){l.push({email:h.email,reason:"Unavailable"});continue}h.userGroups=r||[],o.push(h),await wo(h)&&a.push(h)}let d=await fi(n),f=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let S of o)f&&delete S.password,i.push(t.buildUser(S,{hashPassword:!0,requirePassword:!f},n,void 0,d));let h=await Promise.all(i);await Do(h);for(let S of h)await yt.addUser(n,S._id,S.email),await em(S,void 0,d);let p=h.map(S=>({_id:S._id,email:S.email}));if(Array.isArray(p)&&r){let S=[],m=p.map(E=>E._id);for(let E of r)S.push(t.groups.addUsers(E,m));await Promise.all(S)}return{successful:p,unsuccessful:l}})}static async bulkDelete(e){let r=Y(),n={successful:[],unsuccessful:[]},i=await oc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),u=a.map(p=>({...p,_deleted:!0})),c=await Do(u),d=(await An(a)).filter(p=>p).length,f=[];for(let p of a){let m=(await Io(p._id)).ssoId;m&&(await rc(m)).filter(y=>y.ssoId==null).forEach(y=>{f.push({...y,_deleted:!0})}),await $L(p)}await Dr().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let h={};return a.reduce((p,S)=>(p[S._id]=S,p),h),c.forEach(p=>{let S=h[p.id].email;p.ok?n.successful.push({_id:p.id,email:S}):n.unsuccessful.push({_id:p.id,email:S,reason:"Database error"})}),n}static async destroy(e){let r=Y(),n=await r.get(e),i=n._id;if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Rr(a))throw n.userId===Gt()._id?new Me('Please visit "Account" to delete this user',400):new Me("Account holder cannot be deleted",400)}await yt.removeUser(n),await r.remove(i,n._rev);let o=await wo(n)?1:0;await t.quotas.removeUsers(1,o),await Zp(n),await br.invalidateUser(i),await Tn(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,o={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&&(o.ssoId=n.ssoId),await li(ye.CHECKLIST),await t.save(o,{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 Co(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(Co,"removeUserPassword");async function ac(t,e){let n=(await Y().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Co(n)),n}s(ac,"bulkGetGlobalUsersById");async function VL(){let t=Y(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Pe}`})).rows.map(n=>n.id)}s(VL,"getAllUserIds");async function qL(){let t=Y(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Pe}`,include_docs:!0})).rows.map(n=>n.doc)}s(qL,"getAllUsers");async function Do(t){return await Y().bulkDocs(t)}s(Do,"bulkUpdateGlobalUsers");async function _n(t,e){let n=await Y().get(t);return e?.cleanup&&(n=Co(n)),n}s(_n,"getById");async function At(t,e){if(t==null)throw"Must supply an email address to view";let r=await Kt("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=Co(n)),n}s(At,"getGlobalUserByEmail");async function KL(t){try{let e=await At(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(KL,"doesUserExist");async function n_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ni(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await Kt("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=Co(o)),o}s(n_,"searchGlobalUsersByApp");async function tm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let a={[r]:{$exists:!0}};n.push(a)}return(await Y().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(tm,"searchGlobalUsersByAppAccess");function i_(t,e){if(e)return gu(He(t),e._id)}s(i_,"getGlobalUserByAppPage");async function s_(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,o=await Kt("by_email2",{...e,startkey:i,endkey:`${n}${Pe}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=Co(a)),a}s(s_,"searchGlobalUsersByEmail");var QL=8;async function o_({bookmark:t,query:e,appId:r,limit:n}={}){let i=Y(),o=n??QL,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await _n(e.equal._id)]:r?(c=await n_(r,u),d=s(f=>i_(r,f),"getKey")):e?.string?.email?(c=await s_(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await ac(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(on(null,{...u,limit:void 0}))).rows.map(h=>h.doc),c=mr.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(on(null,u))).rows.map(h=>h.doc),Kf(c,o,{paginate:!0,property:l,getKey:d})}s(o_,"paginatedUsers");async function jL(){return(await $s("by_email2",{limit:0,include_docs:!1})).total_rows}s(jL,"getUserCount");async function HL(){let t=0;async function e(r){let n=await o_({bookmark:r}),i=await An(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(HL,"getCreatorCount");function YL(t){return delete t.admin,delete t.builder,t}s(YL,"removePortalUserPermissions");function rm(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}s(rm,"cleanseUserObject");async function zL(t,e){let r=He(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await xt.save(t,{hashPassword:!1})}s(zL,"addAppBuilder");async function JL(t,e){let r=He(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await xt.save(t,{hashPassword:!1})}s(JL,"removeAppBuilder");var a_=3600;async function XL(t,e){let n=await zf(e).get(t);if(n.budibaseAccess=!0,!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let i=await Rr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(XL,"populateFromDB");async function ZL(t){let e=await xt.bulkGet(t),r=t.filter((i,o)=>!e[o]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let o=await Rr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(ZL,"populateUsersFromDB");async function bo({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=XL),!e)try{e=$()}catch{e=await yt.lookupTenantId(t)}let i=await Ns(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,a_)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Le.users.isGlobalBuilder(o)&&await Ce(e,async()=>{let a=await xt.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(bo,"getUser");async function e0(t){let e=await Ns(),r=await e.bulkGet(t),n=t.filter(a=>!r[a]),i=Object.values(r).filter(a=>!!a),o;if(n.length){let a=await ZL(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,a_);i.push(...a.users)}return{users:i,notFoundIds:o}}s(e0,"getUsers");async function xo(t){await(await Ns()).delete(t)}s(xo,"invalidateUser");var om={};P(om,{Writethrough:()=>im});var u_=1e4,nm=null;async function uc(){if(!nm){let t=await Ff();nm=new fn(t)}return nm}s(uc,"getCache");function vo(t,e){return t.name+e}s(vo,"makeCacheKey");function sm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(sm,"makeCacheItem");async function t0(t,e,r=u_){let n=await uc(),i=e._id,o;i&&(o=await n.get(vo(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await so({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let l=s(async d=>{let f=await t.put(d,{force:!0});u._id=f.id,u._rev=f.rev},"writeDb");try{await l(e)}catch(d){if(d.status!==409)throw d;ci("Ignoring conflict in write-through cache")}})).executed||ci("Ignoring redlock conflict in write-through cache")),o=sm(u,a?null:o?.lastWrite),u._id&&await n.store(vo(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(t0,"put");async function r0(t,e){let r=await uc(),n=vo(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=sm(o),await r.store(n,i)}return i.doc}s(r0,"get");async function n0(t,e){let r=await uc(),n=vo(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=sm(o),await r.store(n,i)}return i.doc}s(n0,"tryGet");async function i0(t,e,r){let n=await uc();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(vo(t,i))}finally{await t.remove(i,r)}}s(i0,"remove");var im=class{static{s(this,"Writethrough")}constructor(e,r=u_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return t0(this.db,e,r)}async get(e){return r0(this.db,e)}async tryGet(e){return n0(this.db,e)}async remove(e,r){return i0(this.db,e,r)}};function Po(t){return`config${C}${t}`}s(Po,"generateConfigID");var cc="en";function s0(){return{_id:Po("translations"),type:"translations",config:{defaultLocale:cc,locales:{[cc]:{label:"English",overrides:{}}}}}}s(s0,"createDefaultTranslationsConfig");function o0(t){let e=t?.defaultLocale||cc,r={...t?.locales??{}};r[e]||(r[e]={label:e===cc?"English":e,overrides:{}});for(let n of Object.keys(r))r[n].overrides||(r[n]={...r[n],overrides:{}});return{defaultLocale:e,locales:r}}s(o0,"prepareTranslationsConfig");async function Be(t){let e=Y();try{return await e.get(Po(t))}catch(r){if(r.status===404)return;throw r}}s(Be,"getConfig");async function a0(t){return t._id||(t._id=Po(t.type)),Y().put(t)}s(a0,"save");async function c_(){let t=await Be("translations");return t?(t.config=o0(t.config),t):s0()}s(c_,"getTranslationsConfigDoc");async function u0(){return(await c_()).config}s(u0,"getTranslationsConfig");async function yi(){let t=await Be("settings");return t||(t={_id:Po("settings"),type:"settings",config:{}}),t.config.platformUrl=await No({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await zu({config:t.config}),t}s(yi,"getSettingsConfigDoc");async function um(){return(await yi()).config}s(um,"getSettingsConfig");async function No(t={tenantAware:!0}){let e=g.PLATFORM_URL||"http://localhost:10000";if(!g.SELF_HOSTED&&g.MULTI_TENANCY&&t.tenantAware){let r=$();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(g.SELF_HOSTED){let r=t?.config?t.config:(await Be("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(No,"getPlatformUrl");var zu=s(async t=>{if(!g.SELF_HOSTED)return!!g.ENABLE_ANALYTICS;let e=await wr(ye.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Be("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=g.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function c0(){return await Be("google")}s(c0,"getGoogleConfigDoc");async function dc(){return(await c0())?.config}s(dc,"getGoogleConfig");async function cm(){if(!g.SELF_HOSTED)return am();let t=await dc();return(!t||!t.activated)&&(t=am()),t}s(cm,"getGoogleDatasourceConfig");function am(){if(g.GOOGLE_CLIENT_ID&&g.GOOGLE_CLIENT_SECRET)return{clientID:g.GOOGLE_CLIENT_ID,clientSecret:g.GOOGLE_CLIENT_SECRET,activated:!0}}s(am,"getDefaultGoogleConfig");async function l0(){return Be("logos_oidc")}s(l0,"getOIDCLogosDoc");async function d0(){return Be("oidc")}s(d0,"getOIDCConfigDoc");async function f0(){let t=(await d0())?.config;return t?.configs&&t.configs[0]}s(f0,"getOIDCConfig");async function lm(t){let e=(await Be("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(lm,"getOIDCConfigById");async function l_(){return Be("smtp")}s(l_,"getSMTPConfigDoc");async function p0(t){let e=await l_();if(e)return e.config;let r=g.SELF_HOSTED||!t;if(g.SMTP_FALLBACK_ENABLED&&r)return{port:g.SMTP_PORT,host:g.SMTP_HOST,secure:!1,from:g.SMTP_FROM_ADDRESS,auth:{user:g.SMTP_USER,pass:g.SMTP_PASSWORD},fallback:!0}}s(p0,"getSMTPConfig");async function m0(){return(await Be("scim"))?.config}s(m0,"getSCIMConfig");async function h0(){return Be("recaptcha")}s(h0,"getRecaptchaConfig");var Sm={};P(Sm,{AccessController:()=>pm,BUILTIN_ROLE_IDS:()=>mm,Role:()=>xr,RoleHierarchyTraversal:()=>fc,RoleIDVersion:()=>hm,builtinRoleToNumber:()=>Uo,checkForRoleResourceArray:()=>m_,externalRole:()=>A0,findRole:()=>Lo,getAllRoleIds:()=>w0,getAllRoles:()=>Tm,getBuiltinRole:()=>f_,getBuiltinRoles:()=>Em,getDBRoleID:()=>h_,getExternalRoleID:()=>vr,getExternalRoleIDs:()=>g_,getRole:()=>_0,getUserRoleHierarchy:()=>ym,getUserRoleIdHierarchy:()=>p_,isBuiltin:()=>On,lowerBuiltinRoleID:()=>S0,prefixRoleIDNoBuiltin:()=>fm,roleIDsAreEqual:()=>ot,roleToNumber:()=>T0,saveRoles:()=>O0,validInherits:()=>y0});var d_=require("lodash"),pc=B(require("lodash/fp/cloneDeep")),dm=B(require("semver"));var mm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ie={...mm,BUILDER:"BUILDER"},hm={UUID:void 0,NAME:"name"};function E0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(E0,"rolesInList");var xr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=hm.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=fm(e):e&&Array.isArray(e)&&(e=e.map(fm)),this.inherits=e,this}},fc=class{static{s(this,"RoleHierarchyTraversal")}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 o of e.inherits){let a=Lo(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!E0(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=Lo(a.inherits,n,r),a&&i.push(a),Ue.roles.checkForRoleInheritanceLoops(i))break}}return(0,d_.uniqBy)(i,o=>o._id)}},gm={ADMIN:new xr(ie.ADMIN,ie.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ie.POWER),POWER:new xr(ie.POWER,ie.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ie.BASIC),BASIC:new xr(ie.BASIC,ie.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ie.PUBLIC),PUBLIC:new xr(ie.PUBLIC,ie.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new xr(ie.BUILDER,ie.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Em(){return(0,pc.default)(gm)}s(Em,"getBuiltinRoles");function On(t){return Object.values(mm).includes(t)}s(On,"isBuiltin");function fm(t){return On(t)?t:Vt(t)}s(fm,"prefixRoleIDNoBuiltin");function f_(t){let e=Object.values(gm).find(r=>t.includes(r._id));if(e)return(0,pc.default)(e)}s(f_,"getBuiltinRole");function y0(t,e){if(!e)return!1;let r=s(n=>t.find(i=>ot(i._id,n)),"find");if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}s(y0,"validInherits");function Uo(t){let e=Em(),r=Object.values(e).length+1;if(ot(t,ie.ADMIN)||ot(t,ie.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}s(Uo,"builtinRoleToNumber");async function T0(t){if(On(t))return Uo(t);let e=await ym(t,{defaultPublic:!0}),r=s(n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(o=>{let a=e.find(u=>ot(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(On(n.inherits))return Uo(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(T0,"roleToNumber");function S0(t,e){return t?e&&Uo(t)>Uo(e)?e:t:e}s(S0,"lowerBuiltinRoleID");function ot(t,e){return Vt(t)===Vt(e)}s(ot,"roleIDsAreEqual");function A0(t){let e;return t._id&&(e=vr(t._id)),{...t,_id:e,inherits:g_(t.inherits,t.version)}}s(A0,"externalRole");function Lo(t,e,r){let n=f_(t);n||(t=Vt(t));let i=e.find(o=>o._id&&ot(o._id,t));return!i&&!On(t)&&r?.defaultPublic?(0,pc.default)(gm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=vr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(Lo,"findRole");async function _0(t,e){let r=ei(),n=[];if(!On(t)){let i=await r.tryGet(h_(t));i&&n.push(i)}return Lo(t,n,e)}s(_0,"getRole");async function O0(t){await ei().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:Vt(r._id)})))}s(O0,"saveRoles");async function I0(t,e){let r=await Tm();if(ot(t,ie.ADMIN))return r;let n=Lo(t,r,e),i=[];return n&&(i=new fc(r,e).walk(n)),i}s(I0,"getAllUserRoles");async function p_(t){return(await ym(t)).map(r=>r._id)}s(p_,"getUserRoleIdHierarchy");async function ym(t,e){return I0(t,e)}s(ym,"getUserRoleHierarchy");function m_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(m_,"checkForRoleResourceArray");async function w0(t){return(await Tm(t)).map(r=>r._id)}s(w0,"getAllRoleIds");async function Tm(t){if(t)return je(t,e);{let r;try{r=ei()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(Eu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=vr(u._id,u.version)));let i=Em(),o=[];!r||await D0(r)?o=[ie.ADMIN,ie.POWER,ie.BASIC,ie.PUBLIC]:o=[ie.ADMIN,ie.BASIC,ie.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>ot(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=vr(u._id,c.version),n.push({...u,...c,name:u.name,_id:vr(u._id,u.version),uiMetadata:{...c.uiMetadata,...u.uiMetadata}}))}for(let a of n)if(a.permissions)for(let u of Object.keys(a.permissions))a.permissions=m_(a.permissions,u);return n}s(e,"internal")}s(Tm,"getAllRoles");async function D0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!dm.default.valid(r)?!0:!dm.default.gte(r,g.MIN_VERSION_WITHOUT_POWER_ROLE)}s(D0,"shouldIncludePowerRole");var pm=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||ot(e,ie.BUILDER)||ot(r,e)||ot(r,ie.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await p_(r),this.userHierarchies[r]=n),n?.find(i=>ot(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let o=await this.checkScreenAccess(i,r);o&&n.push(o)}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 h_(t){return t?.startsWith("role")?t:Vt(t)}s(h_,"getDBRoleID");function vr(t,e){if(t.startsWith(`role${C}`)&&(On(t)||e===hm.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}s(vr,"getExternalRoleID");function g_(t,e){return t&&(typeof t=="string"?vr(t,e):t.map(r=>vr(r,e)))}s(g_,"getExternalRoleIDs");var Am={};P(Am,{BUILDER:()=>v0,BUILTIN_PERMISSIONS:()=>mc,CREATOR:()=>P0,GLOBAL_BUILDER:()=>N0,PermissionImpl:()=>se,PermissionLevel:()=>Ci,PermissionType:()=>qo,doesHaveBasePermission:()=>b0,getAllowedLevels:()=>S_,getBuiltinPermissionByID:()=>C0,getBuiltinPermissions:()=>R0,isPermissionLevelHigherThanRead:()=>x0,levelToNumber:()=>T_});var E_=B(require("lodash/flatten")),y_=B(require("lodash/fp/cloneDeep"));var se=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function T_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(T_,"levelToNumber");function S_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(S_,"getAllowedLevels");var mc={PUBLIC:{_id:"public",name:"Public",permissions:[new se("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new se("query","read"),new se("table","read"),new se("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new se("query","write"),new se("table","write"),new se("automation","execute"),new se("legacy_view","read"),new se("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new se("table","write"),new se("user","read"),new se("automation","execute"),new se("webhook","read"),new se("legacy_view","read"),new se("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new se("table","admin"),new se("user","admin"),new se("automation","admin"),new se("webhook","read"),new se("query","admin"),new se("legacy_view","read"),new se("app","read")]}};function R0(){return(0,y_.default)(mc)}s(R0,"getBuiltinPermissions");function C0(t){return Object.values(mc).find(r=>r._id===t)}s(C0,"getBuiltinPermissionByID");function b0(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(mc),o=(0,E_.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&S_(a.level).indexOf(e)!==-1)return!0;return!1}s(b0,"doesHaveBasePermission");function x0(t){return T_(t)>1}s(x0,"isPermissionLevelHigherThanRead");var v0="builder",P0="creator",N0="globalBuilder";var Im={};P(Im,{FlagSet:()=>gc,all:()=>F0,flags:()=>_m,getEnvFlags:()=>I_,init:()=>U0,isEnabled:()=>k0,parseEnvFlags:()=>yc,shutdown:()=>L0,testutils:()=>Om});var Ec=B(require("crypto")),A_=B(require("dd-trace")),__=require("lodash"),O_=require("posthog-node");var hc;function U0(t){g.POSTHOG_TOKEN&&g.POSTHOG_API_HOST&&!g.SELF_HOSTED&&g.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),hc=new O_.PostHog(g.POSTHOG_TOKEN,{host:g.POSTHOG_API_HOST,personalApiKey:g.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:pe.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}s(U0,"init");function L0(){hc?.shutdown()}s(L0,"shutdown");function yc(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let o of i){let a=!0;o.startsWith("!")&&(o=o.slice(1),a=!1),r.push({tenantId:n,key:o,value:a})}return r}s(yc,"parseEnvFlags");function I_(){return yc(g.TENANT_FEATURE_FLAGS||"")}s(I_,"getEnvFlags");var gc=class{constructor(e){this.flagSchema=e;this.setId=Ec.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,__.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await A_.default.trace("features.fetch",async e=>{let r=Pf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=$(),a=new Set;if(ru())return i;for(let{tenantId:f,key:h,value:p}of I_())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,p===!1&&a.add(h),!!this.isFlagName(h))){if(typeof i[h]!="boolean")throw new Error(`Feature: ${h} is not a boolean`);i[h]=p,n[`flags.${h}.source`]="environment"}let u=Gt(),c=u?._id;if(!c){let f=xf();f&&(c=Ec.createHash("sha512").update(f).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,hc&&c){n.readFromPostHog=!0;let f=await yi(),h={tenantId:l},p={tenant:{id:l}};f.config.createdVersion&&(p.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(p.tenant.createdAt=`${f.createdAt}`);let S=await hc.getAllFlags(c,{personProperties:h,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:p});for(let[m,E]of Object.entries(S))if(this.isFlagName(m)){if(typeof E!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${E}`);continue}if(!(i[m]===!0||a.has(m)))try{i[m]=E,n[`flags.${m}.source`]="posthog"}catch(y){console.warn(`Error parsing posthog flag "${m}": ${E}`,y)}}}let d=Uf();for(let[f,h]of Object.entries(d))this.isFlagName(f)&&typeof h=="boolean"&&(i[f]=h,n[`flags.${f}.source`]="override");Nf(this.setId,i);for(let[f,h]of Object.entries(i))n[`flags.${f}.value`]=h;return e?.addTags(n),i})}},M0={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,AI_CHAT:!1,AI_RAG:!1,WORKSPACE_HOME:!1,DEBUG_UI:g.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1},_m=new gc(M0);async function k0(t){return await _m.isEnabled(t)}s(k0,"isEnabled");async function F0(){return await _m.fetch()}s(F0,"all");var Om={};P(Om,{setFeatureFlags:()=>w_,withFeatureFlags:()=>$0});function B0(){let t={};for(let{tenantId:e,key:r,value:n}of yc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(B0,"getCurrentFlags");function W0(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,o]of Object.entries(n))o===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}s(W0,"buildFlagString");function w_(t,e){let r=B0();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=W0(r);return ws({TENANT_FEATURE_FLAGS:n})}s(w_,"setFeatureFlags");function $0(t,e,r){let n=w_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s($0,"withFeatureFlags");var Mm={};P(Mm,{adminOnly:()=>Tc,auditLog:()=>Sc,authError:()=>Oe,buildAuthMiddleware:()=>DM,buildCsrfMiddleware:()=>CM,buildTenancyMiddleware:()=>RM,builderOnly:()=>bc,builderOrAdmin:()=>xc,google:()=>rr,internalApi:()=>Pc,joiValidator:()=>Mo,oidc:()=>nr,passport:()=>bM,platformLogout:()=>UM,refreshOAuthToken:()=>PM,ssoCallbackUrl:()=>Nr,updateUserOAuth:()=>NM,workspaceBuilderOrAdmin:()=>Lc});var Lm={};P(Lm,{activeTenant:()=>z_,adminOnly:()=>Tc,auditLog:()=>Sc,authError:()=>Oe,authenticated:()=>Cc,builderOnly:()=>bc,builderOrAdmin:()=>xc,correlation:()=>R_,csp:()=>k_,csrf:()=>vc,datasource:()=>IM,errorHandling:()=>B_,featureFlagCookie:()=>W_,google:()=>rr,internalApi:()=>Pc,ip:()=>$_,joiValidator:()=>Mo,local:()=>_i,oidc:()=>nr,pino:()=>C_,querystringToBody:()=>Y_,ssoCallbackUrl:()=>Nr,tenancy:()=>Uc,workspaceBuilderOrAdmin:()=>Lc});var D_=require("uuid");var G0=require("correlation-id"),R_=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,D_.v4)()),G0.withId(r,()=>e())},"correlationMiddleware");var V0=require("koa-pino-logger"),q0=require("correlation-id");function K0(){return{logger:Nu,genReqId:q0.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})}}}s(K0,"pinoSettings");function Q0(){return g.HTTP_LOGGING?V0(K0()):(t,e)=>e()}s(Q0,"getMiddleware");var C_=Q0();var Tc=s(async(t,e)=>(!t.internal&&!bt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var Sc=s(async(t,e)=>e(),"auditLog");var j0=/\/:(.*?)(\/.*)?$/g,er=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(j0);if(i)for(let o of i){let u="/.*"+(o.endsWith("/")?"/":"");r=r.replace(o,u)}return{regex:new RegExp(r),method:n,route:r}}):[],"buildMatcherRegex"),tr=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var bm={};P(bm,{SecretOption:()=>v_,compare:()=>J0,decrypt:()=>Ic,decryptFile:()=>eM,encrypt:()=>z0,encryptFile:()=>X0,getSecret:()=>Cm});var vt=B(require("crypto")),Pr=B(require("fs")),wm=require("path"),Dm=B(require("zlib"));var Ac="aes-256-ctr",x_="-",H0=1e4,Y0=32,_c=16,Rm=16,v_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(v_||{});function Cm(t){let e,r;switch(t){case"encryption":e=g.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=g.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(Cm,"getSecret");function Oc(t,e){return vt.default.pbkdf2Sync(t,new Uint8Array(e),H0,Y0,"sha512")}s(Oc,"stretchString");function z0(t,e="api"){let r=vt.default.randomBytes(_c),n=Oc(Cm(e),r),i=vt.default.createCipheriv(Ac,new Uint8Array(n),new Uint8Array(r)),o=i.update(t,"utf8"),a=i.final(),u=Buffer.concat([new Uint8Array(o),new Uint8Array(a)]).toString("hex");return`${r.toString("hex")}${x_}${u}`}s(z0,"encrypt");function Ic(t,e="api"){let[r,n]=t.split(x_),i=Buffer.from(r,"hex"),o=Oc(Cm(e),i),a=vt.default.createDecipheriv(Ac,new Uint8Array(o),new Uint8Array(i)),u=a.update(n,"hex"),c=a.final();return Buffer.concat([new Uint8Array(u),new Uint8Array(c)]).toString()}s(Ic,"decrypt");function J0(t,e,r="api"){try{let n=new TextEncoder,i=n.encode(Ic(e,r)),o=n.encode(t);return i.length!==o.length?!1:vt.default.timingSafeEqual(i,o)}catch{return!1}}s(J0,"compare");async function X0({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,wm.join)(t,e);if(Pr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=Pr.default.createReadStream(i),a=Pr.default.createWriteStream((0,wm.join)(t,n)),u=vt.default.randomBytes(_c),c=vt.default.randomBytes(Rm),l=Oc(r,u),d=vt.default.createCipheriv(Ac,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(Dm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(X0,"encryptFile");async function Z0(t){let e=Pr.default.createReadStream(t),r=await b_(e,_c),n=await b_(e,Rm);return e.close(),{salt:r,iv:n}}s(Z0,"getSaltAndIV");async function eM(t,e,r){if(Pr.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await Z0(t),o=Pr.default.createReadStream(t,{start:_c+Rm}),a=Pr.default.createWriteStream(e),u=Oc(r,n),c=vt.default.createDecipheriv(Ac,new Uint8Array(u),new Uint8Array(i)),l=Dm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",h=>{a.close(),f(h)}),c.on("error",h=>{a.close(),f(h)}),l.on("error",h=>{a.close(),f(h)}),a.on("error",h=>{a.close(),f(h)})})}s(eM,"decryptFile");function b_(t,e){return new Promise((r,n)=>{let i=0,o=[];t.on("readable",()=>{let a;for(;(a=t.read(e-i))!==null;)o.push(a),i+=a.length;r(Buffer.concat(o.map(u=>new Uint8Array(u))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",a=>{n(a)})})}s(b_,"readBytes");var xm={};P(xm,{APIWarning:()=>In,FeatureDisabledWarning:()=>Dc,InvalidAPIKeyWarning:()=>Ai,UsageLimitWarning:()=>wc});var In=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"APIWarning")}},Ai=class extends In{static{s(this,"InvalidAPIKeyWarning")}constructor(){super("Invalid API key","invalid_api_key")}},wc=class extends In{constructor(r){super(`Usage limit exceeded: '${r}'`,"usage_limit_exceeded");this.limitName=r}static{s(this,"UsageLimitWarning")}getPublicWarning(){return{limitName:this.limitName}}},Dc=class extends In{constructor(r){super(`Feature disabled: '${r}'`,"feature_disabled");this.featureName=r,this.status=400}static{s(this,"FeatureDisabledWarning")}getPublicWarning(){return{featureName:this.featureName}}getPublicError(){return{featureName:this.featureName}}};var N_=B(require("dd-trace"));var rM=g.SESSION_UPDATE_PERIOD?parseInt(g.SESSION_UPDATE_PERIOD):60*1e3;function nM(){return new Date(Date.now()-rM).toISOString()}s(nM,"timeMinusOneMinute");function P_(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}s(P_,"finalise");async function iM(t,e){if(Ks(t))return{valid:!0,user:void 0};let n=Ic(t).split(C)[0];return Ce(n,async()=>{let i;try{let o=Y();i=await Kt("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await bo({userId:i,tenantId:n,populateUser:e})};throw new Ai})}s(iM,"checkApiKey");function Rc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(Rc,"getHeader");function Cc(t=[],e={publicAllowed:!1}){let r=t?er(t):[];return async(n,i)=>{let o=!1,a=Rc(n,"x-budibase-api-version");tr(n,r)&&(o=!0);try{let c=Rc(n,"x-budibase-token"),l=jt(n,"budibase:auth")||Tu(c),d=Rc(n,"x-budibase-api-key");!d&&n.request.headers.authorization&&(d=n.request.headers.authorization.split(" ")[1]);let f=Rc(n,"x-budibase-tenant-id"),h=!1,p,S=!1,m;if(l&&!d){let y=l.sessionId,I=l.userId,O;try{O=await Wp(I,y),e&&e.populateUser?p=await bo({userId:I,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):p=await bo({userId:I,tenantId:O.tenantId,email:O.email}),p.csrfToken=O.csrfToken,m="cookie",O?.lastAccessedAt<nM()&&await Bp(O),h=!0}catch(w){h=!1,console.warn(`Auth Error: ${w.message}`),Ar(n,"budibase:auth")}}if(!h&&d){let y=e.populateUser?e.populateUser(n):null,{valid:I,user:O}=await iM(d,y);I&&(h=!0,m="api_key",p=O,S=!O)}!p&&f?p={tenantId:f}:p&&"password"in p&&delete p.password,h||(h=!1);let E=s(y=>y&&y.email,"isUser");return E(p)&&N_.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),P_(n,{authenticated:h,user:p,internal:S,version:a,publicEndpoint:o,loginMethod:m}),E(p)?pf(p,n,i):i()}catch(c){if(console.warn(`Auth Error: ${c.message}`),c?.name==="JsonWebTokenError"?Ar(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return P_(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c)}}}s(Cc,"authenticated");async function bc(t,e){if(t.internal)return e();let r=await un(t);return!r&&!g.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!ke(t.user)?t.throw(403,"Builder user only endpoint."):r&&!Si(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(bc,"builderOnly");async function xc(t,e){if(t.internal||bt(t.user))return e();let r=await un(t);return!r&&!g.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!ke(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!Si(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(xc,"builderOrAdmin");var M_=B(require("crypto"));var U_={"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","https://d2l5prqdbvm3op.cloudfront.net"],"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'"]},L_=/^[A-Za-z0-9-*:/.]+$/,k_=s(async(t,e)=>{let r=M_.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...U_};n["script-src"]=[...U_["script-src"],`'nonce-${r}'`];let i={"media-src":g.CUSTOM_CSP_MEDIA_SRC,"script-src":g.CUSTOM_CSP_SCRIPT_SRC,"connect-src":g.CUSTOM_CSP_CONNECT_SRC,"img-src":g.CUSTOM_CSP_IMG_SRC,"font-src":g.CUSTOM_CSP_FONT_SRC,"frame-src":g.CUSTOM_CSP_FRAME_SRC};for(let[u,c]of Object.entries(i))if(c){let l=c.split(",").map(d=>d.trim()).filter(d=>L_.test(d));n[u]=[...n[u]||[],...l]}if(t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let u=await Ms.getWorkspaceMetadata(t.appId);if("name"in u)for(let c of u.scripts||[]){let l=(c.cspWhitelist||"").split(`
38
+ `).filter(f=>L_.test(f)),d=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let f of d)n[f]=[...n[f]||[],...l]}}catch(u){console.error(`Error occurred in Content-Security-Policy middleware: ${u}`)}let a=Object.entries(n).map(([u,c])=>`${u} ${c.join(" ")}`).join("; ");t.set("Content-Security-Policy",a),await e()},"contentSecurityPolicy");var sM=["GET","HEAD","OPTIONS"],oM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function vc(t={noCsrfPatterns:[]}){let e=er(t.noCsrfPatterns);return async(r,n)=>{if(tr(r,e)||sM.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!oM.filter(c=>o.includes(c)).length||r.internal)return n();let a=r.user?.csrfToken;if(!a)return n();let u=r.get("x-csrf-token");return(!u||u!==a)&&r.throw(403,"Invalid CSRF token"),n()}}s(vc,"csrf");function F_(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of eT){let r=g[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(F_,"stringContainsSecret");async function B_(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:Ku(r)};if(F_(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),g.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(B_,"errorHandling");var W_=s(async(t,e)=>{let n=jt(t,"budibase:featureflags")?.flags||{};await Lf(n,async()=>{await e()})},"featureFlagCookie");async function Pc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Ks(r)||t.throw(403,"Unauthorized"),e()}s(Pc,"internalApi");async function $_(t,e){return t.ip?await vf(t.ip,()=>e()):e()}s($_,"ip");var Mo={};P(Mo,{body:()=>aM,params:()=>uM});var vm=B(require("joi"));function G_(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,o)=>{if(!t)return o();let a=null,u=i.request?.[e];i[e]!=null?a=i[e]:u!=null&&(a=u),t.append&&(t=t.append({createdAt:vm.default.any().optional(),updatedAt:vm.default.any().optional()}));let{error:c}=t.validate(a,{allowUnknown:r?.allowUnknown});if(c){let l=c.message;n&&(l=`Invalid ${e} - ${l}`),i.throw(400,l)}return o()}}s(G_,"validate");function aM(t,e){return G_(t,"body",e)}s(aM,"body");function uM(t,e){return G_(t,"params",e)}s(uM,"params");var _i={};P(_i,{authenticate:()=>dM,options:()=>lM});function Oe(t,e,r){return t(r,null,{message:e})}s(Oe,"authError");async function Nr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await um(),n="/api/global/auth";return Er()&&(n+=`/${$()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(Nr,"ssoCallbackUrl");var Pm="Invalid credentials",cM="This account has expired. Please reset your password",lM={passReqToCallback:!0};async function dM(t,e,r,n){if(!e)return Oe(n,"Email Required");if(!r)return Oe(n,"Password Required");let i=await At(e);return i==null?(console.info(`user=${e} could not be found`),Oe(n,Pm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Oe(n,Pm)):i.password?await lf(r,i.password)?(delete i.password,n(null,i)):Oe(n,Pm):(console.info(`user=${e} has no password set`,i),Oe(n,cM))}s(dM,"authenticate");var rr={};P(rr,{buildVerifyFn:()=>K_,getCallbackUrl:()=>mM,strategyFactory:()=>Nm});var ko=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function Nc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Oe(r,"sso user id required");if(!t.email)return Oe(r,"sso user email required");let i=ri(t.userId),o;try{o=await _n(i)}catch(u){if(!u.status||u.status!==404)return Oe(r,"Unexpected error when retrieving existing user",u)}if(o||(o=await At(t.email)),!o&&e)return Oe(r,"Email does not yet exist. You must set up your local budibase account first.");o||(o={_id:i,email:t.email,roles:{},tenantId:$()});let a=await fM(o,t);a.forceResetPassword=!1;try{delete a.password,a=await n(a,{hashPassword:!1,requirePassword:!1})}catch(u){return Oe(r,"Error saving user",u)}return r(null,a)}s(Nc,"authenticate");async function fM(t,e){let r,n,i;if(e.profile){let o=e.profile;if(o.name){let a=o.name;a.givenName&&(r=a.givenName),a.familyName&&(n=a.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}s(fM,"syncUser");var pM=require("passport-google-oauth").OAuth2Strategy;function K_(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return Nc(o,!0,i,t)}}s(K_,"buildVerifyFn");async function Nm(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 o=K_(r);return new pM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(Nm,"strategyFactory");async function mM(t){return Nr("google",t)}s(mM,"getCallbackUrl");var nr={};P(nr,{buildVerifyFn:()=>H_,fetchStrategyConfig:()=>TM,getCallbackUrl:()=>SM,strategyFactory:()=>yM});var Q_=B(require("node-fetch"));var j_=require("@govtechsg/passport-openidconnect");function H_(t){return async(e,r,n,i,o,a,u,c,l)=>{let d=hM(r,n),f=gM(r,n),h={provider:e,providerType:"oidc",userId:d.id,profile:d,email:EM(d,f),oauth2:{accessToken:a,refreshToken:u}};return Nc(h,!1,l,t)}}s(H_,"buildVerifyFn");function hM(t,e){let r={...t?._json||{}};!r.email&&e.emails?.length&&(r.email=e.emails[0].value);let n=t?.displayName||e.displayName;return{id:t?.id||e.id,name:t?.name||e.name||!!n&&{givenName:n,familyName:""}||void 0,_json:r,provider:t?.provider}}s(hM,"normalizeProfile");function gM(t,e){return{email:t?._json?.email||e.emails?.[0]?.value,preferred_username:e.username}}s(gM,"buildJwtClaims");function EM(t,e){if(t._json.email)return t._json.email.toLowerCase();if(e.email)return e.email.toLowerCase();let r=e.preferred_username;if(r&&ep(r))return r.toLowerCase();throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(EM,"getEmail");async function yM(t,e){try{let r=H_(e),n=new j_.Strategy(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(yM,"strategyFactory");async function TM(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let a=await(0,Q_.default)(i);if(!a.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${a.statusText}`);let u=await a.json();return{issuer:u.issuer,authorizationURL:u.authorization_endpoint,tokenURL:u.token_endpoint,userInfoURL:u.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(TM,"fetchStrategyConfig");async function SM(){return Nr("oidc")}s(SM,"getCallbackUrl");function Y_(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()}s(Y_,"querystringToBody");function Uc(t,e,r={noTenancyRequired:!1}){let n=er(t),i=er(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!tr(o,i)};!!tr(o,n)||(c.excludeStrategies=["query"]);let d=Vs(o,c);return o.set("x-budibase-tenant-id",d),Ce(d,a)}}s(Uc,"tenancy");function z_(t=[]){let e=er(t);return async function(r,n){if(tr(r,e))return n();try{if((await Be("settings"))?.config?.active===!1){r.status=404,r.body={message:"Tenant not found"};return}}catch(i){if(i.message==="Global DB not found")return n();throw i}return n()}}s(z_,"activeTenant");async function Lc(t,e){if(t.internal||bt(t.user))return e();let r=await un(t);return r&&!nc(t.user,r)?t.throw(403,"Workspace Admin/Builder user only endpoint."):!r&&!g.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!ke(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}s(Lc,"workspaceBuilderOrAdmin");var Um={};P(Um,{postAuth:()=>OM,preAuth:()=>_M});var AM=require("passport-google-oauth").OAuth2Strategy;async function J_(){let t=await cm();if(!t)throw new Error("No google configuration found");return t}s(J_,"fetchGoogleCreds");async function _M(t,e,r){let n=await J_(),o=`${await No({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await Nm(n,o,ko);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(a,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}s(_M,"preAuth");async function OM(t,e,r){let n=await J_(),o=`${await No({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=jt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new AM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{Ar(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=ee();await zt(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(OM,"postAuth");var IM={google:Um};var X_=require("koa-passport"),wM=require("passport-local").Strategy,Mc=require("passport-oauth2-refresh"),DM=Cc,RM=Uc,CM=vc,bM=X_;X_.use(new wM(_i.options,_i.authenticate));async function xM(t,e){let r=await nr.getCallbackUrl(),n,i;try{if(n=await nr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await nr.strategyFactory(n,ko)}catch{throw new Error("Could not refresh OAuth Token")}return Mc.use(i),new Promise(o=>{Mc.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s(xM,"refreshOIDCAccessToken");async function vM(t,e){let r=await rr.getCallbackUrl(t),n;try{n=await rr.strategyFactory(t,r,ko)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Mc.use(n),new Promise(i=>{Mc.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(vM,"refreshGoogleAccessToken");async function PM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await lm(r);return n?xM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await dc();return n?vM(n,t):{err:{data:"Google configuration not found"}}}}}s(PM,"refreshOAuthToken");async function NM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=Y(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await xo(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(NM,"updateUserOAuth");async function UM(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=jt(e,"budibase:auth"),o=await po(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):Ar(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await Tn(r,{sessionIds:a,reason:"logout"}),await tc.logout(e.user?.email),await xo(r)}s(UM,"platformLogout");var Fm={};P(Fm,{validate:()=>BM});var x=B(require("joi"));var LM=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function km(t,e){let{error:r}=t.validate(e);if(r)throw r}s(km,"runJoi");function MM(t){let e=x.default.object({type:x.default.string().allow("component").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({name:x.default.string().required(),settings:x.default.array().items(x.default.object().unknown(!0)).required()}).unknown(!0)});km(e,t)}s(MM,"validateComponent");function kM(t){let e=x.default.object({type:x.default.string().allow(...Object.values(Gc)).required(),required:x.default.boolean().required(),default:x.default.any(),display:x.default.string()}),r=x.default.object({type:x.default.string().allow(...Object.values($c)),readable:x.default.boolean(),displayName:x.default.string(),fields:x.default.object().pattern(x.default.string(),e)}).required(),n=x.default.object({type:x.default.string().allow("datasource").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({docs:x.default.string(),plus:x.default.boolean().optional(),isSQL:x.default.boolean().optional(),auth:x.default.object({type:x.default.string().required()}).optional(),features:x.default.object(Object.fromEntries(Object.values(Vc).map(i=>[i,x.default.boolean().optional()]))).optional(),relationships:x.default.boolean().optional(),description:x.default.string().required(),friendlyName:x.default.string().required(),type:x.default.string().allow(...LM),datasource:x.default.object().pattern(x.default.string(),e).required(),query:x.default.object().pattern(x.default.string(),r).unknown(!0).required(),extra:x.default.object().pattern(x.default.string(),x.default.object({type:x.default.string().required(),displayName:x.default.string().required(),required:x.default.boolean(),data:x.default.object()}))})});km(n,t)}s(kM,"validateDatasource");function FM(t){let e=x.default.object().pattern(x.default.string(),{type:x.default.string().allow(...Object.values(qc)).required(),customType:x.default.string().allow(...Object.values(Kc)),title:x.default.string(),description:x.default.string(),enum:x.default.array().items(x.default.string()),pretty:x.default.array().items(x.default.string())}),r=x.default.object({properties:e,required:x.default.array().items(x.default.string())}).concat(e).required(),n=x.default.object({type:x.default.string().allow("automation").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({name:x.default.string().required(),tagline:x.default.string().required(),icon:x.default.string().required(),description:x.default.string().required(),type:x.default.string().allow("ACTION","LOGIC").required(),stepId:x.default.string().disallow(...oh).required(),inputs:x.default.object().optional(),schema:x.default.object({inputs:r,outputs:r}).required()})});km(n,t)}s(FM,"validateAutomation");function BM(t){switch(t?.type){case"component":MM(t);break;case"datasource":kM(t);break;case"automation":FM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(BM,"validate");var Bm={};P(Bm,{Client:()=>De,clients:()=>Tr,locks:()=>En,utils:()=>Ha});var Wm={};P(Wm,{isBlacklisted:()=>$M,refreshBlacklist:()=>rO});var Z_=B(require("dns")),Fc=B(require("net"));var eO=require("util");var kc,WM=(0,eO.promisify)(Z_.default.lookup);async function tO(t){return Fc.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await WM(t,{all:!0})).map(r=>r.address)}s(tO,"lookup");async function rO(){let e=g.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Fc.default.isIP(i))r.push(i);else{let o=await tO(i);r=r.concat(o)}}kc=r}s(rO,"refreshBlacklist");async function $M(t){if(kc||await rO(),kc?.length===0)return!1;let e;return Fc.default.isIP(t)?e=[t]:e=await tO(t),!!kc?.find(r=>e.includes(r))}s($M,"isBlacklisted");var Gm={};P(Gm,{init:()=>VM});var GM={"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 nO(t,e){let r=GM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(nO,"getDocumentId");var Fo=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=nO(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await Ce(i,async()=>{await u({id:o,tenantId:i,appId:n.appId,properties:n})})}shutdown(){return mA()}};var iO,$m;function VM(t){Tt||Ju(),$m||($m=new Fo(t)),iO||(iO=Tt.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await $m.processEvent(r,n,i)}))}s(VM,"init");var Jm={};P(Jm,{COUNT_FIELD_NAME:()=>Ym,Sql:()=>fO,SqlTable:()=>Bc,designDoc:()=>zm,utils:()=>If});var uO=require("knex");var qM=require("knex");function Vm(t){return["link","formula","ai"].indexOf(t)!==-1}s(Vm,"isIgnoredType");function sO(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(h=>h.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(h=>h.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(h=>h.foreignKey);for(let[h,p]of Object.entries(e.schema)){let S=n?.schema[h];if(S&&S.type||l.includes(h)||i?.updated===h)continue;let m=p.type;switch(m){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(h)?t.string(h,255):t.text(h);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(h).unsigned(),t.foreign(h).references(`${y}.${E}`)}else d.indexOf(h)===-1&&t.float(h);break;case"bigint":t.bigint(h);break;case"boolean":t.boolean(h);break;case"datetime":p.timeOnly?t.time(h):t.datetime(h,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":Ue.schema.isDeprecatedSingleUserColumn(p)?t.text(h):t.json(h);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=Tf(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let I=y.primary[0],O=y.schema[I].externalType;O?t.specificType(p.foreignKey,O):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${I}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(h);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:_t.unreachable(m)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!Vm(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,S])=>!Vm(S.type)&&e.schema[p]==null).forEach(([p,S])=>{i?.old===p||Vm(S.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}s(sO,"generateSchema");function QM(t,e,r){return t.createTable(e.name,n=>{sO(n,e,r)})}s(QM,"buildCreateTable");function jM(t,e,r,n,i){return t.alterTable(e.name,o=>{sO(o,e,r,n,i)})}s(jM,"buildUpdateTable");function HM(t,e){return t.dropTable(e.name)}s(HM,"buildDeleteTable");var qm=class{static{s(this,"SqlTableQueryBuilder")}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,qM.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=QM(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=jM(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,o=e.meta.renamed.updated,a=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,u=Jn(n);if(Array.isArray(u))for(let c of u)c.sql.startsWith("exec sp_rename")&&(c.sql=`exec sp_rename '${a}.${i}', '${o}', 'COLUMN'`,c.bindings=[]);return u}break;case"DELETE_TABLE":n=HM(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Jn(n)}},Bc=qm;var cO=require("lodash");var Ym="__bb_total";function oO(){return(g.SQL_MAX_ROWS?parseInt(g.SQL_MAX_ROWS):null)||5e3}s(oO,"getBaseLimit");function Km(){return(g.SQL_MAX_RELATED_ROWS?parseInt(g.SQL_MAX_RELATED_ROWS):null)||500}s(Km,"getRelationshipLimit");function YM(t,e){return t.sort((r,n)=>{let i=e.find(a=>a&&r.endsWith(a)),o=e.find(a=>a&&n.endsWith(a));return i&&!o?-1:!i&&o?1:r.localeCompare(n)})}s(YM,"prioritisedArraySort");function lO(t){return Array.isArray(t)?t.map(e=>lO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(lO,"convertBooleans");function aO(t){return t.sourceType==="internal"||t.sourceId===Hc}s(aO,"isSqs");function zM(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(zM,"escapeQuotes");function JM(t,e='"'){return`${e}${zM(t,e)}${e}`}s(JM,"wrap");function XM(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=JM(t[r],e));return`[${t.join(",")}]`}s(XM,"stringifyArray");function Qm(t){return`{${(Array.isArray(t)?t:t==null?[]:[t]).map(n=>{if(typeof n=="string"&&n.length>1){let i=n[0],o=n[n.length-1];if(i==='"'&&o==='"'||i==="'"&&o==="'")return n.substring(1,n.length-1)}return`${n}`}).join(",")}}`}s(Qm,"toPgArrayLiteral");function dO(t){return uh.includes(t.type)&&!Ue.schema.isDeprecatedSingleUserColumn(t)}s(dO,"isJsonColumn");var ZM={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},jm=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 mr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}static{s(this,"InternalBuilder")}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(a=>{let u=a.split(/\./g),c,l=u[0];return u.length>1&&(c=u[0],l=u.slice(1).join(".")),{table:c,column:l,field:a}}).filter(({table:a})=>!a||a===n).map(({table:a,column:u,field:c})=>{let l=i[u];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(l)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([a,u].join(".")),this.knex.raw(this.quote(c))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(l)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(c),this.knex.raw(this.quote(c))]):a?this.rawQuotedIdentifier(`${a}.${u}`):this.rawQuotedIdentifier(c)})}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(),o=this.table.schema[i],a=this.rawQuotedIdentifier(e);return(o.type==="string"||o.type==="longform"||o.type==="bb_reference_single"||o.type==="bb_reference"||o.type==="options"||o.type==="barcodeqr")&&(r?.forSelect?a=this.knex.raw("to_char(??) as ??",[a,this.rawQuotedIdentifier(i)]):a=this.knex.raw("to_char(??)",[a])),a}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&dO(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"),o=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${o}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!_f(e))return null}else if(r.dateOnly){let n=Af(e);return n?new Date(n):null}else return r.ignoreTimezones?Za(e)?new Date(e):Sf(e)?new Date(e+"Z"):null:Za(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),o=this.table.schema[i];o&&(e[r]=this.parse(n,o))}return e}parseFilters(e){e=(0,cO.cloneDeep)(e);for(let r of Object.values(Mr)){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:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=this.parse(n[i],a))}}for(let r of Object.values(sr)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=n[i].map(u=>this.parse(u,a)))}}for(let r of Object.values(Rn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];if(!a)continue;let u=n[i];"low"in u&&(u.low=this.parse(u.low,a)),"high"in u&&(u.high=this.parse(u.high,a))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i,o){let{relationships:a,schema:u,tableAliases:c,table:l}=this.query,d=c?.[l.name]||l.name,f=s(h=>n.match(new RegExp(`^${h}\\.`)),"matches");if(!a)return e;for(let h of a){let p=h.tableName,S=c?.[p]||p,m=f(p)||f(S),E=f(h.column),y=h.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((m||E||y)&&h.to&&h.tableName){let I=this.knex.select(this.knex.raw(1)).from({[S]:p}),O=I.clone(),w=Of(h),T;if(m?T=n:T=n.replace(new RegExp(`^${h.column}.`),`${c?.[h.tableName]||h.tableName}.`),w){let _=c?.[w.through]||h.through,U=this.tableNameWithSchema(w.through,{alias:_,schema:u});O=O.innerJoin(U,function(){this.on(`${S}.${w.toPrimary}`,"=",`${_}.${w.to}`)}).where(`${_}.${w.from}`,"=",this.rawQuotedIdentifier(`${d}.${w.fromPrimary}`)),this.client==="sqlite3"&&(O=this.addJoinFieldCheck(O,w)),y&&i==="empty"?e=e.whereNotExists(O):y&&i==="notEmpty"?e=e.whereExists(O):e=e.where(R=>{R.whereExists(o(T,O)),r&&R.orWhereNotExists(I.clone().innerJoin(U,function(){this.on(`${d}.${w.fromPrimary}`,"=",`${_}.${w.from}`)}))})}else{let _=`${S}.${h.to}`,U=`${d}.${h.from}`;O=O.where(_,"=",this.rawQuotedIdentifier(U)),y&&i==="empty"?e=e.whereNotExists(O):y&&i==="notEmpty"?e=e.whereExists(O):e=e.where(R=>{R.whereExists(o(T,O.clone())),r&&R.orWhereNotExists(O)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let o=this.query.tableAliases,a=r.allOr,c=this.client==="sqlite3"?this.table._id:this.table.name;function l(m){return o?.[m]||m}s(l,"getTableAlias");function d(m,E,y,I){let O=s((w,T,_)=>{let[U,...R]=T.split("."),k=R.join("."),H=l(U);return w.andWhere(Ie=>y(Ie,H?`${H}.${k}`:k,_))},"handleRelationship");for(let w in m){let T=m[w],_=Gs(w),U=_.includes(".")||i.getFieldSchema(_)?.type==="link",R=n?.relationship&&U,k;if(w==="_complexIdOperator"&&(k=m[w])&&I){let H=l(c);e=I(e,k.id.map(Ie=>H?`${H}.${Ie}`:Ie),k.values)}else if(U)R&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,ZM[E],_,E,(H,Ie)=>O(Ie,H,T)));else{let H=l(c);e=y(e,H?`${H}.${_}`:_,T)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,h=s((m,E,y)=>((r?.fuzzyOr||a)&&(m=m.or),f?m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(E),`%${y}%`]):this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(E),`%${y.toLowerCase()}%`]):m.whereILike(this.rawQuotedIdentifier(E),this.knex.raw("?",[`%${y}%`]))),"like"),p=s((m,E=!1)=>{function y(I){return(a||m===r?.containsAny)&&(I=I.or),m===r?.notContains&&(I=I.not),I}s(y,"addModifiers"),this.client==="pg"?d(m,"contains",(I,O,w)=>{I=y(I);let T=this.getFieldSchema(O),_=this.rawQuotedIdentifier(O),U=Array.isArray(w)?[...w]:[w],R=this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(T);return E?R?I.whereRaw("COALESCE(?? && ?::text[], FALSE)",[_,Qm(U)]):I.whereRaw("COALESCE(??::jsonb \\?| ?::text[], FALSE)",[_,Qm(U)]):R?I.whereRaw("COALESCE(?? @> ?::text[], FALSE)",[_,Qm(U)]):I.whereRaw("COALESCE(??::jsonb @> ?::jsonb, FALSE)",[_,XM(U)])}):this.client==="mysql2"||this.client==="mariadb"?d(m,"contains",(I,O,w)=>{let T=Array.isArray(w)?w:[w];return y(I).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(E?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),JSON.stringify(T)])}):d(m,"contains",(I,O,w)=>(w.length===0||(I=I.where(T=>(m===r?.notContains&&(T=T.not),T=T.where(_=>{for(let U of w){m===r?.containsAny?_=_.or:_=_.and;let R=!f,k=typeof U=="string"?`"${R?U.toLowerCase():U}"`:U,H=R?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";_=_.whereLike(this.knex.raw(H,[this.rawQuotedIdentifier(O)]),`%${k}%`)}}),m===r?.notContains&&(T=T.or.whereNull(this.rawQuotedIdentifier(O))),T))),I))},"contains");if(r.$and){let{$and:m}=r;for(let E of m.conditions)e=e.where(y=>{this.addFilters(y,E,n)})}if(r.$or){let{$or:m}=r;e=e.where(E=>{for(let y of m.conditions)E.orWhere(I=>this.addFilters(I,{...y,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(m,E,y)=>{let I=this.getFieldSchema(E),O=Array.isArray(y)?y:[y];if(a&&(m=m.or),this.client==="oracledb")E=this.convertClobs(E);else if(this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly){for(let w of O)w!=null?m=m.or.whereLike(E,`${w.toISOString().slice(0,10)}%`):m=m.or.whereNull(E);return m}return m.whereIn(E,O)},(m,E,y)=>(a&&(m=m.or),this.client==="oracledb"&&(E=E.map(I=>this.convertClobs(I))),m.whereIn(E,Array.isArray(y)?y:[y]))),r.string&&d(r.string,"string",(m,E,y)=>{if(a&&(m=m.or),f)return m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(E),`${y}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(E),`${y.toLowerCase()}%`]);{let I=this.getFieldSchema(E);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(I)?m.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(I.name)),`${y}%`]):m.whereILike(E,`${y}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",h),r.range&&d(r.range,"range",(m,E,y)=>{let I=s(k=>k&&Object.keys(k).length===0&&Object.getPrototypeOf(k)===Object.prototype,"isEmptyObject");I(y.low)&&(y.low=""),I(y.high)&&(y.high="");let O=eu(y.low),w=eu(y.high),T=this.getFieldSchema(E),_=E,U=y.high,R=y.low;return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly&&(U!=null&&(U=`${U.toISOString().slice(0,10)}T23:59:59.999Z`),R!=null&&(R=R.toISOString().slice(0,10))),this.client==="oracledb"?_=this.convertClobs(E):this.client==="sqlite3"&&T?.type==="bigint"&&(_=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(E)]),U=this.knex.raw("CAST(? AS INTEGER)",[y.high]),R=this.knex.raw("CAST(? AS INTEGER)",[y.low])),a&&(m=m.or),O&&w?m.whereBetween(_,[R,U]):O?m.where(_,">=",R):w?m.where(_,"<=",U):m}),r.equal&&d(r.equal,"equal",(m,E,y)=>{let I=this.getFieldSchema(E);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(E),y]);if(this.client==="oracledb"){let O=this.convertClobs(E);return m.where(w=>w.whereNotNull(O).andWhere(O,y))}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.whereLike(E,`${y.toISOString().slice(0,10)}%`):m.whereNull(E):m.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(E),y])}),r.notEqual&&d(r.notEqual,"notEqual",(m,E,y)=>{let I=this.getFieldSchema(E);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(E),y]);if(this.client==="oracledb"){let O=this.convertClobs(E);return m.where(w=>w.not.whereNull(O).and.where(O,"!=",y)).or.whereNull(O)}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.not.whereLike(E,`${y.toISOString().slice(0,10)}%`).or.whereNull(E):m.not.whereNull(E):m.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(E),y])}),r.empty&&d(r.empty,"empty",(m,E)=>(a&&(m=m.or),m.whereNull(E))),r.notEmpty&&d(r.notEmpty,"notEmpty",(m,E)=>(a&&(m=m.or),m.whereNotNull(E))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let S=o?.[this.table._id]||this.table._id;return r.documentType&&!yf(this.table)&&S&&e.andWhereLike(`${S}._id`,`${or(r.documentType)}%`),e}isSqs(){return aO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;aO(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 ${Ym}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let o=n.map(a=>this.qualifyIdentifier(a));if(this.client==="oracledb"){let a=o.map(c=>this.convertClobs(c)),u=o.map(c=>this.convertClobs(c,{forSelect:!0}));e=e.groupBy(a).select(u)}else e=e.groupBy(o).select(o)}for(let o of r){let a=o.calculationType;if(a==="count")if("distinct"in o&&o.distinct)if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[u,o.name]))}else e=e.countDistinct(`${i}.${o.field} as ${o.name}`);else if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[u,o.name]))}else e=e.count(`${o.field} as ${o.name}`);else{let u=this.getFieldSchema(o.field);if(!u)throw new Error(`field schema missing for aggregation target: ${o.field}`);let c=this.knex.raw("??(??)",[this.knex.raw(a),this.rawQuotedIdentifier(`${i}.${o.field}`)]);u.type==="bigint"&&(c=this.castIntToString(c)),e=e.select(this.knex.raw("?? as ??",[c,o.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,o=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[u,c]of Object.entries(r)){let l=this.getFieldSchema(u);if(this.isUnsortableField(l))continue;let d=c.direction==="ascending"?"asc":"desc",f;(this.client==="pg"||this.client==="oracledb")&&(f=c.direction==="ascending"?"first":"last");let h=`${o}.${u}`,p;this.isAggregateField(u)?p=this.rawQuotedIdentifier(u):this.client==="oracledb"?p=this.convertClobs(h):p=this.rawQuotedIdentifier(h),e=e.orderByRaw(`?? ?? ${f?"nulls ??":""}`,[p,this.knex.raw(d),...f?[this.knex.raw(f)]:[]])}if(!((n?.aggregations?.length??0)>0)){let u=this.findSortablePrimaryKey(i);if(u&&(!r||r[u]===void 0))e=e.orderBy(`${o}.${u}`);else if(!u&&(!r||Object.keys(r).length===0))throw new Error(`Primary key not found for table ${this.table.name}`)}return e}isUnsortableField(e){return e?.type==="json"}findSortablePrimaryKey(e){return e.find(r=>{if(r==null)return!1;let n=this.getFieldSchema(r);return!this.isUnsortableField(n)})}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],o,a;if(n.length>1){let l=n.shift();o=n.join("."),a=`${l}.${o}`}else o=n.join("."),a=o;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let u=this.rawQuotedIdentifier(a),c=e.schema[i];return c&&c.type==="bigint"&&(u=this.castIntToString(u)),[o,u]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,o=this.knex,{resource:a,tableAliases:u,schema:c,tables:l}=this.query,d=a?.fields||[];for(let f of n){let{tableName:h,through:p,to:S,from:m,fromPrimary:E,toPrimary:y}=f;if(!h||!r)continue;let I=l[h];if(!I)throw new Error(`related table "${h}" not found in datasource`);let O=u?.[h]||h,w=u?.[r]||r,T=p&&u?.[p]||p,_=this.tableNameWithSchema(h,{alias:O,schema:c}),U=[...I?.primary||[],I?.primaryDisplay].filter(D=>D),R=YM(d.filter(D=>D.split(".")[0]===O),U);R=R.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=R.map(D=>this.buildJsonField(I,D));if(!k.length)continue;let H=k.map(D=>{let J=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${J}??`,[D[0],D[1]]).toString()}).join(","),Ie=`${O}.${y||S}`,W=o.from(_).orderBy(Ie),F=p&&y&&E,N=F?`${T}.${m}`:`${O}.${S}`,G=F?`${w}.${E}`:`${w}.${m}`;if(F){let D=this.tableNameWithSchema(p,{alias:T,schema:c});W=W.join(D,function(){this.on(`${O}.${y}`,"=",`${T}.${S}`)})}W=W.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(G));let M=s(D=>(W=W.select(R.map(J=>this.rawQuotedIdentifier(J))).limit(Km()),o.select(D).from({[O]:W})),"standardWrap"),K;switch(i){case"sqlite3":W=this.addJoinFieldCheck(W,f),K=M(this.knex.raw(`json_group_array(json_object(${H}))`));break;case"pg":K=M(this.knex.raw(`json_agg(json_build_object(${H}))`));break;case"mariadb":K=W.select(o.raw(`json_arrayagg(json_object(${H}) LIMIT ${Km()})`));break;case"mysql2":case"oracledb":K=M(this.knex.raw(`json_arrayagg(json_object(${H}))`));break;case"mssql":{let D=o.select("*").from({[w]:W.select(k.map(J=>o.ref(J[1]).as(J[0]))).limit(Km())});K=o.raw(`(SELECT ?? = (${D} FOR JSON PATH))`,[this.rawQuotedIdentifier(O)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:o}=this.query,a=r.to,u=r.from,c=r.through,l=i?.[a]||a,d=c&&i?.[c]||c,f=i?.[u]||u,h=this.tableNameWithSchema(a,{alias:l,schema:o}),p=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(p,function(){for(let S of n){let m=S.fromPrimary,E=S.from;this.orOn(`${f}.${m}`,"=",`${d}.${E}`)}}).leftJoin(h,function(){for(let S of n){let m=S.toPrimary,E=S.to;this.orOn(`${l}.${m}`,`${d}.${E}`)}}):e=e.leftJoin(h,function(){for(let S of n){let m=S.from,E=S.to;this.orOn(`${f}.${m}`,"=",`${l}.${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[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];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:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=p}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let h=this.query.tableAliases?.[a.name]||a.name,p=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[h]:"paginated"}));return this.addJsonRelationships(p,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n,{relationship:!0}),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r,{relationship:!0}),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Hm=class extends Bc{constructor(r,n=oO()){super(r);this.limit=n}static{s(this,"SqlQueryBuilder")}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let o=Jn(r);return i==="sqlite3"&&(o=lO(o)),o}}_query(r,n={}){let i=this.getSqlClient(),o={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(o.useNullAsDefault=!0);let a=(0,uO.knex)(o),u,c=new jm(i,a,r);switch(this._operation(r)){case"CREATE":u=c.create(n);break;case"READ":u=c.read({limits:{query:this.limit,base:oO()}});break;case"COUNT":u=c.read();break;case"UPDATE":u=c.update(n);break;case"DELETE":u=c.delete(n);break;case"BULK_CREATE":u=c.bulkCreate();break;case"BULK_UPSERT":u=c.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(u,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=o=>o){let o=this.getSqlClient(),a=this._operation(r),u=this._query(r,{disableReturning:!0});if(Array.isArray(u)){let f=[];for(let h of u)f.push(await n(h,a));return f}let c;a==="DELETE"&&(c=i(await this.getReturningRow(n,r)));let l=await n(u,a),d=i(l);if(a==="CREATE"||a==="UPDATE"){let f;o==="mssql"?f=d?.[0].id:(o==="mysql2"||o==="mariadb")&&(f=d?.insertId),c=i(await this.getReturningRow(n,this.checkLookupKeys(f,r)))}return a==="COUNT"?d:a!=="READ"?c:d.length?d:[{[a.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Hc){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let o=this.getTableName(r,i);for(let[a,u]of Object.entries(r.schema)){if(!dO(u))continue;let c=`${o}.${a}`;for(let l of n)typeof l[c]=="string"&&(l[c]=JSON.parse(l[c])),typeof l[a]=="string"&&(l[a]=JSON.parse(l[a]))}return n}log(r,n){xs(this.getSqlClient(),r,n)}},fO=Hm;var zm={};P(zm,{base:()=>ek});function ek(t){return{_id:Rt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(ek,"base");var Xm={};P(Xm,{jsonFromCsvString:()=>tk});var pO=B(require("csvtojson"));async function tk(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let o of i){let a,u=!1;try{let c=await(0,pO.default)({ignoreEmpty:r,delimiter:o}).fromString(t);for(let[,l]of c.entries()){let d=Object.keys(l);if(a==null&&(a=d),!n&&d.length===1){u=!0;break}if(a.length!==d.length){u=!0;break}for(let f of a)(l[f]===void 0||l[f]==="")&&(l[f]=null)}if(u)continue;return c}catch{continue}}throw new Error("Unable to determine delimiter")}s(tk,"jsonFromCsvString");var Zm=class{static{s(this,"Endpoint")}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,o=this.controller,a=this.outputMiddlewares,u=s(()=>{},"complete"),c=[n,...i,o,...a,u];e[r](...c)}},Wc=Zm;var mO=B(require("@koa/router"));var wn=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}static{s(this,"EndpointGroup")}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(),o=new Wc(e,r,i);if(n.length!==0)for(let a of n)o.addMiddleware(a);return this.endpoints.push(o),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 mO.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 Bo=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new wn;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 rk={...qs,...ue},nk=s((t={})=>{Ja(t.db)},"init");0&&(module.exports={APIWarning,ActiveContentFileError,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,FeatureDisabledWarning,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyWarning,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,UsageLimitWarning,UserStatus,ViewName,WORKSPACE_DEV,WORKSPACE_DEV_PREFIX,WORKSPACE_PREFIX,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getErrorMessage,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,warnings,withEnv});
39
39
  //# sourceMappingURL=index.js.map