@budibase/backend-core 3.40.1 → 3.41.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
- "use strict";var LO=Object.create;var bi=Object.defineProperty;var UO=Object.getOwnPropertyDescriptor;var kO=Object.getOwnPropertyNames;var MO=Object.getPrototypeOf,FO=Object.prototype.hasOwnProperty;var s=(t,e)=>bi(t,"name",{value:e,configurable:!0});var Q=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},P=(t,e)=>{for(var r in e)bi(t,r,{get:e[r],enumerable:!0})},lh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of kO(e))!FO.call(t,i)&&i!==r&&bi(t,i,{get:()=>e[i],enumerable:!(n=UO(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?LO(MO(t)):{},lh(e||!t||!t.__esModule?bi(r,"default",{value:t,enumerable:!0}):r,t)),BO=t=>lh(bi({},"__esModule",{value:!0}),t);var Sh=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",g="date",m="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|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,p={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:s(function(M){var U=["th","st","nd","rd"],L=M%100;return"["+M+(U[(L-20)%10]||U[L]||U[0])+"]"},"ordinal")},T=s(function(M,U,L){var K=String(M);return!K||K.length>=U?M:""+Array(U+1-K.length).join(L)+M},"m"),A={s:T,z:s(function(M){var U=-M.utcOffset(),L=Math.abs(U),K=Math.floor(L/60),F=L%60;return(U<=0?"+":"-")+T(K,2,"0")+":"+T(F,2,"0")},"z"),m:s(function M(U,L){if(U.date()<L.date())return-M(L,U);var K=12*(L.year()-U.year())+(L.month()-U.month()),F=U.clone().add(K,l),j=L-F<0,V=U.clone().add(K+(j?-1:1),l);return+(-(K+(L-F)/(j?F-V:V-F))||0)},"t"),a:s(function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},"a"),p:s(function(M){return{M:l,y:f,w:c,d:u,D:g,h:a,m:o,s:i,ms:n,Q:d}[M]||String(M||"").toLowerCase().replace(/s$/,"")},"p"),u:s(function(M){return M===void 0},"u")},_="en",I={};I[_]=p;var O="$isDayjsObject",C=s(function(M){return M instanceof G||!(!M||!M[O])},"S"),R=s(function M(U,L,K){var F;if(!U)return _;if(typeof U=="string"){var j=U.toLowerCase();I[j]&&(F=j),L&&(I[j]=L,F=j);var V=U.split("-");if(!F&&V.length>1)return M(V[0])}else{var B=U.name;I[B]=U,F=B}return!K&&F&&(_=F),F||!K&&_},"t"),w=s(function(M,U){if(C(M))return M.clone();var L=typeof U=="object"?U:{};return L.date=M,L.args=arguments,new G(L)},"O"),b=A;b.l=R,b.i=C,b.w=function(M,U){return w(M,{locale:U.$L,utc:U.$u,x:U.$x,$offset:U.$offset})};var G=(function(){function M(L){this.$L=R(L.locale,null,!0),this.parse(L),this.$x=this.$x||L.x||{},this[O]=!0}s(M,"M");var U=M.prototype;return U.parse=function(L){this.$d=(function(K){var F=K.date,j=K.utc;if(F===null)return new Date(NaN);if(b.u(F))return new Date;if(F instanceof Date)return new Date(F);if(typeof F=="string"&&!/Z$/i.test(F)){var V=F.match(y);if(V){var B=V[2]-1||0,fe=(V[7]||"0").substring(0,3);return j?new Date(Date.UTC(V[1],B,V[3]||1,V[4]||0,V[5]||0,V[6]||0,fe)):new Date(V[1],B,V[3]||1,V[4]||0,V[5]||0,V[6]||0,fe)}}return new Date(F)})(L),this.init()},U.init=function(){var L=this.$d;this.$y=L.getFullYear(),this.$M=L.getMonth(),this.$D=L.getDate(),this.$W=L.getDay(),this.$H=L.getHours(),this.$m=L.getMinutes(),this.$s=L.getSeconds(),this.$ms=L.getMilliseconds()},U.$utils=function(){return b},U.isValid=function(){return this.$d.toString()!==m},U.isSame=function(L,K){var F=w(L);return this.startOf(K)<=F&&F<=this.endOf(K)},U.isAfter=function(L,K){return w(L)<this.startOf(K)},U.isBefore=function(L,K){return this.endOf(K)<w(L)},U.$g=function(L,K,F){return b.u(L)?this[K]:this.set(F,L)},U.unix=function(){return Math.floor(this.valueOf()/1e3)},U.valueOf=function(){return this.$d.getTime()},U.startOf=function(L,K){var F=this,j=!!b.u(K)||K,V=b.p(L),B=s(function(Wr,xe){var ur=b.w(F.$u?Date.UTC(F.$y,xe,Wr):new Date(F.$y,xe,Wr),F);return j?ur:ur.endOf(u)},"l"),fe=s(function(Wr,xe){return b.w(F.toDate()[Wr].apply(F.toDate("s"),(j?[0,0,0,0]:[23,59,59,999]).slice(xe)),F)},"$"),Te=this.$W,we=this.$M,Je=this.$D,Rn="set"+(this.$u?"UTC":"");switch(V){case f:return j?B(1,0):B(31,11);case l:return j?B(1,we):B(0,we+1);case c:var Br=this.$locale().weekStart||0,Ci=(Te<Br?Te+7:Te)-Br;return B(j?Je-Ci:Je+(6-Ci),we);case u:case g:return fe(Rn+"Hours",0);case a:return fe(Rn+"Minutes",1);case o:return fe(Rn+"Seconds",2);case i:return fe(Rn+"Milliseconds",3);default:return this.clone()}},U.endOf=function(L){return this.startOf(L,!1)},U.$set=function(L,K){var F,j=b.p(L),V="set"+(this.$u?"UTC":""),B=(F={},F[u]=V+"Date",F[g]=V+"Date",F[l]=V+"Month",F[f]=V+"FullYear",F[a]=V+"Hours",F[o]=V+"Minutes",F[i]=V+"Seconds",F[n]=V+"Milliseconds",F)[j],fe=j===u?this.$D+(K-this.$W):K;if(j===l||j===f){var Te=this.clone().set(g,1);Te.$d[B](fe),Te.init(),this.$d=Te.set(g,Math.min(this.$D,Te.daysInMonth())).$d}else B&&this.$d[B](fe);return this.init(),this},U.set=function(L,K){return this.clone().$set(L,K)},U.get=function(L){return this[b.p(L)]()},U.add=function(L,K){var F,j=this;L=Number(L);var V=b.p(K),B=s(function(we){var Je=w(j);return b.w(Je.date(Je.date()+Math.round(we*L)),j)},"y");if(V===l)return this.set(l,this.$M+L);if(V===f)return this.set(f,this.$y+L);if(V===u)return B(1);if(V===c)return B(7);var fe=(F={},F[o]=e,F[a]=r,F[i]=t,F)[V]||1,Te=this.$d.getTime()+L*fe;return b.w(Te,this)},U.subtract=function(L,K){return this.add(-1*L,K)},U.format=function(L){var K=this,F=this.$locale();if(!this.isValid())return F.invalidDate||m;var j=L||"YYYY-MM-DDTHH:mm:ssZ",V=b.z(this),B=this.$H,fe=this.$m,Te=this.$M,we=F.weekdays,Je=F.months,Rn=F.meridiem,Br=s(function(xe,ur,Di,Wo){return xe&&(xe[ur]||xe(K,j))||Di[ur].slice(0,Wo)},"h"),Ci=s(function(xe){return b.s(B%12||12,xe,"0")},"d"),Wr=Rn||function(xe,ur,Di){var Wo=xe<12?"AM":"PM";return Di?Wo.toLowerCase():Wo};return j.replace(h,(function(xe,ur){return ur||(function(Di){switch(Di){case"YY":return String(K.$y).slice(-2);case"YYYY":return b.s(K.$y,4,"0");case"M":return Te+1;case"MM":return b.s(Te+1,2,"0");case"MMM":return Br(F.monthsShort,Te,Je,3);case"MMMM":return Br(Je,Te);case"D":return K.$D;case"DD":return b.s(K.$D,2,"0");case"d":return String(K.$W);case"dd":return Br(F.weekdaysMin,K.$W,we,2);case"ddd":return Br(F.weekdaysShort,K.$W,we,3);case"dddd":return we[K.$W];case"H":return String(B);case"HH":return b.s(B,2,"0");case"h":return Ci(1);case"hh":return Ci(2);case"a":return Wr(B,fe,!0);case"A":return Wr(B,fe,!1);case"m":return String(fe);case"mm":return b.s(fe,2,"0");case"s":return String(K.$s);case"ss":return b.s(K.$s,2,"0");case"SSS":return b.s(K.$ms,3,"0");case"Z":return V}return null})(xe)||V.replace(":","")}))},U.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},U.diff=function(L,K,F){var j,V=this,B=b.p(K),fe=w(L),Te=(fe.utcOffset()-this.utcOffset())*e,we=this-fe,Je=s(function(){return b.m(V,fe)},"D");switch(B){case f:j=Je()/12;break;case l:j=Je();break;case d:j=Je()/3;break;case c:j=(we-Te)/6048e5;break;case u:j=(we-Te)/864e5;break;case a:j=we/r;break;case o:j=we/e;break;case i:j=we/t;break;default:j=we}return F?j:b.a(j)},U.daysInMonth=function(){return this.endOf(l).$D},U.$locale=function(){return I[this.$L]},U.locale=function(L,K){if(!L)return this.$L;var F=this.clone(),j=R(L,K,!0);return j&&(F.$L=j),F},U.clone=function(){return b.w(this.$d,this)},U.toDate=function(){return new Date(this.valueOf())},U.toJSON=function(){return this.isValid()?this.toISOString():null},U.toISOString=function(){return this.$d.toISOString()},U.toString=function(){return this.$d.toUTCString()},M})(),ee=G.prototype;return w.prototype=ee,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",g]].forEach((function(M){ee[M[1]]=function(U){return this.$g(U,M[0],M[1])}})),w.extend=function(M,U){return M.$i||(M(U,G,w),M.$i=!0),w},w.locale=R,w.isDayjs=C,w.unix=function(M){return w(1e3*M)},w.en=I[_],w.Ls=I,w.p={},w}))});var ut=Q(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.Err=Le.Valid=Le.err=Le.valid=void 0;var fI=s(t=>new zo(t),"valid");Le.valid=fI;var pI=s(t=>new Jo(t),"err");Le.err=pI;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,Le.valid)(e(this.value))}mapErr(e){return(0,Le.valid)(this.value)}};Le.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,Le.err)(this.error)}mapErr(e){return(0,Le.err)(e(this.error))}};Le.Err=Jo});var ct=Q(wh=>{"use strict";Object.defineProperty(wh,"__esModule",{value:!0})});var lr=Q(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});Rt();var J=ut();ct();var mI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],hI=["sun","mon","tue","wed","thu","fri","sat"],gI=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),Li=s((t,e,r)=>{if(e==="months"&&r.useAliases&&mI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&hI.indexOf(t.toLowerCase())!==-1)return(0,J.valid)(!0);let n=Number(t);if(isNaN(n))return(0,J.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,J.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,J.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,J.valid)(!0)},"checkSingleElementWithinLimits"),EI=s((t,e,r)=>{if(t==="*")return gI(e,r)?(0,J.valid)(!0):(0,J.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,J.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,J.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,J.valid)(!0):Li(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,J.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,J.valid)(!0):Li(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,J.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,J.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,J.err)("Number of occurrence of the day of the week cannot be greater than 5."):Li(n,e,r)}return Li(t,e,r)},"checkSingleElement"),Rh=s((t,e,r,n)=>t==="*"?(0,J.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,J.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,J.valid)(!0):Li(t,e,r),"checkRangeElement"),yI=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,J.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return EI(n[0],e,r);if(n.length===2){let i=Rh(n[0],e,r,0),o=Rh(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,J.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,J.valid)(!0)}return(0,J.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),TI=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,J.err)(`List element '${t}' is not valid. (More than one '/')`);let i=yI(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,J.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,J.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,J.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,J.valid)(!0)},"checkListElement"),SI=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,J.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,J.valid)(!0):(0,J.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,J.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(TI(a,e,r))}),i.every(a=>a.isValid()))return(0,J.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,J.err)(o)},"checkField");el.default=SI});var Ch=Q(Ui=>{"use strict";var AI=Ui&&Ui.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ui,"__esModule",{value:!0});Rt();var _I=ut(),OI=AI(lr());ct();var II=s((t,e)=>{if(!t.seconds)return(0,_I.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,OI.default)(r,"seconds",e)},"checkSeconds");Ui.default=II});var Dh=Q(ki=>{"use strict";var wI=ki&&ki.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ki,"__esModule",{value:!0});Rt();var RI=ut(),CI=wI(lr());ct();var DI=s((t,e)=>{if(!t.minutes)return(0,RI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,CI.default)(r,"minutes",e)},"checkMinutes");ki.default=DI});var bh=Q(Mi=>{"use strict";var bI=Mi&&Mi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Mi,"__esModule",{value:!0});Rt();var xI=ut(),vI=bI(lr());ct();var NI=s((t,e)=>{if(!t.hours)return(0,xI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,vI.default)(r,"hours",e)},"checkHours");Mi.default=NI});var xh=Q(Bi=>{"use strict";var PI=Bi&&Bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bi,"__esModule",{value:!0});Rt();var Fi=ut(),LI=PI(lr());ct();var UI=s((t,e)=>{if(!t.daysOfMonth)return(0,Fi.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fi.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fi.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,LI.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");Bi.default=UI});var vh=Q(Wi=>{"use strict";var kI=Wi&&Wi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Wi,"__esModule",{value:!0});Rt();var MI=ut(),FI=kI(lr());ct();var BI=s((t,e)=>{if(!t.months)return(0,MI.err)(["months field is undefined."]);let{months:r}=t;return(0,FI.default)(r,"months",e)},"checkMonths");Wi.default=BI});var Nh=Q($i=>{"use strict";var WI=$i&&$i.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($i,"__esModule",{value:!0});Rt();var Gi=ut(),GI=WI(lr());ct();var $I=s((t,e)=>{if(!t.daysOfWeek)return(0,Gi.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Gi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Gi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Gi.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Gi.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,GI.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");$i.default=$I});var Ph=Q(Vi=>{"use strict";var VI=Vi&&Vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vi,"__esModule",{value:!0});Rt();var qI=ut(),KI=VI(lr());ct();var QI=s((t,e)=>{if(!t.years)return(0,qI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,KI.default)(r,"years",e)},"checkYears");Vi.default=QI});var Mh=Q((PB,kh)=>{"use strict";var tl;try{tl=Map}catch{}var rl;try{rl=Set}catch{}function Lh(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(Uh);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]:Lh(t[i],e,r)}return n}return t}s(Lh,"baseClone");function Uh(t){return Lh(t,[],[])}s(Uh,"clone");kh.exports=Uh});var qi=Q(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});nl.default=ZI;var jI=Object.prototype.toString,HI=Error.prototype.toString,YI=RegExp.prototype.toString,zI=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",JI=/^Symbol\((.*)\)(.*)$/;function XI(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(XI,"printNumber");function Fh(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return XI(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return zI.call(t).replace(JI,"Symbol($1)");let n=jI.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+HI.call(t)+"]":n==="RegExp"?YI.call(t):null}s(Fh,"printSimpleValue");function ZI(t,e){let r=Fh(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=Fh(this[n],e);return o!==null?o:i},2)}s(ZI,"printValue")});var Mt=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=ew(qi());function ew(t){return t&&t.__esModule?t:{default:t}}s(ew,"_interopRequireDefault");var Wh={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:s(({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},"notType"),defined:"${path} must be defined"};Se.mixed=Wh;var Gh={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=Gh;var $h={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=$h;var Vh={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=Vh;var qh={isValue:"${path} field must be ${value}"};Se.boolean=qh;var Kh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=Kh;var Qh={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=Qh;var tw=Object.assign(Object.create(null),{mixed:Wh,string:Gh,number:$h,date:Vh,object:Kh,array:Qh,boolean:qh});Se.default=tw});var xn=Q(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.default=void 0;var rw=s(t=>t&&t.__isYupSchema__,"_default");Xo.default=rw});var Hh=Q(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var nw=jh(require("lodash/has")),iw=jh(xn());function jh(t){return t&&t.__esModule?t:{default:t}}s(jh,"_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,nw.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,iw.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},sw=il;Zo.default=sw});var ol=Q(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.default=ow;function ow(t){return t==null?[]:[].concat(t)}s(ow,"toArray")});var $r=Q(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.default=void 0;var aw=Yh(qi()),uw=Yh(ol());function Yh(t){return t&&t.__esModule?t:{default:t}}s(Yh,"_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 cw=/\$\{\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(cw,(i,o)=>(0,aw.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,uw.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=fw;var cl=lw($r());function lw(t){return t&&t.__esModule?t:{default:t}}s(lw,"_interopRequireDefault");var dw=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function fw(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=dw(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new cl.default(a,o,c)):l(null,o);for(let g=0;g<n.length;g++){let m=n[g];m(i,s(function(h){if(h){if(!cl.default.isError(h))return l(h,o);if(r)return h.value=o,l(h,o);f.push(h)}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(fw,"runTests")});var Ki=Q((YB,eg)=>{"use strict";function Vr(t){this._maxSize=t,this.clear()}s(Vr,"Cache");Vr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Vr.prototype.get=function(t){return this._values[t]};Vr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var pw=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Zh=/^\d+$/,mw=/^\d/,hw=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,gw=/^\s*(['"]?)(.*?)(\1)\s*$/,pl=512,zh=new Vr(pl),Jh=new Vr(pl),Xh=new Vr(pl);eg.exports={Cache:Vr,split:fl,normalizePath:dl,setter:s(function(t){var e=dl(t);return Jh.get(t)||Jh.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"))},"setter"),getter:s(function(t,e){var r=dl(t);return Xh.get(t)||Xh.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"))},"getter"),join:s(function(t){return t.reduce(function(e,r){return e+(ml(r)||Zh.test(r)?"["+r+"]":(e?".":"")+r)},"")},"join"),forEach:s(function(t,e,r){Ew(Array.isArray(t)?t:fl(t),e,r)},"forEach")};function dl(t){return zh.get(t)||zh.set(t,fl(t).map(function(e){return e.replace(gw,"$2")}))}s(dl,"normalizePath");function fl(t){return t.match(pw)||[""]}s(fl,"split");function Ew(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(Sw(i)&&(i='"'+i+'"'),u=ml(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(Ew,"forEach");function ml(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(ml,"isQuoted");function yw(t){return t.match(mw)&&!t.match(Zh)}s(yw,"hasLeadingNumber");function Tw(t){return hw.test(t)}s(Tw,"hasSpecialChars");function Sw(t){return!ml(t)&&(yw(t)||Tw(t))}s(Sw,"shouldBeQuoted")});var qr=Q(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.create=_w;ji.default=void 0;var Aw=Ki(),ra={context:"$",value:"."};function _w(t,e){return new Qi(t,e)}s(_w,"create");var Qi=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,Aw.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}};ji.default=Qi;Qi.prototype.__isYupRef=!0});var tg=Q(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});gl.default=Rw;var Ow=hl(require("lodash/mapValues")),na=hl($r()),Iw=hl(qr());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 ww(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(ww,"_objectWithoutPropertiesLoose");function Rw(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=ww(r,["value","path","label","options","originalValue","sync"]),{name:f,test:g,params:m,message:y}=t,{parent:h,context:p}=u;function T(C){return Iw.default.isRef(C)?C.getValue(i,h,p):C}s(T,"resolve");function A(C={}){let R=(0,Ow.default)(ia({value:i,originalValue:c,label:a,path:C.path||o},m,C.params),T),w=new na.default(na.default.formatError(C.message||y,R),i,R.path,C.type||f);return w.params=R,w}s(A,"createError");let _=ia({path:o,parent:h,type:f,createError:A,resolve:T,options:u,originalValue:c},d);if(!l){try{Promise.resolve(g.call(_,i,_)).then(C=>{na.default.isError(C)?n(C):C?n(null,C):n(A())})}catch(C){n(C)}return}let I;try{var O;if(I=g.call(_,i,_),typeof((O=I)==null?void 0:O.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(C){n(C);return}na.default.isError(I)?n(I):I?n(null,I):n(A())}return s(e,"validate"),e.OPTIONS=t,e}s(Rw,"createValidation")});var El=Q(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.getIn=rg;Hi.default=void 0;var Cw=Ki(),Dw=s(t=>t.substr(0,t.length-1).substr(1),"trim");function rg(t,e,r,n=r){let i,o,a;return e?((0,Cw.forEach)(e,(u,c,l)=>{let d=c?Dw(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(rg,"getIn");var bw=s((t,e,r,n)=>rg(t,e,r,n).schema,"reach"),xw=bw;Hi.default=xw});var ig=Q(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.default=void 0;var ng=vw(qr());function vw(t){return t&&t.__esModule?t:{default:t}}s(vw,"_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){ng.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){ng.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 Bt=Q(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.default=void 0;var sg=Ft(Mh()),vn=Mt(),Nw=Ft(Hh()),og=Ft(ta()),oa=Ft(tg()),ag=Ft(qi()),Pw=Ft(qr()),Lw=El(),Uw=Ft(ol()),ug=Ft($r()),cg=Ft(ig());function Ft(t){return t&&t.__esModule?t:{default:t}}s(Ft,"_interopRequireDefault");function Xe(){return Xe=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},Xe.apply(this,arguments)}s(Xe,"_extends");var lt=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new cg.default,this._blacklist=new cg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(vn.mixed.notType)}),this.type=e?.type||"mixed",this.spec=Xe({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=Xe({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,sg.default)(Xe({},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=Xe({},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(Xe({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,ag.default)(e),a=(0,ag.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 MO=Object.create;var Pi=Object.defineProperty;var FO=Object.getOwnPropertyDescriptor;var BO=Object.getOwnPropertyNames;var WO=Object.getPrototypeOf,GO=Object.prototype.hasOwnProperty;var s=(t,e)=>Pi(t,"name",{value:e,configurable:!0});var Q=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},P=(t,e)=>{for(var r in e)Pi(t,r,{get:e[r],enumerable:!0})},ph=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of BO(e))!GO.call(t,i)&&i!==r&&Pi(t,i,{get:()=>e[i],enumerable:!(n=FO(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?MO(WO(t)):{},ph(e||!t||!t.__esModule?Pi(r,"default",{value:t,enumerable:!0}):r,t)),$O=t=>ph(Pi({},"__esModule",{value:!0}),t);var Oh=Q((zc,Jc)=>{"use strict";(function(t,e){typeof zc=="object"&&typeof Jc<"u"?Jc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(zc,(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",g="date",m="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|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,p={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:s(function(M){var U=["th","st","nd","rd"],L=M%100;return"["+M+(U[(L-20)%10]||U[L]||U[0])+"]"},"ordinal")},T=s(function(M,U,L){var K=String(M);return!K||K.length>=U?M:""+Array(U+1-K.length).join(L)+M},"m"),A={s:T,z:s(function(M){var U=-M.utcOffset(),L=Math.abs(U),K=Math.floor(L/60),F=L%60;return(U<=0?"+":"-")+T(K,2,"0")+":"+T(F,2,"0")},"z"),m:s(function M(U,L){if(U.date()<L.date())return-M(L,U);var K=12*(L.year()-U.year())+(L.month()-U.month()),F=U.clone().add(K,l),j=L-F<0,q=U.clone().add(K+(j?-1:1),l);return+(-(K+(L-F)/(j?F-q:q-F))||0)},"t"),a:s(function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},"a"),p:s(function(M){return{M:l,y:f,w:c,d:u,D:g,h:a,m:o,s:i,ms:n,Q:d}[M]||String(M||"").toLowerCase().replace(/s$/,"")},"p"),u:s(function(M){return M===void 0},"u")},_="en",I={};I[_]=p;var O="$isDayjsObject",C=s(function(M){return M instanceof G||!(!M||!M[O])},"S"),R=s(function M(U,L,K){var F;if(!U)return _;if(typeof U=="string"){var j=U.toLowerCase();I[j]&&(F=j),L&&(I[j]=L,F=j);var q=U.split("-");if(!F&&q.length>1)return M(q[0])}else{var B=U.name;I[B]=U,F=B}return!K&&F&&(_=F),F||!K&&_},"t"),w=s(function(M,U){if(C(M))return M.clone();var L=typeof U=="object"?U:{};return L.date=M,L.args=arguments,new G(L)},"O"),b=A;b.l=R,b.i=C,b.w=function(M,U){return w(M,{locale:U.$L,utc:U.$u,x:U.$x,$offset:U.$offset})};var G=(function(){function M(L){this.$L=R(L.locale,null,!0),this.parse(L),this.$x=this.$x||L.x||{},this[O]=!0}s(M,"M");var U=M.prototype;return U.parse=function(L){this.$d=(function(K){var F=K.date,j=K.utc;if(F===null)return new Date(NaN);if(b.u(F))return new Date;if(F instanceof Date)return new Date(F);if(typeof F=="string"&&!/Z$/i.test(F)){var q=F.match(y);if(q){var B=q[2]-1||0,fe=(q[7]||"0").substring(0,3);return j?new Date(Date.UTC(q[1],B,q[3]||1,q[4]||0,q[5]||0,q[6]||0,fe)):new Date(q[1],B,q[3]||1,q[4]||0,q[5]||0,q[6]||0,fe)}}return new Date(F)})(L),this.init()},U.init=function(){var L=this.$d;this.$y=L.getFullYear(),this.$M=L.getMonth(),this.$D=L.getDate(),this.$W=L.getDay(),this.$H=L.getHours(),this.$m=L.getMinutes(),this.$s=L.getSeconds(),this.$ms=L.getMilliseconds()},U.$utils=function(){return b},U.isValid=function(){return this.$d.toString()!==m},U.isSame=function(L,K){var F=w(L);return this.startOf(K)<=F&&F<=this.endOf(K)},U.isAfter=function(L,K){return w(L)<this.startOf(K)},U.isBefore=function(L,K){return this.endOf(K)<w(L)},U.$g=function(L,K,F){return b.u(L)?this[K]:this.set(F,L)},U.unix=function(){return Math.floor(this.valueOf()/1e3)},U.valueOf=function(){return this.$d.getTime()},U.startOf=function(L,K){var F=this,j=!!b.u(K)||K,q=b.p(L),B=s(function($r,ve){var ur=b.w(F.$u?Date.UTC(F.$y,ve,$r):new Date(F.$y,ve,$r),F);return j?ur:ur.endOf(u)},"l"),fe=s(function($r,ve){return b.w(F.toDate()[$r].apply(F.toDate("s"),(j?[0,0,0,0]:[23,59,59,999]).slice(ve)),F)},"$"),Te=this.$W,we=this.$M,Je=this.$D,bn="set"+(this.$u?"UTC":"");switch(q){case f:return j?B(1,0):B(31,11);case l:return j?B(1,we):B(0,we+1);case c:var Gr=this.$locale().weekStart||0,vi=(Te<Gr?Te+7:Te)-Gr;return B(j?Je-vi:Je+(6-vi),we);case u:case g:return fe(bn+"Hours",0);case a:return fe(bn+"Minutes",1);case o:return fe(bn+"Seconds",2);case i:return fe(bn+"Milliseconds",3);default:return this.clone()}},U.endOf=function(L){return this.startOf(L,!1)},U.$set=function(L,K){var F,j=b.p(L),q="set"+(this.$u?"UTC":""),B=(F={},F[u]=q+"Date",F[g]=q+"Date",F[l]=q+"Month",F[f]=q+"FullYear",F[a]=q+"Hours",F[o]=q+"Minutes",F[i]=q+"Seconds",F[n]=q+"Milliseconds",F)[j],fe=j===u?this.$D+(K-this.$W):K;if(j===l||j===f){var Te=this.clone().set(g,1);Te.$d[B](fe),Te.init(),this.$d=Te.set(g,Math.min(this.$D,Te.daysInMonth())).$d}else B&&this.$d[B](fe);return this.init(),this},U.set=function(L,K){return this.clone().$set(L,K)},U.get=function(L){return this[b.p(L)]()},U.add=function(L,K){var F,j=this;L=Number(L);var q=b.p(K),B=s(function(we){var Je=w(j);return b.w(Je.date(Je.date()+Math.round(we*L)),j)},"y");if(q===l)return this.set(l,this.$M+L);if(q===f)return this.set(f,this.$y+L);if(q===u)return B(1);if(q===c)return B(7);var fe=(F={},F[o]=e,F[a]=r,F[i]=t,F)[q]||1,Te=this.$d.getTime()+L*fe;return b.w(Te,this)},U.subtract=function(L,K){return this.add(-1*L,K)},U.format=function(L){var K=this,F=this.$locale();if(!this.isValid())return F.invalidDate||m;var j=L||"YYYY-MM-DDTHH:mm:ssZ",q=b.z(this),B=this.$H,fe=this.$m,Te=this.$M,we=F.weekdays,Je=F.months,bn=F.meridiem,Gr=s(function(ve,ur,Ni,$o){return ve&&(ve[ur]||ve(K,j))||Ni[ur].slice(0,$o)},"h"),vi=s(function(ve){return b.s(B%12||12,ve,"0")},"d"),$r=bn||function(ve,ur,Ni){var $o=ve<12?"AM":"PM";return Ni?$o.toLowerCase():$o};return j.replace(h,(function(ve,ur){return ur||(function(Ni){switch(Ni){case"YY":return String(K.$y).slice(-2);case"YYYY":return b.s(K.$y,4,"0");case"M":return Te+1;case"MM":return b.s(Te+1,2,"0");case"MMM":return Gr(F.monthsShort,Te,Je,3);case"MMMM":return Gr(Je,Te);case"D":return K.$D;case"DD":return b.s(K.$D,2,"0");case"d":return String(K.$W);case"dd":return Gr(F.weekdaysMin,K.$W,we,2);case"ddd":return Gr(F.weekdaysShort,K.$W,we,3);case"dddd":return we[K.$W];case"H":return String(B);case"HH":return b.s(B,2,"0");case"h":return vi(1);case"hh":return vi(2);case"a":return $r(B,fe,!0);case"A":return $r(B,fe,!1);case"m":return String(fe);case"mm":return b.s(fe,2,"0");case"s":return String(K.$s);case"ss":return b.s(K.$s,2,"0");case"SSS":return b.s(K.$ms,3,"0");case"Z":return q}return null})(ve)||q.replace(":","")}))},U.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},U.diff=function(L,K,F){var j,q=this,B=b.p(K),fe=w(L),Te=(fe.utcOffset()-this.utcOffset())*e,we=this-fe,Je=s(function(){return b.m(q,fe)},"D");switch(B){case f:j=Je()/12;break;case l:j=Je();break;case d:j=Je()/3;break;case c:j=(we-Te)/6048e5;break;case u:j=(we-Te)/864e5;break;case a:j=we/r;break;case o:j=we/e;break;case i:j=we/t;break;default:j=we}return F?j:b.a(j)},U.daysInMonth=function(){return this.endOf(l).$D},U.$locale=function(){return I[this.$L]},U.locale=function(L,K){if(!L)return this.$L;var F=this.clone(),j=R(L,K,!0);return j&&(F.$L=j),F},U.clone=function(){return b.w(this.$d,this)},U.toDate=function(){return new Date(this.valueOf())},U.toJSON=function(){return this.isValid()?this.toISOString():null},U.toISOString=function(){return this.$d.toISOString()},U.toString=function(){return this.$d.toUTCString()},M})(),ee=G.prototype;return w.prototype=ee,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",g]].forEach((function(M){ee[M[1]]=function(U){return this.$g(U,M[0],M[1])}})),w.extend=function(M,U){return M.$i||(M(U,G,w),M.$i=!0),w},w.locale=R,w.isDayjs=C,w.unix=function(M){return w(1e3*M)},w.en=I[_],w.Ls=I,w.p={},w}))});var ct=Q(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.Err=Ue.Valid=Ue.err=Ue.valid=void 0;var hI=s(t=>new Jo(t),"valid");Ue.valid=hI;var gI=s(t=>new Xo(t),"err");Ue.err=gI;var Jo=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,Ue.valid)(e(this.value))}mapErr(e){return(0,Ue.valid)(this.value)}};Ue.Valid=Jo;var Xo=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,Ue.err)(this.error)}mapErr(e){return(0,Ue.err)(e(this.error))}};Ue.Err=Xo});var lt=Q(Dh=>{"use strict";Object.defineProperty(Dh,"__esModule",{value:!0})});var lr=Q(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});Rt();var J=ct();lt();var EI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],yI=["sun","mon","tue","wed","thu","fri","sat"],TI=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),Fi=s((t,e,r)=>{if(e==="months"&&r.useAliases&&EI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&yI.indexOf(t.toLowerCase())!==-1)return(0,J.valid)(!0);let n=Number(t);if(isNaN(n))return(0,J.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,J.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,J.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,J.valid)(!0)},"checkSingleElementWithinLimits"),SI=s((t,e,r)=>{if(t==="*")return TI(e,r)?(0,J.valid)(!0):(0,J.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,J.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,J.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,J.valid)(!0):Fi(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,J.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,J.valid)(!0):Fi(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,J.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,J.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,J.err)("Number of occurrence of the day of the week cannot be greater than 5."):Fi(n,e,r)}return Fi(t,e,r)},"checkSingleElement"),bh=s((t,e,r,n)=>t==="*"?(0,J.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,J.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,J.valid)(!0):Fi(t,e,r),"checkRangeElement"),AI=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,J.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return SI(n[0],e,r);if(n.length===2){let i=bh(n[0],e,r,0),o=bh(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,J.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,J.valid)(!0)}return(0,J.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),_I=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,J.err)(`List element '${t}' is not valid. (More than one '/')`);let i=AI(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,J.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,J.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,J.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,J.valid)(!0)},"checkListElement"),OI=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,J.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,J.valid)(!0):(0,J.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,J.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(_I(a,e,r))}),i.every(a=>a.isValid()))return(0,J.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,J.err)(o)},"checkField");tl.default=OI});var xh=Q(Bi=>{"use strict";var II=Bi&&Bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bi,"__esModule",{value:!0});Rt();var wI=ct(),RI=II(lr());lt();var CI=s((t,e)=>{if(!t.seconds)return(0,wI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,RI.default)(r,"seconds",e)},"checkSeconds");Bi.default=CI});var vh=Q(Wi=>{"use strict";var DI=Wi&&Wi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Wi,"__esModule",{value:!0});Rt();var bI=ct(),xI=DI(lr());lt();var vI=s((t,e)=>{if(!t.minutes)return(0,bI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,xI.default)(r,"minutes",e)},"checkMinutes");Wi.default=vI});var Nh=Q(Gi=>{"use strict";var NI=Gi&&Gi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gi,"__esModule",{value:!0});Rt();var PI=ct(),LI=NI(lr());lt();var UI=s((t,e)=>{if(!t.hours)return(0,PI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,LI.default)(r,"hours",e)},"checkHours");Gi.default=UI});var Ph=Q(Vi=>{"use strict";var kI=Vi&&Vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vi,"__esModule",{value:!0});Rt();var $i=ct(),MI=kI(lr());lt();var FI=s((t,e)=>{if(!t.daysOfMonth)return(0,$i.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$i.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$i.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,$i.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,$i.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,MI.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");Vi.default=FI});var Lh=Q(qi=>{"use strict";var BI=qi&&qi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qi,"__esModule",{value:!0});Rt();var WI=ct(),GI=BI(lr());lt();var $I=s((t,e)=>{if(!t.months)return(0,WI.err)(["months field is undefined."]);let{months:r}=t;return(0,GI.default)(r,"months",e)},"checkMonths");qi.default=$I});var Uh=Q(Qi=>{"use strict";var VI=Qi&&Qi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qi,"__esModule",{value:!0});Rt();var Ki=ct(),qI=VI(lr());lt();var KI=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,qI.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");Qi.default=KI});var kh=Q(ji=>{"use strict";var QI=ji&&ji.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ji,"__esModule",{value:!0});Rt();var jI=ct(),HI=QI(lr());lt();var YI=s((t,e)=>{if(!t.years)return(0,jI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,HI.default)(r,"years",e)},"checkYears");ji.default=YI});var Wh=Q((BB,Bh)=>{"use strict";var rl;try{rl=Map}catch{}var nl;try{nl=Set}catch{}function Mh(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(Fh);if(rl&&t instanceof rl)return new Map(Array.from(t.entries()));if(nl&&t instanceof nl)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]:Mh(t[i],e,r)}return n}return t}s(Mh,"baseClone");function Fh(t){return Mh(t,[],[])}s(Fh,"clone");Bh.exports=Fh});var Hi=Q(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.default=rw;var zI=Object.prototype.toString,JI=Error.prototype.toString,XI=RegExp.prototype.toString,ZI=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",ew=/^Symbol\((.*)\)(.*)$/;function tw(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(tw,"printNumber");function Gh(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return tw(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return ZI.call(t).replace(ew,"Symbol($1)");let n=zI.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+JI.call(t)+"]":n==="RegExp"?XI.call(t):null}s(Gh,"printSimpleValue");function rw(t,e){let r=Gh(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=Gh(this[n],e);return o!==null?o:i},2)}s(rw,"printValue")});var Mt=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 $h=nw(Hi());function nw(t){return t&&t.__esModule?t:{default:t}}s(nw,"_interopRequireDefault");var Vh={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:s(({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,$h.default)(r,!0)}\``+(i?` (cast from the value \`${(0,$h.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},"notType"),defined:"${path} must be defined"};Se.mixed=Vh;var qh={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=qh;var Kh={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=Kh;var Qh={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=Qh;var jh={isValue:"${path} field must be ${value}"};Se.boolean=jh;var Hh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=Hh;var Yh={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=Yh;var iw=Object.assign(Object.create(null),{mixed:Vh,string:qh,number:Kh,date:Qh,object:Hh,array:Yh,boolean:jh});Se.default=iw});var Ln=Q(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var sw=s(t=>t&&t.__isYupSchema__,"_default");Zo.default=sw});var Jh=Q(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.default=void 0;var ow=zh(require("lodash/has")),aw=zh(Ln());function zh(t){return t&&t.__esModule?t:{default:t}}s(zh,"_interopRequireDefault");var sl=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,ow.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,aw.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},uw=sl;ea.default=uw});var al=Q(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});ol.default=cw;function cw(t){return t==null?[]:[].concat(t)}s(cw,"toArray")});var qr=Q(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.default=void 0;var lw=Xh(Hi()),dw=Xh(al());function Xh(t){return t&&t.__esModule?t:{default:t}}s(Xh,"_interopRequireDefault");function ul(){return ul=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},ul.apply(this,arguments)}s(ul,"_extends");var fw=/\$\{\s*(\w+)\s*\}/g,cl=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ul({},r,{path:n})),typeof e=="string"?e.replace(fw,(i,o)=>(0,lw.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,dw.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)}};ta.default=cl});var ra=Q(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});dl.default=hw;var ll=pw(qr());function pw(t){return t&&t.__esModule?t:{default:t}}s(pw,"_interopRequireDefault");var mw=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function hw(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=mw(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new ll.default(a,o,c)):l(null,o);for(let g=0;g<n.length;g++){let m=n[g];m(i,s(function(h){if(h){if(!ll.default.isError(h))return l(h,o);if(r)return h.value=o,l(h,o);f.push(h)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new ll.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s(hw,"runTests")});var Yi=Q((tW,ng)=>{"use strict";function Kr(t){this._maxSize=t,this.clear()}s(Kr,"Cache");Kr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Kr.prototype.get=function(t){return this._values[t]};Kr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var gw=/[^.^\]^[]+|(?=\[\]|\.\.)/g,rg=/^\d+$/,Ew=/^\d/,yw=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Tw=/^\s*(['"]?)(.*?)(\1)\s*$/,ml=512,Zh=new Kr(ml),eg=new Kr(ml),tg=new Kr(ml);ng.exports={Cache:Kr,split:pl,normalizePath:fl,setter:s(function(t){var e=fl(t);return eg.get(t)||eg.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"))},"setter"),getter:s(function(t,e){var r=fl(t);return tg.get(t)||tg.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"))},"getter"),join:s(function(t){return t.reduce(function(e,r){return e+(hl(r)||rg.test(r)?"["+r+"]":(e?".":"")+r)},"")},"join"),forEach:s(function(t,e,r){Sw(Array.isArray(t)?t:pl(t),e,r)},"forEach")};function fl(t){return Zh.get(t)||Zh.set(t,pl(t).map(function(e){return e.replace(Tw,"$2")}))}s(fl,"normalizePath");function pl(t){return t.match(gw)||[""]}s(pl,"split");function Sw(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(Ow(i)&&(i='"'+i+'"'),u=hl(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(Sw,"forEach");function hl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(hl,"isQuoted");function Aw(t){return t.match(Ew)&&!t.match(rg)}s(Aw,"hasLeadingNumber");function _w(t){return yw.test(t)}s(_w,"hasSpecialChars");function Ow(t){return!hl(t)&&(Aw(t)||_w(t))}s(Ow,"shouldBeQuoted")});var Qr=Q(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=ww;Ji.default=void 0;var Iw=Yi(),na={context:"$",value:"."};function ww(t,e){return new zi(t,e)}s(ww,"create");var zi=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]===na.context,this.isValue=this.key[0]===na.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?na.context:this.isValue?na.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,Iw.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}};Ji.default=zi;zi.prototype.__isYupRef=!0});var ig=Q(El=>{"use strict";Object.defineProperty(El,"__esModule",{value:!0});El.default=bw;var Rw=gl(require("lodash/mapValues")),ia=gl(qr()),Cw=gl(Qr());function gl(t){return t&&t.__esModule?t:{default:t}}s(gl,"_interopRequireDefault");function sa(){return sa=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},sa.apply(this,arguments)}s(sa,"_extends");function Dw(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(Dw,"_objectWithoutPropertiesLoose");function bw(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=Dw(r,["value","path","label","options","originalValue","sync"]),{name:f,test:g,params:m,message:y}=t,{parent:h,context:p}=u;function T(C){return Cw.default.isRef(C)?C.getValue(i,h,p):C}s(T,"resolve");function A(C={}){let R=(0,Rw.default)(sa({value:i,originalValue:c,label:a,path:C.path||o},m,C.params),T),w=new ia.default(ia.default.formatError(C.message||y,R),i,R.path,C.type||f);return w.params=R,w}s(A,"createError");let _=sa({path:o,parent:h,type:f,createError:A,resolve:T,options:u,originalValue:c},d);if(!l){try{Promise.resolve(g.call(_,i,_)).then(C=>{ia.default.isError(C)?n(C):C?n(null,C):n(A())})}catch(C){n(C)}return}let I;try{var O;if(I=g.call(_,i,_),typeof((O=I)==null?void 0:O.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(C){n(C);return}ia.default.isError(I)?n(I):I?n(null,I):n(A())}return s(e,"validate"),e.OPTIONS=t,e}s(bw,"createValidation")});var yl=Q(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.getIn=sg;Xi.default=void 0;var xw=Yi(),vw=s(t=>t.substr(0,t.length-1).substr(1),"trim");function sg(t,e,r,n=r){let i,o,a;return e?((0,xw.forEach)(e,(u,c,l)=>{let d=c?vw(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(sg,"getIn");var Nw=s((t,e,r,n)=>sg(t,e,r,n).schema,"reach"),Pw=Nw;Xi.default=Pw});var ag=Q(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.default=void 0;var og=Lw(Qr());function Lw(t){return t&&t.__esModule?t:{default:t}}s(Lw,"_interopRequireDefault");var Tl=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){og.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){og.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}};oa.default=Tl});var Bt=Q(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.default=void 0;var ug=Ft(Wh()),Un=Mt(),Uw=Ft(Jh()),cg=Ft(ra()),aa=Ft(ig()),lg=Ft(Hi()),kw=Ft(Qr()),Mw=yl(),Fw=Ft(al()),dg=Ft(qr()),fg=Ft(ag());function Ft(t){return t&&t.__esModule?t:{default:t}}s(Ft,"_interopRequireDefault");function Xe(){return Xe=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},Xe.apply(this,arguments)}s(Xe,"_extends");var dt=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new fg.default,this._blacklist=new fg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Un.mixed.notType)}),this.type=e?.type||"mixed",this.spec=Xe({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=Xe({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,ug.default)(Xe({},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=Xe({},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(Xe({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,lg.default)(e),a=(0,lg.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,Xe({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},g=[];this._typeError&&g.push(this._typeError),this._whitelistError&&g.push(this._whitelistError),this._blacklistError&&g.push(this._blacklistError),(0,og.default)({args:f,value:d,path:o,sync:i,tests:g,endEarly:l},m=>{if(m)return void n(m,d);(0,og.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(Xe({},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(Xe({},r,{value:e})),i;return n._validate(e,Xe({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(ug.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(ug.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,sg.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,Uw.default)(e).map(o=>new Pw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new Nw.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=lt;lt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])lt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,Lw.getIn)(this,e,r,n.context);return a[t](i&&i[o],Xe({},n,{parent:i,path:e}))};for(let t of["equals","is"])lt.prototype[t]=lt.prototype.oneOf;for(let t of["not","nope"])lt.prototype[t]=lt.prototype.notOneOf;lt.prototype.optional=lt.prototype.notRequired});var dg=Q(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.create=lg;Yi.default=void 0;var kw=Mw(Bt());function Mw(t){return t&&t.__esModule?t:{default:t}}s(Mw,"_interopRequireDefault");var Tl=kw.default,Fw=Tl;Yi.default=Fw;function lg(){return new Tl}s(lg,"create");lg.prototype=Tl.prototype});var Nn=Q(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.default=void 0;var Bw=s(t=>t==null,"_default");ua.default=Bw});var gg=Q(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=hg;Ji.default=void 0;var Ww=mg(Bt()),fg=Mt(),pg=mg(Nn());function mg(t){return t&&t.__esModule?t:{default:t}}s(mg,"_interopRequireDefault");function hg(){return new zi}s(hg,"create");var zi=class extends Ww.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=fg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,pg.default)(r)||r===!0}})}isFalse(e=fg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,pg.default)(r)||r===!1}})}};Ji.default=zi;hg.prototype=zi.prototype});var Tg=Q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=yg;Zi.default=void 0;var Ct=Mt(),Wt=Eg(Nn()),Gw=Eg(Bt());function Eg(t){return t&&t.__esModule?t:{default:t}}s(Eg,"_interopRequireDefault");var $w=/^((([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,Vw=/^((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,qw=/^(?:[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,Kw=s(t=>(0,Wt.default)(t)||t===t.trim(),"isTrimmed"),Qw={}.toString();function yg(){return new Xi}s(yg,"create");var Xi=class extends Gw.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===Qw?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=Ct.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Wt.default)(n)||n.length===this.resolve(e)}})}min(e,r=Ct.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Wt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Ct.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,Wt.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||Ct.string.matches,params:{regex:e},test:s(a=>(0,Wt.default)(a)||a===""&&n||a.search(e)!==-1,"test")})}email(e=Ct.string.email){return this.matches($w,{name:"email",message:e,excludeEmptyString:!0})}url(e=Ct.string.url){return this.matches(Vw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Ct.string.uuid){return this.matches(qw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Ct.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:Kw})}lowercase(e=Ct.string.lowercase){return this.transform(r=>(0,Wt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:s(r=>(0,Wt.default)(r)||r===r.toLowerCase(),"test")})}uppercase(e=Ct.string.uppercase){return this.transform(r=>(0,Wt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:s(r=>(0,Wt.default)(r)||r===r.toUpperCase(),"test")})}};Zi.default=Xi;yg.prototype=Xi.prototype});var _g=Q(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.create=Ag;ts.default=void 0;var Kr=Mt(),Qr=Sg(Nn()),jw=Sg(Bt());function Sg(t){return t&&t.__esModule?t:{default:t}}s(Sg,"_interopRequireDefault");var Hw=s(t=>t!=+t,"isNaN");function Ag(){return new es}s(Ag,"create");var es=class extends jw.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"&&!Hw(e)}min(e,r=Kr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Qr.default)(n)||n>=this.resolve(e)}})}max(e,r=Kr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Qr.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Kr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Qr.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Kr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Qr.default)(n)||n>this.resolve(e)}})}positive(e=Kr.number.positive){return this.moreThan(0,e)}negative(e=Kr.number.negative){return this.lessThan(0,e)}integer(e=Kr.number.integer){return this.test({name:"integer",message:e,test:s(r=>(0,Qr.default)(r)||Number.isInteger(r),"test")})}truncate(){return this.transform(e=>(0,Qr.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,Qr.default)(i)?i:Math[e](i))}};ts.default=es;Ag.prototype=es.prototype});var Og=Q(Sl=>{"use strict";Object.defineProperty(Sl,"__esModule",{value:!0});Sl.default=zw;var Yw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function zw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Yw.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(zw,"parseIsoDate")});var Rg=Q(rs=>{"use strict";Object.defineProperty(rs,"__esModule",{value:!0});rs.create=_l;rs.default=void 0;var Jw=ca(Og()),Ig=Mt(),wg=ca(Nn()),Xw=ca(qr()),Zw=ca(Bt());function ca(t){return t&&t.__esModule?t:{default:t}}s(ca,"_interopRequireDefault");var Al=new Date(""),eR=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function _l(){return new Pn}s(_l,"create");var Pn=class extends Zw.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Jw.default)(e),isNaN(e)?Al:new Date(e))})})}_typeCheck(e){return eR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Xw.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=Ig.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,wg.default)(i)||i>=this.resolve(n)}})}max(e,r=Ig.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,wg.default)(i)||i<=this.resolve(n)}})}};rs.default=Pn;Pn.INVALID_DATE=Al;_l.prototype=Pn.prototype;_l.INVALID_DATE=Al});var Dg=Q((AW,Ol)=>{"use strict";Ol.exports=function(t){return Cg(tR(t),t)};Ol.exports.array=Cg;function Cg(t,e){var r=t.length,n=new Array(r),i={},o=r,a=rR(e),u=nR(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 g;try{g=", node was:"+JSON.stringify(l)}catch{g=""}throw new Error("Cyclic dependency"+g)}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 m=a.get(l)||new Set;if(m=Array.from(m),d=m.length){f.add(l);do{var y=m[--d];c(y,u.get(y),f)}while(d);f.delete(l)}n[--r]=l}}}s(Cg,"toposort");function tR(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(tR,"uniqueNodes");function rR(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(rR,"makeOutgoingEdges");function nR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(nR,"makeNodesHash")});var bg=Q(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});Il.default=cR;var iR=la(require("lodash/has")),sR=la(Dg()),oR=Ki(),aR=la(qr()),uR=la(xn());function la(t){return t&&t.__esModule?t:{default:t}}s(la,"_interopRequireDefault");function cR(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,oR.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,iR.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),aR.default.isRef(a)&&a.isSibling?i(a.path,o):(0,uR.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return sR.default.array(n,r).reverse()}s(cR,"sortFields")});var vg=Q(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});wl.default=lR;function xg(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(xg,"findIndex");function lR(t){return(e,r)=>xg(t,e)-xg(t,r)}s(lR,"sortByKeyOrder")});var Fg=Q(is=>{"use strict";Object.defineProperty(is,"__esModule",{value:!0});is.create=Mg;is.default=void 0;var Ng=Dt(require("lodash/has")),Pg=Dt(require("lodash/snakeCase")),dR=Dt(require("lodash/camelCase")),fR=Dt(require("lodash/mapKeys")),pR=Dt(require("lodash/mapValues")),mR=Ki(),Lg=Mt(),hR=Dt(bg()),kg=Dt(vg()),gR=Dt(ta()),ER=Dt($r()),Rl=Dt(Bt());function Dt(t){return t&&t.__esModule?t:{default:t}}s(Dt,"_interopRequireDefault");function Ln(){return Ln=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},Ln.apply(this,arguments)}s(Ln,"_extends");var Ug=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function yR(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(yR,"unknown");var TR=(0,kg.default)([]),ns=class extends Rl.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=TR,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 Ug(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=Ln({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let g=o[f],m=(0,Ng.default)(i,f);if(g){let y,h=i[f];l.path=(r.path?`${r.path}.`:"")+f,g=g.resolve({value:h,context:r.context,parent:c});let p="spec"in g?g.spec:void 0,T=p?.strict;if(p?.strip){d=d||f in i;continue}y=!r.__validating||!T?g.cast(i[f],l):i[f],y!==void 0&&(c[f]=y)}else m&&!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(!ER.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!Ug(f)){n(i[0]||null,f);return}u=u||f;let g=this._nodes.map(m=>(y,h)=>{let p=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(f[m],Ln({},r,{path:p,from:a,strict:!0,parent:f,originalValue:u[m]}),h);return}h(null)});(0,gR.default)({sync:o,tests:g,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ln({},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 Rl.default&&o instanceof Rl.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,kg.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,hR.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,mR.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,Ng.default)(o,e)&&(a=Ln({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=Lg.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=yR(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Lg.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,fR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(dR.default)}snakeCase(){return this.transformKeys(Pg.default)}constantCase(){return this.transformKeys(e=>(0,Pg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,pR.default)(this.fields,r=>r.describe()),e}};is.default=ns;function Mg(t){return new ns(t)}s(Mg,"create");Mg.prototype=ns.prototype});var Wg=Q(os=>{"use strict";Object.defineProperty(os,"__esModule",{value:!0});os.create=Bg;os.default=void 0;var Cl=Un(Nn()),SR=Un(xn()),AR=Un(qi()),Dl=Mt(),_R=Un(ta()),OR=Un($r()),IR=Un(Bt());function Un(t){return t&&t.__esModule?t:{default:t}}s(Un,"_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 ss(t)}s(Bg,"create");var ss=class extends IR.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,g=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,y)=>{if(m){if(!OR.default.isError(m)||d)return void n(m,y);a.push(m)}if(!f||!l||!this._typeCheck(y)){n(a[0]||null,y);return}g=g||y;let h=new Array(y.length);for(let p=0;p<y.length;p++){let T=y[p],A=`${r.path||""}[${p}]`,_=da({},r,{path:A,strict:!0,parent:y,index:p,originalValue:g[p]});h[p]=(I,O)=>l.validate(T,_,O)}(0,_R.default)({sync:u,path:c,value:y,errors:a,endEarly:d,tests:h},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,SR.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,AR.default)(e));return r.innerType=e,r}length(e,r=Dl.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Cl.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Dl.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Cl.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Dl.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Cl.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)}};os.default=ss;Bg.prototype=ss.prototype});var Gg=Q(as=>{"use strict";Object.defineProperty(as,"__esModule",{value:!0});as.create=CR;as.default=void 0;var wR=RR(xn());function RR(t){return t&&t.__esModule?t:{default:t}}s(RR,"_interopRequireDefault");function CR(t){return new fa(t)}s(CR,"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,wR.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)}},DR=fa;as.default=DR});var $g=Q(bl=>{"use strict";Object.defineProperty(bl,"__esModule",{value:!0});bl.default=vR;var bR=xR(Mt());function xR(t){return t&&t.__esModule?t:{default:t}}s(xR,"_interopRequireDefault");function vR(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{bR.default[e][r]=t[e][r]})})}s(vR,"setLocale")});var vl=Q(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.addMethod=FR;Object.defineProperty(ie,"MixedSchema",{enumerable:!0,get:s(function(){return Vg.default},"get")});Object.defineProperty(ie,"mixed",{enumerable:!0,get:s(function(){return Vg.create},"get")});Object.defineProperty(ie,"BooleanSchema",{enumerable:!0,get:s(function(){return xl.default},"get")});Object.defineProperty(ie,"bool",{enumerable:!0,get:s(function(){return xl.create},"get")});Object.defineProperty(ie,"boolean",{enumerable:!0,get:s(function(){return xl.create},"get")});Object.defineProperty(ie,"StringSchema",{enumerable:!0,get:s(function(){return qg.default},"get")});Object.defineProperty(ie,"string",{enumerable:!0,get:s(function(){return qg.create},"get")});Object.defineProperty(ie,"NumberSchema",{enumerable:!0,get:s(function(){return Kg.default},"get")});Object.defineProperty(ie,"number",{enumerable:!0,get:s(function(){return Kg.create},"get")});Object.defineProperty(ie,"DateSchema",{enumerable:!0,get:s(function(){return Qg.default},"get")});Object.defineProperty(ie,"date",{enumerable:!0,get:s(function(){return Qg.create},"get")});Object.defineProperty(ie,"ObjectSchema",{enumerable:!0,get:s(function(){return jg.default},"get")});Object.defineProperty(ie,"object",{enumerable:!0,get:s(function(){return jg.create},"get")});Object.defineProperty(ie,"ArraySchema",{enumerable:!0,get:s(function(){return Hg.default},"get")});Object.defineProperty(ie,"array",{enumerable:!0,get:s(function(){return Hg.create},"get")});Object.defineProperty(ie,"ref",{enumerable:!0,get:s(function(){return NR.create},"get")});Object.defineProperty(ie,"lazy",{enumerable:!0,get:s(function(){return PR.create},"get")});Object.defineProperty(ie,"ValidationError",{enumerable:!0,get:s(function(){return LR.default},"get")});Object.defineProperty(ie,"reach",{enumerable:!0,get:s(function(){return UR.default},"get")});Object.defineProperty(ie,"isSchema",{enumerable:!0,get:s(function(){return Yg.default},"get")});Object.defineProperty(ie,"setLocale",{enumerable:!0,get:s(function(){return kR.default},"get")});Object.defineProperty(ie,"BaseSchema",{enumerable:!0,get:s(function(){return MR.default},"get")});var Vg=jr(dg()),xl=jr(gg()),qg=jr(Tg()),Kg=jr(_g()),Qg=jr(Rg()),jg=jr(Fg()),Hg=jr(Wg()),NR=qr(),PR=Gg(),LR=us($r()),UR=us(El()),Yg=us(xn()),kR=us($g()),MR=us(Bt());function us(t){return t&&t.__esModule?t:{default:t}}s(us,"_interopRequireDefault");function zg(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return zg=s(function(){return t},"_getRequireWildcardCache"),t}s(zg,"_getRequireWildcardCache");function jr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=zg();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(jr,"_interopRequireWildcard");function FR(t,e,r){if(!t||!(0,Yg.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(FR,"addMethod")});var Jg=Q(Pl=>{"use strict";Object.defineProperty(Pl,"__esModule",{value:!0});var Nl=Ll();Pl.default=()=>{(0,Nl.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,Nl.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,Nl.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 Ll=Q(Ae=>{"use strict";var BR=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:s(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),WR=Ae&&Ae.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),GR=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)&&BR(e,t,r);return WR(e,t),e},$R=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 x=GR(vl());vl();var cs=ut(),VR=$R(Jg());ct();var Hr={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}}},Xg=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),qR=s(t=>Hr[t]?(0,cs.valid)(Hr[t]):(0,cs.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=qR;var KR=s(()=>Hr,"getOptionPresets");Ae.getOptionPresets=KR;var QR=s((t,e)=>{Hr[t]=Xg.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=QR;var jR=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,g,m,y,h,p,T,A,_,I;try{(0,VR.default)();let O;if(t.preset)if(typeof t.preset=="string"){if(!Hr[t.preset])return(0,cs.err)([`Option preset ${t.preset} does not exist.`]);O=Hr[t.preset]}else O=t.preset;else O=Hr.default;let C=Object.assign(Object.assign({presetId:O.presetId,preset:O},{useSeconds:O.useSeconds,useYears:O.useYears,useAliases:(e=O.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:O.useBlankDay,allowOnlyOneBlankDayField:O.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=O.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=O.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=O.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=O.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=O.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=O.seconds.lowerLimit)!==null&&u!==void 0?u:O.seconds.minValue,upperLimit:(c=O.seconds.upperLimit)!==null&&c!==void 0?c:O.seconds.maxValue},minutes:{lowerLimit:(l=O.minutes.lowerLimit)!==null&&l!==void 0?l:O.minutes.minValue,upperLimit:(d=O.minutes.upperLimit)!==null&&d!==void 0?d:O.minutes.maxValue},hours:{lowerLimit:(f=O.hours.lowerLimit)!==null&&f!==void 0?f:O.hours.minValue,upperLimit:(g=O.hours.upperLimit)!==null&&g!==void 0?g:O.hours.maxValue},daysOfMonth:{lowerLimit:(m=O.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:O.daysOfMonth.minValue,upperLimit:(y=O.daysOfMonth.upperLimit)!==null&&y!==void 0?y:O.daysOfMonth.maxValue},months:{lowerLimit:(h=O.months.lowerLimit)!==null&&h!==void 0?h:O.months.minValue,upperLimit:(p=O.months.upperLimit)!==null&&p!==void 0?p:O.months.maxValue},daysOfWeek:{lowerLimit:(T=O.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:O.daysOfWeek.minValue,upperLimit:(A=O.daysOfWeek.upperLimit)!==null&&A!==void 0?A:O.daysOfWeek.maxValue},years:{lowerLimit:(_=O.years.lowerLimit)!==null&&_!==void 0?_:O.years.minValue,upperLimit:(I=O.years.upperLimit)!==null&&I!==void 0?I:O.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:Xg.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(O.seconds.minValue).max(O.seconds.maxValue),upperLimit:x.number().min(O.seconds.minValue).max(O.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(O.minutes.minValue).max(O.minutes.maxValue),upperLimit:x.number().min(O.minutes.minValue).max(O.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(O.hours.minValue).max(O.hours.maxValue),upperLimit:x.number().min(O.hours.minValue).max(O.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(O.daysOfMonth.minValue).max(O.daysOfMonth.maxValue),upperLimit:x.number().min(O.daysOfMonth.minValue).max(O.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(O.months.minValue).max(O.months.maxValue),upperLimit:x.number().min(O.months.minValue).max(O.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(O.daysOfWeek.minValue).max(O.daysOfWeek.maxValue),upperLimit:x.number().min(O.daysOfWeek.minValue).max(O.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(O.years.minValue).max(O.years.maxValue),upperLimit:x.number().min(O.years.minValue).max(O.years.maxValue)}).required()}).required().validateSync(C,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,cs.valid)(w)}catch(O){return(0,cs.err)(O.errors)}},"validateOptions");Ae.validateOptions=jR});var Rt=Q((ls,kl)=>{"use strict";var zr=ls&&ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ls,"__esModule",{value:!0});var Yr=ut(),HR=zr(Ch()),YR=zr(Dh()),zR=zr(bh()),JR=zr(xh()),XR=zr(vh()),ZR=zr(Nh()),eC=zr(Ph()),tC=Ll();ct();var rC=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Yr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Yr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Yr.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,Yr.valid)(n)},"splitCronString"),Ul=s((t,e={})=>{let r=(0,tC.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=rC(t,n);if(i.isError())return(0,Yr.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,HR.default)(o,n)),a.push((0,YR.default)(o,n)),a.push((0,zR.default)(o,n)),a.push((0,JR.default)(o,n)),a.push((0,XR.default)(o,n)),a.push((0,ZR.default)(o,n)),n.useYears&&a.push((0,eC.default)(o,n)),a.every(c=>c.isValid()))return(0,Yr.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,Yr.err)(u)},"cron");ls.default=Ul;kl.exports=Ul;kl.exports.default=Ul});var Dy=Q(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var $t=class extends Error{static{s(this,"LuxonError")}},Ql=class extends $t{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},jl=class extends $t{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Hl=class extends $t{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},pr=class extends $t{static{s(this,"ConflictingSpecificationError")}},Sa=class extends $t{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends $t{static{s(this,"InvalidArgumentError")}},bt=class extends $t{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},N="numeric",pt="short",qe="long",Aa={year:N,month:N,day:N},bE={year:N,month:pt,day:N},nC={year:N,month:pt,day:N,weekday:pt},xE={year:N,month:qe,day:N},vE={year:N,month:qe,day:N,weekday:qe},NE={hour:N,minute:N},PE={hour:N,minute:N,second:N},LE={hour:N,minute:N,second:N,timeZoneName:pt},UE={hour:N,minute:N,second:N,timeZoneName:qe},kE={hour:N,minute:N,hourCycle:"h23"},ME={hour:N,minute:N,second:N,hourCycle:"h23"},FE={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:pt},BE={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:qe},WE={year:N,month:N,day:N,hour:N,minute:N},GE={year:N,month:N,day:N,hour:N,minute:N,second:N},$E={year:N,month:pt,day:N,hour:N,minute:N},VE={year:N,month:pt,day:N,hour:N,minute:N,second:N},iC={year:N,month:pt,day:N,weekday:pt,hour:N,minute:N},qE={year:N,month:qe,day:N,hour:N,minute:N,timeZoneName:pt},KE={year:N,month:qe,day:N,hour:N,minute:N,second:N,timeZoneName:pt},QE={year:N,month:qe,day:N,weekday:qe,hour:N,minute:N,timeZoneName:qe},jE={year:N,month:qe,day:N,weekday:qe,hour:N,minute:N,second:N,timeZoneName:qe},hr=class{static{s(this,"Zone")}get type(){throw new bt}get name(){throw new bt}get ianaName(){return this.name}get isUniversal(){throw new bt}offsetName(e,r){throw new bt}formatOffset(e,r){throw new bt}offset(e){throw new bt}equals(e){throw new bt}get isValid(){throw new bt}},Ml=null,gs=class t extends hr{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 iy(e,r,n)}formatOffset(e,r){return hs(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 sC(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(sC,"makeDTF");var oC={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function aC(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(aC,"hackyOffset");function uC(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=oC[o];o==="era"?n[u]=a:H(u)||(n[u]=parseInt(a,10))}return n}s(uC,"partsOffset");var Fl=new Map,Vt=class t extends hr{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 iy(e,r,n,this.name)}formatOffset(e,r){return hs(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=sC(this.name),[i,o,a,u,c,l,d]=n.formatToParts?uC(n,r):aC(n,r);u==="BC"&&(i=-Math.abs(i)+1);let g=Da({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),m=+r,y=m%1e3;return m-=y>=0?y:1e3+y,(g-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Zg={};function cC(t,e={}){let r=JSON.stringify([t,e]),n=Zg[r];return n||(n=new Intl.ListFormat(t,e),Zg[r]=n),n}s(cC,"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 lC(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(lC,"getCachedINF");var Zl=new Map;function dC(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(dC,"getCachedRTF");var fs=null;function fC(){return fs||(fs=new Intl.DateTimeFormat().resolvedOptions().locale,fs)}s(fC,"systemLocale");var ed=new Map;function HE(t){let e=ed.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),ed.set(t,e)),e}s(HE,"getCachedIntResolvedOptions");var td=new Map;function pC(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={...YE,...e}),td.set(t,e)}return e}s(pC,"getCachedWeekInfo");function mC(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(mC,"parseLocaleString");function hC(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(hC,"intlConfigString");function gC(t){let e=[];for(let r=1;r<=12;r++){let n=ue.utc(2009,r,1);e.push(t(n))}return e}s(gC,"mapMonths");function EC(t){let e=[];for(let r=1;r<=7;r++){let n=ue.utc(2016,11,13+r);e.push(t(n))}return e}s(EC,"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 yC(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||HE(t.locale).numberingSystem==="latn"}s(yC,"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=lC(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 he(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&&Vt.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&&ry()&&(this.rtf=dC(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):BC(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},YE={firstDay:1,minimalDays:4,weekend:[6,7]},re=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||se.defaultLocale,u=a||(o?"en-US":fC()),c=r||se.defaultNumberingSystem,l=n||se.defaultOutputCalendar,d=od(i)||se.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){fs=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]=mC(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=hC(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=yC(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,ay,()=>{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]=gC(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return pa(this,e,ly,()=>{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]=EC(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return pa(this,void 0,()=>dy,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[ue.utc(2016,11,13,9),ue.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return pa(this,e,fy,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[ue.utc(-40,1,1),ue.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 cC(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||HE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:ny()?pC(this.locale):YE}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 hr{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${hs(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${hs(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return hs(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 hr{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 fr(t,e){if(H(t)||t===null)return e;if(t instanceof hr)return t;if(IC(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?gs.instance:r==="utc"||r==="gmt"?Ke.utcInstance:Ke.parseSpecifier(r)||Vt.create(t)}else return mr(t)?Ke.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new _a(t)}s(fr,"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"},eE={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]},TC=cd.hanidec.replace(/[\[|\]]/g,"").split("");function SC(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+=TC.indexOf(t[r]);else for(let i in eE){let[o,a]=eE[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(SC,"parseDigits");var sd=new Map;function AC(){sd.clear()}s(AC,"resetDigitRegexCache");function dt({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(dt,"digitRegex");var tE=s(()=>Date.now(),"now"),rE="system",nE=null,iE=null,sE=null,oE=60,aE,uE=null,se=class{static{s(this,"Settings")}static get now(){return tE}static set now(e){tE=e}static set defaultZone(e){rE=e}static get defaultZone(){return fr(rE,gs.instance)}static get defaultLocale(){return nE}static set defaultLocale(e){nE=e}static get defaultNumberingSystem(){return iE}static set defaultNumberingSystem(e){iE=e}static get defaultOutputCalendar(){return sE}static set defaultOutputCalendar(e){sE=e}static get defaultWeekSettings(){return uE}static set defaultWeekSettings(e){uE=od(e)}static get twoDigitCutoffYear(){return oE}static set twoDigitCutoffYear(e){oE=e%100}static get throwOnInvalid(){return aE}static set throwOnInvalid(e){aE=e}static resetCaches(){re.resetCache(),Vt.resetCache(),ue.resetCache(),AC()}},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}},zE=[0,31,59,90,120,151,181,212,243,273,304,334],JE=[0,31,60,91,121,152,182,213,244,274,305,335];function et(t,e){return new Ve("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(et,"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 XE(t,e,r){return r+(ys(t)?JE:zE)[e-1]}s(XE,"computeOrdinal");function ZE(t,e){let r=ys(t)?JE:zE,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(ZE,"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=XE(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=Es(l,e,r)):c>Es(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...xa(t)}}s(Oa,"gregorianToWeek");function cE(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}=ZE(l,c);return{year:l,month:d,day:f,...xa(t)}}s(cE,"weekToGregorian");function Wl(t){let{year:e,month:r,day:n}=t,i=XE(e,r,n);return{year:e,ordinal:i,...xa(t)}}s(Wl,"gregorianToOrdinal");function lE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=ZE(e,r);return{year:e,month:n,day:i,...xa(t)}}s(lE,"ordinalToGregorian");function dE(t,e){if(!H(t.localWeekday)||!H(t.localWeekNumber)||!H(t.localWeekYear)){if(!H(t.weekday)||!H(t.weekNumber)||!H(t.weekYear))throw new pr("Cannot mix locale-based week fields with ISO-based week fields");return H(t.localWeekday)||(t.weekday=t.localWeekday),H(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),H(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(dE,"usesLocalWeekValues");function _C(t,e=4,r=1){let n=Ca(t.weekYear),i=tt(t.weekNumber,1,Es(t.weekYear,e,r)),o=tt(t.weekday,1,7);return n?i?o?!1:et("weekday",t.weekday):et("week",t.weekNumber):et("weekYear",t.weekYear)}s(_C,"hasInvalidWeekData");function OC(t){let e=Ca(t.year),r=tt(t.ordinal,1,Bn(t.year));return e?r?!1:et("ordinal",t.ordinal):et("year",t.year)}s(OC,"hasInvalidOrdinalData");function ey(t){let e=Ca(t.year),r=tt(t.month,1,12),n=tt(t.day,1,Ia(t.year,t.month));return e?r?n?!1:et("day",t.day):et("month",t.month):et("year",t.year)}s(ey,"hasInvalidGregorianData");function ty(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=tt(e,0,23)||e===24&&r===0&&n===0&&i===0,a=tt(r,0,59),u=tt(n,0,59),c=tt(i,0,999);return o?a?u?c?!1:et("millisecond",i):et("second",n):et("minute",r):et("hour",e)}s(ty,"hasInvalidTimeData");function H(t){return typeof t>"u"}s(H,"isUndefined");function mr(t){return typeof t=="number"}s(mr,"isNumber");function Ca(t){return typeof t=="number"&&t%1===0}s(Ca,"isInteger");function IC(t){return typeof t=="string"}s(IC,"isString");function wC(t){return Object.prototype.toString.call(t)==="[object Date]"}s(wC,"isDate");function ry(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(ry,"hasRelative");function ny(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(ny,"hasLocaleWeekInfo");function RC(t){return Array.isArray(t)?t:[t]}s(RC,"maybeArray");function fE(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(fE,"bestBy");function CC(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(CC,"pick");function Gn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s(Gn,"hasOwnProperty");function od(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!tt(t.firstDay,1,7)||!tt(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!tt(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 tt(t,e,r){return Ca(t)&&t>=e&&t<=r}s(tt,"integerBetween");function DC(t,e){return t-e*Math.floor(t/e)}s(DC,"floorMod");function he(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(he,"padStart");function dr(t){if(!(H(t)||t===null||t===""))return parseInt(t,10)}s(dr,"parseInteger");function Jr(t){if(!(H(t)||t===null||t===""))return parseFloat(t)}s(Jr,"parseFloating");function fd(t){if(!(H(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 ys(t){return t%4===0&&(t%100!==0||t%400===0)}s(ys,"isLeapYear");function Bn(t){return ys(t)?366:365}s(Bn,"daysInYear");function Ia(t,e){let r=DC(e-1,12)+1,n=t+(e-r)/12;return r===2?ys(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(Ia,"daysInMonth");function Da(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(Da,"objToLocalTS");function pE(t,e,r){return-dd(ld(t,1,e),r)+e-1}s(pE,"firstWeekOffset");function Es(t,e=4,r=1){let n=pE(t,e,r),i=pE(t+1,e,r);return(Bn(t)-n+i)/7}s(Es,"weeksInWeekYear");function ad(t){return t>99?t:t>se.twoDigitCutoffYear?1900+t:2e3+t}s(ad,"untruncateYear");function iy(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(iy,"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 sy(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(sy,"asNumber");function wa(t,e){let r={};for(let n in t)if(Gn(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=sy(i)}return r}s(wa,"normalizeObject");function hs(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}${he(r,2)}:${he(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${he(r,2)}${he(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(hs,"formatOffset");function xa(t){return CC(t,["hour","minute","second","millisecond"])}s(xa,"timeObject");var bC=["January","February","March","April","May","June","July","August","September","October","November","December"],oy=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],xC=["J","F","M","A","M","J","J","A","S","O","N","D"];function ay(t){switch(t){case"narrow":return[...xC];case"short":return[...oy];case"long":return[...bC];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(ay,"months");var uy=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],cy=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],vC=["M","T","W","T","F","S","S"];function ly(t){switch(t){case"narrow":return[...vC];case"short":return[...cy];case"long":return[...uy];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(ly,"weekdays");var dy=["AM","PM"],NC=["Before Christ","Anno Domini"],PC=["BC","AD"],LC=["B","A"];function fy(t){switch(t){case"narrow":return[...LC];case"short":return[...PC];case"long":return[...NC];default:return null}}s(fy,"eras");function UC(t){return dy[t.hour<12?0:1]}s(UC,"meridiemForDateTime");function kC(t,e){return ly(e)[t.weekday-1]}s(kC,"weekdayForDateTime");function MC(t,e){return ay(e)[t.month-1]}s(MC,"monthForDateTime");function FC(t,e){return fy(e)[t.year<0?0:1]}s(FC,"eraForDateTime");function BC(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(BC,"formatRelativeTime");function mE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(mE,"stringifyTokens");var WC={D:Aa,DD:bE,DDD:xE,DDDD:vE,t:NE,tt:PE,ttt:LE,tttt:UE,T:kE,TT:ME,TTT:FE,TTTT:BE,f:WE,ff:$E,fff:qE,ffff:QE,F:GE,FF:VE,FFF:KE,FFFF:jE},$e=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 WC[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 he(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((m,y)=>this.loc.extract(e,m,y),"string"),a=s(m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"","formatOffset"),u=s(()=>n?UC(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((m,y)=>n?MC(e,m):o(y?{month:m}:{month:m,day:"numeric"},"month"),"month"),l=s((m,y)=>n?kC(e,m):o(y?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(m=>{let y=t.macroTokenToFormatOpts(m);return y?this.formatWithSystemDefault(e,y):m},"maybeMacro"),f=s(m=>n?FC(e,m):o({era:m},"era"),"era"),g=s(m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return 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(m)}},"tokenToString");return mE(t.parseFormat(r),g)}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)=>g=>{let m=i(g);if(m){let y=f.isNegativeDuration&&m!==f.largestUnit?n:1,h;return this.opts.signMode==="negativeLargestOnly"&&m!==f.largestUnit?h="never":this.opts.signMode==="all"?h="always":h="auto",this.num(d.get(m)*y,g.length,h)}else return g},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:g})=>f?d:d.concat(g),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return mE(a,o(c,l))}},py=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $n(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s($n,"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 my(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=dr(e[r+i]);return[n,null,r+i]}}s(my,"simpleParse");var hy=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,GC=`(?:${hy.source}?(?:\\[(${py.source})\\])?)?`,md=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,gy=RegExp(`${md.source}${GC}`),hd=RegExp(`(?:[Tt]${gy.source})?`),$C=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,VC=/(\d{4})-?W(\d\d)(?:-?(\d))?/,qC=/(\d{4})-?(\d{3})/,KC=my("weekYear","weekNumber","weekDay"),QC=my("year","ordinal"),jC=/(\d{4})-(\d\d)-(\d\d)/,Ey=RegExp(`${md.source} ?(?:${hy.source}|(${py.source}))?`),HC=RegExp(`(?: ${Ey.source})?`);function Wn(t,e,r){let n=t[e];return H(n)?r:dr(n)}s(Wn,"int");function YC(t,e){return[{year:Wn(t,e),month:Wn(t,e+1,1),day:Wn(t,e+2,1)},null,e+3]}s(YC,"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 Ts(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(Ts,"extractISOOffset");function Ss(t,e){let r=t[e]?Vt.create(t[e]):null;return[{},r,e+1]}s(Ss,"extractIANAZone");var zC=RegExp(`^T?${md.source}$`),JC=/^-?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 XC(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",g=s((m,y=!1)=>m!==void 0&&(y||m&&d)?-m:m,"maybeNegate");return[{years:g(Jr(r)),months:g(Jr(n)),weeks:g(Jr(i)),days:g(Jr(o)),hours:g(Jr(a)),minutes:g(Jr(u)),seconds:g(Jr(c),c==="-0"),milliseconds:g(fd(l),f)}]}s(XC,"extractISODuration");var ZC={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function gd(t,e,r,n,i,o,a){let u={year:e.length===2?ad(dr(e)):dr(e),month:oy.indexOf(r)+1,day:dr(n),hour:dr(i),minute:dr(o)};return a&&(u.second=dr(a)),t&&(u.weekday=t.length>3?uy.indexOf(t)+1:cy.indexOf(t)+1),u}s(gd,"fromStrings");var eD=/^(?:(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 tD(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,g=gd(e,i,n,r,o,a,u),m;return c?m=ZC[c]:l?m=0:m=ba(d,f),[g,new Ke(m)]}s(tD,"extractRFC2822");function rD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(rD,"preprocessRFC2822");var nD=/^(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$/,iD=/^(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$/,sD=/^(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 hE(t){let[,e,r,n,i,o,a,u]=t;return[gd(e,i,n,r,o,a,u),Ke.utcInstance]}s(hE,"extractRFC1123Or850");function oD(t){let[,e,r,n,i,o,a,u]=t;return[gd(e,u,r,n,i,o,a),Ke.utcInstance]}s(oD,"extractASCII");var aD=$n($C,hd),uD=$n(VC,hd),cD=$n(qC,hd),lD=$n(gy),yy=Vn(YC,Kn,Ts,Ss),dD=Vn(KC,Kn,Ts,Ss),fD=Vn(QC,Kn,Ts,Ss),pD=Vn(Kn,Ts,Ss);function mD(t){return qn(t,[aD,yy],[uD,dD],[cD,fD],[lD,pD])}s(mD,"parseISODate");function hD(t){return qn(rD(t),[eD,tD])}s(hD,"parseRFC2822Date");function gD(t){return qn(t,[nD,hE],[iD,hE],[sD,oD])}s(gD,"parseHTTPDate");function ED(t){return qn(t,[JC,XC])}s(ED,"parseISODuration");var yD=Vn(Kn);function TD(t){return qn(t,[zC,yD])}s(TD,"parseISOTimeOnly");var SD=$n(jC,HC),AD=$n(Ey),_D=Vn(Kn,Ts,Ss);function OD(t){return qn(t,[SD,yy],[AD,_D])}s(OD,"parseSQL");var gE="Invalid Duration",Ty={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},ID={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:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...Ty},Ze=146097/400,kn=146097/4800,wD={years:{quarters:4,months:12,weeks:Ze/7,days:Ze,hours:Ze*24,minutes:Ze*24*60,seconds:Ze*24*60*60,milliseconds:Ze*24*60*60*1e3},quarters:{months:3,weeks:Ze/28,days:Ze/4,hours:Ze*24/4,minutes:Ze*24*60/4,seconds:Ze*24*60*60/4,milliseconds:Ze*24*60*60*1e3/4},months:{weeks:kn/7,days:kn,hours:kn*24,minutes:kn*24*60,seconds:kn*24*60*60,milliseconds:kn*24*60*60*1e3},...Ty},Zr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],RD=Zr.slice(0).reverse();function Gt(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 ye(n)}s(Gt,"clone$1");function Sy(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of RD.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(Sy,"durationToMillis");function EE(t,e){let r=Sy(t,e)<0?-1:1;Zr.reduceRight((n,i)=>{if(H(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),Zr.reduce((n,i)=>{if(H(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(EE,"normalizeValues");function yE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(yE,"removeZeroes");var ye=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?wD:ID;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||re.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:re.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(mr(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]=ED(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]=TD(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(se.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?$e.create(this.loc,n).formatDurationFromString(this,e):gE}toHuman(e={}){if(!this.isValid)return gE;let r=e.showZeros!==!1,n=Zr.map(i=>{let o=this.values[i];return H(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},ue.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?Sy(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 Zr)(Gn(r.values,i)||Gn(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Gt(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]=sy(e(this.values[n],n));return Gt(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 Gt(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 Gt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return EE(this.matrix,e),Gt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=yE(this.normalize().shiftToAll().toObject());return Gt(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 Zr)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;mr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else mr(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 EE(this.matrix,r),Gt(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 Gt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=yE(this.values);return Gt(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 Zr)if(!r(this.values[n],e.values[n]))return!1;return!0}},Mn="Invalid Interval";function CD(t,e){return!t||!t.isValid?tn.invalid("missing or invalid start"):!e||!e.isValid?tn.invalid("missing or invalid end"):e<t?tn.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(CD,"validateStartEnd");var tn=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(se.throwOnInvalid)throw new jl(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ds(e),i=ds(r),o=CD(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=ye.fromDurationLike(r),i=ds(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=ye.fromDurationLike(r),i=ds(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=ue.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=ue.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=ye.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=ye.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(ds).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=ye.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()})`:Mn}[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?$e.create(this.s.loc.clone(r),e).formatInterval(this):Mn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Mn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Mn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Mn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Mn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):ye.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},en=class{static{s(this,"Info")}static hasDST(e=se.defaultZone){let r=ue.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Vt.isValidZone(e)}static normalizeZone(e){return fr(e,se.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||re.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||re.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||re.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||re.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return re.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return re.create(r,null,"gregory").eras(e)}static features(){return{relative:ry(),localeWeek:ny()}}};function TE(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(ye.fromMillis(n).as("days"))}s(TE,"dayDiff");function DD(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=TE(c,l);return(d-d%7)/7}],["days",TE]],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(DD,"highOrderDiffs");function bD(t,e,r,n){let[i,o,a,u]=DD(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=ye.fromObject(o,n);return l.length>0?ye.fromMillis(c,n).shiftTo(...l).plus(d):d}s(bD,"diff");var xD="missing Intl.DateTimeFormat.formatToParts support";function Z(t,e=r=>r){return{regex:t,deser:s(([r])=>e(SC(r)),"deser")}}s(Z,"intUnit");var vD="\xA0",Ay=`[ ${vD}]`,_y=new RegExp(Ay,"g");function ND(t){return t.replace(/\./g,"\\.?").replace(_y,Ay)}s(ND,"fixListRegex");function SE(t){return t.replace(/\./g,"").replace(_y," ").toLowerCase()}s(SE,"stripInsensitivities");function ft(t,e){return t===null?null:{regex:RegExp(t.map(ND).join("|")),deser:s(([r])=>t.findIndex(n=>SE(r)===SE(n))+e,"deser")}}s(ft,"oneOf");function AE(t,e){return{regex:t,deser:s(([,r,n])=>ba(r,n),"deser"),groups:e}}s(AE,"offset");function ma(t){return{regex:t,deser:s(([e])=>e,"deser")}}s(ma,"simple");function PD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(PD,"escapeToken");function LD(t,e){let r=dt(e),n=dt(e,"{2}"),i=dt(e,"{3}"),o=dt(e,"{4}"),a=dt(e,"{6}"),u=dt(e,"{1,2}"),c=dt(e,"{1,3}"),l=dt(e,"{1,6}"),d=dt(e,"{1,9}"),f=dt(e,"{2,4}"),g=dt(e,"{4,6}"),m=s(p=>({regex:RegExp(PD(p.val)),deser:s(([T])=>T,"deser"),literal:!0}),"literal"),h=s(p=>{if(t.literal)return m(p);switch(p.val){case"G":return ft(e.eras("short"),0);case"GG":return ft(e.eras("long"),0);case"y":return Z(l);case"yy":return Z(f,ad);case"yyyy":return Z(o);case"yyyyy":return Z(g);case"yyyyyy":return Z(a);case"M":return Z(u);case"MM":return Z(n);case"MMM":return ft(e.months("short",!0),1);case"MMMM":return ft(e.months("long",!0),1);case"L":return Z(u);case"LL":return Z(n);case"LLL":return ft(e.months("short",!1),1);case"LLLL":return ft(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 ft(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 ft(e.weekdays("short",!1),1);case"EEEE":return ft(e.weekdays("long",!1),1);case"ccc":return ft(e.weekdays("short",!0),1);case"cccc":return ft(e.weekdays("long",!0),1);case"Z":case"ZZ":return AE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return AE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return ma(/[a-z_+-/]{1,256}?/i);case" ":return ma(/[^\S\n\r]/);default:return m(p)}},"unitate")(t)||{invalidReason:xD};return h.token=t,h}s(LD,"unitForToken");var UD={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 kD(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=UD[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(kD,"tokenForPart");function MD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(MD,"buildRegex");function FD(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if(Gn(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(FD,"match");function BD(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 H(t.z)||(r=Vt.create(t.z)),H(t.Z)||(r||(r=new Ke(t.Z)),n=t.Z),H(t.q)||(t.M=(t.q-1)*3+1),H(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),H(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(BD,"dateTimeFromMatches");var Gl=null;function WD(){return Gl||(Gl=ue.fromMillis(1555555555555)),Gl}s(WD,"getDummyDateTime");function GD(t,e){if(t.literal)return t;let r=$e.macroTokenToFormatOpts(t.val),n=wy(r,e);return n==null||n.includes(void 0)?t:n}s(GD,"maybeExpandMacroToken");function Oy(t,e){return Array.prototype.concat(...t.map(r=>GD(r,e)))}s(Oy,"expandMacroTokens");var Ra=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=Oy($e.parseFormat(r),e),this.units=this.tokens.map(n=>LD(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=MD(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=FD(e,this.regex,this.handlers),[i,o,a]=n?BD(n):[null,null,void 0];if(Gn(n,"a")&&Gn(n,"H"))throw new pr("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 Iy(t,e,r){return new Ra(t,r).explainFromTokens(e)}s(Iy,"explainFromTokens");function $D(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=Iy(t,e,r);return[n,i,o,a]}s($D,"parseFromTokens");function wy(t,e){if(!t)return null;let n=$e.create(e,t).dtFormatter(WD()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>kD(a,t,o))}s(wy,"formatOptsToTokens");var $l="Invalid DateTime",_E=864e13;function ps(t){return new Ve("unsupported zone",`the zone "${t.name}" is not supported`)}s(ps,"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 Xr(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new ue({...r,...e,old:r})}s(Xr,"clone");function Ry(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(Ry,"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 Ry(Da(t),e,r)}s(Ea,"objToTS");function OE(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=ye.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=Da(o),[c,l]=Ry(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(OE,"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=ue.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return ue.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?$e.create(re.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+=he(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=he(t.c.month),r==="month")return i;i+="-"}else if(i+=he(t.c.month),r==="month")return i;return i+=he(t.c.day),i}s(Kl,"toISODate");function IE(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+=he(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=he(t.c.minute),a==="minute")break;u&&(c+=":",c+=he(t.c.second))}else{if(c+=he(t.c.minute),a==="minute")break;u&&(c+=he(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=he(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=he(Math.trunc(-t.o/60)),c+=":",c+=he(Math.trunc(-t.o%60))):(c+="+",c+=he(Math.trunc(t.o/60)),c+=":",c+=he(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(IE,"toISOTime");var Cy={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},VD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},qD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ya=["year","month","day","hour","minute","second","millisecond"],KD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],QD=["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 wE(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(wE,"normalizeUnitWithLocalWeeks");function jD(t){if(ms===void 0&&(ms=se.now()),t.type!=="iana")return t.offset(ms);let e=t.name,r=ud.get(e);return r===void 0&&(r=t.offset(ms),ud.set(e,r)),r}s(jD,"guessOffsetForZone");function RE(t,e){let r=fr(e.zone,se.defaultZone);if(!r.isValid)return ue.invalid(ps(r));let n=re.fromObject(e),i,o;if(H(t.year))i=se.now();else{for(let c of ya)H(t[c])&&(t[c]=Cy[c]);let a=ey(t)||ty(t);if(a)return ue.invalid(a);let u=jD(r);[i,o]=Ea(t,u,r)}return new ue({ts:i,zone:r,loc:n,o})}s(RE,"quickDT");function CE(t,e,r){let n=H(r.round)?!0:r.round,i=H(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(CE,"diffRelative");function DE(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(DE,"lastOpts");var ms,ud=new Map,ue=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||se.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ve("invalid input"):null)||(r.isValid?null:ps(r));this.ts=H(e.ts)?se.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=mr(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||re.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]=DE(arguments),[n,i,o,a,u,c,l]=r;return RE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=DE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,RE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=wC(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=fr(r.zone,se.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:re.fromObject(r)}):t.invalid(ps(i))}static fromMillis(e,r={}){if(mr(e))return e<-_E||e>_E?t.invalid("Timestamp out of range"):new t({ts:e,zone:fr(r.zone,se.defaultZone),loc:re.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(mr(e))return new t({ts:e*1e3,zone:fr(r.zone,se.defaultZone),loc:re.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=fr(r.zone,se.defaultZone);if(!n.isValid)return t.invalid(ps(n));let i=re.fromObject(r),o=wa(e,wE),{minDaysInFirstWeek:a,startOfWeek:u}=dE(o,i),c=se.now(),l=H(r.specificOffset)?n.offset(c):r.specificOffset,d=!H(o.ordinal),f=!H(o.year),g=!H(o.month)||!H(o.day),m=f||g,y=o.weekYear||o.weekNumber;if((m||d)&&y)throw new pr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(g&&d)throw new pr("Can't mix ordinal dates with month/day");let h=y||o.weekday&&!m,p,T,A=ha(c,l);h?(p=KD,T=VD,A=Oa(A,a,u)):d?(p=QD,T=qD,A=Wl(A)):(p=ya,T=Cy);let _=!1;for(let G of p){let ee=o[G];H(ee)?_?o[G]=T[G]:o[G]=A[G]:_=!0}let I=h?_C(o,a,u):d?OC(o):ey(o),O=I||ty(o);if(O)return t.invalid(O);let C=h?cE(o,a,u):d?lE(o):o,[R,w]=Ea(C,l,n),b=new t({ts:R,zone:n,o:w,loc:i});return o.weekday&&m&&e.weekday!==b.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${b.toISO()}`):b.isValid?b:t.invalid(b.invalid)}static fromISO(e,r={}){let[n,i]=mD(e);return Fn(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=hD(e);return Fn(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=gD(e);return Fn(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(H(e)||H(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=$D(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]=OD(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(se.throwOnInvalid)throw new Ql(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=wy(e,re.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return Oy($e.parseFormat(e),re.fromObject(r)).map(i=>i.val).join("")}static resetCache(){ms=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?en.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?en.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?en.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?en.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=Da(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?[Xr(this,{ts:c}),Xr(this,{ts:l})]:[this]}get isInLeapYear(){return ys(this.year)}get daysInMonth(){return Ia(this.year,this.month)}get daysInYear(){return this.isValid?Bn(this.year):NaN}get weeksInWeekYear(){return this.isValid?Es(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Es(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=$e.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(se.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=fr(e,se.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 Xr(this,{ts:i,zone:e})}else return t.invalid(ps(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return Xr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=wa(e,wE),{minDaysInFirstWeek:n,startOfWeek:i}=dE(r,this.loc),o=!H(r.weekYear)||!H(r.weekNumber)||!H(r.weekday),a=!H(r.ordinal),u=!H(r.year),c=!H(r.month)||!H(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new pr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new pr("Can't mix ordinal dates with month/day");let f;o?f=cE({...Oa(this.c,n,i),...r},n,i):H(r.ordinal)?(f={...this.toObject(),...r},H(r.day)&&(f.day=Math.min(Ia(f.year,f.month),f.day))):f=lE({...Wl(this.c),...r});let[g,m]=Ea(f,this.o,this.zone);return Xr(this,{ts:g,o:m})}plus(e){if(!this.isValid)return this;let r=ye.fromDurationLike(e);return Xr(this,OE(this,r))}minus(e){if(!this.isValid)return this;let r=ye.fromDurationLike(e).negate();return Xr(this,OE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=ye.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?$e.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):$l}toLocaleString(e=Aa,r={}){return this.isValid?$e.create(this.loc.clone(r),e).formatDateTime(this):$l}toLocaleParts(e={}){return this.isValid?$e.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+=IE(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":"")+IE(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():$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 ye.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=RC(r).map(ye.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=bD(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?tn.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),CE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?CE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new _e("min requires all arguments be DateTimes");return fE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return fE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Iy(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=re.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Ra(o,e)}static fromFormatParser(e,r,n={}){if(H(e)||H(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=re.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 bE}static get DATE_MED_WITH_WEEKDAY(){return nC}static get DATE_FULL(){return xE}static get DATE_HUGE(){return vE}static get TIME_SIMPLE(){return NE}static get TIME_WITH_SECONDS(){return PE}static get TIME_WITH_SHORT_OFFSET(){return LE}static get TIME_WITH_LONG_OFFSET(){return UE}static get TIME_24_SIMPLE(){return kE}static get TIME_24_WITH_SECONDS(){return ME}static get TIME_24_WITH_SHORT_OFFSET(){return FE}static get TIME_24_WITH_LONG_OFFSET(){return BE}static get DATETIME_SHORT(){return WE}static get DATETIME_SHORT_WITH_SECONDS(){return GE}static get DATETIME_MED(){return $E}static get DATETIME_MED_WITH_SECONDS(){return VE}static get DATETIME_MED_WITH_WEEKDAY(){return iC}static get DATETIME_FULL(){return qE}static get DATETIME_FULL_WITH_SECONDS(){return KE}static get DATETIME_HUGE(){return QE}static get DATETIME_HUGE_WITH_SECONDS(){return jE}};function ds(t){if(ue.isDateTime(t))return t;if(t&&t.valueOf&&mr(t.valueOf()))return ue.fromJSDate(t);if(t&&typeof t=="object")return ue.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(ds,"friendlyDateTime");var HD="3.7.2";Qe.DateTime=ue;Qe.Duration=ye;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Vt;Qe.Info=en;Qe.Interval=tn;Qe.InvalidZone=_a;Qe.Settings=se;Qe.SystemZone=gs;Qe.VERSION=HD;Qe.Zone=hr});var xy=Q((VW,by)=>{"use strict";var rn=Dy();Y.prototype.addYear=function(){this._date=this._date.plus({years:1})};Y.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};Y.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};Y.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}))};Y.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}))};Y.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}))};Y.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};Y.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};Y.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};Y.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}))};Y.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}))};Y.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}))};Y.prototype.getDate=function(){return this._date.day};Y.prototype.getFullYear=function(){return this._date.year};Y.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};Y.prototype.getMonth=function(){return this._date.month-1};Y.prototype.getHours=function(){return this._date.hour};Y.prototype.getMinutes=function(){return this._date.minute};Y.prototype.getSeconds=function(){return this._date.second};Y.prototype.getMilliseconds=function(){return this._date.millisecond};Y.prototype.getTime=function(){return this._date.valueOf()};Y.prototype.getUTCDate=function(){return this._getUTC().day};Y.prototype.getUTCFullYear=function(){return this._getUTC().year};Y.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};Y.prototype.getUTCMonth=function(){return this._getUTC().month-1};Y.prototype.getUTCHours=function(){return this._getUTC().hour};Y.prototype.getUTCMinutes=function(){return this._getUTC().minute};Y.prototype.getUTCSeconds=function(){return this._getUTC().second};Y.prototype.toISOString=function(){return this._date.toUTC().toISO()};Y.prototype.toJSON=function(){return this._date.toJSON()};Y.prototype.setDate=function(t){this._date=this._date.set({day:t})};Y.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};Y.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};Y.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};Y.prototype.setHours=function(t){this._date=this._date.set({hour:t})};Y.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};Y.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};Y.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};Y.prototype._getUTC=function(){return this._date.toUTC()};Y.prototype.toString=function(){return this.toDate().toString()};Y.prototype.toDate=function(){return this._date.toJSDate()};Y.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};Y.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function Y(t,e){var r={zone:e};if(t?t instanceof Y?this._date=t._date:t instanceof Date?this._date=rn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=rn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=rn.DateTime.fromISO(t,r),this._date.isValid||(this._date=rn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=rn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=rn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=rn.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(Y,"CronDate");by.exports=Y});var Py=Q((KW,Ny)=>{"use strict";function nn(t){return{start:t,count:1}}s(nn,"buildRange");function vy(t,e){t.end=e,t.step=e-t.start,t.count=2}s(vy,"completeRangeWithItem");function Ed(t,e,r){e&&(e.count===2?(t.push(nn(e.start)),t.push(nn(e.end))):t.push(e)),r&&t.push(r)}s(Ed,"finalizeCurrentRange");function YD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Ed(e,r,nn(i)),r=void 0):r?r.count===1?vy(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(nn(r.start)),r=nn(r.end),vy(r,i)):(Ed(e,r),r=nn(i)):r=nn(i)}return Ed(e,r),e}s(YD,"compactField");Ny.exports=YD});var Uy=Q((jW,Ly)=>{"use strict";var zD=Py();function JD(t,e,r){var n=zD(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(g,m){var y=l.start+m;return(y-l.start)%l.step===0?y:null}).filter(function(g){return g!=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(JD,"stringifyField");Ly.exports=JD});var Fy=Q((YW,My)=>{"use strict";var sn=xy(),XD=Uy(),ky=1e4;function k(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new sn(e.currentDate,this._tz),this._startDate=e.startDate?new sn(e.startDate,this._tz):null,this._endDate=e.endDate?new sn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=k._freezeFields(t)}s(k,"CronExpression");k.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];k.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};k.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"]}];k.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];k.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}};k.parseDefaults=["0","*","*","*","*","*"];k.standardValidCharacters=/^[,*\d/-]+$/;k.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;k.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;k.validCharacters={second:k.standardValidCharacters,minute:k.standardValidCharacters,hour:k.standardValidCharacters,dayOfMonth:k.dayOfMonthValidCharacters,month:k.standardValidCharacters,dayOfWeek:k.dayOfWeekValidCharacters};k._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");k._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=k.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(!k.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(y){if(y instanceof Array)for(var h=0,p=y.length;h<p;h++){var T=y[h];if(k._isValidConstraintChar(n,T)){l.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);l.push(T)}else{if(k._isValidConstraintChar(n,y)){l.push(y);return}var A=+y;if(Number.isNaN(A)||A<n.min||A>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(A=A%7),l.push(A)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(y){return y.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var g=0,m=f.length;g<m;g++)d(a(f[g]));else d(a(c));return l.sort(k._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 g=+f[0],m=+f[1];if(Number.isNaN(g)||Number.isNaN(m)||g<n.min||m>n.max)throw new Error("Constraint error, got range "+g+"-"+m+" expected range "+n.min+"-"+n.max);if(g>m)throw new Error("Invalid range: "+c);var y=+l;if(Number.isNaN(y)||y<=0)throw new Error("Constraint error, cannot repeat at every "+y+" time.");e==="dayOfWeek"&&m%7===0&&d.push(0);for(var h=g,p=m;h<=p;h++){var T=d.indexOf(h)!==-1;!T&&y>0&&y%l===0?(y=1,d.push(h)):y++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");k._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)};k._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=k.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(k._sortCompareFn)}};k._freezeFields=function(t){for(var e=0,r=k.map.length;e<r;++e){var n=k.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};k.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)}};k.prototype._findSchedule=s(function(e){function r(T,A){for(var _=0,I=A.length;_<I;_++)if(A[_]>=T)return A[_]===T;return A[0]===T}s(r,"matchSchedule");function n(T,A){if(A<6){if(T.getDate()<8&&A===1)return!0;var _=T.getDate()%7?1:0,I=T.getDate()-T.getDate()%7,O=Math.floor(I/7)+_;return O===A}return!1}s(n,"isNthDayMatch");function i(T){return T.length>0&&T.some(function(A){return typeof A=="string"&&A.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new sn(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(T){return T.some(function(A){if(!i([A]))return!1;var _=Number.parseInt(A[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+A);return a.getDay()===_&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<ky;){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 g=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(g=g||a.isLastDayOfMonth());var m=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||f(this.fields.dayOfWeek));var y=this.fields.dayOfMonth.length>=k.daysInMonth[a.getMonth()],h=this.fields.dayOfWeek.length===k.constraints[5].max-k.constraints[5].min+1,p=a.getHours();if(!g&&(!m||h)){this._applyTimezoneShift(a,o,"Day");continue}if(!y&&h&&!g){this._applyTimezoneShift(a,o,"Day");continue}if(y&&!h&&!m){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(p,this.fields.hour)){if(this._dstEnd===p&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==p){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(p-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>=ky)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new sn(a,this._tz),this._hasIterated=!0,a},"_findSchedule");k.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");k.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");k.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}};k.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}};k.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");k.prototype.reset=s(function(e){this._currentDate=new sn(e||this._options.currentDate)},"reset");k.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=k.map.length;n<i;++n){var o=k.map[n],a=this.fields[o],u=k.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:k.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(XD(a,u.min,u.max))}return r.join(" ")},"stringify");k.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 sn(void 0,n._tz)),k.predefined[o]&&(o=k.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=k.map.length-c.length,d=0,f=k.map.length;d<f;++d){var g=k.map[d],m=c[c.length>f?d:d-l];if(d<l||!m)u.push(k._parseField(g,k.parseDefaults[d],k.constraints[d]));else{var y=g==="dayOfWeek"?A(m):m;u.push(k._parseField(g,y,k.constraints[d]))}}for(var h={},d=0,f=k.map.length;d<f;d++){var p=k.map[d];h[p]=u[d]}var T=k._handleMaxDaysInMonth(h);return h.dayOfMonth=T||h.dayOfMonth,new k(h,a);function A(_){var I=_.split("#");if(I.length>1){var O=+I[I.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(I.length>2||Number.isNaN(O)||O<1||O>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=O,I[0]}return _}s(A,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");k.fieldsToExpression=s(function(e,r){function n(g,m,y){if(!m)throw new Error("Validation error, Field "+g+" is missing");if(m.length===0)throw new Error("Validation error, Field "+g+" contains no values");for(var h=0,p=m.length;h<p;h++){var T=m[h];if(!k._isValidConstraintChar(y,T)&&(typeof T!="number"||Number.isNaN(T)||T<y.min||T>y.max))throw new Error("Constraint error, got value "+T+" expected range "+y.min+"-"+y.max)}}s(n,"validateConstraints");for(var i={},o=0,a=k.map.length;o<a;++o){var u=k.map[o],c=e[u];n(u,c,k.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(k._sortCompareFn).filter(function(g,m,y){return!m||g!==y[m-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=k._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new k(i,r||{})},"fieldsToExpression");My.exports=k});var Wy=Q((JW,By)=>{"use strict";var va=Fy();function gr(){}s(gr,"CronParser");gr._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");gr.parseExpression=s(function(e,r){return va.parse(e,r)},"parseExpression");gr.fieldsToExpression=s(function(e,r){return va.fieldsToExpression(e,r)},"fieldsToExpression");gr.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=gr._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");gr.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,gr.parseString(i.toString()))})},"parseFile");By.exports=gr});var uF={};P(uF,{APIWarning:()=>In,ActiveContentFileError:()=>qu,AutomationViewMode:()=>Wa,BUDIBASE_DATASOURCE_TYPE:()=>Yd,BadRequestError:()=>mo,BudibaseError:()=>po,Config:()=>tf,Cookie:()=>yr,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Zd,DEFAULT_EXPENSES_TABLE_ID:()=>Xd,DEFAULT_INVENTORY_TABLE_ID:()=>Jd,DEFAULT_JOBS_TABLE_ID:()=>zd,DEFAULT_TENANT_ID:()=>ce,DeprecatedViews:()=>jn,DesignDocuments:()=>Cs,DocumentType:()=>ae,Duration:()=>me,EmailUnavailableError:()=>er,Endpoint:()=>Wc,EndpointGroup:()=>wn,EndpointGroupList:()=>Bo,FeatureDisabledError:()=>ju,FeatureDisabledWarning:()=>Dc,ForbiddenError:()=>Ku,GlobalRole:()=>ef,HTTPError:()=>Fe,Header:()=>Ne,InternalTable:()=>It,InvalidAPIKeyWarning:()=>wi,MAX_VALID_DATE:()=>Va,MIN_VALID_DATE:()=>oT,NotFoundError:()=>Vu,NotImplementedError:()=>Qu,RedisClient:()=>Re,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Hd,StaticDatabases:()=>pe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>Rs,UnexpectedError:()=>$u,UsageLimitError:()=>Hu,UsageLimitWarning:()=>Cc,UserStatus:()=>$a,ViewName:()=>Kt,WORKSPACE_DEV:()=>Ga,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt,accounts:()=>Sn,auth:()=>jm,blacklist:()=>fp,cache:()=>Co,configs:()=>tr,constants:()=>rf,context:()=>le,csv:()=>uh,db:()=>Ir,docIds:()=>jf,docUpdates:()=>Xm,encryption:()=>Bm,env:()=>E,errors:()=>zu,events:()=>Ti,features:()=>Lm,getErrorMessage:()=>BA,getPublicError:()=>Yu,init:()=>aF,installation:()=>tc,locks:()=>yn,logging:()=>io,middleware:()=>Qm,objectStore:()=>Dp,permissions:()=>vm,platform:()=>fo,plugins:()=>Ym,queue:()=>Lp,redis:()=>zm,roles:()=>xm,security:()=>jp,sessions:()=>Ju,setEnv:()=>bs,sql:()=>ah,tenancy:()=>oF,timers:()=>Cu,userUtils:()=>um,users:()=>Ai,utils:()=>ai,warnings:()=>Wm,withEnv:()=>dT});module.exports=BO(uF);var tr={};P(tr,{analyticsEnabled:()=>Xu,generateConfigID:()=>No,getConfig:()=>Ge,getDefaultGoogleConfig:()=>Em,getGoogleConfig:()=>pc,getGoogleDatasourceConfig:()=>Tm,getOIDCConfig:()=>mk,getOIDCConfigById:()=>Sm,getOIDCLogosDoc:()=>fk,getPlatformUrl:()=>Po,getRecaptchaConfig:()=>Ek,getSCIMConfig:()=>gk,getSMTPConfig:()=>hk,getSMTPConfigDoc:()=>P_,getSettingsConfig:()=>ym,getSettingsConfigDoc:()=>_i,getTranslationsConfig:()=>lk,getTranslationsConfigDoc:()=>N_,save:()=>ck});var WO=["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"],GO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],dh=[...WO,...GO],fh={"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 "{{ name }}" created',"ai:config:updated":'AI configuration "{{ name }}" updated',"ai:config:deleted":'AI configuration "{{ name }}" deleted',"ai:agent:created":'AI agent "{{ name }}" created',"ai:agent:updated":'AI agent "{{ name }}" updated',"ai:agent:deleted":'AI agent "{{ name }}" deleted',"rag:file:uploaded":void 0,"rag:file:deleted":void 0,"rag:file:sharepoint:connected":void 0,"rag:file:sharepoint:disconnected":void 0,"rag:file:sharepoint:sync":void 0,"rag:file:processed":void 0,"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:automation_step:failed":void 0,"action:crud:executed":void 0,"action:crud:failed":void 0,"action:ai_agent:executed":void 0,"action:ai_agent:failed":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 Gc=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Gc||{}),$c=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.SENSITIVE_LONGFORM="sensitiveLongForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))($c||{}),Go=(T=>(T.AIRTABLE="AIRTABLE",T.ARANGODB="ARANGODB",T.BUDIBASE="BUDIBASE",T.COUCHDB="COUCHDB",T.DYNAMODB="DYNAMODB",T.ELASTICSEARCH="ELASTICSEARCH",T.FIRESTORE="FIRESTORE",T.GOOGLE_SHEETS="GOOGLE_SHEETS",T.MONGODB="MONGODB",T.MYSQL="MYSQL",T.ORACLE="ORACLE",T.POSTGRES="POSTGRES",T.REDIS="REDIS",T.REST="REST",T.S3="S3",T.SNOWFLAKE="SNOWFLAKE",T.SQL_SERVER="SQL_SERVER",T))(Go||{});var Vc=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(Vc||{});var $O=W(require("lodash/isPlainObject"));var Gr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Gr||{}),cr=(o=>(o.CONTAINS="contains",o.NOT_CONTAINS="notContains",o.CONTAINS_ANY="containsAny",o.ONE_OF="oneOf",o.NOT_ONE_OF="notOneOf",o))(cr||{}),Cn=(e=>(e.RANGE="range",e))(Cn||{}),xi=(r=>(r.AND="$and",r.OR="$or",r))(xi||{});function $o(t){return Object.values(xi).includes(t)}s($o,"isLogicalSearchOperator");function ph(t){return Object.values(Gr).includes(t)}s(ph,"isBasicSearchOperator");function mh(t){return Object.values(cr).includes(t)}s(mh,"isArraySearchOperator");function Vo(t){return Object.values(Cn).includes(t)}s(Vo,"isRangeSearchOperator");var hh=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var vi=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(vi||{});var Ni=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ni||{});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 D="_",ve="\uFFF0",Ot=s(t=>`${t}_`,"prefixed"),ae=($=>($.USER="us",$.GROUP="gr",$.CONFIG="config",$.TEMPLATE="template",$.WORKSPACE="app",$.DEV="dev",$.WORKSPACE_DEV="app_dev",$.WORKSPACE_METADATA="app_metadata",$.ROLE="role",$.DEV_INFO="devinfo",$.AUTOMATION_LOG="log_au",$.ACCOUNT_METADATA="acc_metadata",$.PLUGIN="plg",$.DATASOURCE="datasource",$.DATASOURCE_PLUS="datasource_plus",$.WORKSPACE_BACKUP="backup",$.TABLE="ta",$.ROW="ro",$.AUTOMATION="au",$.LINK="li",$.WEBHOOK="wh",$.INSTANCE="inst",$.LAYOUT="layout",$.SCREEN="screen",$.QUERY="query",$.DEPLOYMENTS="deployments",$.METADATA="metadata",$.MEM_VIEW="view",$.USER_FLAG="flag",$.AUTOMATION_METADATA="meta_au",$.AUDIT_LOG="al",$.SCIM_LOG="scimlog",$.ROW_ACTIONS="ra",$.OAUTH2_CONFIG="oauth2",$.OAUTH2_CONFIG_LOG="oauth2log",$.AGENT="agent",$.CHAT_APP="chatapp",$.CHAT_CONVERSATION="chatconvo",$.CHAT_IDENTITY_LINK="chatidentitylink",$.AGENT_TOOL_SOURCE="agenttoolsource",$.AGENT_FILE="agentfile",$.AGENT_LOG_SESSION="agentlogsession",$.AGENT_LOG_REQUEST="agentlogrequest",$.AGENT_REQUEST="agentrequest",$.AGENT_TEST_SUITE="agenttestsuite",$.AGENT_TEST_RUN="agenttestrun",$.AGENT_KNOWLEDGE_SOURCE_SYNC_STATE="agentknowledgesync",$.AGENT_KNOWLEDGE_SOURCE_CONNECTION="agentknowledgeconn",$.KNOWLEDGE_BASE_FILE="knowledgebasefile",$.AI_CONFIG="aiconfig",$.LITELLM_KEY="litellmkey",$.KNOWLEDGE_BASE="knowledgebase",$.WORKSPACE_APP="workspace_app",$.WORKSPACE_FAVOURITE="workspace_favourite",$.PROJECT="project",$.AUTO_COLUMN_STATE="autocolumn_state",$.ESCALATION_CONTEXT="escalation_context",$.ESCALATION_NOTIFICATION="escalation_notification",$))(ae||{});var It=(e=>(e.USER_METADATA="ta_users",e))(It||{});function jo(t){return!!t.providerType}s(jo,"isSSOUser");var qc=(f=>(f.OBJECT="object",f.STRING="string",f.BOOLEAN="boolean",f.NUMBER="number",f.ARRAY="array",f.JSON="json",f.DATE="date",f.DATETIME="datetime",f.ATTACHMENT="attachment",f.LONGFORM="longform",f.JS="javascript",f))(qc||{}),Kc=(C=>(C.TABLE="table",C.ROW="row",C.ROWS="rows",C.WIDE="wide",C.QUERY="query",C.QUERY_PARAMS="queryParams",C.QUERY_LIMIT="queryLimit",C.LOOP_OPTION="loopOption",C.ITEM="item",C.CODE="code",C.FILTERS="filters",C.COLUMN="column",C.TRIGGER_SCHEMA="triggerSchema",C.CRON="cron",C.WEBHOOK_URL="webhookUrl",C.AUTOMATION="automation",C.AUTOMATION_FIELDS="automationFields",C.MULTI_ATTACHMENTS="multi_attachments",C.TRIGGER_FILTER="trigger_filter",C.CATEGORIES="categories",C.AGENT="agent",C.OUTPUT_SCHEMA="outputSchema",C))(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=(B=>(B.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",B.CREATE_ROW="CREATE_ROW",B.GET_ROW="GET_ROW",B.UPDATE_ROW="UPDATE_ROW",B.DELETE_ROW="DELETE_ROW",B.QUERY_ROWS="QUERY_ROWS",B.EXECUTE_BASH="EXECUTE_BASH",B.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",B.EXECUTE_SCRIPT="EXECUTE_SCRIPT",B.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",B.EXECUTE_QUERY="EXECUTE_QUERY",B.SERVER_LOG="SERVER_LOG",B.DELAY="DELAY",B.FILTER="FILTER",B.API_REQUEST="API_REQUEST",B.LOOP="LOOP",B.COLLECT="COLLECT",B.OPENAI="OPENAI",B.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",B.BRANCH="BRANCH",B.CLASSIFY_CONTENT="CLASSIFY_CONTENT",B.PROMPT_LLM="PROMPT_LLM",B.TRANSLATE="TRANSLATE",B.SUMMARISE="SUMMARISE",B.GENERATE_TEXT="GENERATE_TEXT",B.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",B.EXTRACT_STATE="EXTRACT_STATE",B.LOOP_V2="LOOP_V2",B.AGENT="AGENT",B.ESCALATION="ESCALATION",B.discord="discord",B.slack="slack",B.zapier="zapier",B.integromat="integromat",B.n8n="n8n",B))(jc||{}),gh=[...Object.values(jc),...Object.values(Qc)];function Eh(t){return t.stepId==="BRANCH"}s(Eh,"isBranchStep");var Hc="bb_internal";var yh=["attachment_single","attachment","signature_single","bb_reference","json","array"];var rf={};P(rf,{AutomationViewMode:()=>Wa,BUDIBASE_DATASOURCE_TYPE:()=>Yd,Config:()=>tf,Cookie:()=>yr,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Zd,DEFAULT_EXPENSES_TABLE_ID:()=>Xd,DEFAULT_INVENTORY_TABLE_ID:()=>Jd,DEFAULT_JOBS_TABLE_ID:()=>zd,DEFAULT_TENANT_ID:()=>ce,DeprecatedViews:()=>jn,DesignDocuments:()=>Cs,DocumentType:()=>ae,GlobalRole:()=>ef,Header:()=>Ne,InternalTable:()=>It,MAX_VALID_DATE:()=>Va,MIN_VALID_DATE:()=>oT,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Hd,StaticDatabases:()=>pe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>Rs,UserStatus:()=>$a,ViewName:()=>Kt,WORKSPACE_DEV:()=>Ga,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt});var Ne=(I=>(I.API_KEY="x-budibase-api-key",I.LICENSE_KEY="x-budibase-license-key",I.API_VER="x-budibase-api-version",I.APP_ID="x-budibase-app-id",I.SESSION_ID="x-budibase-session-id",I.CLIENT="x-budibase-client",I.TYPE="x-budibase-type",I.PREVIEW_ROLE="x-budibase-role",I.TENANT_ID="x-budibase-tenant-id",I.VERIFICATION_CODE="x-budibase-verification-code",I.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",I.RESET_PASSWORD_CODE="x-budibase-reset-password-code",I.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",I.TOKEN="x-budibase-token",I.CSRF_TOKEN="x-csrf-token",I.CORRELATION_ID="x-budibase-correlation-id",I.AUTHORIZATION="authorization",I.MIGRATING_APP="x-budibase-migrating-app",I.SKIP_MIGRATING_WAIT="x-budibase-migrating-app-skip-wait",I.COOKIE="cookie",I))(Ne||{});var Dn={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Pi={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var Pe={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"},NotIn:{value:"notOneOf",label:"Is not in"},ContainsAny:{value:"containsAny",label:"Has any"}},Th={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 Er={};P(Er,{ColumnSplitter:()=>Ud,NoEmptyFilterStrings:()=>eT,buildQuery:()=>tT,cleanupQuery:()=>Fd,fixupFilterArrays:()=>Wd,getKeyNumbering:()=>Bd,getValidOperatorsForType:()=>bb,hasFilters:()=>kd,limit:()=>nT,recurseLogicalOperators:()=>Md,removeKeyNumbering:()=>Ho,runQuery:()=>ka,search:()=>Nb,sort:()=>rT,splitFiltersArray:()=>Yo});var Qn=W(Sh());var wt={};P(wt,{filterValueToLabel:()=>HO,hasSchema:()=>YO,isSupportedUserSearch:()=>Oh,nameToUrl:()=>eI,parallelForeach:()=>jO,processSearchFilters:()=>Jc,toMap:()=>JO,trimOtherProps:()=>zO,unreachable:()=>QO});var _h=W(require("lodash/pick"));var KO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function QO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(QO,"unreachable");async function jO(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(jO,"parallelForeach");function HO(){return Object.keys(Pe).reduce((t,e)=>{let n=Pe[e];return t[n.value]=n.label,t},{})}s(HO,"filterValueToLabel");function YO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(YO,"hasSchema");function zO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(zO,"trimOtherProps");function Oh(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($o(o)){for(let l of t[o].conditions)if(!Oh(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(Oh,"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,_h.default)(i,KO);return o.field=Ho(o.field),o})}]}}s(Jc,"processSearchFilters");function JO(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(JO,"toMap");var XO=s(t=>t?t.trim():null,"resolveWorkspaceName"),ZO=s(t=>{let e,r=XO(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),eI=s(t=>{let e=ZO(t);return tI(e)},"nameToUrl"),tI=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var Ue={};P(Ue,{accountPortalAccountUrl:()=>wd,accountPortalBillingUrl:()=>Rd,accountPortalUpgradeUrl:()=>Cd,agentChatUrl:()=>Pd,appAgentUrl:()=>La,appChatUrl:()=>Pa,applyBaseUrl:()=>jy,builderAppsUrl:()=>Nd,builderSettingsAuthUrl:()=>xd,builderSettingsEmailUrl:()=>bd,builderSettingsPeopleUsersUrl:()=>vd,builderWorkspacesUrl:()=>Dd,cancelableTimeout:()=>Ih,cron:()=>wb,deepGet:()=>Xc,duplicateName:()=>Tb,escapeHtml:()=>oI,formatBytes:()=>Ib,getNextPreviewDevice:()=>gb,getPreviewDeviceIcon:()=>Eb,getPreviewModalDevice:()=>yb,getSequentialName:()=>Sb,getUserColor:()=>nI,getUserInitials:()=>rI,getUserLabel:()=>iI,isEnvironmentVariableKey:()=>Jy,isGoogleSheets:()=>uI,isSQL:()=>cI,lists:()=>Od,normaliseSafeCssColor:()=>dI,normalizeForComparison:()=>aI,retry:()=>lI,roles:()=>_d,schema:()=>As,structuredOutput:()=>Td,urlHelpers:()=>zy,views:()=>Ad,wait:()=>Zc,withTimeout:()=>sI});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"),rI=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"),nI=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"),iI=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function Ih(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(Ih,"cancelableTimeout");async function sI(t,e){let[r,n]=Ih(t),i=await Promise.race([e(),r]);return n(),i}s(sI,"withTimeout");var oI=s(t=>t==null?"":String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),"escapeHtml"),aI=s(t=>t.toLowerCase().trim(),"normalizeForComparison");function uI(t){return t==="GOOGLE_SHEETS"}s(uI,"isGoogleSheets");function cI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(cI,"isSQL");async function Zc(t){return new Promise(e=>setTimeout(e,t))}s(Zc,"wait");async function lI(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(lI,"retry");var dI=s(t=>{if(t==null||t.trim()==="")return;let e=t.trim();if(e.includes(";")||/\burl\s*\(/i.test(e))throw new Error("Color is invalid.");return e},"normaliseSafeCssColor");var $y=W(Rt()),Vy=W(Wy());var Gy="(Input cron: ",ZD={"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 eb(t,e){return new Intl.DateTimeFormat("en-GB",{weekday:"short",day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:e}).format(t)}s(eb,"formatExecutionDate");function tb(t){let e=[];for(let r of t){r.includes(Gy)&&(r=r.split(Gy)[0].trim());for(let[n,i]of Object.entries(ZD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(tb,"improveErrors");function qy(t,e=4,r){let n=Vy.default.parseExpression(t,r?{tz:r}:void 0),i=[];for(let o=0;o<e;o++)i.push(eb(n.next().toDate(),r));return i}s(qy,"getNextExecutionDates");function Ky(t){let e=(0,$y.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:tb(e.getError())}}s(Ky,"validate");var As={};P(As,{decodeNonAscii:()=>yd,encodeNonAscii:()=>ib,isDeprecatedSingleUserColumn:()=>rb,isNumeric:()=>sb,isRequired:()=>nb});function rb(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(rb,"isDeprecatedSingleUserColumn");function nb(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(nb,"isRequired");function ib(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(ib,"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 sb(t){return t.type==="number"||t.type==="bigint"}s(sb,"isNumeric");var Td={};P(Td,{normalizeSchemaForStructuredOutput:()=>ob});function ob(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 g=f;if(g.required===!0){a.push(d);let{required:m,...y}=g;u[d]=e(y)}else u[d]=e(g)}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(ob,"normalizeSchemaForStructuredOutput");var Ad={};P(Ad,{basicFields:()=>db,calculationFields:()=>lb,hasCalculationFields:()=>cb,isBasicViewField:()=>ab,isCalculationField:()=>_s,isCalculationView:()=>ub,isV2:()=>fb,isVisible:()=>Qy});var Sd=W(require("lodash/pickBy"));function _s(t){return"calculationType"in t}s(_s,"isCalculationField");function ab(t){return!_s(t)}s(ab,"isBasicViewField");function ub(t){return t.type==="calculation"}s(ub,"isCalculationView");function cb(t){return Object.values(t.schema||{}).some(_s)}s(cb,"hasCalculationFields");function lb(t){return(0,Sd.default)(t.schema||{},_s)}s(lb,"calculationFields");function Qy(t){return t.visible!==!1}s(Qy,"isVisible");function db(t,e){let{visible:r=!0}=e||{};return(0,Sd.default)(t.schema||{},n=>!_s(n)&&(!r||Qy(n)))}s(db,"basicFields");function fb(t){return t.version===2}s(fb,"isV2");var _d={};P(_d,{checkForRoleInheritanceLoops:()=>mb});function pb(t){return`role${"_"}${t}`}s(pb,"prefixForCheck");function mb(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=pb(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(mb,"checkForRoleInheritanceLoops");var Od={};P(Od,{punctuateList:()=>hb});function hb(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(hb,"punctuateList");var Id=["desktop","tablet","mobile"],gb=s(t=>{let e=Id.indexOf(t||"desktop"),n=((e===-1?0:e)+1)%Id.length;return Id[n]},"getNextPreviewDevice"),Eb=s(t=>t==="mobile"?"device-mobile-camera":t==="tablet"?"device-tablet-camera":"monitor","getPreviewDeviceIcon"),yb=s(t=>t&&t!=="desktop"?t:null,"getPreviewModalDevice");var Tb=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"),Sb=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 Ab=/{?{{([^{].*?)}}}?/g;function jy(t,e){if(!e)return t;let r=t.match(Ab)??[],n=[],i=t;for(let l of r){let d=`:${l}`;i.includes(d)&&(n.push(l),i=i.replace(d,":0"))}let o=s(l=>`__hbs${l}__`,"placeholder"),a=r.filter(l=>!n.includes(l));i=a.reduce((l,d,f)=>l.replace(d,o(f)),i);let u=s(l=>a.reduce((d,f,g)=>d.replace(o(g),f),l),"restore"),c=e.replace(/\/$/,"");try{let l=new URL(i),d=l.pathname==="/"?"":l.pathname;return c+u(d+l.search+l.hash)}catch{let l=u(i);return l.startsWith("/")?c+l:c}}s(jy,"applyBaseUrl");var Hy=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),_b=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),qt=s((t,e)=>{let r=Hy(e);if(!t)return r;let n=_b(t);return r?`${n}${r}`:n},"joinBaseAndPath"),Ob=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),Yy=s(t=>Ob(Hy(t)),"normalizeAppUrl"),wd=s(t=>qt(t,Pi.ACCOUNT),"accountPortalAccountUrl"),Rd=s((t,e)=>{let r=typeof e=="string"||e==null?{tenantId:e}:e,n=qt(t,Pi.BILLING),i=new URLSearchParams;r?.tenantId&&i.set("tenantId",r.tenantId),r?.purchasePrepaidAiCredits&&i.set("purchasePrepaidAiCredits","1");let o=i.toString();return o?`${n}?${o}`:n},"accountPortalBillingUrl"),Cd=s((t,e)=>{if(e){let r=qt(t,Pi.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return qt(t,Pi.UPGRADE)},"accountPortalUpgradeUrl"),Dd=s(t=>qt(t,Dn.WORKSPACES),"builderWorkspacesUrl"),bd=s(t=>qt(t,Dn.SETTINGS_EMAIL),"builderSettingsEmailUrl"),xd=s(t=>qt(t,Dn.SETTINGS_AUTH),"builderSettingsAuthUrl"),vd=s(t=>qt(t,Dn.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Nd=s(t=>qt(t,Dn.APPS),"builderAppsUrl"),Pa=s(t=>`/app-chat${Yy(t)}`,"appChatUrl"),La=s((t,e)=>`${Yy(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),Pd=s((t,e)=>Pa(La(t,e)),"agentChatUrl"),zy={accountPortalAccountUrl:wd,accountPortalBillingUrl:Rd,accountPortalUpgradeUrl:Cd,builderWorkspacesUrl:Dd,builderSettingsEmailUrl:bd,builderSettingsAuthUrl:xd,builderSettingsPeopleUsersUrl:vd,builderAppsUrl:Nd,appChatUrl:Pa,appAgentUrl:La,agentChatUrl:Pd};function Ib(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(Ib,"formatBytes");function Jy(t){return/^{{\s*env\.([^\s]+)\s*}}$/.test(String(t))}s(Jy,"isEnvironmentVariableKey");var wb={getNextExecutionDates:qy,validate:Ky};var Ua=W(require("lodash/isPlainObject")),Ld=W(require("lodash/isEmpty"));var Cb=/{{([^{].*?)}}/g,Zy=Object.values(xi),Db=[...Object.values(Gr),...Object.values(cr),...Object.values(Cn)],bb=s((t,e,r)=>{let n=Pe,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In,n.NotIn],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,n.NotIn]: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"||As.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]: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,n.NotIn]),u},"getValidOperatorsForType"),eT=[Pe.StartsWith.value,Pe.Like.value,Pe.Equals.value,Pe.NotEquals.value,Pe.Contains.value,Pe.NotContains.value,Pe.ContainsAny.value,Pe.In.value,Pe.NotIn.value];function Md(t,e){for(let r of Zy)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Md,"recurseLogicalOperators");var Fd=s(t=>{for(let e of eT)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===""||xb(o))&&delete t[e][i]}return t=Md(t,Fd),t},"cleanupQuery");function xb(t){return Array.isArray(t)&&t.length===0}s(xb,"isEmptyArray");var Ho=s(t=>Bd(t).key,"removeKeyNumbering"),Bd=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}=Bd(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 vb(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(Cb)||[]).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"||r==="notOneOf"?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=Th[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(ph(r)||mh(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(vb,"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 tT(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=Xy(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=tT(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=Xy(n.logicalOperator)),{[u]:{conditions:a.map(vb).filter(c=>c)}}})},e}s(tT,"buildQuery");function Xy(t){return t==="all"?"$and":"$or"}s(Xy,"logicalOperatorFromUI");function Wd(t){if(!t)return t;for(let e of Object.values(cr)){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 Md(t,Wd),t}s(Wd,"fixupFilterArrays");function Nb(t,e){let r=ka(t,e.query);e.sort&&(r=rT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=nT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(Nb,"search");function ka(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Fd(e),e=Wd(e),!kd(e)&&e.onEmptyFilter==="none")return[];let r=s((R,w)=>b=>{for(let[G,ee]of Object.entries(e[R]||{})){let M=$o(R)?b:Xc(b,Ho(G)),U=w(M,ee);if(e.allOr&&U)return!0;if(!e.allOr&&!U)return!1}return!e.allOr},"match"),n=r("string",(R,w)=>typeof R!="string"||typeof w!="string"?!1:R.toLowerCase().startsWith(w.toLowerCase())),i=r("fuzzy",(R,w)=>typeof R!="string"||typeof w!="string"?!1:R.toLowerCase().includes(w.toLowerCase())),o=r("range",(R,w)=>{if(R==null||R===""||((0,Ua.default)(w.low)&&(0,Ld.default)(w.low)&&(w.low=void 0),(0,Ua.default)(w.high)&&(0,Ld.default)(w.high)&&(w.high=void 0),w.low==null&&w.high==null))return!1;let b=+R;if(!isNaN(b)){let ee=+w.low,M=+w.high;if(!isNaN(ee)&&!isNaN(M))return b>=ee&&b<=M;if(isNaN(ee)){if(!isNaN(M))return b<=M}else return b>=ee}let G=(0,Qn.default)(R);if(G.isValid()){let ee=(0,Qn.default)(w.low||"0000-00-00T00:00:00.000Z"),M=(0,Qn.default)(w.high||"9999-00-00T00:00:00.000Z");if(ee.isValid()&&M.isValid())return G.isAfter(ee)&&G.isBefore(M)||G.isSame(ee)||G.isSame(M);if(ee.isValid())return G.isAfter(ee)||G.isSame(ee);if(M.isValid())return G.isBefore(M)||G.isSame(M)}return w.low!=null&&w.high!=null?R>=w.low&&R<=w.high:w.low!=null?R>=w.low:w.high!=null?R<=w.high:!1}),a=s((R,w)=>{if(Array.isArray(R)){for(let G of R)if(a(G,w))return!0;return!1}if(R&&typeof R=="object"&&typeof w=="string")return R._id===w;if(R===w)return!0;if(R==null&&w!=null||R!=null&&w==null)return!1;let b=(0,Qn.default)(R);if(b.isValid()){let G=(0,Qn.default)(w);if(G.isValid())return b.isSame(G)}return!1},"_valueMatches"),u=s(R=>(...w)=>!R(...w),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(R=>typeof R=="string"?R==="":Array.isArray(R)?R.length===0:R&&typeof R=="object"?Object.keys(R).length===0:R==null,"_empty"),f=r("empty",d),g=r("notEmpty",u(d)),m=s((R,w)=>(typeof w=="string"&&(w=w.split(",")),typeof R=="number"&&(w=w.map(b=>parseFloat(b))),Array.isArray(w)?w.some(b=>a(R,b)):!1),"_oneOf"),y=r("oneOf",m),h=r("notOneOf",u(m)),p=s(R=>(w,b)=>!Array.isArray(w)||(typeof b=="string"&&(b=b.split(","),typeof w[0]=="number"&&(b=b.map(G=>parseFloat(G)))),!Array.isArray(b))?!1:b.length===0?!0:b[R](G=>a(w,G)),"_contains"),T=r("contains",(R,w)=>Array.isArray(w)&&w.length===0?!0:p("every")(R,w)),A=r("notContains",(R,w)=>Array.isArray(w)&&w.length===0?!0:u(p("every"))(R,w)),_=r("containsAny",p("some")),I=r("$and",(R,w)=>{if(!w.length)return!1;for(let b of w)if(!ka([R],b).length)return!1;return!0}),O=r("$or",(R,w)=>{if(!w.length)return!1;for(let b of w)if(ka([R],{...b,allOr:!0}).length)return!0;return!1}),C=s(R=>{let w={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:g,oneOf:y,notOneOf:h,contains:T,containsAny:_,notContains:A,$and:I,$or:O},b=Object.entries(e||{}).filter(([G,ee])=>!["allOr","onEmptyFilter"].includes(G)&&ee&&Object.keys(ee).length>0).map(([G])=>w[G]?.(R)??!1);return kd(e)?e.allOr?b.some(G=>G===!0):b.every(G=>G===!0):!0},"docMatch");return t.filter(C)}s(ka,"runQuery");function rT(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(rT,"sort");function nT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(nT,"limit");var kd=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of Zy)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of Db){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 ke={};P(ke,{applications:()=>$d,automations:()=>Vd,screens:()=>jd,users:()=>Qd});var $d={};P($d,{getDevAppID:()=>Pb,getProdAppID:()=>Is});var Gd=Ot("app"),Os=Ot("app_dev");function Pb(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Os))return t;let e=t.split(Gd);e.shift();let r=e.join(Gd);return`${Os}${r}`}s(Pb,"getDevAppID");function Is(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Os))return t;let e=t.split(Os);e.shift();let r=e.join(Os);return`${Gd}${r}`}s(Is,"getProdAppID");var Vd={};P(Vd,{checkForCollectStep:()=>Mb,isAppAction:()=>kb,isRowAction:()=>Lb,isWebhookAction:()=>Ub});function Lb(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(Lb,"isRowAction");function Ub(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(Ub,"isWebhookAction");function kb(t){return t.definition.trigger?.stepId==="APP"}s(kb,"isAppAction");function iT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Eh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(iT(r))return!0}}return!1}s(iT,"hasCollectBlockRecursive");function Mb(t){return iT(t.definition.steps)}s(Mb,"checkForCollectStep");var Qd={};P(Qd,{canCreateApps:()=>Fb,containsUserID:()=>Qb,getGlobalUserID:()=>Kb,getUserAppGroups:()=>jb,hasAdminPermissions:()=>Kd,hasAppBuilderPermissions:()=>Fa,hasBuilderPermissions:()=>Vb,hasCreatorPermissions:()=>Ba,isAdmin:()=>ws,isAdminOrBuilder:()=>Wb,isAdminOrGlobalBuilder:()=>Gb,isAdminOrWorkspaceBuilder:()=>Bb,isBuilder:()=>qd,isCreator:()=>qb,isGlobalBuilder:()=>Ma,userAppAccessList:()=>Hb});function qd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Is(e))):!1}s(qd,"isBuilder");function Ma(t){return qd(t)&&!Fa(t)||ws(t)}s(Ma,"isGlobalBuilder");function Fb(t){return Ma(t)||Ba(t)}s(Fb,"canCreateApps");function ws(t){return t?Kd(t):!1}s(ws,"isAdmin");function Bb(t,e){return t?!!(ws(t)||e&&t.builder?.apps?.includes(Is(e))):!1}s(Bb,"isAdminOrWorkspaceBuilder");function Wb(t,e){return qd(t,e)||ws(t)}s(Wb,"isAdminOrBuilder");function Gb(t){return Ma(t)||ws(t)}s(Gb,"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 $b(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s($b,"hasAppCreatorPermissions");function Vb(t){return t?t.builder?.global||Fa(t)||Ba(t):!1}s(Vb,"hasBuilderPermissions");function Kd(t){return t?!!t.admin?.global:!1}s(Kd,"hasAdminPermissions");function Ba(t){return t?!!t.builder?.creator:!1}s(Ba,"hasCreatorPermissions");function qb(t){return t?Ma(t)||Kd(t)||Ba(t)||Fa(t)||$b(t):!1}s(qb,"isCreator");function Kb(t){if(typeof t!="string")return t;let e=`ro${"_"}ta_users${"_"}`;return t.startsWith(e)?t.split(e)[1]:t}s(Kb,"getGlobalUserID");function Qb(t){return typeof t!="string"?!1:t.includes(`us${"_"}`)}s(Qb,"containsUserID");function sT(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(sT,"getUserGroups");function jb(t,e,r){let n=Is(t);return sT(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(jb,"getUserAppGroups");function Hb(t,e){let n=sT(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Hb,"userAppAccessList");var jd={};P(jd,{findInSettings:()=>Yb});function Yb(t,e){let r=[];function n(i,o=""){if(!(!i||typeof i!="object"))for(let[a,u]of Object.entries(i)){let c=o?`${o}.${a}`:a;u&&(typeof u=="string"&&u.includes(e)?r.push({setting:c,value:u}):typeof u=="object"&&n(u,c))}}return s(n,"recurse"),n(t.props),n(t.onLoad||[],"onLoad"),r}s(Yb,"findInSettings");var Wa=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Wa||{}),Kt=(h=>(h.USER_BY_WORKSPACE="by_app",h.USER_BY_EMAIL="by_email2",h.BY_API_KEY="by_api_key",h.AGENT_REQUESTS_BY_AGENT="agent_requests_by_agent",h.AGENT_REQUESTS_BY_UPDATED_AT="agent_requests_by_updated_at_2",h.AGENT_REQUESTS_BY_STATUS_AND_UPDATED_AT="agent_requests_by_status_and_updated_at",h.LINK="by_link",h.ROUTING="screen_routes_2",h.PROJECT_MEMBERS="project_members",h.AUTOMATION_LOGS="automation_logs",h.ACCOUNT_BY_EMAIL="account_by_email",h.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",h.USER_BY_GROUP="user_by_group",h.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",h.WORKSPACE_BACKUP_BY_EXPIRY="workspace_backup_by_expiry",h))(Kt||{}),jn={by_email2:["by_email"],agent_requests_by_updated_at_2:["agent_requests_by_updated_at"]},pe={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"}},rt=Ot("app"),Ga=Ot("app_dev"),nt=Ga,Hd="internal",Yd="budibase",xt="_design/sqlite",zd="ta_bb_jobs",Jd="ta_bb_inventory",Xd="ta_bb_expenses",Zd="ta_bb_employee",Rs=`ro${"_"}ta_users${"_"}`,Cs=(r=>(r[r.SQLITE=xt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Cs||{});var $a=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))($a||{}),yr=(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))(yr||{}),ef=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(ef||{}),tf=(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))(tf||{}),oT=new Date(-2147483647e3),Va=new Date(2147483647e3),ce="default";var Co={};P(Co,{CacheKey:()=>Oe,TTL:()=>fi,bustCache:()=>pi,destroy:()=>ao,docWritethrough:()=>kp,generic:()=>Wu,get:()=>oo,increment:()=>DA,invite:()=>Bp,keys:()=>Bu,passwordReset:()=>Wp,store:()=>gn,user:()=>nr,withCache:()=>br,withCacheWithDynamicTTL:()=>CA,workspace:()=>Bs,writethrough:()=>gm});var kp={};P(kp,{DocWritethrough:()=>Up,DocWritethroughProcessor:()=>so,getProcessor:()=>tP,init:()=>RA});var Lp={};P(Lp,{BudibaseQueue:()=>Et,InMemoryQueue:()=>Ru,JobQueue:()=>ui,QueuedProcessor:()=>Pp,UnretriableError:()=>Mu,shutdown:()=>hN});var nf=require("crypto"),Ka=require("fs"),cT=require("lodash"),Ds=require("path");var zb=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Ds.resolve)((0,Ds.join)(__dirname,"..","..","..")),aT=!1;!aT&&qa()&&!sf()&&(require("dotenv").config({path:(0,Ds.join)(zb,".env")}),aT=!0);function sf(){return lT()}s(sf,"isTest");function lT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(lT,"isJest");function qa(){return process.env.NODE_ENV!=="production"}s(qa,"isDev");function Jb(t){if(t)return parseInt(t)}s(Jb,"parseIntSafe");var Hn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},uT=!!parseInt(process.env.SELF_HOSTED||"");function Xb(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(Xb,"getAPIEncryptionKey");function Zb(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(Zb,"httpLogging");function ex(){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()&&!sf())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(ex,"getPackageJsonFields");function tx(){return mt.SERVICE_TYPE==="worker"}s(tx,"isWorker");function rx(){return mt.SERVICE_TYPE==="apps"}s(rx,"isApps");function nx(){return mt.BUDIBASE_ENVIRONMENT==="QA"}s(nx,"isQA");function ix(){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(ix,"getServiceName");var mt={isTest:sf,isJest:lT,isDev:qa,isWorker:tx,isApps:rx,isQA:nx,isProd:s(()=>!qa(),"isProd"),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,nf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,nf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Xb(),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,MICROSOFT_CLIENT_ID:process.env.MICROSOFT_CLIENT_ID,MICROSOFT_CLIENT_SECRET:process.env.MICROSOFT_CLIENT_SECRET,MICROSOFT_TENANT_ID:process.env.MICROSOFT_TENANT_ID,RAG_SHAREPOINT_DEFAULT_SCOPE:process.env.RAG_SHAREPOINT_DEFAULT_SCOPE||"offline_access User.Read https://graph.microsoft.com/Sites.Read.All",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:uT,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,POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS:process.env.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS,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:ix(),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:Zb(),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:uT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING:process.env.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING,...ex(),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,mt[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:Jb(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",COUCH_DB_SQS_PORT:process.env.COUCH_DB_SQS_PORT||"4984"};function bs(t){let e=(0,cT.cloneDeep)(mt),r;for(r in t)mt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))mt._set(n,i)}}s(bs,"setEnv");function dT(t,e){let r=bs(t);try{let n=e();return n instanceof Promise?n.finally(r):(r(),n)}catch(n){throw r(),n}}s(dT,"withEnv");var fT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","MICROSOFT_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(mt))e==="0"&&(mt[t]=0),e==="false"&&(mt[t]=0);var E=mt;var Ha={};P(Ha,{Databases:()=>of,SEPARATOR:()=>Yn,SelectableDatabase:()=>Qa,getRedisClusterOptions:()=>af,getRedisConnectionDetails:()=>ja,getRedisOptions:()=>on,removeDbPrefix:()=>uf});var Yn="-",of=(_=>(_.PW_RESETS="pwReset",_.VERIFICATIONS="verification",_.INVITATIONS_LIST="invitationList",_.DEV_LOCKS="devLocks",_.DEBOUNCE="debounce",_.SESSIONS="session",_.USER_CACHE="users",_.FLAGS="flags",_.WORKSPACE_METADATA="appMetadata",_.QUERY_VARS="queryVars",_.LICENSES="license",_.GENERIC_CACHE="data_cache",_.WRITE_THROUGH="writeThrough",_.LOCKS="locks",_.SOCKET_IO="socket_io",_.BPM_EVENTS="bpmEvents",_.DOC_WRITE_THROUGH="docWriteThrough",_.RECAPTCHA_SESSION="recaptchaSession",_.OPENAPI_IMPORT_SPECS="openapiImportSpecs",_))(of||{}),Qa=(p=>(p[p.DEFAULT=0]="DEFAULT",p[p.SOCKET_IO=1]="SOCKET_IO",p[p.RATE_LIMITING=2]="RATE_LIMITING",p[p.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",p[p.UNUSED_3=4]="UNUSED_3",p[p.UNUSED_4=5]="UNUSED_4",p[p.UNUSED_5=6]="UNUSED_5",p[p.UNUSED_6=7]="UNUSED_6",p[p.UNUSED_7=8]="UNUSED_7",p[p.UNUSED_8=9]="UNUSED_8",p[p.UNUSED_9=10]="UNUSED_9",p[p.UNUSED_10=11]="UNUSED_10",p[p.UNUSED_11=12]="UNUSED_11",p[p.UNUSED_12=13]="UNUSED_12",p[p.UNUSED_13=14]="UNUSED_13",p[p.UNUSED_14=15]="UNUSED_14",p))(Qa||{});function ja(){let t=E.REDIS_PASSWORD,e=E.REDIS_USERNAME,r=E.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 af(){return{slotsRefreshTimeout:2e3,dnsLookup:s((t,e)=>e(null,t),"dnsLookup"),redisOptions:{...on()}}}s(af,"getRedisClusterOptions");function on(){let{host:t,password:e,port:r,username:n}=ja(),i=E.REDIS_URL.toLowerCase().startsWith("rediss://")?{}:void 0;return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n},...i&&{tls:i}}}s(on,"getRedisOptions");function uf(t){let e=t.split(Yn);return e.length>=2?(e.shift(),e.join(Yn)):e[0]}s(uf,"removeDbPrefix");var $S=W(require("events"));var ai={};P(ai,{Duration:()=>me,GZIP_PREFIX:()=>Ou,clearCookie:()=>Jt,compare:()=>df,createPinnedLookup:()=>GS,fetchWithBlacklist:()=>oi,getBearerToken:()=>Vv,getCookie:()=>zt,getDispatcher:()=>Fv,getSessionExpiryDate:()=>ep,getSessionExpirySeconds:()=>Tu,getWorkspaceIdFromCtx:()=>dn,gunzipFromBase64:()=>$v,gzipToBase64:()=>Gv,hasCircularStructure:()=>xv,hash:()=>lf,isAudited:()=>ip,isClient:()=>bv,isPublicApiRequest:()=>Rv,isServingApp:()=>Ov,isServingBuilder:()=>Iv,isServingBuilderPreview:()=>wv,isValidInternalAPIKey:()=>Hs,microsoftDatasourceCreationCacheKey:()=>sN,newid:()=>X,openJwt:()=>Au,setAuthCookie:()=>Dv,setCookie:()=>rp,time:()=>Nv,timeout:()=>np,urlHasProtocol:()=>vv,validEmail:()=>sp});var pT=require("uuid");function X(){return(0,pT.v4)().replace(/-/g,"")}s(X,"newid");var cf=require("bcrypt"),sx=E.SALT_ROUNDS||10;async function lf(t){let e=await cf.genSalt(sx);return cf.hash(t,e)}s(lf,"hash");async function df(t,e){return cf.compare(t,e)}s(df,"compare");var Su=W(require("jsonwebtoken"));var le={};P(le,{DEFAULT_TENANT_ID:()=>ce,baseGlobalDBName:()=>ks,doInAutomationContext:()=>bx,doInContext:()=>xf,doInEnvironmentContext:()=>Wx,doInFeatureFlagOverrideContext:()=>Mf,doInIPContext:()=>Pf,doInIdentityContext:()=>vs,doInLicenseContext:()=>vx,doInScimContext:()=>Gx,doInSelfHostTenantUsingCloud:()=>xx,doInTenant:()=>De,doInWorkspaceContext:()=>Lx,doInWorkspaceMigrationContext:()=>kx,ensureSnippetContext:()=>bT,getAuditLogDBName:()=>CT,getAuditLogsDB:()=>Vx,getAutomationId:()=>vf,getCurrentContext:()=>cn,getDevWorkspaceDB:()=>Kx,getDevWorkspaceId:()=>Fx,getEnvironmentVariables:()=>$x,getFeatureFlagOverrides:()=>kf,getFeatureFlags:()=>Lf,getGlobalDB:()=>z,getGlobalDBName:()=>un,getIP:()=>Nf,getIdentity:()=>Qt,getLicense:()=>Nx,getOrThrowWorkspaceId:()=>Mx,getPlatformURL:()=>bf,getProdWorkspaceDB:()=>qx,getProdWorkspaceId:()=>Bx,getScimDBName:()=>wx,getSelfHostCloudDB:()=>Px,getTableForView:()=>Qx,getTenantIDFromWorkspaceID:()=>Zn,getTenantId:()=>q,getWorkspaceDB:()=>ei,getWorkspaceId:()=>Me,identity:()=>xs,isDevWorkspace:()=>xT,isMultiTenant:()=>Sr,isProdWorkspace:()=>Hx,isScim:()=>gt,isSelfHostUsingCloud:()=>ru,isTenancyEnabled:()=>Cx,isTenantIdSet:()=>Rx,setFeatureFlags:()=>Uf,setTableForView:()=>jx});var xs={};P(xs,{doInAccountContext:()=>ox,doInIdentityContext:()=>mf,doInUserContext:()=>hf,getAccountUserId:()=>mT,getIdentity:()=>pf});function pf(){return Qt()}s(pf,"getIdentity");function mf(t,e){return vs(t,e)}s(mf,"doInIdentityContext");function hf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return mf(n,r)}s(hf,"doInUserContext");function ox(t,e){let r=mT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return mf(i,e)}s(ox,"doInAccountContext");function mT(t){let e;return Ko(t)?e=t.budibaseUserId:e=t.accountId,e}s(mT,"getAccountUserId");var vt=s(()=>Ya(E.COUCH_DB_URL,{user:E.COUCH_DB_USERNAME||"",password:E.COUCH_DB_PASSWORD||""}),"getCouchInfo"),Ya=s((t,e)=>{let r=gf(t),n,i;if(r.auth?.username)n=r.auth.username;else if(e?.user)n=e?.user;else throw new Error("CouchDB username not set");if(r.auth?.password)i=r.auth.password;else if(e?.password)i=e?.password;else throw new Error("CouchDB password not set");let o=Buffer.from(`${n}:${i}`).toString("base64"),a=E.COUCH_DB_SQL_URL;if(!a&&r.url){let u=new URL(r.url);u.port=E.COUCH_DB_SQS_PORT,a=u.toString().replace(/\/$/,"")}return{url:r.url,sqlUrl:gf(a).url,auth:{username:n,password:i},cookie:`Basic ${o}`}},"parseCouchConnection"),gf=s((t=E.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 IT=W(require("@budibase/nano"));var hT=W(require("node-fetch"));function za(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(za,"checkSlashesInUrl");async function gT(t,e="GET",r){let{url:n,cookie:i}=vt(),o=`${n}/${t}`;return await Ns({url:o,cookie:i,method:e,body:r})}s(gT,"directCouchCall");async function Ns({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,hT.default)(za(encodeURI(t)),i)}s(Ns,"directCouchUrlCall");async function Ef(t,e="GET",r){let n=await gT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(Ef,"directCouchQuery");var an=W(require("pouchdb"));var ET,yT=!1,yf=s((t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:s((i,o)=>(o.headers.set("Authorization",r),an.default.fetch(i,o)),"fetch")};if(t.inMemory){let i=require("pouchdb-adapter-memory");an.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");an.default.plugin(i.plugin),an.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");an.default.plugin(i)}return an.default.defaults(n)},"getPouch");function Ja(t){ET=yf(t),yT=!0}s(Ja,"init");var ax=s(()=>{if(!yT)throw new Error("init has not been called")},"checkInitialised");function it(t,e){ax();let r=new ET(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(it,"getPouchDB");async function Ps(t){if(!(!t||E.isTest()))try{return await t.close()}catch{}}s(Ps,"closePouchDB");var de=W(require("dd-trace"));var zn=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return de.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 de.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return de.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 de.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 de.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 de.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 de.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 de.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return de.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 de.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 de.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 de.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 de.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 de.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 de.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return de.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return de.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return de.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return de.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 de.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 de.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Rf={};P(Rf,{breakExternalTableId:()=>Af,breakRowIdField:()=>Sx,buildExternalTableId:()=>mx,convertRowId:()=>Tx,encodeTableId:()=>hx,encodeViewId:()=>gx,extractDate:()=>Of,generateRowIdField:()=>Ex,getNativeSql:()=>Jn,isExternalTable:()=>Sf,isExternalTableID:()=>Xa,isInternalTableID:()=>px,isRowId:()=>yx,isValidFilter:()=>eu,isValidISODateString:()=>Za,isValidISODateStringWithoutTimezone:()=>_f,isValidTime:()=>If,sqlLog:()=>Ls,validateManyToMany:()=>wf});var Tf=`${"_"}${"_"}`,ST=/^\[.*]$/g,ux=encodeURIComponent(" "),cx=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,lx=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,dx=/(\d{4}-\d{2}-\d{2})/,fx=/^\d{1,2}:\d{2}(?:\.\d{1,6}|:\d{2}(?:\.\d{1,6})?)?$/;function Xa(t){return t.startsWith("datasource_")}s(Xa,"isExternalTableID");function px(t){return!Xa(t)}s(px,"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 Sf(t){return t?.sourceId&&t.sourceId.includes("datasource_")&&t?.sourceId!==bn||t?.sourceType==="external"?!0:!!(t?._id&&Xa(t._id))}s(Sf,"isExternalTable");function mx(t,e){return`${t}${Tf}${encodeURIComponent(e)}`}s(mx,"buildExternalTableId");function hx(t){return Xa(t)?encodeURIComponent(t):t}s(hx,"encodeTableId");function gx(t){return encodeURIComponent(t)}s(gx,"encodeViewId");function Af(t){let e=t.split(Tf),r=e.shift(),n=e.join(Tf);if(n.includes(ux)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(Af,"breakExternalTableId");function Ex(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(Ex,"generateRowIdField");function yx(t){return Array.isArray(t)||typeof t=="string"&&t.match(ST)!=null}s(yx,"isRowId");function Tx(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(ST)!=null?t.substring(1,t.length-1):t}s(Tx,"convertRowId");function Sx(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(Sx,"breakRowIdField");function Za(t){let e=t.trim();if(!cx.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Za,"isValidISODateString");function _f(t){let e=t.trim();if(!lx.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(_f,"isValidISODateStringWithoutTimezone");function Of(t){let e=t.match(dx);if(e)return e[0]}s(Of,"extractDate");function eu(t){return t!=null&&t!==""}s(eu,"isValidFilter");function If(t){return fx.test(t)}s(If,"isValidTime");function Ls(t,e,r){if(!E.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Ls,"sqlLog");function Ax(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(Ax,"isValidManyToManyRelationship");function wf(t){if(Ax(t))return t}s(wf,"validateManyToMany");var AT="Database does not exist.";function _T(t){return(0,IT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(_T,"buildNano");var Tr=class extends Error{static{s(this,"CouchDBError")}constructor(e,r){super(e);let n=r.status||r.statusCode||500;this.status=n,this.statusCode=n,this.reason=r.reason||"Unknown",this.name=r.name,this.errid=r.errid||"Unknown",this.description=r.description||"Unknown",this.error=r.error||"Not found"}};function _x(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(_x,"DatabaseWithConnection");var Xn=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Ya(n),this.instanceNano=_T(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=vt();t.nano=_T(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Ns({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 Tr(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===AT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Tr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Tr(`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(hh(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 Tr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=X()),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===AT)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 Ns(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new Tr("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}/${xt}`;return Ls("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(xt)){let e=await this.get(xt);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 Tr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return it(this.name).dump(e,r)}async load(e){return it(this.name).load(e)}async createIndex(e){return it(this.name).createIndex(e)}async deleteIndex(e){return it(this.name).deleteIndex(e)}async getIndexes(){return it(this.name).getIndexes()}};function Ce(t,e){return new zn(new Xn(t,e))}s(Ce,"getDB");async function je(t,e,r){let n=Ce(t,r);return await e(n)}s(je,"doWithDB");async function Cf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Ef(e)}s(Cf,"directCouchAllDbs");var Df="No app provided";function Nt(t){if(!t)throw Df;return t.startsWith(nt)}s(Nt,"isDevWorkspaceID");function Ox(t){if(!t)throw Df;return t.startsWith(rt)&&!Nt(t)}s(Ox,"isProdWorkspaceID");function Us(t){if(!t)throw Df;return Nt(t.appId)}s(Us,"isDevWorkspace");function tu(t){if(!t||t.startsWith(nt))return t;let e=t.split(rt);e.shift();let r=e.join(rt);return`${nt}${r}`}s(tu,"getDevWorkspaceID");function He(t){if(!t||!t.startsWith(nt))return t;let e=t.split(nt);e.shift();let r=e.join(nt);return`${rt}${r}`}s(He,"getProdWorkspaceID");var wT=require("async_hooks");var ge=class t{static{s(this,"Context")}static{this.storage=new wT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var RT=null;function un(t){return t||(t=q()),ks(t)}s(un,"getGlobalDBName");function CT(t){return t||(t=q()),t===ce?pe.AUDIT_LOGS.name:`${t}${"_"}${pe.AUDIT_LOGS.name}`}s(CT,"getAuditLogDBName");function wx(t){return t||(t=q()),t===ce?pe.SCIM_LOGS.name:`${t}${"_"}${pe.SCIM_LOGS.name}`}s(wx,"getScimDBName");function ks(t){return!t||t===ce?pe.GLOBAL.name:`${t}${"_"}${pe.GLOBAL.name}`}s(ks,"baseGlobalDBName");function bf(){return E.PLATFORM_URL}s(bf,"getPlatformURL");function Sr(){return!!E.MULTI_TENANCY}s(Sr,"isMultiTenant");function Rx(){return!!ge.get()?.tenantId}s(Rx,"isTenantIdSet");function Cx(){return E.MULTI_TENANCY}s(Cx,"isTenancyEnabled");function Zn(t){if(!t)return;if(!Sr())return ce;let e=t.split("_"),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(Zn,"getTenantIDFromWorkspaceID");function Dx(t){let e;try{e=ge.get()}catch{e={}}return e={...e,...t},e}s(Dx,"updateContext");async function ht(t,e){Ux();let r=Dx(t);return ge.run(r,e)}s(ht,"newContext");async function bx(t){return await bT(),await ht({tenantId:Zn(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(bx,"doInAutomationContext");async function xf(t,e){let r=Zn(t);return ht({tenantId:r,appId:t},e)}s(xf,"doInContext");async function De(t,e){return E.MULTI_TENANCY||(t=t||ce),ht(t?{tenantId:t}:{},e)}s(De,"doInTenant");async function xx(t,e){return ht({tenantId:t,isSelfHostUsingCloud:!0},e)}s(xx,"doInSelfHostTenantUsingCloud");async function vx(t,e){return ht({license:t},e)}s(vx,"doInLicenseContext");function Nx(){return ge.get()?.license}s(Nx,"getLicense");function ru(){return!!ge.get()?.isSelfHostUsingCloud}s(ru,"isSelfHostUsingCloud");function Px(){let t=ge.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ce(pe.SELF_HOST_CLOUD.name)}s(Px,"getSelfHostCloudDB");async function Lx(t,e){return DT(t,e)}s(Lx,"doInWorkspaceContext");async function DT(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(DT,"_doInWorkspaceContext");async function vs(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(vs,"doInIdentityContext");function Ux(){if(ge.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(Ux,"guardMigration");async function kx(t,e){return DT(t,e,{isMigrating:!0})}s(kx,"doInWorkspaceMigrationContext");function Qt(){try{return ge.get()?.identity}catch{}}s(Qt,"getIdentity");function q(){if(!Sr())return ce;let e=ge.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(q,"getTenantId");function vf(){return ge.get()?.automationId}s(vf,"getAutomationId");function Me(){let e=ge.get()?.appId;return!e&&E.isTest()&&RT?RT:e}s(Me,"getWorkspaceId");function Mx(){let t=Me();if(!t)throw new Error("Workspace id not set");return t}s(Mx,"getOrThrowWorkspaceId");function Nf(){return ge.get()?.ip}s(Nf,"getIP");var Fx=s(()=>{let t=Me();if(!t)throw new Error("Could not get workspaceId");return tu(t)},"getDevWorkspaceId"),Bx=s(()=>{let t=Me();if(!t)throw new Error("Could not get workspaceId");return He(t)},"getProdWorkspaceId");function Wx(t,e){if(!t)throw new Error("Must supply environment variables.");return ht({environmentVariables:t},e)}s(Wx,"doInEnvironmentContext");function Gx(t){return ht({isScim:!0},t)}s(Gx,"doInScimContext");function Pf(t,e){return ht({ip:t},e)}s(Pf,"doInIPContext");async function bT(){let t=cn();if(!t||t.snippets)return;let e,r=ei();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(bT,"ensureSnippetContext");function $x(){let t=ge.get();return t.environmentVariables?t.environmentVariables:null}s($x,"getEnvironmentVariables");function z(){let t=ge.get();if(!t||E.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 Ce(ks(t?.tenantId))}s(z,"getGlobalDB");function Vx(){if(!q())throw new Error("No tenant ID found - cannot open audit log DB");return Ce(CT())}s(Vx,"getAuditLogsDB");function ei(t){let e=Me();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 Ce(e,t)}s(ei,"getWorkspaceDB");function qx(t){let e=Me();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return Ce(He(e),t)}s(qx,"getProdWorkspaceDB");function Kx(t){let e=Me();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return Ce(tu(e),t)}s(Kx,"getDevWorkspaceDB");function gt(){return!!ge.get()?.isScim}s(gt,"isScim");function cn(){try{return ge.get()}catch{return}}s(cn,"getCurrentContext");function Lf(t){let e=cn();if(e)return e.featureFlagCache?.[t]}s(Lf,"getFeatureFlags");function Uf(t,e){let r=cn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(Uf,"setFeatureFlags");function kf(){return cn()?.featureFlagOverrides||{}}s(kf,"getFeatureFlagOverrides");async function Mf(t,e){return await ht({featureFlagOverrides:t},e)}s(Mf,"doInFeatureFlagOverrideContext");function Qx(t){let e=cn();if(e)return e.viewToTableCache?.[t]}s(Qx,"getTableForView");function jx(t,e){let r=cn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(jx,"setTableForView");function xT(){let t=Me();return Nt(t)}s(xT,"isDevWorkspace");function Hx(){return!xT()}s(Hx,"isProdWorkspace");var Ir={};P(Ir,{AutomationViewMode:()=>Wa,BUDIBASE_DATASOURCE_TYPE:()=>Yd,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Zd,DEFAULT_EXPENSES_TABLE_ID:()=>Xd,DEFAULT_INVENTORY_TABLE_ID:()=>Jd,DEFAULT_JOBS_TABLE_ID:()=>zd,DatabaseImpl:()=>Xn,DatabaseWithConnection:()=>_x,DeprecatedViews:()=>jn,DesignDocuments:()=>Cs,DocumentType:()=>ae,InternalTable:()=>It,QueryBuilder:()=>Yt,Replication:()=>wS,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Hd,StaticDatabases:()=>pe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>Rs,ViewName:()=>Kt,WORKSPACE_DEV:()=>Ga,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt,baseGlobalDBName:()=>ks,checkErrorCode:()=>bS,closePouchDB:()=>Ps,createApiKeyView:()=>TS,createNewUserEmailView:()=>ES,createPlatformAccountEmailView:()=>AS,createPlatformUserView:()=>_S,createUserAppView:()=>yS,createView:()=>si,dbExists:()=>dv,directCouchAllDbs:()=>Cf,directCouchCall:()=>gT,directCouchQuery:()=>Ef,directCouchUrlCall:()=>Ns,doWithDB:()=>je,fullSearch:()=>gv,generateAIConfigID:()=>tS,generateAgentID:()=>KT,generateAgentKnowledgeSourceConnectionID:()=>XT,generateAgentKnowledgeSourceSyncStateID:()=>JT,generateAgentRequestID:()=>HT,generateAgentToolSourceID:()=>zT,generateAppUserID:()=>gu,generateChatAppID:()=>QT,generateChatConversationID:()=>jT,generateDevInfoID:()=>$T,generateGlobalUserID:()=>ni,generateKnowledgeBaseFileID:()=>ZT,generateKnowledgeBaseID:()=>oS,generateOAuth2LogID:()=>qT,generatePluginID:()=>VT,generateProjectID:()=>sS,generateRoleID:()=>qf,generateRowID:()=>Vf,generateTableID:()=>MT,generateTemplateID:()=>GT,generateUserMetadataID:()=>BT,generateWorkspaceAppID:()=>nS,generateWorkspaceFavouriteID:()=>iS,generateWorkspaceID:()=>kT,getAgentTestRunID:()=>YT,getAgentTestSuiteID:()=>Kf,getAllDbs:()=>gS,getAllWorkspaces:()=>Gs,getCouchInfo:()=>vt,getDB:()=>Ce,getDevWorkspaceID:()=>tu,getDevWorkspaceIDs:()=>cv,getDocParams:()=>Pt,getGlobalDBName:()=>un,getGlobalIDFromUserMetadataID:()=>WT,getGlobalUserParams:()=>ln,getLiteLLMKeyID:()=>rS,getOAuth2ConfigParams:()=>dS,getPluginParams:()=>lS,getPouch:()=>yf,getPouchDB:()=>it,getProdWorkpaceIDs:()=>uv,getProdWorkspaceID:()=>He,getProjectParams:()=>mS,getQueryIndex:()=>aS,getRoleParams:()=>Eu,getRowParams:()=>Qf,getStartEndKeyURL:()=>Ws,getTemplateParams:()=>cS,getUrlInfo:()=>gf,getUserMetadataParams:()=>uS,getUsersByWorkspaceParams:()=>ii,getWorkspaceAppParams:()=>fS,getWorkspaceFavouriteParams:()=>pS,getWorkspacesByIDs:()=>av,init:()=>Ja,isDevWorkspace:()=>Us,isDevWorkspaceID:()=>Nt,isDocumentConflictError:()=>yv,isGlobalUserID:()=>FT,isKnowledgeBaseFileID:()=>eS,isProdWorkspaceID:()=>Ox,isSameWorkspaceID:()=>lv,isType:()=>hS,paginatedSearch:()=>hv,pagination:()=>Hf,parseCouchConnection:()=>Ya,prefixRoleID:()=>jt,queryGlobalView:()=>Ht,queryGlobalViewRaw:()=>qs,queryPlatformView:()=>Vs,queryView:()=>zf,queryViewRaw:()=>$s,removeKeyNumbering:()=>Ks,searchIndexes:()=>Xf});var Bs={};P(Bs,{WorkspaceState:()=>$f,getWorkspaceMetadata:()=>hu,invalidateWorkspaceMetadata:()=>iv});var _r={};P(_r,{getCacheClient:()=>Bf,getDocWritethroughClient:()=>ev,getInviteListClient:()=>Ms,getLockClient:()=>Gf,getOpenapiImportSpecsClient:()=>Xx,getPasswordResetClient:()=>Fs,getSessionClient:()=>Ar,getSocketClient:()=>Zx,getUserClient:()=>ri,getWorkspaceClient:()=>mu,getWritethroughClient:()=>Wf,init:()=>st,shutdown:()=>LT});var iu=W(require("ioredis"));var nu=require("dd-trace"),NT=require("lodash");var vT;if(E.MOCK_REDIS)try{vT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function Yx(t=0){return await nu.tracer.trace("Redis.init",async e=>{if(E.MOCK_REDIS)return e.addTags({mock:!0}),new vT(on());let r;if(E.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=ja();r=new iu.Cluster([{host:n,port:i}],af())}else r=new iu.default(on());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(Yx,"init");function zx(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:uf(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(zx,"promisifyStream");function Jx(t){return t.isCluster}s(Jx,"isCluster");var Ff=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 Yx(r);return r&&!E.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;Jx(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await zx(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,NT.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}),await this.client.eval(`
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,Xe({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},g=[];this._typeError&&g.push(this._typeError),this._whitelistError&&g.push(this._whitelistError),this._blacklistError&&g.push(this._blacklistError),(0,cg.default)({args:f,value:d,path:o,sync:i,tests:g,endEarly:l},m=>{if(m)return void n(m,d);(0,cg.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(Xe({},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(Xe({},r,{value:e})),i;return n._validate(e,Xe({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(dg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(dg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,ug.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=Un.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Un.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=Un.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,aa.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 kw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new Uw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,aa.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=Un.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,aa.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=Un.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,aa.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)}}};ua.default=dt;dt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])dt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,Mw.getIn)(this,e,r,n.context);return a[t](i&&i[o],Xe({},n,{parent:i,path:e}))};for(let t of["equals","is"])dt.prototype[t]=dt.prototype.oneOf;for(let t of["not","nope"])dt.prototype[t]=dt.prototype.notOneOf;dt.prototype.optional=dt.prototype.notRequired});var mg=Q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=pg;Zi.default=void 0;var Bw=Ww(Bt());function Ww(t){return t&&t.__esModule?t:{default:t}}s(Ww,"_interopRequireDefault");var Sl=Bw.default,Gw=Sl;Zi.default=Gw;function pg(){return new Sl}s(pg,"create");pg.prototype=Sl.prototype});var kn=Q(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.default=void 0;var $w=s(t=>t==null,"_default");ca.default=$w});var Tg=Q(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.create=yg;ts.default=void 0;var Vw=Eg(Bt()),hg=Mt(),gg=Eg(kn());function Eg(t){return t&&t.__esModule?t:{default:t}}s(Eg,"_interopRequireDefault");function yg(){return new es}s(yg,"create");var es=class extends Vw.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=hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,gg.default)(r)||r===!0}})}isFalse(e=hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,gg.default)(r)||r===!1}})}};ts.default=es;yg.prototype=es.prototype});var _g=Q(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.create=Ag;ns.default=void 0;var Ct=Mt(),Wt=Sg(kn()),qw=Sg(Bt());function Sg(t){return t&&t.__esModule?t:{default:t}}s(Sg,"_interopRequireDefault");var Kw=/^((([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,Qw=/^((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,jw=/^(?:[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,Hw=s(t=>(0,Wt.default)(t)||t===t.trim(),"isTrimmed"),Yw={}.toString();function Ag(){return new rs}s(Ag,"create");var rs=class extends qw.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===Yw?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=Ct.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Wt.default)(n)||n.length===this.resolve(e)}})}min(e,r=Ct.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Wt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Ct.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,Wt.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||Ct.string.matches,params:{regex:e},test:s(a=>(0,Wt.default)(a)||a===""&&n||a.search(e)!==-1,"test")})}email(e=Ct.string.email){return this.matches(Kw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Ct.string.url){return this.matches(Qw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Ct.string.uuid){return this.matches(jw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Ct.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:Hw})}lowercase(e=Ct.string.lowercase){return this.transform(r=>(0,Wt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:s(r=>(0,Wt.default)(r)||r===r.toLowerCase(),"test")})}uppercase(e=Ct.string.uppercase){return this.transform(r=>(0,Wt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:s(r=>(0,Wt.default)(r)||r===r.toUpperCase(),"test")})}};ns.default=rs;Ag.prototype=rs.prototype});var wg=Q(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});ss.create=Ig;ss.default=void 0;var jr=Mt(),Hr=Og(kn()),zw=Og(Bt());function Og(t){return t&&t.__esModule?t:{default:t}}s(Og,"_interopRequireDefault");var Jw=s(t=>t!=+t,"isNaN");function Ig(){return new is}s(Ig,"create");var is=class extends zw.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"&&!Jw(e)}min(e,r=jr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Hr.default)(n)||n>=this.resolve(e)}})}max(e,r=jr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Hr.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=jr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Hr.default)(n)||n<this.resolve(e)}})}moreThan(e,r=jr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Hr.default)(n)||n>this.resolve(e)}})}positive(e=jr.number.positive){return this.moreThan(0,e)}negative(e=jr.number.negative){return this.lessThan(0,e)}integer(e=jr.number.integer){return this.test({name:"integer",message:e,test:s(r=>(0,Hr.default)(r)||Number.isInteger(r),"test")})}truncate(){return this.transform(e=>(0,Hr.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,Hr.default)(i)?i:Math[e](i))}};ss.default=is;Ig.prototype=is.prototype});var Rg=Q(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});Al.default=Zw;var Xw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Zw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Xw.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(Zw,"parseIsoDate")});var bg=Q(os=>{"use strict";Object.defineProperty(os,"__esModule",{value:!0});os.create=Ol;os.default=void 0;var eR=la(Rg()),Cg=Mt(),Dg=la(kn()),tR=la(Qr()),rR=la(Bt());function la(t){return t&&t.__esModule?t:{default:t}}s(la,"_interopRequireDefault");var _l=new Date(""),nR=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function Ol(){return new Mn}s(Ol,"create");var Mn=class extends rR.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,eR.default)(e),isNaN(e)?_l:new Date(e))})})}_typeCheck(e){return nR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(tR.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=Cg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Dg.default)(i)||i>=this.resolve(n)}})}max(e,r=Cg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Dg.default)(i)||i<=this.resolve(n)}})}};os.default=Mn;Mn.INVALID_DATE=_l;Ol.prototype=Mn.prototype;Ol.INVALID_DATE=_l});var vg=Q((CW,Il)=>{"use strict";Il.exports=function(t){return xg(iR(t),t)};Il.exports.array=xg;function xg(t,e){var r=t.length,n=new Array(r),i={},o=r,a=sR(e),u=oR(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 g;try{g=", node was:"+JSON.stringify(l)}catch{g=""}throw new Error("Cyclic dependency"+g)}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 m=a.get(l)||new Set;if(m=Array.from(m),d=m.length){f.add(l);do{var y=m[--d];c(y,u.get(y),f)}while(d);f.delete(l)}n[--r]=l}}}s(xg,"toposort");function iR(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(iR,"uniqueNodes");function sR(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(sR,"makeOutgoingEdges");function oR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(oR,"makeNodesHash")});var Ng=Q(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});wl.default=fR;var aR=da(require("lodash/has")),uR=da(vg()),cR=Yi(),lR=da(Qr()),dR=da(Ln());function da(t){return t&&t.__esModule?t:{default:t}}s(da,"_interopRequireDefault");function fR(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,cR.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,aR.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),lR.default.isRef(a)&&a.isSibling?i(a.path,o):(0,dR.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return uR.default.array(n,r).reverse()}s(fR,"sortFields")});var Lg=Q(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.default=pR;function Pg(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(Pg,"findIndex");function pR(t){return(e,r)=>Pg(t,e)-Pg(t,r)}s(pR,"sortByKeyOrder")});var Gg=Q(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.create=Wg;us.default=void 0;var Ug=Dt(require("lodash/has")),kg=Dt(require("lodash/snakeCase")),mR=Dt(require("lodash/camelCase")),hR=Dt(require("lodash/mapKeys")),gR=Dt(require("lodash/mapValues")),ER=Yi(),Mg=Mt(),yR=Dt(Ng()),Bg=Dt(Lg()),TR=Dt(ra()),SR=Dt(qr()),Cl=Dt(Bt());function Dt(t){return t&&t.__esModule?t:{default:t}}s(Dt,"_interopRequireDefault");function Fn(){return Fn=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},Fn.apply(this,arguments)}s(Fn,"_extends");var Fg=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function AR(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(AR,"unknown");var _R=(0,Bg.default)([]),as=class extends Cl.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=_R,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 Fg(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=Fn({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let g=o[f],m=(0,Ug.default)(i,f);if(g){let y,h=i[f];l.path=(r.path?`${r.path}.`:"")+f,g=g.resolve({value:h,context:r.context,parent:c});let p="spec"in g?g.spec:void 0,T=p?.strict;if(p?.strip){d=d||f in i;continue}y=!r.__validating||!T?g.cast(i[f],l):i[f],y!==void 0&&(c[f]=y)}else m&&!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(!SR.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!Fg(f)){n(i[0]||null,f);return}u=u||f;let g=this._nodes.map(m=>(y,h)=>{let p=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(f[m],Fn({},r,{path:p,from:a,strict:!0,parent:f,originalValue:u[m]}),h);return}h(null)});(0,TR.default)({sync:o,tests:g,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Fn({},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 Cl.default&&o instanceof Cl.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,Bg.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,yR.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,ER.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,Ug.default)(o,e)&&(a=Fn({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=Mg.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=AR(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Mg.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,hR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(mR.default)}snakeCase(){return this.transformKeys(kg.default)}constantCase(){return this.transformKeys(e=>(0,kg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,gR.default)(this.fields,r=>r.describe()),e}};us.default=as;function Wg(t){return new as(t)}s(Wg,"create");Wg.prototype=as.prototype});var Vg=Q(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.create=$g;ls.default=void 0;var Dl=Bn(kn()),OR=Bn(Ln()),IR=Bn(Hi()),bl=Mt(),wR=Bn(ra()),RR=Bn(qr()),CR=Bn(Bt());function Bn(t){return t&&t.__esModule?t:{default:t}}s(Bn,"_interopRequireDefault");function fa(){return fa=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},fa.apply(this,arguments)}s(fa,"_extends");function $g(t){return new cs(t)}s($g,"create");var cs=class extends CR.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,fa({},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,g=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,y)=>{if(m){if(!RR.default.isError(m)||d)return void n(m,y);a.push(m)}if(!f||!l||!this._typeCheck(y)){n(a[0]||null,y);return}g=g||y;let h=new Array(y.length);for(let p=0;p<y.length;p++){let T=y[p],A=`${r.path||""}[${p}]`,_=fa({},r,{path:A,strict:!0,parent:y,index:p,originalValue:g[p]});h[p]=(I,O)=>l.validate(T,_,O)}(0,wR.default)({sync:u,path:c,value:y,errors:a,endEarly:d,tests:h},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,OR.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,IR.default)(e));return r.innerType=e,r}length(e,r=bl.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||bl.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||bl.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)}};ls.default=cs;$g.prototype=cs.prototype});var qg=Q(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});ds.create=xR;ds.default=void 0;var DR=bR(Ln());function bR(t){return t&&t.__esModule?t:{default:t}}s(bR,"_interopRequireDefault");function xR(t){return new pa(t)}s(xR,"create");var pa=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,DR.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)}},vR=pa;ds.default=vR});var Kg=Q(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});xl.default=LR;var NR=PR(Mt());function PR(t){return t&&t.__esModule?t:{default:t}}s(PR,"_interopRequireDefault");function LR(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{NR.default[e][r]=t[e][r]})})}s(LR,"setLocale")});var Nl=Q(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.addMethod=GR;Object.defineProperty(ie,"MixedSchema",{enumerable:!0,get:s(function(){return Qg.default},"get")});Object.defineProperty(ie,"mixed",{enumerable:!0,get:s(function(){return Qg.create},"get")});Object.defineProperty(ie,"BooleanSchema",{enumerable:!0,get:s(function(){return vl.default},"get")});Object.defineProperty(ie,"bool",{enumerable:!0,get:s(function(){return vl.create},"get")});Object.defineProperty(ie,"boolean",{enumerable:!0,get:s(function(){return vl.create},"get")});Object.defineProperty(ie,"StringSchema",{enumerable:!0,get:s(function(){return jg.default},"get")});Object.defineProperty(ie,"string",{enumerable:!0,get:s(function(){return jg.create},"get")});Object.defineProperty(ie,"NumberSchema",{enumerable:!0,get:s(function(){return Hg.default},"get")});Object.defineProperty(ie,"number",{enumerable:!0,get:s(function(){return Hg.create},"get")});Object.defineProperty(ie,"DateSchema",{enumerable:!0,get:s(function(){return Yg.default},"get")});Object.defineProperty(ie,"date",{enumerable:!0,get:s(function(){return Yg.create},"get")});Object.defineProperty(ie,"ObjectSchema",{enumerable:!0,get:s(function(){return zg.default},"get")});Object.defineProperty(ie,"object",{enumerable:!0,get:s(function(){return zg.create},"get")});Object.defineProperty(ie,"ArraySchema",{enumerable:!0,get:s(function(){return Jg.default},"get")});Object.defineProperty(ie,"array",{enumerable:!0,get:s(function(){return Jg.create},"get")});Object.defineProperty(ie,"ref",{enumerable:!0,get:s(function(){return UR.create},"get")});Object.defineProperty(ie,"lazy",{enumerable:!0,get:s(function(){return kR.create},"get")});Object.defineProperty(ie,"ValidationError",{enumerable:!0,get:s(function(){return MR.default},"get")});Object.defineProperty(ie,"reach",{enumerable:!0,get:s(function(){return FR.default},"get")});Object.defineProperty(ie,"isSchema",{enumerable:!0,get:s(function(){return Xg.default},"get")});Object.defineProperty(ie,"setLocale",{enumerable:!0,get:s(function(){return BR.default},"get")});Object.defineProperty(ie,"BaseSchema",{enumerable:!0,get:s(function(){return WR.default},"get")});var Qg=Yr(mg()),vl=Yr(Tg()),jg=Yr(_g()),Hg=Yr(wg()),Yg=Yr(bg()),zg=Yr(Gg()),Jg=Yr(Vg()),UR=Qr(),kR=qg(),MR=fs(qr()),FR=fs(yl()),Xg=fs(Ln()),BR=fs(Kg()),WR=fs(Bt());function fs(t){return t&&t.__esModule?t:{default:t}}s(fs,"_interopRequireDefault");function Zg(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Zg=s(function(){return t},"_getRequireWildcardCache"),t}s(Zg,"_getRequireWildcardCache");function Yr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Zg();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(Yr,"_interopRequireWildcard");function GR(t,e,r){if(!t||!(0,Xg.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(GR,"addMethod")});var eE=Q(Ll=>{"use strict";Object.defineProperty(Ll,"__esModule",{value:!0});var Pl=Ul();Ll.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 $R=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:s(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),VR=Ae&&Ae.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),qR=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)&&$R(e,t,r);return VR(e,t),e},KR=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 x=qR(Nl());Nl();var ps=ct(),QR=KR(eE());lt();var zr={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},tE=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),jR=s(t=>zr[t]?(0,ps.valid)(zr[t]):(0,ps.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=jR;var HR=s(()=>zr,"getOptionPresets");Ae.getOptionPresets=HR;var YR=s((t,e)=>{zr[t]=tE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=YR;var zR=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,g,m,y,h,p,T,A,_,I;try{(0,QR.default)();let O;if(t.preset)if(typeof t.preset=="string"){if(!zr[t.preset])return(0,ps.err)([`Option preset ${t.preset} does not exist.`]);O=zr[t.preset]}else O=t.preset;else O=zr.default;let C=Object.assign(Object.assign({presetId:O.presetId,preset:O},{useSeconds:O.useSeconds,useYears:O.useYears,useAliases:(e=O.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:O.useBlankDay,allowOnlyOneBlankDayField:O.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=O.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=O.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=O.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=O.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=O.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=O.seconds.lowerLimit)!==null&&u!==void 0?u:O.seconds.minValue,upperLimit:(c=O.seconds.upperLimit)!==null&&c!==void 0?c:O.seconds.maxValue},minutes:{lowerLimit:(l=O.minutes.lowerLimit)!==null&&l!==void 0?l:O.minutes.minValue,upperLimit:(d=O.minutes.upperLimit)!==null&&d!==void 0?d:O.minutes.maxValue},hours:{lowerLimit:(f=O.hours.lowerLimit)!==null&&f!==void 0?f:O.hours.minValue,upperLimit:(g=O.hours.upperLimit)!==null&&g!==void 0?g:O.hours.maxValue},daysOfMonth:{lowerLimit:(m=O.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:O.daysOfMonth.minValue,upperLimit:(y=O.daysOfMonth.upperLimit)!==null&&y!==void 0?y:O.daysOfMonth.maxValue},months:{lowerLimit:(h=O.months.lowerLimit)!==null&&h!==void 0?h:O.months.minValue,upperLimit:(p=O.months.upperLimit)!==null&&p!==void 0?p:O.months.maxValue},daysOfWeek:{lowerLimit:(T=O.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:O.daysOfWeek.minValue,upperLimit:(A=O.daysOfWeek.upperLimit)!==null&&A!==void 0?A:O.daysOfWeek.maxValue},years:{lowerLimit:(_=O.years.lowerLimit)!==null&&_!==void 0?_:O.years.minValue,upperLimit:(I=O.years.upperLimit)!==null&&I!==void 0?I:O.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:tE.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(O.seconds.minValue).max(O.seconds.maxValue),upperLimit:x.number().min(O.seconds.minValue).max(O.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(O.minutes.minValue).max(O.minutes.maxValue),upperLimit:x.number().min(O.minutes.minValue).max(O.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(O.hours.minValue).max(O.hours.maxValue),upperLimit:x.number().min(O.hours.minValue).max(O.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(O.daysOfMonth.minValue).max(O.daysOfMonth.maxValue),upperLimit:x.number().min(O.daysOfMonth.minValue).max(O.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(O.months.minValue).max(O.months.maxValue),upperLimit:x.number().min(O.months.minValue).max(O.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(O.daysOfWeek.minValue).max(O.daysOfWeek.maxValue),upperLimit:x.number().min(O.daysOfWeek.minValue).max(O.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(O.years.minValue).max(O.years.maxValue),upperLimit:x.number().min(O.years.minValue).max(O.years.maxValue)}).required()}).required().validateSync(C,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ps.valid)(w)}catch(O){return(0,ps.err)(O.errors)}},"validateOptions");Ae.validateOptions=zR});var Rt=Q((ms,Ml)=>{"use strict";var Xr=ms&&ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ms,"__esModule",{value:!0});var Jr=ct(),JR=Xr(xh()),XR=Xr(vh()),ZR=Xr(Nh()),eC=Xr(Ph()),tC=Xr(Lh()),rC=Xr(Uh()),nC=Xr(kh()),iC=Ul();lt();var sC=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Jr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Jr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Jr.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,Jr.valid)(n)},"splitCronString"),kl=s((t,e={})=>{let r=(0,iC.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=sC(t,n);if(i.isError())return(0,Jr.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,JR.default)(o,n)),a.push((0,XR.default)(o,n)),a.push((0,ZR.default)(o,n)),a.push((0,eC.default)(o,n)),a.push((0,tC.default)(o,n)),a.push((0,rC.default)(o,n)),n.useYears&&a.push((0,nC.default)(o,n)),a.every(c=>c.isValid()))return(0,Jr.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,Jr.err)(u)},"cron");ms.default=kl;Ml.exports=kl;Ml.exports.default=kl});var vy=Q(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var $t=class extends Error{static{s(this,"LuxonError")}},jl=class extends $t{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Hl=class extends $t{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Yl=class extends $t{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},pr=class extends $t{static{s(this,"ConflictingSpecificationError")}},Aa=class extends $t{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends $t{static{s(this,"InvalidArgumentError")}},bt=class extends $t{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},N="numeric",mt="short",qe="long",_a={year:N,month:N,day:N},NE={year:N,month:mt,day:N},oC={year:N,month:mt,day:N,weekday:mt},PE={year:N,month:qe,day:N},LE={year:N,month:qe,day:N,weekday:qe},UE={hour:N,minute:N},kE={hour:N,minute:N,second:N},ME={hour:N,minute:N,second:N,timeZoneName:mt},FE={hour:N,minute:N,second:N,timeZoneName:qe},BE={hour:N,minute:N,hourCycle:"h23"},WE={hour:N,minute:N,second:N,hourCycle:"h23"},GE={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:mt},$E={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:qe},VE={year:N,month:N,day:N,hour:N,minute:N},qE={year:N,month:N,day:N,hour:N,minute:N,second:N},KE={year:N,month:mt,day:N,hour:N,minute:N},QE={year:N,month:mt,day:N,hour:N,minute:N,second:N},aC={year:N,month:mt,day:N,weekday:mt,hour:N,minute:N},jE={year:N,month:qe,day:N,hour:N,minute:N,timeZoneName:mt},HE={year:N,month:qe,day:N,hour:N,minute:N,second:N,timeZoneName:mt},YE={year:N,month:qe,day:N,weekday:qe,hour:N,minute:N,timeZoneName:qe},zE={year:N,month:qe,day:N,weekday:qe,hour:N,minute:N,second:N,timeZoneName:qe},hr=class{static{s(this,"Zone")}get type(){throw new bt}get name(){throw new bt}get ianaName(){return this.name}get isUniversal(){throw new bt}offsetName(e,r){throw new bt}formatOffset(e,r){throw new bt}offset(e){throw new bt}equals(e){throw new bt}get isValid(){throw new bt}},Fl=null,Ss=class t extends hr{static{s(this,"SystemZone")}static get instance(){return Fl===null&&(Fl=new t),Fl}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ay(e,r,n)}formatOffset(e,r){return Ts(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},zl=new Map;function uC(t){let e=zl.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"}),zl.set(t,e)),e}s(uC,"makeDTF");var cC={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function lC(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(lC,"hackyOffset");function dC(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=cC[o];o==="era"?n[u]=a:H(u)||(n[u]=parseInt(a,10))}return n}s(dC,"partsOffset");var Bl=new Map,Vt=class t extends hr{static{s(this,"IANAZone")}static create(e){let r=Bl.get(e);return r===void 0&&Bl.set(e,r=new t(e)),r}static resetCache(){Bl.clear(),zl.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 ay(e,r,n,this.name)}formatOffset(e,r){return Ts(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=uC(this.name),[i,o,a,u,c,l,d]=n.formatToParts?dC(n,r):lC(n,r);u==="BC"&&(i=-Math.abs(i)+1);let g=ba({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),m=+r,y=m%1e3;return m-=y>=0?y:1e3+y,(g-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},rE={};function fC(t,e={}){let r=JSON.stringify([t,e]),n=rE[r];return n||(n=new Intl.ListFormat(t,e),rE[r]=n),n}s(fC,"getCachedLF");var Jl=new Map;function Xl(t,e={}){let r=JSON.stringify([t,e]),n=Jl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Jl.set(r,n)),n}s(Xl,"getCachedDTF");var Zl=new Map;function pC(t,e={}){let r=JSON.stringify([t,e]),n=Zl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Zl.set(r,n)),n}s(pC,"getCachedINF");var ed=new Map;function mC(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=ed.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),ed.set(i,o)),o}s(mC,"getCachedRTF");var gs=null;function hC(){return gs||(gs=new Intl.DateTimeFormat().resolvedOptions().locale,gs)}s(hC,"systemLocale");var td=new Map;function JE(t){let e=td.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),td.set(t,e)),e}s(JE,"getCachedIntResolvedOptions");var rd=new Map;function gC(t){let e=rd.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...XE,...e}),rd.set(t,e)}return e}s(gC,"getCachedWeekInfo");function EC(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=Xl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=Xl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(EC,"parseLocaleString");function yC(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(yC,"intlConfigString");function TC(t){let e=[];for(let r=1;r<=12;r++){let n=ue.utc(2009,r,1);e.push(t(n))}return e}s(TC,"mapMonths");function SC(t){let e=[];for(let r=1;r<=7;r++){let n=ue.utc(2016,11,13+r);e.push(t(n))}return e}s(SC,"mapWeekdays");function ma(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(ma,"listStuff");function AC(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||JE(t.locale).numberingSystem==="latn"}s(AC,"supportsFastNumbers");var nd=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=pC(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):md(e,3);return he(r,this.padTo)}}},id=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&&Vt.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=Xl(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()}},sd=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&sy()&&(this.rtf=mC(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):$C(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},XE={firstDay:1,minimalDays:4,weekend:[6,7]},re=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||se.defaultLocale,u=a||(o?"en-US":hC()),c=r||se.defaultNumberingSystem,l=n||se.defaultOutputCalendar,d=ad(i)||se.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){gs=null,Jl.clear(),Zl.clear(),ed.clear(),td.clear(),rd.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]=EC(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=yC(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=AC(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,ad(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 ma(this,e,ly,()=>{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]=TC(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return ma(this,e,py,()=>{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]=SC(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return ma(this,void 0,()=>my,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[ue.utc(2016,11,13,9),ue.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return ma(this,e,hy,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[ue.utc(-40,1,1),ue.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 nd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new id(e,this.intl,r)}relFormatter(e={}){return new sd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return fC(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||JE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:oy()?gC(this.locale):XE}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})`}},Wl=null,Ke=class t extends hr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Wl===null&&(Wl=new t(0)),Wl}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(xa(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ts(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ts(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Ts(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}},Oa=class extends hr{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 fr(t,e){if(H(t)||t===null)return e;if(t instanceof hr)return t;if(CC(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Ss.instance:r==="utc"||r==="gmt"?Ke.utcInstance:Ke.parseSpecifier(r)||Vt.create(t)}else return mr(t)?Ke.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Oa(t)}s(fr,"normalizeZone");var ld={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},nE={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},_C=ld.hanidec.replace(/[\[|\]]/g,"").split("");function OC(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(ld.hanidec)!==-1)e+=_C.indexOf(t[r]);else for(let i in nE){let[o,a]=nE[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(OC,"parseDigits");var od=new Map;function IC(){od.clear()}s(IC,"resetDigitRegexCache");function ft({numberingSystem:t},e=""){let r=t||"latn",n=od.get(r);n===void 0&&(n=new Map,od.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${ld[r]}${e}`),n.set(e,i)),i}s(ft,"digitRegex");var iE=s(()=>Date.now(),"now"),sE="system",oE=null,aE=null,uE=null,cE=60,lE,dE=null,se=class{static{s(this,"Settings")}static get now(){return iE}static set now(e){iE=e}static set defaultZone(e){sE=e}static get defaultZone(){return fr(sE,Ss.instance)}static get defaultLocale(){return oE}static set defaultLocale(e){oE=e}static get defaultNumberingSystem(){return aE}static set defaultNumberingSystem(e){aE=e}static get defaultOutputCalendar(){return uE}static set defaultOutputCalendar(e){uE=e}static get defaultWeekSettings(){return dE}static set defaultWeekSettings(e){dE=ad(e)}static get twoDigitCutoffYear(){return cE}static set twoDigitCutoffYear(e){cE=e%100}static get throwOnInvalid(){return lE}static set throwOnInvalid(e){lE=e}static resetCaches(){re.resetCache(),Vt.resetCache(),ue.resetCache(),IC()}},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}},ZE=[0,31,59,90,120,151,181,212,243,273,304,334],ey=[0,31,60,91,121,152,182,213,244,274,305,335];function et(t,e){return new Ve("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(et,"unitOutOfRange");function dd(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(dd,"dayOfWeek");function ty(t,e,r){return r+(_s(t)?ey:ZE)[e-1]}s(ty,"computeOrdinal");function ry(t,e){let r=_s(t)?ey:ZE,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(ry,"uncomputeOrdinal");function fd(t,e){return(t-e+7)%7+1}s(fd,"isoWeekdayToLocal");function Ia(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=ty(n,i,o),u=fd(dd(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=As(l,e,r)):c>As(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...va(t)}}s(Ia,"gregorianToWeek");function fE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=fd(dd(n,1,e),r),u=Vn(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Vn(l)):c>u?(l=n+1,c-=Vn(n)):l=n;let{month:d,day:f}=ry(l,c);return{year:l,month:d,day:f,...va(t)}}s(fE,"weekToGregorian");function Gl(t){let{year:e,month:r,day:n}=t,i=ty(e,r,n);return{year:e,ordinal:i,...va(t)}}s(Gl,"gregorianToOrdinal");function pE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=ry(e,r);return{year:e,month:n,day:i,...va(t)}}s(pE,"ordinalToGregorian");function mE(t,e){if(!H(t.localWeekday)||!H(t.localWeekNumber)||!H(t.localWeekYear)){if(!H(t.weekday)||!H(t.weekNumber)||!H(t.weekYear))throw new pr("Cannot mix locale-based week fields with ISO-based week fields");return H(t.localWeekday)||(t.weekday=t.localWeekday),H(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),H(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(mE,"usesLocalWeekValues");function wC(t,e=4,r=1){let n=Da(t.weekYear),i=tt(t.weekNumber,1,As(t.weekYear,e,r)),o=tt(t.weekday,1,7);return n?i?o?!1:et("weekday",t.weekday):et("week",t.weekNumber):et("weekYear",t.weekYear)}s(wC,"hasInvalidWeekData");function RC(t){let e=Da(t.year),r=tt(t.ordinal,1,Vn(t.year));return e?r?!1:et("ordinal",t.ordinal):et("year",t.year)}s(RC,"hasInvalidOrdinalData");function ny(t){let e=Da(t.year),r=tt(t.month,1,12),n=tt(t.day,1,wa(t.year,t.month));return e?r?n?!1:et("day",t.day):et("month",t.month):et("year",t.year)}s(ny,"hasInvalidGregorianData");function iy(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=tt(e,0,23)||e===24&&r===0&&n===0&&i===0,a=tt(r,0,59),u=tt(n,0,59),c=tt(i,0,999);return o?a?u?c?!1:et("millisecond",i):et("second",n):et("minute",r):et("hour",e)}s(iy,"hasInvalidTimeData");function H(t){return typeof t>"u"}s(H,"isUndefined");function mr(t){return typeof t=="number"}s(mr,"isNumber");function Da(t){return typeof t=="number"&&t%1===0}s(Da,"isInteger");function CC(t){return typeof t=="string"}s(CC,"isString");function DC(t){return Object.prototype.toString.call(t)==="[object Date]"}s(DC,"isDate");function sy(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(sy,"hasRelative");function oy(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(oy,"hasLocaleWeekInfo");function bC(t){return Array.isArray(t)?t:[t]}s(bC,"maybeArray");function hE(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(hE,"bestBy");function xC(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(xC,"pick");function Kn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s(Kn,"hasOwnProperty");function ad(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!tt(t.firstDay,1,7)||!tt(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!tt(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(ad,"validateWeekSettings");function tt(t,e,r){return Da(t)&&t>=e&&t<=r}s(tt,"integerBetween");function vC(t,e){return t-e*Math.floor(t/e)}s(vC,"floorMod");function he(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(he,"padStart");function dr(t){if(!(H(t)||t===null||t===""))return parseInt(t,10)}s(dr,"parseInteger");function Zr(t){if(!(H(t)||t===null||t===""))return parseFloat(t)}s(Zr,"parseFloating");function pd(t){if(!(H(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(pd,"parseMillis");function md(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(md,"roundTo");function _s(t){return t%4===0&&(t%100!==0||t%400===0)}s(_s,"isLeapYear");function Vn(t){return _s(t)?366:365}s(Vn,"daysInYear");function wa(t,e){let r=vC(e-1,12)+1,n=t+(e-r)/12;return r===2?_s(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(wa,"daysInMonth");function ba(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(ba,"objToLocalTS");function gE(t,e,r){return-fd(dd(t,1,e),r)+e-1}s(gE,"firstWeekOffset");function As(t,e=4,r=1){let n=gE(t,e,r),i=gE(t+1,e,r);return(Vn(t)-n+i)/7}s(As,"weeksInWeekYear");function ud(t){return t>99?t:t>se.twoDigitCutoffYear?1900+t:2e3+t}s(ud,"untruncateYear");function ay(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(ay,"parseZoneInfo");function xa(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(xa,"signedOffset");function uy(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(uy,"asNumber");function Ra(t,e){let r={};for(let n in t)if(Kn(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=uy(i)}return r}s(Ra,"normalizeObject");function Ts(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}${he(r,2)}:${he(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${he(r,2)}${he(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(Ts,"formatOffset");function va(t){return xC(t,["hour","minute","second","millisecond"])}s(va,"timeObject");var NC=["January","February","March","April","May","June","July","August","September","October","November","December"],cy=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],PC=["J","F","M","A","M","J","J","A","S","O","N","D"];function ly(t){switch(t){case"narrow":return[...PC];case"short":return[...cy];case"long":return[...NC];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(ly,"months");var dy=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],fy=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],LC=["M","T","W","T","F","S","S"];function py(t){switch(t){case"narrow":return[...LC];case"short":return[...fy];case"long":return[...dy];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(py,"weekdays");var my=["AM","PM"],UC=["Before Christ","Anno Domini"],kC=["BC","AD"],MC=["B","A"];function hy(t){switch(t){case"narrow":return[...MC];case"short":return[...kC];case"long":return[...UC];default:return null}}s(hy,"eras");function FC(t){return my[t.hour<12?0:1]}s(FC,"meridiemForDateTime");function BC(t,e){return py(e)[t.weekday-1]}s(BC,"weekdayForDateTime");function WC(t,e){return ly(e)[t.month-1]}s(WC,"monthForDateTime");function GC(t,e){return hy(e)[t.year<0?0:1]}s(GC,"eraForDateTime");function $C(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($C,"formatRelativeTime");function EE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(EE,"stringifyTokens");var VC={D:_a,DD:NE,DDD:PE,DDDD:LE,t:UE,tt:kE,ttt:ME,tttt:FE,T:BE,TT:WE,TTT:GE,TTTT:$E,f:VE,ff:KE,fff:jE,ffff:YE,F:qE,FF:QE,FFF:HE,FFFF:zE},$e=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 VC[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 he(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((m,y)=>this.loc.extract(e,m,y),"string"),a=s(m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"","formatOffset"),u=s(()=>n?FC(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((m,y)=>n?WC(e,m):o(y?{month:m}:{month:m,day:"numeric"},"month"),"month"),l=s((m,y)=>n?BC(e,m):o(y?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(m=>{let y=t.macroTokenToFormatOpts(m);return y?this.formatWithSystemDefault(e,y):m},"maybeMacro"),f=s(m=>n?GC(e,m):o({era:m},"era"),"era"),g=s(m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return 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(m)}},"tokenToString");return EE(t.parseFormat(r),g)}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)=>g=>{let m=i(g);if(m){let y=f.isNegativeDuration&&m!==f.largestUnit?n:1,h;return this.opts.signMode==="negativeLargestOnly"&&m!==f.largestUnit?h="never":this.opts.signMode==="all"?h="always":h="auto",this.num(d.get(m)*y,g.length,h)}else return g},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:g})=>f?d:d.concat(g),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return EE(a,o(c,l))}},gy=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Qn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Qn,"combineRegexes");function jn(...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(jn,"combineExtractors");function Hn(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(Hn,"parse");function Ey(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=dr(e[r+i]);return[n,null,r+i]}}s(Ey,"simpleParse");var yy=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,qC=`(?:${yy.source}?(?:\\[(${gy.source})\\])?)?`,hd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ty=RegExp(`${hd.source}${qC}`),gd=RegExp(`(?:[Tt]${Ty.source})?`),KC=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,QC=/(\d{4})-?W(\d\d)(?:-?(\d))?/,jC=/(\d{4})-?(\d{3})/,HC=Ey("weekYear","weekNumber","weekDay"),YC=Ey("year","ordinal"),zC=/(\d{4})-(\d\d)-(\d\d)/,Sy=RegExp(`${hd.source} ?(?:${yy.source}|(${gy.source}))?`),JC=RegExp(`(?: ${Sy.source})?`);function qn(t,e,r){let n=t[e];return H(n)?r:dr(n)}s(qn,"int");function XC(t,e){return[{year:qn(t,e),month:qn(t,e+1,1),day:qn(t,e+2,1)},null,e+3]}s(XC,"extractISOYmd");function Yn(t,e){return[{hours:qn(t,e,0),minutes:qn(t,e+1,0),seconds:qn(t,e+2,0),milliseconds:pd(t[e+3])},null,e+4]}s(Yn,"extractISOTime");function Os(t,e){let r=!t[e]&&!t[e+1],n=xa(t[e+1],t[e+2]),i=r?null:Ke.instance(n);return[{},i,e+3]}s(Os,"extractISOOffset");function Is(t,e){let r=t[e]?Vt.create(t[e]):null;return[{},r,e+1]}s(Is,"extractIANAZone");var ZC=RegExp(`^T?${hd.source}$`),eD=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function tD(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",g=s((m,y=!1)=>m!==void 0&&(y||m&&d)?-m:m,"maybeNegate");return[{years:g(Zr(r)),months:g(Zr(n)),weeks:g(Zr(i)),days:g(Zr(o)),hours:g(Zr(a)),minutes:g(Zr(u)),seconds:g(Zr(c),c==="-0"),milliseconds:g(pd(l),f)}]}s(tD,"extractISODuration");var rD={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ed(t,e,r,n,i,o,a){let u={year:e.length===2?ud(dr(e)):dr(e),month:cy.indexOf(r)+1,day:dr(n),hour:dr(i),minute:dr(o)};return a&&(u.second=dr(a)),t&&(u.weekday=t.length>3?dy.indexOf(t)+1:fy.indexOf(t)+1),u}s(Ed,"fromStrings");var nD=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function iD(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,g=Ed(e,i,n,r,o,a,u),m;return c?m=rD[c]:l?m=0:m=xa(d,f),[g,new Ke(m)]}s(iD,"extractRFC2822");function sD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(sD,"preprocessRFC2822");var oD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,aD=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,uD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function yE(t){let[,e,r,n,i,o,a,u]=t;return[Ed(e,i,n,r,o,a,u),Ke.utcInstance]}s(yE,"extractRFC1123Or850");function cD(t){let[,e,r,n,i,o,a,u]=t;return[Ed(e,u,r,n,i,o,a),Ke.utcInstance]}s(cD,"extractASCII");var lD=Qn(KC,gd),dD=Qn(QC,gd),fD=Qn(jC,gd),pD=Qn(Ty),Ay=jn(XC,Yn,Os,Is),mD=jn(HC,Yn,Os,Is),hD=jn(YC,Yn,Os,Is),gD=jn(Yn,Os,Is);function ED(t){return Hn(t,[lD,Ay],[dD,mD],[fD,hD],[pD,gD])}s(ED,"parseISODate");function yD(t){return Hn(sD(t),[nD,iD])}s(yD,"parseRFC2822Date");function TD(t){return Hn(t,[oD,yE],[aD,yE],[uD,cD])}s(TD,"parseHTTPDate");function SD(t){return Hn(t,[eD,tD])}s(SD,"parseISODuration");var AD=jn(Yn);function _D(t){return Hn(t,[ZC,AD])}s(_D,"parseISOTimeOnly");var OD=Qn(zC,JC),ID=Qn(Sy),wD=jn(Yn,Os,Is);function RD(t){return Hn(t,[OD,Ay],[ID,wD])}s(RD,"parseSQL");var TE="Invalid Duration",_y={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},CD={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:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},..._y},Ze=146097/400,Wn=146097/4800,DD={years:{quarters:4,months:12,weeks:Ze/7,days:Ze,hours:Ze*24,minutes:Ze*24*60,seconds:Ze*24*60*60,milliseconds:Ze*24*60*60*1e3},quarters:{months:3,weeks:Ze/28,days:Ze/4,hours:Ze*24/4,minutes:Ze*24*60/4,seconds:Ze*24*60*60/4,milliseconds:Ze*24*60*60*1e3/4},months:{weeks:Wn/7,days:Wn,hours:Wn*24,minutes:Wn*24*60,seconds:Wn*24*60*60,milliseconds:Wn*24*60*60*1e3},..._y},tn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],bD=tn.slice(0).reverse();function Gt(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 ye(n)}s(Gt,"clone$1");function Oy(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of bD.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(Oy,"durationToMillis");function SE(t,e){let r=Oy(t,e)<0?-1:1;tn.reduceRight((n,i)=>{if(H(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),tn.reduce((n,i)=>{if(H(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(SE,"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 ye=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?DD:CD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||re.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:Ra(e,t.normalizeUnit),loc:re.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(mr(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]=SD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){let[n]=_D(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Duration is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(se.throwOnInvalid)throw new Yl(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 Aa(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?$e.create(this.loc,n).formatDurationFromString(this,e):TE}toHuman(e={}){if(!this.isValid)return TE;let r=e.showZeros!==!1,n=tn.map(i=>{let o=this.values[i];return H(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+=md(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},ue.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?Oy(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 tn)(Kn(r.values,i)||Kn(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Gt(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]=uy(e(this.values[n],n));return Gt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Ra(e,t.normalizeUnit)};return Gt(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 Gt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return SE(this.matrix,e),Gt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=AE(this.normalize().shiftToAll().toObject());return Gt(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 tn)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;mr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else mr(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 SE(this.matrix,r),Gt(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 Gt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=AE(this.values);return Gt(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 tn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Gn="Invalid Interval";function xD(t,e){return!t||!t.isValid?nn.invalid("missing or invalid start"):!e||!e.isValid?nn.invalid("missing or invalid end"):e<t?nn.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(xD,"validateStartEnd");var nn=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(se.throwOnInvalid)throw new Hl(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=hs(e),i=hs(r),o=xD(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=ye.fromDurationLike(r),i=hs(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=ye.fromDurationLike(r),i=hs(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=ue.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=ue.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=ye.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=ye.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(hs).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=ye.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()})`:Gn}[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=_a,r={}){return this.isValid?$e.create(this.s.loc.clone(r),e).formatInterval(this):Gn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Gn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Gn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Gn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Gn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):ye.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},rn=class{static{s(this,"Info")}static hasDST(e=se.defaultZone){let r=ue.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Vt.isValidZone(e)}static normalizeZone(e){return fr(e,se.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||re.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||re.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||re.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||re.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return re.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return re.create(r,null,"gregory").eras(e)}static features(){return{relative:sy(),localeWeek:oy()}}};function _E(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(ye.fromMillis(n).as("days"))}s(_E,"dayDiff");function vD(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=_E(c,l);return(d-d%7)/7}],["days",_E]],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(vD,"highOrderDiffs");function ND(t,e,r,n){let[i,o,a,u]=vD(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=ye.fromObject(o,n);return l.length>0?ye.fromMillis(c,n).shiftTo(...l).plus(d):d}s(ND,"diff");var PD="missing Intl.DateTimeFormat.formatToParts support";function Z(t,e=r=>r){return{regex:t,deser:s(([r])=>e(OC(r)),"deser")}}s(Z,"intUnit");var LD="\xA0",Iy=`[ ${LD}]`,wy=new RegExp(Iy,"g");function UD(t){return t.replace(/\./g,"\\.?").replace(wy,Iy)}s(UD,"fixListRegex");function OE(t){return t.replace(/\./g,"").replace(wy," ").toLowerCase()}s(OE,"stripInsensitivities");function pt(t,e){return t===null?null:{regex:RegExp(t.map(UD).join("|")),deser:s(([r])=>t.findIndex(n=>OE(r)===OE(n))+e,"deser")}}s(pt,"oneOf");function IE(t,e){return{regex:t,deser:s(([,r,n])=>xa(r,n),"deser"),groups:e}}s(IE,"offset");function ha(t){return{regex:t,deser:s(([e])=>e,"deser")}}s(ha,"simple");function kD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(kD,"escapeToken");function MD(t,e){let r=ft(e),n=ft(e,"{2}"),i=ft(e,"{3}"),o=ft(e,"{4}"),a=ft(e,"{6}"),u=ft(e,"{1,2}"),c=ft(e,"{1,3}"),l=ft(e,"{1,6}"),d=ft(e,"{1,9}"),f=ft(e,"{2,4}"),g=ft(e,"{4,6}"),m=s(p=>({regex:RegExp(kD(p.val)),deser:s(([T])=>T,"deser"),literal:!0}),"literal"),h=s(p=>{if(t.literal)return m(p);switch(p.val){case"G":return pt(e.eras("short"),0);case"GG":return pt(e.eras("long"),0);case"y":return Z(l);case"yy":return Z(f,ud);case"yyyy":return Z(o);case"yyyyy":return Z(g);case"yyyyyy":return Z(a);case"M":return Z(u);case"MM":return Z(n);case"MMM":return pt(e.months("short",!0),1);case"MMMM":return pt(e.months("long",!0),1);case"L":return Z(u);case"LL":return Z(n);case"LLL":return pt(e.months("short",!1),1);case"LLLL":return pt(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 ha(d);case"uu":return ha(u);case"uuu":return Z(r);case"a":return pt(e.meridiems(),0);case"kkkk":return Z(o);case"kk":return Z(f,ud);case"W":return Z(u);case"WW":return Z(n);case"E":case"c":return Z(r);case"EEE":return pt(e.weekdays("short",!1),1);case"EEEE":return pt(e.weekdays("long",!1),1);case"ccc":return pt(e.weekdays("short",!0),1);case"cccc":return pt(e.weekdays("long",!0),1);case"Z":case"ZZ":return IE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return IE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return ha(/[a-z_+-/]{1,256}?/i);case" ":return ha(/[^\S\n\r]/);default:return m(p)}},"unitate")(t)||{invalidReason:PD};return h.token=t,h}s(MD,"unitForToken");var FD={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 BD(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=FD[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(BD,"tokenForPart");function WD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(WD,"buildRegex");function GD(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if(Kn(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(GD,"match");function $D(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 H(t.z)||(r=Vt.create(t.z)),H(t.Z)||(r||(r=new Ke(t.Z)),n=t.Z),H(t.q)||(t.M=(t.q-1)*3+1),H(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),H(t.u)||(t.S=pd(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s($D,"dateTimeFromMatches");var $l=null;function VD(){return $l||($l=ue.fromMillis(1555555555555)),$l}s(VD,"getDummyDateTime");function qD(t,e){if(t.literal)return t;let r=$e.macroTokenToFormatOpts(t.val),n=Dy(r,e);return n==null||n.includes(void 0)?t:n}s(qD,"maybeExpandMacroToken");function Ry(t,e){return Array.prototype.concat(...t.map(r=>qD(r,e)))}s(Ry,"expandMacroTokens");var Ca=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=Ry($e.parseFormat(r),e),this.units=this.tokens.map(n=>MD(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=WD(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=GD(e,this.regex,this.handlers),[i,o,a]=n?$D(n):[null,null,void 0];if(Kn(n,"a")&&Kn(n,"H"))throw new pr("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 Cy(t,e,r){return new Ca(t,r).explainFromTokens(e)}s(Cy,"explainFromTokens");function KD(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=Cy(t,e,r);return[n,i,o,a]}s(KD,"parseFromTokens");function Dy(t,e){if(!t)return null;let n=$e.create(e,t).dtFormatter(VD()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>BD(a,t,o))}s(Dy,"formatOptsToTokens");var Vl="Invalid DateTime",wE=864e13;function Es(t){return new Ve("unsupported zone",`the zone "${t.name}" is not supported`)}s(Es,"unsupportedZone");function ql(t){return t.weekData===null&&(t.weekData=Ia(t.c)),t.weekData}s(ql,"possiblyCachedWeekData");function Kl(t){return t.localWeekData===null&&(t.localWeekData=Ia(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s(Kl,"possiblyCachedLocalWeekData");function en(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new ue({...r,...e,old:r})}s(en,"clone");function by(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(by,"fixOffset");function ga(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(ga,"tsToObj");function ya(t,e,r){return by(ba(t),e,r)}s(ya,"objToTS");function RE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,wa(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=ye.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=ba(o),[c,l]=by(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(RE,"adjustTime");function $n(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=ue.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return ue.invalid(new Ve("unparsable",`the input "${i}" can't be parsed as ${n}`))}s($n,"parseDataToDateTime");function Ea(t,e,r=!0){return t.isValid?$e.create(re.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}s(Ea,"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+=he(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=he(t.c.month),r==="month")return i;i+="-"}else if(i+=he(t.c.month),r==="month")return i;return i+=he(t.c.day),i}s(Ql,"toISODate");function CE(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+=he(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=he(t.c.minute),a==="minute")break;u&&(c+=":",c+=he(t.c.second))}else{if(c+=he(t.c.minute),a==="minute")break;u&&(c+=he(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=he(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=he(Math.trunc(-t.o/60)),c+=":",c+=he(Math.trunc(-t.o%60))):(c+="+",c+=he(Math.trunc(t.o/60)),c+=":",c+=he(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(CE,"toISOTime");var xy={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},QD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Ta=["year","month","day","hour","minute","second","millisecond"],HD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],YD=["year","ordinal","hour","minute","second","millisecond"];function Sa(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 Aa(t);return e}s(Sa,"normalizeUnit");function DE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Sa(t)}}s(DE,"normalizeUnitWithLocalWeeks");function zD(t){if(ys===void 0&&(ys=se.now()),t.type!=="iana")return t.offset(ys);let e=t.name,r=cd.get(e);return r===void 0&&(r=t.offset(ys),cd.set(e,r)),r}s(zD,"guessOffsetForZone");function bE(t,e){let r=fr(e.zone,se.defaultZone);if(!r.isValid)return ue.invalid(Es(r));let n=re.fromObject(e),i,o;if(H(t.year))i=se.now();else{for(let c of Ta)H(t[c])&&(t[c]=xy[c]);let a=ny(t)||iy(t);if(a)return ue.invalid(a);let u=zD(r);[i,o]=ya(t,u,r)}return new ue({ts:i,zone:r,loc:n,o})}s(bE,"quickDT");function xE(t,e,r){let n=H(r.round)?!0:r.round,i=H(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=md(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(xE,"diffRelative");function vE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}s(vE,"lastOpts");var ys,cd=new Map,ue=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||se.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ve("invalid input"):null)||(r.isValid?null:Es(r));this.ts=H(e.ts)?se.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=mr(e.o)&&!e.old?e.o:r.offset(this.ts);i=ga(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||re.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]=vE(arguments),[n,i,o,a,u,c,l]=r;return bE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=vE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,bE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=DC(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=fr(r.zone,se.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:re.fromObject(r)}):t.invalid(Es(i))}static fromMillis(e,r={}){if(mr(e))return e<-wE||e>wE?t.invalid("Timestamp out of range"):new t({ts:e,zone:fr(r.zone,se.defaultZone),loc:re.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(mr(e))return new t({ts:e*1e3,zone:fr(r.zone,se.defaultZone),loc:re.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=fr(r.zone,se.defaultZone);if(!n.isValid)return t.invalid(Es(n));let i=re.fromObject(r),o=Ra(e,DE),{minDaysInFirstWeek:a,startOfWeek:u}=mE(o,i),c=se.now(),l=H(r.specificOffset)?n.offset(c):r.specificOffset,d=!H(o.ordinal),f=!H(o.year),g=!H(o.month)||!H(o.day),m=f||g,y=o.weekYear||o.weekNumber;if((m||d)&&y)throw new pr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(g&&d)throw new pr("Can't mix ordinal dates with month/day");let h=y||o.weekday&&!m,p,T,A=ga(c,l);h?(p=HD,T=QD,A=Ia(A,a,u)):d?(p=YD,T=jD,A=Gl(A)):(p=Ta,T=xy);let _=!1;for(let G of p){let ee=o[G];H(ee)?_?o[G]=T[G]:o[G]=A[G]:_=!0}let I=h?wC(o,a,u):d?RC(o):ny(o),O=I||iy(o);if(O)return t.invalid(O);let C=h?fE(o,a,u):d?pE(o):o,[R,w]=ya(C,l,n),b=new t({ts:R,zone:n,o:w,loc:i});return o.weekday&&m&&e.weekday!==b.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${b.toISO()}`):b.isValid?b:t.invalid(b.invalid)}static fromISO(e,r={}){let[n,i]=ED(e);return $n(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=yD(e);return $n(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=TD(e);return $n(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(H(e)||H(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=KD(a,e,r);return d?t.invalid(d):$n(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]=RD(e);return $n(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(se.throwOnInvalid)throw new jl(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=Dy(e,re.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return Ry($e.parseFormat(e),re.fromObject(r)).map(i=>i.val).join("")}static resetCache(){ys=void 0,cd.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?ql(this).weekYear:NaN}get weekNumber(){return this.isValid?ql(this).weekNumber:NaN}get weekday(){return this.isValid?ql(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Kl(this).weekday:NaN}get localWeekNumber(){return this.isValid?Kl(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Kl(this).weekYear:NaN}get ordinal(){return this.isValid?Gl(this.c).ordinal:NaN}get monthShort(){return this.isValid?rn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?rn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?rn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?rn.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=ba(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=ga(c,a),f=ga(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[en(this,{ts:c}),en(this,{ts:l})]:[this]}get isInLeapYear(){return _s(this.year)}get daysInMonth(){return wa(this.year,this.month)}get daysInYear(){return this.isValid?Vn(this.year):NaN}get weeksInWeekYear(){return this.isValid?As(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?As(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=$e.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(se.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=fr(e,se.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]=ya(a,o,e)}return en(this,{ts:i,zone:e})}else return t.invalid(Es(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return en(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Ra(e,DE),{minDaysInFirstWeek:n,startOfWeek:i}=mE(r,this.loc),o=!H(r.weekYear)||!H(r.weekNumber)||!H(r.weekday),a=!H(r.ordinal),u=!H(r.year),c=!H(r.month)||!H(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new pr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new pr("Can't mix ordinal dates with month/day");let f;o?f=fE({...Ia(this.c,n,i),...r},n,i):H(r.ordinal)?(f={...this.toObject(),...r},H(r.day)&&(f.day=Math.min(wa(f.year,f.month),f.day))):f=pE({...Gl(this.c),...r});let[g,m]=ya(f,this.o,this.zone);return en(this,{ts:g,o:m})}plus(e){if(!this.isValid)return this;let r=ye.fromDurationLike(e);return en(this,RE(this,r))}minus(e){if(!this.isValid)return this;let r=ye.fromDurationLike(e).negate();return en(this,RE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=ye.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?$e.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Vl}toLocaleString(e=_a,r={}){return this.isValid?$e.create(this.loc.clone(r),e).formatDateTime(this):Vl}toLocaleParts(e={}){return this.isValid?$e.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=Sa(a);let u=e==="extended",c=Ql(this,u,a);return Ta.indexOf(a)>=3&&(c+="T"),c+=CE(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?Ql(this,e==="extended",Sa(r)):null}toISOWeekDate(){return Ea(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=Sa(u),(i&&Ta.indexOf(u)>=3?"T":"")+CE(this,a==="extended",r,e,n,o,u)):null}toRFC2822(){return Ea(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ea(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")),Ea(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Vl}[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 ye.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=bC(r).map(ye.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=ND(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?nn.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),xE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?xE(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 hE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Cy(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=re.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Ca(o,e)}static fromFormatParser(e,r,n={}){if(H(e)||H(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=re.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):$n(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return _a}static get DATE_MED(){return NE}static get DATE_MED_WITH_WEEKDAY(){return oC}static get DATE_FULL(){return PE}static get DATE_HUGE(){return LE}static get TIME_SIMPLE(){return UE}static get TIME_WITH_SECONDS(){return kE}static get TIME_WITH_SHORT_OFFSET(){return ME}static get TIME_WITH_LONG_OFFSET(){return FE}static get TIME_24_SIMPLE(){return BE}static get TIME_24_WITH_SECONDS(){return WE}static get TIME_24_WITH_SHORT_OFFSET(){return GE}static get TIME_24_WITH_LONG_OFFSET(){return $E}static get DATETIME_SHORT(){return VE}static get DATETIME_SHORT_WITH_SECONDS(){return qE}static get DATETIME_MED(){return KE}static get DATETIME_MED_WITH_SECONDS(){return QE}static get DATETIME_MED_WITH_WEEKDAY(){return aC}static get DATETIME_FULL(){return jE}static get DATETIME_FULL_WITH_SECONDS(){return HE}static get DATETIME_HUGE(){return YE}static get DATETIME_HUGE_WITH_SECONDS(){return zE}};function hs(t){if(ue.isDateTime(t))return t;if(t&&t.valueOf&&mr(t.valueOf()))return ue.fromJSDate(t);if(t&&typeof t=="object")return ue.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(hs,"friendlyDateTime");var JD="3.7.2";Qe.DateTime=ue;Qe.Duration=ye;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Vt;Qe.Info=rn;Qe.Interval=nn;Qe.InvalidZone=Oa;Qe.Settings=se;Qe.SystemZone=Ss;Qe.VERSION=JD;Qe.Zone=hr});var Py=Q((YW,Ny)=>{"use strict";var sn=vy();Y.prototype.addYear=function(){this._date=this._date.plus({years:1})};Y.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};Y.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};Y.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}))};Y.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}))};Y.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}))};Y.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};Y.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};Y.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};Y.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}))};Y.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}))};Y.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}))};Y.prototype.getDate=function(){return this._date.day};Y.prototype.getFullYear=function(){return this._date.year};Y.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};Y.prototype.getMonth=function(){return this._date.month-1};Y.prototype.getHours=function(){return this._date.hour};Y.prototype.getMinutes=function(){return this._date.minute};Y.prototype.getSeconds=function(){return this._date.second};Y.prototype.getMilliseconds=function(){return this._date.millisecond};Y.prototype.getTime=function(){return this._date.valueOf()};Y.prototype.getUTCDate=function(){return this._getUTC().day};Y.prototype.getUTCFullYear=function(){return this._getUTC().year};Y.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};Y.prototype.getUTCMonth=function(){return this._getUTC().month-1};Y.prototype.getUTCHours=function(){return this._getUTC().hour};Y.prototype.getUTCMinutes=function(){return this._getUTC().minute};Y.prototype.getUTCSeconds=function(){return this._getUTC().second};Y.prototype.toISOString=function(){return this._date.toUTC().toISO()};Y.prototype.toJSON=function(){return this._date.toJSON()};Y.prototype.setDate=function(t){this._date=this._date.set({day:t})};Y.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};Y.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};Y.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};Y.prototype.setHours=function(t){this._date=this._date.set({hour:t})};Y.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};Y.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};Y.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};Y.prototype._getUTC=function(){return this._date.toUTC()};Y.prototype.toString=function(){return this.toDate().toString()};Y.prototype.toDate=function(){return this._date.toJSDate()};Y.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};Y.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function Y(t,e){var r={zone:e};if(t?t instanceof Y?this._date=t._date:t instanceof Date?this._date=sn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=sn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=sn.DateTime.fromISO(t,r),this._date.isValid||(this._date=sn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=sn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=sn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=sn.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(Y,"CronDate");Ny.exports=Y});var ky=Q((JW,Uy)=>{"use strict";function on(t){return{start:t,count:1}}s(on,"buildRange");function Ly(t,e){t.end=e,t.step=e-t.start,t.count=2}s(Ly,"completeRangeWithItem");function yd(t,e,r){e&&(e.count===2?(t.push(on(e.start)),t.push(on(e.end))):t.push(e)),r&&t.push(r)}s(yd,"finalizeCurrentRange");function XD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(yd(e,r,on(i)),r=void 0):r?r.count===1?Ly(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(on(r.start)),r=on(r.end),Ly(r,i)):(yd(e,r),r=on(i)):r=on(i)}return yd(e,r),e}s(XD,"compactField");Uy.exports=XD});var Fy=Q((ZW,My)=>{"use strict";var ZD=ky();function eb(t,e,r){var n=ZD(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(g,m){var y=l.start+m;return(y-l.start)%l.step===0?y:null}).filter(function(g){return g!=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(eb,"stringifyField");My.exports=eb});var Gy=Q((tG,Wy)=>{"use strict";var an=Py(),tb=Fy(),By=1e4;function k(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new an(e.currentDate,this._tz),this._startDate=e.startDate?new an(e.startDate,this._tz):null,this._endDate=e.endDate?new an(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=k._freezeFields(t)}s(k,"CronExpression");k.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];k.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};k.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"]}];k.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];k.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}};k.parseDefaults=["0","*","*","*","*","*"];k.standardValidCharacters=/^[,*\d/-]+$/;k.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;k.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;k.validCharacters={second:k.standardValidCharacters,minute:k.standardValidCharacters,hour:k.standardValidCharacters,dayOfMonth:k.dayOfMonthValidCharacters,month:k.standardValidCharacters,dayOfWeek:k.dayOfWeekValidCharacters};k._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");k._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=k.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(!k.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(y){if(y instanceof Array)for(var h=0,p=y.length;h<p;h++){var T=y[h];if(k._isValidConstraintChar(n,T)){l.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);l.push(T)}else{if(k._isValidConstraintChar(n,y)){l.push(y);return}var A=+y;if(Number.isNaN(A)||A<n.min||A>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(A=A%7),l.push(A)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(y){return y.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var g=0,m=f.length;g<m;g++)d(a(f[g]));else d(a(c));return l.sort(k._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 g=+f[0],m=+f[1];if(Number.isNaN(g)||Number.isNaN(m)||g<n.min||m>n.max)throw new Error("Constraint error, got range "+g+"-"+m+" expected range "+n.min+"-"+n.max);if(g>m)throw new Error("Invalid range: "+c);var y=+l;if(Number.isNaN(y)||y<=0)throw new Error("Constraint error, cannot repeat at every "+y+" time.");e==="dayOfWeek"&&m%7===0&&d.push(0);for(var h=g,p=m;h<=p;h++){var T=d.indexOf(h)!==-1;!T&&y>0&&y%l===0?(y=1,d.push(h)):y++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");k._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)};k._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=k.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(k._sortCompareFn)}};k._freezeFields=function(t){for(var e=0,r=k.map.length;e<r;++e){var n=k.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};k.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)}};k.prototype._findSchedule=s(function(e){function r(T,A){for(var _=0,I=A.length;_<I;_++)if(A[_]>=T)return A[_]===T;return A[0]===T}s(r,"matchSchedule");function n(T,A){if(A<6){if(T.getDate()<8&&A===1)return!0;var _=T.getDate()%7?1:0,I=T.getDate()-T.getDate()%7,O=Math.floor(I/7)+_;return O===A}return!1}s(n,"isNthDayMatch");function i(T){return T.length>0&&T.some(function(A){return typeof A=="string"&&A.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new an(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(T){return T.some(function(A){if(!i([A]))return!1;var _=Number.parseInt(A[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+A);return a.getDay()===_&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<By;){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 g=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(g=g||a.isLastDayOfMonth());var m=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||f(this.fields.dayOfWeek));var y=this.fields.dayOfMonth.length>=k.daysInMonth[a.getMonth()],h=this.fields.dayOfWeek.length===k.constraints[5].max-k.constraints[5].min+1,p=a.getHours();if(!g&&(!m||h)){this._applyTimezoneShift(a,o,"Day");continue}if(!y&&h&&!g){this._applyTimezoneShift(a,o,"Day");continue}if(y&&!h&&!m){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(p,this.fields.hour)){if(this._dstEnd===p&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==p){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(p-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>=By)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new an(a,this._tz),this._hasIterated=!0,a},"_findSchedule");k.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");k.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");k.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}};k.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}};k.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");k.prototype.reset=s(function(e){this._currentDate=new an(e||this._options.currentDate)},"reset");k.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=k.map.length;n<i;++n){var o=k.map[n],a=this.fields[o],u=k.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:k.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(tb(a,u.min,u.max))}return r.join(" ")},"stringify");k.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 an(void 0,n._tz)),k.predefined[o]&&(o=k.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=k.map.length-c.length,d=0,f=k.map.length;d<f;++d){var g=k.map[d],m=c[c.length>f?d:d-l];if(d<l||!m)u.push(k._parseField(g,k.parseDefaults[d],k.constraints[d]));else{var y=g==="dayOfWeek"?A(m):m;u.push(k._parseField(g,y,k.constraints[d]))}}for(var h={},d=0,f=k.map.length;d<f;d++){var p=k.map[d];h[p]=u[d]}var T=k._handleMaxDaysInMonth(h);return h.dayOfMonth=T||h.dayOfMonth,new k(h,a);function A(_){var I=_.split("#");if(I.length>1){var O=+I[I.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(I.length>2||Number.isNaN(O)||O<1||O>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=O,I[0]}return _}s(A,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");k.fieldsToExpression=s(function(e,r){function n(g,m,y){if(!m)throw new Error("Validation error, Field "+g+" is missing");if(m.length===0)throw new Error("Validation error, Field "+g+" contains no values");for(var h=0,p=m.length;h<p;h++){var T=m[h];if(!k._isValidConstraintChar(y,T)&&(typeof T!="number"||Number.isNaN(T)||T<y.min||T>y.max))throw new Error("Constraint error, got value "+T+" expected range "+y.min+"-"+y.max)}}s(n,"validateConstraints");for(var i={},o=0,a=k.map.length;o<a;++o){var u=k.map[o],c=e[u];n(u,c,k.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(k._sortCompareFn).filter(function(g,m,y){return!m||g!==y[m-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=k._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new k(i,r||{})},"fieldsToExpression");Wy.exports=k});var Vy=Q((nG,$y)=>{"use strict";var Na=Gy();function gr(){}s(gr,"CronParser");gr._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:Na.parse(e)};if(r.length>6)return{interval:Na.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");gr.parseExpression=s(function(e,r){return Na.parse(e,r)},"parseExpression");gr.fieldsToExpression=s(function(e,r){return Na.fieldsToExpression(e,r)},"fieldsToExpression");gr.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=gr._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");gr.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,gr.parseString(i.toString()))})},"parseFile");$y.exports=gr});var mF={};P(mF,{APIWarning:()=>Cn,ActiveContentFileError:()=>Ku,AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,BadRequestError:()=>Eo,BudibaseError:()=>go,Config:()=>rf,Cookie:()=>yr,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DEFAULT_TENANT_ID:()=>ce,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,Duration:()=>me,EmailUnavailableError:()=>er,Endpoint:()=>Gc,EndpointGroup:()=>Dn,EndpointGroupList:()=>Go,FeatureDisabledError:()=>Hu,FeatureDisabledWarning:()=>bc,ForbiddenError:()=>Qu,GlobalRole:()=>tf,HTTPError:()=>Be,Header:()=>Pe,InternalTable:()=>It,InvalidAPIKeyWarning:()=>bi,MAX_VALID_DATE:()=>qa,MIN_VALID_DATE:()=>cT,NotFoundError:()=>qu,NotImplementedError:()=>ju,RedisClient:()=>Re,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,UnexpectedError:()=>Vu,UsageLimitError:()=>Yu,UsageLimitWarning:()=>Dc,UserStatus:()=>Va,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt,accounts:()=>On,auth:()=>zm,blacklist:()=>pp,cache:()=>Di,configs:()=>tr,constants:()=>nf,context:()=>le,csv:()=>dh,db:()=>Ir,docIds:()=>Hf,docUpdates:()=>th,encryption:()=>Gm,env:()=>E,errors:()=>Ju,events:()=>wn,features:()=>km,getErrorMessage:()=>$A,getPublicError:()=>zu,init:()=>pF,installation:()=>rc,locks:()=>xr,logging:()=>uo,middleware:()=>Ym,objectStore:()=>bp,permissions:()=>Pm,platform:()=>ho,plugins:()=>Xm,queue:()=>Up,redis:()=>Zm,roles:()=>Nm,security:()=>Hp,sessions:()=>Xu,setEnv:()=>Ps,sql:()=>lh,tenancy:()=>fF,timers:()=>Du,userUtils:()=>cm,users:()=>Ii,utils:()=>di,warnings:()=>$m,withEnv:()=>mT});module.exports=$O(mF);var tr={};P(tr,{analyticsEnabled:()=>Zu,generateConfigID:()=>Lo,getConfig:()=>Ge,getDefaultGoogleConfig:()=>Tm,getGoogleConfig:()=>mc,getGoogleDatasourceConfig:()=>Am,getOIDCConfig:()=>Ek,getOIDCConfigById:()=>_m,getOIDCLogosDoc:()=>hk,getPlatformUrl:()=>Uo,getRecaptchaConfig:()=>Sk,getSCIMConfig:()=>Tk,getSMTPConfig:()=>yk,getSMTPConfigDoc:()=>k_,getSettingsConfig:()=>Sm,getSettingsConfigDoc:()=>wi,getTranslationsConfig:()=>pk,getTranslationsConfigDoc:()=>U_,save:()=>fk});var VO=["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"],qO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],mh=[...VO,...qO],hh={"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 "{{ name }}" created',"ai:config:updated":'AI configuration "{{ name }}" updated',"ai:config:deleted":'AI configuration "{{ name }}" deleted',"ai:agent:created":'AI agent "{{ name }}" created',"ai:agent:updated":'AI agent "{{ name }}" updated',"ai:agent:deleted":'AI agent "{{ name }}" deleted',"rag:file:uploaded":void 0,"rag:file:deleted":void 0,"rag:file:sharepoint:connected":void 0,"rag:file:sharepoint:disconnected":void 0,"rag:file:sharepoint:sync":void 0,"rag:file:processed":void 0,"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:automation_step:failed":void 0,"action:crud:executed":void 0,"action:crud:failed":void 0,"action:ai_agent:executed":void 0,"action:ai_agent:failed":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||{}),Vc=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.SENSITIVE_LONGFORM="sensitiveLongForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))(Vc||{}),Vo=(T=>(T.AIRTABLE="AIRTABLE",T.ARANGODB="ARANGODB",T.BUDIBASE="BUDIBASE",T.COUCHDB="COUCHDB",T.DYNAMODB="DYNAMODB",T.ELASTICSEARCH="ELASTICSEARCH",T.FIRESTORE="FIRESTORE",T.GOOGLE_SHEETS="GOOGLE_SHEETS",T.MONGODB="MONGODB",T.MYSQL="MYSQL",T.ORACLE="ORACLE",T.POSTGRES="POSTGRES",T.REDIS="REDIS",T.REST="REST",T.S3="S3",T.SNOWFLAKE="SNOWFLAKE",T.SQL_SERVER="SQL_SERVER",T))(Vo||{});var qc=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(qc||{});var KO=W(require("lodash/isPlainObject"));var Vr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Vr||{}),cr=(o=>(o.CONTAINS="contains",o.NOT_CONTAINS="notContains",o.CONTAINS_ANY="containsAny",o.ONE_OF="oneOf",o.NOT_ONE_OF="notOneOf",o))(cr||{}),xn=(e=>(e.RANGE="range",e))(xn||{}),Li=(r=>(r.AND="$and",r.OR="$or",r))(Li||{});function qo(t){return Object.values(Li).includes(t)}s(qo,"isLogicalSearchOperator");function gh(t){return Object.values(Vr).includes(t)}s(gh,"isBasicSearchOperator");function Eh(t){return Object.values(cr).includes(t)}s(Eh,"isArraySearchOperator");function Ko(t){return Object.values(xn).includes(t)}s(Ko,"isRangeSearchOperator");var yh=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Ui=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Ui||{});var ki=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ki||{});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 jo=s(t=>t.hosting==="cloud","isCloudAccount");var Ho=s(t=>t.authType==="sso","isSSOAccount");var D="_",Ne="\uFFF0",Ot=s(t=>`${t}_`,"prefixed"),ae=($=>($.USER="us",$.GROUP="gr",$.CONFIG="config",$.TEMPLATE="template",$.WORKSPACE="app",$.DEV="dev",$.WORKSPACE_DEV="app_dev",$.WORKSPACE_METADATA="app_metadata",$.ROLE="role",$.DEV_INFO="devinfo",$.AUTOMATION_LOG="log_au",$.ACCOUNT_METADATA="acc_metadata",$.PLUGIN="plg",$.DATASOURCE="datasource",$.DATASOURCE_PLUS="datasource_plus",$.WORKSPACE_BACKUP="backup",$.TABLE="ta",$.ROW="ro",$.AUTOMATION="au",$.LINK="li",$.WEBHOOK="wh",$.INSTANCE="inst",$.LAYOUT="layout",$.SCREEN="screen",$.QUERY="query",$.DEPLOYMENTS="deployments",$.METADATA="metadata",$.MEM_VIEW="view",$.USER_FLAG="flag",$.AUTOMATION_METADATA="meta_au",$.AUDIT_LOG="al",$.SCIM_LOG="scimlog",$.ROW_ACTIONS="ra",$.OAUTH2_CONFIG="oauth2",$.OAUTH2_CONFIG_LOG="oauth2log",$.AGENT="agent",$.CHAT_APP="chatapp",$.CHAT_CONVERSATION="chatconvo",$.CHAT_IDENTITY_LINK="chatidentitylink",$.AGENT_TOOL_SOURCE="agenttoolsource",$.AGENT_FILE="agentfile",$.AGENT_LOG_SESSION="agentlogsession",$.AGENT_LOG_REQUEST="agentlogrequest",$.AGENT_REQUEST="agentrequest",$.AGENT_TEST_SUITE="agenttestsuite",$.AGENT_TEST_RUN="agenttestrun",$.AGENT_KNOWLEDGE_SOURCE_SYNC_STATE="agentknowledgesync",$.AGENT_KNOWLEDGE_SOURCE_CONNECTION="agentknowledgeconn",$.KNOWLEDGE_BASE_FILE="knowledgebasefile",$.AI_CONFIG="aiconfig",$.LITELLM_KEY="litellmkey",$.KNOWLEDGE_BASE="knowledgebase",$.WORKSPACE_APP="workspace_app",$.WORKSPACE_FAVOURITE="workspace_favourite",$.PROJECT="project",$.AUTO_COLUMN_STATE="autocolumn_state",$.ESCALATION_CONTEXT="escalation_context",$.ESCALATION_NOTIFICATION="escalation_notification",$))(ae||{});var It=(e=>(e.USER_METADATA="ta_users",e))(It||{});function vn(t){return!!t.providerType}s(vn,"isSSOUser");var Kc=(f=>(f.OBJECT="object",f.STRING="string",f.BOOLEAN="boolean",f.NUMBER="number",f.ARRAY="array",f.JSON="json",f.DATE="date",f.DATETIME="datetime",f.ATTACHMENT="attachment",f.LONGFORM="longform",f.JS="javascript",f))(Kc||{}),Qc=(C=>(C.TABLE="table",C.ROW="row",C.ROWS="rows",C.WIDE="wide",C.QUERY="query",C.QUERY_PARAMS="queryParams",C.QUERY_LIMIT="queryLimit",C.LOOP_OPTION="loopOption",C.ITEM="item",C.CODE="code",C.FILTERS="filters",C.COLUMN="column",C.TRIGGER_SCHEMA="triggerSchema",C.CRON="cron",C.WEBHOOK_URL="webhookUrl",C.AUTOMATION="automation",C.AUTOMATION_FIELDS="automationFields",C.MULTI_ATTACHMENTS="multi_attachments",C.TRIGGER_FILTER="trigger_filter",C.CATEGORIES="categories",C.AGENT="agent",C.OUTPUT_SCHEMA="outputSchema",C))(Qc||{}),jc=(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))(jc||{});var Hc=(B=>(B.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",B.CREATE_ROW="CREATE_ROW",B.GET_ROW="GET_ROW",B.UPDATE_ROW="UPDATE_ROW",B.DELETE_ROW="DELETE_ROW",B.QUERY_ROWS="QUERY_ROWS",B.EXECUTE_BASH="EXECUTE_BASH",B.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",B.EXECUTE_SCRIPT="EXECUTE_SCRIPT",B.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",B.EXECUTE_QUERY="EXECUTE_QUERY",B.SERVER_LOG="SERVER_LOG",B.DELAY="DELAY",B.FILTER="FILTER",B.API_REQUEST="API_REQUEST",B.LOOP="LOOP",B.COLLECT="COLLECT",B.OPENAI="OPENAI",B.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",B.BRANCH="BRANCH",B.CLASSIFY_CONTENT="CLASSIFY_CONTENT",B.PROMPT_LLM="PROMPT_LLM",B.TRANSLATE="TRANSLATE",B.SUMMARISE="SUMMARISE",B.GENERATE_TEXT="GENERATE_TEXT",B.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",B.EXTRACT_STATE="EXTRACT_STATE",B.LOOP_V2="LOOP_V2",B.AGENT="AGENT",B.ESCALATION="ESCALATION",B.discord="discord",B.slack="slack",B.zapier="zapier",B.integromat="integromat",B.n8n="n8n",B))(Hc||{}),Th=[...Object.values(Hc),...Object.values(jc)];function Sh(t){return t.stepId==="BRANCH"}s(Sh,"isBranchStep");var Yc="bb_internal";var Ah=["attachment_single","attachment","signature_single","bb_reference","json","array"];var nf={};P(nf,{AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,Config:()=>rf,Cookie:()=>yr,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DEFAULT_TENANT_ID:()=>ce,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,GlobalRole:()=>tf,Header:()=>Pe,InternalTable:()=>It,MAX_VALID_DATE:()=>qa,MIN_VALID_DATE:()=>cT,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,UserStatus:()=>Va,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt});var Pe=(I=>(I.API_KEY="x-budibase-api-key",I.LICENSE_KEY="x-budibase-license-key",I.API_VER="x-budibase-api-version",I.APP_ID="x-budibase-app-id",I.SESSION_ID="x-budibase-session-id",I.CLIENT="x-budibase-client",I.TYPE="x-budibase-type",I.PREVIEW_ROLE="x-budibase-role",I.TENANT_ID="x-budibase-tenant-id",I.VERIFICATION_CODE="x-budibase-verification-code",I.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",I.RESET_PASSWORD_CODE="x-budibase-reset-password-code",I.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",I.TOKEN="x-budibase-token",I.CSRF_TOKEN="x-csrf-token",I.CORRELATION_ID="x-budibase-correlation-id",I.AUTHORIZATION="authorization",I.MIGRATING_APP="x-budibase-migrating-app",I.SKIP_MIGRATING_WAIT="x-budibase-migrating-app-skip-wait",I.COOKIE="cookie",I))(Pe||{});var Nn={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Mi={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var Le={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"},NotIn:{value:"notOneOf",label:"Is not in"},ContainsAny:{value:"containsAny",label:"Has any"}},_h={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Pn="datasource_internal_bb_default";var Er={};P(Er,{ColumnSplitter:()=>kd,NoEmptyFilterStrings:()=>nT,buildQuery:()=>iT,cleanupQuery:()=>Bd,fixupFilterArrays:()=>Gd,getKeyNumbering:()=>Wd,getValidOperatorsForType:()=>Nb,hasFilters:()=>Md,limit:()=>oT,recurseLogicalOperators:()=>Fd,removeKeyNumbering:()=>Yo,runQuery:()=>Ma,search:()=>Ub,sort:()=>sT,splitFiltersArray:()=>zo});var zn=W(Oh());var wt={};P(wt,{filterValueToLabel:()=>JO,hasSchema:()=>XO,isSupportedUserSearch:()=>Rh,nameToUrl:()=>nI,parallelForeach:()=>zO,processSearchFilters:()=>Xc,toMap:()=>eI,trimOtherProps:()=>ZO,unreachable:()=>YO});var wh=W(require("lodash/pick"));var HO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function YO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(YO,"unreachable");async function zO(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(zO,"parallelForeach");function JO(){return Object.keys(Le).reduce((t,e)=>{let n=Le[e];return t[n.value]=n.label,t},{})}s(JO,"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 ZO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(ZO,"trimOtherProps");function Rh(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(qo(o)){for(let l of t[o].conditions)if(!Rh(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(Rh,"isSupportedUserSearch");function Xc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=zo(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,wh.default)(i,HO);return o.field=Yo(o.field),o})}]}}s(Xc,"processSearchFilters");function eI(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(eI,"toMap");var tI=s(t=>t?t.trim():null,"resolveWorkspaceName"),rI=s(t=>{let e,r=tI(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),nI=s(t=>{let e=rI(t);return iI(e)},"nameToUrl"),iI=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var ke={};P(ke,{accountPortalAccountUrl:()=>Rd,accountPortalBillingUrl:()=>Cd,accountPortalUpgradeUrl:()=>Dd,agentChatUrl:()=>Ld,appAgentUrl:()=>Ua,appChatUrl:()=>La,applyBaseUrl:()=>zy,builderAppsUrl:()=>Pd,builderSettingsAuthUrl:()=>vd,builderSettingsEmailUrl:()=>xd,builderSettingsPeopleUsersUrl:()=>Nd,builderWorkspacesUrl:()=>bd,cancelableTimeout:()=>Ch,cron:()=>Db,deepGet:()=>Zc,duplicateName:()=>_b,escapeHtml:()=>cI,formatBytes:()=>Cb,getNextPreviewDevice:()=>Tb,getPreviewDeviceIcon:()=>Sb,getPreviewModalDevice:()=>Ab,getSequentialName:()=>Ob,getUserColor:()=>oI,getUserInitials:()=>sI,getUserLabel:()=>aI,isEnvironmentVariableKey:()=>eT,isGoogleSheets:()=>dI,isSQL:()=>fI,lists:()=>Id,normaliseSafeCssColor:()=>mI,normalizeForComparison:()=>lI,retry:()=>pI,roles:()=>Od,schema:()=>ws,structuredOutput:()=>Sd,urlHelpers:()=>Zy,views:()=>_d,wait:()=>el,withTimeout:()=>uI});var Zc=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"),sI=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"),oI=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"),aI=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function Ch(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(Ch,"cancelableTimeout");async function uI(t,e){let[r,n]=Ch(t),i=await Promise.race([e(),r]);return n(),i}s(uI,"withTimeout");var cI=s(t=>t==null?"":String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),"escapeHtml"),lI=s(t=>t.toLowerCase().trim(),"normalizeForComparison");function dI(t){return t==="GOOGLE_SHEETS"}s(dI,"isGoogleSheets");function fI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(fI,"isSQL");async function el(t){return new Promise(e=>setTimeout(e,t))}s(el,"wait");async function pI(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 el(o);try{return await t()}catch(a){n=a}}throw n}s(pI,"retry");var mI=s(t=>{if(t==null||t.trim()==="")return;let e=t.trim();if(e.includes(";")||/\burl\s*\(/i.test(e))throw new Error("Color is invalid.");return e},"normaliseSafeCssColor");var Ky=W(Rt()),Qy=W(Vy());var qy="(Input cron: ",rb={"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 nb(t,e){return new Intl.DateTimeFormat("en-GB",{weekday:"short",day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:e}).format(t)}s(nb,"formatExecutionDate");function ib(t){let e=[];for(let r of t){r.includes(qy)&&(r=r.split(qy)[0].trim());for(let[n,i]of Object.entries(rb))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(ib,"improveErrors");function jy(t,e=4,r){let n=Qy.default.parseExpression(t,r?{tz:r}:void 0),i=[];for(let o=0;o<e;o++)i.push(nb(n.next().toDate(),r));return i}s(jy,"getNextExecutionDates");function Hy(t){let e=(0,Ky.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:ib(e.getError())}}s(Hy,"validate");var ws={};P(ws,{decodeNonAscii:()=>Td,encodeNonAscii:()=>ab,isDeprecatedSingleUserColumn:()=>sb,isNumeric:()=>ub,isRequired:()=>ob});function sb(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(sb,"isDeprecatedSingleUserColumn");function ob(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(ob,"isRequired");function ab(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(ab,"encodeNonAscii");function Td(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(Td,"decodeNonAscii");function ub(t){return t.type==="number"||t.type==="bigint"}s(ub,"isNumeric");var Sd={};P(Sd,{normalizeSchemaForStructuredOutput:()=>cb});function cb(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 g=f;if(g.required===!0){a.push(d);let{required:m,...y}=g;u[d]=e(y)}else u[d]=e(g)}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(cb,"normalizeSchemaForStructuredOutput");var _d={};P(_d,{basicFields:()=>mb,calculationFields:()=>pb,hasCalculationFields:()=>fb,isBasicViewField:()=>lb,isCalculationField:()=>Rs,isCalculationView:()=>db,isV2:()=>hb,isVisible:()=>Yy});var Ad=W(require("lodash/pickBy"));function Rs(t){return"calculationType"in t}s(Rs,"isCalculationField");function lb(t){return!Rs(t)}s(lb,"isBasicViewField");function db(t){return t.type==="calculation"}s(db,"isCalculationView");function fb(t){return Object.values(t.schema||{}).some(Rs)}s(fb,"hasCalculationFields");function pb(t){return(0,Ad.default)(t.schema||{},Rs)}s(pb,"calculationFields");function Yy(t){return t.visible!==!1}s(Yy,"isVisible");function mb(t,e){let{visible:r=!0}=e||{};return(0,Ad.default)(t.schema||{},n=>!Rs(n)&&(!r||Yy(n)))}s(mb,"basicFields");function hb(t){return t.version===2}s(hb,"isV2");var Od={};P(Od,{checkForRoleInheritanceLoops:()=>Eb});function gb(t){return`role${"_"}${t}`}s(gb,"prefixForCheck");function Eb(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=gb(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(Eb,"checkForRoleInheritanceLoops");var Id={};P(Id,{punctuateList:()=>yb});function yb(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(yb,"punctuateList");var wd=["desktop","tablet","mobile"],Tb=s(t=>{let e=wd.indexOf(t||"desktop"),n=((e===-1?0:e)+1)%wd.length;return wd[n]},"getNextPreviewDevice"),Sb=s(t=>t==="mobile"?"device-mobile-camera":t==="tablet"?"device-tablet-camera":"monitor","getPreviewDeviceIcon"),Ab=s(t=>t&&t!=="desktop"?t:null,"getPreviewModalDevice");var _b=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"),Ob=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 Ib=/{?{{([^{].*?)}}}?/g;function zy(t,e){if(!e)return t;let r=t.match(Ib)??[],n=[],i=t;for(let l of r){let d=`:${l}`;i.includes(d)&&(n.push(l),i=i.replace(d,":0"))}let o=s(l=>`__hbs${l}__`,"placeholder"),a=r.filter(l=>!n.includes(l));i=a.reduce((l,d,f)=>l.replace(d,o(f)),i);let u=s(l=>a.reduce((d,f,g)=>d.replace(o(g),f),l),"restore"),c=e.replace(/\/$/,"");try{let l=new URL(i),d=l.pathname==="/"?"":l.pathname;return c+u(d+l.search+l.hash)}catch{let l=u(i);return l.startsWith("/")?c+l:c}}s(zy,"applyBaseUrl");var Jy=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),wb=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),qt=s((t,e)=>{let r=Jy(e);if(!t)return r;let n=wb(t);return r?`${n}${r}`:n},"joinBaseAndPath"),Rb=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),Xy=s(t=>Rb(Jy(t)),"normalizeAppUrl"),Rd=s(t=>qt(t,Mi.ACCOUNT),"accountPortalAccountUrl"),Cd=s((t,e)=>{let r=typeof e=="string"||e==null?{tenantId:e}:e,n=qt(t,Mi.BILLING),i=new URLSearchParams;r?.tenantId&&i.set("tenantId",r.tenantId),r?.purchasePrepaidAiCredits&&i.set("purchasePrepaidAiCredits","1");let o=i.toString();return o?`${n}?${o}`:n},"accountPortalBillingUrl"),Dd=s((t,e)=>{if(e){let r=qt(t,Mi.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return qt(t,Mi.UPGRADE)},"accountPortalUpgradeUrl"),bd=s(t=>qt(t,Nn.WORKSPACES),"builderWorkspacesUrl"),xd=s(t=>qt(t,Nn.SETTINGS_EMAIL),"builderSettingsEmailUrl"),vd=s(t=>qt(t,Nn.SETTINGS_AUTH),"builderSettingsAuthUrl"),Nd=s(t=>qt(t,Nn.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Pd=s(t=>qt(t,Nn.APPS),"builderAppsUrl"),La=s(t=>`/app-chat${Xy(t)}`,"appChatUrl"),Ua=s((t,e)=>`${Xy(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),Ld=s((t,e)=>La(Ua(t,e)),"agentChatUrl"),Zy={accountPortalAccountUrl:Rd,accountPortalBillingUrl:Cd,accountPortalUpgradeUrl:Dd,builderWorkspacesUrl:bd,builderSettingsEmailUrl:xd,builderSettingsAuthUrl:vd,builderSettingsPeopleUsersUrl:Nd,builderAppsUrl:Pd,appChatUrl:La,appAgentUrl:Ua,agentChatUrl:Ld};function Cb(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(Cb,"formatBytes");function eT(t){return/^{{\s*env\.([^\s]+)\s*}}$/.test(String(t))}s(eT,"isEnvironmentVariableKey");var Db={getNextExecutionDates:jy,validate:Hy};var ka=W(require("lodash/isPlainObject")),Ud=W(require("lodash/isEmpty"));var xb=/{{([^{].*?)}}/g,rT=Object.values(Li),vb=[...Object.values(Vr),...Object.values(cr),...Object.values(xn)],Nb=s((t,e,r)=>{let n=Le,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In,n.NotIn],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,n.NotIn]: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"||ws.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]: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,n.NotIn]),u},"getValidOperatorsForType"),nT=[Le.StartsWith.value,Le.Like.value,Le.Equals.value,Le.NotEquals.value,Le.Contains.value,Le.NotContains.value,Le.ContainsAny.value,Le.In.value,Le.NotIn.value];function Fd(t,e){for(let r of rT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Fd,"recurseLogicalOperators");var Bd=s(t=>{for(let e of nT)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===""||Pb(o))&&delete t[e][i]}return t=Fd(t,Bd),t},"cleanupQuery");function Pb(t){return Array.isArray(t)&&t.length===0}s(Pb,"isEmptyArray");var Yo=s(t=>Wd(t).key,"removeKeyNumbering"),Wd=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"),kd=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}=Wd(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=Td(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function Lb(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(xb)||[]).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(Ko(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"||r==="notOneOf"?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(Ko(r)){let l=_h[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(gh(r)||Eh(r)||Ko(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(Lb,"buildCondition");function zo(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(zo,"splitFiltersArray");function iT(t){if(!t)return{};if(Array.isArray(t)&&(t=Xc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=tT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=iT(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=zo(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=tT(n.logicalOperator)),{[u]:{conditions:a.map(Lb).filter(c=>c)}}})},e}s(iT,"buildQuery");function tT(t){return t==="all"?"$and":"$or"}s(tT,"logicalOperatorFromUI");function Gd(t){if(!t)return t;for(let e of Object.values(cr)){let r=t[e];if(!(r==null||!(0,ka.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 Fd(t,Gd),t}s(Gd,"fixupFilterArrays");function Ub(t,e){let r=Ma(t,e.query);e.sort&&(r=sT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=oT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(Ub,"search");function Ma(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Bd(e),e=Gd(e),!Md(e)&&e.onEmptyFilter==="none")return[];let r=s((R,w)=>b=>{for(let[G,ee]of Object.entries(e[R]||{})){let M=qo(R)?b:Zc(b,Yo(G)),U=w(M,ee);if(e.allOr&&U)return!0;if(!e.allOr&&!U)return!1}return!e.allOr},"match"),n=r("string",(R,w)=>typeof R!="string"||typeof w!="string"?!1:R.toLowerCase().startsWith(w.toLowerCase())),i=r("fuzzy",(R,w)=>typeof R!="string"||typeof w!="string"?!1:R.toLowerCase().includes(w.toLowerCase())),o=r("range",(R,w)=>{if(R==null||R===""||((0,ka.default)(w.low)&&(0,Ud.default)(w.low)&&(w.low=void 0),(0,ka.default)(w.high)&&(0,Ud.default)(w.high)&&(w.high=void 0),w.low==null&&w.high==null))return!1;let b=+R;if(!isNaN(b)){let ee=+w.low,M=+w.high;if(!isNaN(ee)&&!isNaN(M))return b>=ee&&b<=M;if(isNaN(ee)){if(!isNaN(M))return b<=M}else return b>=ee}let G=(0,zn.default)(R);if(G.isValid()){let ee=(0,zn.default)(w.low||"0000-00-00T00:00:00.000Z"),M=(0,zn.default)(w.high||"9999-00-00T00:00:00.000Z");if(ee.isValid()&&M.isValid())return G.isAfter(ee)&&G.isBefore(M)||G.isSame(ee)||G.isSame(M);if(ee.isValid())return G.isAfter(ee)||G.isSame(ee);if(M.isValid())return G.isBefore(M)||G.isSame(M)}return w.low!=null&&w.high!=null?R>=w.low&&R<=w.high:w.low!=null?R>=w.low:w.high!=null?R<=w.high:!1}),a=s((R,w)=>{if(Array.isArray(R)){for(let G of R)if(a(G,w))return!0;return!1}if(R&&typeof R=="object"&&typeof w=="string")return R._id===w;if(R===w)return!0;if(R==null&&w!=null||R!=null&&w==null)return!1;let b=(0,zn.default)(R);if(b.isValid()){let G=(0,zn.default)(w);if(G.isValid())return b.isSame(G)}return!1},"_valueMatches"),u=s(R=>(...w)=>!R(...w),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(R=>typeof R=="string"?R==="":Array.isArray(R)?R.length===0:R&&typeof R=="object"?Object.keys(R).length===0:R==null,"_empty"),f=r("empty",d),g=r("notEmpty",u(d)),m=s((R,w)=>(typeof w=="string"&&(w=w.split(",")),typeof R=="number"&&(w=w.map(b=>parseFloat(b))),Array.isArray(w)?w.some(b=>a(R,b)):!1),"_oneOf"),y=r("oneOf",m),h=r("notOneOf",u(m)),p=s(R=>(w,b)=>!Array.isArray(w)||(typeof b=="string"&&(b=b.split(","),typeof w[0]=="number"&&(b=b.map(G=>parseFloat(G)))),!Array.isArray(b))?!1:b.length===0?!0:b[R](G=>a(w,G)),"_contains"),T=r("contains",(R,w)=>Array.isArray(w)&&w.length===0?!0:p("every")(R,w)),A=r("notContains",(R,w)=>Array.isArray(w)&&w.length===0?!0:u(p("every"))(R,w)),_=r("containsAny",p("some")),I=r("$and",(R,w)=>{if(!w.length)return!1;for(let b of w)if(!Ma([R],b).length)return!1;return!0}),O=r("$or",(R,w)=>{if(!w.length)return!1;for(let b of w)if(Ma([R],{...b,allOr:!0}).length)return!0;return!1}),C=s(R=>{let w={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:g,oneOf:y,notOneOf:h,contains:T,containsAny:_,notContains:A,$and:I,$or:O},b=Object.entries(e||{}).filter(([G,ee])=>!["allOr","onEmptyFilter"].includes(G)&&ee&&Object.keys(ee).length>0).map(([G])=>w[G]?.(R)??!1);return Md(e)?e.allOr?b.some(G=>G===!0):b.every(G=>G===!0):!0},"docMatch");return t.filter(C)}s(Ma,"runQuery");function sT(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(sT,"sort");function oT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(oT,"limit");var Md=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of rT)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of vb){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 Me={};P(Me,{automations:()=>qd,screens:()=>Hd,users:()=>jd,workspaces:()=>Vd});var Vd={};P(Vd,{getDevWorkspaceID:()=>kb,getProdWorkspaceID:()=>Ds});var $d=Ot("app"),Cs=Ot("app_dev");function kb(t){if(!t)throw new Error("No workspace ID provided");if(t.startsWith(Cs))return t;let e=t.split($d);e.shift();let r=e.join($d);return`${Cs}${r}`}s(kb,"getDevWorkspaceID");function Ds(t){if(!t)throw new Error("No workspace ID provided");if(!t.startsWith(Cs))return t;let e=t.split(Cs);e.shift();let r=e.join(Cs);return`${$d}${r}`}s(Ds,"getProdWorkspaceID");var qd={};P(qd,{checkForCollectStep:()=>Wb,isAppAction:()=>Bb,isRowAction:()=>Mb,isWebhookAction:()=>Fb});function Mb(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(Mb,"isRowAction");function Fb(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(Fb,"isWebhookAction");function Bb(t){return t.definition.trigger?.stepId==="APP"}s(Bb,"isAppAction");function aT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Sh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(aT(r))return!0}}return!1}s(aT,"hasCollectBlockRecursive");function Wb(t){return aT(t.definition.steps)}s(Wb,"checkForCollectStep");var jd={};P(jd,{canCreateApps:()=>Gb,containsUserID:()=>Yb,getGlobalUserID:()=>Hb,getUserAppGroups:()=>zb,hasAdminPermissions:()=>Qd,hasAppBuilderPermissions:()=>Ba,hasBuilderPermissions:()=>Qb,hasCreatorPermissions:()=>Wa,isAdmin:()=>bs,isAdminOrBuilder:()=>Vb,isAdminOrGlobalBuilder:()=>qb,isAdminOrWorkspaceBuilder:()=>$b,isBuilder:()=>Kd,isCreator:()=>jb,isGlobalBuilder:()=>Fa,userAppAccessList:()=>Jb});function Kd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Ds(e))):!1}s(Kd,"isBuilder");function Fa(t){return Kd(t)&&!Ba(t)||bs(t)}s(Fa,"isGlobalBuilder");function Gb(t){return Fa(t)||Wa(t)}s(Gb,"canCreateApps");function bs(t){return t?Qd(t):!1}s(bs,"isAdmin");function $b(t,e){return t?!!(bs(t)||e&&t.builder?.apps?.includes(Ds(e))):!1}s($b,"isAdminOrWorkspaceBuilder");function Vb(t,e){return Kd(t,e)||bs(t)}s(Vb,"isAdminOrBuilder");function qb(t){return Fa(t)||bs(t)}s(qb,"isAdminOrGlobalBuilder");function Ba(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Ba,"hasAppBuilderPermissions");function Kb(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(Kb,"hasAppCreatorPermissions");function Qb(t){return t?t.builder?.global||Ba(t)||Wa(t):!1}s(Qb,"hasBuilderPermissions");function Qd(t){return t?!!t.admin?.global:!1}s(Qd,"hasAdminPermissions");function Wa(t){return t?!!t.builder?.creator:!1}s(Wa,"hasCreatorPermissions");function jb(t){return t?Fa(t)||Qd(t)||Wa(t)||Ba(t)||Kb(t):!1}s(jb,"isCreator");function Hb(t){if(typeof t!="string")return t;let e=`ro${"_"}ta_users${"_"}`;return t.startsWith(e)?t.split(e)[1]:t}s(Hb,"getGlobalUserID");function Yb(t){return typeof t!="string"?!1:t.includes(`us${"_"}`)}s(Yb,"containsUserID");function uT(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(uT,"getUserGroups");function zb(t,e,r){let n=Ds(t);return uT(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(zb,"getUserAppGroups");function Jb(t,e){let n=uT(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Jb,"userAppAccessList");var Hd={};P(Hd,{findInSettings:()=>Xb});function Xb(t,e){let r=[];function n(i,o=""){if(!(!i||typeof i!="object"))for(let[a,u]of Object.entries(i)){let c=o?`${o}.${a}`:a;u&&(typeof u=="string"&&u.includes(e)?r.push({setting:c,value:u}):typeof u=="object"&&n(u,c))}}return s(n,"recurse"),n(t.props),n(t.onLoad||[],"onLoad"),r}s(Xb,"findInSettings");var Ga=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ga||{}),Kt=(h=>(h.USER_BY_WORKSPACE="by_app",h.USER_BY_EMAIL="by_email2",h.BY_API_KEY="by_api_key",h.AGENT_REQUESTS_BY_AGENT="agent_requests_by_agent",h.AGENT_REQUESTS_BY_UPDATED_AT="agent_requests_by_updated_at_2",h.AGENT_REQUESTS_BY_STATUS_AND_UPDATED_AT="agent_requests_by_status_and_updated_at",h.LINK="by_link",h.ROUTING="screen_routes_2",h.PROJECT_MEMBERS="project_members",h.AUTOMATION_LOGS="automation_logs",h.ACCOUNT_BY_EMAIL="account_by_email",h.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",h.USER_BY_GROUP="user_by_group",h.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",h.WORKSPACE_BACKUP_BY_EXPIRY="workspace_backup_by_expiry",h))(Kt||{}),Jn={by_email2:["by_email"],agent_requests_by_updated_at_2:["agent_requests_by_updated_at"]},pe={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"}},rt=Ot("app"),$a=Ot("app_dev"),nt=$a,Yd="internal",zd="budibase",xt="_design/sqlite",Jd="ta_bb_jobs",Xd="ta_bb_inventory",Zd="ta_bb_expenses",ef="ta_bb_employee",xs=`ro${"_"}ta_users${"_"}`,vs=(r=>(r[r.SQLITE=xt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(vs||{});var Va=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Va||{}),yr=(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))(yr||{}),tf=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(tf||{}),rf=(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))(rf||{}),cT=new Date(-2147483647e3),qa=new Date(2147483647e3),ce="default";var Di={};P(Di,{CacheKey:()=>Oe,TTL:()=>gi,bustCache:()=>Ei,destroy:()=>fo,docWritethrough:()=>Mp,generic:()=>Gu,get:()=>lo,increment:()=>vA,invite:()=>An,keys:()=>Wu,passwordReset:()=>Gp,store:()=>yn,user:()=>nr,withCache:()=>br,withCacheWithDynamicTTL:()=>xA,workspace:()=>Vs,writethrough:()=>ym});var Mp={};P(Mp,{DocWritethrough:()=>kp,DocWritethroughProcessor:()=>co,getProcessor:()=>iP,init:()=>bA});var Up={};P(Up,{BudibaseQueue:()=>yt,InMemoryQueue:()=>Cu,JobQueue:()=>fi,QueuedProcessor:()=>Lp,UnretriableError:()=>Fu,shutdown:()=>yN});var sf=require("crypto"),Qa=require("fs"),fT=require("lodash"),Ns=require("path");var Zb=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Ns.resolve)((0,Ns.join)(__dirname,"..","..","..")),lT=!1;!lT&&Ka()&&!of()&&(require("dotenv").config({path:(0,Ns.join)(Zb,".env")}),lT=!0);function of(){return pT()}s(of,"isTest");function pT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(pT,"isJest");function Ka(){return process.env.NODE_ENV!=="production"}s(Ka,"isDev");function ex(t){if(t)return parseInt(t)}s(ex,"parseIntSafe");var Xn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},dT=!!parseInt(process.env.SELF_HOSTED||"");function tx(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(tx,"getAPIEncryptionKey");function rx(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(rx,"httpLogging");function nx(){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(Ka()&&!of())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(nx,"getPackageJsonFields");function ix(){return ht.SERVICE_TYPE==="worker"}s(ix,"isWorker");function sx(){return ht.SERVICE_TYPE==="apps"}s(sx,"isApps");function ox(){return ht.BUDIBASE_ENVIRONMENT==="QA"}s(ox,"isQA");function ax(){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(ax,"getServiceName");var ht={isTest:of,isJest:pT,isDev:Ka,isWorker:ix,isApps:sx,isQA:ox,isProd:s(()=>!Ka(),"isProd"),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,sf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,sf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:tx(),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,MICROSOFT_CLIENT_ID:process.env.MICROSOFT_CLIENT_ID,MICROSOFT_CLIENT_SECRET:process.env.MICROSOFT_CLIENT_SECRET,MICROSOFT_TENANT_ID:process.env.MICROSOFT_TENANT_ID,RAG_SHAREPOINT_DEFAULT_SCOPE:process.env.RAG_SHAREPOINT_DEFAULT_SCOPE||"offline_access User.Read https://graph.microsoft.com/Sites.Read.All",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:dT,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,POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS:process.env.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS,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||Xn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Xn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Xn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Xn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Xn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Xn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:ax(),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:rx(),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:dT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING:process.env.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING,...nx(),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,ht[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:ex(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",COUCH_DB_SQS_PORT:process.env.COUCH_DB_SQS_PORT||"4984"};function Ps(t){let e=(0,fT.cloneDeep)(ht),r;for(r in t)ht._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))ht._set(n,i)}}s(Ps,"setEnv");function mT(t,e){let r=Ps(t);try{let n=e();return n instanceof Promise?n.finally(r):(r(),n)}catch(n){throw r(),n}}s(mT,"withEnv");var hT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","MICROSOFT_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(ht))e==="0"&&(ht[t]=0),e==="false"&&(ht[t]=0);var E=ht;var Ya={};P(Ya,{Databases:()=>af,SEPARATOR:()=>Zn,SelectableDatabase:()=>ja,getRedisClusterOptions:()=>uf,getRedisConnectionDetails:()=>Ha,getRedisOptions:()=>un,removeDbPrefix:()=>cf});var Zn="-",af=(_=>(_.PW_RESETS="pwReset",_.VERIFICATIONS="verification",_.INVITATIONS_LIST="invitationList",_.DEV_LOCKS="devLocks",_.DEBOUNCE="debounce",_.SESSIONS="session",_.USER_CACHE="users",_.FLAGS="flags",_.WORKSPACE_METADATA="appMetadata",_.QUERY_VARS="queryVars",_.LICENSES="license",_.GENERIC_CACHE="data_cache",_.WRITE_THROUGH="writeThrough",_.LOCKS="locks",_.SOCKET_IO="socket_io",_.BPM_EVENTS="bpmEvents",_.DOC_WRITE_THROUGH="docWriteThrough",_.RECAPTCHA_SESSION="recaptchaSession",_.OPENAPI_IMPORT_SPECS="openapiImportSpecs",_))(af||{}),ja=(p=>(p[p.DEFAULT=0]="DEFAULT",p[p.SOCKET_IO=1]="SOCKET_IO",p[p.RATE_LIMITING=2]="RATE_LIMITING",p[p.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",p[p.UNUSED_3=4]="UNUSED_3",p[p.UNUSED_4=5]="UNUSED_4",p[p.UNUSED_5=6]="UNUSED_5",p[p.UNUSED_6=7]="UNUSED_6",p[p.UNUSED_7=8]="UNUSED_7",p[p.UNUSED_8=9]="UNUSED_8",p[p.UNUSED_9=10]="UNUSED_9",p[p.UNUSED_10=11]="UNUSED_10",p[p.UNUSED_11=12]="UNUSED_11",p[p.UNUSED_12=13]="UNUSED_12",p[p.UNUSED_13=14]="UNUSED_13",p[p.UNUSED_14=15]="UNUSED_14",p))(ja||{});function Ha(){let t=E.REDIS_PASSWORD,e=E.REDIS_USERNAME,r=E.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(Ha,"getRedisConnectionDetails");function uf(){return{slotsRefreshTimeout:2e3,dnsLookup:s((t,e)=>e(null,t),"dnsLookup"),redisOptions:{...un()}}}s(uf,"getRedisClusterOptions");function un(){let{host:t,password:e,port:r,username:n}=Ha(),i=E.REDIS_URL.toLowerCase().startsWith("rediss://")?{}:void 0;return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n},...i&&{tls:i}}}s(un,"getRedisOptions");function cf(t){let e=t.split(Zn);return e.length>=2?(e.shift(),e.join(Zn)):e[0]}s(cf,"removeDbPrefix");var KS=W(require("events"));var di={};P(di,{Duration:()=>me,GZIP_PREFIX:()=>Iu,clearCookie:()=>Jt,compare:()=>ff,createPinnedLookup:()=>qS,fetchWithBlacklist:()=>li,getBearerToken:()=>Qv,getCookie:()=>zt,getDispatcher:()=>Gv,getSessionExpiryDate:()=>tp,getSessionExpirySeconds:()=>Su,getWorkspaceIdFromCtx:()=>pn,gunzipFromBase64:()=>Kv,gzipToBase64:()=>qv,hasCircularStructure:()=>Pv,hash:()=>df,isAudited:()=>sp,isClient:()=>Nv,isPublicApiRequest:()=>bv,isServingApp:()=>Rv,isServingBuilder:()=>Cv,isServingBuilderPreview:()=>Dv,isValidInternalAPIKey:()=>Xs,microsoftDatasourceCreationCacheKey:()=>uN,newid:()=>X,openJwt:()=>_u,setAuthCookie:()=>vv,setCookie:()=>np,time:()=>Uv,timeout:()=>ip,urlHasProtocol:()=>Lv,validEmail:()=>op});var gT=require("uuid");function X(){return(0,gT.v4)().replace(/-/g,"")}s(X,"newid");var lf=require("bcrypt"),ux=E.SALT_ROUNDS||10;async function df(t){let e=await lf.genSalt(ux);return lf.hash(t,e)}s(df,"hash");async function ff(t,e){return lf.compare(t,e)}s(ff,"compare");var Au=W(require("jsonwebtoken"));var le={};P(le,{DEFAULT_TENANT_ID:()=>ce,baseGlobalDBName:()=>Ws,doInAutomationContext:()=>Nx,doInContext:()=>vf,doInEnvironmentContext:()=>Vx,doInFeatureFlagOverrideContext:()=>Ff,doInIPContext:()=>Lf,doInIdentityContext:()=>Us,doInLicenseContext:()=>Lx,doInScimContext:()=>qx,doInSelfHostTenantUsingCloud:()=>Px,doInTenant:()=>be,doInWorkspaceContext:()=>Mx,doInWorkspaceMigrationContext:()=>Bx,ensureSnippetContext:()=>NT,getAuditLogDBName:()=>xT,getAuditLogsDB:()=>Qx,getAutomationId:()=>Nf,getCurrentContext:()=>dn,getDevWorkspaceDB:()=>Hx,getDevWorkspaceId:()=>Gx,getEnvironmentVariables:()=>Kx,getFeatureFlagOverrides:()=>Mf,getFeatureFlags:()=>Uf,getGlobalDB:()=>z,getGlobalDBName:()=>ln,getIP:()=>Pf,getIdentity:()=>Qt,getLicense:()=>Ux,getOrThrowWorkspaceId:()=>Wx,getPlatformURL:()=>xf,getProdWorkspaceDB:()=>jx,getProdWorkspaceId:()=>$x,getScimDBName:()=>Dx,getSelfHostCloudDB:()=>kx,getTableForView:()=>Yx,getTenantIDFromWorkspaceID:()=>ni,getTenantId:()=>V,getWorkspaceDB:()=>ii,getWorkspaceId:()=>Fe,identity:()=>Ls,isDevWorkspace:()=>PT,isMultiTenant:()=>Sr,isProdWorkspace:()=>Jx,isScim:()=>Et,isSelfHostUsingCloud:()=>nu,isTenancyEnabled:()=>xx,isTenantIdSet:()=>bx,setFeatureFlags:()=>kf,setTableForView:()=>zx});var Ls={};P(Ls,{doInAccountContext:()=>cx,doInIdentityContext:()=>hf,doInUserContext:()=>gf,getAccountUserId:()=>ET,getIdentity:()=>mf});function mf(){return Qt()}s(mf,"getIdentity");function hf(t,e){return Us(t,e)}s(hf,"doInIdentityContext");function gf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return hf(n,r)}s(gf,"doInUserContext");function cx(t,e){let r=ET(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return hf(i,e)}s(cx,"doInAccountContext");function ET(t){let e;return jo(t)?e=t.budibaseUserId:e=t.accountId,e}s(ET,"getAccountUserId");var vt=s(()=>za(E.COUCH_DB_URL,{user:E.COUCH_DB_USERNAME||"",password:E.COUCH_DB_PASSWORD||""}),"getCouchInfo"),za=s((t,e)=>{let r=Ef(t),n,i;if(r.auth?.username)n=r.auth.username;else if(e?.user)n=e?.user;else throw new Error("CouchDB username not set");if(r.auth?.password)i=r.auth.password;else if(e?.password)i=e?.password;else throw new Error("CouchDB password not set");let o=Buffer.from(`${n}:${i}`).toString("base64"),a=E.COUCH_DB_SQL_URL;if(!a&&r.url){let u=new URL(r.url);u.port=E.COUCH_DB_SQS_PORT,a=u.toString().replace(/\/$/,"")}return{url:r.url,sqlUrl:Ef(a).url,auth:{username:n,password:i},cookie:`Basic ${o}`}},"parseCouchConnection"),Ef=s((t=E.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 CT=W(require("@budibase/nano"));var yT=W(require("node-fetch"));function Ja(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(Ja,"checkSlashesInUrl");async function TT(t,e="GET",r){let{url:n,cookie:i}=vt(),o=`${n}/${t}`;return await ks({url:o,cookie:i,method:e,body:r})}s(TT,"directCouchCall");async function ks({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,yT.default)(Ja(encodeURI(t)),i)}s(ks,"directCouchUrlCall");async function yf(t,e="GET",r){let n=await TT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(yf,"directCouchQuery");var cn=W(require("pouchdb"));var ST,AT=!1,Tf=s((t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:s((i,o)=>(o.headers.set("Authorization",r),cn.default.fetch(i,o)),"fetch")};if(t.inMemory){let i=require("pouchdb-adapter-memory");cn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");cn.default.plugin(i.plugin),cn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");cn.default.plugin(i)}return cn.default.defaults(n)},"getPouch");function Xa(t){ST=Tf(t),AT=!0}s(Xa,"init");var lx=s(()=>{if(!AT)throw new Error("init has not been called")},"checkInitialised");function it(t,e){lx();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(it,"getPouchDB");async function Ms(t){if(!(!t||E.isTest()))try{return await t.close()}catch{}}s(Ms,"closePouchDB");var de=W(require("dd-trace"));var ei=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return de.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 de.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return de.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 de.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 de.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 de.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 de.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 de.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return de.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 de.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 de.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 de.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 de.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 de.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 de.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return de.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return de.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return de.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return de.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 de.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 de.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Cf={};P(Cf,{breakExternalTableId:()=>_f,breakRowIdField:()=>Ox,buildExternalTableId:()=>Ex,convertRowId:()=>_x,encodeTableId:()=>yx,encodeViewId:()=>Tx,extractDate:()=>If,generateRowIdField:()=>Sx,getNativeSql:()=>ti,isExternalTable:()=>Af,isExternalTableID:()=>Za,isInternalTableID:()=>gx,isRowId:()=>Ax,isValidFilter:()=>tu,isValidISODateString:()=>eu,isValidISODateStringWithoutTimezone:()=>Of,isValidTime:()=>wf,sqlLog:()=>Fs,validateManyToMany:()=>Rf});var Sf=`${"_"}${"_"}`,OT=/^\[.*]$/g,dx=encodeURIComponent(" "),fx=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,px=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,mx=/(\d{4}-\d{2}-\d{2})/,hx=/^\d{1,2}:\d{2}(?:\.\d{1,6}|:\d{2}(?:\.\d{1,6})?)?$/;function Za(t){return t.startsWith("datasource_")}s(Za,"isExternalTableID");function gx(t){return!Za(t)}s(gx,"isInternalTableID");function ti(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(ti,"getNativeSql");function Af(t){return t?.sourceId&&t.sourceId.includes("datasource_")&&t?.sourceId!==Pn||t?.sourceType==="external"?!0:!!(t?._id&&Za(t._id))}s(Af,"isExternalTable");function Ex(t,e){return`${t}${Sf}${encodeURIComponent(e)}`}s(Ex,"buildExternalTableId");function yx(t){return Za(t)?encodeURIComponent(t):t}s(yx,"encodeTableId");function Tx(t){return encodeURIComponent(t)}s(Tx,"encodeViewId");function _f(t){let e=t.split(Sf),r=e.shift(),n=e.join(Sf);if(n.includes(dx)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(_f,"breakExternalTableId");function Sx(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(Sx,"generateRowIdField");function Ax(t){return Array.isArray(t)||typeof t=="string"&&t.match(OT)!=null}s(Ax,"isRowId");function _x(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(OT)!=null?t.substring(1,t.length-1):t}s(_x,"convertRowId");function Ox(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(Ox,"breakRowIdField");function eu(t){let e=t.trim();if(!fx.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(eu,"isValidISODateString");function Of(t){let e=t.trim();if(!px.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Of,"isValidISODateStringWithoutTimezone");function If(t){let e=t.match(mx);if(e)return e[0]}s(If,"extractDate");function tu(t){return t!=null&&t!==""}s(tu,"isValidFilter");function wf(t){return hx.test(t)}s(wf,"isValidTime");function Fs(t,e,r){if(!E.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Fs,"sqlLog");function Ix(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(Ix,"isValidManyToManyRelationship");function Rf(t){if(Ix(t))return t}s(Rf,"validateManyToMany");var IT="Database does not exist.";function wT(t){return(0,CT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(wT,"buildNano");var Tr=class extends Error{static{s(this,"CouchDBError")}constructor(e,r){super(e);let n=r.status||r.statusCode||500;this.status=n,this.statusCode=n,this.reason=r.reason||"Unknown",this.name=r.name,this.errid=r.errid||"Unknown",this.description=r.description||"Unknown",this.error=r.error||"Not found"}};function wx(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new ri(t,r,e);return new ei(n)}s(wx,"DatabaseWithConnection");var ri=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=za(n),this.instanceNano=wT(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=vt();t.nano=wT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await ks({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 Tr(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===IT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Tr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Tr(`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(yh(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 Tr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=X()),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===IT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ja(`${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 ks(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new Tr("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}/${xt}`;return Fs("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(xt)){let e=await this.get(xt);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 Tr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return it(this.name).dump(e,r)}async load(e){return it(this.name).load(e)}async createIndex(e){return it(this.name).createIndex(e)}async deleteIndex(e){return it(this.name).deleteIndex(e)}async getIndexes(){return it(this.name).getIndexes()}};function De(t,e){return new ei(new ri(t,e))}s(De,"getDB");async function je(t,e,r){let n=De(t,r);return await e(n)}s(je,"doWithDB");async function Df(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await yf(e)}s(Df,"directCouchAllDbs");var bf="No app provided";function Nt(t){if(!t)throw bf;return t.startsWith(nt)}s(Nt,"isDevWorkspaceID");function Rx(t){if(!t)throw bf;return t.startsWith(rt)&&!Nt(t)}s(Rx,"isProdWorkspaceID");function Bs(t){if(!t)throw bf;return Nt(t.appId)}s(Bs,"isDevWorkspace");function ru(t){if(!t||t.startsWith(nt))return t;let e=t.split(rt);e.shift();let r=e.join(rt);return`${nt}${r}`}s(ru,"getDevWorkspaceID");function He(t){if(!t||!t.startsWith(nt))return t;let e=t.split(nt);e.shift();let r=e.join(nt);return`${rt}${r}`}s(He,"getProdWorkspaceID");var DT=require("async_hooks");var ge=class t{static{s(this,"Context")}static{this.storage=new DT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var bT=null;function ln(t){return t||(t=V()),Ws(t)}s(ln,"getGlobalDBName");function xT(t){return t||(t=V()),t===ce?pe.AUDIT_LOGS.name:`${t}${"_"}${pe.AUDIT_LOGS.name}`}s(xT,"getAuditLogDBName");function Dx(t){return t||(t=V()),t===ce?pe.SCIM_LOGS.name:`${t}${"_"}${pe.SCIM_LOGS.name}`}s(Dx,"getScimDBName");function Ws(t){return!t||t===ce?pe.GLOBAL.name:`${t}${"_"}${pe.GLOBAL.name}`}s(Ws,"baseGlobalDBName");function xf(){return E.PLATFORM_URL}s(xf,"getPlatformURL");function Sr(){return!!E.MULTI_TENANCY}s(Sr,"isMultiTenant");function bx(){return!!ge.get()?.tenantId}s(bx,"isTenantIdSet");function xx(){return E.MULTI_TENANCY}s(xx,"isTenancyEnabled");function ni(t){if(!t)return;if(!Sr())return ce;let e=t.split("_"),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(ni,"getTenantIDFromWorkspaceID");function vx(t){let e;try{e=ge.get()}catch{e={}}return e={...e,...t},e}s(vx,"updateContext");async function gt(t,e){Fx();let r=vx(t);return ge.run(r,e)}s(gt,"newContext");async function Nx(t){return await NT(),await gt({tenantId:ni(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(Nx,"doInAutomationContext");async function vf(t,e){let r=ni(t);return gt({tenantId:r,appId:t},e)}s(vf,"doInContext");async function be(t,e){return E.MULTI_TENANCY||(t=t||ce),gt(t?{tenantId:t}:{},e)}s(be,"doInTenant");async function Px(t,e){return gt({tenantId:t,isSelfHostUsingCloud:!0},e)}s(Px,"doInSelfHostTenantUsingCloud");async function Lx(t,e){return gt({license:t},e)}s(Lx,"doInLicenseContext");function Ux(){return ge.get()?.license}s(Ux,"getLicense");function nu(){return!!ge.get()?.isSelfHostUsingCloud}s(nu,"isSelfHostUsingCloud");function kx(){let t=ge.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return De(pe.SELF_HOST_CLOUD.name)}s(kx,"getSelfHostCloudDB");async function Mx(t,e){return vT(t,e)}s(Mx,"doInWorkspaceContext");async function vT(t,e,r){if(!t)throw new Error("workspaceId is required");let n=ni(t),i={appId:t,...r};return n&&(i.tenantId=n),gt(i,e)}s(vT,"_doInWorkspaceContext");async function Us(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),gt(r,e)}s(Us,"doInIdentityContext");function Fx(){if(ge.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(Fx,"guardMigration");async function Bx(t,e){return vT(t,e,{isMigrating:!0})}s(Bx,"doInWorkspaceMigrationContext");function Qt(){try{return ge.get()?.identity}catch{}}s(Qt,"getIdentity");function V(){if(!Sr())return ce;let e=ge.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(V,"getTenantId");function Nf(){return ge.get()?.automationId}s(Nf,"getAutomationId");function Fe(){let e=ge.get()?.appId;return!e&&E.isTest()&&bT?bT:e}s(Fe,"getWorkspaceId");function Wx(){let t=Fe();if(!t)throw new Error("Workspace id not set");return t}s(Wx,"getOrThrowWorkspaceId");function Pf(){return ge.get()?.ip}s(Pf,"getIP");var Gx=s(()=>{let t=Fe();if(!t)throw new Error("Could not get workspaceId");return ru(t)},"getDevWorkspaceId"),$x=s(()=>{let t=Fe();if(!t)throw new Error("Could not get workspaceId");return He(t)},"getProdWorkspaceId");function Vx(t,e){if(!t)throw new Error("Must supply environment variables.");return gt({environmentVariables:t},e)}s(Vx,"doInEnvironmentContext");function qx(t){return gt({isScim:!0},t)}s(qx,"doInScimContext");function Lf(t,e){return gt({ip:t},e)}s(Lf,"doInIPContext");async function NT(){let t=dn();if(!t||t.snippets)return;let e,r=ii();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(NT,"ensureSnippetContext");function Kx(){let t=ge.get();return t.environmentVariables?t.environmentVariables:null}s(Kx,"getEnvironmentVariables");function z(){let t=ge.get();if(!t||E.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 De(Ws(t?.tenantId))}s(z,"getGlobalDB");function Qx(){if(!V())throw new Error("No tenant ID found - cannot open audit log DB");return De(xT())}s(Qx,"getAuditLogsDB");function ii(t){let e=Fe();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(nu())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return De(e,t)}s(ii,"getWorkspaceDB");function jx(t){let e=Fe();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return De(He(e),t)}s(jx,"getProdWorkspaceDB");function Hx(t){let e=Fe();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return De(ru(e),t)}s(Hx,"getDevWorkspaceDB");function Et(){return!!ge.get()?.isScim}s(Et,"isScim");function dn(){try{return ge.get()}catch{return}}s(dn,"getCurrentContext");function Uf(t){let e=dn();if(e)return e.featureFlagCache?.[t]}s(Uf,"getFeatureFlags");function kf(t,e){let r=dn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(kf,"setFeatureFlags");function Mf(){return dn()?.featureFlagOverrides||{}}s(Mf,"getFeatureFlagOverrides");async function Ff(t,e){return await gt({featureFlagOverrides:t},e)}s(Ff,"doInFeatureFlagOverrideContext");function Yx(t){let e=dn();if(e)return e.viewToTableCache?.[t]}s(Yx,"getTableForView");function zx(t,e){let r=dn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(zx,"setTableForView");function PT(){let t=Fe();return Nt(t)}s(PT,"isDevWorkspace");function Jx(){return!PT()}s(Jx,"isProdWorkspace");var Ir={};P(Ir,{AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DatabaseImpl:()=>ri,DatabaseWithConnection:()=>wx,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,InternalTable:()=>It,QueryBuilder:()=>Yt,Replication:()=>DS,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt,baseGlobalDBName:()=>Ws,checkErrorCode:()=>NS,closePouchDB:()=>Ms,createApiKeyView:()=>_S,createNewUserEmailView:()=>SS,createPlatformAccountEmailView:()=>IS,createPlatformUserView:()=>wS,createUserAppView:()=>AS,createView:()=>ci,dbExists:()=>mv,directCouchAllDbs:()=>Df,directCouchCall:()=>TT,directCouchQuery:()=>yf,directCouchUrlCall:()=>ks,doWithDB:()=>je,fullSearch:()=>Tv,generateAIConfigID:()=>iS,generateAgentID:()=>HT,generateAgentKnowledgeSourceConnectionID:()=>tS,generateAgentKnowledgeSourceSyncStateID:()=>eS,generateAgentRequestID:()=>JT,generateAgentToolSourceID:()=>ZT,generateAppUserID:()=>Eu,generateChatAppID:()=>YT,generateChatConversationID:()=>zT,generateDevInfoID:()=>KT,generateGlobalUserID:()=>ai,generateKnowledgeBaseFileID:()=>rS,generateKnowledgeBaseID:()=>cS,generateOAuth2LogID:()=>jT,generatePluginID:()=>QT,generateProjectID:()=>uS,generateRoleID:()=>Kf,generateRowID:()=>qf,generateTableID:()=>WT,generateTemplateID:()=>qT,generateUserMetadataID:()=>$T,generateWorkspaceAppID:()=>oS,generateWorkspaceFavouriteID:()=>aS,generateWorkspaceID:()=>BT,getAgentTestRunID:()=>XT,getAgentTestSuiteID:()=>Qf,getAllDbs:()=>TS,getAllWorkspaces:()=>Ks,getCouchInfo:()=>vt,getDB:()=>De,getDevWorkspaceID:()=>ru,getDevWorkspaceIDs:()=>fv,getDocParams:()=>Pt,getGlobalDBName:()=>ln,getGlobalIDFromUserMetadataID:()=>VT,getGlobalUserParams:()=>fn,getLiteLLMKeyID:()=>sS,getOAuth2ConfigParams:()=>mS,getPluginParams:()=>pS,getPouch:()=>Tf,getPouchDB:()=>it,getProdWorkpaceIDs:()=>dv,getProdWorkspaceID:()=>He,getProjectParams:()=>ES,getQueryIndex:()=>lS,getRoleParams:()=>yu,getRowParams:()=>jf,getStartEndKeyURL:()=>qs,getTemplateParams:()=>fS,getUrlInfo:()=>Ef,getUserMetadataParams:()=>dS,getUsersByWorkspaceParams:()=>ui,getWorkspaceAppParams:()=>hS,getWorkspaceFavouriteParams:()=>gS,getWorkspacesByIDs:()=>lv,init:()=>Xa,isDevWorkspace:()=>Bs,isDevWorkspaceID:()=>Nt,isDocumentConflictError:()=>Av,isGlobalUserID:()=>GT,isKnowledgeBaseFileID:()=>nS,isProdWorkspaceID:()=>Rx,isSameWorkspaceID:()=>pv,isType:()=>yS,paginatedSearch:()=>yv,pagination:()=>Yf,parseCouchConnection:()=>za,prefixRoleID:()=>jt,queryGlobalView:()=>Ht,queryGlobalViewRaw:()=>Hs,queryPlatformView:()=>js,queryView:()=>Jf,queryViewRaw:()=>Qs,removeKeyNumbering:()=>Ys,searchIndexes:()=>Zf});var Vs={};P(Vs,{WorkspaceState:()=>Vf,getWorkspaceMetadata:()=>gu,invalidateWorkspaceMetadata:()=>av});var _r={};P(_r,{getCacheClient:()=>Wf,getDocWritethroughClient:()=>nv,getInviteListClient:()=>Gs,getLockClient:()=>$f,getOpenapiImportSpecsClient:()=>tv,getPasswordResetClient:()=>$s,getSessionClient:()=>Ar,getSocketClient:()=>rv,getUserClient:()=>oi,getWorkspaceClient:()=>hu,getWritethroughClient:()=>Gf,init:()=>st,shutdown:()=>MT});var su=W(require("ioredis"));var iu=require("dd-trace"),UT=require("lodash");var LT;if(E.MOCK_REDIS)try{LT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function Xx(t=0){return await iu.tracer.trace("Redis.init",async e=>{if(E.MOCK_REDIS)return e.addTags({mock:!0}),new LT(un());let r;if(E.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=Ha();r=new su.Cluster([{host:n,port:i}],uf())}else r=new su.default(un());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(Xx,"init");function Zx(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:cf(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(Zx,"promisifyStream");function ev(t){return t.isCluster}s(ev,"isCluster");var Bf=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await iu.tracer.trace("RedisWrapper.init",async n=>{let i=await Xx(r);return r&&!E.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return iu.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Zn}${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}${Zn}${e}`;let n;ev(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await Zx(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,UT.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}),await this.client.eval(`
6
6
  if redis.call('GET', KEYS[1]) == ARGV[1] then
7
7
  redis.call('DEL', KEYS[1])
8
8
  end
9
- `,1,this.prefixed(e),r)})}},Re=Ff;var su,ou,au,uu,cu,ti,lu,du,fu,pu,PT;async function st(){su=await Re.init("users"),ou=await Re.init("session"),au=await Re.init("appMetadata"),uu=await Re.init("data_cache"),cu=await Re.init("openapiImportSpecs",3),lu=await Re.init("locks"),ti=await Re.init("writeThrough"),fu=await Re.init("invitationList"),pu=await Re.init("pwReset"),du=await Re.init("socket_io",1),PT=await Re.init("docWriteThrough")}s(st,"init");async function LT(){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 PT?.finish()}s(LT,"shutdown");process.on("exit",async()=>{await LT()});async function ri(){return su||await st(),su}s(ri,"getUserClient");async function Ar(){return ou||await st(),ou}s(Ar,"getSessionClient");async function mu(){return au||await st(),au}s(mu,"getWorkspaceClient");async function Bf(){return uu||await st(),uu}s(Bf,"getCacheClient");async function Xx(){return cu||await st(),cu}s(Xx,"getOpenapiImportSpecsClient");async function Wf(){return ti||await st(),ti}s(Wf,"getWritethroughClient");async function Gf(){return lu||await st(),lu}s(Gf,"getLockClient");async function Zx(){return du||await st(),du}s(Zx,"getSocketClient");async function Ms(){return fu||await st(),fu}s(Ms,"getInviteListClient");async function Fs(){return pu||await st(),pu}s(Fs,"getPasswordResetClient");async function ev(){return ti||await st(),ti}s(ev,"getDocWritethroughClient");var $f=(e=>(e.INVALID="invalid",e))($f||{}),UT=3600,tv=60;async function rv(t){return je(t,e=>e.get("app_metadata"),{skip_setup:!0})}s(rv,"populateFromDB");function nv(t){return!t||t.state==="invalid"}s(nv,"isInvalid");async function hu(t){let e=await mu(),r=await e.get(t);if(!r){let n=UT;try{r=await rv(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=tv;else throw i}if(nv(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}s(hu,"getWorkspaceMetadata");async function iv(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,UT)}s(iv,"invalidateWorkspaceMetadata");var jf={};P(jf,{generateAIConfigID:()=>tS,generateAgentID:()=>KT,generateAgentKnowledgeSourceConnectionID:()=>XT,generateAgentKnowledgeSourceSyncStateID:()=>JT,generateAgentRequestID:()=>HT,generateAgentToolSourceID:()=>zT,generateAppUserID:()=>gu,generateChatAppID:()=>QT,generateChatConversationID:()=>jT,generateDevInfoID:()=>$T,generateGlobalUserID:()=>ni,generateKnowledgeBaseFileID:()=>ZT,generateKnowledgeBaseID:()=>oS,generateOAuth2LogID:()=>qT,generatePluginID:()=>VT,generateProjectID:()=>sS,generateRoleID:()=>qf,generateRowID:()=>Vf,generateTableID:()=>MT,generateTemplateID:()=>GT,generateUserMetadataID:()=>BT,generateWorkspaceAppID:()=>nS,generateWorkspaceFavouriteID:()=>iS,generateWorkspaceID:()=>kT,getAgentTestRunID:()=>YT,getAgentTestSuiteID:()=>Kf,getDocParams:()=>Pt,getGlobalIDFromUserMetadataID:()=>WT,getGlobalUserParams:()=>ln,getLiteLLMKeyID:()=>rS,getOAuth2ConfigParams:()=>dS,getPluginParams:()=>lS,getProjectParams:()=>mS,getQueryIndex:()=>aS,getRoleParams:()=>Eu,getRowParams:()=>Qf,getStartEndKeyURL:()=>Ws,getTemplateParams:()=>cS,getUserMetadataParams:()=>uS,getUsersByWorkspaceParams:()=>ii,getWorkspaceAppParams:()=>fS,getWorkspaceFavouriteParams:()=>pS,isGlobalUserID:()=>FT,isKnowledgeBaseFileID:()=>eS,isType:()=>hS,prefixRoleID:()=>jt});var kT=s(t=>{let e=rt;return t&&(e+=`${t}${"_"}`),`${e}${X()}`},"generateWorkspaceID");function MT(){return`ta${"_"}${X()}`}s(MT,"generateTableID");function Vf(t,e){return e=e||X(),`ro${"_"}${t}${"_"}${e}`}s(Vf,"generateRowID");function ni(t){return`us${"_"}${t||X()}`}s(ni,"generateGlobalUserID");var sv=new RegExp(`^us${"_"}.+`);function FT(t){return sv.test(t)}s(FT,"isGlobalUserID");function BT(t){return Vf("ta_users",t)}s(BT,"generateUserMetadataID");function WT(t){let e=`ro${"_"}ta_users${"_"}`;return!t||!t.includes(e)?t:t.split(e)[1]}s(WT,"getGlobalIDFromUserMetadataID");function GT(t){return`template${"_"}${t}${"_"}${X()}`}s(GT,"generateTemplateID");function gu(t,e){return`${t}${"_"}${e}`}s(gu,"generateAppUserID");function qf(t){let e=`role${"_"}`;return t.startsWith(e)?t:`${e}${t}`}s(qf,"generateRoleID");function jt(t){return qf(t)}s(jt,"prefixRoleID");var $T=s(t=>`devinfo${"_"}${t}`,"generateDevInfoID"),VT=s(t=>`plg${"_"}${t}`,"generatePluginID"),qT=s(t=>`oauth2log${"_"}${t}`,"generateOAuth2LogID"),KT=s(()=>`agent${"_"}${X()}`,"generateAgentID"),QT=s(()=>`chatapp${"_"}${X()}`,"generateChatAppID"),jT=s(()=>`chatconvo${"_"}${X()}`,"generateChatConversationID"),HT=s((t=X())=>`agentrequest${"_"}${t}`,"generateAgentRequestID"),Kf=s(t=>`agenttestsuite${"_"}${t}`,"getAgentTestSuiteID"),YT=s((t,e)=>`${Kf(t)}${"_"}agenttestrun${"_"}${e}`,"getAgentTestRunID"),zT=s(()=>`agenttoolsource${"_"}${X()}`,"generateAgentToolSourceID"),JT=s((t,e)=>`agentknowledgesync${"_"}${t}${"_"}${encodeURIComponent(e)}`,"generateAgentKnowledgeSourceSyncStateID"),XT=s(()=>`agentknowledgeconn${"_"}${X()}`,"generateAgentKnowledgeSourceConnectionID"),ZT=s(t=>`knowledgebasefile${"_"}${t}${"_"}${X()}`,"generateKnowledgeBaseFileID"),ov=new RegExp(`^knowledgebasefile${"_"}.+`),eS=s(t=>ov.test(t),"isKnowledgeBaseFileID"),tS=s((t=X())=>`aiconfig${"_"}${t}`,"generateAIConfigID"),rS=s(()=>`litellmkey${"_"}config`,"getLiteLLMKeyID"),nS=s(()=>`workspace_app${"_"}${X()}`,"generateWorkspaceAppID"),iS=s(()=>`workspace_favourite${"_"}${X()}`,"generateWorkspaceFavouriteID"),sS=s(()=>`project${"_"}${X()}`,"generateProjectID"),oS=s(()=>`knowledgebase${"_"}${X()}`,"generateKnowledgeBaseID");function Pt(t,e,r={}){e==null&&(e="");let n=`${t}${"_"}${e}`,i=`${t}${"_"}${e}${"\uFFF0"}`;return{startkey:n,endkey:i,...r}}s(Pt,"getDocParams");function Qf(t,e,r={}){if(t==null)return Pt("ro",null,r);let n=e??`${t}${"_"}`;return Pt("ro",n,r)}s(Qf,"getRowParams");function aS(t){return`database/${t}`}s(aS,"getQueryIndex");function ln(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${"_"}${t}`,endkey:`us${"_"}${t}${"\uFFF0"}`}}s(ln,"getGlobalUserParams");function uS(t,e={}){return Qf("ta_users",t,e)}s(uS,"getUserMetadataParams");function ii(t,e={}){let r=He(t);return{...e,startkey:r,endkey:`${r}${"\uFFF0"}`}}s(ii,"getUsersByWorkspaceParams");function cS(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${"_"}${t}${"_"}`,{...r,startkey:n,endkey:`${n}${"\uFFF0"}`}}s(cS,"getTemplateParams");function Eu(t,e={}){return Pt("role",t,e)}s(Eu,"getRoleParams");function Ws(t,e){let r=e?`${"_"}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${"\uFFF0"}"`}s(Ws,"getStartEndKeyURL");var lS=s((t,e={})=>Pt("plg",t,e),"getPluginParams"),dS=s((t,e={})=>Pt("oauth2",t,e),"getOAuth2ConfigParams"),fS=s((t,e={})=>Pt("workspace_app",t,e),"getWorkspaceAppParams"),pS=s((t,e={})=>Pt("workspace_favourite",t,e),"getWorkspaceFavouriteParams"),mS=s((t,e={})=>Pt("project",t,e),"getProjectParams");function hS(t,e){return Object.values(ae).sort((r,n)=>n.length-r.length).find(r=>t.startsWith(Ot(r)))===e}s(hS,"isType");async function gS(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(o){let a=await Cf(o);r=r.concat(a)}s(n,"addDbs");let i=q();return!E.MULTI_TENANCY||!e&&i===ce?await n():(await n(Ws("app",i)),await n(Ws("app_dev",i)),r.push(un(i))),r}s(gS,"getAllDbs");async function Gs({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=q();!E.MULTI_TENANCY&&!i&&(i=ce);let a=(await gS({efficient:n||!1})).filter(c=>{if(E.isTest()&&!c)return!1;let l=c.split("_");if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ce&&f||d===i}return!1});if(r){let c=a.filter(d=>Nt(d)),l=a.filter(d=>!Nt(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:Us(d)?"development":"published"})):l.filter(d=>t?Us(d):!Us(d))}}s(Gs,"getAllWorkspaces");async function av(t){return(await Promise.allSettled(t.map(r=>hu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}s(av,"getWorkspacesByIDs");async function uv(){return(await Gs({idsOnly:!0})).filter(e=>!Nt(e))}s(uv,"getProdWorkpaceIDs");async function cv(){return(await Gs({idsOnly:!0})).filter(e=>Nt(e))}s(cv,"getDevWorkspaceIDs");function lv(t,e){return t==null||e==null?!1:He(t)===He(e)}s(lv,"isSameWorkspaceID");async function dv(t){return je(t,async e=>await e.exists(),{skip_setup:!0})}s(dv,"dbExists");function Hf(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(Hf,"pagination");var Yf="_design/database";function fv(){return{_id:Yf,views:{}}}s(fv,"DesignDoc");async function pv(t,e){if(jn[e])try{let r=await t.get(Yf);for(let n of jn[e])delete r.views?.[n];await t.put(r)}catch{}}s(pv,"removeDeprecated");async function si(t,e,r){let n;try{n=await t.get(Yf)}catch{n=fv()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(o){if(o.status===409)return await si(t,e,r);throw o}}s(si,"createView");var ES=s(async()=>{let t=z(),e=`function(doc) {
9
+ `,1,this.prefixed(e),r)})}},Re=Bf;var ou,au,uu,cu,lu,si,du,fu,pu,mu,kT;async function st(){ou=await Re.init("users"),au=await Re.init("session"),uu=await Re.init("appMetadata"),cu=await Re.init("data_cache"),lu=await Re.init("openapiImportSpecs",3),du=await Re.init("locks"),si=await Re.init("writeThrough"),pu=await Re.init("invitationList"),mu=await Re.init("pwReset"),fu=await Re.init("socket_io",1),kT=await Re.init("docWriteThrough")}s(st,"init");async function MT(){await ou?.finish(),await au?.finish(),await uu?.finish(),await cu?.finish(),await lu?.finish(),await si?.finish(),await du?.finish(),await pu?.finish(),await mu?.finish(),await fu?.finish(),await kT?.finish()}s(MT,"shutdown");process.on("exit",async()=>{await MT()});async function oi(){return ou||await st(),ou}s(oi,"getUserClient");async function Ar(){return au||await st(),au}s(Ar,"getSessionClient");async function hu(){return uu||await st(),uu}s(hu,"getWorkspaceClient");async function Wf(){return cu||await st(),cu}s(Wf,"getCacheClient");async function tv(){return lu||await st(),lu}s(tv,"getOpenapiImportSpecsClient");async function Gf(){return si||await st(),si}s(Gf,"getWritethroughClient");async function $f(){return du||await st(),du}s($f,"getLockClient");async function rv(){return fu||await st(),fu}s(rv,"getSocketClient");async function Gs(){return pu||await st(),pu}s(Gs,"getInviteListClient");async function $s(){return mu||await st(),mu}s($s,"getPasswordResetClient");async function nv(){return si||await st(),si}s(nv,"getDocWritethroughClient");var Vf=(e=>(e.INVALID="invalid",e))(Vf||{}),FT=3600,iv=60;async function sv(t){return je(t,e=>e.get("app_metadata"),{skip_setup:!0})}s(sv,"populateFromDB");function ov(t){return!t||t.state==="invalid"}s(ov,"isInvalid");async function gu(t){let e=await hu(),r=await e.get(t);if(!r){let n=FT;try{r=await sv(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=iv;else throw i}if(ov(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}s(gu,"getWorkspaceMetadata");async function av(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await hu();await r.delete(t),e&&await r.store(t,e,FT)}s(av,"invalidateWorkspaceMetadata");var Hf={};P(Hf,{generateAIConfigID:()=>iS,generateAgentID:()=>HT,generateAgentKnowledgeSourceConnectionID:()=>tS,generateAgentKnowledgeSourceSyncStateID:()=>eS,generateAgentRequestID:()=>JT,generateAgentToolSourceID:()=>ZT,generateAppUserID:()=>Eu,generateChatAppID:()=>YT,generateChatConversationID:()=>zT,generateDevInfoID:()=>KT,generateGlobalUserID:()=>ai,generateKnowledgeBaseFileID:()=>rS,generateKnowledgeBaseID:()=>cS,generateOAuth2LogID:()=>jT,generatePluginID:()=>QT,generateProjectID:()=>uS,generateRoleID:()=>Kf,generateRowID:()=>qf,generateTableID:()=>WT,generateTemplateID:()=>qT,generateUserMetadataID:()=>$T,generateWorkspaceAppID:()=>oS,generateWorkspaceFavouriteID:()=>aS,generateWorkspaceID:()=>BT,getAgentTestRunID:()=>XT,getAgentTestSuiteID:()=>Qf,getDocParams:()=>Pt,getGlobalIDFromUserMetadataID:()=>VT,getGlobalUserParams:()=>fn,getLiteLLMKeyID:()=>sS,getOAuth2ConfigParams:()=>mS,getPluginParams:()=>pS,getProjectParams:()=>ES,getQueryIndex:()=>lS,getRoleParams:()=>yu,getRowParams:()=>jf,getStartEndKeyURL:()=>qs,getTemplateParams:()=>fS,getUserMetadataParams:()=>dS,getUsersByWorkspaceParams:()=>ui,getWorkspaceAppParams:()=>hS,getWorkspaceFavouriteParams:()=>gS,isGlobalUserID:()=>GT,isKnowledgeBaseFileID:()=>nS,isType:()=>yS,prefixRoleID:()=>jt});var BT=s(t=>{let e=rt;return t&&(e+=`${t}${"_"}`),`${e}${X()}`},"generateWorkspaceID");function WT(){return`ta${"_"}${X()}`}s(WT,"generateTableID");function qf(t,e){return e=e||X(),`ro${"_"}${t}${"_"}${e}`}s(qf,"generateRowID");function ai(t){return`us${"_"}${t||X()}`}s(ai,"generateGlobalUserID");var uv=new RegExp(`^us${"_"}.+`);function GT(t){return uv.test(t)}s(GT,"isGlobalUserID");function $T(t){return qf("ta_users",t)}s($T,"generateUserMetadataID");function VT(t){let e=`ro${"_"}ta_users${"_"}`;return!t||!t.includes(e)?t:t.split(e)[1]}s(VT,"getGlobalIDFromUserMetadataID");function qT(t){return`template${"_"}${t}${"_"}${X()}`}s(qT,"generateTemplateID");function Eu(t,e){return`${t}${"_"}${e}`}s(Eu,"generateAppUserID");function Kf(t){let e=`role${"_"}`;return t.startsWith(e)?t:`${e}${t}`}s(Kf,"generateRoleID");function jt(t){return Kf(t)}s(jt,"prefixRoleID");var KT=s(t=>`devinfo${"_"}${t}`,"generateDevInfoID"),QT=s(t=>`plg${"_"}${t}`,"generatePluginID"),jT=s(t=>`oauth2log${"_"}${t}`,"generateOAuth2LogID"),HT=s(()=>`agent${"_"}${X()}`,"generateAgentID"),YT=s(()=>`chatapp${"_"}${X()}`,"generateChatAppID"),zT=s(()=>`chatconvo${"_"}${X()}`,"generateChatConversationID"),JT=s((t=X())=>`agentrequest${"_"}${t}`,"generateAgentRequestID"),Qf=s(t=>`agenttestsuite${"_"}${t}`,"getAgentTestSuiteID"),XT=s((t,e)=>`${Qf(t)}${"_"}agenttestrun${"_"}${e}`,"getAgentTestRunID"),ZT=s(()=>`agenttoolsource${"_"}${X()}`,"generateAgentToolSourceID"),eS=s((t,e)=>`agentknowledgesync${"_"}${t}${"_"}${encodeURIComponent(e)}`,"generateAgentKnowledgeSourceSyncStateID"),tS=s(()=>`agentknowledgeconn${"_"}${X()}`,"generateAgentKnowledgeSourceConnectionID"),rS=s(t=>`knowledgebasefile${"_"}${t}${"_"}${X()}`,"generateKnowledgeBaseFileID"),cv=new RegExp(`^knowledgebasefile${"_"}.+`),nS=s(t=>cv.test(t),"isKnowledgeBaseFileID"),iS=s((t=X())=>`aiconfig${"_"}${t}`,"generateAIConfigID"),sS=s(()=>`litellmkey${"_"}config`,"getLiteLLMKeyID"),oS=s(()=>`workspace_app${"_"}${X()}`,"generateWorkspaceAppID"),aS=s(()=>`workspace_favourite${"_"}${X()}`,"generateWorkspaceFavouriteID"),uS=s(()=>`project${"_"}${X()}`,"generateProjectID"),cS=s(()=>`knowledgebase${"_"}${X()}`,"generateKnowledgeBaseID");function Pt(t,e,r={}){e==null&&(e="");let n=`${t}${"_"}${e}`,i=`${t}${"_"}${e}${"\uFFF0"}`;return{startkey:n,endkey:i,...r}}s(Pt,"getDocParams");function jf(t,e,r={}){if(t==null)return Pt("ro",null,r);let n=e??`${t}${"_"}`;return Pt("ro",n,r)}s(jf,"getRowParams");function lS(t){return`database/${t}`}s(lS,"getQueryIndex");function fn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${"_"}${t}`,endkey:`us${"_"}${t}${"\uFFF0"}`}}s(fn,"getGlobalUserParams");function dS(t,e={}){return jf("ta_users",t,e)}s(dS,"getUserMetadataParams");function ui(t,e={}){let r=He(t);return{...e,startkey:r,endkey:`${r}${"\uFFF0"}`}}s(ui,"getUsersByWorkspaceParams");function fS(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${"_"}${t}${"_"}`,{...r,startkey:n,endkey:`${n}${"\uFFF0"}`}}s(fS,"getTemplateParams");function yu(t,e={}){return Pt("role",t,e)}s(yu,"getRoleParams");function qs(t,e){let r=e?`${"_"}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${"\uFFF0"}"`}s(qs,"getStartEndKeyURL");var pS=s((t,e={})=>Pt("plg",t,e),"getPluginParams"),mS=s((t,e={})=>Pt("oauth2",t,e),"getOAuth2ConfigParams"),hS=s((t,e={})=>Pt("workspace_app",t,e),"getWorkspaceAppParams"),gS=s((t,e={})=>Pt("workspace_favourite",t,e),"getWorkspaceFavouriteParams"),ES=s((t,e={})=>Pt("project",t,e),"getProjectParams");function yS(t,e){return Object.values(ae).sort((r,n)=>n.length-r.length).find(r=>t.startsWith(Ot(r)))===e}s(yS,"isType");async function TS(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(o){let a=await Df(o);r=r.concat(a)}s(n,"addDbs");let i=V();return!E.MULTI_TENANCY||!e&&i===ce?await n():(await n(qs("app",i)),await n(qs("app_dev",i)),r.push(ln(i))),r}s(TS,"getAllDbs");async function Ks({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=V();!E.MULTI_TENANCY&&!i&&(i=ce);let a=(await TS({efficient:n||!1})).filter(c=>{if(E.isTest()&&!c)return!1;let l=c.split("_");if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ce&&f||d===i}return!1});if(r){let c=a.filter(d=>Nt(d)),l=a.filter(d=>!Nt(d));switch(t){case!0:return c;case!1:return l;default:return a}}let u=a.map(c=>gu(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(Ks,"getAllWorkspaces");async function lv(t){return(await Promise.allSettled(t.map(r=>gu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}s(lv,"getWorkspacesByIDs");async function dv(){return(await Ks({idsOnly:!0})).filter(e=>!Nt(e))}s(dv,"getProdWorkpaceIDs");async function fv(){return(await Ks({idsOnly:!0})).filter(e=>Nt(e))}s(fv,"getDevWorkspaceIDs");function pv(t,e){return t==null||e==null?!1:He(t)===He(e)}s(pv,"isSameWorkspaceID");async function mv(t){return je(t,async e=>await e.exists(),{skip_setup:!0})}s(mv,"dbExists");function Yf(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(Yf,"pagination");var zf="_design/database";function hv(){return{_id:zf,views:{}}}s(hv,"DesignDoc");async function gv(t,e){if(Jn[e])try{let r=await t.get(zf);for(let n of Jn[e])delete r.views?.[n];await t.put(r)}catch{}}s(gv,"removeDeprecated");async function ci(t,e,r){let n;try{n=await t.get(zf)}catch{n=hv()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(o){if(o.status===409)return await ci(t,e,r);throw o}}s(ci,"createView");var SS=s(async()=>{let t=z(),e=`function(doc) {
10
10
  if (doc._id.startsWith("us${"_"}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await si(t,e,"by_email2")},"createNewUserEmailView"),yS=s(async()=>{let t=z(),e=`function(doc) {
13
+ }`;await ci(t,e,"by_email2")},"createNewUserEmailView"),AS=s(async()=>{let t=z(),e=`function(doc) {
14
14
  if (doc._id.startsWith("us${"_"}") && doc.roles) {
15
15
  for (let prodWorkspaceId of Object.keys(doc.roles)) {
16
16
  let emitted = prodWorkspaceId + "${"_"}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await si(t,e,"by_app")},"createUserAppView"),TS=s(async()=>{let t=z(),e=`function(doc) {
20
+ }`;await ci(t,e,"by_app")},"createUserAppView"),_S=s(async()=>{let t=z(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await si(t,e,"by_api_key")},"createApiKeyView");async function $s(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 pv(r,t),await n(),$s(t,e,r,n,i);if(o.status===409)return $s(t,e,r,n,i);throw o}}s($s,"queryViewRaw");var zf=s(async(t,e,r,n,i)=>{let u=(await $s(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 SS(t,e){try{await je(pe.PLATFORM_INFO.name,async r=>{await si(r,t,e)})}catch(r){if(r.status===409&&E.isTest())return;throw r}}s(SS,"createPlatformView");var AS=s(async()=>{let t=`function(doc) {
24
+ }`;await ci(t,e,"by_api_key")},"createApiKeyView");async function Qs(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 gv(r,t),await n(),Qs(t,e,r,n,i);if(o.status===409)return Qs(t,e,r,n,i);throw o}}s(Qs,"queryViewRaw");var Jf=s(async(t,e,r,n,i)=>{let u=(await Qs(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 OS(t,e){try{await je(pe.PLATFORM_INFO.name,async r=>{await ci(r,t,e)})}catch(r){if(r.status===409&&E.isTest())return;throw r}}s(OS,"createPlatformView");var IS=s(async()=>{let t=`function(doc) {
25
25
  if (doc._id.startsWith("acc_metadata${"_"}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await SS(t,"account_by_email")},"createPlatformAccountEmailView"),_S=s(async()=>{await SS(`function(doc) {
28
+ }`;await OS(t,"account_by_email")},"createPlatformAccountEmailView"),wS=s(async()=>{await OS(`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"),Vs=s(async(t,e)=>{let r={account_by_email:AS,platform_users_lowercase_2:_S};return je(pe.PLATFORM_INFO.name,async n=>{let i=r[t];return zf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),OS={by_email2:ES,by_api_key:TS,by_app:yS},Ht=s(async(t,e,r,n)=>{r||(r=z());let i=OS[t];return zf(t,e,r,i,n)},"queryGlobalView");async function qs(t,e,r){let n=z(),i=OS[t];return $s(t,e,n,i,r)}s(qs,"queryGlobalViewRaw");var mv=W(require("pouchdb"));var IS=require("dd-trace");var Jf=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=it(e),this.target=it(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([Ps(this.source),Ps(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 IS.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,g)=>f?.startsWith(g+"_"),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:s((f,g)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,Rs)?!0:n==="toProduction"&&!o&&l(f._id,"autocolumn_state")?!1:d(f._id)?!!c?.find(m=>f._id.includes(m))||u:l(f._id,"log_au")||l(f._id,"agentlogsession")||f._id==="app_metadata"?!1:r?r(f,g):!0,"filter")}}async rollback(){await this.target.destroy(),this.target=it(this.target.name),await this.replicate()}},wS=Jf;var CS=W(require("node-fetch"));var Ks=Er.removeKeyNumbering;function Or(t){return t==null||t===""}s(Or,"isEmpty");var Yt=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:{},notOneOf:{},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}addNotOneOf(e,r){return this.#e.notOneOf[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=Ks(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((h,p)=>Or(p)?null:`${h}:${e.preprocess(p,o)}`,"equal"),c=s((h,p,T="AND")=>{if(Or(p))return null;if(!Array.isArray(p))return`${h}:${p}`;let A=`${e.preprocess(p[0],{escape:!0})}`;for(let _=1;_<p.length;_++)A+=` ${T} ${e.preprocess(p[_],{escape:!0})}`;return`${h}:(${A})`},"contains"),l=s((h,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"fuzzy"}),`${h}:/.*${p}.*/`),"fuzzy"),d=s((h,p)=>{let T=r?"*:* AND ":"",A=r?"AND":void 0;return T+"NOT "+c(h,p,A)},"notContains"),f=s((h,p)=>c(h,p,"OR"),"containsAny"),g=s((h,p)=>{if(Or(p))return"*:*";if(!Array.isArray(p))if(typeof p=="string")p=p.split(",");else return"";let T=`${e.preprocess(p[0],o)}`;for(let A=1;A<p.length;A++)T+=` OR ${e.preprocess(p[A],o)}`;return`${h}:(${T})`},"oneOf"),m=s((h,p)=>{if(Or(p))return null;if(!Array.isArray(p))if(typeof p=="string")p=p.split(",");else return"";let T=`${e.preprocess(p[0],o)}`;for(let A=1;A<p.length;A++)T+=` OR ${e.preprocess(p[A],o)}`;return`(*:* -${h}:(${T}))`},"notOneOf");function y(h,p,T){let A="";for(let[_,I]of Object.entries(h)){_=Ks(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let O=p(_,I);if(O!=null){if(A.length>0||n.length>0){let C=T?.mode?T.mode:r?"OR":"AND";A+=` ${C} `}A+=O,(typeof I!="string"&&I!=null||typeof I=="string"&&I!==a&&I!=="")&&(i=!1)}}if(T?.returnBuilt)return A;n+=A}if(s(y,"build"),this.#e.string&&y(this.#e.string,(h,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"string"}),`${h}:${p}*`)),this.#e.range&&y(this.#e.range,(h,p)=>{if(Or(p)||p.low==null||p.low===""||p.high==null||p.high==="")return null;let T=e.preprocess(p.low,o),A=e.preprocess(p.high,o);return`${h}:[${T} TO ${A}]`}),this.#e.fuzzy&&y(this.#e.fuzzy,l),this.#e.equal&&y(this.#e.equal,u),this.#e.notEqual&&y(this.#e.notEqual,(h,p)=>Or(p)?null:typeof p=="boolean"?`(*:* AND !${h}:${p})`:`!${h}:${e.preprocess(p,o)}`),this.#e.empty&&y(this.#e.empty,h=>(i=!1,`(*:* -${h}:["" TO *])`)),this.#e.notEmpty&&y(this.#e.notEmpty,h=>(i=!1,`${h}:["" TO *]`)),this.#e.oneOf&&y(this.#e.oneOf,g),this.#e.notOneOf&&y(this.#e.notOneOf,m),this.#e.contains&&y(this.#e.contains,c),this.#e.notContains&&y(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&y(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,y({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}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await RS(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await RS(n,i,r);throw o}}};async function RS(t,e,r){let n=await(0,CS.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(RS,"runQuery");async function DS(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Yt.maxLimit;n.limit&&o.length>n.limit-Yt.maxLimit&&(a=n.limit-o.length);let u=new Yt(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<Yt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await DS(t,e,r,l)}s(DS,"recursiveSearch");async function hv(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Yt.maxLimit);let o=new Yt(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(hv,"paginatedSearch");async function gv(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 DS(t,e,r,n)}}s(gv,"fullSearch");var Xf={};P(Xf,{createUserIndex:()=>Ev});async function Ev(){let t=z(),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(Ev,"createUserIndex");function bS(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(bS,"checkErrorCode");function yv(t){return bS(t,409)}s(yv,"isDocumentConflictError");var js={};P(js,{addTenantToUrl:()=>Tv,getTenantDB:()=>Zf,getTenantIDFromCtx:()=>Qs,isUserInWorkspaceTenant:()=>Sv});function Zf(t){return Ce(un(t))}s(Zf,"getTenantDB");function Tv(t){let e=q();if(Sr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(Tv,"addTenantToUrl");var Sv=s((t,e)=>{let r;return e?r=e.tenantId||ce:r=q(),(Zn(t)||ce)===r},"isUserInWorkspaceTenant"),Av=Object.values(vi),Qs=s((t,e)=>{if(!Sr())return ce;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=Av),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(bf()).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 yu={milliseconds:1,seconds:1e3,minutes:60*1e3,hours:3600*1e3,days:1440*60*1e3},me=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/yu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*yu[e]/yu[r]}static from(e,r){return new t(r*yu[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)}};function Tu(){let t=me.fromDays(7).toSeconds();if(!E.SESSION_EXPIRY_SECONDS)return t;let e=parseInt(E.SESSION_EXPIRY_SECONDS);return Number.isFinite(e)&&e>0?e:t}s(Tu,"getSessionExpirySeconds");function ep(){return new Date(Date.now()+Tu()*1e3)}s(ep,"getSessionExpiryDate");var tp="app_",xS="/app/",vS="/app-chat/";async function _v(t){let r=t.path.split("/")[2];if(!r)return;let n=`/${r.toLowerCase()}`,i=q();!E.isDev()&&E.MULTI_TENANCY&&(i=Qs(t,{includeStrategies:["subdomain"]}));let a=(await De(i,()=>Gs({dev:!1}))).filter(u=>u.url&&u.url.toLowerCase()===n)[0];return a&&a.appId?a.appId:void 0}s(_v,"resolveAppUrl");function Ov(t){return t.path.startsWith(`/${tp}`)?!0:t.path.startsWith(xS)||t.path.startsWith(vS)}s(Ov,"isServingApp");function Iv(t){return t.path.startsWith("/builder/workspace/")}s(Iv,"isServingBuilder");function wv(t){return NS(t.path)}s(wv,"isServingBuilderPreview");function NS(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(NS,"isBuilderPreviewUrl");function Rv(t){return t.path.startsWith("/api/public/v")}s(Rv,"isPublicApiRequest");async function dn(t){let e;function r(u){u&&u.startsWith(tp)&&(e&&e!==u&&t.throw(403,"App id conflict"),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=Cv(t.path);r(i),n(t.query?.appId);let o=NS(t.path);return(t.path.startsWith(xS)||t.path.startsWith(vS))&&!o&&r(await _v(t)),e}s(dn,"getWorkspaceIdFromCtx");function Cv(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(tp))}s(Cv,"parseWorkspaceIdFromUrlPath");function Au(t){if(t)try{return Su.default.verify(t,E.JWT_SECRET)}catch(e){if(E.JWT_SECRET_FALLBACK)return Su.default.verify(t,E.JWT_SECRET_FALLBACK);throw e}}s(Au,"openJwt");function Hs(t){return E.INTERNAL_API_KEY&&E.INTERNAL_API_KEY===t?!0:!!(E.INTERNAL_API_KEY_FALLBACK&&E.INTERNAL_API_KEY_FALLBACK===t)}s(Hs,"isValidInternalAPIKey");function zt(t,e){let r=t.cookies.get(e);if(r)return Au(r)}s(zt,"getCookie");function rp(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Su.default.sign(e,E.JWT_SECRET));let i=n.sameSite,o=n.secure??t.secure;i==="none"&&(o?o=!0:i="lax");let a={expires:n.expires??Va,path:"/",httpOnly:n.httpOnly??!1,secure:o,overwrite:!0};i&&(a.sameSite=i),E.COOKIE_DOMAIN&&(a.domain=E.COOKIE_DOMAIN),t.cookies.set(r,e,a)}s(rp,"setCookie");function Dv(t,e){rp(t,e,"budibase:auth",{sign:!1,httpOnly:!0,expires:ep()})}s(Dv,"setAuthCookie");function Jt(t,e){rp(t,null,e)}s(Jt,"clearCookie");function bv(t){return t.headers["x-budibase-type"]==="client"}s(bv,"isClient");function np(t){return new Promise(e=>setTimeout(e,t))}s(np,"timeout");function ip(t){return!!fh[t]}s(ip,"isAudited");function xv(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(xv,"hasCircularStructure");function vv(t){return!!t.match(/^.+:\/\/.+$/)}s(vv,"urlHasProtocol");function sp(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(sp,"validEmail");async function Nv(t){let e=performance.now();return[await t(),me.fromMilliseconds(performance.now()-e)]}s(Nv,"time");var _u=require("undici");function Pv(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 g=c.slice(1);d=r===g.slice(1)||r.endsWith(g)}else d=r===c;if(d&&(!l||n===l))return!0}return!1}s(Pv,"isUrlMatchingNoProxy");function Lv(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&&Pv(t,i))return console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy",{url:t,noProxy:i}),!0}return!1}s(Lv,"shouldBypassProxy");function Uv(t,e){return new _u.Agent({connect:{rejectUnauthorized:t,...e?{lookup:e}:{}}})}s(Uv,"createDirectAgent");function kv(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 _u.ProxyAgent(i)}s(kv,"createProxyAgent");function Mv(t){let e=t?.rejectUnauthorized??!0;return Lv(t?.url)?Uv(e,t?.lookup):(t?.lookup&&console.log("[fetch] Proxy configured; IP pinning is not applied to proxied requests"),kv(e))}s(Mv,"createDispatcher");function Fv(t){return Mv(t)}s(Fv,"getDispatcher");var op=require("util"),ap=W(require("zlib"));var Bv=(0,op.promisify)(ap.default.gzip),Wv=(0,op.promisify)(ap.default.gunzip),Ou="gzip:",Gv=s(async t=>{let e=await Bv(t);return`${Ou}${e.toString("base64")}`},"gzipToBase64"),$v=s(async t=>{let e=t.startsWith(Ou)?t.slice(Ou.length):t,r=Buffer.from(e,"base64");return(await Wv(new Uint8Array(r))).toString("utf8")},"gunzipFromBase64");function Vv(t){let e=t.get("authorization");if(!e)return null;let r=e.match(/^Bearer\s+(.+)$/i);return r?r[1]:null}s(Vv,"getBearerToken");var BS=W(require("http")),WS=W(require("https"));var fp={};P(fp,{isBlacklisted:()=>dp,refreshBlacklist:()=>MS,resolveAddress:()=>Iu});var PS=W(require("dns")),wr=W(require("net"));var LS=require("util");var qv=["127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10"],cp,Kv=(0,LS.promisify)(PS.default.lookup);function US(){return!(E.SELF_HOSTED&&E.BLACKLIST_IPS!==void 0)}s(US,"shouldApplyDefaultBlacklist");function lp(t){return wr.default.isIP(t)===6?"ipv6":"ipv4"}s(lp,"getIpVersion");function Qv(t){let e=wr.default.isIP(t);return e===4?32:e===6?128:null}s(Qv,"getMaxPrefixLength");function jv(t,e){if(!/^\d+$/.test(e))return null;let r=Number.parseInt(e,10),n=Qv(t);return n==null||r>n?null:r}s(jv,"getValidSubnetPrefix");function Hv(t){return wr.default.isIP(t)?t:(/^https?:\/\//.test(t)||(t=`https://${t}`),new URL(t).hostname.replace(/^\[|\]$/g,""))}s(Hv,"parseAddress");async function kS(t){return t=Hv(t),(await Kv(t,{all:!0})).map(r=>r.address)}s(kS,"lookup");async function Iu(t){return wr.default.isIP(t)?[t]:kS(t)}s(Iu,"resolveAddress");function up(t,e){let r=e.trim();if(!r)return;let n=r.split("/");if(n.length>2){console.log(`Ignoring invalid blacklist entry: ${r}`);return}let[i,o]=n,a=wr.default.isIP(i);if(n.length===2){let u=jv(i,o);if(a&&u!==null){t.addSubnet(i,u,lp(i));return}console.log(`Ignoring invalid blacklist entry: ${r}`);return}a&&t.addAddress(i,lp(i))}s(up,"addEntryToBlacklist");async function MS(){let t=new wr.default.BlockList;if(US())for(let r of qv)up(t,r);let e=E.BLACKLIST_IPS?.split(",")||[];for(let r of e){let n=r.trim();if(!n)continue;let[i]=n.split("/");if(wr.default.isIP(i)){up(t,n);continue}let o=await kS(n);for(let a of o)up(t,a)}cp=t}s(MS,"refreshBlacklist");async function dp(t){cp||await MS();let e;try{e=await Iu(t)}catch(r){return r instanceof TypeError?(console.error("Black list error: could not parse address: ",t),!0):US()}return e.some(r=>cp.check(r,lp(r)))}s(dp,"isBlacklisted");var wu=W(require("node-fetch"));var FS=5,Yv=new Set(["http:","https:"]),zv=["authorization","cookie","cookie2","proxy-authorization"];function pp(t){let e;try{e=new URL(t)}catch{throw new Error("Invalid URL.")}if(!Yv.has(e.protocol))throw new Error("Only HTTP(S) URLs are allowed.");if(e.username||e.password)throw new Error("URL must not include credentials.");return e}s(pp,"parseUrl");function Jv(t){return[301,302,303,307,308].includes(t)}s(Jv,"isRedirect");async function Xv(t){let e=pp(t),r=await Iu(e.hostname);if(r.length===0)throw new Error("URL is blocked or could not be resolved safely.");for(let n of r)if(await dp(n))throw new Error("URL is blocked or could not be resolved safely.");return r[0]}s(Xv,"resolveSafePinnedIp");function GS(t){let e=t.includes(":")?6:4;return(r,n,i)=>{if(typeof n=="object"&&n?.all){i(null,[{address:t,family:e}]);return}i(null,t,e)}}s(GS,"createPinnedLookup");function Zv(t,e){let r=new URL(t).protocol,n=GS(e);return r==="https:"?new WS.default.Agent({lookup:n}):new BS.default.Agent({lookup:n})}s(Zv,"makePinnedAgent");function eN(t,e){let r=t.method?.toUpperCase()||"GET";return e===303||(e===301||e===302)&&r==="POST"?{...t,body:void 0,method:"GET",redirect:"manual"}:t}s(eN,"nextRequestForRedirect");function tN(t,e){return new URL(t).origin!==new URL(e).origin}s(tN,"shouldStripSensitiveHeadersForRedirect");function rN(t){if(!t.headers)return t;let e=new wu.Headers(t.headers);return zv.forEach(r=>e.delete(r)),{...t,headers:e}}s(rN,"stripSensitiveHeadersForRedirect");function nN(t){return!t||typeof t!="object"||!("resume"in t)?!1:typeof t.resume=="function"}s(nN,"isResumableBody");function iN(t){let e=t.body;nN(e)&&e.resume()}s(iN,"releaseResponseBody");async function oi(t,e={},{followRedirects:r=!0,returnRedirectWithoutLocation:n=!1,rejectCrossOriginRedirects:i=!1,fetchFn:o=wu.default}={}){let a=t,u={...e,redirect:"manual"};for(let c=0;c<=FS;c++){let l=await Xv(a),d;try{d=await o(a,{...u,agent:Zv(a,l)},l)}catch(m){let y=pp(a).hostname;throw m instanceof Error?(m.message=`Failed to connect to resolved IP for ${y}: ${m.message}`,m):new Error(`Failed to connect to resolved IP for ${y}: unknown network error`)}if(!Jv(d.status))return d;if(iN(d),!r)throw new Error("Redirects are not permitted.");if(c===FS)break;let f=d.headers.get("location");if(!f){if(n)return d;throw new Error("Maximum redirect reached.")}let g=pp(new URL(f,a).toString()).toString();if(u=eN(u,d.status),tN(a,g)){if(i)throw new Error("Redirect to a different origin is not permitted.");u=rN(u)}a=g}throw new Error("Maximum redirect reached.")}s(oi,"fetchWithBlacklist");var sN=s((t,e)=>`datasource:creation:${t}:microsoft:${e}`,"microsoftDatasourceCreationCacheKey");function oN(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(oN,"jobToJobInformation");var Ru=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new $S.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,g)=>{f?l(f):c(g)},"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=X(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:s(async()=>{c._isDiscarded=!0},"discard")};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:s(()=>new Promise((c,l)=>{let d=s((g,m)=>{g.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(m))},"errorHandler"),f=s((g,m)=>{g.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(m))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)}),"finished")}}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}async getJobs(){return this._messages}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=>oN(e))}async whenCurrentJobsFinished(){do await np(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},VS=Ru;var gp=W(require("bull"));var ui=(y=>(y.AUTOMATION="automationQueue",y.APP_BACKUP="appBackupQueue",y.AUDIT_LOG="auditLogQueue",y.SYSTEM_EVENT_QUEUE="systemEventQueue",y.APP_MIGRATION="appMigration",y.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",y.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",y.BATCH_USER_SYNC_PROCESSOR="batchUserSyncProcessorQueue",y.RAG_INGESTION="ragIngestionQueue",y.KNOWLEDGE_SOURCE_SYNC="knowledgeSourceSyncQueue",y.AGENT_LOG_INDEXING="agentLogIndexingQueue",y.ESCALATION="escalationQueue",y.AGENT_REQUEST_TRACKING="agentRequestTrackingQueue",y.AGENT_TEST_RUN="agentTestRunQueue",y))(ui||{});function qS(t,e,r){cN(t,e),r&&aN(t,r)}s(qS,"addListeners");function aN(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(aN,"handleStalled");function ot(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(ot,"getLogParams");var uN={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",escalationQueue:"escalation-processor",agentRequestTrackingQueue:"agent-request-tracking-processor",agentTestRunQueue:"agent-test-run-processor",knowledgeSourceSyncQueue:"knowledge-source-sync-processor"};function cN(t,e){let r=uN[e];function n(i,o){let a=i.data.event?.appId;if(a)return xf(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...ot(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...ot(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...ot(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...ot(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...ot(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...ot(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...ot(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...ot(r,"paused"))}).on("resumed",()=>{console.info(...ot(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...ot(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...ot(r,"drained"))}).on("removed",i=>{console.info(...ot(r,"removed",{job:i}))})}s(cN,"logging");var Cu={};P(Cu,{cleanup:()=>lN,clear:()=>hp,set:()=>mp});var Ys=[];function mp(t,e){let r=setInterval(t,e);return Ys.push(r),r}s(mp,"set");function hp(t){let e=Ys.indexOf(t);e!==-1&&Ys.splice(e,1),clearInterval(t)}s(hp,"clear");function lN(){for(let t of Ys)clearInterval(t);Ys=[]}s(lN,"cleanup");var Xt=W(require("dd-trace")),zs=W(require("object-sizeof"));var dN=me.fromMinutes(5).toMs(),fN=me.fromSeconds(30).toMs(),Ep=me.fromSeconds(60).toMs(),Js=[],Du;async function KS(){for(let t of Js)await t.clean(Ep,"completed"),await t.clean(Ep,"failed")}s(KS,"cleanup");async function pN(t,e,r){let n=performance.now();try{let i=await e();return Xt.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw Xt.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;Xt.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),Xt.default.dogstatsd.increment(t,1,r)}}s(pN,"withMetrics");function QS(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(QS,"jobOptsTags");function mN(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,zs.default)(t.data),...QS(t.opts||{})}}s(mN,"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:on(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:dN,lockRenewTime:fN}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return E.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new gp.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new VS(this.jobQueue,r):n=new gp.default(this.jobQueue,r),qS(n,this.jobQueue,this.opts.removeStalledCb),Js.push(n),!Du&&!E.isTest()&&(Du=mp(KS,Ep),KS().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 Xt.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:s(()=>l.traceId,"toTraceId"),toSpanId:s(()=>l.spanId,"toSpanId"),toTraceparent:s(()=>"","toTraceparent")};c.addLink(d)}c.addTags({"queue.name":this.jobQueue,...mN(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),Xt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,zs.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 Xt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,zs.default)(e),...QS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},Xt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,zs.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return pN(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function hN(){Du&&hp(Du),console.log("Waiting for current queue jobs to finish...");for(let t of Js)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Js)await t.close();Js=[],console.log("Queues shutdown")}s(hN,"shutdown");var io={};P(io,{correlation:()=>Xs,logAlert:()=>mn,logAlertWithInfo:()=>ZN,logWarn:()=>di,logger:()=>ku,system:()=>vp});var Xs={};P(Xs,{getId:()=>yp,setHeader:()=>gN});var jS=require("correlation-id"),gN=s(t=>{let e=jS.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function yp(){return jS.getId()}s(yp,"getId");var Uu=W(require("pino")),IA=W(require("pino-pretty")),Np=W(require("dd-trace")),wA=require("dd-trace/ext");var vp={};P(vp,{getLogReadStream:()=>jN,getSingleFileMaxSizeInfo:()=>OA,localFileDestination:()=>xp});var no=W(require("fs")),bp=W(require("path")),TA=W(require("rotating-file-stream"));var Dp={};P(Dp,{ObjectStore:()=>at,ObjectStoreBuckets:()=>yN,SIGNED_FILE_PREFIX:()=>Ip,bucketTTLConfig:()=>bu,budibaseTempDir:()=>fn,client3rdPartyLibrary:()=>WN,clientLibraryPath:()=>BN,clientLibraryUrl:()=>GN,createBucketIfNotExists:()=>ro,deleteFile:()=>xN,deleteFiles:()=>vN,deleteFolder:()=>aA,downloadTarball:()=>PN,downloadTarballDirect:()=>NN,enrichPWAImages:()=>$N,enrichPluginURLs:()=>qN,extractBucketAndPath:()=>Tp,getAllFiles:()=>CN,getAppFileUrl:()=>dA,getClientCacheKey:()=>lA,getGlobalFileS3Key:()=>fA,getGlobalFileUrl:()=>VN,getObjectMetadata:()=>LN,getPluginIconKey:()=>hA,getPluginJSKey:()=>mA,getPluginS3Dir:()=>EA,getPresignedUrl:()=>pn,getReadStream:()=>xu,getSafeRetrieveDirectoryPath:()=>oA,listAllObjects:()=>wp,objectExists:()=>UN,processAutomationAttachment:()=>SN,processObjectStoreAttachment:()=>XS,retrieve:()=>sA,retrieveDirectory:()=>bN,retrieveToTmp:()=>DN,sanitizeBucket:()=>be,sanitizeKey:()=>Ee,streamUpload:()=>iA,streamUploadMany:()=>RN,upload:()=>wN,uploadDirectory:()=>Rp});var Nu=require("@aws-sdk/client-s3"),Sp=require("@aws-sdk/lib-storage"),ZS=require("@aws-sdk/s3-request-presigner"),eA=require("@smithy/node-http-handler");var Zt=W(require("dd-trace")),ci=W(require("fs")),eo=W(require("fs/promises")),tA=W(require("https")),Ye=require("path"),Pu=W(require("stream")),to=require("stream/promises"),Ap=W(require("tar-fs")),_p=require("uuid"),Op=W(require("zlib"));var HS=W(require("fs")),YS=require("os"),Zs=W(require("path")),zS=W(require("stream"));var yN={BACKUPS:E.BACKUPS_BUCKET_NAME,APPS:E.APPS_BUCKET_NAME,TEMPLATES:E.TEMPLATES_BUCKET_NAME,GLOBAL:E.GLOBAL_BUCKET_NAME,PLUGINS:E.PLUGIN_BUCKET_NAME,TEMP:E.TEMP_BUCKET_NAME},JS=(0,Zs.join)((0,YS.tmpdir)(),".budibase");try{HS.default.mkdirSync(JS)}catch(t){if(t.code!=="EEXIST")throw t}function fn(){return JS}s(fn,"budibaseTempDir");var bu=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 TN(t){let e=await oi(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");if(!(e.body instanceof zS.default.Readable))throw new Error("Unexpected response body stream type");return{filename:t.filename||r,content:e.body}}s(TN,"processUrlAttachment");async function XS(t){let e=Tp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await xu(r,n),o=Zs.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(XS,"processObjectStoreAttachment");async function SN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await TN(t):await XS(t)}s(SN,"processAutomationAttachment");var AN=require("sanitize-s3-objectkey"),_N={bucketCreationPromises:{}},Ip="/files/signed",Rr={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"},ON=[Rr.html,Rr.css,Rr.js,Rr.json];function Ee(t){let e=AN(be(t)).replace(/\\/g,"/");if(e.split("/").some(r=>r==="."||r===".."))throw new Error("Invalid object store key: path traversal is not allowed.");return e}s(Ee,"sanitizeKey");function be(t){return t.replace(new RegExp(nt,"g"),rt)}s(be,"sanitizeBucket");function at(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY},region:E.AWS_REGION};if(!E.MINIO_ENABLED&&E.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY,sessionToken:E.AWS_SESSION_TOKEN}),E.MINIO_URL&&(t.presigning&&E.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=E.MINIO_URL),E.S3_IGNORE_SELF_SIGNED==="true"){let r=new tA.default.Agent({rejectUnauthorized:!1});e.requestHandler=new eA.NodeHttpHandler({httpsAgent:r})}return new Nu.S3(e)}s(at,"ObjectStore");async function ro(t,e){e=be(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode||r.$metadata?.httpStatusCode,i=_N.bucketCreationPromises;if(n===403)throw new Error("Access denied to object store bucket."+r);if(i[e])return await i[e],{created:!1,exists:!0};i[e]=t.createBucket({Bucket:e}).catch(o=>{if(o.Code!=="BucketAlreadyOwnedByYou"&&o.name!=="BucketAlreadyOwnedByYou")throw o});try{return await i[e],{created:!0,exists:!1}}finally{delete i[e]}}}s(ro,"createBucketIfNotExists");var IN=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?Rr[r.toLowerCase()]:Rr.txt},"resolveContentType"),rA=s(async(t,e,r)=>{let n=be(t),i=at(),o=await ro(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=bu(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),nA=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=IN(r,i),u=Ee(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new Sp.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function wN({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await eo.default.open(r)).createReadStream():o,l=at(),d=await ro(l,t);if(a&&d.created){let h=bu(t,a);await l.putBucketLifecycleConfiguration(h)}let f=n,g=f||(u?Rr[u.toLowerCase()]:Rr.txt),m={Bucket:be(t),Key:Ee(e),Body:c,ContentType:g};if(i&&typeof i=="object"){for(let h of Object.keys(i))(!i[h]||typeof i[h]!="string")&&delete i[h];m.Metadata=i}return new Sp.Upload({client:l,params:m}).done()}s(wN,"upload");async function iA({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await Zt.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 rA(t,o,a),{details:d,contentType:f}=await nA({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),g=await l.headObject({Bucket:c,Key:Ee(r)});return a.addTags({contentType:f,contentLength:g.ContentLength}),{...d,ContentLength:g.ContentLength}})}s(iA,"streamUpload");async function RN({bucket:t,files:e,ttl:r}){return await Zt.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await rA(t,r,i),u=e.map((l,d)=>({...l,index:d})),c=new Array(e.length);return await wt.parallelForeach(u,async l=>{let{details:d}=await nA({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=d},10),c})}s(RN,"streamUploadMany");async function sA(t,e){return await Zt.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=at(),i={Bucket:be(t),Key:Ee(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}),ON.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return Pu.default.Readable.fromWeb(a)}})}s(sA,"retrieve");async function*wp(t,e){let r=at(),n=s((a={})=>r.listObjectsV2({...a,Bucket:be(t),Prefix:Ee(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(wp,"listAllObjects");async function CN(t,e){let r={};return await wt.parallelForeach(wp(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(CN,"getAllFiles");async function pn(t,e,r=3600){let n=at({presigning:!0}),i={Bucket:be(t),Key:Ee(e)},o=await(0,ZS.getSignedUrl)(n,new Nu.GetObjectCommand(i),{expiresIn:r});if(E.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${Ip}${u}${c}`}else return o}s(pn,"getPresignedUrl");async function DN(t,e){return await Zt.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=be(t),e=Ee(e);let n=await sA(t,e),i=(0,Ye.join)(fn(),(0,_p.v4)());return r.addTags({outputPath:i}),n instanceof Pu.default.Readable?(r.addTags({stream:!0}),await(0,to.pipeline)(n,ci.default.createWriteStream(i))):(r.addTags({stream:!1}),ci.default.writeFileSync(i,n)),i})}s(DN,"retrieveToTmp");async function bN(t,e,r){return await Zt.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Ye.join)(fn(),(0,_p.v4)());await eo.default.mkdir(i,{recursive:!0});let o=0;return await wt.parallelForeach(wp(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await Zt.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let d=oA(i,l);if(!d){c.addTags({skippedUnsafePath:!0});return}let{stream:f}=await xu(t,l);ci.default.existsSync(d.dir)||await eo.default.mkdir(d.dir,{recursive:!0}),await(0,to.pipeline)(f,ci.default.createWriteStream(d.path,{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(bN,"retrieveDirectory");function oA(t,e){let r=(0,Ye.resolve)(t),n=(0,Ye.resolve)(r,...e.split("/"));if(n===r||n.startsWith(`${r}${Ye.sep}`))return{dir:(0,Ye.dirname)(n),path:n}}s(oA,"getSafeRetrieveDirectoryPath");async function xN(t,e){let r=at();await ro(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(xN,"deleteFile");async function vN(t,e){let r=at();await ro(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ee(i)}))}};return r.deleteObjects(n)}s(vN,"deleteFiles");async function aA(t,e){t=be(t),e=Ee(e);let r=at(),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 aA(t,e)}s(aA,"deleteFolder");async function Rp(t,e,r){return await Zt.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=be(t);let i=await eo.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=Ee((0,Ye.join)(r,o.name)),u=(0,Ye.join)(e,o.name);o.isDirectory()?await Rp(t,u,a):await iA({bucket:t,filename:a,stream:ci.default.createReadStream(u)})}return i})}s(Rp,"uploadDirectory");async function NN(t,e,r={},{followRedirects:n=!0}={}){e=Ee(e);let i=await oi(t,{headers:r},{followRedirects:n});if(!i.ok)throw new Error(`unexpected response ${i.statusText}`);await(0,to.pipeline)(i.body,Op.default.createUnzip(),Ap.default.extract(e))}s(NN,"downloadTarballDirect");async function PN(t,e,r){e=be(e),r=Ee(r);let n=await oi(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Ye.join)(fn(),r);return await(0,to.pipeline)(n.body,Op.default.createUnzip(),Ap.default.extract(i)),!E.isTest()&&E.SELF_HOSTED&&await Rp(e,i,r),i}s(PN,"downloadTarball");async function xu(t,e){return await Zt.default.trace("getReadStream",async r=>{t=be(t),e=Ee(e),r.addTags({bucketName:t,path:e});let n=at(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof Pu.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(xu,"getReadStream");async function LN(t,e){t=be(t),e=Ee(e);let r=at(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(LN,"getObjectMetadata");async function UN(t,e){t=be(t),e=Ee(e);let r=at(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode||i.$metadata?.httpStatusCode)===404)return!1;throw i}}s(UN,"objectExists");function Tp(t){let e=t.split("?")[0],r=new RegExp(`^${Ip}/(?<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(Tp,"extractBucketAndPath");var cA=W(require("querystring"));var uA=W(require("aws-cloudfront-sign"));var Lu;function kN(){if(!E.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Lu||(Lu=Buffer.from(E.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Lu)}s(kN,"getPrivateKey");var MN=s(()=>({keypairId:E.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:kN(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),li=s(t=>{let e=FN(t);return uA.getSignedUrl(e,MN())},"getPresignedUrl"),FN=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${E.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function BN(t){return`${Ee(t)}/budibase-client.js`}s(BN,"clientLibraryPath");function WN(t,e){return`${Ee(t)}/${e}`}s(WN,"client3rdPartyLibrary");async function GN(t,e){return`/api/assets/${t}/client?${await lA(e)}`}s(GN,"clientLibraryUrl");async function lA(t){let e,r;try{e=q()}finally{r={version:t}}return e&&e!==ce&&(r.tenantId=e),cA.default.encode(r)}s(lA,"getClientCacheKey");async function dA(t){return E.CLOUDFRONT_CDN?li(t):await pn(E.APPS_BUCKET_NAME,t)}s(dA,"getAppFileUrl");async function $N(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await dA(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s($N,"enrichPWAImages");var VN=s(async(t,e,r)=>{let n=fA(t,e);return E.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),li(n)):await pn(E.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),fA=s((t,e)=>{let r=`${t}/${e}`;return E.MULTI_TENANCY&&(r=`${q()}/${r}`),r},"getGlobalFileS3Key");async function qN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await KN(e),n=await QN(e);return{...e,jsUrl:r,iconUrl:n}}))}s(qN,"enrichPluginURLs");async function KN(t){let e=mA(t);return pA(e)}s(KN,"getPluginJSUrl");async function QN(t){let e=hA(t);if(e)return pA(e)}s(QN,"getPluginIconUrl");async function pA(t){return E.CLOUDFRONT_CDN?li(t):await pn(E.PLUGIN_BUCKET_NAME,t)}s(pA,"getPluginUrl");function mA(t){return gA(t,"plugin.min.js")}s(mA,"getPluginJSKey");function hA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return gA(t,e)}s(hA,"getPluginIconKey");function gA(t,e){return`${EA(t.name)}/${e}`}s(gA,"getPluginS3Key");function EA(t){let e=`${t}`;return E.MULTI_TENANCY&&(e=`${q()}/${e}`),E.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(EA,"getPluginS3Dir");var SA="budibase.log",AA="budibase-logs-history.txt",_A=bp.default.join(fn(),"systemlogs");function yA(t){return bp.default.join(_A,t)}s(yA,"getFullPath");function OA(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(OA,"getSingleFileMaxSizeInfo");function xp(){let t=OA(E.ROLLING_LOG_MAX_SIZE);return TA.createStream(SA,{size:t?.size,path:_A,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:AA,initialRotation:!1})}s(xp,"localFileDestination");function jN(){let t=[],e=yA(AA);if(no.default.existsSync(e)){let i=no.default.readFileSync(e,"utf-8").split(`
37
- `);for(let o of i.filter(a=>a))t.push(no.default.readFileSync(o))}return t.push(no.default.readFileSync(yA(SA))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(jN,"getLogReadStream");function HN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(HN,"isPlainObject");function YN(t){return t instanceof Error}s(YN,"isError");function zN(t){return typeof t=="string"}s(zN,"isMessage");var Cr;if(!E.DISABLE_PINO_LOGGER){let t=E.LOG_LEVEL,e={level:t,formatters:{level:s(c=>({level:c.toUpperCase()}),"level"),bindings:s(()=>E.SELF_HOSTED?{service:E.SERVICE_NAME}:{},"bindings")},timestamp:s(()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`,"timestamp")},r=[];r.push(E.isDev()?{stream:(0,IA.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),E.SELF_HOSTED&&r.push({stream:xp(),level:t}),Cr=r.length?(0,Uu.default)(e,Uu.default.multistream(r)):(0,Uu.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(p=>{zN(p)&&(f=`${f} ${p}`.trimStart()),HN(p)&&d.push(p),YN(p)&&(l=p)});let g=u(),m={};m={tenantId:i(),appId:o(),automationId:a(),identityId:g?._id,identityType:g?.type,correlationId:yp()};let y=Np.default.scope().active();y&&Np.default.inject(y.context(),wA.formats.LOG,m);let h={err:l,pid:process.pid,...m};if(d.length){let p={},T=0;for(let A=0;A<d.length;A++){let _=d[A],I=_._logKey;I?(delete _._logKey,h[I]=_):(p[T]=_,T++)}Object.keys(p).length&&(h.data=p)}return[h,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Cr?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Cr?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Cr?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Cr?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Cr?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Cr?.debug(l,d)};let i=s(()=>{let c;try{c=q()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=Me()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=vf()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=Qt()}catch{}return c},"getIdentity")}var ku=Cr;var JN=["AccountError"];function XN(t){return t&&t.suppressAlert}s(XN,"isSuppressed");function mn(t,e){e&&JN.includes(e.name)&&XN(e)||console.error(`bb-alert: ${t}`,e)}s(mn,"logAlert");function ZN(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,mn(t,n)}s(ZN,"logAlertWithInfo");function di(t,e){console.warn(`bb-warn: ${t}`,e)}s(di,"logWarn");var Mu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},Pp=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 Mu&&await u.discard(),mn(`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 eP=100,Fu,so=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new Et("docWritethroughQueue",{jobOptions:{attempts:eP}})),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=Ce(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},Up=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await so.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function RA(){return Fu=new so().init(),Fu}s(RA,"init");function tP(){return Fu||RA()}s(tP,"getProcessor");var Wu={};P(Wu,{CacheKey:()=>Oe,TTL:()=>fi,bustCache:()=>pi,destroy:()=>ao,get:()=>oo,increment:()=>DA,keys:()=>Bu,store:()=>gn,withCache:()=>br,withCacheWithDynamicTTL:()=>CA});function yt(t){let e=q();return`${t}:${e}`}s(yt,"generateTenantKey");var hn=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Bf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?yt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?yt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?yt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>yt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?yt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[yt(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?yt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>yt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let 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(yt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async increment(e,r,n={useTenancy:!0}){e=n.useTenancy?yt(e):e;let i=await this.getClient(),o=await i.increment(e);return r&&await i.setExpiry(e,r),o}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?yt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var Dr=new hn,Oe={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:s(t=>`oauth2Token_${t}`,"OAUTH2_TOKEN")},fi=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(fi||{}),Bu=s((...t)=>Dr.keys(...t),"keys"),oo=s((...t)=>Dr.get(...t),"get"),gn=s((...t)=>Dr.store(...t),"store"),ao=s((...t)=>Dr.delete(...t),"destroy"),br=s((...t)=>Dr.withCache(...t),"withCache"),CA=s((...t)=>Dr.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),pi=s((...t)=>Dr.bustCache(...t),"bustCache"),DA=s((...t)=>Dr.increment(...t),"increment");var Bp={};P(Bp,{createCode:()=>cP,deleteCode:()=>dP,getCode:()=>lP,getExistingInvites:()=>Fp,getInviteCodes:()=>UA,updateCode:()=>uP});var yn={};P(yn,{AUTO_EXTEND_POLLING_MS:()=>vA,doWithLock:()=>uo,newRedlock:()=>En});var xA=W(require("redlock"));async function rP(t,e){if(t==="custom")return En(e);switch(t){case"try_once":return En(mi.TRY_ONCE);case"try_twice":return En(mi.TRY_TWICE);case"default":return En(mi.DEFAULT);case"delay_500":return En(mi.DELAY_500);case"auto_extend":return En(mi.AUTO_EXTEND);default:throw wt.unreachable(t)}}s(rP,"getClient");var mi={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 En(t={}){let e={...mi.DEFAULT,...t},n=(await Gf()).client;return new xA.default([n],e)}s(En,"newRedlock");function nP(t){let r=`lock:${t.systemLock?"system":q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(nP,"getLockName");var vA=me.fromSeconds(10).toMs();async function uo(t,e){let r=await rP(t.type,t.customOptions),n,i,o,a=!1;try{let u=nP(t),c=t.type==="auto_extend"?vA:t.ttl;if(n=await r.lock(u,c),t.type==="auto_extend"){let d=s(()=>{i=setTimeout(async()=>{a||(o=(async()=>{n=await n.extend(c,()=>t.onExtend&&t.onExtend())})(),await o,o=void 0,d())},c/2)},"extendInIntervals");d()}return{executed:!0,result:await e()}}catch(u){if(u.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw u}else throw u}finally{a=!0,clearTimeout(i),await o?.catch(()=>{}),await n?.unlock()}}s(uo,"doWithLock");var NA=me.fromDays(7).toSeconds(),sP=me.fromSeconds(10).toMs(),Gu="Invitation is not valid or has expired, please request a new one.";function PA(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(PA,"normaliseInviteList");function oP(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(oP,"pruneExpiredInvites");async function Mp(t){let r=await(await Ms()).get(t);return PA(r,t)}s(Mp,"loadInviteList");async function co(t,e){await(await Ms()).store(t,e)}s(co,"saveInviteList");async function lo(t,e){let{result:r}=await uo({type:"default",name:"process_user_invite",systemLock:!0,resource:t,ttl:sP},e);return r}s(lo,"withInviteListLock");function aP(t,e){return{code:t,email:e.email,info:e.info}}s(aP,"toInviteWithCode");async function LA(t,e){let r=await Ms(),n=PA(await r.get(e),e);if(!n)throw new Error(Gu);if(!Object.keys(n.invites).includes(t))throw new Error(Gu);return{list:n,invite:n.invites[t]}}s(LA,"findInviteInList");async function uP(t,e){let r={...e.info},n=r.tenantId||q();r.tenantId=n,await lo(n,async()=>{let i=await Mp(n)||{tenantId:n,invites:{}};i.invites[t]={email:e.email,info:r,expiresAt:Date.now()+NA*1e3},await co(n,i)})}s(uP,"updateCode");async function cP(t,e){let r=X(),n={...e||{}},i=n.tenantId||q();return n.tenantId=i,await lo(i,async()=>{let o=await Mp(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+NA*1e3},await co(i,o)}),r}s(cP,"createCode");async function lP(t,e){let r=e||q();return await lo(r,async()=>{let n=await LA(t,r),{list:i,invite:o}=n;if(o.expiresAt<=Date.now())throw delete i.invites[t],await co(i.tenantId,i),new Error(Gu);return{email:o.email,info:o.info}})}s(lP,"getCode");async function dP(t,e){let r=e||q();try{await lo(r,async()=>{let n=await LA(t,r);delete n.list.invites[t],await co(n.list.tenantId,n.list)})}catch(n){if(n instanceof Error&&n.message===Gu)return;throw n}}s(dP,"deleteCode");async function UA(){let t=q(),e=await lo(t,async()=>{let n=await Mp(t)||{tenantId:t,invites:{}},i=oP(n);return n=i.list,i.changed&&await co(t,n),n}),r=new Map;for(let[n,i]of Object.entries(e.invites))r.set(n,aP(n,i));return Array.from(r.values())}s(UA,"getInviteCodes");async function Fp(t){let e=new Set(t.map(r=>r.toLowerCase()));return(await UA()).filter(r=>e.has(r.email.toLowerCase()))}s(Fp,"getExistingInvites");var Wp={};P(Wp,{createCode:()=>pP,getCode:()=>mP,invalidateCode:()=>hP});var fP=me.fromHours(1).toSeconds();async function pP(t,e){let r=X();return await(await Fs()).store(r,{userId:t,info:e},fP),r}s(pP,"createCode");async function mP(t){let r=await(await Fs()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(mP,"getCode");async function hP(t){await(await Fs()).delete(t)}s(hP,"invalidateCode");var nr={};P(nr,{getUser:()=>bo,getUsers:()=>tk,invalidateUser:()=>xo,invalidateUsers:()=>rk});var fo={};P(fo,{getPlatformDB:()=>xr,users:()=>Tt});var Tt={};P(Tt,{addSsoUser:()=>MA,addUser:()=>AP,getUserDoc:()=>kA,lookupTenantId:()=>gP,removeUser:()=>_P,updateUserDoc:()=>EP});function xr(){return Ce(pe.PLATFORM_INFO.name)}s(xr,"getPlatformDB");async function gP(t){return E.MULTI_TENANCY?(await kA(t)).tenantId:ce}s(gP,"lookupTenantId");async function kA(t){return xr().get(t)}s(kA,"getUserDoc");async function EP(t){await xr().put(t)}s(EP,"updateUserDoc");function yP(t,e){return{_id:t,tenantId:e}}s(yP,"newUserIdDoc");function TP(t,e,r){return{_id:e,userId:t,tenantId:r}}s(TP,"newUserEmailDoc");function SP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(SP,"newUserSsoIdDoc");async function Gp(t,e){let r=xr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s(Gp,"addUserDoc");async function MA(t,e,r,n){return Gp(t,()=>SP(t,e,r,n))}s(MA,"addSsoUser");async function AP(t,e,r,n){let i=[Gp(e,()=>yP(e,t)),Gp(r,()=>TP(e,r,t))];n&&i.push(MA(n,r,e,t)),await Promise.all(i)}s(AP,"addUser");async function _P(t){let e=xr(),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(_P,"removeUser");var Sn={};P(Sn,{getAccount:()=>vr,getAccountByTenantId:()=>hi,getStatus:()=>OP});var FA=W(require("node-fetch"));var Tn=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";Xs.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,FA.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 $p=new Tn(E.INTERNAL_ACCOUNT_PORTAL_URL),Vp=E.SELF_HOSTED||E.DISABLE_ACCOUNT_PORTAL,vr=s(async t=>{if(Vp)return;let e={email:t},r=await $p.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),hi=s(async t=>{if(Vp)return;let e={tenantId:t},r=await $p.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),OP=s(async()=>{if(Vp)return;let t=await $p.get("/api/status",{headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var Ai={};P(Ai,{UserDB:()=>Ut,addAppBuilder:()=>J0,bulkGetGlobalUsersById:()=>cc,bulkUpdateGlobalUsers:()=>Ro,cleanseUserObject:()=>fm,creatorsInList:()=>Pr,doesUserExist:()=>Q0,getAccountHolderFromUsers:()=>uc,getAllUserIds:()=>q0,getAllUsers:()=>K0,getById:()=>On,getCreatorCount:()=>Y0,getExistingAccounts:()=>Si,getExistingPlatformUsers:()=>S_,getExistingTenantUsers:()=>T_,getFirstPlatformUser:()=>Io,getGlobalUserByAppPage:()=>C_,getGlobalUserByEmail:()=>_t,getPlatformUsers:()=>ic,getUserCount:()=>H0,hasAdminPermissions:()=>Nr,hasAppBuilderPermissions:()=>O_,hasBuilderPermissions:()=>Be,isAdmin:()=>Lt,isAdminOrBuilder:()=>__,isAdminOrWorkspaceBuilder:()=>sc,isBuilder:()=>Ii,isCreatorAsync:()=>wo,isCreatorSync:()=>oc,isGlobalBuilder:()=>A_,paginatedUsers:()=>b_,removeAppBuilder:()=>X0,removePortalUserPermissions:()=>z0,searchExistingEmails:()=>am,searchGlobalUsersByApp:()=>R_,searchGlobalUsersByAppAccess:()=>dm,searchGlobalUsersByEmail:()=>D_,validateUniqueUser:()=>ac});var zu={};P(zu,{ActiveContentFileError:()=>qu,BadRequestError:()=>mo,BudibaseError:()=>po,EmailUnavailableError:()=>er,FeatureDisabledError:()=>ju,ForbiddenError:()=>Ku,HTTPError:()=>Fe,NotFoundError:()=>Vu,NotImplementedError:()=>Qu,UnexpectedError:()=>$u,UsageLimitError:()=>Hu,getErrorMessage:()=>BA,getPublicError:()=>Yu});var po=class extends Error{static{s(this,"BudibaseError")}constructor(e,r){super(e),this.code=r}};function BA(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(BA,"getErrorMessage");var Yu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),Fe=class t extends po{static{s(this,"HTTPError")}constructor(e,r,n="http"){super(e,n),this.status=r}static async fromResponse(e){let r=await e.text(),n=r,i=e.status,o="http";try{let a=JSON.parse(r);n=a.error?.message||a.message,i=a.status??e.status,o=a.error?.code??e.statusText}catch{}return new t(n,i,o)}},$u=class extends Fe{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},Vu=class extends Fe{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},mo=class extends Fe{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},qu=class extends mo{static{s(this,"ActiveContentFileError")}constructor(e){super(`File "${e}" contains active content which is not permitted`)}},Ku=class extends Fe{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},Qu=class extends Fe{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},ju=class extends Error{static{s(this,"FeatureDisabledError")}constructor(e){super(`Feature disabled: '${e}'`)}},Hu=class extends Error{static{s(this,"UsageLimitError")}constructor(e){super(`Usage limit exceeded: '${e}'`)}},er=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var jp={};P(jp,{PASSWORD_MAX_LENGTH:()=>Kp,PASSWORD_MIN_LENGTH:()=>qp,validatePassword:()=>Qp});var qp=+(E.PASSWORD_MIN_LENGTH||12),Kp=+(E.PASSWORD_MAX_LENGTH||512);function Qp(t){return!t||t.length<qp?{valid:!1,error:`Password invalid. Minimum ${qp} characters.`}:t.length>Kp?{valid:!1,error:`Password invalid. Maximum ${Kp} characters.`}:{valid:!0}}s(Qp,"validatePassword");var Ju={};P(Ju,{createASession:()=>IP,endSession:()=>wP,getSession:()=>Yp,getSessionsForUser:()=>ho,invalidateSessions:()=>An,updateSessionTTL:()=>Hp});var GA=require("uuid");var $A=Tu();function gi(t,e){return`${t}/${e}`}s(gi,"makeSessionID");async function ho(t){return t?(await(await Ar()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(ho,"getSessionsForUser");async function An(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await ho(t)).map(a=>({key:gi(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:gi(t,o)}))),i&&i.length>0){let o=await Ar(),a=[];for(let u of i)a.push(o.delete(u.key));E.isTest()||di(`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(An,"invalidateSessions");async function IP(t,e){let r=await ho(t),n=0;if(r.length>=3){let l=r.sort((g,m)=>new Date(g.createdAt).getTime()-new Date(m.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(g=>g.sessionId);n=f.length,await An(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await Ar(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,GA.v4)(),u=gi(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,$A),{session:c,invalidatedSessionCount:n}}s(IP,"createASession");async function Hp(t){let e=await Ar(),r=gi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,$A)}s(Hp,"updateSessionTTL");async function wP(t,e){await(await Ar()).delete(gi(t,e))}s(wP,"endSession");async function Yp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Ar()).get(gi(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(Yp,"getSession");var Ti={};P(Ti,{account:()=>HA,action:()=>YA,ai:()=>zA,analytics:()=>zp,app:()=>JA,asyncEventQueue:()=>St,auditLog:()=>XA,auth:()=>nc,automation:()=>ZA,backfill:()=>e_,backfillCache:()=>ec,backup:()=>t_,datasource:()=>r_,email:()=>n_,environmentVariable:()=>i_,group:()=>s_,identification:()=>At,initAsyncEvents:()=>v0,installation:()=>yo,layout:()=>o_,license:()=>a_,org:()=>u_,plugin:()=>c_,processors:()=>rm,publishEvent:()=>S,query:()=>l_,resource:()=>d_,role:()=>Oo,rowAction:()=>f_,rows:()=>p_,screen:()=>m_,serve:()=>h_,shutdown:()=>N0,table:()=>g_,user:()=>We,view:()=>E_,workspace:()=>y_});var zp={};P(zp,{enabled:()=>RP});var RP=s(async()=>Xu(),"enabled");var St;function Zu(){St=new Et("systemEventQueue",{jobTags:s(t=>({"event.name":t.event}),"jobTags")})}s(Zu,"init");async function VA(){St&&await St.close()}s(VA,"shutdown");async function qA(t){St||Zu();let{event:e,identity:r}=t;dh.indexOf(e)!==-1&&r.tenantId&&await St.add(t)}s(qA,"publishAsyncEvent");var ec={};P(ec,{end:()=>DP,isAlreadySent:()=>Zp,isBackfillingEvent:()=>Xp,recordEvent:()=>Jp,start:()=>CP});var CP=s(async t=>xP({eventWhitelist:t}),"start"),Jp=s(async(t,e)=>{let r=em(t,e);await gn(r,e,void 0,{useTenancy:!1})},"recordEvent"),DP=s(async()=>{await vP(),await NP()},"end"),bP=s(async()=>oo(Oe.BACKFILL_METADATA),"getBackfillMetadata"),xP=s(async t=>gn(Oe.BACKFILL_METADATA,t),"saveBackfillMetadata"),vP=s(async()=>{await ao(Oe.BACKFILL_METADATA)},"deleteBackfillMetadata"),NP=s(async()=>{let t=em(),e=await Bu(t);for(let r of e)await ao(r,{useTenancy:!1})},"clearEvents"),Xp=s(async t=>{let r=(await bP())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),Zp=s(async(t,e)=>{let r=em(t,e);return!!await oo(r,{useTenancy:!1})},"isAlreadySent"),PP={"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}`},em=s((t,e)=>{let r,n=q();if(t){r=`${Oe.EVENTS}:${n}:${t}`;let i=PP[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${Oe.EVENTS}:${n}:*`;return r},"getEventKey");var rm={};P(rm,{init:()=>FP,processors:()=>rr});var tm=E.SELF_HOSTED&&!E.isDev(),go=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){tm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){tm||console.log("[audit] identified",e)}async identifyGroup(e){tm||console.log("[audit] group identified",e)}async shutdown(){}};var Ei=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:s(n=>({"event.name":n.event}),"jobTags")}),t.auditLogQueue.process(async n=>{await De(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};E.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&&ip(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:Me(),hostInfo:r.hostInfo},tenantId:q()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var KA=require("uuid");var LP=new Tn(E.INTERNAL_ACCOUNT_PORTAL_URL),yi=class t{static{s(this,"EventBrokerProcessor")}static init(e){t.getLicenseKeyFn=e}async processEvent(e,r,n,i){if(E.DISABLE_ACCOUNT_PORTAL)return;let o;if(E.SELF_HOSTED){if(!t.getLicenseKeyFn)return;let c=await t.getLicenseKeyFn();if(!c)return;o={"x-budibase-license-key":c}}else o={"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY},r.tenantId&&(o["x-budibase-tenant-id"]=r.tenantId);let a=Me(),u={id:(0,KA.v4)(),type:e,identity:r,properties:{...n,version:E.VERSION,service:E.SERVICE,environment:r.environment,hosting:r.hosting,...a&&{appId:a},...r.installationId&&{installationId:r.installationId},...r.tenantId&&{tenantId:r.tenantId}},timestamp:i===void 0?Date.now():new Date(i).getTime()};try{let c=await LP.post("/api/v2/analytics/event",{headers:o,body:u});c.ok||console.warn(`[EventBrokerProcessor] unexpected response status: ${c.status}`)}catch(c){console.error(`[EventBrokerProcessor] failed to send event: ${c}`)}}};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 UP=new go,kP=new Ei,MP=new yi;function FP(t,e){return yi.init(e),Ei.init(t)}s(FP,"init");var rr=new Eo([UP,kP,MP]);var tc={};P(tc,{checkInstallVersion:()=>GP,getInstall:()=>To,getInstallFromDB:()=>im});var nm=W(require("semver"));var To=s(async()=>br(Oe.INSTALLATION,86400,im,{useTenancy:!1}),"getInstall");async function BP(t){let e={_id:pe.PLATFORM_INFO.docs.install,installId:X(),version:E.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return im();throw r}}s(BP,"createInstallDoc");var im=s(async()=>je(pe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(pe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await BP(t);else throw r}return e}),"getInstallFromDB"),WP=s(async t=>{try{await je(pe.PLATFORM_INFO.name,async e=>{let r=await To();r.version=t,await e.put(r),await pi(Oe.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),GP=s(async()=>{let t=await To(),e=t.version,r=E.VERSION;try{if(e!==r){let n=nm.default.gt(r,e),i=nm.default.lt(r,e);await WP(r)&&(await vs({_id:t.installId,type:"installation"},async()=>{n?await yo.upgraded(e,r):i&&await yo.downgraded(e,r)}),await At.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?mn(`Invalid version "${r}" - is it semver?`):mn("Failed to retrieve version",n)}},"checkInstallVersion");var $P=s(async()=>{let t=pf(),e=_o(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await _n(),i=So();return{id:QA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await _n(),i=await rc(q()),o=So();return{id:QA(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:q(),environment:e}}else if(r==="user"){let n=t,i=await rc(q()),o=await _n(),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:q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),VP=s(async(t,e)=>{let r=t,n="installation",i=So(),o=E.VERSION,a=_o(),u={id:r,type:n,hosting:i,version:o,environment:a};await sm(u,e),await Ao({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),qP=s(async(t,e,r,n=E.VERSION)=>{let i=await rc(t),o="tenant",a=await _n(),u=_o(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await sm(c,r),await Ao({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),KP=s(async(t,e,r)=>{let n=t._id,i=await rc(t.tenantId),o="user",a=Be(t),u=Nr(t),c;jo(t)&&(c=t.providerType);let d=(await Si([t.email])).length>0,f=!!e&&d&&e.verified,g=await _n(),m=e?e.hosting:So(),y=_o();await Ao({id:n,type:o,hosting:m,installationId:g,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:y},r)},"identifyUser"),QP=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 _n(),l=_o();if(Ko(t)){let f=await _t(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 rr.identify(t,e)},"identify"),sm=s(async(t,e)=>{await rr.identifyGroup(t,e)},"identifyGroup"),_o=s(()=>E.isDev()?"development":E.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),So=s(()=>E.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),_n=s(async()=>jP()?"account-portal":(await To()).installId,"getInstallationId"),rc=s(async t=>E.SELF_HOSTED?jA(t):t,"getEventTenantId"),jA=s(async t=>De(t,()=>br(Oe.UNIQUE_TENANT_ID,86400,async()=>{let e=z(),r=await _i(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${X()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=E.VERSION,await e.put(r),n)})),"getUniqueTenantId"),jP=s(()=>E.SERVICE==="account-portal","isAccountPortal"),QA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),At={getCurrentIdentity:$P,identifyInstallationGroup:VP,identifyTenantGroup:qP,identifyUser:KP,identifyAccount:QP,identify:Ao,identifyGroup:sm,getInstallationId:_n,getUniqueTenantId:jA};var S=s(async(t,e,r,n)=>{let i=n||await At.getCurrentIdentity();if(!(n?!1:await Xp(t))){await qA({event:t,identity:i,properties:e,timestamp:r}),await rr.processEvent(t,i,e,r);return}await Zp(t,e)||(await rr.processEvent(t,i,e,r),await Jp(t,e))},"publishEvent");async function HP(t,e){let r={tenantId:t.tenantId};await S("account:created",r,void 0,e)}s(HP,"created");async function YP(t){let e={tenantId:t.tenantId};await S("account:deleted",e)}s(YP,"deleted");async function zP(t){let e={tenantId:t.tenantId};await S("account:verified",e)}s(zP,"verified");var HA={created:HP,deleted:YP,verified:zP};function JP(t,e){S("action:automation_step:executed",t,e).catch(r=>{console.error("automationStepExecuted telemetry failed",{action:t,err:r})})}s(JP,"automationStepExecuted");function XP(t){S("action:automation_step:failed",t).catch(e=>{console.error("automationStepFailed telemetry failed",{action:t,err:e})})}s(XP,"automationStepFailed");function ZP(t,e){S("action:crud:executed",t,e).catch(r=>{console.error("crudExecuted telemetry failed",{action:t,err:r})})}s(ZP,"crudExecuted");function eL(t){S("action:crud:failed",t).catch(e=>{console.error("crudFailed telemetry failed",{action:t,err:e})})}s(eL,"crudFailed");function tL(t,e){S("action:ai_agent:executed",t,e).catch(r=>{console.error("aiAgentExecuted telemetry failed",{action:t,err:r})})}s(tL,"aiAgentExecuted");function rL(t){S("action:ai_agent:failed",t).catch(e=>{console.error("aiAgentFailed telemetry failed",{action:t,err:e})})}s(rL,"aiAgentFailed");var YA={aiAgentExecuted:tL,aiAgentFailed:rL,automationStepExecuted:JP,automationStepFailed:XP,crudExecuted:ZP,crudFailed:eL};function nL(t,e){let r={configId:t._id,audited:{name:t.name}};S("ai:config:created",r,e).catch(n=>{console.error("configCreated telemetry failed",{configId:t._id,err:n})})}s(nL,"configCreated");function iL(t){let e={configId:t._id,audited:{name:t.name}};S("ai:config:updated",e).catch(r=>{console.error("configUpdated telemetry failed",{configId:t._id,err:r})})}s(iL,"configUpdated");function sL(t){let e={configId:t._id,audited:{name:t.name}};S("ai:config:deleted",e).catch(r=>{console.error("configDeleted telemetry failed",{configId:t._id,err:r})})}s(sL,"configDeleted");function oL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:created",e).catch(r=>{console.error("agentCreated telemetry failed",{agentId:t._id,err:r})})}s(oL,"agentCreated");function aL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:updated",e).catch(r=>{console.error("agentUpdated telemetry failed",{agentId:t._id,err:r})})}s(aL,"agentUpdated");function uL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:deleted",e).catch(r=>{console.error("agentDeleted telemetry failed",{agentId:t._id,err:r})})}s(uL,"agentDeleted");function cL(t){S("rag:file:uploaded",t).catch(e=>{console.error("ragFileUploaded telemetry failed",{event:t,err:e})})}s(cL,"ragFileUploaded");function lL(t){S("rag:file:deleted",t).catch(e=>{console.error("ragFileDeleted telemetry failed",{event:t,err:e})})}s(lL,"ragFileDeleted");function dL(t){S("rag:file:sharepoint:connected",t).catch(e=>{console.error("ragFileSharePointConnected telemetry failed",{event:t,err:e})})}s(dL,"ragFileSharePointConnected");function fL(t){S("rag:file:sharepoint:disconnected",t).catch(e=>{console.error("ragFileSharePointDisconnected telemetry failed",{event:t,err:e})})}s(fL,"ragFileSharePointDisconnected");function pL(t){S("rag:file:processed",t).catch(e=>{console.error("ragFileProcessed telemetry failed",{event:t,err:e})})}s(pL,"ragFileProcessed");function mL(t){S("rag:file:sharepoint:sync",t).catch(e=>{console.error("ragFileSharePointSync telemetry failed",{event:t,err:e})})}s(mL,"ragFileSharePointSync");var zA={configCreated:nL,configUpdated:iL,configDeleted:sL,agentCreated:oL,agentUpdated:aL,agentDeleted:uL,ragFileUploaded:cL,ragFileDeleted:lL,ragFileSharePointConnected:dL,ragFileSharePointDisconnected:fL,ragFileSharePointSync:mL,ragFileProcessed:pL};var hL=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await S("app:created",r,e)},"created");async function gL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await S("app:updated",e)}s(gL,"updated");async function EL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:deleted",e)}s(EL,"deleted");async function yL(t,e){let r={appId:t.appId,audited:{name:t.name}};await S("app:published",r,e)}s(yL,"published");async function TL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:unpublished",e)}s(TL,"unpublished");async function SL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:file:imported",e)}s(SL,"fileImported");async function AL(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await S("app:duplicated",r)}s(AL,"duplicated");async function _L(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await S("app:template:imported",r)}s(_L,"templateImported");async function OL(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await S("app:version:updated",n)}s(OL,"versionUpdated");async function IL(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await S("app:version:reverted",n)}s(IL,"versionReverted");async function wL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:reverted",e)}s(wL,"reverted");async function RL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:exported",e)}s(RL,"exported");var JA={created:hL,updated:gL,deleted:EL,published:yL,unpublished:TL,fileImported:SL,duplicated:AL,templateImported:_L,versionUpdated:OL,versionReverted:IL,reverted:wL,exported:RL};async function CL(t){let e={filters:t};await S("audit_log:filtered",e)}s(CL,"filtered");async function DL(t){let e={filters:t};await S("audit_log:downloaded",e)}s(DL,"downloaded");var XA={filtered:CL,downloaded:DL};async function bL(t,e){let n={userId:(await At.getCurrentIdentity()).id,source:t,audited:{email:e}};await S("auth:login",n)}s(bL,"login");async function xL(t){let r={userId:(await At.getCurrentIdentity()).id,audited:{email:t}};await S("auth:logout",r)}s(xL,"logout");async function vL(t,e){let r={type:t};await S("auth:sso:created",r,e)}s(vL,"SSOCreated");async function NL(t){let e={type:t};await S("auth:sso:updated",e)}s(NL,"SSOUpdated");async function PL(t,e){let r={type:t};await S("auth:sso:activated",r,e)}s(PL,"SSOActivated");async function LL(t){let e={type:t};await S("auth:sso:deactivated",e)}s(LL,"SSODeactivated");var nc={login:bL,logout:xL,SSOCreated:vL,SSOUpdated:NL,SSOActivated:PL,SSODeactivated:LL};async function UL(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 S("automation:created",r,e)}s(UL,"created");async function kL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await S("automation:trigger:updated",e)}s(kL,"triggerUpdated");async function ML(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await S("automation:deleted",e)}s(ML,"deleted");async function FL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await S("automation:tested",e)}s(FL,"tested");var BL=s(async(t,e)=>{let r={count:t};await S("automations:run",r,e)},"run");async function WL(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 S("automation:step:created",n,r)}s(WL,"stepCreated");async function GL(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 S("automation:step:deleted",r)}s(GL,"stepDeleted");var ZA={created:UL,triggerUpdated:kL,deleted:ML,tested:FL,run:BL,stepCreated:WL,stepDeleted:GL};var Oi=!E.SELF_HOSTED&&!E.isDev();async function $L(t){Oi||await S("app:backfill:succeeded",t)}s($L,"appSucceeded");async function VL(t){if(Oi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("app:backfill:failed",e)}s(VL,"appFailed");async function qL(t){Oi||await S("tenant:backfill:succeeded",t)}s(qL,"tenantSucceeded");async function KL(t){if(Oi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("tenant:backfill:failed",e)}s(KL,"tenantFailed");async function QL(){if(Oi)return;let t={};await S("installation:backfill:succeeded",t)}s(QL,"installationSucceeded");async function jL(t){if(Oi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("installation:backfill:failed",e)}s(jL,"installationFailed");var e_={appSucceeded:$L,appFailed:VL,tenantSucceeded:qL,tenantFailed:KL,installationSucceeded:QL,installationFailed:jL};async function HL(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await S("app:backup:restored",e)}s(HL,"workspaceBackupRestored");async function YL(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await S("app:backup:triggered",o)}s(YL,"workspaceBackupTriggered");var t_={workspaceBackupRestored:HL,workspaceBackupTriggered:YL};function om(t){return!Object.values(Go).includes(t.source)}s(om,"isCustom");async function zL(t,e){let r={datasourceId:t._id,source:t.source,custom:om(t)};await S("datasource:created",r,e)}s(zL,"created");async function JL(t){let e={datasourceId:t._id,source:t.source,custom:om(t)};await S("datasource:updated",e)}s(JL,"updated");async function XL(t){let e={datasourceId:t._id,source:t.source,custom:om(t)};await S("datasource:deleted",e)}s(XL,"deleted");var r_={created:zL,updated:JL,deleted:XL};async function ZL(t){let e={};await S("email:smtp:created",e,t)}s(ZL,"SMTPCreated");async function eU(){let t={};await S("email:smtp:updated",t)}s(eU,"SMTPUpdated");var n_={SMTPCreated:ZL,SMTPUpdated:eU};async function tU(t,e){let r={name:t,environments:e};await S("environment_variable:created",r)}s(tU,"created");async function rU(t){let e={name:t};await S("environment_variable:deleted",e)}s(rU,"deleted");async function nU(t){let e={userId:t};await S("environment_variable:upgrade_panel_opened",e)}s(nU,"upgradePanelOpened");var i_={created:tU,deleted:rU,upgradePanelOpened:nU};async function iU(t,e){let r={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await S("user_group:created",r,e)}s(iU,"created");async function sU(t){let e={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await S("user_group:updated",e)}s(sU,"updated");async function oU(t){let e={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await S("user_group:deleted",e)}s(oU,"deleted");async function aU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:gt(),audited:{name:e.name}};await S("user_group:user_added",n)}s(aU,"usersAdded");async function uU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:gt(),audited:{name:e.name}};await S("user_group:users_deleted",n)}s(uU,"usersDeleted");async function cU(t){let e={groupId:t,onboarding:!0};await S("user_group:onboarding_added",e)}s(cU,"createdOnboarding");async function lU(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await S("user_group:permissions_edited",e)}s(lU,"permissionsEdited");var s_={created:iU,updated:sU,deleted:oU,usersAdded:aU,usersDeleted:uU,createdOnboarding:cU,permissionsEdited:lU};async function dU(t){let e={currentVersion:t};await S("installation:version:checked",e)}s(dU,"versionChecked");async function fU(t,e){let r={from:t,to:e};await S("installation:version:upgraded",r)}s(fU,"upgraded");async function pU(t,e){let r={from:t,to:e};await S("installation:version:downgraded",r)}s(pU,"downgraded");async function mU(){let t={};await S("installation:firstStartup",t)}s(mU,"firstStartup");var yo={versionChecked:dU,upgraded:fU,downgraded:pU,firstStartup:mU};async function hU(t,e){let r={layoutId:t._id};await S("layout:created",r,e)}s(hU,"created");async function gU(t){let e={layoutId:t};await S("layout:deleted",e)}s(gU,"deleted");var o_={created:hU,deleted:gU};async function EU(t,e){let r={accountId:t.accountId,...e};await S("license:plan:changed",r)}s(EU,"planChanged");async function yU(t){let e={accountId:t.accountId};await S("license:activated",e)}s(yU,"activated");async function TU(t){let e={accountId:t.accountId};await S("license:checkout:opened",e)}s(TU,"checkoutOpened");async function SU(t){let e={accountId:t.accountId};await S("license:checkout:success",e)}s(SU,"checkoutSuccess");async function AU(t){let e={accountId:t.accountId};await S("license:portal:opened",e)}s(AU,"portalOpened");async function _U(t){let e={accountId:t.accountId};await S("license:payment:failed",e)}s(_U,"paymentFailed");async function OU(t){let e={accountId:t.accountId};await S("license:payment:recovered",e)}s(OU,"paymentRecovered");var a_={planChanged:EU,activated:yU,checkoutOpened:TU,checkoutSuccess:SU,portalOpened:AU,paymentFailed:_U,paymentRecovered:OU};async function IU(t){let e={};await S("org:info:name:updated",e,t)}s(IU,"nameUpdated");async function wU(t){let e={};await S("org:info:logo:updated",e,t)}s(wU,"logoUpdated");async function RU(t){let e={};await S("org:platformurl:updated",e,t)}s(RU,"platformURLUpdated");async function CU(){let t={};await S("analytics:opt:out",t)}s(CU,"analyticsOptOut");async function DU(){let t={};await S("analytics:opt:out",t)}s(DU,"analyticsOptIn");var u_={nameUpdated:IU,logoUpdated:wU,platformURLUpdated:RU,analyticsOptOut:CU,analyticsOptIn:DU};async function bU(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await S("plugin:init",e)}s(bU,"init");async function xU(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await S("plugin:imported",e)}s(xU,"imported");async function vU(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await S("plugin:deleted",e)}s(vU,"deleted");var c_={init:bU,imported:xU,deleted:vU};var NU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await S("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 S("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 S("query:deleted",n)},"deleted"),UU=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await S("query:import",n)},"imported"),kU=s(async(t,e)=>{let r={count:t};await S("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 S("query:previewed",r)},"previewed"),l_={created:NU,updated:PU,deleted:LU,imported:UU,run:kU,previewed:MU};async function FU({resource:t,fromWorkspace:e,toWorkspace:r},n){let i={resource:t,fromWorkspace:e,toWorkspace:r};await S("resource:copied_to_workspace",i,n)}s(FU,"duplicatedToWorkspace");var d_={duplicatedToWorkspace:FU};async function BU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:created",r,e)}s(BU,"created");async function WU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:updated",e)}s(WU,"updated");async function GU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:deleted",e)}s(GU,"deleted");async function $U(t,e,r){let n={userId:t._id,roleId:e};await S("role:assigned",n,r)}s($U,"assigned");async function VU(t,e){let r={userId:t._id,roleId:e};await S("role:unassigned",r)}s(VU,"unassigned");var Oo={created:BU,updated:WU,deleted:GU,assigned:$U,unassigned:VU};async function qU(t,e){await S("row_action:created",t,e)}s(qU,"created");var f_={created:qU};var KU=s(async(t,e)=>{let r={count:t};await S("rows:created",r,e)},"created"),QU=s(async(t,e)=>{let r={tableId:t._id,count:e};await S("rows:imported",r)},"imported"),p_={created:KU,imported:QU};async function jU(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await S("screen:created",r,e)}s(jU,"created");async function HU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await S("screen:deleted",e)}s(HU,"deleted");var m_={created:jU,deleted:HU};async function YU(t){let e={timezone:t};await S("served:builder",e)}s(YU,"servedBuilder");async function zU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await S("served:app",n)}s(zU,"servedApp");async function JU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await S("served:app:preview",r)}s(JU,"servedAppPreview");var h_={servedBuilder:YU,servedApp:zU,servedAppPreview:JU};async function XU(t,e){let r={tableId:t._id,audited:{name:t.name}};await S("table:created",r,e)}s(XU,"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 S("table:updated",i)}s(ZU,"updated");async function e0(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await S("table:deleted",r)}s(e0,"deleted");async function t0(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await S("table:exported",r)}s(t0,"exported");async function r0(t){let e={tableId:t._id,audited:{name:t.name}};await S("table:imported",e)}s(r0,"imported");var g_={created:XU,updated:ZU,deleted:e0,exported:t0,imported:r0};async function n0(t,e){let r={userId:t._id,viaScim:gt(),audited:{email:t.email}};await S("user:created",r,e)}s(n0,"created");async function i0(t){let e={userId:t._id,viaScim:gt(),audited:{email:t.email}};await S("user:updated",e)}s(i0,"updated");async function s0(t){let e={userId:t._id,viaScim:gt(),audited:{email:t.email}};await S("user:deleted",e)}s(s0,"deleted");async function o0(t,e){let r={userId:t._id,audited:{email:t.email}};await S("user:admin:assigned",r,e)}s(o0,"permissionAdminAssigned");async function a0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:admin:removed",e)}s(a0,"permissionAdminRemoved");async function u0(t,e){let r={userId:t._id,audited:{email:t.email}};await S("user:builder:assigned",r,e)}s(u0,"permissionBuilderAssigned");async function c0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:builder:removed",e)}s(c0,"permissionBuilderRemoved");async function l0(t){let e={audited:{email:t}};await S("user:invited",e)}s(l0,"invited");async function d0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:invite:accepted",e)}s(d0,"inviteAccepted");async function f0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:force:reset",e)}s(f0,"passwordForceReset");async function p0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:updated",e)}s(p0,"passwordUpdated");async function m0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:reset:requested",e)}s(m0,"passwordResetRequested");async function h0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:reset",e)}s(h0,"passwordReset");async function g0(t){let e={users:t};await S("user:data:collaboration",e)}s(g0,"dataCollaboration");var We={created:n0,updated:i0,deleted:s0,permissionAdminAssigned:o0,permissionAdminRemoved:a0,permissionBuilderAssigned:u0,permissionBuilderRemoved:c0,invited:l0,inviteAccepted:d0,passwordForceReset:f0,passwordUpdated:p0,passwordResetRequested:m0,passwordReset:h0,dataCollaboration:g0};async function E0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await S("view:created",r,e)}s(E0,"created");async function y0(t){let e={tableId:t.tableId};await S("view:updated",e)}s(y0,"updated");async function T0(t,e){let r={...Ue.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await S("view:deleted",r)}s(T0,"deleted");async function S0(t,e){let r={tableId:t._id,format:e};await S("view:exported",r)}s(S0,"exported");async function A0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await S("view:filter:created",n,r)}s(A0,"filterCreated");async function _0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await S("view:filter:updated",r)}s(_0,"filterUpdated");async function O0(t){let e={tableId:t.tableId};await S("view:filter:deleted",e)}s(O0,"filterDeleted");async function I0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await S("view:calculation:created",n,r)}s(I0,"calculationCreated");async function w0(t){let e={tableId:t.tableId,calculation:t.calculation};await S("view:calculation:updated",e)}s(w0,"calculationUpdated");async function R0(t){let e={tableId:t.tableId,calculation:t.calculation};await S("view:calculation:deleted",e)}s(R0,"calculationDeleted");async function C0(t,e){let r={tableId:t};await S("view:join:created",r,e)}s(C0,"viewJoinCreated");var E_={created:E0,updated:y0,deleted:T0,exported:S0,filterCreated:A0,filterUpdated:_0,filterDeleted:O0,calculationCreated:I0,calculationUpdated:w0,calculationDeleted:R0,viewJoinCreated:C0};async function D0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:created",r).catch(n=>{console.error("appCreated telemetry failed",{workspaceAppId:t._id,err:n})})}s(D0,"appCreated");async function b0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:updated",r).catch(n=>{console.error("appUpdated telemetry failed",{workspaceAppId:t._id,err:n})})}s(b0,"appUpdated");async function x0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:deleted",r).catch(n=>{console.error("appDeleted telemetry failed",{workspaceAppId:t._id,err:n})})}s(x0,"appDeleted");var y_={appCreated:D0,appUpdated:b0,appDeleted:x0};function v0(){}s(v0,"initAsyncEvents");var N0=s(async()=>{await rr.shutdown(),console.log("Events shutdown")},"shutdown");var um={};P(um,{creatorsInList:()=>Pr,getAccountHolderFromUsers:()=>uc,hasAdminPermissions:()=>Nr,hasAppBuilderPermissions:()=>O_,hasBuilderPermissions:()=>Be,isAdmin:()=>Lt,isAdminOrBuilder:()=>__,isAdminOrWorkspaceBuilder:()=>sc,isBuilder:()=>Ii,isCreatorAsync:()=>wo,isCreatorSync:()=>oc,isGlobalBuilder:()=>A_,validateUniqueUser:()=>ac});async function am(t){let e=[],r=await T_(t);e.push(...r.map(a=>a.email));let n=await S_(t);e.push(...n.map(a=>a._id));let i=await Si(t);e.push(...i.map(a=>a.email));let o=await Fp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(am,"searchExistingEmails");async function ic(t){return await Vs("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(ic,"getPlatformUsers");async function Io(t){return(await ic(t))[0]??null}s(Io,"getFirstPlatformUser");async function T_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await Ht("by_email2",r,void 0,n)}s(T_,"getExistingTenantUsers");async function S_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Vs("platform_users_lowercase_2",r)}s(S_,"getExistingPlatformUsers");async function Si(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Vs("account_by_email",r)}s(Si,"getExistingAccounts");var Ii=ke.users.isBuilder,Lt=ke.users.isAdmin,A_=ke.users.isGlobalBuilder,__=ke.users.isAdminOrBuilder,Nr=ke.users.hasAdminPermissions,Be=ke.users.hasBuilderPermissions,O_=ke.users.hasAppBuilderPermissions,sc=ke.users.isAdminOrWorkspaceBuilder;async function Pr(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await z().getMultiple(r,{allowMissing:!0}),t.map(i=>oc(i,e))}s(Pr,"creatorsInList");async function wo(t){let e=[];return t.userGroups&&(e=await z().getMultiple(t.userGroups)),oc(t,e)}s(wo,"isCreatorAsync");function oc(t,e){let r=ke.users.isCreator(t);return!r&&t?P0(t,e):r}s(oc,"isCreatorSync");function P0(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(P0,"isCreatorByGroupMembership");async function ac(t,e){if(E.MULTI_TENANCY){let r=await Io(t);if(r!=null&&r.tenantId!==e)throw new er(t)}if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let r=await vr(t);if(r&&r.verified&&r.tenantId!==e)throw new er(t)}}s(ac,"validateUniqueUser");async function uc(t){if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let e=await Si(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(uc,"getAccountHolderFromUsers");var cm=s(async t=>{await We.deleted(t),Be(t)&&await We.permissionBuilderRemoved(t),Nr(t)&&await We.permissionAdminRemoved(t)},"handleDeleteEvents"),L0=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Oo.assigned(t,i)},"assignAppRoleEvents"),U0=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"),k0=s(async(t,e)=>{let r=t.roles,n=e?.roles;await L0(t,r,n),await U0(t,r,n)},"handleAppRoleEvents"),lm=s(async(t,e,r)=>{let n=r;!n&&!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL&&(n=await hi(q())),await At.identifyUser(t,n),e?(await We.updated(t),F0(t,e)&&await We.permissionBuilderRemoved(t),W0(t,e)&&await We.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await We.passwordForceReset(t),t.password!==e.password&&await We.passwordUpdated(t)):await We.created(t),M0(t,e)&&await We.permissionBuilderAssigned(t),B0(t,e)&&await We.permissionAdminAssigned(t),await k0(t,e)},"handleSaveEvents"),M0=s((t,e)=>I_(t,e,Be),"isAddingBuilder"),F0=s((t,e)=>w_(t,e,Be),"isRemovingBuilder"),B0=s((t,e)=>I_(t,e,Nr),"isAddingAdmin"),W0=s((t,e)=>w_(t,e,Nr),"isRemovingAdmin"),I_=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),w_=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var $0=s(async t=>{let e=t._id;await Tt.removeUser(t),await cm(t),await nr.invalidateUser(e),await An(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),Ut=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 E.ENABLE_SSO_MAINTENANCE_MODE&&Lt(e)?!1:await t.features.isSSOEnforced()||jo(e)?!0:(r||(r=await hi(q())),!!(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 Fe("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=Qp(a);if(!f.valid)throw new Fe(f.error,400)}c=r.hashPassword?await lf(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||ni();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 z().allDocs(ln(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 qs("by_app",ii(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await dm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return _t(e)}static async getUser(e){let r=await On(e);return r&&delete r.password,r}static async bulkGet(e){return await cc(e)}static async bulkUpdate(e){let r=await Ro(e);return await nr.invalidateUsers(e.map(n=>n._id)),r}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=q(),i=z(),{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 On(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!l&&o&&(l=await _t(o),l&&l._id!==a))throw new er(o);let d=!l,f=!!l&&!!o&&l.email!==o,g=!r.isAccountHolder&&!!o&&(d||f),m=[...u];if(d&&m.length===0){let p=await t.groups.getDefaultGroup?.();p?._id&&(m=[p._id])}let y=1,h=0;if((r.isAccountHolder||l)&&(y=0,h=1),l){let[p,T]=await Pr([l,e]);h=p!==T?1:0}else if(!r.isAccountHolder){let p=m.length>0?{...e,userGroups:m}:e;h=(await Pr([p]))[0]?1:0}return t.quotas.addUsers(y,h,async()=>{g&&await ac(o,n);let p=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(p=fm(p,l)),!l&&c?.length&&(p.roles={...c});let T=[];if(d){m.length>0&&(p.userGroups=m);for(let A of m)T.push(t.groups.addUsers(A,[p._id]))}try{let A=await i.put(p);return p._rev=A.rev,await lm(p,l),l&&p.email!==l.email&&await Tt.removeUser({email:l.email}),await Tt.addUser(n,p._id,p.email,p.ssoId),await nr.invalidateUser(A.id),await Promise.all(T),i.get(p._id)}catch(A){throw A.status===409?"User exists already":A}})}static async bulkCreate(e,r){let n=q(),i=[],o=[],a=[],u=e.map(y=>y.email),c=await am(u),l=[],d=!!r?.length,f=d?[...r]:[];if(!d){let y=await t.groups.getDefaultGroup?.();y?._id&&(f=[y._id])}for(let y of e){let h=o.find(T=>T.email.toLowerCase()===y.email.toLowerCase()),p=c.includes(y.email.toLowerCase());if(h||p){l.push({email:y.email,reason:"Unavailable"});continue}y.userGroups=[...f],o.push(y),await wo(y)&&a.push(y)}let g=await hi(n),m=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let p of o)m&&delete p.password,i.push(t.buildUser(p,{hashPassword:!0,requirePassword:!m},n,void 0,g));let y=await Promise.all(i);await Ro(y);for(let p of y)await Tt.addUser(n,p._id,p.email),await lm(p,void 0,g);let h=y.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(h)&&f.length){let p=[],T=h.map(A=>A._id);for(let A of f)p.push(t.groups.addUsers(A,T));await Promise.all(p)}return{successful:h,unsuccessful:l}})}static async bulkDelete(e){let r=z(),n={successful:[],unsuccessful:[]},i=await uc(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),u=a.map(m=>({...m,_deleted:!0})),c=await Ro(u),d=(await Pr(a)).filter(m=>m).length,f=[];for(let m of a){let h=(await Io(m._id)).ssoId;h&&(await ic(h)).filter(T=>T.ssoId==null).forEach(T=>{f.push({...T,_deleted:!0})}),await $0(m)}await xr().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let g={};return a.reduce((m,y)=>(m[y._id]=y,m),g),c.forEach(m=>{let y=g[m.id].email;m.ok?n.successful.push({_id:m.id,email:y}):n.unsuccessful.push({_id:m.id,email:y,reason:"Database error"})}),n}static async destroy(e){let r=z(),n=await r.get(e),i=n._id;if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await vr(a))throw n.userId===Qt()._id?new Fe('Please visit "Account" to delete this user',400):new Fe("Account holder cannot be deleted",400)}await Tt.removeUser(n),await r.remove(i,n._rev);let o=await wo(n)?1:0;await t.quotas.removeUsers(1,o),await cm(n),await nr.invalidateUser(i),await An(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 pi(Oe.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 cc(t,e){let n=(await z().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Do(n)),n}s(cc,"bulkGetGlobalUsersById");async function q0(){let t=z(),e=`us${"_"}`;return(await t.allDocs({startkey:e,endkey:`${e}${"\uFFF0"}`})).rows.map(n=>n.id)}s(q0,"getAllUserIds");async function K0(){let t=z(),e=`us${"_"}`;return(await t.allDocs({startkey:e,endkey:`${e}${"\uFFF0"}`,include_docs:!0})).rows.map(n=>n.doc)}s(K0,"getAllUsers");async function Ro(t){return await z().bulkDocs(t)}s(Ro,"bulkUpdateGlobalUsers");async function On(t,e){let n=await z().get(t);return e?.cleanup&&(n=Do(n)),n}s(On,"getById");async function _t(t,e){if(t==null)throw"Must supply an email address to view";let r=await Ht("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(_t,"getGlobalUserByEmail");async function Q0(t){try{let e=await _t(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(Q0,"doesUserExist");async function R_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ii(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await Ht("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=Do(o)),o}s(R_,"searchGlobalUsersByApp");async function dm(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 z().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(dm,"searchGlobalUsersByAppAccess");function C_(t,e){if(e)return gu(He(t),e._id)}s(C_,"getGlobalUserByAppPage");async function D_(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 Ht("by_email2",{...e,startkey:i,endkey:`${n}${"\uFFF0"}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=Do(a)),a}s(D_,"searchGlobalUsersByEmail");var j0=8;async function b_({bookmark:t,query:e,appId:r,limit:n}={}){let i=z(),o=n??j0,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await On(e.equal._id)]:r?(c=await R_(r,u),d=s(f=>C_(r,f),"getKey")):e?.string?.email?(c=await D_(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await cc(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(ln(null,{...u,limit:void 0}))).rows.map(g=>g.doc),c=Er.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(ln(null,u))).rows.map(g=>g.doc),Hf(c,o,{paginate:!0,property:l,getKey:d})}s(b_,"paginatedUsers");async function H0(){return(await qs("by_email2",{limit:0,include_docs:!1})).total_rows}s(H0,"getUserCount");async function Y0(){let t=0;async function e(r){let n=await b_({bookmark:r}),i=await Pr(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(Y0,"getCreatorCount");function z0(t){return delete t.admin,delete t.builder,t}s(z0,"removePortalUserPermissions");function fm(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}s(fm,"cleanseUserObject");async function J0(t,e){let r=He(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ut.save(t,{hashPassword:!1})}s(J0,"addAppBuilder");async function X0(t,e){let r=He(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ut.save(t,{hashPassword:!1})}s(X0,"removeAppBuilder");var x_=3600;async function Z0(t,e){let n=await Zf(e).get(t);if(n.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let i=await vr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(Z0,"populateFromDB");async function ek(t){let e=await Ut.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,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let o=await vr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(ek,"populateUsersFromDB");async function bo({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=Z0),!e)try{e=q()}catch{e=await Tt.lookupTenantId(t)}let i=await ri(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,x_)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!ke.users.isGlobalBuilder(o)&&await De(e,async()=>{let a=await Ut.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(bo,"getUser");async function tk(t){let e=await ri(),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 ek(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,x_);i.push(...a.users)}return{users:i,notFoundIds:o}}s(tk,"getUsers");async function xo(t){await(await ri()).delete(t)}s(xo,"invalidateUser");async function rk(t){if(t.length===0)return;await(await ri()).bulkDelete(t)}s(rk,"invalidateUsers");var gm={};P(gm,{Writethrough:()=>mm});var v_=1e4,pm=null;async function lc(){if(!pm){let t=await Wf();pm=new hn(t)}return pm}s(lc,"getCache");function vo(t,e){return t.name+e}s(vo,"makeCacheKey");function hm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(hm,"makeCacheItem");async function nk(t,e,r=v_){let n=await lc(),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 uo({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;di("Ignoring conflict in write-through cache")}})).executed||di("Ignoring redlock conflict in write-through cache")),o=hm(u,a?null:o?.lastWrite),u._id&&await n.store(vo(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(nk,"put");async function ik(t,e){let r=await lc(),n=vo(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=hm(o),await r.store(n,i)}return i.doc}s(ik,"get");async function sk(t,e){let r=await lc(),n=vo(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=hm(o),await r.store(n,i)}return i.doc}s(sk,"tryGet");async function ok(t,e,r){let n=await lc();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(ok,"remove");var mm=class{static{s(this,"Writethrough")}constructor(e,r=v_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return nk(this.db,e,r)}async get(e){return ik(this.db,e)}async tryGet(e){return sk(this.db,e)}async remove(e,r){return ok(this.db,e,r)}};function No(t){return`config${"_"}${t}`}s(No,"generateConfigID");var dc="en";function ak(){return{_id:No("translations"),type:"translations",config:{defaultLocale:dc,locales:{[dc]:{label:"English",overrides:{}}}}}}s(ak,"createDefaultTranslationsConfig");function uk(t){let e=t?.defaultLocale||dc,r={...t?.locales??{}};r[e]||(r[e]={label:e===dc?"English":e,overrides:{}});for(let n of Object.keys(r))r[n].overrides||(r[n]={...r[n],overrides:{}});return{defaultLocale:e,locales:r}}s(uk,"prepareTranslationsConfig");async function Ge(t){let e=z();try{return await e.get(No(t))}catch(r){if(r.status===404)return;throw r}}s(Ge,"getConfig");async function ck(t){return t._id||(t._id=No(t.type)),z().put(t)}s(ck,"save");async function N_(){let t=await Ge("translations");return t?(t.config=uk(t.config),t):ak()}s(N_,"getTranslationsConfigDoc");async function lk(){return(await N_()).config}s(lk,"getTranslationsConfig");async function _i(){let t=await Ge("settings");return t||(t={_id:No("settings"),type:"settings",config:{}}),t.config.platformUrl=await Po({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Xu({config:t.config}),t}s(_i,"getSettingsConfigDoc");async function ym(){return(await _i()).config}s(ym,"getSettingsConfig");async function Po(t={tenantAware:!0}){let e=E.PLATFORM_URL||"http://localhost:10000";if(!E.SELF_HOSTED&&E.MULTI_TENANCY&&t.tenantAware){let r=q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(E.SELF_HOSTED){let r=t?.config?t.config:(await Ge("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(Po,"getPlatformUrl");var Xu=s(async t=>{if(!E.SELF_HOSTED)return!!E.ENABLE_ANALYTICS;let e=await br(Oe.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Ge("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=E.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function dk(){return await Ge("google")}s(dk,"getGoogleConfigDoc");async function pc(){return(await dk())?.config}s(pc,"getGoogleConfig");async function Tm(){if(!E.SELF_HOSTED)return Em();let t=await pc();return(!t||!t.activated)&&(t=Em()),t}s(Tm,"getGoogleDatasourceConfig");function Em(){if(E.GOOGLE_CLIENT_ID&&E.GOOGLE_CLIENT_SECRET)return{clientID:E.GOOGLE_CLIENT_ID,clientSecret:E.GOOGLE_CLIENT_SECRET,activated:!0}}s(Em,"getDefaultGoogleConfig");async function fk(){return Ge("logos_oidc")}s(fk,"getOIDCLogosDoc");async function pk(){return Ge("oidc")}s(pk,"getOIDCConfigDoc");async function mk(){let t=(await pk())?.config;return t?.configs&&t.configs[0]}s(mk,"getOIDCConfig");async function Sm(t){let e=(await Ge("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(Sm,"getOIDCConfigById");async function P_(){return Ge("smtp")}s(P_,"getSMTPConfigDoc");async function hk(t){let e=await P_();if(e)return e.config;let r=E.SELF_HOSTED||!t;if(E.SMTP_FALLBACK_ENABLED&&r)return{port:E.SMTP_PORT,host:E.SMTP_HOST,secure:!1,from:E.SMTP_FROM_ADDRESS,auth:{user:E.SMTP_USER,pass:E.SMTP_PASSWORD},fallback:!0}}s(hk,"getSMTPConfig");async function gk(){return(await Ge("scim"))?.config}s(gk,"getSCIMConfig");async function Ek(){return Ge("recaptcha")}s(Ek,"getRecaptchaConfig");var xm={};P(xm,{AccessController:()=>Om,BUILTIN_ROLE_IDS:()=>Im,Role:()=>Lr,RoleHierarchyTraversal:()=>mc,RoleIDVersion:()=>wm,builtinRoleToNumber:()=>Lo,checkForRoleResourceArray:()=>M_,externalRole:()=>Ok,findRole:()=>Uo,getAllRoleIds:()=>Ck,getAllRoles:()=>bm,getBuiltinRole:()=>U_,getBuiltinRoles:()=>Cm,getDBRoleID:()=>F_,getExternalRoleID:()=>Ur,getExternalRoleIDs:()=>B_,getRole:()=>Ik,getUserRoleHierarchy:()=>Dm,getUserRoleIdHierarchy:()=>k_,isBuiltin:()=>kr,lowerBuiltinRoleID:()=>_k,prefixRoleIDNoBuiltin:()=>_m,roleIDsAreEqual:()=>ze,roleToNumber:()=>Ak,saveRoles:()=>wk,validInherits:()=>Sk});var L_=require("lodash"),hc=W(require("lodash/fp/cloneDeep")),Am=W(require("semver"));var Im={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ne={...Im,BUILDER:"BUILDER"},wm={UUID:void 0,NAME:"name"};function Tk(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(Tk,"rolesInList");var Lr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=wm.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=_m(e):e&&Array.isArray(e)&&(e=e.map(_m)),this.inherits=e,this}},mc=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=Uo(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!Tk(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=Uo(a.inherits,n,r),a&&i.push(a),Ue.roles.checkForRoleInheritanceLoops(i))break}}return(0,L_.uniqBy)(i,o=>o._id)}},Rm={ADMIN:new Lr(ne.ADMIN,ne.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ne.POWER),POWER:new Lr(ne.POWER,ne.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ne.BASIC),BASIC:new Lr(ne.BASIC,ne.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ne.PUBLIC),PUBLIC:new Lr(ne.PUBLIC,ne.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Lr(ne.BUILDER,ne.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Cm(){return(0,hc.default)(Rm)}s(Cm,"getBuiltinRoles");function kr(t){return Object.values(Im).includes(t)}s(kr,"isBuiltin");function _m(t){return kr(t)?t:jt(t)}s(_m,"prefixRoleIDNoBuiltin");function U_(t){let e=Object.values(Rm).find(r=>t.includes(r._id));if(e)return(0,hc.default)(e)}s(U_,"getBuiltinRole");function Sk(t,e){if(!e)return!1;let r=s(n=>t.find(i=>ze(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(Sk,"validInherits");function Lo(t){let e=Cm(),r=Object.values(e).length+1;if(ze(t,ne.ADMIN)||ze(t,ne.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(Lo,"builtinRoleToNumber");async function Ak(t){if(kr(t))return Lo(t);let e=await Dm(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=>ze(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(kr(n.inherits))return Lo(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(Ak,"roleToNumber");function _k(t,e){return t?e&&Lo(t)>Lo(e)?e:t:e}s(_k,"lowerBuiltinRoleID");function ze(t,e){return jt(t)===jt(e)}s(ze,"roleIDsAreEqual");function Ok(t){let e;return t._id&&(e=Ur(t._id)),{...t,_id:e,inherits:B_(t.inherits,t.version)}}s(Ok,"externalRole");function Uo(t,e,r){let n=U_(t);n||(t=jt(t));let i=e.find(o=>o._id&&ze(o._id,t));return!i&&!kr(t)&&r?.defaultPublic?(0,hc.default)(Rm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Ur(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(Uo,"findRole");async function Ik(t,e){let r=ei(),n=[];if(!kr(t)){let i=await r.tryGet(F_(t));i&&n.push(i)}return Uo(t,n,e)}s(Ik,"getRole");async function wk(t){await ei().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:jt(r._id)})))}s(wk,"saveRoles");async function Rk(t,e){let r=await bm();if(ze(t,ne.ADMIN))return r;let n=Uo(t,r,e),i=[];return n&&(i=new mc(r,e).walk(n)),i}s(Rk,"getAllUserRoles");async function k_(t){return(await Dm(t)).map(r=>r._id)}s(k_,"getUserRoleIdHierarchy");async function Dm(t,e){return Rk(t,e)}s(Dm,"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 Ck(t){return(await bm(t)).map(r=>r._id)}s(Ck,"getAllRoleIds");async function bm(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=Ur(u._id,u.version)));let i=Cm(),o=[];!r||await Dk(r)?o=[ne.ADMIN,ne.POWER,ne.BASIC,ne.PUBLIC]:o=[ne.ADMIN,ne.BASIC,ne.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>ze(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=Ur(u._id,c.version),n.push({...u,...c,name:u.name,_id:Ur(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(bm,"getAllRoles");async function Dk(t){if(await bk(t))return!0;let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Am.default.valid(r)?!0:!Am.default.gte(r,E.MIN_VERSION_WITHOUT_POWER_ROLE)}s(Dk,"shouldIncludePowerRole");async function bk(t){let r=(await t.tryGet("ta_users"))?.schema?.roleId?.constraints?.inclusion;return!Array.isArray(r)||!r.some(i=>ze(i,ne.POWER))?!1:r.some(i=>!kr(i))}s(bk,"hasLegacyPowerRole");var Om=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||ze(e,ne.BUILDER)||ze(r,e)||ze(r,ne.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await k_(r),this.userHierarchies[r]=n),n?.find(i=>ze(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 F_(t){return t?.startsWith("role")?t:jt(t)}s(F_,"getDBRoleID");function Ur(t,e){if(t.startsWith(`role${"_"}`)&&(kr(t)||e===wm.NAME)){let r=t.split("_");return r.shift(),r.join("_")}return t}s(Ur,"getExternalRoleID");function B_(t,e){return t&&(typeof t=="string"?Ur(t,e):t.map(r=>Ur(r,e)))}s(B_,"getExternalRoleIDs");var vm={};P(vm,{BUILDER:()=>Lk,BUILTIN_PERMISSIONS:()=>gc,CREATOR:()=>Uk,GLOBAL_BUILDER:()=>kk,PermissionImpl:()=>oe,PermissionLevel:()=>Ni,PermissionType:()=>qo,doesHaveBasePermission:()=>Nk,getAllowedLevels:()=>V_,getBuiltinPermissionByID:()=>vk,getBuiltinPermissions:()=>xk,isPermissionLevelHigherThanRead:()=>Pk,levelToNumber:()=>$_});var W_=W(require("lodash/flatten")),G_=W(require("lodash/fp/cloneDeep"));var oe=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function $_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s($_,"levelToNumber");function V_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(V_,"getAllowedLevels");var gc={PUBLIC:{_id:"public",name:"Public",permissions:[new oe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new oe("query","read"),new oe("table","read"),new oe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new oe("query","write"),new oe("table","write"),new oe("automation","execute"),new oe("legacy_view","read"),new oe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new oe("table","write"),new oe("user","read"),new oe("automation","execute"),new oe("webhook","read"),new oe("legacy_view","read"),new oe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new oe("table","admin"),new oe("user","admin"),new oe("automation","admin"),new oe("webhook","read"),new oe("query","admin"),new oe("legacy_view","read"),new oe("app","read")]}};function xk(){return(0,G_.default)(gc)}s(xk,"getBuiltinPermissions");function vk(t){return Object.values(gc).find(r=>r._id===t)}s(vk,"getBuiltinPermissionByID");function Nk(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(gc),o=(0,W_.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&V_(a.level).indexOf(e)!==-1)return!0;return!1}s(Nk,"doesHaveBasePermission");function Pk(t){return $_(t)>1}s(Pk,"isPermissionLevelHigherThanRead");var Lk="builder",Uk="creator",kk="globalBuilder";var Lm={};P(Lm,{FlagSet:()=>yc,all:()=>$k,flags:()=>Nm,getEnvFlags:()=>j_,init:()=>Fk,isEnabled:()=>Gk,parseEnvFlags:()=>Sc,shutdown:()=>Bk,testutils:()=>Pm});var Tc=W(require("crypto")),q_=W(require("dd-trace")),K_=require("lodash"),Q_=require("posthog-node");var Ec,Mk=s(()=>{let t=E.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS;if(t){let e=parseInt(t,10);if(!Number.isNaN(e)&&e>0)return e}return me.fromDays(1).toMs()},"getFeatureFlagsPollingInterval");function Fk(t){E.POSTHOG_TOKEN&&E.POSTHOG_API_HOST&&!E.SELF_HOSTED&&E.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Ec=new Q_.PostHog(E.POSTHOG_TOKEN,{host:E.POSTHOG_API_HOST,personalApiKey:E.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Mk(),...t})):console.log("posthog disabled")}s(Fk,"init");function Bk(){Ec?.shutdown()}s(Bk,"shutdown");function Sc(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(Sc,"parseEnvFlags");function j_(){return Sc(E.TENANT_FEATURE_FLAGS||"")}s(j_,"getEnvFlags");var yc=class{constructor(e){this.flagSchema=e;this.setId=Tc.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,K_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await q_.default.trace("features.fetch",async e=>{let r=Lf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=q(),a=new Set;if(ru())return i;for(let{tenantId:f,key:g,value:m}of j_())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,m===!1&&a.add(g),!!this.isFlagName(g))){if(typeof i[g]!="boolean")throw new Error(`Feature: ${g} is not a boolean`);i[g]=m,n[`flags.${g}.source`]="environment"}let u=Qt(),c=u?._id;if(!c){let f=Nf();f&&(c=Tc.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,Ec&&c){n.readFromPostHog=!0;let f=await _i(),g={tenantId:l},m={tenant:{id:l}};f.config.createdVersion&&(m.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(m.tenant.createdAt=`${f.createdAt}`);let y=await Ec.getAllFlags(c,{personProperties:g,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:m});for(let[h,p]of Object.entries(y))if(this.isFlagName(h)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${h}": ${p}`);continue}if(!(i[h]===!0||a.has(h)))try{i[h]=p,n[`flags.${h}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${h}": ${p}`,T)}}}let d=kf();for(let[f,g]of Object.entries(d))this.isFlagName(f)&&typeof g=="boolean"&&(i[f]=g,n[`flags.${f}.source`]="override");Uf(this.setId,i);for(let[f,g]of Object.entries(i))n[`flags.${f}.value`]=g;return e?.addTags(n),i})}},Wk={USE_ZOD_VALIDATOR:!1,AI_TESTS:!1,ESCALATION:!1,FRONT_COMPANION:!1,PROJECTS:!1,DEBUG_UI:E.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1,AI_AGENT_ACTIVITY:!1},Nm=new yc(Wk);async function Gk(t){return await Nm.isEnabled(t)}s(Gk,"isEnabled");async function $k(){return await Nm.fetch()}s($k,"all");var Pm={};P(Pm,{setFeatureFlags:()=>H_,withFeatureFlags:()=>Kk});function Vk(){let t={};for(let{tenantId:e,key:r,value:n}of Sc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(Vk,"getCurrentFlags");function qk(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(qk,"buildFlagString");function H_(t,e){let r=Vk();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=qk(r);return bs({TENANT_FEATURE_FLAGS:n})}s(H_,"setFeatureFlags");function Kk(t,e,r){let n=H_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(Kk,"withFeatureFlags");var jm={};P(jm,{adminOnly:()=>Ac,auditLog:()=>_c,authError:()=>Ie,buildAuthMiddleware:()=>NM,buildCsrfMiddleware:()=>LM,buildTenancyMiddleware:()=>PM,builderOnly:()=>vc,builderOrAdmin:()=>Nc,google:()=>or,internalApi:()=>Lc,joiValidator:()=>ko,oidc:()=>ar,passport:()=>UM,platformLogout:()=>WM,refreshOAuthToken:()=>FM,ssoCallbackUrl:()=>Fr,updateUserOAuth:()=>BM,workspaceBuilderOrAdmin:()=>Mc});var Qm={};P(Qm,{activeTenant:()=>TO,adminOnly:()=>Ac,auditLog:()=>_c,authError:()=>Ie,authenticated:()=>xc,builderOnly:()=>vc,builderOrAdmin:()=>Nc,correlation:()=>z_,csp:()=>oO,csrf:()=>Pc,datasource:()=>xM,errorHandling:()=>uO,featureFlagCookie:()=>cO,google:()=>or,internalApi:()=>Lc,ip:()=>lO,joiValidator:()=>ko,local:()=>Ri,oidc:()=>ar,pino:()=>J_,querystringToBody:()=>yO,ssoCallbackUrl:()=>Fr,tenancy:()=>kc,workspaceBuilderOrAdmin:()=>Mc});var Y_=require("uuid");var Qk=require("correlation-id"),z_=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,Y_.v4)()),Qk.withId(r,()=>e())},"correlationMiddleware");var jk=require("koa-pino-logger"),Hk=require("correlation-id");function Yk(){return{logger:ku,genReqId:Hk.getId,autoLogging:{ignore:s(t=>!!t.url?.includes("/health"),"ignore")},serializers:{req:s(t=>({method:t.method,url:t.url,correlationId:t.id}),"req"),res:s(t=>({status:t.statusCode}),"res")}}}s(Yk,"pinoSettings");function zk(){return E.HTTP_LOGGING?jk(Yk()):(t,e)=>e()}s(zk,"getMiddleware");var J_=zk();var Ac=s(async(t,e)=>(!t.internal&&!Lt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var _c=s((async(t,e)=>e()),"auditLog");var rO=require("jsonwebtoken");var Jk=/\/:(.*?)(\/.*)?$/g,ir=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(Jk);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"),sr=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.path),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var Bm={};P(Bm,{SecretOption:()=>eO,compare:()=>tM,decrypt:()=>Rc,decryptFile:()=>iM,encrypt:()=>eM,encryptFile:()=>rM,getSecret:()=>Fm});var kt=W(require("crypto")),Mr=W(require("fs")),Um=require("path"),km=W(require("zlib"));var Oc="aes-256-ctr",Z_="-",Xk=1e4,Zk=32,Ic=16,Mm=16,eO=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(eO||{});function Fm(t){let e,r;if(t==="encryption"?(e=E.ENCRYPTION_KEY,r="ENCRYPTION_KEY"):(e=E.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY"),!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(Fm,"getSecret");function wc(t,e){return kt.default.pbkdf2Sync(t,new Uint8Array(e),Xk,Zk,"sha512")}s(wc,"stretchString");function eM(t,e="api"){let r=kt.default.randomBytes(Ic),n=wc(Fm(e),r),i=kt.default.createCipheriv(Oc,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")}${Z_}${u}`}s(eM,"encrypt");function Rc(t,e="api"){let[r,n]=t.split(Z_),i=Buffer.from(r,"hex"),o=wc(Fm(e),i),a=kt.default.createDecipheriv(Oc,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(Rc,"decrypt");function tM(t,e,r="api"){try{let n=new TextEncoder,i=n.encode(Rc(e,r)),o=n.encode(t);return i.length!==o.length?!1:kt.default.timingSafeEqual(i,o)}catch{return!1}}s(tM,"compare");async function rM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Um.join)(t,e);if(Mr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=Mr.default.createReadStream(i),a=Mr.default.createWriteStream((0,Um.join)(t,n)),u=kt.default.randomBytes(Ic),c=kt.default.randomBytes(Mm),l=wc(r,u),d=kt.default.createCipheriv(Oc,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(km.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(rM,"encryptFile");async function nM(t){let e=Mr.default.createReadStream(t),r=await X_(e,Ic),n=await X_(e,Mm);return e.close(),{salt:r,iv:n}}s(nM,"getSaltAndIV");async function iM(t,e,r){if(Mr.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await nM(t),o=Mr.default.createReadStream(t,{start:Ic+Mm}),a=Mr.default.createWriteStream(e),u=wc(r,n),c=kt.default.createDecipheriv(Oc,new Uint8Array(u),new Uint8Array(i)),l=km.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",g=>{a.close(),f(g)}),c.on("error",g=>{a.close(),f(g)}),l.on("error",g=>{a.close(),f(g)}),a.on("error",g=>{a.close(),f(g)})})}s(iM,"decryptFile");function X_(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(X_,"readBytes");var Wm={};P(Wm,{APIWarning:()=>In,FeatureDisabledWarning:()=>Dc,InvalidAPIKeyWarning:()=>wi,UsageLimitWarning:()=>Cc});var In=class extends Error{static{s(this,"APIWarning")}constructor(e,r){super(e),this.code=r}},wi=class extends In{static{s(this,"InvalidAPIKeyWarning")}constructor(){super("Invalid API key","invalid_api_key")}},Cc=class extends In{static{s(this,"UsageLimitWarning")}constructor(e){super(`Usage limit exceeded: '${e}'`,"usage_limit_exceeded"),this.limitName=e}getPublicWarning(){return{limitName:this.limitName}}},Dc=class extends In{static{s(this,"FeatureDisabledWarning")}constructor(e){super(`Feature disabled: '${e}'`,"feature_disabled"),this.featureName=e,this.status=400}getPublicWarning(){return{featureName:this.featureName}}getPublicError(){return{featureName:this.featureName}}};var nO=W(require("dd-trace"));var oM=E.SESSION_UPDATE_PERIOD?parseInt(E.SESSION_UPDATE_PERIOD):60*1e3;function aM(){return new Date(Date.now()-oM).toISOString()}s(aM,"timeMinusOneMinute");function tO(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(tO,"finalise");async function uM(t,e){if(Hs(t))return{valid:!0,user:void 0};let n=Rc(t).split("_")[0];return De(n,async()=>{let i;try{let o=z();i=await Ht("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 wi})}s(uM,"checkApiKey");function bc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(bc,"getHeader");function xc(t=[],e={publicAllowed:!1}){let r=t?ir(t):[];return(async(n,i)=>{let o=!1,a=bc(n,"x-budibase-api-version");sr(n,r)&&(o=!0);try{let c=bc(n,"x-budibase-token"),l=zt(n,"budibase:auth"),d=l||Au(c);d&&!d.exp&&(l&&Jt(n,"budibase:auth"),n.throw(401,"Session token missing expiration, please log in again"));let f=bc(n,"x-budibase-api-key");!f&&n.request.headers.authorization&&(f=n.request.headers.authorization.split(" ")[1]);let g=bc(n,"x-budibase-tenant-id"),m=!1,y,h=!1,p;if(d&&!f){let A=d.sessionId,_=d.userId,I;try{I=await Yp(_,A),e&&e.populateUser?y=await bo({userId:_,tenantId:I.tenantId,email:I.email,populateUser:e.populateUser(n)}):y=await bo({userId:_,tenantId:I.tenantId,email:I.email}),y.csrfToken=I.csrfToken,p="cookie",I?.lastAccessedAt<aM()&&await Hp(I),m=!0}catch(O){m=!1,console.warn(`Auth Error: ${O.message}`),Jt(n,"budibase:auth")}}if(!m&&f){let A=e.populateUser?e.populateUser(n):null,{valid:_,user:I}=await uM(f,A);_&&(m=!0,p="api_key",y=I,h=!I)}!y&&g?y={tenantId:g}:y&&"password"in y&&delete y.password,m||(m=!1);let T=s(A=>A&&A.email,"isUser");return T(y)&&nO.default.setUser({id:y._id,tenantId:y.tenantId,budibaseAccess:y.budibaseAccess,status:y.status}),tO(n,{authenticated:m,user:y,internal:h,version:a,publicEndpoint:o,loginMethod:p}),T(y)?hf(y,n,i):i()}catch(c){if(console.warn(`Auth Error: ${c.message}`),c instanceof rO.JsonWebTokenError?Jt(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return tO(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c.message||"Authentication failed")}})}s(xc,"authenticated");async function vc(t,e){if(t.internal)return e();let r=await dn(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!Be(t.user)?t.throw(403,"Builder user only endpoint."):r&&!Ii(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(vc,"builderOnly");async function Nc(t,e){if(t.internal||Lt(t.user))return e();let r=await dn(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!Be(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!Ii(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(Nc,"builderOrAdmin");var sO=W(require("crypto"));var iO={"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","https://companion.frontapp.com"],"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","https://companion.frontapp.com","https://*.frontapp.com"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},Gm=/^[A-Za-z0-9-*:/.]+$/,oO=s((async(t,e)=>{let r=sO.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...iO};n["script-src"]=[...iO["script-src"],`'nonce-${r}'`];let i={"media-src":E.CUSTOM_CSP_MEDIA_SRC,"script-src":E.CUSTOM_CSP_SCRIPT_SRC,"connect-src":E.CUSTOM_CSP_CONNECT_SRC,"img-src":E.CUSTOM_CSP_IMG_SRC,"font-src":E.CUSTOM_CSP_FONT_SRC,"frame-src":E.CUSTOM_CSP_FRAME_SRC};for(let[c,l]of Object.entries(i))if(l){let d=l.split(",").map(f=>f.trim()).filter(f=>Gm.test(f));n[c]=[...n[c]||[],...d]}let o=t.request?.get("x-budibase-embed")?.toLowerCase()==="true",a=t.user?.license?.features.includes("customAppScripts");if(o&&(n["frame-ancestors"]=["*"]),t.appId&&(o||a))try{let c=await Bs.getWorkspaceMetadata(t.appId);if("name"in c){if(a)for(let l of c.scripts||[]){let d=(l.cspWhitelist||"").split(`
38
- `).filter(g=>Gm.test(g)),f=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let g of f)n[g]=[...n[g]||[],...d]}if(o){let l=(c.embedAllowedOrigins||[]).map(d=>d.trim()).filter(d=>Gm.test(d));n["frame-ancestors"]=l.length?l:["*"]}}}catch(c){console.error(`Error occurred in Content-Security-Policy middleware: ${c}`)}let u=Object.entries(n).map(([c,l])=>`${c} ${l.join(" ")}`).join("; ");t.set("Content-Security-Policy",u),await e()}),"contentSecurityPolicy");var cM=["GET","HEAD","OPTIONS"],lM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Pc(t={noCsrfPatterns:[]}){let e=ir(t.noCsrfPatterns);return(async(r,n)=>{if(sr(r,e)||cM.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!lM.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(Pc,"csrf");function aO(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of fT){let r=E[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(aO,"stringContainsSecret");async function uO(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 5xx response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Yu(r)};if(aO(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),E.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(uO,"errorHandling");var cO=s((async(t,e)=>{let n=zt(t,"budibase:featureflags")?.flags||{};await Mf(n,async()=>{await e()})}),"featureFlagCookie");async function Lc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Hs(r)||t.throw(403,"Unauthorized"),e()}s(Lc,"internalApi");async function lO(t,e){return t.ip?await Pf(t.ip,()=>e()):e()}s(lO,"ip");var ko={};P(ko,{body:()=>dM,params:()=>fM});var $m=W(require("joi"));function dO(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:$m.default.any().optional(),updatedAt:$m.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(dO,"validate");function dM(t,e){return dO(t,"body",e)}s(dM,"body");function fM(t,e){return dO(t,"params",e)}s(fM,"params");var Ri={};P(Ri,{authenticate:()=>hM,options:()=>mM});function Ie(t,e,r){return t(r,null,{message:e})}s(Ie,"authError");async function Fr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await ym(),n="/api/global/auth";return Sr()&&(n+=`/${q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(Fr,"ssoCallbackUrl");var Vm="Invalid credentials",pM="This account has expired. Please reset your password",mM={passReqToCallback:!0};async function hM(t,e,r,n){if(!e)return Ie(n,"Email Required");if(!r)return Ie(n,"Password Required");let i=await _t(e);return i==null?(console.info(`user=${e} could not be found`),Ie(n,Vm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ie(n,Vm)):i.password?await df(r,i.password)?(delete i.password,n(null,i)):Ie(n,Vm):(console.info(`user=${e} has no password set`,i),Ie(n,pM))}s(hM,"authenticate");var or={};P(or,{buildVerifyFn:()=>mO,getCallbackUrl:()=>yM,strategyFactory:()=>qm});var Mo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function Uc(t,e=!0,r,n,i=!1){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ie(r,"sso user id required");if(!t.email)return Ie(r,"sso user email required");let o=ni(t.userId),a;try{a=await On(o)}catch(c){if(!c.status||c.status!==404)return Ie(r,"Unexpected error when retrieving existing user",c)}if(!a&&(t.emailVerified||i)&&(a=await _t(t.email)),!a&&e)return Ie(r,"Email does not yet exist. You must set up your local budibase account first.");a||(a={_id:o,email:t.email,roles:{},tenantId:q()});let u=await gM(a,t);u.forceResetPassword=!1;try{delete u.password,u=await n(u,{hashPassword:!1,requirePassword:!1})}catch(c){return Ie(r,"Error saving user",c)}return r(null,u)}s(Uc,"authenticate");async function gM(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(gM,"syncUser");var EM=require("passport-google-oauth").OAuth2Strategy;function mO(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,emailVerified:n._json.email_verified===!0,oauth2:{accessToken:e,refreshToken:r}};return Uc(o,!0,i,t)}}s(mO,"buildVerifyFn");async function qm(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=mO(r);return new EM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(qm,"strategyFactory");async function yM(t){return Fr("google",t)}s(yM,"getCallbackUrl");var ar={};P(ar,{buildVerifyFn:()=>EO,fetchStrategyConfig:()=>wM,getCallbackUrl:()=>RM,strategyFactory:()=>OM});var hO=W(require("node-fetch"));var gO=require("@govtechsg/passport-openidconnect");function EO(t,e=!1){return async(r,n,i,o,a,u,c,l,d)=>{let f=TM(n,i),g=SM(n,i),m={provider:r,providerType:"oidc",userId:f.id,profile:f,email:AM(f,g),emailVerified:_M(f,g),oauth2:{accessToken:u,refreshToken:c}};return Uc(m,!1,d,t,e)}}s(EO,"buildVerifyFn");function TM(t,e){let r={...t?._json||{}};!r.email&&e.emails?.length&&(r.email=e.emails[0].value,r.email_verified=e._json?.email_verified);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(TM,"normalizeProfile");function SM(t,e){return{email:t?._json?.email||e.emails?.[0]?.value,email_verified:e._json?.email_verified,preferred_username:e.username}}s(SM,"buildJwtClaims");function AM(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&&sp(r))return r.toLowerCase();throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(AM,"getEmail");function _M(t,e){return t._json.email?t._json.email_verified===!0:e.email?e.email_verified===!0:!1}s(_M,"getEmailVerified");async function OM(t,e){try{let r=EO(e,t.allowUnverifiedEmailLinking),n=new gO.Strategy(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(OM,"strategyFactory");function IM(t){let e=E.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING;if(e===void 0)return t;let r=`${e}`.toLowerCase();return r!==""&&r!=="false"&&r!=="0"}s(IM,"resolveAllowUnverifiedEmailLinking");async function wM(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o,allowUnverifiedEmailLinking:a}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let u=await(0,hO.default)(i);if(!u.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${u.statusText}`);let c=await u.json();return{issuer:c.issuer,authorizationURL:c.authorization_endpoint,tokenURL:c.token_endpoint,userInfoURL:c.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o,allowUnverifiedEmailLinking:IM(a)}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(wM,"fetchStrategyConfig");async function RM(){return Fr("oidc")}s(RM,"getCallbackUrl");function yO(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(yO,"querystringToBody");function kc(t,e,r={noTenancyRequired:!1}){let n=ir(t),i=ir(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!sr(o,i)};sr(o,n)||(c.excludeStrategies=["query"]);let d=Qs(o,c);return d&&o.set("x-budibase-tenant-id",d),De(d,a)}}s(kc,"tenancy");function TO(t=[]){let e=ir(t);return async function(r,n){if(sr(r,e))return n();try{if((await Ge("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(TO,"activeTenant");async function Mc(t,e){if(t.internal||Lt(t.user))return e();let r=await dn(t);return r&&!sc(t.user,r)?t.throw(403,"Workspace Admin/Builder user only endpoint."):!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!Be(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}s(Mc,"workspaceBuilderOrAdmin");var Km={};P(Km,{postAuth:()=>bM,preAuth:()=>DM});var CM=require("passport-google-oauth").OAuth2Strategy;async function SO(){let t=await Tm();if(!t)throw new Error("No google configuration found");return t}s(SO,"fetchGoogleCreds");async function DM(t,e,r){let n=await SO(),o=`${await Po({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await qm(n,o,Mo);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(DM,"preAuth");async function bM(t,e,r){let n=await SO(),o=`${await Po({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=zt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new CM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{Jt(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=X();await gn(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(bM,"postAuth");var xM={google:Km};var AO=require("koa-passport"),vM=require("passport-local").Strategy,Fc=require("passport-oauth2-refresh"),NM=xc,PM=kc,LM=Pc,UM=AO;AO.use(new vM(Ri.options,Ri.authenticate));async function kM(t,e){let r=await ar.getCallbackUrl(),n,i;try{if(n=await ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await ar.strategyFactory(n,Mo)}catch{throw new Error("Could not refresh OAuth Token")}return Fc.use(i),new Promise(o=>{Fc.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s(kM,"refreshOIDCAccessToken");async function MM(t,e){let r=await or.getCallbackUrl(t),n;try{n=await or.strategyFactory(t,r,Mo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Fc.use(n),new Promise(i=>{Fc.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(MM,"refreshGoogleAccessToken");async function FM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Sm(r);return n?kM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await pc();return n?MM(n,t):{err:{data:"Google configuration not found"}}}}}s(FM,"refreshOAuthToken");async function BM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=z(),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(BM,"updateUserOAuth");async function WM(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=zt(e,"budibase:auth"),o=await ho(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):Jt(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await An(r,{sessionIds:a,reason:"logout"}),await nc.logout(e.user?.email),await xo(r)}s(WM,"platformLogout");var Ym={};P(Ym,{validate:()=>KM});var v=W(require("joi"));var GM=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Hm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(Hm,"runJoi");function $M(t){let e=v.default.object({type:v.default.string().allow("component").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),settings:v.default.array().items(v.default.object().unknown(!0)).required()}).unknown(!0)});Hm(e,t)}s($M,"validateComponent");function VM(t){let e=v.default.object({type:v.default.string().allow(...Object.values($c)).required(),required:v.default.boolean().required(),default:v.default.any(),display:v.default.string()}),r=v.default.object({type:v.default.string().allow(...Object.values(Gc)),readable:v.default.boolean(),displayName:v.default.string(),fields:v.default.object().pattern(v.default.string(),e)}).required(),n=v.default.object({type:v.default.string().allow("datasource").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({docs:v.default.string(),plus:v.default.boolean().optional(),isSQL:v.default.boolean().optional(),auth:v.default.object({type:v.default.string().required()}).optional(),features:v.default.object(Object.fromEntries(Object.values(Vc).map(i=>[i,v.default.boolean().optional()]))).optional(),relationships:v.default.boolean().optional(),description:v.default.string().required(),friendlyName:v.default.string().required(),type:v.default.string().allow(...GM),datasource:v.default.object().pattern(v.default.string(),e).required(),query:v.default.object().pattern(v.default.string(),r).unknown(!0).required(),extra:v.default.object().pattern(v.default.string(),v.default.object({type:v.default.string().required(),displayName:v.default.string().required(),required:v.default.boolean(),data:v.default.object()}))})});Hm(n,t)}s(VM,"validateDatasource");function qM(t){let e=v.default.object().pattern(v.default.string(),{type:v.default.string().allow(...Object.values(qc)).required(),customType:v.default.string().allow(...Object.values(Kc)),title:v.default.string(),description:v.default.string(),enum:v.default.array().items(v.default.string()),pretty:v.default.array().items(v.default.string())}),r=v.default.object({properties:e,required:v.default.array().items(v.default.string())}).concat(e).required(),n=v.default.object({type:v.default.string().allow("automation").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),tagline:v.default.string().required(),icon:v.default.string().required(),description:v.default.string().required(),type:v.default.string().allow("ACTION","LOGIC").required(),stepId:v.default.string().disallow(...gh).required(),inputs:v.default.object().optional(),schema:v.default.object({inputs:r,outputs:r}).required()})});Hm(n,t)}s(qM,"validateAutomation");function KM(t){switch(t?.type){case"component":$M(t);break;case"datasource":VM(t);break;case"automation":qM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(KM,"validate");var zm={};P(zm,{Client:()=>Re,clients:()=>_r,locks:()=>yn,utils:()=>Ha});var Xm={};P(Xm,{init:()=>jM});var QM={"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 _O(t,e){let r=QM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(_O,"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=_O(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await De(i,async()=>{await u({id:o,tenantId:i,appId:n.appId,properties:n})})}shutdown(){return VA()}};var OO,Jm;function jM(t){St||Zu(),Jm||(Jm=new Fo(t)),OO||(OO=St.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Jm.processEvent(r,n,i)}))}s(jM,"init");var ah={};P(ah,{COUNT_FIELD_NAME:()=>sh,Sql:()=>vO,SqlTable:()=>Bc,designDoc:()=>oh,utils:()=>Rf});var CO=require("knex");var HM=require("knex");function Zm(t){return["link","formula","ai"].indexOf(t)!==-1}s(Zm,"isIgnoredType");function IO(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(g=>g.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(g=>g.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(g=>g.foreignKey);for(let[g,m]of Object.entries(e.schema)){let y=n?.schema[g];if(y&&y.type||l.includes(g)||i?.updated===g)continue;let h=m.type;switch(h){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(g)?t.string(g,255):t.text(g);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:p,toTable:T}=m.meta;t.integer(g).unsigned(),t.foreign(g).references(`${T}.${p}`)}else d.indexOf(g)===-1&&t.float(g);break;case"bigint":t.bigint(g);break;case"boolean":t.boolean(g);break;case"datetime":m.timeOnly?t.time(g):t.datetime(g,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":Ue.schema.isDeprecatedSingleUserColumn(m)?t.text(g):t.json(g);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:p}=Af(m.tableId),T=r[p];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let A=T.primary[0],_=T.schema[A].externalType;_?t.specificType(m.foreignKey,_):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${p}.${A}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(g);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:wt.unreachable(h)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!Zm(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,y])=>!Zm(y.type)&&e.schema[m]==null).forEach(([m,y])=>{i?.old===m||Zm(y.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}s(IO,"generateSchema");function zM(t,e,r){return t.createTable(e.name,n=>{IO(n,e,r)})}s(zM,"buildCreateTable");function JM(t,e,r,n,i){return t.alterTable(e.name,o=>{IO(o,e,r,n,i)})}s(JM,"buildUpdateTable");function XM(t,e){return t.dropTable(e.name)}s(XM,"buildDeleteTable");var eh=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,HM.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=zM(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=XM(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Jn(n)}},Bc=eh;var DO=require("lodash");var sh="__bb_total";function wO(){return(E.SQL_MAX_ROWS?parseInt(E.SQL_MAX_ROWS):null)||5e3}s(wO,"getBaseLimit");function th(){return(E.SQL_MAX_RELATED_ROWS?parseInt(E.SQL_MAX_RELATED_ROWS):null)||500}s(th,"getRelationshipLimit");function ZM(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(ZM,"prioritisedArraySort");function bO(t){return Array.isArray(t)?t.map(e=>bO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(bO,"convertBooleans");function RO(t){return t.sourceType==="internal"||t.sourceId===Hc}s(RO,"isSqs");function eF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(eF,"escapeQuotes");function tF(t,e='"'){return`${e}${eF(t,e)}${e}`}s(tF,"wrap");function rF(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=tF(t[r],e));return`[${t.join(",")}]`}s(rF,"stringifyArray");function rh(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(rh,"toPgArrayLiteral");function xO(t){return yh.includes(t.type)&&!Ue.schema.isDeprecatedSingleUserColumn(t)}s(xO,"isJsonColumn");var nF={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,notOneOf:!0,$and:!1,$or:!1},nh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:s(e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array","POSTGRES_ARRAY"),POSTGRES_MONEY:s(e=>this.client==="pg"&&e?.externalType?.includes("money"),"POSTGRES_MONEY"),POSTGRES_ENUM:s(e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options","POSTGRES_ENUM"),MSSQL_DATES:s(e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly,"MSSQL_DATES")};this.client=e,this.query=n,this.knex=r,this.splitter=new Er.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()&&xO(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(!If(e))return null}else if(r.dateOnly){let n=Of(e);return n?new Date(n):null}else return r.ignoreTimezones?Za(e)?new Date(e):_f(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,DO.cloneDeep)(e);for(let r of Object.values(Gr)){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(cr)){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(Cn)){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(g=>n.match(new RegExp(`^${g}\\.`)),"matches");if(!a)return e;for(let g of a){let m=g.tableName,y=c?.[m]||m,h=f(m)||f(y),p=f(g.column),T=g.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((h||p||T)&&g.to&&g.tableName){let A=this.knex.select(this.knex.raw(1)).from({[y]:m}),_=A.clone(),I=wf(g),O;if(h?O=n:O=n.replace(new RegExp(`^${g.column}.`),`${c?.[g.tableName]||g.tableName}.`),I){let C=c?.[I.through]||g.through,R=this.tableNameWithSchema(I.through,{alias:C,schema:u});_=_.innerJoin(R,function(){this.on(`${y}.${I.toPrimary}`,"=",`${C}.${I.to}`)}).where(`${C}.${I.from}`,"=",this.rawQuotedIdentifier(`${d}.${I.fromPrimary}`)),this.client==="sqlite3"&&(_=this.addJoinFieldCheck(_,I)),T&&i==="empty"?e=e.whereNotExists(_):T&&i==="notEmpty"?e=e.whereExists(_):e=e.where(w=>{w.whereExists(o(O,_)),r&&w.orWhereNotExists(A.clone().innerJoin(R,function(){this.on(`${d}.${I.fromPrimary}`,"=",`${C}.${I.from}`)}))})}else{let C=`${y}.${g.to}`,R=`${d}.${g.from}`;_=_.where(C,"=",this.rawQuotedIdentifier(R)),T&&i==="empty"?e=e.whereNotExists(_):T&&i==="notEmpty"?e=e.whereExists(_):e=e.where(w=>{w.whereExists(o(O,_.clone())),r&&w.orWhereNotExists(_)})}}}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(h){return o?.[h]||h}s(l,"getTableAlias");function d(h,p,T,A){let _=s((I,O,C)=>{let[R,...w]=O.split("."),b=w.join("."),G=l(R);return I.andWhere(ee=>T(ee,G?`${G}.${b}`:b,C))},"handleRelationship");for(let I in h){let O=h[I],C=Ks(I),R=C.includes(".")||i.getFieldSchema(C)?.type==="link",w=n?.relationship&&R,b;if(I==="_complexIdOperator"&&(b=h[I])&&A){let G=l(c);e=A(e,b.id.map(ee=>G?`${G}.${ee}`:ee),b.values)}else if(R)w&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,nF[p],C,p,(G,ee)=>_(ee,G,O)));else{let G=l(c);e=T(e,G?`${G}.${C}`:C,O)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,g=s((h,p,T)=>((r?.fuzzyOr||a)&&(h=h.or),f?h.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`%${T}%`]):this.client==="oracledb"||this.client==="sqlite3"?h.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`%${T.toLowerCase()}%`]):h.whereILike(this.rawQuotedIdentifier(p),this.knex.raw("?",[`%${T}%`]))),"like"),m=s((h,p=!1)=>{function T(A){return(a||h===r?.containsAny)&&(A=A.or),h===r?.notContains&&(A=A.not),A}s(T,"addModifiers"),this.client==="pg"?d(h,"contains",(A,_,I)=>{A=T(A);let O=this.getFieldSchema(_),C=this.rawQuotedIdentifier(_),R=Array.isArray(I)?[...I]:[I],w=this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(O);return p?w?A.whereRaw("COALESCE(?? && ?::text[], FALSE)",[C,rh(R)]):A.whereRaw("COALESCE(??::jsonb \\?| ?::text[], FALSE)",[C,rh(R)]):w?A.whereRaw("COALESCE(?? @> ?::text[], FALSE)",[C,rh(R)]):A.whereRaw("COALESCE(??::jsonb @> ?::jsonb, FALSE)",[C,rF(R)])}):this.client==="mysql2"||this.client==="mariadb"?d(h,"contains",(A,_,I)=>{let O=Array.isArray(I)?I:[I];return T(A).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(p?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),JSON.stringify(O)])}):d(h,"contains",(A,_,I)=>(I.length===0||(A=A.where(O=>(h===r?.notContains&&(O=O.not),O=O.where(C=>{for(let R of I){h===r?.containsAny?C=C.or:C=C.and;let w=!f,b=typeof R=="string"?`"${w?R.toLowerCase():R}"`:R,G=w?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";C=C.whereLike(this.knex.raw(G,[this.rawQuotedIdentifier(_)]),`%${b}%`)}}),h===r?.notContains&&(O=O.or.whereNull(this.rawQuotedIdentifier(_))),O))),A))},"contains");if(r.$and){let{$and:h}=r;for(let p of h.conditions)e=e.where(T=>{this.addFilters(T,p,n)})}if(r.$or){let{$or:h}=r;e=e.where(p=>{for(let T of h.conditions)p.orWhere(A=>this.addFilters(A,{...T,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(h,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(h=h.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly){for(let I of _)I!=null?h=h.or.whereLike(p,`${I.toISOString().slice(0,10)}%`):h=h.or.whereNull(p);return h}return h.whereIn(p,_)},(h,p,T)=>(a&&(h=h.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),h.whereIn(p,Array.isArray(T)?T:[T]))),r.notOneOf&&d(r.notOneOf,"notOneOf",(h,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(h=h.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly)return h.where(I=>{I.whereNot(O=>{for(let C of _)C!=null&&O.orWhereLike(p,`${C.toISOString().slice(0,10)}%`)}).orWhereNull(p)});return h.where(I=>{I.whereNotIn(p,_).orWhereNull(p)})},(h,p,T)=>(a&&(h=h.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),h.whereNotIn(p,Array.isArray(T)?T:[T]))),r.string&&d(r.string,"string",(h,p,T)=>{if(a&&(h=h.or),f)return h.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`${T}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return h.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`${T.toLowerCase()}%`]);{let A=this.getFieldSchema(p);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(A)?h.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(A.name)),`${T}%`]):h.whereILike(p,`${T}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",g),r.range&&d(r.range,"range",(h,p,T)=>{let A=s(b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype,"isEmptyObject");A(T.low)&&(T.low=""),A(T.high)&&(T.high="");let _=eu(T.low),I=eu(T.high),O=this.getFieldSchema(p),C=p,R=T.high,w=T.low;return this.client==="sqlite3"&&O?.type==="datetime"&&O.dateOnly&&(R!=null&&(R=`${R.toISOString().slice(0,10)}T23:59:59.999Z`),w!=null&&(w=w.toISOString().slice(0,10))),this.client==="oracledb"?C=this.convertClobs(p):this.client==="sqlite3"&&O?.type==="bigint"&&(C=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(p)]),R=this.knex.raw("CAST(? AS INTEGER)",[T.high]),w=this.knex.raw("CAST(? AS INTEGER)",[T.low])),a&&(h=h.or),_&&I?h.whereBetween(C,[w,R]):_?h.where(C,">=",w):I?h.where(C,"<=",R):h}),r.equal&&d(r.equal,"equal",(h,p,T)=>{let A=this.getFieldSchema(p);if(a&&(h=h.or),this.client==="mssql")return h.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return h.where(I=>I.whereNotNull(_).andWhere(_,T))}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?h.whereLike(p,`${T.toISOString().slice(0,10)}%`):h.whereNull(p):h.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(p),T])}),r.notEqual&&d(r.notEqual,"notEqual",(h,p,T)=>{let A=this.getFieldSchema(p);if(a&&(h=h.or),this.client==="mssql")return h.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return h.where(I=>I.not.whereNull(_).and.where(_,"!=",T)).or.whereNull(_)}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?h.not.whereLike(p,`${T.toISOString().slice(0,10)}%`).or.whereNull(p):h.not.whereNull(p):h.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(p),T])}),r.empty&&d(r.empty,"empty",(h,p)=>(a&&(h=h.or),h.whereNull(p))),r.notEmpty&&d(r.notEmpty,"notEmpty",(h,p)=>(a&&(h=h.or),h.whereNotNull(p))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let y=o?.[this.table._id]||this.table._id;return r.documentType&&!Sf(this.table)&&y&&e.andWhereLike(`${y}._id`,`${Ot(r.documentType)}%`),e}isSqs(){return RO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;RO(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 ${sh}`)}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 g=`${o}.${u}`,m;this.isAggregateField(u)?m=this.rawQuotedIdentifier(u):this.client==="oracledb"?m=this.convertClobs(g):m=this.rawQuotedIdentifier(g),e=e.orderByRaw(`?? ?? ${f?"nulls ??":""}`,[m,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:g,through:m,to:y,from:h,fromPrimary:p,toPrimary:T}=f;if(!g||!r)continue;let A=l[g];if(!A)throw new Error(`related table "${g}" not found in datasource`);let _=u?.[g]||g,I=u?.[r]||r,O=m&&u?.[m]||m,C=this.tableNameWithSchema(g,{alias:_,schema:c}),R=[...A?.primary||[],A?.primaryDisplay].filter(V=>V),w=ZM(d.filter(V=>V.split(".")[0]===_),R);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let b=w.map(V=>this.buildJsonField(A,V));if(!b.length)continue;let G=b.map(V=>{let B=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${B}??`,[V[0],V[1]]).toString()}).join(","),ee=`${_}.${T||y}`,M=o.from(C).orderBy(ee),U=m&&T&&p,L=U?`${O}.${h}`:`${_}.${y}`,K=U?`${I}.${p}`:`${I}.${h}`;if(U){let V=this.tableNameWithSchema(m,{alias:O,schema:c});M=M.join(V,function(){this.on(`${_}.${T}`,"=",`${O}.${y}`)})}M=M.where(this.rawQuotedIdentifier(L),"=",this.rawQuotedIdentifier(K));let F=s(V=>(M=M.select(w.map(B=>this.rawQuotedIdentifier(B))).limit(th()),o.select(V).from({[_]:M})),"standardWrap"),j;switch(i){case"sqlite3":M=this.addJoinFieldCheck(M,f),j=F(this.knex.raw(`json_group_array(json_object(${G}))`));break;case"pg":j=F(this.knex.raw(`json_agg(json_build_object(${G}))`));break;case"mariadb":j=M.select(o.raw(`json_arrayagg(json_object(${G}) LIMIT ${th()})`));break;case"mysql2":case"oracledb":j=F(this.knex.raw(`json_arrayagg(json_object(${G}))`));break;case"mssql":{let V=o.select("*").from({[I]:M.select(b.map(B=>o.ref(B[1]).as(B[0]))).limit(th())});j=o.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:j})}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,g=this.tableNameWithSchema(a,{alias:l,schema:o}),m=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(m,function(){for(let y of n){let h=y.fromPrimary,p=y.from;this.orOn(`${f}.${h}`,"=",`${d}.${p}`)}}).leftJoin(g,function(){for(let y of n){let h=y.toPrimary,p=y.to;this.orOn(`${l}.${h}`,`${d}.${p}`)}}):e=e.leftJoin(g,function(){for(let y of n){let h=y.from,p=y.to;this.orOn(`${f}.${h}`,"=",`${l}.${p}`)}}),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 m=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=m}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 g=this.query.tableAliases?.[a.name]||a.name,m=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[g]:"paginated"}));return this.addJsonRelationships(m,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())}},ih=class extends Bc{static{s(this,"SqlQueryBuilder")}constructor(e,r=wO()){super(e),this.limit=r}convertToNative(e,r={}){let n=this.getSqlClient();if(r?.disableBindings)return{sql:e.toString()};{let i=Jn(e);return n==="sqlite3"&&(i=bO(i)),i}}_query(e,r={}){let n=this.getSqlClient(),i={client:this.getBaseSqlClient()};(n==="sqlite3"||n==="oracledb")&&(i.useNullAsDefault=!0);let o=(0,CO.knex)(i),a,u=new nh(n,o,e);switch(this._operation(e)){case"CREATE":a=u.create(r);break;case"READ":a=u.read({limits:{query:this.limit,base:wO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(r);break;case"DELETE":a=u.delete(r);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(e);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,r)}async getReturningRow(e,r){if(!r.extra||!r.extra.idFilter)return{};let n=this._query({operation:"READ",datasource:r.datasource,schema:r.schema,table:r.table,tables:r.tables,resource:{fields:[]},filters:r.extra?.idFilter,paginate:{limit:1}});return e(n,"READ")}checkLookupKeys(e,r){if(!e||!r.table.primary)return r;let n=r.table.primary[0];return r.extra={idFilter:{equal:{[n]:e}}},r}async queryWithReturning(e,r,n=i=>i){let i=this.getSqlClient(),o=this._operation(e),a=this._query(e,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let f of a)d.push(await r(f,o));return d}let u;o==="DELETE"&&(u=n(await this.getReturningRow(r,e)));let c=await r(a,o),l=n(c);if(o==="CREATE"||o==="UPDATE"){let d;i==="mssql"?d=l?.[0].id:(i==="mysql2"||i==="mariadb")&&(d=l?.insertId),u=n(await this.getReturningRow(r,this.checkLookupKeys(d,e)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(e,r){let n=e.name;if(e.sourceType==="internal"||e.sourceId===Hc){if(!e._id)return;n=e._id}return r?.[n]||n}convertJsonStringColumns(e,r,n){let i=this.getTableName(e,n);for(let[o,a]of Object.entries(e.schema)){if(!xO(a))continue;let u=`${i}.${o}`;for(let c of r)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return r}log(e,r){Ls(this.getSqlClient(),e,r)}},vO=ih;var oh={};P(oh,{base:()=>iF});function iF(t){return{_id:xt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(iF,"base");var uh={};P(uh,{jsonFromCsvString:()=>sF});var NO=W(require("csvtojson"));async function sF(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,NO.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(sF,"jsonFromCsvString");var ch=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=ch;var PO=W(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 PO.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 oF={...js,...le},aF=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,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"),js=s(async(t,e)=>{let r={account_by_email:IS,platform_users_lowercase_2:wS};return je(pe.PLATFORM_INFO.name,async n=>{let i=r[t];return Jf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),RS={by_email2:SS,by_api_key:_S,by_app:AS},Ht=s(async(t,e,r,n)=>{r||(r=z());let i=RS[t];return Jf(t,e,r,i,n)},"queryGlobalView");async function Hs(t,e,r){let n=z(),i=RS[t];return Qs(t,e,n,i,r)}s(Hs,"queryGlobalViewRaw");var Ev=W(require("pouchdb"));var CS=require("dd-trace");var Xf=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=it(e),this.target=it(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([Ms(this.source),Ms(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 CS.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,g)=>f?.startsWith(g+"_"),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:s((f,g)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,xs)?!0:n==="toProduction"&&!o&&l(f._id,"autocolumn_state")?!1:d(f._id)?!!c?.find(m=>f._id.includes(m))||u:l(f._id,"log_au")||l(f._id,"agentlogsession")||f._id==="app_metadata"?!1:r?r(f,g):!0,"filter")}}async rollback(){await this.target.destroy(),this.target=it(this.target.name),await this.replicate()}},DS=Xf;var xS=W(require("node-fetch"));var Ys=Er.removeKeyNumbering;function Or(t){return t==null||t===""}s(Or,"isEmpty");var Yt=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:{},notOneOf:{},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}addNotOneOf(e,r){return this.#e.notOneOf[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=Ys(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((h,p)=>Or(p)?null:`${h}:${e.preprocess(p,o)}`,"equal"),c=s((h,p,T="AND")=>{if(Or(p))return null;if(!Array.isArray(p))return`${h}:${p}`;let A=`${e.preprocess(p[0],{escape:!0})}`;for(let _=1;_<p.length;_++)A+=` ${T} ${e.preprocess(p[_],{escape:!0})}`;return`${h}:(${A})`},"contains"),l=s((h,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"fuzzy"}),`${h}:/.*${p}.*/`),"fuzzy"),d=s((h,p)=>{let T=r?"*:* AND ":"",A=r?"AND":void 0;return T+"NOT "+c(h,p,A)},"notContains"),f=s((h,p)=>c(h,p,"OR"),"containsAny"),g=s((h,p)=>{if(Or(p))return"*:*";if(!Array.isArray(p))if(typeof p=="string")p=p.split(",");else return"";let T=`${e.preprocess(p[0],o)}`;for(let A=1;A<p.length;A++)T+=` OR ${e.preprocess(p[A],o)}`;return`${h}:(${T})`},"oneOf"),m=s((h,p)=>{if(Or(p))return null;if(!Array.isArray(p))if(typeof p=="string")p=p.split(",");else return"";let T=`${e.preprocess(p[0],o)}`;for(let A=1;A<p.length;A++)T+=` OR ${e.preprocess(p[A],o)}`;return`(*:* -${h}:(${T}))`},"notOneOf");function y(h,p,T){let A="";for(let[_,I]of Object.entries(h)){_=Ys(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let O=p(_,I);if(O!=null){if(A.length>0||n.length>0){let C=T?.mode?T.mode:r?"OR":"AND";A+=` ${C} `}A+=O,(typeof I!="string"&&I!=null||typeof I=="string"&&I!==a&&I!=="")&&(i=!1)}}if(T?.returnBuilt)return A;n+=A}if(s(y,"build"),this.#e.string&&y(this.#e.string,(h,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"string"}),`${h}:${p}*`)),this.#e.range&&y(this.#e.range,(h,p)=>{if(Or(p)||p.low==null||p.low===""||p.high==null||p.high==="")return null;let T=e.preprocess(p.low,o),A=e.preprocess(p.high,o);return`${h}:[${T} TO ${A}]`}),this.#e.fuzzy&&y(this.#e.fuzzy,l),this.#e.equal&&y(this.#e.equal,u),this.#e.notEqual&&y(this.#e.notEqual,(h,p)=>Or(p)?null:typeof p=="boolean"?`(*:* AND !${h}:${p})`:`!${h}:${e.preprocess(p,o)}`),this.#e.empty&&y(this.#e.empty,h=>(i=!1,`(*:* -${h}:["" TO *])`)),this.#e.notEmpty&&y(this.#e.notEmpty,h=>(i=!1,`${h}:["" TO *]`)),this.#e.oneOf&&y(this.#e.oneOf,g),this.#e.notOneOf&&y(this.#e.notOneOf,m),this.#e.contains&&y(this.#e.contains,c),this.#e.notContains&&y(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&y(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,y({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}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await bS(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await bS(n,i,r);throw o}}};async function bS(t,e,r){let n=await(0,xS.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(bS,"runQuery");async function vS(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Yt.maxLimit;n.limit&&o.length>n.limit-Yt.maxLimit&&(a=n.limit-o.length);let u=new Yt(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<Yt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await vS(t,e,r,l)}s(vS,"recursiveSearch");async function yv(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Yt.maxLimit);let o=new Yt(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(yv,"paginatedSearch");async function Tv(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 vS(t,e,r,n)}}s(Tv,"fullSearch");var Zf={};P(Zf,{createUserIndex:()=>Sv});async function Sv(){let t=z(),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(Sv,"createUserIndex");function NS(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(NS,"checkErrorCode");function Av(t){return NS(t,409)}s(Av,"isDocumentConflictError");var Js={};P(Js,{addTenantToUrl:()=>_v,getTenantDB:()=>ep,getTenantIDFromCtx:()=>zs,isUserInWorkspaceTenant:()=>Ov});function ep(t){return De(ln(t))}s(ep,"getTenantDB");function _v(t){let e=V();if(Sr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(_v,"addTenantToUrl");var Ov=s((t,e)=>{let r;return e?r=e.tenantId||ce:r=V(),(ni(t)||ce)===r},"isUserInWorkspaceTenant"),Iv=Object.values(Ui),zs=s((t,e)=>{if(!Sr())return ce;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=Iv),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(xf()).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 Tu={milliseconds:1,seconds:1e3,minutes:60*1e3,hours:3600*1e3,days:1440*60*1e3},me=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)}};function Su(){let t=me.fromDays(7).toSeconds();if(!E.SESSION_EXPIRY_SECONDS)return t;let e=parseInt(E.SESSION_EXPIRY_SECONDS);return Number.isFinite(e)&&e>0?e:t}s(Su,"getSessionExpirySeconds");function tp(){return new Date(Date.now()+Su()*1e3)}s(tp,"getSessionExpiryDate");var rp="app_",PS="/app/",LS="/app-chat/";async function wv(t){let r=t.path.split("/")[2];if(!r)return;let n=`/${r.toLowerCase()}`,i=V();!E.isDev()&&E.MULTI_TENANCY&&(i=zs(t,{includeStrategies:["subdomain"]}));let a=(await be(i,()=>Ks({dev:!1}))).filter(u=>u.url&&u.url.toLowerCase()===n)[0];return a&&a.appId?a.appId:void 0}s(wv,"resolveAppUrl");function Rv(t){return t.path.startsWith(`/${rp}`)?!0:t.path.startsWith(PS)||t.path.startsWith(LS)}s(Rv,"isServingApp");function Cv(t){return t.path.startsWith("/builder/workspace/")}s(Cv,"isServingBuilder");function Dv(t){return US(t.path)}s(Dv,"isServingBuilderPreview");function US(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(US,"isBuilderPreviewUrl");function bv(t){return t.path.startsWith("/api/public/v")}s(bv,"isPublicApiRequest");async function pn(t){let e;function r(u){u&&u.startsWith(rp)&&(e&&e!==u&&t.throw(403,"App id conflict"),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=xv(t.path);r(i),n(t.query?.appId);let o=US(t.path);return(t.path.startsWith(PS)||t.path.startsWith(LS))&&!o&&r(await wv(t)),e}s(pn,"getWorkspaceIdFromCtx");function xv(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(rp))}s(xv,"parseWorkspaceIdFromUrlPath");function _u(t){if(t)try{return Au.default.verify(t,E.JWT_SECRET)}catch(e){if(E.JWT_SECRET_FALLBACK)return Au.default.verify(t,E.JWT_SECRET_FALLBACK);throw e}}s(_u,"openJwt");function Xs(t){return E.INTERNAL_API_KEY&&E.INTERNAL_API_KEY===t?!0:!!(E.INTERNAL_API_KEY_FALLBACK&&E.INTERNAL_API_KEY_FALLBACK===t)}s(Xs,"isValidInternalAPIKey");function zt(t,e){let r=t.cookies.get(e);if(r)return _u(r)}s(zt,"getCookie");function np(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Au.default.sign(e,E.JWT_SECRET));let i=n.sameSite,o=n.secure??t.secure;i==="none"&&(o?o=!0:i="lax");let a={expires:n.expires??qa,path:"/",httpOnly:n.httpOnly??!1,secure:o,overwrite:!0};i&&(a.sameSite=i),E.COOKIE_DOMAIN&&(a.domain=E.COOKIE_DOMAIN),t.cookies.set(r,e,a)}s(np,"setCookie");function vv(t,e){np(t,e,"budibase:auth",{sign:!1,httpOnly:!0,expires:tp()})}s(vv,"setAuthCookie");function Jt(t,e){np(t,null,e)}s(Jt,"clearCookie");function Nv(t){return t.headers["x-budibase-type"]==="client"}s(Nv,"isClient");function ip(t){return new Promise(e=>setTimeout(e,t))}s(ip,"timeout");function sp(t){return!!hh[t]}s(sp,"isAudited");function Pv(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(Pv,"hasCircularStructure");function Lv(t){return!!t.match(/^.+:\/\/.+$/)}s(Lv,"urlHasProtocol");function op(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(op,"validEmail");async function Uv(t){let e=performance.now();return[await t(),me.fromMilliseconds(performance.now()-e)]}s(Uv,"time");var Ou=require("undici");function kv(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 g=c.slice(1);d=r===g.slice(1)||r.endsWith(g)}else d=r===c;if(d&&(!l||n===l))return!0}return!1}s(kv,"isUrlMatchingNoProxy");function Mv(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&&kv(t,i))return console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy",{url:t,noProxy:i}),!0}return!1}s(Mv,"shouldBypassProxy");function Fv(t,e){return new Ou.Agent({connect:{rejectUnauthorized:t,...e?{lookup:e}:{}}})}s(Fv,"createDirectAgent");function Bv(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 Ou.ProxyAgent(i)}s(Bv,"createProxyAgent");function Wv(t){let e=t?.rejectUnauthorized??!0;return Mv(t?.url)?Fv(e,t?.lookup):(t?.lookup&&console.log("[fetch] Proxy configured; IP pinning is not applied to proxied requests"),Bv(e))}s(Wv,"createDispatcher");function Gv(t){return Wv(t)}s(Gv,"getDispatcher");var ap=require("util"),up=W(require("zlib"));var $v=(0,ap.promisify)(up.default.gzip),Vv=(0,ap.promisify)(up.default.gunzip),Iu="gzip:",qv=s(async t=>{let e=await $v(t);return`${Iu}${e.toString("base64")}`},"gzipToBase64"),Kv=s(async t=>{let e=t.startsWith(Iu)?t.slice(Iu.length):t,r=Buffer.from(e,"base64");return(await Vv(new Uint8Array(r))).toString("utf8")},"gunzipFromBase64");function Qv(t){let e=t.get("authorization");if(!e)return null;let r=e.match(/^Bearer\s+(.+)$/i);return r?r[1]:null}s(Qv,"getBearerToken");var $S=W(require("http")),VS=W(require("https"));var pp={};P(pp,{isBlacklisted:()=>fp,refreshBlacklist:()=>WS,resolveAddress:()=>wu});var kS=W(require("dns")),wr=W(require("net"));var MS=require("util");var jv=["127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","100.64.0.0/10","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10"],lp,Hv=(0,MS.promisify)(kS.default.lookup);function FS(){return!(E.SELF_HOSTED&&E.BLACKLIST_IPS!==void 0)}s(FS,"shouldApplyDefaultBlacklist");function dp(t){return wr.default.isIP(t)===6?"ipv6":"ipv4"}s(dp,"getIpVersion");function Yv(t){let e=wr.default.isIP(t);return e===4?32:e===6?128:null}s(Yv,"getMaxPrefixLength");function zv(t,e){if(!/^\d+$/.test(e))return null;let r=Number.parseInt(e,10),n=Yv(t);return n==null||r>n?null:r}s(zv,"getValidSubnetPrefix");function Jv(t){return wr.default.isIP(t)?t:(/^https?:\/\//.test(t)||(t=`https://${t}`),new URL(t).hostname.replace(/^\[|\]$/g,""))}s(Jv,"parseAddress");async function BS(t){return t=Jv(t),(await Hv(t,{all:!0})).map(r=>r.address)}s(BS,"lookup");async function wu(t){return wr.default.isIP(t)?[t]:BS(t)}s(wu,"resolveAddress");function cp(t,e){let r=e.trim();if(!r)return;let n=r.split("/");if(n.length>2){console.log(`Ignoring invalid blacklist entry: ${r}`);return}let[i,o]=n,a=wr.default.isIP(i);if(n.length===2){let u=zv(i,o);if(a&&u!==null){t.addSubnet(i,u,dp(i));return}console.log(`Ignoring invalid blacklist entry: ${r}`);return}a&&t.addAddress(i,dp(i))}s(cp,"addEntryToBlacklist");async function WS(){let t=new wr.default.BlockList;if(FS())for(let r of jv)cp(t,r);let e=E.BLACKLIST_IPS?.split(",")||[];for(let r of e){let n=r.trim();if(!n)continue;let[i]=n.split("/");if(wr.default.isIP(i)){cp(t,n);continue}let o=await BS(n);for(let a of o)cp(t,a)}lp=t}s(WS,"refreshBlacklist");async function fp(t){lp||await WS();let e;try{e=await wu(t)}catch(r){return r instanceof TypeError?(console.error("Black list error: could not parse address: ",t),!0):FS()}return e.some(r=>lp.check(r,dp(r)))}s(fp,"isBlacklisted");var Ru=W(require("node-fetch"));var GS=5,Xv=new Set(["http:","https:"]),Zv=["authorization","cookie","cookie2","proxy-authorization"];function mp(t){let e;try{e=new URL(t)}catch{throw new Error("Invalid URL.")}if(!Xv.has(e.protocol))throw new Error("Only HTTP(S) URLs are allowed.");if(e.username||e.password)throw new Error("URL must not include credentials.");return e}s(mp,"parseUrl");function eN(t){return[301,302,303,307,308].includes(t)}s(eN,"isRedirect");async function tN(t){let e=mp(t),r=await wu(e.hostname);if(r.length===0)throw new Error("URL is blocked or could not be resolved safely.");for(let n of r)if(await fp(n))throw new Error("URL is blocked or could not be resolved safely.");return r[0]}s(tN,"resolveSafePinnedIp");function qS(t){let e=t.includes(":")?6:4;return(r,n,i)=>{if(typeof n=="object"&&n?.all){i(null,[{address:t,family:e}]);return}i(null,t,e)}}s(qS,"createPinnedLookup");function rN(t,e){let r=new URL(t).protocol,n=qS(e);return r==="https:"?new VS.default.Agent({lookup:n}):new $S.default.Agent({lookup:n})}s(rN,"makePinnedAgent");function nN(t,e){let r=t.method?.toUpperCase()||"GET";return e===303||(e===301||e===302)&&r==="POST"?{...t,body:void 0,method:"GET",redirect:"manual"}:t}s(nN,"nextRequestForRedirect");function iN(t,e){return new URL(t).origin!==new URL(e).origin}s(iN,"shouldStripSensitiveHeadersForRedirect");function sN(t){if(!t.headers)return t;let e=new Ru.Headers(t.headers);return Zv.forEach(r=>e.delete(r)),{...t,headers:e}}s(sN,"stripSensitiveHeadersForRedirect");function oN(t){return!t||typeof t!="object"||!("resume"in t)?!1:typeof t.resume=="function"}s(oN,"isResumableBody");function aN(t){let e=t.body;oN(e)&&e.resume()}s(aN,"releaseResponseBody");async function li(t,e={},{followRedirects:r=!0,returnRedirectWithoutLocation:n=!1,rejectCrossOriginRedirects:i=!1,fetchFn:o=Ru.default}={}){let a=t,u={...e,redirect:"manual"};for(let c=0;c<=GS;c++){let l=await tN(a),d;try{d=await o(a,{...u,agent:rN(a,l)},l)}catch(m){let y=mp(a).hostname;throw m instanceof Error?(m.message=`Failed to connect to resolved IP for ${y}: ${m.message}`,m):new Error(`Failed to connect to resolved IP for ${y}: unknown network error`)}if(!eN(d.status))return d;if(aN(d),!r)throw new Error("Redirects are not permitted.");if(c===GS)break;let f=d.headers.get("location");if(!f){if(n)return d;throw new Error("Maximum redirect reached.")}let g=mp(new URL(f,a).toString()).toString();if(u=nN(u,d.status),iN(a,g)){if(i)throw new Error("Redirect to a different origin is not permitted.");u=sN(u)}a=g}throw new Error("Maximum redirect reached.")}s(li,"fetchWithBlacklist");var uN=s((t,e)=>`datasource:creation:${t}:microsoft:${e}`,"microsoftDatasourceCreationCacheKey");function cN(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(cN,"jobToJobInformation");var Cu=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new KS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((f,g)=>{f?l(f):c(g)},"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 ke.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=X(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:s(async()=>{c._isDiscarded=!0},"discard")};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:s(()=>new Promise((c,l)=>{let d=s((g,m)=>{g.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(m))},"errorHandler"),f=s((g,m)=>{g.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(m))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)}),"finished")}}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}async getJobs(){return this._messages}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=>cN(e))}async whenCurrentJobsFinished(){do await ip(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},QS=Cu;var Ep=W(require("bull"));var fi=(y=>(y.AUTOMATION="automationQueue",y.APP_BACKUP="appBackupQueue",y.AUDIT_LOG="auditLogQueue",y.SYSTEM_EVENT_QUEUE="systemEventQueue",y.APP_MIGRATION="appMigration",y.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",y.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",y.BATCH_USER_SYNC_PROCESSOR="batchUserSyncProcessorQueue",y.RAG_INGESTION="ragIngestionQueue",y.KNOWLEDGE_SOURCE_SYNC="knowledgeSourceSyncQueue",y.AGENT_LOG_INDEXING="agentLogIndexingQueue",y.ESCALATION="escalationQueue",y.AGENT_REQUEST_TRACKING="agentRequestTrackingQueue",y.AGENT_TEST_RUN="agentTestRunQueue",y))(fi||{});function jS(t,e,r){fN(t,e),r&&lN(t,r)}s(jS,"addListeners");function lN(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(lN,"handleStalled");function ot(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(ot,"getLogParams");var dN={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",escalationQueue:"escalation-processor",agentRequestTrackingQueue:"agent-request-tracking-processor",agentTestRunQueue:"agent-test-run-processor",knowledgeSourceSyncQueue:"knowledge-source-sync-processor"};function fN(t,e){let r=dN[e];function n(i,o){let a=i.data.event?.appId;if(a)return vf(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...ot(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...ot(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...ot(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...ot(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...ot(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...ot(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...ot(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...ot(r,"paused"))}).on("resumed",()=>{console.info(...ot(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...ot(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...ot(r,"drained"))}).on("removed",i=>{console.info(...ot(r,"removed",{job:i}))})}s(fN,"logging");var Du={};P(Du,{cleanup:()=>pN,clear:()=>gp,set:()=>hp});var Zs=[];function hp(t,e){let r=setInterval(t,e);return Zs.push(r),r}s(hp,"set");function gp(t){let e=Zs.indexOf(t);e!==-1&&Zs.splice(e,1),clearInterval(t)}s(gp,"clear");function pN(){for(let t of Zs)clearInterval(t);Zs=[]}s(pN,"cleanup");var Xt=W(require("dd-trace")),eo=W(require("object-sizeof"));var mN=me.fromMinutes(5).toMs(),hN=me.fromSeconds(30).toMs(),yp=me.fromSeconds(60).toMs(),to=[],bu;async function HS(){for(let t of to)await t.clean(yp,"completed"),await t.clean(yp,"failed")}s(HS,"cleanup");async function gN(t,e,r){let n=performance.now();try{let i=await e();return Xt.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw Xt.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;Xt.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),Xt.default.dogstatsd.increment(t,1,r)}}s(gN,"withMetrics");function YS(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(YS,"jobOptsTags");function EN(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,eo.default)(t.data),...YS(t.opts||{})}}s(EN,"jobTags");var yt=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:un(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:mN,lockRenewTime:hN}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return E.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new Ep.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new QS(this.jobQueue,r):n=new Ep.default(this.jobQueue,r),jS(n,this.jobQueue,this.opts.removeStalledCb),to.push(n),!bu&&!E.isTest()&&(bu=hp(HS,yp),HS().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 Xt.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:s(()=>l.traceId,"toTraceId"),toSpanId:s(()=>l.spanId,"toSpanId"),toTraceparent:s(()=>"","toTraceparent")};c.addLink({context:d})}c.addTags({"queue.name":this.jobQueue,...EN(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),Xt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,eo.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 Xt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,eo.default)(e),...YS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},Xt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,eo.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return gN(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function yN(){bu&&gp(bu),console.log("Waiting for current queue jobs to finish...");for(let t of to)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of to)await t.close();to=[],console.log("Queues shutdown")}s(yN,"shutdown");var uo={};P(uo,{correlation:()=>ro,logAlert:()=>gn,logAlertWithInfo:()=>rP,logWarn:()=>hi,logger:()=>Mu,system:()=>Np});var ro={};P(ro,{getId:()=>Tp,setHeader:()=>TN});var zS=require("correlation-id"),TN=s(t=>{let e=zS.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function Tp(){return zS.getId()}s(Tp,"getId");var ku=W(require("pino")),CA=W(require("pino-pretty")),Pp=W(require("dd-trace")),DA=require("dd-trace/ext");var Np={};P(Np,{getLogReadStream:()=>zN,getSingleFileMaxSizeInfo:()=>RA,localFileDestination:()=>vp});var ao=W(require("fs")),xp=W(require("path")),_A=W(require("rotating-file-stream"));var bp={};P(bp,{ObjectStore:()=>at,ObjectStoreBuckets:()=>AN,SIGNED_FILE_PREFIX:()=>wp,bucketTTLConfig:()=>xu,budibaseTempDir:()=>mn,client3rdPartyLibrary:()=>VN,clientLibraryPath:()=>$N,clientLibraryUrl:()=>qN,createBucketIfNotExists:()=>oo,deleteFile:()=>PN,deleteFiles:()=>LN,deleteFolder:()=>lA,downloadTarball:()=>kN,downloadTarballDirect:()=>UN,enrichPWAImages:()=>KN,enrichPluginURLs:()=>jN,extractBucketAndPath:()=>Sp,getAllFiles:()=>xN,getAppFileUrl:()=>mA,getClientCacheKey:()=>pA,getGlobalFileS3Key:()=>hA,getGlobalFileUrl:()=>QN,getObjectMetadata:()=>MN,getPluginIconKey:()=>yA,getPluginJSKey:()=>EA,getPluginS3Dir:()=>SA,getPresignedUrl:()=>hn,getReadStream:()=>vu,getSafeRetrieveDirectoryPath:()=>cA,listAllObjects:()=>Rp,objectExists:()=>FN,processAutomationAttachment:()=>ON,processObjectStoreAttachment:()=>tA,retrieve:()=>uA,retrieveDirectory:()=>NN,retrieveToTmp:()=>vN,sanitizeBucket:()=>xe,sanitizeKey:()=>Ee,streamUpload:()=>aA,streamUploadMany:()=>bN,upload:()=>DN,uploadDirectory:()=>Cp});var Pu=require("@aws-sdk/client-s3"),Ap=require("@aws-sdk/lib-storage"),rA=require("@aws-sdk/s3-request-presigner"),nA=require("@smithy/node-http-handler");var Zt=W(require("dd-trace")),pi=W(require("fs")),io=W(require("fs/promises")),iA=W(require("https")),Ye=require("path"),Lu=W(require("stream")),so=require("stream/promises"),_p=W(require("tar-fs")),Op=require("uuid"),Ip=W(require("zlib"));var JS=W(require("fs")),XS=require("os"),no=W(require("path")),ZS=W(require("stream"));var AN={BACKUPS:E.BACKUPS_BUCKET_NAME,APPS:E.APPS_BUCKET_NAME,TEMPLATES:E.TEMPLATES_BUCKET_NAME,GLOBAL:E.GLOBAL_BUCKET_NAME,PLUGINS:E.PLUGIN_BUCKET_NAME,TEMP:E.TEMP_BUCKET_NAME},eA=(0,no.join)((0,XS.tmpdir)(),".budibase");try{JS.default.mkdirSync(eA)}catch(t){if(t.code!=="EEXIST")throw t}function mn(){return eA}s(mn,"budibaseTempDir");var xu=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 _N(t){let e=await li(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=no.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");if(!(e.body instanceof ZS.default.Readable))throw new Error("Unexpected response body stream type");return{filename:t.filename||r,content:e.body}}s(_N,"processUrlAttachment");async function tA(t){let e=Sp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await vu(r,n),o=no.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(tA,"processObjectStoreAttachment");async function ON(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await _N(t):await tA(t)}s(ON,"processAutomationAttachment");var IN=require("sanitize-s3-objectkey"),wN={bucketCreationPromises:{}},wp="/files/signed",Rr={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"},RN=[Rr.html,Rr.css,Rr.js,Rr.json];function Ee(t){let e=IN(xe(t)).replace(/\\/g,"/");if(e.split("/").some(r=>r==="."||r===".."))throw new Error("Invalid object store key: path traversal is not allowed.");return e}s(Ee,"sanitizeKey");function xe(t){return t.replace(new RegExp(nt,"g"),rt)}s(xe,"sanitizeBucket");function at(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY},region:E.AWS_REGION};if(!E.MINIO_ENABLED&&E.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY,sessionToken:E.AWS_SESSION_TOKEN}),E.MINIO_URL&&(t.presigning&&E.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=E.MINIO_URL),E.S3_IGNORE_SELF_SIGNED==="true"){let r=new iA.default.Agent({rejectUnauthorized:!1});e.requestHandler=new nA.NodeHttpHandler({httpsAgent:r})}return new Pu.S3(e)}s(at,"ObjectStore");async function oo(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||r.$metadata?.httpStatusCode,i=wN.bucketCreationPromises;if(n===403)throw new Error("Access denied to object store bucket."+r);if(i[e])return await i[e],{created:!1,exists:!0};i[e]=t.createBucket({Bucket:e}).catch(o=>{if(o.Code!=="BucketAlreadyOwnedByYou"&&o.name!=="BucketAlreadyOwnedByYou")throw o});try{return await i[e],{created:!0,exists:!1}}finally{delete i[e]}}}s(oo,"createBucketIfNotExists");var CN=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?Rr[r.toLowerCase()]:Rr.txt},"resolveContentType"),sA=s(async(t,e,r)=>{let n=xe(t),i=at(),o=await oo(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=xu(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),oA=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=CN(r,i),u=Ee(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new Ap.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function DN({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await io.default.open(r)).createReadStream():o,l=at(),d=await oo(l,t);if(a&&d.created){let h=xu(t,a);await l.putBucketLifecycleConfiguration(h)}let f=n,g=f||(u?Rr[u.toLowerCase()]:Rr.txt),m={Bucket:xe(t),Key:Ee(e),Body:c,ContentType:g};if(i&&typeof i=="object"){for(let h of Object.keys(i))(!i[h]||typeof i[h]!="string")&&delete i[h];m.Metadata=i}return new Ap.Upload({client:l,params:m}).done()}s(DN,"upload");async function aA({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await Zt.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 sA(t,o,a),{details:d,contentType:f}=await oA({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),g=await l.headObject({Bucket:c,Key:Ee(r)});return a.addTags({contentType:f,contentLength:g.ContentLength}),{...d,ContentLength:g.ContentLength}})}s(aA,"streamUpload");async function bN({bucket:t,files:e,ttl:r}){return await Zt.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await sA(t,r,i),u=e.map((l,d)=>({...l,index:d})),c=new Array(e.length);return await wt.parallelForeach(u,async l=>{let{details:d}=await oA({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=d},10),c})}s(bN,"streamUploadMany");async function uA(t,e){return await Zt.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=at(),i={Bucket:xe(t),Key:Ee(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}),RN.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return Lu.default.Readable.fromWeb(a)}})}s(uA,"retrieve");async function*Rp(t,e){let r=at(),n=s((a={})=>r.listObjectsV2({...a,Bucket:xe(t),Prefix:Ee(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(Rp,"listAllObjects");async function xN(t,e){let r={};return await wt.parallelForeach(Rp(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(xN,"getAllFiles");async function hn(t,e,r=3600){let n=at({presigning:!0}),i={Bucket:xe(t),Key:Ee(e)},o=await(0,rA.getSignedUrl)(n,new Pu.GetObjectCommand(i),{expiresIn:r});if(E.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${wp}${u}${c}`}else return o}s(hn,"getPresignedUrl");async function vN(t,e){return await Zt.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=xe(t),e=Ee(e);let n=await uA(t,e),i=(0,Ye.join)(mn(),(0,Op.v4)());return r.addTags({outputPath:i}),n instanceof Lu.default.Readable?(r.addTags({stream:!0}),await(0,so.pipeline)(n,pi.default.createWriteStream(i))):(r.addTags({stream:!1}),pi.default.writeFileSync(i,n)),i})}s(vN,"retrieveToTmp");async function NN(t,e,r){return await Zt.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Ye.join)(mn(),(0,Op.v4)());await io.default.mkdir(i,{recursive:!0});let o=0;return await wt.parallelForeach(Rp(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await Zt.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let d=cA(i,l);if(!d){c.addTags({skippedUnsafePath:!0});return}let{stream:f}=await vu(t,l);pi.default.existsSync(d.dir)||await io.default.mkdir(d.dir,{recursive:!0}),await(0,so.pipeline)(f,pi.default.createWriteStream(d.path,{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(NN,"retrieveDirectory");function cA(t,e){let r=(0,Ye.resolve)(t),n=(0,Ye.resolve)(r,...e.split("/"));if(n===r||n.startsWith(`${r}${Ye.sep}`))return{dir:(0,Ye.dirname)(n),path:n}}s(cA,"getSafeRetrieveDirectoryPath");async function PN(t,e){let r=at();await oo(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(PN,"deleteFile");async function LN(t,e){let r=at();await oo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ee(i)}))}};return r.deleteObjects(n)}s(LN,"deleteFiles");async function lA(t,e){t=xe(t),e=Ee(e);let r=at(),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 lA(t,e)}s(lA,"deleteFolder");async function Cp(t,e,r){return await Zt.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=xe(t);let i=await io.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=Ee((0,Ye.join)(r,o.name)),u=(0,Ye.join)(e,o.name);o.isDirectory()?await Cp(t,u,a):await aA({bucket:t,filename:a,stream:pi.default.createReadStream(u)})}return i})}s(Cp,"uploadDirectory");async function UN(t,e,r={},{followRedirects:n=!0}={}){e=Ee(e);let i=await li(t,{headers:r},{followRedirects:n});if(!i.ok)throw new Error(`unexpected response ${i.statusText}`);await(0,so.pipeline)(i.body,Ip.default.createUnzip(),_p.default.extract(e))}s(UN,"downloadTarballDirect");async function kN(t,e,r){e=xe(e),r=Ee(r);let n=await li(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Ye.join)(mn(),r);return await(0,so.pipeline)(n.body,Ip.default.createUnzip(),_p.default.extract(i)),!E.isTest()&&E.SELF_HOSTED&&await Cp(e,i,r),i}s(kN,"downloadTarball");async function vu(t,e){return await Zt.default.trace("getReadStream",async r=>{t=xe(t),e=Ee(e),r.addTags({bucketName:t,path:e});let n=at(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof Lu.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(vu,"getReadStream");async function MN(t,e){t=xe(t),e=Ee(e);let r=at(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(MN,"getObjectMetadata");async function FN(t,e){t=xe(t),e=Ee(e);let r=at(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode||i.$metadata?.httpStatusCode)===404)return!1;throw i}}s(FN,"objectExists");function Sp(t){let e=t.split("?")[0],r=new RegExp(`^${wp}/(?<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(Sp,"extractBucketAndPath");var fA=W(require("querystring"));var dA=W(require("aws-cloudfront-sign"));var Uu;function BN(){if(!E.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Uu||(Uu=Buffer.from(E.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Uu)}s(BN,"getPrivateKey");var WN=s(()=>({keypairId:E.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:BN(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),mi=s(t=>{let e=GN(t);return dA.getSignedUrl(e,WN())},"getPresignedUrl"),GN=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${E.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function $N(t){return`${Ee(t)}/budibase-client.js`}s($N,"clientLibraryPath");function VN(t,e){return`${Ee(t)}/${e}`}s(VN,"client3rdPartyLibrary");async function qN(t,e){return`/api/assets/${t}/client?${await pA(e)}`}s(qN,"clientLibraryUrl");async function pA(t){let e,r;try{e=V()}finally{r={version:t}}return e&&e!==ce&&(r.tenantId=e),fA.default.encode(r)}s(pA,"getClientCacheKey");async function mA(t){return E.CLOUDFRONT_CDN?mi(t):await hn(E.APPS_BUCKET_NAME,t)}s(mA,"getAppFileUrl");async function KN(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await mA(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(KN,"enrichPWAImages");var QN=s(async(t,e,r)=>{let n=hA(t,e);return E.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),mi(n)):await hn(E.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),hA=s((t,e)=>{let r=`${t}/${e}`;return E.MULTI_TENANCY&&(r=`${V()}/${r}`),r},"getGlobalFileS3Key");async function jN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await HN(e),n=await YN(e);return{...e,jsUrl:r,iconUrl:n}}))}s(jN,"enrichPluginURLs");async function HN(t){let e=EA(t);return gA(e)}s(HN,"getPluginJSUrl");async function YN(t){let e=yA(t);if(e)return gA(e)}s(YN,"getPluginIconUrl");async function gA(t){return E.CLOUDFRONT_CDN?mi(t):await hn(E.PLUGIN_BUCKET_NAME,t)}s(gA,"getPluginUrl");function EA(t){return TA(t,"plugin.min.js")}s(EA,"getPluginJSKey");function yA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return TA(t,e)}s(yA,"getPluginIconKey");function TA(t,e){return`${SA(t.name)}/${e}`}s(TA,"getPluginS3Key");function SA(t){let e=`${t}`;return E.MULTI_TENANCY&&(e=`${V()}/${e}`),E.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(SA,"getPluginS3Dir");var OA="budibase.log",IA="budibase-logs-history.txt",wA=xp.default.join(mn(),"systemlogs");function AA(t){return xp.default.join(wA,t)}s(AA,"getFullPath");function RA(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(RA,"getSingleFileMaxSizeInfo");function vp(){let t=RA(E.ROLLING_LOG_MAX_SIZE);return _A.createStream(OA,{size:t?.size,path:wA,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:IA,initialRotation:!1})}s(vp,"localFileDestination");function zN(){let t=[],e=AA(IA);if(ao.default.existsSync(e)){let i=ao.default.readFileSync(e,"utf-8").split(`
37
+ `);for(let o of i.filter(a=>a))t.push(ao.default.readFileSync(o))}return t.push(ao.default.readFileSync(AA(OA))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(zN,"getLogReadStream");function JN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(JN,"isPlainObject");function XN(t){return t instanceof Error}s(XN,"isError");function ZN(t){return typeof t=="string"}s(ZN,"isMessage");var Cr;if(!E.DISABLE_PINO_LOGGER){let t=E.LOG_LEVEL,e={level:t,formatters:{level:s(c=>({level:c.toUpperCase()}),"level"),bindings:s(()=>E.SELF_HOSTED?{service:E.SERVICE_NAME}:{},"bindings")},timestamp:s(()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`,"timestamp")},r=[];r.push(E.isDev()?{stream:(0,CA.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),E.SELF_HOSTED&&r.push({stream:vp(),level:t}),Cr=r.length?(0,ku.default)(e,ku.default.multistream(r)):(0,ku.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(p=>{ZN(p)&&(f=`${f} ${p}`.trimStart()),JN(p)&&d.push(p),XN(p)&&(l=p)});let g=u(),m={};m={tenantId:i(),appId:o(),automationId:a(),identityId:g?._id,identityType:g?.type,correlationId:Tp()};let y=Pp.default.scope().active();y&&Pp.default.inject(y.context(),DA.formats.LOG,m);let h={err:l,pid:process.pid,...m};if(d.length){let p={},T=0;for(let A=0;A<d.length;A++){let _=d[A],I=_._logKey;I?(delete _._logKey,h[I]=_):(p[T]=_,T++)}Object.keys(p).length&&(h.data=p)}return[h,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Cr?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Cr?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Cr?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Cr?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Cr?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Cr?.debug(l,d)};let i=s(()=>{let c;try{c=V()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=Fe()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=Nf()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=Qt()}catch{}return c},"getIdentity")}var Mu=Cr;var eP=["AccountError"];function tP(t){return t&&t.suppressAlert}s(tP,"isSuppressed");function gn(t,e){e&&eP.includes(e.name)&&tP(e)||console.error(`bb-alert: ${t}`,e)}s(gn,"logAlert");function rP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,gn(t,n)}s(rP,"logAlertWithInfo");function hi(t,e){console.warn(`bb-warn: ${t}`,e)}s(hi,"logWarn");var Fu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},Lp=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 yt(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 Fu&&await u.discard(),gn(`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 ke.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var nP=100,Bu,co=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new yt("docWritethroughQueue",{jobOptions:{attempts:nP}})),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=De(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},kp=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await co.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function bA(){return Bu=new co().init(),Bu}s(bA,"init");function iP(){return Bu||bA()}s(iP,"getProcessor");var Gu={};P(Gu,{CacheKey:()=>Oe,TTL:()=>gi,bustCache:()=>Ei,destroy:()=>fo,get:()=>lo,increment:()=>vA,keys:()=>Wu,store:()=>yn,withCache:()=>br,withCacheWithDynamicTTL:()=>xA});function Tt(t){let e=V();return`${t}:${e}`}s(Tt,"generateTenantKey");var En=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Wf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Tt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Tt(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[Tt(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Tt(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(Tt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async increment(e,r,n={useTenancy:!0}){e=n.useTenancy?Tt(e):e;let i=await this.getClient(),o=await i.increment(e);return r&&await i.setExpiry(e,r),o}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Tt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var Dr=new En,Oe={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:s(t=>`oauth2Token_${t}`,"OAUTH2_TOKEN")},gi=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(gi||{}),Wu=s((...t)=>Dr.keys(...t),"keys"),lo=s((...t)=>Dr.get(...t),"get"),yn=s((...t)=>Dr.store(...t),"store"),fo=s((...t)=>Dr.delete(...t),"destroy"),br=s((...t)=>Dr.withCache(...t),"withCache"),xA=s((...t)=>Dr.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),Ei=s((...t)=>Dr.bustCache(...t),"bustCache"),vA=s((...t)=>Dr.increment(...t),"increment");var An={};P(An,{createCode:()=>dP,deleteCode:()=>pP,getCode:()=>fP,getExistingInvites:()=>Wp,getInviteCodes:()=>FA,updateCode:()=>lP});var xr={};P(xr,{AUTO_EXTEND_POLLING_MS:()=>PA,doWithLock:()=>Sn,newRedlock:()=>Tn});var NA=W(require("redlock"));async function sP(t,e){if(t==="custom")return Tn(e);switch(t){case"try_once":return Tn(yi.TRY_ONCE);case"try_twice":return Tn(yi.TRY_TWICE);case"default":return Tn(yi.DEFAULT);case"delay_500":return Tn(yi.DELAY_500);case"auto_extend":return Tn(yi.AUTO_EXTEND);default:throw wt.unreachable(t)}}s(sP,"getClient");var yi={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 Tn(t={}){let e={...yi.DEFAULT,...t},n=(await $f()).client;return new NA.default([n],e)}s(Tn,"newRedlock");function oP(t){let r=`lock:${t.systemLock?"system":V()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(oP,"getLockName");var PA=me.fromSeconds(10).toMs();async function Sn(t,e){let r=await sP(t.type,t.customOptions),n,i,o,a=!1;try{let u=oP(t),c=t.type==="auto_extend"?PA:t.ttl;if(n=await r.lock(u,c),t.type==="auto_extend"){let d=s(()=>{i=setTimeout(async()=>{a||(o=(async()=>{n=await n.extend(c,()=>t.onExtend&&t.onExtend())})(),await o,o=void 0,d())},c/2)},"extendInIntervals");d()}return{executed:!0,result:await e()}}catch(u){if(u.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw u}else throw u}finally{a=!0,clearTimeout(i),await o?.catch(()=>{}),await n?.unlock()}}s(Sn,"doWithLock");var UA=me.fromDays(7).toSeconds(),aP=me.fromSeconds(10).toMs(),$u="Invitation is not valid or has expired, please request a new one.";function kA(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(kA,"normaliseInviteList");function uP(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(uP,"pruneExpiredInvites");async function Bp(t){let r=await(await Gs()).get(t);return kA(r,t)}s(Bp,"loadInviteList");async function po(t,e){await(await Gs()).store(t,e)}s(po,"saveInviteList");async function mo(t,e){let{result:r}=await Sn({type:"default",name:"process_user_invite",systemLock:!0,resource:t,ttl:aP},e);return r}s(mo,"withInviteListLock");function cP(t,e){return{code:t,email:e.email,info:e.info}}s(cP,"toInviteWithCode");async function MA(t,e){let r=await Gs(),n=kA(await r.get(e),e);if(!n)throw new Error($u);if(!Object.keys(n.invites).includes(t))throw new Error($u);return{list:n,invite:n.invites[t]}}s(MA,"findInviteInList");async function lP(t,e){let r={...e.info},n=r.tenantId||V();r.tenantId=n,await mo(n,async()=>{let i=await Bp(n)||{tenantId:n,invites:{}};i.invites[t]={email:e.email,info:r,expiresAt:Date.now()+UA*1e3},await po(n,i)})}s(lP,"updateCode");async function dP(t,e){let r=X(),n={...e||{}},i=n.tenantId||V();return n.tenantId=i,await mo(i,async()=>{let o=await Bp(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+UA*1e3},await po(i,o)}),r}s(dP,"createCode");async function fP(t,e){let r=e||V();return await mo(r,async()=>{let n=await MA(t,r),{list:i,invite:o}=n;if(o.expiresAt<=Date.now())throw delete i.invites[t],await po(i.tenantId,i),new Error($u);return{email:o.email,info:o.info}})}s(fP,"getCode");async function pP(t,e){let r=e||V();try{await mo(r,async()=>{let n=await MA(t,r);delete n.list.invites[t],await po(n.list.tenantId,n.list)})}catch(n){if(n instanceof Error&&n.message===$u)return;throw n}}s(pP,"deleteCode");async function FA(){let t=V(),e=await mo(t,async()=>{let n=await Bp(t)||{tenantId:t,invites:{}},i=uP(n);return n=i.list,i.changed&&await po(t,n),n}),r=new Map;for(let[n,i]of Object.entries(e.invites))r.set(n,cP(n,i));return Array.from(r.values())}s(FA,"getInviteCodes");async function Wp(t){let e=new Set(t.map(r=>r.toLowerCase()));return(await FA()).filter(r=>e.has(r.email.toLowerCase()))}s(Wp,"getExistingInvites");var Gp={};P(Gp,{createCode:()=>hP,getCode:()=>gP,invalidateCode:()=>EP});var mP=me.fromHours(1).toSeconds();async function hP(t,e){let r=X();return await(await $s()).store(r,{userId:t,info:e},mP),r}s(hP,"createCode");async function gP(t){let r=await(await $s()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(gP,"getCode");async function EP(t){await(await $s()).delete(t)}s(EP,"invalidateCode");var nr={};P(nr,{getUser:()=>vo,getUsers:()=>ik,invalidateUser:()=>No,invalidateUsers:()=>sk});var ho={};P(ho,{getPlatformDB:()=>vr,users:()=>St});var St={};P(St,{addSsoUser:()=>WA,addUser:()=>OP,getUserDoc:()=>BA,lookupTenantId:()=>yP,removeUser:()=>IP,updateUserDoc:()=>TP});function vr(){return De(pe.PLATFORM_INFO.name)}s(vr,"getPlatformDB");async function yP(t){return E.MULTI_TENANCY?(await BA(t)).tenantId:ce}s(yP,"lookupTenantId");async function BA(t){return vr().get(t)}s(BA,"getUserDoc");async function TP(t){await vr().put(t)}s(TP,"updateUserDoc");function SP(t,e){return{_id:t,tenantId:e}}s(SP,"newUserIdDoc");function AP(t,e,r){return{_id:e,userId:t,tenantId:r}}s(AP,"newUserEmailDoc");function _P(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(_P,"newUserSsoIdDoc");async function $p(t,e){let r=vr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s($p,"addUserDoc");async function WA(t,e,r,n){return $p(t,()=>_P(t,e,r,n))}s(WA,"addSsoUser");async function OP(t,e,r,n){let i=[$p(e,()=>SP(e,t)),$p(r,()=>AP(e,r,t))];n&&i.push(WA(n,r,e,t)),await Promise.all(i)}s(OP,"addUser");async function IP(t){let e=vr(),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(IP,"removeUser");var On={};P(On,{getAccount:()=>Nr,getAccountByTenantId:()=>Ti,getStatus:()=>wP});var GA=W(require("node-fetch"));var _n=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";ro.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,GA.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 Vp=new _n(E.INTERNAL_ACCOUNT_PORTAL_URL),qp=E.SELF_HOSTED||E.DISABLE_ACCOUNT_PORTAL,Nr=s(async t=>{if(qp)return;let e={email:t},r=await Vp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),Ti=s(async t=>{if(qp)return;let e={tenantId:t},r=await Vp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),wP=s(async()=>{if(qp)return;let t=await Vp.get("/api/status",{headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var Ii={};P(Ii,{UserDB:()=>Ut,addAppBuilder:()=>ek,bulkGetGlobalUsersById:()=>lc,bulkUpdateGlobalUsers:()=>bo,cleanseUserObject:()=>pm,creatorsInList:()=>Lr,deriveUserFieldsFromInvite:()=>mm,doesUserExist:()=>Y0,getAccountHolderFromUsers:()=>cc,getAllUserIds:()=>j0,getAllUsers:()=>H0,getById:()=>Ur,getCreatorCount:()=>X0,getExistingAccounts:()=>Oi,getExistingPlatformUsers:()=>O_,getExistingTenantUsers:()=>__,getFirstPlatformUser:()=>Co,getGlobalUserByAppPage:()=>x_,getGlobalUserByEmail:()=>ut,getPlatformUsers:()=>sc,getUserCount:()=>J0,hasAdminPermissions:()=>Pr,hasAppBuilderPermissions:()=>R_,hasBuilderPermissions:()=>We,isAdmin:()=>Lt,isAdminOrBuilder:()=>w_,isAdminOrWorkspaceBuilder:()=>oc,isBuilder:()=>Ci,isCreatorAsync:()=>Do,isCreatorSync:()=>ac,isGlobalBuilder:()=>I_,paginatedUsers:()=>N_,removeAppBuilder:()=>tk,removePortalUserPermissions:()=>Z0,searchExistingEmails:()=>um,searchGlobalUsersByApp:()=>b_,searchGlobalUsersByAppAccess:()=>fm,searchGlobalUsersByEmail:()=>v_,validateUniqueUser:()=>uc});var Ju={};P(Ju,{ActiveContentFileError:()=>Ku,BadRequestError:()=>Eo,BudibaseError:()=>go,EmailUnavailableError:()=>er,FeatureDisabledError:()=>Hu,ForbiddenError:()=>Qu,HTTPError:()=>Be,NotFoundError:()=>qu,NotImplementedError:()=>ju,UnexpectedError:()=>Vu,UsageLimitError:()=>Yu,getErrorMessage:()=>$A,getPublicError:()=>zu});var go=class extends Error{static{s(this,"BudibaseError")}constructor(e,r){super(e),this.code=r}};function $A(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($A,"getErrorMessage");var zu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),Be=class t extends go{static{s(this,"HTTPError")}constructor(e,r,n="http"){super(e,n),this.status=r}static async fromResponse(e){let r=await e.text(),n=r,i=e.status,o="http";try{let a=JSON.parse(r);n=a.error?.message||a.message,i=a.status??e.status,o=a.error?.code??e.statusText}catch{}return new t(n,i,o)}},Vu=class extends Be{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},qu=class extends Be{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},Eo=class extends Be{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},Ku=class extends Eo{static{s(this,"ActiveContentFileError")}constructor(e){super(`File "${e}" contains active content which is not permitted`)}},Qu=class extends Be{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},ju=class extends Be{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},Hu=class extends Error{static{s(this,"FeatureDisabledError")}constructor(e){super(`Feature disabled: '${e}'`)}},Yu=class extends Error{static{s(this,"UsageLimitError")}constructor(e){super(`Usage limit exceeded: '${e}'`)}},er=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var Hp={};P(Hp,{PASSWORD_MAX_LENGTH:()=>Qp,PASSWORD_MIN_LENGTH:()=>Kp,validatePassword:()=>jp});var Kp=+(E.PASSWORD_MIN_LENGTH||12),Qp=+(E.PASSWORD_MAX_LENGTH||512);function jp(t){return!t||t.length<Kp?{valid:!1,error:`Password invalid. Minimum ${Kp} characters.`}:t.length>Qp?{valid:!1,error:`Password invalid. Maximum ${Qp} characters.`}:{valid:!0}}s(jp,"validatePassword");var Xu={};P(Xu,{createASession:()=>RP,endSession:()=>CP,getSession:()=>zp,getSessionsForUser:()=>yo,invalidateSessions:()=>In,updateSessionTTL:()=>Yp});var qA=require("uuid");var KA=Su();function Si(t,e){return`${t}/${e}`}s(Si,"makeSessionID");async function yo(t){return t?(await(await Ar()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(yo,"getSessionsForUser");async function In(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await yo(t)).map(a=>({key:Si(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:Si(t,o)}))),i&&i.length>0){let o=await Ar(),a=[];for(let u of i)a.push(o.delete(u.key));E.isTest()||hi(`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(In,"invalidateSessions");async function RP(t,e){let r=await yo(t),n=0;if(r.length>=3){let l=r.sort((g,m)=>new Date(g.createdAt).getTime()-new Date(m.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(g=>g.sessionId);n=f.length,await In(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await Ar(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,qA.v4)(),u=Si(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,KA),{session:c,invalidatedSessionCount:n}}s(RP,"createASession");async function Yp(t){let e=await Ar(),r=Si(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,KA)}s(Yp,"updateSessionTTL");async function CP(t,e){await(await Ar()).delete(Si(t,e))}s(CP,"endSession");async function zp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Ar()).get(Si(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(zp,"getSession");var wn={};P(wn,{account:()=>JA,action:()=>XA,ai:()=>ZA,analytics:()=>Jp,app:()=>e_,asyncEventQueue:()=>At,auditLog:()=>t_,auth:()=>ic,automation:()=>r_,backfill:()=>n_,backfillCache:()=>tc,backup:()=>i_,datasource:()=>s_,email:()=>o_,environmentVariable:()=>a_,group:()=>u_,identification:()=>_t,initAsyncEvents:()=>P0,installation:()=>Ao,layout:()=>c_,license:()=>l_,org:()=>d_,plugin:()=>f_,processors:()=>nm,publishEvent:()=>S,query:()=>p_,resource:()=>m_,role:()=>Ro,rowAction:()=>h_,rows:()=>g_,screen:()=>E_,serve:()=>y_,shutdown:()=>L0,table:()=>T_,user:()=>Ce,view:()=>S_,workspace:()=>A_});var Jp={};P(Jp,{enabled:()=>DP});var DP=s(async()=>Zu(),"enabled");var At;function ec(){At=new yt("systemEventQueue",{jobTags:s(t=>({"event.name":t.event}),"jobTags")})}s(ec,"init");async function QA(){At&&await At.close()}s(QA,"shutdown");async function jA(t){At||ec();let{event:e,identity:r}=t;mh.indexOf(e)!==-1&&r.tenantId&&await At.add(t)}s(jA,"publishAsyncEvent");var tc={};P(tc,{end:()=>xP,isAlreadySent:()=>em,isBackfillingEvent:()=>Zp,recordEvent:()=>Xp,start:()=>bP});var bP=s(async t=>NP({eventWhitelist:t}),"start"),Xp=s(async(t,e)=>{let r=tm(t,e);await yn(r,e,void 0,{useTenancy:!1})},"recordEvent"),xP=s(async()=>{await PP(),await LP()},"end"),vP=s(async()=>lo(Oe.BACKFILL_METADATA),"getBackfillMetadata"),NP=s(async t=>yn(Oe.BACKFILL_METADATA,t),"saveBackfillMetadata"),PP=s(async()=>{await fo(Oe.BACKFILL_METADATA)},"deleteBackfillMetadata"),LP=s(async()=>{let t=tm(),e=await Wu(t);for(let r of e)await fo(r,{useTenancy:!1})},"clearEvents"),Zp=s(async t=>{let r=(await vP())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),em=s(async(t,e)=>{let r=tm(t,e);return!!await lo(r,{useTenancy:!1})},"isAlreadySent"),UP={"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}`},tm=s((t,e)=>{let r,n=V();if(t){r=`${Oe.EVENTS}:${n}:${t}`;let i=UP[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${Oe.EVENTS}:${n}:*`;return r},"getEventKey");var nm={};P(nm,{init:()=>WP,processors:()=>rr});var rm=E.SELF_HOSTED&&!E.isDev(),To=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){rm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){rm||console.log("[audit] identified",e)}async identifyGroup(e){rm||console.log("[audit] group identified",e)}async shutdown(){}};var Ai=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new yt("auditLogQueue",{jobTags:s(n=>({"event.name":n.event}),"jobTags")}),t.auditLogQueue.process(async n=>{await be(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};E.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&&sp(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:Fe(),hostInfo:r.hostInfo},tenantId:V()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var HA=require("uuid");var kP=new _n(E.INTERNAL_ACCOUNT_PORTAL_URL),_i=class t{static{s(this,"EventBrokerProcessor")}static init(e){t.getLicenseKeyFn=e}async processEvent(e,r,n,i){if(E.DISABLE_ACCOUNT_PORTAL)return;let o;if(E.SELF_HOSTED){if(!t.getLicenseKeyFn)return;let c=await t.getLicenseKeyFn();if(!c)return;o={"x-budibase-license-key":c}}else o={"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY},r.tenantId&&(o["x-budibase-tenant-id"]=r.tenantId);let a=Fe(),u={id:(0,HA.v4)(),type:e,identity:r,properties:{...n,version:E.VERSION,service:E.SERVICE,environment:r.environment,hosting:r.hosting,...a&&{appId:a},...r.installationId&&{installationId:r.installationId},...r.tenantId&&{tenantId:r.tenantId}},timestamp:i===void 0?Date.now():new Date(i).getTime()};try{let c=await kP.post("/api/v2/analytics/event",{headers:o,body:u});c.ok||console.warn(`[EventBrokerProcessor] unexpected response status: ${c.status}`)}catch(c){console.error(`[EventBrokerProcessor] failed to send event: ${c}`)}}};var So=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 MP=new To,FP=new Ai,BP=new _i;function WP(t,e){return _i.init(e),Ai.init(t)}s(WP,"init");var rr=new So([MP,FP,BP]);var rc={};P(rc,{checkInstallVersion:()=>VP,getInstall:()=>_o,getInstallFromDB:()=>sm});var im=W(require("semver"));var _o=s(async()=>br(Oe.INSTALLATION,86400,sm,{useTenancy:!1}),"getInstall");async function GP(t){let e={_id:pe.PLATFORM_INFO.docs.install,installId:X(),version:E.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return sm();throw r}}s(GP,"createInstallDoc");var sm=s(async()=>je(pe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(pe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await GP(t);else throw r}return e}),"getInstallFromDB"),$P=s(async t=>{try{await je(pe.PLATFORM_INFO.name,async e=>{let r=await _o();r.version=t,await e.put(r),await Ei(Oe.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),VP=s(async()=>{let t=await _o(),e=t.version,r=E.VERSION;try{if(e!==r){let n=im.default.gt(r,e),i=im.default.lt(r,e);await $P(r)&&(await Us({_id:t.installId,type:"installation"},async()=>{n?await Ao.upgraded(e,r):i&&await Ao.downgraded(e,r)}),await _t.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?gn(`Invalid version "${r}" - is it semver?`):gn("Failed to retrieve version",n)}},"checkInstallVersion");var qP=s(async()=>{let t=mf(),e=wo(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await Rn(),i=Oo();return{id:YA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await Rn(),i=await nc(V()),o=Oo();return{id:YA(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:V(),environment:e}}else if(r==="user"){let n=t,i=await nc(V()),o=await Rn(),a=n.account,u;return a?u=a.hosting:u=Oo(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:V(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),KP=s(async(t,e)=>{let r=t,n="installation",i=Oo(),o=E.VERSION,a=wo(),u={id:r,type:n,hosting:i,version:o,environment:a};await om(u,e),await Io({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),QP=s(async(t,e,r,n=E.VERSION)=>{let i=await nc(t),o="tenant",a=await Rn(),u=wo(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await om(c,r),await Io({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),jP=s(async(t,e,r)=>{let n=t._id,i=await nc(t.tenantId),o="user",a=We(t),u=Pr(t),c;vn(t)&&(c=t.providerType);let d=(await Oi([t.email])).length>0,f=!!e&&d&&e.verified,g=await Rn(),m=e?e.hosting:Oo(),y=wo();await Io({id:n,type:o,hosting:m,installationId:g,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:y},r)},"identifyUser"),HP=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ho(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await Rn(),l=wo();if(jo(t)){let f=await ut(t.email);f?._id&&(e=f._id)}await Io({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),Io=s(async(t,e)=>{await rr.identify(t,e)},"identify"),om=s(async(t,e)=>{await rr.identifyGroup(t,e)},"identifyGroup"),wo=s(()=>E.isDev()?"development":E.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),Oo=s(()=>E.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),Rn=s(async()=>YP()?"account-portal":(await _o()).installId,"getInstallationId"),nc=s(async t=>E.SELF_HOSTED?zA(t):t,"getEventTenantId"),zA=s(async t=>be(t,()=>br(Oe.UNIQUE_TENANT_ID,86400,async()=>{let e=z(),r=await wi(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${X()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=E.VERSION,await e.put(r),n)})),"getUniqueTenantId"),YP=s(()=>E.SERVICE==="account-portal","isAccountPortal"),YA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),_t={getCurrentIdentity:qP,identifyInstallationGroup:KP,identifyTenantGroup:QP,identifyUser:jP,identifyAccount:HP,identify:Io,identifyGroup:om,getInstallationId:Rn,getUniqueTenantId:zA};var S=s(async(t,e,r,n)=>{let i=n||await _t.getCurrentIdentity();if(!(n?!1:await Zp(t))){await jA({event:t,identity:i,properties:e,timestamp:r}),await rr.processEvent(t,i,e,r);return}await em(t,e)||(await rr.processEvent(t,i,e,r),await Xp(t,e))},"publishEvent");async function zP(t,e){let r={tenantId:t.tenantId};await S("account:created",r,void 0,e)}s(zP,"created");async function JP(t){let e={tenantId:t.tenantId};await S("account:deleted",e)}s(JP,"deleted");async function XP(t){let e={tenantId:t.tenantId};await S("account:verified",e)}s(XP,"verified");var JA={created:zP,deleted:JP,verified:XP};function ZP(t,e){S("action:automation_step:executed",t,e).catch(r=>{console.error("automationStepExecuted telemetry failed",{action:t,err:r})})}s(ZP,"automationStepExecuted");function eL(t){S("action:automation_step:failed",t).catch(e=>{console.error("automationStepFailed telemetry failed",{action:t,err:e})})}s(eL,"automationStepFailed");function tL(t,e){S("action:crud:executed",t,e).catch(r=>{console.error("crudExecuted telemetry failed",{action:t,err:r})})}s(tL,"crudExecuted");function rL(t){S("action:crud:failed",t).catch(e=>{console.error("crudFailed telemetry failed",{action:t,err:e})})}s(rL,"crudFailed");function nL(t,e){S("action:ai_agent:executed",t,e).catch(r=>{console.error("aiAgentExecuted telemetry failed",{action:t,err:r})})}s(nL,"aiAgentExecuted");function iL(t){S("action:ai_agent:failed",t).catch(e=>{console.error("aiAgentFailed telemetry failed",{action:t,err:e})})}s(iL,"aiAgentFailed");var XA={aiAgentExecuted:nL,aiAgentFailed:iL,automationStepExecuted:ZP,automationStepFailed:eL,crudExecuted:tL,crudFailed:rL};function sL(t,e){let r={configId:t._id,audited:{name:t.name}};S("ai:config:created",r,e).catch(n=>{console.error("configCreated telemetry failed",{configId:t._id,err:n})})}s(sL,"configCreated");function oL(t){let e={configId:t._id,audited:{name:t.name}};S("ai:config:updated",e).catch(r=>{console.error("configUpdated telemetry failed",{configId:t._id,err:r})})}s(oL,"configUpdated");function aL(t){let e={configId:t._id,audited:{name:t.name}};S("ai:config:deleted",e).catch(r=>{console.error("configDeleted telemetry failed",{configId:t._id,err:r})})}s(aL,"configDeleted");function uL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:created",e).catch(r=>{console.error("agentCreated telemetry failed",{agentId:t._id,err:r})})}s(uL,"agentCreated");function cL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:updated",e).catch(r=>{console.error("agentUpdated telemetry failed",{agentId:t._id,err:r})})}s(cL,"agentUpdated");function lL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:deleted",e).catch(r=>{console.error("agentDeleted telemetry failed",{agentId:t._id,err:r})})}s(lL,"agentDeleted");function dL(t){S("rag:file:uploaded",t).catch(e=>{console.error("ragFileUploaded telemetry failed",{event:t,err:e})})}s(dL,"ragFileUploaded");function fL(t){S("rag:file:deleted",t).catch(e=>{console.error("ragFileDeleted telemetry failed",{event:t,err:e})})}s(fL,"ragFileDeleted");function pL(t){S("rag:file:sharepoint:connected",t).catch(e=>{console.error("ragFileSharePointConnected telemetry failed",{event:t,err:e})})}s(pL,"ragFileSharePointConnected");function mL(t){S("rag:file:sharepoint:disconnected",t).catch(e=>{console.error("ragFileSharePointDisconnected telemetry failed",{event:t,err:e})})}s(mL,"ragFileSharePointDisconnected");function hL(t){S("rag:file:processed",t).catch(e=>{console.error("ragFileProcessed telemetry failed",{event:t,err:e})})}s(hL,"ragFileProcessed");function gL(t){S("rag:file:sharepoint:sync",t).catch(e=>{console.error("ragFileSharePointSync telemetry failed",{event:t,err:e})})}s(gL,"ragFileSharePointSync");var ZA={configCreated:sL,configUpdated:oL,configDeleted:aL,agentCreated:uL,agentUpdated:cL,agentDeleted:lL,ragFileUploaded:dL,ragFileDeleted:fL,ragFileSharePointConnected:pL,ragFileSharePointDisconnected:mL,ragFileSharePointSync:gL,ragFileProcessed:hL};var EL=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await S("app:created",r,e)},"created");async function yL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await S("app:updated",e)}s(yL,"updated");async function TL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:deleted",e)}s(TL,"deleted");async function SL(t,e){let r={appId:t.appId,audited:{name:t.name}};await S("app:published",r,e)}s(SL,"published");async function AL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:unpublished",e)}s(AL,"unpublished");async function _L(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:file:imported",e)}s(_L,"fileImported");async function OL(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await S("app:duplicated",r)}s(OL,"duplicated");async function IL(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await S("app:template:imported",r)}s(IL,"templateImported");async function wL(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await S("app:version:updated",n)}s(wL,"versionUpdated");async function RL(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await S("app:version:reverted",n)}s(RL,"versionReverted");async function CL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:reverted",e)}s(CL,"reverted");async function DL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:exported",e)}s(DL,"exported");var e_={created:EL,updated:yL,deleted:TL,published:SL,unpublished:AL,fileImported:_L,duplicated:OL,templateImported:IL,versionUpdated:wL,versionReverted:RL,reverted:CL,exported:DL};async function bL(t){let e={filters:t};await S("audit_log:filtered",e)}s(bL,"filtered");async function xL(t){let e={filters:t};await S("audit_log:downloaded",e)}s(xL,"downloaded");var t_={filtered:bL,downloaded:xL};async function vL(t,e){let n={userId:(await _t.getCurrentIdentity()).id,source:t,audited:{email:e}};await S("auth:login",n)}s(vL,"login");async function NL(t){let r={userId:(await _t.getCurrentIdentity()).id,audited:{email:t}};await S("auth:logout",r)}s(NL,"logout");async function PL(t,e){let r={type:t};await S("auth:sso:created",r,e)}s(PL,"SSOCreated");async function LL(t){let e={type:t};await S("auth:sso:updated",e)}s(LL,"SSOUpdated");async function UL(t,e){let r={type:t};await S("auth:sso:activated",r,e)}s(UL,"SSOActivated");async function kL(t){let e={type:t};await S("auth:sso:deactivated",e)}s(kL,"SSODeactivated");var ic={login:vL,logout:NL,SSOCreated:PL,SSOUpdated:LL,SSOActivated:UL,SSODeactivated:kL};async function ML(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 S("automation:created",r,e)}s(ML,"created");async function FL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await S("automation:trigger:updated",e)}s(FL,"triggerUpdated");async function BL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await S("automation:deleted",e)}s(BL,"deleted");async function WL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await S("automation:tested",e)}s(WL,"tested");var GL=s(async(t,e)=>{let r={count:t};await S("automations:run",r,e)},"run");async function $L(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 S("automation:step:created",n,r)}s($L,"stepCreated");async function VL(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 S("automation:step:deleted",r)}s(VL,"stepDeleted");var r_={created:ML,triggerUpdated:FL,deleted:BL,tested:WL,run:GL,stepCreated:$L,stepDeleted:VL};var Ri=!E.SELF_HOSTED&&!E.isDev();async function qL(t){Ri||await S("app:backfill:succeeded",t)}s(qL,"appSucceeded");async function KL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("app:backfill:failed",e)}s(KL,"appFailed");async function QL(t){Ri||await S("tenant:backfill:succeeded",t)}s(QL,"tenantSucceeded");async function jL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("tenant:backfill:failed",e)}s(jL,"tenantFailed");async function HL(){if(Ri)return;let t={};await S("installation:backfill:succeeded",t)}s(HL,"installationSucceeded");async function YL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("installation:backfill:failed",e)}s(YL,"installationFailed");var n_={appSucceeded:qL,appFailed:KL,tenantSucceeded:QL,tenantFailed:jL,installationSucceeded:HL,installationFailed:YL};async function zL(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await S("app:backup:restored",e)}s(zL,"workspaceBackupRestored");async function JL(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await S("app:backup:triggered",o)}s(JL,"workspaceBackupTriggered");var i_={workspaceBackupRestored:zL,workspaceBackupTriggered:JL};function am(t){return!Object.values(Vo).includes(t.source)}s(am,"isCustom");async function XL(t,e){let r={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:created",r,e)}s(XL,"created");async function ZL(t){let e={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:updated",e)}s(ZL,"updated");async function eU(t){let e={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:deleted",e)}s(eU,"deleted");var s_={created:XL,updated:ZL,deleted:eU};async function tU(t){let e={};await S("email:smtp:created",e,t)}s(tU,"SMTPCreated");async function rU(){let t={};await S("email:smtp:updated",t)}s(rU,"SMTPUpdated");var o_={SMTPCreated:tU,SMTPUpdated:rU};async function nU(t,e){let r={name:t,environments:e};await S("environment_variable:created",r)}s(nU,"created");async function iU(t){let e={name:t};await S("environment_variable:deleted",e)}s(iU,"deleted");async function sU(t){let e={userId:t};await S("environment_variable:upgrade_panel_opened",e)}s(sU,"upgradePanelOpened");var a_={created:nU,deleted:iU,upgradePanelOpened:sU};async function oU(t,e){let r={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:created",r,e)}s(oU,"created");async function aU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:updated",e)}s(aU,"updated");async function uU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:deleted",e)}s(uU,"deleted");async function cU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await S("user_group:user_added",n)}s(cU,"usersAdded");async function lU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await S("user_group:users_deleted",n)}s(lU,"usersDeleted");async function dU(t){let e={groupId:t,onboarding:!0};await S("user_group:onboarding_added",e)}s(dU,"createdOnboarding");async function fU(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await S("user_group:permissions_edited",e)}s(fU,"permissionsEdited");var u_={created:oU,updated:aU,deleted:uU,usersAdded:cU,usersDeleted:lU,createdOnboarding:dU,permissionsEdited:fU};async function pU(t){let e={currentVersion:t};await S("installation:version:checked",e)}s(pU,"versionChecked");async function mU(t,e){let r={from:t,to:e};await S("installation:version:upgraded",r)}s(mU,"upgraded");async function hU(t,e){let r={from:t,to:e};await S("installation:version:downgraded",r)}s(hU,"downgraded");async function gU(){let t={};await S("installation:firstStartup",t)}s(gU,"firstStartup");var Ao={versionChecked:pU,upgraded:mU,downgraded:hU,firstStartup:gU};async function EU(t,e){let r={layoutId:t._id};await S("layout:created",r,e)}s(EU,"created");async function yU(t){let e={layoutId:t};await S("layout:deleted",e)}s(yU,"deleted");var c_={created:EU,deleted:yU};async function TU(t,e){let r={accountId:t.accountId,...e};await S("license:plan:changed",r)}s(TU,"planChanged");async function SU(t){let e={accountId:t.accountId};await S("license:activated",e)}s(SU,"activated");async function AU(t){let e={accountId:t.accountId};await S("license:checkout:opened",e)}s(AU,"checkoutOpened");async function _U(t){let e={accountId:t.accountId};await S("license:checkout:success",e)}s(_U,"checkoutSuccess");async function OU(t){let e={accountId:t.accountId};await S("license:portal:opened",e)}s(OU,"portalOpened");async function IU(t){let e={accountId:t.accountId};await S("license:payment:failed",e)}s(IU,"paymentFailed");async function wU(t){let e={accountId:t.accountId};await S("license:payment:recovered",e)}s(wU,"paymentRecovered");var l_={planChanged:TU,activated:SU,checkoutOpened:AU,checkoutSuccess:_U,portalOpened:OU,paymentFailed:IU,paymentRecovered:wU};async function RU(t){let e={};await S("org:info:name:updated",e,t)}s(RU,"nameUpdated");async function CU(t){let e={};await S("org:info:logo:updated",e,t)}s(CU,"logoUpdated");async function DU(t){let e={};await S("org:platformurl:updated",e,t)}s(DU,"platformURLUpdated");async function bU(){let t={};await S("analytics:opt:out",t)}s(bU,"analyticsOptOut");async function xU(){let t={};await S("analytics:opt:out",t)}s(xU,"analyticsOptIn");var d_={nameUpdated:RU,logoUpdated:CU,platformURLUpdated:DU,analyticsOptOut:bU,analyticsOptIn:xU};async function vU(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await S("plugin:init",e)}s(vU,"init");async function NU(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await S("plugin:imported",e)}s(NU,"imported");async function PU(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await S("plugin:deleted",e)}s(PU,"deleted");var f_={init:vU,imported:NU,deleted:PU};var LU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await S("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 S("query:updated",r)},"updated"),kU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await S("query:deleted",n)},"deleted"),MU=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await S("query:import",n)},"imported"),FU=s(async(t,e)=>{let r={count:t};await S("queries:run",r,e)},"run"),BU=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await S("query:previewed",r)},"previewed"),p_={created:LU,updated:UU,deleted:kU,imported:MU,run:FU,previewed:BU};async function WU({resource:t,fromWorkspace:e,toWorkspace:r},n){let i={resource:t,fromWorkspace:e,toWorkspace:r};await S("resource:copied_to_workspace",i,n)}s(WU,"duplicatedToWorkspace");var m_={duplicatedToWorkspace:WU};async function GU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:created",r,e)}s(GU,"created");async function $U(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:updated",e)}s($U,"updated");async function VU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:deleted",e)}s(VU,"deleted");async function qU(t,e,r){let n={userId:t._id,roleId:e};await S("role:assigned",n,r)}s(qU,"assigned");async function KU(t,e){let r={userId:t._id,roleId:e};await S("role:unassigned",r)}s(KU,"unassigned");var Ro={created:GU,updated:$U,deleted:VU,assigned:qU,unassigned:KU};async function QU(t,e){await S("row_action:created",t,e)}s(QU,"created");var h_={created:QU};var jU=s(async(t,e)=>{let r={count:t};await S("rows:created",r,e)},"created"),HU=s(async(t,e)=>{let r={tableId:t._id,count:e};await S("rows:imported",r)},"imported"),g_={created:jU,imported:HU};async function YU(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await S("screen:created",r,e)}s(YU,"created");async function zU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await S("screen:deleted",e)}s(zU,"deleted");var E_={created:YU,deleted:zU};async function JU(t){let e={timezone:t};await S("served:builder",e)}s(JU,"servedBuilder");async function XU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await S("served:app",n)}s(XU,"servedApp");async function ZU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await S("served:app:preview",r)}s(ZU,"servedAppPreview");var y_={servedBuilder:JU,servedApp:XU,servedAppPreview:ZU};async function e0(t,e){let r={tableId:t._id,audited:{name:t.name}};await S("table:created",r,e)}s(e0,"created");async function t0(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 S("table:updated",i)}s(t0,"updated");async function r0(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await S("table:deleted",r)}s(r0,"deleted");async function n0(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await S("table:exported",r)}s(n0,"exported");async function i0(t){let e={tableId:t._id,audited:{name:t.name}};await S("table:imported",e)}s(i0,"imported");var T_={created:e0,updated:t0,deleted:r0,exported:n0,imported:i0};async function s0(t,e){let r={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:created",r,e)}s(s0,"created");async function o0(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:updated",e)}s(o0,"updated");async function a0(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:deleted",e)}s(a0,"deleted");async function u0(t,e){let r={userId:t._id,audited:{email:t.email}};await S("user:admin:assigned",r,e)}s(u0,"permissionAdminAssigned");async function c0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:admin:removed",e)}s(c0,"permissionAdminRemoved");async function l0(t,e){let r={userId:t._id,audited:{email:t.email}};await S("user:builder:assigned",r,e)}s(l0,"permissionBuilderAssigned");async function d0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:builder:removed",e)}s(d0,"permissionBuilderRemoved");async function f0(t){let e={audited:{email:t}};await S("user:invited",e)}s(f0,"invited");async function p0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:invite:accepted",e)}s(p0,"inviteAccepted");async function m0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:force:reset",e)}s(m0,"passwordForceReset");async function h0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:updated",e)}s(h0,"passwordUpdated");async function g0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:reset:requested",e)}s(g0,"passwordResetRequested");async function E0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:reset",e)}s(E0,"passwordReset");async function y0(t){let e={users:t};await S("user:data:collaboration",e)}s(y0,"dataCollaboration");var Ce={created:s0,updated:o0,deleted:a0,permissionAdminAssigned:u0,permissionAdminRemoved:c0,permissionBuilderAssigned:l0,permissionBuilderRemoved:d0,invited:f0,inviteAccepted:p0,passwordForceReset:m0,passwordUpdated:h0,passwordResetRequested:g0,passwordReset:E0,dataCollaboration:y0};async function T0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await S("view:created",r,e)}s(T0,"created");async function S0(t){let e={tableId:t.tableId};await S("view:updated",e)}s(S0,"updated");async function A0(t,e){let r={...ke.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await S("view:deleted",r)}s(A0,"deleted");async function _0(t,e){let r={tableId:t._id,format:e};await S("view:exported",r)}s(_0,"exported");async function O0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await S("view:filter:created",n,r)}s(O0,"filterCreated");async function I0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await S("view:filter:updated",r)}s(I0,"filterUpdated");async function w0(t){let e={tableId:t.tableId};await S("view:filter:deleted",e)}s(w0,"filterDeleted");async function R0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await S("view:calculation:created",n,r)}s(R0,"calculationCreated");async function C0(t){let e={tableId:t.tableId,calculation:t.calculation};await S("view:calculation:updated",e)}s(C0,"calculationUpdated");async function D0(t){let e={tableId:t.tableId,calculation:t.calculation};await S("view:calculation:deleted",e)}s(D0,"calculationDeleted");async function b0(t,e){let r={tableId:t};await S("view:join:created",r,e)}s(b0,"viewJoinCreated");var S_={created:T0,updated:S0,deleted:A0,exported:_0,filterCreated:O0,filterUpdated:I0,filterDeleted:w0,calculationCreated:R0,calculationUpdated:C0,calculationDeleted:D0,viewJoinCreated:b0};async function x0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:created",r).catch(n=>{console.error("appCreated telemetry failed",{workspaceAppId:t._id,err:n})})}s(x0,"appCreated");async function v0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:updated",r).catch(n=>{console.error("appUpdated telemetry failed",{workspaceAppId:t._id,err:n})})}s(v0,"appUpdated");async function N0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:deleted",r).catch(n=>{console.error("appDeleted telemetry failed",{workspaceAppId:t._id,err:n})})}s(N0,"appDeleted");var A_={appCreated:x0,appUpdated:v0,appDeleted:N0};function P0(){}s(P0,"initAsyncEvents");var L0=s(async()=>{await rr.shutdown(),console.log("Events shutdown")},"shutdown");var cm={};P(cm,{creatorsInList:()=>Lr,getAccountHolderFromUsers:()=>cc,hasAdminPermissions:()=>Pr,hasAppBuilderPermissions:()=>R_,hasBuilderPermissions:()=>We,isAdmin:()=>Lt,isAdminOrBuilder:()=>w_,isAdminOrWorkspaceBuilder:()=>oc,isBuilder:()=>Ci,isCreatorAsync:()=>Do,isCreatorSync:()=>ac,isGlobalBuilder:()=>I_,validateUniqueUser:()=>uc});async function um(t){let e=[],r=await __(t);e.push(...r.map(a=>a.email));let n=await O_(t);e.push(...n.map(a=>a._id));let i=await Oi(t);e.push(...i.map(a=>a.email));let o=await Wp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(um,"searchExistingEmails");async function sc(t){return await js("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(sc,"getPlatformUsers");async function Co(t){return(await sc(t))[0]??null}s(Co,"getFirstPlatformUser");async function __(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await Ht("by_email2",r,void 0,n)}s(__,"getExistingTenantUsers");async function O_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await js("platform_users_lowercase_2",r)}s(O_,"getExistingPlatformUsers");async function Oi(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await js("account_by_email",r)}s(Oi,"getExistingAccounts");var Ci=Me.users.isBuilder,Lt=Me.users.isAdmin,I_=Me.users.isGlobalBuilder,w_=Me.users.isAdminOrBuilder,Pr=Me.users.hasAdminPermissions,We=Me.users.hasBuilderPermissions,R_=Me.users.hasAppBuilderPermissions,oc=Me.users.isAdminOrWorkspaceBuilder;async function Lr(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await z().getMultiple(r,{allowMissing:!0}),t.map(i=>ac(i,e))}s(Lr,"creatorsInList");async function Do(t){let e=[];return t.userGroups&&(e=await z().getMultiple(t.userGroups)),ac(t,e)}s(Do,"isCreatorAsync");function ac(t,e){let r=Me.users.isCreator(t);return!r&&t?U0(t,e):r}s(ac,"isCreatorSync");function U0(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(U0,"isCreatorByGroupMembership");async function uc(t,e){if(E.MULTI_TENANCY){let r=await Co(t);if(r!=null&&r.tenantId!==e)throw new er(t)}if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let r=await Nr(t);if(r&&r.verified&&r.tenantId!==e)throw new er(t)}}s(uc,"validateUniqueUser");async function cc(t){if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let e=await Oi(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(cc,"getAccountHolderFromUsers");var lm=s(async t=>{await Ce.deleted(t),We(t)&&await Ce.permissionBuilderRemoved(t),Pr(t)&&await Ce.permissionAdminRemoved(t)},"handleDeleteEvents"),k0=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ro.assigned(t,i)},"assignAppRoleEvents"),M0=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ro.unassigned(t,i)},"unassignAppRoleEvents"),F0=s(async(t,e)=>{let r=t.roles,n=e?.roles;await k0(t,r,n),await M0(t,r,n)},"handleAppRoleEvents"),dm=s(async(t,e,r)=>{let n=r;!n&&!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL&&(n=await Ti(V())),await _t.identifyUser(t,n),e?(await Ce.updated(t),W0(t,e)&&await Ce.permissionBuilderRemoved(t),$0(t,e)&&await Ce.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Ce.passwordForceReset(t),t.password!==e.password&&await Ce.passwordUpdated(t)):await Ce.created(t),B0(t,e)&&await Ce.permissionBuilderAssigned(t),G0(t,e)&&await Ce.permissionAdminAssigned(t),await F0(t,e)},"handleSaveEvents"),B0=s((t,e)=>C_(t,e,We),"isAddingBuilder"),W0=s((t,e)=>D_(t,e,We),"isRemovingBuilder"),G0=s((t,e)=>C_(t,e,Pr),"isAddingAdmin"),$0=s((t,e)=>D_(t,e,Pr),"isRemovingAdmin"),C_=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),D_=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var K0=s(async t=>{let e=t._id;await St.removeUser(t),await lm(t),await nr.invalidateUser(e),await In(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),Ut=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 E.ENABLE_SSO_MAINTENANCE_MODE&&Lt(e)?!1:await t.features.isSSOEnforced()||vn(e)?!0:(r||(r=await Ti(V())),!!(r&&r.email===e.email&&Ho(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 Be("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=jp(a);if(!f.valid)throw new Be(f.error,400)}c=r.hashPassword?await df(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||ai();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 z().allDocs(fn(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 Hs("by_app",ui(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await fm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return ut(e)}static async getUser(e){let r=await Ur(e);return r&&delete r.password,r}static async bulkGet(e){return await lc(e)}static async bulkUpdate(e){let r=await bo(e);return await nr.invalidateUsers(e.map(n=>n._id)),r}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=V(),i=z(),{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 Ur(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!l&&o&&(l=await ut(o),l&&l._id!==a))throw new er(o);let d=!l,f=!!l&&!!o&&l.email!==o,g=!r.isAccountHolder&&!!o&&(d||f),m=[...u];if(d&&m.length===0){let p=await t.groups.getDefaultGroup?.();p?._id&&(m=[p._id])}let y=1,h=0;if((r.isAccountHolder||l)&&(y=0,h=1),l){let[p,T]=await Lr([l,e]);h=p!==T?1:0}else if(!r.isAccountHolder){let p=m.length>0?{...e,userGroups:m}:e;h=(await Lr([p]))[0]?1:0}return t.quotas.addUsers(y,h,async()=>{g&&await uc(o,n);let p=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(p=pm(p,l)),!l&&c?.length&&(p.roles={...c});let T=[];if(d){m.length>0&&(p.userGroups=m);for(let A of m)T.push(t.groups.addUsers(A,[p._id]))}try{let A=await i.put(p);return p._rev=A.rev,await dm(p,l),l&&p.email!==l.email&&await St.removeUser({email:l.email}),await St.addUser(n,p._id,p.email,p.ssoId),await nr.invalidateUser(A.id),await Promise.all(T),i.get(p._id)}catch(A){throw A.status===409?"User exists already":A}})}static async bulkCreate(e,r){let n=V(),i=[],o=[],a=[],u=e.map(y=>y.email),c=await um(u),l=[],d=!!r?.length,f=d?[...r]:[];if(!d){let y=await t.groups.getDefaultGroup?.();y?._id&&(f=[y._id])}for(let y of e){let h=o.find(T=>T.email.toLowerCase()===y.email.toLowerCase()),p=c.includes(y.email.toLowerCase());if(h||p){l.push({email:y.email,reason:"Unavailable"});continue}y.userGroups=[...f],o.push(y),await Do(y)&&a.push(y)}let g=await Ti(n),m=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let p of o)m&&delete p.password,i.push(t.buildUser(p,{hashPassword:!0,requirePassword:!m},n,void 0,g));let y=await Promise.all(i);await bo(y);for(let p of y)await St.addUser(n,p._id,p.email),await dm(p,void 0,g);let h=y.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(h)&&f.length){let p=[],T=h.map(A=>A._id);for(let A of f)p.push(t.groups.addUsers(A,T));await Promise.all(p)}return{successful:h,unsuccessful:l}})}static async bulkDelete(e){let r=z(),n={successful:[],unsuccessful:[]},i=await cc(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),u=a.map(m=>({...m,_deleted:!0})),c=await bo(u),d=(await Lr(a)).filter(m=>m).length,f=[];for(let m of a){let h=(await Co(m._id)).ssoId;h&&(await sc(h)).filter(T=>T.ssoId==null).forEach(T=>{f.push({...T,_deleted:!0})}),await K0(m)}await vr().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let g={};return a.reduce((m,y)=>(m[y._id]=y,m),g),c.forEach(m=>{let y=g[m.id].email;m.ok?n.successful.push({_id:m.id,email:y}):n.unsuccessful.push({_id:m.id,email:y,reason:"Database error"})}),n}static async destroy(e){let r=z(),n=await r.get(e),i=n._id;if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Nr(a))throw n.userId===Qt()._id?new Be('Please visit "Account" to delete this user',400):new Be("Account holder cannot be deleted",400)}await St.removeUser(n),await r.remove(i,n._rev);let o=await Do(n)?1:0;await t.quotas.removeUsers(1,o),await lm(n),await nr.invalidateUser(i),await In(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 Ei(Oe.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 xo(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(xo,"removeUserPassword");async function lc(t,e){let n=(await z().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=xo(n)),n}s(lc,"bulkGetGlobalUsersById");async function j0(){let t=z(),e=`us${"_"}`;return(await t.allDocs({startkey:e,endkey:`${e}${"\uFFF0"}`})).rows.map(n=>n.id)}s(j0,"getAllUserIds");async function H0(){let t=z(),e=`us${"_"}`;return(await t.allDocs({startkey:e,endkey:`${e}${"\uFFF0"}`,include_docs:!0})).rows.map(n=>n.doc)}s(H0,"getAllUsers");async function bo(t){return await z().bulkDocs(t)}s(bo,"bulkUpdateGlobalUsers");async function Ur(t,e){let n=await z().get(t);return e?.cleanup&&(n=xo(n)),n}s(Ur,"getById");async function ut(t,e){if(t==null)throw"Must supply an email address to view";let r=await Ht("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=xo(n)),n}s(ut,"getGlobalUserByEmail");async function Y0(t){try{let e=await ut(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(Y0,"doesUserExist");async function b_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ui(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await Ht("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=xo(o)),o}s(b_,"searchGlobalUsersByApp");async function fm(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 z().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(fm,"searchGlobalUsersByAppAccess");function x_(t,e){if(e)return Eu(He(t),e._id)}s(x_,"getGlobalUserByAppPage");async function v_(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 Ht("by_email2",{...e,startkey:i,endkey:`${n}${"\uFFF0"}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=xo(a)),a}s(v_,"searchGlobalUsersByEmail");var z0=8;async function N_({bookmark:t,query:e,appId:r,limit:n}={}){let i=z(),o=n??z0,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await Ur(e.equal._id)]:r?(c=await b_(r,u),d=s(f=>x_(r,f),"getKey")):e?.string?.email?(c=await v_(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await lc(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(fn(null,{...u,limit:void 0}))).rows.map(g=>g.doc),c=Er.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(fn(null,u))).rows.map(g=>g.doc),Yf(c,o,{paginate:!0,property:l,getKey:d})}s(N_,"paginatedUsers");async function J0(){return(await Hs("by_email2",{limit:0,include_docs:!1})).total_rows}s(J0,"getUserCount");async function X0(){let t=0;async function e(r){let n=await N_({bookmark:r}),i=await Lr(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(X0,"getCreatorCount");function Z0(t){return delete t.admin,delete t.builder,t}s(Z0,"removePortalUserPermissions");function pm(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(pm,"cleanseUserObject");async function ek(t,e){let r=He(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ut.save(t,{hashPassword:!1})}s(ek,"addAppBuilder");async function tk(t,e){let r=He(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ut.save(t,{hashPassword:!1})}s(tk,"removeAppBuilder");function mm(t){let e=t.apps||{},r=Object.keys(e).filter(u=>e[u]==="CREATOR"),n=[...t.builder?.apps||[],...r],i=[...new Set(n)],o=!!t.builder?.creator||r.length>0,a={roles:e,admin:{global:t.admin?.global||!1}};return(t.builder||o||i.length)&&(a.builder={global:t.builder?.global||!1},o&&(a.builder.creator=!0),i.length&&(a.builder.apps=i)),t.userGroups?.length&&(a.userGroups=t.userGroups),a}s(mm,"deriveUserFieldsFromInvite");var P_=3600;async function rk(t,e){let n=await ep(e).get(t);if(n.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let i=await Nr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(rk,"populateFromDB");async function nk(t){let e=await Ut.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,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let o=await Nr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(nk,"populateUsersFromDB");async function vo({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=rk),!e)try{e=V()}catch{e=await St.lookupTenantId(t)}let i=await oi(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,P_)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Me.users.isGlobalBuilder(o)&&await be(e,async()=>{let a=await Ut.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(vo,"getUser");async function ik(t){let e=await oi(),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 nk(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,P_);i.push(...a.users)}return{users:i,notFoundIds:o}}s(ik,"getUsers");async function No(t){await(await oi()).delete(t)}s(No,"invalidateUser");async function sk(t){if(t.length===0)return;await(await oi()).bulkDelete(t)}s(sk,"invalidateUsers");var ym={};P(ym,{Writethrough:()=>gm});var L_=1e4,hm=null;async function dc(){if(!hm){let t=await Gf();hm=new En(t)}return hm}s(dc,"getCache");function Po(t,e){return t.name+e}s(Po,"makeCacheKey");function Em(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(Em,"makeCacheItem");async function ok(t,e,r=L_){let n=await dc(),i=e._id,o;i&&(o=await n.get(Po(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await Sn({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;hi("Ignoring conflict in write-through cache")}})).executed||hi("Ignoring redlock conflict in write-through cache")),o=Em(u,a?null:o?.lastWrite),u._id&&await n.store(Po(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(ok,"put");async function ak(t,e){let r=await dc(),n=Po(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=Em(o),await r.store(n,i)}return i.doc}s(ak,"get");async function uk(t,e){let r=await dc(),n=Po(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=Em(o),await r.store(n,i)}return i.doc}s(uk,"tryGet");async function ck(t,e,r){let n=await dc();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(Po(t,i))}finally{await t.remove(i,r)}}s(ck,"remove");var gm=class{static{s(this,"Writethrough")}constructor(e,r=L_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return ok(this.db,e,r)}async get(e){return ak(this.db,e)}async tryGet(e){return uk(this.db,e)}async remove(e,r){return ck(this.db,e,r)}};function Lo(t){return`config${"_"}${t}`}s(Lo,"generateConfigID");var fc="en";function lk(){return{_id:Lo("translations"),type:"translations",config:{defaultLocale:fc,locales:{[fc]:{label:"English",overrides:{}}}}}}s(lk,"createDefaultTranslationsConfig");function dk(t){let e=t?.defaultLocale||fc,r={...t?.locales??{}};r[e]||(r[e]={label:e===fc?"English":e,overrides:{}});for(let n of Object.keys(r))r[n].overrides||(r[n]={...r[n],overrides:{}});return{defaultLocale:e,locales:r}}s(dk,"prepareTranslationsConfig");async function Ge(t){let e=z();try{return await e.get(Lo(t))}catch(r){if(r.status===404)return;throw r}}s(Ge,"getConfig");async function fk(t){return t._id||(t._id=Lo(t.type)),z().put(t)}s(fk,"save");async function U_(){let t=await Ge("translations");return t?(t.config=dk(t.config),t):lk()}s(U_,"getTranslationsConfigDoc");async function pk(){return(await U_()).config}s(pk,"getTranslationsConfig");async function wi(){let t=await Ge("settings");return t||(t={_id:Lo("settings"),type:"settings",config:{}}),t.config.platformUrl=await Uo({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Zu({config:t.config}),t}s(wi,"getSettingsConfigDoc");async function Sm(){return(await wi()).config}s(Sm,"getSettingsConfig");async function Uo(t={tenantAware:!0}){let e=E.PLATFORM_URL||"http://localhost:10000";if(!E.SELF_HOSTED&&E.MULTI_TENANCY&&t.tenantAware){let r=V();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(E.SELF_HOSTED){let r=t?.config?t.config:(await Ge("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(Uo,"getPlatformUrl");var Zu=s(async t=>{if(!E.SELF_HOSTED)return!!E.ENABLE_ANALYTICS;let e=await br(Oe.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Ge("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=E.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function mk(){return await Ge("google")}s(mk,"getGoogleConfigDoc");async function mc(){return(await mk())?.config}s(mc,"getGoogleConfig");async function Am(){if(!E.SELF_HOSTED)return Tm();let t=await mc();return(!t||!t.activated)&&(t=Tm()),t}s(Am,"getGoogleDatasourceConfig");function Tm(){if(E.GOOGLE_CLIENT_ID&&E.GOOGLE_CLIENT_SECRET)return{clientID:E.GOOGLE_CLIENT_ID,clientSecret:E.GOOGLE_CLIENT_SECRET,activated:!0}}s(Tm,"getDefaultGoogleConfig");async function hk(){return Ge("logos_oidc")}s(hk,"getOIDCLogosDoc");async function gk(){return Ge("oidc")}s(gk,"getOIDCConfigDoc");async function Ek(){let t=(await gk())?.config;return t?.configs&&t.configs[0]}s(Ek,"getOIDCConfig");async function _m(t){let e=(await Ge("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(_m,"getOIDCConfigById");async function k_(){return Ge("smtp")}s(k_,"getSMTPConfigDoc");async function yk(t){let e=await k_();if(e)return e.config;let r=E.SELF_HOSTED||!t;if(E.SMTP_FALLBACK_ENABLED&&r)return{port:E.SMTP_PORT,host:E.SMTP_HOST,secure:!1,from:E.SMTP_FROM_ADDRESS,auth:{user:E.SMTP_USER,pass:E.SMTP_PASSWORD},fallback:!0}}s(yk,"getSMTPConfig");async function Tk(){return(await Ge("scim"))?.config}s(Tk,"getSCIMConfig");async function Sk(){return Ge("recaptcha")}s(Sk,"getRecaptchaConfig");var Nm={};P(Nm,{AccessController:()=>wm,BUILTIN_ROLE_IDS:()=>Rm,Role:()=>kr,RoleHierarchyTraversal:()=>hc,RoleIDVersion:()=>Cm,builtinRoleToNumber:()=>ko,checkForRoleResourceArray:()=>W_,externalRole:()=>Rk,findRole:()=>Mo,getAllRoleIds:()=>xk,getAllRoles:()=>vm,getBuiltinRole:()=>F_,getBuiltinRoles:()=>bm,getDBRoleID:()=>G_,getExternalRoleID:()=>Mr,getExternalRoleIDs:()=>$_,getRole:()=>Ck,getUserRoleHierarchy:()=>xm,getUserRoleIdHierarchy:()=>B_,isBuiltin:()=>Fr,lowerBuiltinRoleID:()=>wk,prefixRoleIDNoBuiltin:()=>Im,roleIDsAreEqual:()=>ze,roleToNumber:()=>Ik,saveRoles:()=>Dk,validInherits:()=>Ok});var M_=require("lodash"),gc=W(require("lodash/fp/cloneDeep")),Om=W(require("semver"));var Rm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ne={...Rm,BUILDER:"BUILDER"},Cm={UUID:void 0,NAME:"name"};function _k(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(_k,"rolesInList");var kr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Cm.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=Im(e):e&&Array.isArray(e)&&(e=e.map(Im)),this.inherits=e,this}},hc=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=Mo(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!_k(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=Mo(a.inherits,n,r),a&&i.push(a),ke.roles.checkForRoleInheritanceLoops(i))break}}return(0,M_.uniqBy)(i,o=>o._id)}},Dm={ADMIN:new kr(ne.ADMIN,ne.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ne.POWER),POWER:new kr(ne.POWER,ne.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ne.BASIC),BASIC:new kr(ne.BASIC,ne.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ne.PUBLIC),PUBLIC:new kr(ne.PUBLIC,ne.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new kr(ne.BUILDER,ne.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function bm(){return(0,gc.default)(Dm)}s(bm,"getBuiltinRoles");function Fr(t){return Object.values(Rm).includes(t)}s(Fr,"isBuiltin");function Im(t){return Fr(t)?t:jt(t)}s(Im,"prefixRoleIDNoBuiltin");function F_(t){let e=Object.values(Dm).find(r=>t.includes(r._id));if(e)return(0,gc.default)(e)}s(F_,"getBuiltinRole");function Ok(t,e){if(!e)return!1;let r=s(n=>t.find(i=>ze(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(Ok,"validInherits");function ko(t){let e=bm(),r=Object.values(e).length+1;if(ze(t,ne.ADMIN)||ze(t,ne.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(ko,"builtinRoleToNumber");async function Ik(t){if(Fr(t))return ko(t);let e=await xm(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=>ze(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(Fr(n.inherits))return ko(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(Ik,"roleToNumber");function wk(t,e){return t?e&&ko(t)>ko(e)?e:t:e}s(wk,"lowerBuiltinRoleID");function ze(t,e){return jt(t)===jt(e)}s(ze,"roleIDsAreEqual");function Rk(t){let e;return t._id&&(e=Mr(t._id)),{...t,_id:e,inherits:$_(t.inherits,t.version)}}s(Rk,"externalRole");function Mo(t,e,r){let n=F_(t);n||(t=jt(t));let i=e.find(o=>o._id&&ze(o._id,t));return!i&&!Fr(t)&&r?.defaultPublic?(0,gc.default)(Dm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Mr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(Mo,"findRole");async function Ck(t,e){let r=ii(),n=[];if(!Fr(t)){let i=await r.tryGet(G_(t));i&&n.push(i)}return Mo(t,n,e)}s(Ck,"getRole");async function Dk(t){await ii().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:jt(r._id)})))}s(Dk,"saveRoles");async function bk(t,e){let r=await vm();if(ze(t,ne.ADMIN))return r;let n=Mo(t,r,e),i=[];return n&&(i=new hc(r,e).walk(n)),i}s(bk,"getAllUserRoles");async function B_(t){return(await xm(t)).map(r=>r._id)}s(B_,"getUserRoleIdHierarchy");async function xm(t,e){return bk(t,e)}s(xm,"getUserRoleHierarchy");function W_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(W_,"checkForRoleResourceArray");async function xk(t){return(await vm(t)).map(r=>r._id)}s(xk,"getAllRoleIds");async function vm(t){if(t)return je(t,e);{let r;try{r=ii()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(yu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=Mr(u._id,u.version)));let i=bm(),o=[];!r||await vk(r)?o=[ne.ADMIN,ne.POWER,ne.BASIC,ne.PUBLIC]:o=[ne.ADMIN,ne.BASIC,ne.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>ze(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=Mr(u._id,c.version),n.push({...u,...c,name:u.name,_id:Mr(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=W_(a.permissions,u);return n}s(e,"internal")}s(vm,"getAllRoles");async function vk(t){if(await Nk(t))return!0;let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Om.default.valid(r)?!0:!Om.default.gte(r,E.MIN_VERSION_WITHOUT_POWER_ROLE)}s(vk,"shouldIncludePowerRole");async function Nk(t){let r=(await t.tryGet("ta_users"))?.schema?.roleId?.constraints?.inclusion;return!Array.isArray(r)||!r.some(i=>ze(i,ne.POWER))?!1:r.some(i=>!Fr(i))}s(Nk,"hasLegacyPowerRole");var wm=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||ze(e,ne.BUILDER)||ze(r,e)||ze(r,ne.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await B_(r),this.userHierarchies[r]=n),n?.find(i=>ze(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 G_(t){return t?.startsWith("role")?t:jt(t)}s(G_,"getDBRoleID");function Mr(t,e){if(t.startsWith(`role${"_"}`)&&(Fr(t)||e===Cm.NAME)){let r=t.split("_");return r.shift(),r.join("_")}return t}s(Mr,"getExternalRoleID");function $_(t,e){return t&&(typeof t=="string"?Mr(t,e):t.map(r=>Mr(r,e)))}s($_,"getExternalRoleIDs");var Pm={};P(Pm,{BUILDER:()=>Mk,BUILTIN_PERMISSIONS:()=>Ec,CREATOR:()=>Fk,GLOBAL_BUILDER:()=>Bk,PermissionImpl:()=>oe,PermissionLevel:()=>ki,PermissionType:()=>Qo,doesHaveBasePermission:()=>Uk,getAllowedLevels:()=>Q_,getBuiltinPermissionByID:()=>Lk,getBuiltinPermissions:()=>Pk,isPermissionLevelHigherThanRead:()=>kk,levelToNumber:()=>K_});var V_=W(require("lodash/flatten")),q_=W(require("lodash/fp/cloneDeep"));var oe=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function K_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(K_,"levelToNumber");function Q_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(Q_,"getAllowedLevels");var Ec={PUBLIC:{_id:"public",name:"Public",permissions:[new oe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new oe("query","read"),new oe("table","read"),new oe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new oe("query","write"),new oe("table","write"),new oe("automation","execute"),new oe("legacy_view","read"),new oe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new oe("table","write"),new oe("user","read"),new oe("automation","execute"),new oe("webhook","read"),new oe("legacy_view","read"),new oe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new oe("table","admin"),new oe("user","admin"),new oe("automation","admin"),new oe("webhook","read"),new oe("query","admin"),new oe("legacy_view","read"),new oe("app","read")]}};function Pk(){return(0,q_.default)(Ec)}s(Pk,"getBuiltinPermissions");function Lk(t){return Object.values(Ec).find(r=>r._id===t)}s(Lk,"getBuiltinPermissionByID");function Uk(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(Ec),o=(0,V_.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&Q_(a.level).indexOf(e)!==-1)return!0;return!1}s(Uk,"doesHaveBasePermission");function kk(t){return K_(t)>1}s(kk,"isPermissionLevelHigherThanRead");var Mk="builder",Fk="creator",Bk="globalBuilder";var km={};P(km,{FlagSet:()=>Tc,all:()=>Kk,flags:()=>Lm,getEnvFlags:()=>z_,init:()=>Gk,isEnabled:()=>qk,parseEnvFlags:()=>Ac,shutdown:()=>$k,testutils:()=>Um});var Sc=W(require("crypto")),j_=W(require("dd-trace")),H_=require("lodash"),Y_=require("posthog-node");var yc,Wk=s(()=>{let t=E.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS;if(t){let e=parseInt(t,10);if(!Number.isNaN(e)&&e>0)return e}return me.fromDays(1).toMs()},"getFeatureFlagsPollingInterval");function Gk(t){E.POSTHOG_TOKEN&&E.POSTHOG_API_HOST&&!E.SELF_HOSTED&&E.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),yc=new Y_.PostHog(E.POSTHOG_TOKEN,{host:E.POSTHOG_API_HOST,personalApiKey:E.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Wk(),...t})):console.log("posthog disabled")}s(Gk,"init");function $k(){yc?.shutdown()}s($k,"shutdown");function Ac(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(Ac,"parseEnvFlags");function z_(){return Ac(E.TENANT_FEATURE_FLAGS||"")}s(z_,"getEnvFlags");var Tc=class{constructor(e){this.flagSchema=e;this.setId=Sc.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,H_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await j_.default.trace("features.fetch",async e=>{let r=Uf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=V(),a=new Set;if(nu())return i;for(let{tenantId:f,key:g,value:m}of z_())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,m===!1&&a.add(g),!!this.isFlagName(g))){if(typeof i[g]!="boolean")throw new Error(`Feature: ${g} is not a boolean`);i[g]=m,n[`flags.${g}.source`]="environment"}let u=Qt(),c=u?._id;if(!c){let f=Pf();f&&(c=Sc.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,yc&&c){n.readFromPostHog=!0;let f=await wi(),g={tenantId:l},m={tenant:{id:l}};f.config.createdVersion&&(m.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(m.tenant.createdAt=`${f.createdAt}`);let y=await yc.getAllFlags(c,{personProperties:g,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:m});for(let[h,p]of Object.entries(y))if(this.isFlagName(h)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${h}": ${p}`);continue}if(!(i[h]===!0||a.has(h)))try{i[h]=p,n[`flags.${h}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${h}": ${p}`,T)}}}let d=Mf();for(let[f,g]of Object.entries(d))this.isFlagName(f)&&typeof g=="boolean"&&(i[f]=g,n[`flags.${f}.source`]="override");kf(this.setId,i);for(let[f,g]of Object.entries(i))n[`flags.${f}.value`]=g;return e?.addTags(n),i})}},Vk={USE_ZOD_VALIDATOR:!1,AI_TESTS:!1,ESCALATION:!1,FRONT_COMPANION:!1,PROJECTS:!1,DEBUG_UI:E.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1,AI_AGENT_ACTIVITY:!1},Lm=new Tc(Vk);async function qk(t){return await Lm.isEnabled(t)}s(qk,"isEnabled");async function Kk(){return await Lm.fetch()}s(Kk,"all");var Um={};P(Um,{setFeatureFlags:()=>J_,withFeatureFlags:()=>Hk});function Qk(){let t={};for(let{tenantId:e,key:r,value:n}of Ac(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(Qk,"getCurrentFlags");function jk(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(jk,"buildFlagString");function J_(t,e){let r=Qk();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=jk(r);return Ps({TENANT_FEATURE_FLAGS:n})}s(J_,"setFeatureFlags");function Hk(t,e,r){let n=J_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(Hk,"withFeatureFlags");var zm={};P(zm,{adminOnly:()=>_c,auditLog:()=>Oc,authError:()=>Ie,buildAuthMiddleware:()=>FM,buildCsrfMiddleware:()=>WM,buildTenancyMiddleware:()=>BM,builderOnly:()=>Nc,builderOrAdmin:()=>Pc,google:()=>or,internalApi:()=>Uc,joiValidator:()=>Fo,oidc:()=>ar,passport:()=>GM,platformLogout:()=>QM,refreshOAuthToken:()=>qM,ssoCallbackUrl:()=>Wr,updateUserOAuth:()=>KM,workspaceBuilderOrAdmin:()=>Fc});var Ym={};P(Ym,{activeTenant:()=>_O,adminOnly:()=>_c,auditLog:()=>Oc,authError:()=>Ie,authenticated:()=>vc,builderOnly:()=>Nc,builderOrAdmin:()=>Pc,correlation:()=>Z_,csp:()=>cO,csrf:()=>Lc,datasource:()=>kM,errorHandling:()=>dO,featureFlagCookie:()=>fO,google:()=>or,internalApi:()=>Uc,ip:()=>pO,joiValidator:()=>Fo,local:()=>xi,oidc:()=>ar,pino:()=>eO,querystringToBody:()=>AO,ssoCallbackUrl:()=>Wr,tenancy:()=>Mc,workspaceBuilderOrAdmin:()=>Fc});var X_=require("uuid");var Yk=require("correlation-id"),Z_=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,X_.v4)()),Yk.withId(r,()=>e())},"correlationMiddleware");var zk=require("koa-pino-logger"),Jk=require("correlation-id");function Xk(){return{logger:Mu,genReqId:Jk.getId,autoLogging:{ignore:s(t=>!!t.url?.includes("/health"),"ignore")},serializers:{req:s(t=>({method:t.method,url:t.url,correlationId:t.id}),"req"),res:s(t=>({status:t.statusCode}),"res")}}}s(Xk,"pinoSettings");function Zk(){return E.HTTP_LOGGING?zk(Xk()):(t,e)=>e()}s(Zk,"getMiddleware");var eO=Zk();var _c=s(async(t,e)=>(!t.internal&&!Lt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var Oc=s((async(t,e)=>e()),"auditLog");var sO=require("jsonwebtoken");var eM=/\/:(.*?)(\/.*)?$/g,ir=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(eM);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"),sr=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.path),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var Gm={};P(Gm,{SecretOption:()=>nO,compare:()=>iM,decrypt:()=>Cc,decryptFile:()=>aM,encrypt:()=>nM,encryptFile:()=>sM,getSecret:()=>Wm});var kt=W(require("crypto")),Br=W(require("fs")),Mm=require("path"),Fm=W(require("zlib"));var Ic="aes-256-ctr",rO="-",tM=1e4,rM=32,wc=16,Bm=16,nO=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(nO||{});function Wm(t){let e,r;if(t==="encryption"?(e=E.ENCRYPTION_KEY,r="ENCRYPTION_KEY"):(e=E.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY"),!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(Wm,"getSecret");function Rc(t,e){return kt.default.pbkdf2Sync(t,new Uint8Array(e),tM,rM,"sha512")}s(Rc,"stretchString");function nM(t,e="api"){let r=kt.default.randomBytes(wc),n=Rc(Wm(e),r),i=kt.default.createCipheriv(Ic,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")}${rO}${u}`}s(nM,"encrypt");function Cc(t,e="api"){let[r,n]=t.split(rO),i=Buffer.from(r,"hex"),o=Rc(Wm(e),i),a=kt.default.createDecipheriv(Ic,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(Cc,"decrypt");function iM(t,e,r="api"){try{let n=new TextEncoder,i=n.encode(Cc(e,r)),o=n.encode(t);return i.length!==o.length?!1:kt.default.timingSafeEqual(i,o)}catch{return!1}}s(iM,"compare");async function sM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Mm.join)(t,e);if(Br.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=Br.default.createReadStream(i),a=Br.default.createWriteStream((0,Mm.join)(t,n)),u=kt.default.randomBytes(wc),c=kt.default.randomBytes(Bm),l=Rc(r,u),d=kt.default.createCipheriv(Ic,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(Fm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(sM,"encryptFile");async function oM(t){let e=Br.default.createReadStream(t),r=await tO(e,wc),n=await tO(e,Bm);return e.close(),{salt:r,iv:n}}s(oM,"getSaltAndIV");async function aM(t,e,r){if(Br.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await oM(t),o=Br.default.createReadStream(t,{start:wc+Bm}),a=Br.default.createWriteStream(e),u=Rc(r,n),c=kt.default.createDecipheriv(Ic,new Uint8Array(u),new Uint8Array(i)),l=Fm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",g=>{a.close(),f(g)}),c.on("error",g=>{a.close(),f(g)}),l.on("error",g=>{a.close(),f(g)}),a.on("error",g=>{a.close(),f(g)})})}s(aM,"decryptFile");function tO(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(tO,"readBytes");var $m={};P($m,{APIWarning:()=>Cn,FeatureDisabledWarning:()=>bc,InvalidAPIKeyWarning:()=>bi,UsageLimitWarning:()=>Dc});var Cn=class extends Error{static{s(this,"APIWarning")}constructor(e,r){super(e),this.code=r}},bi=class extends Cn{static{s(this,"InvalidAPIKeyWarning")}constructor(){super("Invalid API key","invalid_api_key")}},Dc=class extends Cn{static{s(this,"UsageLimitWarning")}constructor(e){super(`Usage limit exceeded: '${e}'`,"usage_limit_exceeded"),this.limitName=e}getPublicWarning(){return{limitName:this.limitName}}},bc=class extends Cn{static{s(this,"FeatureDisabledWarning")}constructor(e){super(`Feature disabled: '${e}'`,"feature_disabled"),this.featureName=e,this.status=400}getPublicWarning(){return{featureName:this.featureName}}getPublicError(){return{featureName:this.featureName}}};var oO=W(require("dd-trace"));var cM=E.SESSION_UPDATE_PERIOD?parseInt(E.SESSION_UPDATE_PERIOD):60*1e3;function lM(){return new Date(Date.now()-cM).toISOString()}s(lM,"timeMinusOneMinute");function iO(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(iO,"finalise");async function dM(t,e){if(Xs(t))return{valid:!0,user:void 0};let n=Cc(t).split("_")[0];return be(n,async()=>{let i;try{let o=z();i=await Ht("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await vo({userId:i,tenantId:n,populateUser:e})};throw new bi})}s(dM,"checkApiKey");function xc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(xc,"getHeader");function vc(t=[],e={publicAllowed:!1}){let r=t?ir(t):[];return(async(n,i)=>{let o=!1,a=xc(n,"x-budibase-api-version");sr(n,r)&&(o=!0);try{let c=xc(n,"x-budibase-token"),l=zt(n,"budibase:auth"),d=l||_u(c);d&&!d.exp&&(l&&Jt(n,"budibase:auth"),n.throw(401,"Session token missing expiration, please log in again"));let f=xc(n,"x-budibase-api-key");!f&&n.request.headers.authorization&&(f=n.request.headers.authorization.split(" ")[1]);let g=xc(n,"x-budibase-tenant-id"),m=!1,y,h=!1,p;if(d&&!f){let A=d.sessionId,_=d.userId,I;try{I=await zp(_,A),e&&e.populateUser?y=await vo({userId:_,tenantId:I.tenantId,email:I.email,populateUser:e.populateUser(n)}):y=await vo({userId:_,tenantId:I.tenantId,email:I.email}),y.csrfToken=I.csrfToken,p="cookie",I?.lastAccessedAt<lM()&&await Yp(I),m=!0}catch(O){m=!1,console.warn(`Auth Error: ${O.message}`),Jt(n,"budibase:auth")}}if(!m&&f){let A=e.populateUser?e.populateUser(n):null,{valid:_,user:I}=await dM(f,A);_&&(m=!0,p="api_key",y=I,h=!I)}!y&&g?y={tenantId:g}:y&&"password"in y&&delete y.password,m||(m=!1);let T=s(A=>A&&A.email,"isUser");return T(y)&&oO.default.setUser({id:y._id,tenantId:y.tenantId,budibaseAccess:y.budibaseAccess,status:y.status}),iO(n,{authenticated:m,user:y,internal:h,version:a,publicEndpoint:o,loginMethod:p}),T(y)?gf(y,n,i):i()}catch(c){if(console.warn(`Auth Error: ${c.message}`),c instanceof sO.JsonWebTokenError?Jt(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return iO(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c.message||"Authentication failed")}})}s(vc,"authenticated");async function Nc(t,e){if(t.internal)return e();let r=await pn(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)?t.throw(403,"Builder user only endpoint."):r&&!Ci(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(Nc,"builderOnly");async function Pc(t,e){if(t.internal||Lt(t.user))return e();let r=await pn(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!Ci(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(Pc,"builderOrAdmin");var uO=W(require("crypto"));var aO={"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","https://companion.frontapp.com"],"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","https://companion.frontapp.com","https://*.frontapp.com"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},Vm=/^[A-Za-z0-9-*:/.]+$/,cO=s((async(t,e)=>{let r=uO.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...aO};n["script-src"]=[...aO["script-src"],`'nonce-${r}'`];let i={"media-src":E.CUSTOM_CSP_MEDIA_SRC,"script-src":E.CUSTOM_CSP_SCRIPT_SRC,"connect-src":E.CUSTOM_CSP_CONNECT_SRC,"img-src":E.CUSTOM_CSP_IMG_SRC,"font-src":E.CUSTOM_CSP_FONT_SRC,"frame-src":E.CUSTOM_CSP_FRAME_SRC};for(let[c,l]of Object.entries(i))if(l){let d=l.split(",").map(f=>f.trim()).filter(f=>Vm.test(f));n[c]=[...n[c]||[],...d]}let o=t.request?.get("x-budibase-embed")?.toLowerCase()==="true",a=t.user?.license?.features.includes("customAppScripts");if(o&&(n["frame-ancestors"]=["*"]),t.appId&&(o||a))try{let c=await Vs.getWorkspaceMetadata(t.appId);if("name"in c){if(a)for(let l of c.scripts||[]){let d=(l.cspWhitelist||"").split(`
38
+ `).filter(g=>Vm.test(g)),f=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let g of f)n[g]=[...n[g]||[],...d]}if(o){let l=(c.embedAllowedOrigins||[]).map(d=>d.trim()).filter(d=>Vm.test(d));n["frame-ancestors"]=l.length?l:["*"]}}}catch(c){console.error(`Error occurred in Content-Security-Policy middleware: ${c}`)}let u=Object.entries(n).map(([c,l])=>`${c} ${l.join(" ")}`).join("; ");t.set("Content-Security-Policy",u),await e()}),"contentSecurityPolicy");var fM=["GET","HEAD","OPTIONS"],pM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Lc(t={noCsrfPatterns:[]}){let e=ir(t.noCsrfPatterns);return(async(r,n)=>{if(sr(r,e)||fM.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!pM.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(Lc,"csrf");function lO(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of hT){let r=E[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(lO,"stringContainsSecret");async function dO(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 5xx response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:zu(r)};if(lO(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),E.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(dO,"errorHandling");var fO=s((async(t,e)=>{let n=zt(t,"budibase:featureflags")?.flags||{};await Ff(n,async()=>{await e()})}),"featureFlagCookie");async function Uc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Xs(r)||t.throw(403,"Unauthorized"),e()}s(Uc,"internalApi");async function pO(t,e){return t.ip?await Lf(t.ip,()=>e()):e()}s(pO,"ip");var Fo={};P(Fo,{body:()=>mM,params:()=>hM});var qm=W(require("joi"));function mO(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:qm.default.any().optional(),updatedAt:qm.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(mO,"validate");function mM(t,e){return mO(t,"body",e)}s(mM,"body");function hM(t,e){return mO(t,"params",e)}s(hM,"params");var xi={};P(xi,{authenticate:()=>yM,options:()=>EM});function Ie(t,e,r){return t(r,null,{message:e})}s(Ie,"authError");async function Wr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Sm(),n="/api/global/auth";return Sr()&&(n+=`/${V()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(Wr,"ssoCallbackUrl");var Km="Invalid credentials",gM="This account has expired. Please reset your password",EM={passReqToCallback:!0};async function yM(t,e,r,n){if(!e)return Ie(n,"Email Required");if(!r)return Ie(n,"Password Required");let i=await ut(e);return i==null?(console.info(`user=${e} could not be found`),Ie(n,Km)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ie(n,Km)):i.password?await ff(r,i.password)?(delete i.password,n(null,i)):Ie(n,Km):(console.info(`user=${e} has no password set`,i),Ie(n,gM))}s(yM,"authenticate");var or={};P(or,{buildVerifyFn:()=>EO,getCallbackUrl:()=>IM,strategyFactory:()=>jm});var Bo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function kc(t,e=!0,r,n,i=!1){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ie(r,"sso user id required");if(!t.email)return Ie(r,"sso user email required");let o=ai(t.userId),a;try{a=await Ur(o)}catch(d){if(!d.status||d.status!==404)return Ie(r,"Unexpected error when retrieving existing user",d)}!a&&(t.emailVerified||i)&&(a=await ut(t.email));let u;a||(u=(await An.getExistingInvites([t.email]))[0]);let c=!t.emailVerified&&!i;if(!a&&!u&&c&&(a=await SM(t)),!a&&!u&&e)return Ie(r,"Email does not yet exist. You must set up your local budibase account first.");let l;try{u?l=await AM(u,o,t,n):(a||(a={_id:o,email:t.email,tenantId:V(),roles:{}}),l=await Qm(a,t,n))}catch(d){return Ie(r,"Error saving user",d)}return r(null,l)}s(kc,"authenticate");async function Qm(t,e,r){let n=await _M(t,e);return n.forceResetPassword=!1,delete n.password,await r(n,{hashPassword:!1,requirePassword:!1})}s(Qm,"syncAndSaveUser");function TM(t,e){return t.password||t.status==="inactive"||t.admin?.global||t.ssoId?!1:vn(t)?t.provider===e.provider&&t.providerType===e.providerType:!0}s(TM,"isAccountLinkable");async function SM(t){let e=await ut(t.email);if(e&&TM(e,t))return e}s(SM,"findLinkableAccountByEmail");async function AM(t,e,r,n){let{result:i}=await Sn({type:"auto_extend",name:"process_user_invite",resource:t.code,systemLock:!0},async()=>{try{await An.getCode(t.code,t.info.tenantId)}catch(u){let c;try{c=await Ur(e)}catch(l){if(!l.status||l.status!==404)throw l}if(!c)throw u;return await Qm(c,r,n)}let o={_id:e,email:r.email,tenantId:t.info.tenantId||V(),...mm(t.info)},a=await Qm(o,r,n);return await An.deleteCode(t.code,t.info.tenantId),await Ce.inviteAccepted(a),a});return i}s(AM,"claimInviteAndSaveUser");async function _M(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(_M,"syncUser");var OM=require("passport-google-oauth").OAuth2Strategy;function EO(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,emailVerified:n._json.email_verified===!0,oauth2:{accessToken:e,refreshToken:r}};return kc(o,!0,i,t)}}s(EO,"buildVerifyFn");async function jm(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=EO(r);return new OM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(jm,"strategyFactory");async function IM(t){return Wr("google",t)}s(IM,"getCallbackUrl");var ar={};P(ar,{buildVerifyFn:()=>SO,fetchStrategyConfig:()=>vM,getCallbackUrl:()=>NM,strategyFactory:()=>bM});var yO=W(require("node-fetch"));var TO=require("@govtechsg/passport-openidconnect");function SO(t,e=!1){return async(r,n,i,o,a,u,c,l,d)=>{let f=wM(n,i),g=RM(n,i),m={provider:r,providerType:"oidc",userId:f.id,profile:f,email:CM(f,g),emailVerified:DM(f,g),oauth2:{accessToken:u,refreshToken:c}};return kc(m,!1,d,t,e)}}s(SO,"buildVerifyFn");function wM(t,e){let r={...t?._json||{}};!r.email&&e.emails?.length&&(r.email=e.emails[0].value,r.email_verified=e._json?.email_verified);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(wM,"normalizeProfile");function RM(t,e){return{email:t?._json?.email||e.emails?.[0]?.value,email_verified:e._json?.email_verified,preferred_username:e.username}}s(RM,"buildJwtClaims");function CM(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&&op(r))return r.toLowerCase();throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(CM,"getEmail");function DM(t,e){return t._json.email?t._json.email_verified===!0:e.email?e.email_verified===!0:!1}s(DM,"getEmailVerified");async function bM(t,e){try{let r=SO(e,t.allowUnverifiedEmailLinking),n=new TO.Strategy(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(bM,"strategyFactory");function xM(t){let e=E.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING;if(e===void 0)return t;let r=`${e}`.toLowerCase();return r!==""&&r!=="false"&&r!=="0"}s(xM,"resolveAllowUnverifiedEmailLinking");async function vM(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o,allowUnverifiedEmailLinking:a}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let u=await(0,yO.default)(i);if(!u.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${u.statusText}`);let c=await u.json();return{issuer:c.issuer,authorizationURL:c.authorization_endpoint,tokenURL:c.token_endpoint,userInfoURL:c.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o,allowUnverifiedEmailLinking:xM(a)}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(vM,"fetchStrategyConfig");async function NM(){return Wr("oidc")}s(NM,"getCallbackUrl");function AO(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(AO,"querystringToBody");function Mc(t,e,r={noTenancyRequired:!1}){let n=ir(t),i=ir(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!sr(o,i)};sr(o,n)||(c.excludeStrategies=["query"]);let d=zs(o,c);return d&&o.set("x-budibase-tenant-id",d),be(d,a)}}s(Mc,"tenancy");function _O(t=[]){let e=ir(t);return async function(r,n){if(sr(r,e))return n();try{if((await Ge("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(_O,"activeTenant");async function Fc(t,e){if(t.internal||Lt(t.user))return e();let r=await pn(t);return r&&!oc(t.user,r)?t.throw(403,"Workspace Admin/Builder user only endpoint."):!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}s(Fc,"workspaceBuilderOrAdmin");var Hm={};P(Hm,{postAuth:()=>UM,preAuth:()=>LM});var PM=require("passport-google-oauth").OAuth2Strategy;async function OO(){let t=await Am();if(!t)throw new Error("No google configuration found");return t}s(OO,"fetchGoogleCreds");async function LM(t,e,r){let n=await OO(),o=`${await Uo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await jm(n,o,Bo);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(LM,"preAuth");async function UM(t,e,r){let n=await OO(),o=`${await Uo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=zt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new PM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{Jt(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=X();await yn(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(UM,"postAuth");var kM={google:Hm};var IO=require("koa-passport"),MM=require("passport-local").Strategy,Bc=require("passport-oauth2-refresh"),FM=vc,BM=Mc,WM=Lc,GM=IO;IO.use(new MM(xi.options,xi.authenticate));async function $M(t,e){let r=await ar.getCallbackUrl(),n,i;try{if(n=await ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await ar.strategyFactory(n,Bo)}catch{throw new Error("Could not refresh OAuth Token")}return Bc.use(i),new Promise(o=>{Bc.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s($M,"refreshOIDCAccessToken");async function VM(t,e){let r=await or.getCallbackUrl(t),n;try{n=await or.strategyFactory(t,r,Bo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Bc.use(n),new Promise(i=>{Bc.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(VM,"refreshGoogleAccessToken");async function qM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await _m(r);return n?$M(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await mc();return n?VM(n,t):{err:{data:"Google configuration not found"}}}}}s(qM,"refreshOAuthToken");async function KM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=z(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await No(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(KM,"updateUserOAuth");async function QM(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=zt(e,"budibase:auth"),o=await yo(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):Jt(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await In(r,{sessionIds:a,reason:"logout"}),await ic.logout(e.user?.email),await No(r)}s(QM,"platformLogout");var Xm={};P(Xm,{validate:()=>JM});var v=W(require("joi"));var jM=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Jm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(Jm,"runJoi");function HM(t){let e=v.default.object({type:v.default.string().allow("component").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),settings:v.default.array().items(v.default.object().unknown(!0)).required()}).unknown(!0)});Jm(e,t)}s(HM,"validateComponent");function YM(t){let e=v.default.object({type:v.default.string().allow(...Object.values(Vc)).required(),required:v.default.boolean().required(),default:v.default.any(),display:v.default.string()}),r=v.default.object({type:v.default.string().allow(...Object.values($c)),readable:v.default.boolean(),displayName:v.default.string(),fields:v.default.object().pattern(v.default.string(),e)}).required(),n=v.default.object({type:v.default.string().allow("datasource").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({docs:v.default.string(),plus:v.default.boolean().optional(),isSQL:v.default.boolean().optional(),auth:v.default.object({type:v.default.string().required()}).optional(),features:v.default.object(Object.fromEntries(Object.values(qc).map(i=>[i,v.default.boolean().optional()]))).optional(),relationships:v.default.boolean().optional(),description:v.default.string().required(),friendlyName:v.default.string().required(),type:v.default.string().allow(...jM),datasource:v.default.object().pattern(v.default.string(),e).required(),query:v.default.object().pattern(v.default.string(),r).unknown(!0).required(),extra:v.default.object().pattern(v.default.string(),v.default.object({type:v.default.string().required(),displayName:v.default.string().required(),required:v.default.boolean(),data:v.default.object()}))})});Jm(n,t)}s(YM,"validateDatasource");function zM(t){let e=v.default.object().pattern(v.default.string(),{type:v.default.string().allow(...Object.values(Kc)).required(),customType:v.default.string().allow(...Object.values(Qc)),title:v.default.string(),description:v.default.string(),enum:v.default.array().items(v.default.string()),pretty:v.default.array().items(v.default.string())}),r=v.default.object({properties:e,required:v.default.array().items(v.default.string())}).concat(e).required(),n=v.default.object({type:v.default.string().allow("automation").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),tagline:v.default.string().required(),icon:v.default.string().required(),description:v.default.string().required(),type:v.default.string().allow("ACTION","LOGIC").required(),stepId:v.default.string().disallow(...Th).required(),inputs:v.default.object().optional(),schema:v.default.object({inputs:r,outputs:r}).required()})});Jm(n,t)}s(zM,"validateAutomation");function JM(t){switch(t?.type){case"component":HM(t);break;case"datasource":YM(t);break;case"automation":zM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(JM,"validate");var Zm={};P(Zm,{Client:()=>Re,clients:()=>_r,locks:()=>xr,utils:()=>Ya});var th={};P(th,{init:()=>ZM});var XM={"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 wO(t,e){let r=XM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(wO,"getDocumentId");var Wo=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=wO(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await be(i,async()=>{await u({id:o,tenantId:i,appId:n.appId,properties:n})})}shutdown(){return QA()}};var RO,eh;function ZM(t){At||ec(),eh||(eh=new Wo(t)),RO||(RO=At.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await eh.processEvent(r,n,i)}))}s(ZM,"init");var lh={};P(lh,{COUNT_FIELD_NAME:()=>uh,Sql:()=>LO,SqlTable:()=>Wc,designDoc:()=>ch,utils:()=>Cf});var xO=require("knex");var eF=require("knex");function rh(t){return["link","formula","ai"].indexOf(t)!==-1}s(rh,"isIgnoredType");function CO(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(g=>g.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(g=>g.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(g=>g.foreignKey);for(let[g,m]of Object.entries(e.schema)){let y=n?.schema[g];if(y&&y.type||l.includes(g)||i?.updated===g)continue;let h=m.type;switch(h){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(g)?t.string(g,255):t.text(g);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:p,toTable:T}=m.meta;t.integer(g).unsigned(),t.foreign(g).references(`${T}.${p}`)}else d.indexOf(g)===-1&&t.float(g);break;case"bigint":t.bigint(g);break;case"boolean":t.boolean(g);break;case"datetime":m.timeOnly?t.time(g):t.datetime(g,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":ke.schema.isDeprecatedSingleUserColumn(m)?t.text(g):t.json(g);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:p}=_f(m.tableId),T=r[p];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let A=T.primary[0],_=T.schema[A].externalType;_?t.specificType(m.foreignKey,_):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${p}.${A}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(g);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:wt.unreachable(h)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!rh(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,y])=>!rh(y.type)&&e.schema[m]==null).forEach(([m,y])=>{i?.old===m||rh(y.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}s(CO,"generateSchema");function rF(t,e,r){return t.createTable(e.name,n=>{CO(n,e,r)})}s(rF,"buildCreateTable");function nF(t,e,r,n,i){return t.alterTable(e.name,o=>{CO(o,e,r,n,i)})}s(nF,"buildUpdateTable");function iF(t,e){return t.dropTable(e.name)}s(iF,"buildDeleteTable");var nh=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,eF.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=rF(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=nF(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=ti(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=iF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ti(n)}},Wc=nh;var vO=require("lodash");var uh="__bb_total";function DO(){return(E.SQL_MAX_ROWS?parseInt(E.SQL_MAX_ROWS):null)||5e3}s(DO,"getBaseLimit");function ih(){return(E.SQL_MAX_RELATED_ROWS?parseInt(E.SQL_MAX_RELATED_ROWS):null)||500}s(ih,"getRelationshipLimit");function sF(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(sF,"prioritisedArraySort");function NO(t){return Array.isArray(t)?t.map(e=>NO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(NO,"convertBooleans");function bO(t){return t.sourceType==="internal"||t.sourceId===Yc}s(bO,"isSqs");function oF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(oF,"escapeQuotes");function aF(t,e='"'){return`${e}${oF(t,e)}${e}`}s(aF,"wrap");function uF(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=aF(t[r],e));return`[${t.join(",")}]`}s(uF,"stringifyArray");function sh(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(sh,"toPgArrayLiteral");function PO(t){return Ah.includes(t.type)&&!ke.schema.isDeprecatedSingleUserColumn(t)}s(PO,"isJsonColumn");var cF={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,notOneOf:!0,$and:!1,$or:!1},oh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:s(e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array","POSTGRES_ARRAY"),POSTGRES_MONEY:s(e=>this.client==="pg"&&e?.externalType?.includes("money"),"POSTGRES_MONEY"),POSTGRES_ENUM:s(e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options","POSTGRES_ENUM"),MSSQL_DATES:s(e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly,"MSSQL_DATES")};this.client=e,this.query=n,this.knex=r,this.splitter=new Er.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()&&PO(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(!wf(e))return null}else if(r.dateOnly){let n=If(e);return n?new Date(n):null}else return r.ignoreTimezones?eu(e)?new Date(e):Of(e)?new Date(e+"Z"):null:eu(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,vO.cloneDeep)(e);for(let r of Object.values(Vr)){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(cr)){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(xn)){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(g=>n.match(new RegExp(`^${g}\\.`)),"matches");if(!a)return e;for(let g of a){let m=g.tableName,y=c?.[m]||m,h=f(m)||f(y),p=f(g.column),T=g.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((h||p||T)&&g.to&&g.tableName){let A=this.knex.select(this.knex.raw(1)).from({[y]:m}),_=A.clone(),I=Rf(g),O;if(h?O=n:O=n.replace(new RegExp(`^${g.column}.`),`${c?.[g.tableName]||g.tableName}.`),I){let C=c?.[I.through]||g.through,R=this.tableNameWithSchema(I.through,{alias:C,schema:u});_=_.innerJoin(R,function(){this.on(`${y}.${I.toPrimary}`,"=",`${C}.${I.to}`)}).where(`${C}.${I.from}`,"=",this.rawQuotedIdentifier(`${d}.${I.fromPrimary}`)),this.client==="sqlite3"&&(_=this.addJoinFieldCheck(_,I)),T&&i==="empty"?e=e.whereNotExists(_):T&&i==="notEmpty"?e=e.whereExists(_):e=e.where(w=>{w.whereExists(o(O,_)),r&&w.orWhereNotExists(A.clone().innerJoin(R,function(){this.on(`${d}.${I.fromPrimary}`,"=",`${C}.${I.from}`)}))})}else{let C=`${y}.${g.to}`,R=`${d}.${g.from}`;_=_.where(C,"=",this.rawQuotedIdentifier(R)),T&&i==="empty"?e=e.whereNotExists(_):T&&i==="notEmpty"?e=e.whereExists(_):e=e.where(w=>{w.whereExists(o(O,_.clone())),r&&w.orWhereNotExists(_)})}}}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(h){return o?.[h]||h}s(l,"getTableAlias");function d(h,p,T,A){let _=s((I,O,C)=>{let[R,...w]=O.split("."),b=w.join("."),G=l(R);return I.andWhere(ee=>T(ee,G?`${G}.${b}`:b,C))},"handleRelationship");for(let I in h){let O=h[I],C=Ys(I),R=C.includes(".")||i.getFieldSchema(C)?.type==="link",w=n?.relationship&&R,b;if(I==="_complexIdOperator"&&(b=h[I])&&A){let G=l(c);e=A(e,b.id.map(ee=>G?`${G}.${ee}`:ee),b.values)}else if(R)w&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,cF[p],C,p,(G,ee)=>_(ee,G,O)));else{let G=l(c);e=T(e,G?`${G}.${C}`:C,O)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,g=s((h,p,T)=>((r?.fuzzyOr||a)&&(h=h.or),f?h.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`%${T}%`]):this.client==="oracledb"||this.client==="sqlite3"?h.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`%${T.toLowerCase()}%`]):h.whereILike(this.rawQuotedIdentifier(p),this.knex.raw("?",[`%${T}%`]))),"like"),m=s((h,p=!1)=>{function T(A){return(a||h===r?.containsAny)&&(A=A.or),h===r?.notContains&&(A=A.not),A}s(T,"addModifiers"),this.client==="pg"?d(h,"contains",(A,_,I)=>{A=T(A);let O=this.getFieldSchema(_),C=this.rawQuotedIdentifier(_),R=Array.isArray(I)?[...I]:[I],w=this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(O);return p?w?A.whereRaw("COALESCE(?? && ?::text[], FALSE)",[C,sh(R)]):A.whereRaw("COALESCE(??::jsonb \\?| ?::text[], FALSE)",[C,sh(R)]):w?A.whereRaw("COALESCE(?? @> ?::text[], FALSE)",[C,sh(R)]):A.whereRaw("COALESCE(??::jsonb @> ?::jsonb, FALSE)",[C,uF(R)])}):this.client==="mysql2"||this.client==="mariadb"?d(h,"contains",(A,_,I)=>{let O=Array.isArray(I)?I:[I];return T(A).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(p?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),JSON.stringify(O)])}):d(h,"contains",(A,_,I)=>(I.length===0||(A=A.where(O=>(h===r?.notContains&&(O=O.not),O=O.where(C=>{for(let R of I){h===r?.containsAny?C=C.or:C=C.and;let w=!f,b=typeof R=="string"?`"${w?R.toLowerCase():R}"`:R,G=w?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";C=C.whereLike(this.knex.raw(G,[this.rawQuotedIdentifier(_)]),`%${b}%`)}}),h===r?.notContains&&(O=O.or.whereNull(this.rawQuotedIdentifier(_))),O))),A))},"contains");if(r.$and){let{$and:h}=r;for(let p of h.conditions)e=e.where(T=>{this.addFilters(T,p,n)})}if(r.$or){let{$or:h}=r;e=e.where(p=>{for(let T of h.conditions)p.orWhere(A=>this.addFilters(A,{...T,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(h,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(h=h.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly){for(let I of _)I!=null?h=h.or.whereLike(p,`${I.toISOString().slice(0,10)}%`):h=h.or.whereNull(p);return h}return h.whereIn(p,_)},(h,p,T)=>(a&&(h=h.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),h.whereIn(p,Array.isArray(T)?T:[T]))),r.notOneOf&&d(r.notOneOf,"notOneOf",(h,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(h=h.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly)return h.where(I=>{I.whereNot(O=>{for(let C of _)C!=null&&O.orWhereLike(p,`${C.toISOString().slice(0,10)}%`)}).orWhereNull(p)});return h.where(I=>{I.whereNotIn(p,_).orWhereNull(p)})},(h,p,T)=>(a&&(h=h.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),h.whereNotIn(p,Array.isArray(T)?T:[T]))),r.string&&d(r.string,"string",(h,p,T)=>{if(a&&(h=h.or),f)return h.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`${T}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return h.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`${T.toLowerCase()}%`]);{let A=this.getFieldSchema(p);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(A)?h.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(A.name)),`${T}%`]):h.whereILike(p,`${T}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",g),r.range&&d(r.range,"range",(h,p,T)=>{let A=s(b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype,"isEmptyObject");A(T.low)&&(T.low=""),A(T.high)&&(T.high="");let _=tu(T.low),I=tu(T.high),O=this.getFieldSchema(p),C=p,R=T.high,w=T.low;return this.client==="sqlite3"&&O?.type==="datetime"&&O.dateOnly&&(R!=null&&(R=`${R.toISOString().slice(0,10)}T23:59:59.999Z`),w!=null&&(w=w.toISOString().slice(0,10))),this.client==="oracledb"?C=this.convertClobs(p):this.client==="sqlite3"&&O?.type==="bigint"&&(C=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(p)]),R=this.knex.raw("CAST(? AS INTEGER)",[T.high]),w=this.knex.raw("CAST(? AS INTEGER)",[T.low])),a&&(h=h.or),_&&I?h.whereBetween(C,[w,R]):_?h.where(C,">=",w):I?h.where(C,"<=",R):h}),r.equal&&d(r.equal,"equal",(h,p,T)=>{let A=this.getFieldSchema(p);if(a&&(h=h.or),this.client==="mssql")return h.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return h.where(I=>I.whereNotNull(_).andWhere(_,T))}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?h.whereLike(p,`${T.toISOString().slice(0,10)}%`):h.whereNull(p):h.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(p),T])}),r.notEqual&&d(r.notEqual,"notEqual",(h,p,T)=>{let A=this.getFieldSchema(p);if(a&&(h=h.or),this.client==="mssql")return h.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return h.where(I=>I.not.whereNull(_).and.where(_,"!=",T)).or.whereNull(_)}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?h.not.whereLike(p,`${T.toISOString().slice(0,10)}%`).or.whereNull(p):h.not.whereNull(p):h.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(p),T])}),r.empty&&d(r.empty,"empty",(h,p)=>(a&&(h=h.or),h.whereNull(p))),r.notEmpty&&d(r.notEmpty,"notEmpty",(h,p)=>(a&&(h=h.or),h.whereNotNull(p))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let y=o?.[this.table._id]||this.table._id;return r.documentType&&!Af(this.table)&&y&&e.andWhereLike(`${y}._id`,`${Ot(r.documentType)}%`),e}isSqs(){return bO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;bO(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${uh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let 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 g=`${o}.${u}`,m;this.isAggregateField(u)?m=this.rawQuotedIdentifier(u):this.client==="oracledb"?m=this.convertClobs(g):m=this.rawQuotedIdentifier(g),e=e.orderByRaw(`?? ?? ${f?"nulls ??":""}`,[m,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:g,through:m,to:y,from:h,fromPrimary:p,toPrimary:T}=f;if(!g||!r)continue;let A=l[g];if(!A)throw new Error(`related table "${g}" not found in datasource`);let _=u?.[g]||g,I=u?.[r]||r,O=m&&u?.[m]||m,C=this.tableNameWithSchema(g,{alias:_,schema:c}),R=[...A?.primary||[],A?.primaryDisplay].filter(q=>q),w=sF(d.filter(q=>q.split(".")[0]===_),R);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let b=w.map(q=>this.buildJsonField(A,q));if(!b.length)continue;let G=b.map(q=>{let B=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${B}??`,[q[0],q[1]]).toString()}).join(","),ee=`${_}.${T||y}`,M=o.from(C).orderBy(ee),U=m&&T&&p,L=U?`${O}.${h}`:`${_}.${y}`,K=U?`${I}.${p}`:`${I}.${h}`;if(U){let q=this.tableNameWithSchema(m,{alias:O,schema:c});M=M.join(q,function(){this.on(`${_}.${T}`,"=",`${O}.${y}`)})}M=M.where(this.rawQuotedIdentifier(L),"=",this.rawQuotedIdentifier(K));let F=s(q=>(M=M.select(w.map(B=>this.rawQuotedIdentifier(B))).limit(ih()),o.select(q).from({[_]:M})),"standardWrap"),j;switch(i){case"sqlite3":M=this.addJoinFieldCheck(M,f),j=F(this.knex.raw(`json_group_array(json_object(${G}))`));break;case"pg":j=F(this.knex.raw(`json_agg(json_build_object(${G}))`));break;case"mariadb":j=M.select(o.raw(`json_arrayagg(json_object(${G}) LIMIT ${ih()})`));break;case"mysql2":case"oracledb":j=F(this.knex.raw(`json_arrayagg(json_object(${G}))`));break;case"mssql":{let q=o.select("*").from({[I]:M.select(b.map(B=>o.ref(B[1]).as(B[0]))).limit(ih())});j=o.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:j})}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,g=this.tableNameWithSchema(a,{alias:l,schema:o}),m=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(m,function(){for(let y of n){let h=y.fromPrimary,p=y.from;this.orOn(`${f}.${h}`,"=",`${d}.${p}`)}}).leftJoin(g,function(){for(let y of n){let h=y.toPrimary,p=y.to;this.orOn(`${l}.${h}`,`${d}.${p}`)}}):e=e.leftJoin(g,function(){for(let y of n){let h=y.from,p=y.to;this.orOn(`${f}.${h}`,"=",`${l}.${p}`)}}),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 m=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=m}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 g=this.query.tableAliases?.[a.name]||a.name,m=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[g]:"paginated"}));return this.addJsonRelationships(m,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())}},ah=class extends Wc{static{s(this,"SqlQueryBuilder")}constructor(e,r=DO()){super(e),this.limit=r}convertToNative(e,r={}){let n=this.getSqlClient();if(r?.disableBindings)return{sql:e.toString()};{let i=ti(e);return n==="sqlite3"&&(i=NO(i)),i}}_query(e,r={}){let n=this.getSqlClient(),i={client:this.getBaseSqlClient()};(n==="sqlite3"||n==="oracledb")&&(i.useNullAsDefault=!0);let o=(0,xO.knex)(i),a,u=new oh(n,o,e);switch(this._operation(e)){case"CREATE":a=u.create(r);break;case"READ":a=u.read({limits:{query:this.limit,base:DO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(r);break;case"DELETE":a=u.delete(r);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(e);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,r)}async getReturningRow(e,r){if(!r.extra||!r.extra.idFilter)return{};let n=this._query({operation:"READ",datasource:r.datasource,schema:r.schema,table:r.table,tables:r.tables,resource:{fields:[]},filters:r.extra?.idFilter,paginate:{limit:1}});return e(n,"READ")}checkLookupKeys(e,r){if(!e||!r.table.primary)return r;let n=r.table.primary[0];return r.extra={idFilter:{equal:{[n]:e}}},r}async queryWithReturning(e,r,n=i=>i){let i=this.getSqlClient(),o=this._operation(e),a=this._query(e,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let f of a)d.push(await r(f,o));return d}let u;o==="DELETE"&&(u=n(await this.getReturningRow(r,e)));let c=await r(a,o),l=n(c);if(o==="CREATE"||o==="UPDATE"){let d;i==="mssql"?d=l?.[0].id:(i==="mysql2"||i==="mariadb")&&(d=l?.insertId),u=n(await this.getReturningRow(r,this.checkLookupKeys(d,e)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(e,r){let n=e.name;if(e.sourceType==="internal"||e.sourceId===Yc){if(!e._id)return;n=e._id}return r?.[n]||n}convertJsonStringColumns(e,r,n){let i=this.getTableName(e,n);for(let[o,a]of Object.entries(e.schema)){if(!PO(a))continue;let u=`${i}.${o}`;for(let c of r)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return r}log(e,r){Fs(this.getSqlClient(),e,r)}},LO=ah;var ch={};P(ch,{base:()=>lF});function lF(t){return{_id:xt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(lF,"base");var dh={};P(dh,{jsonFromCsvString:()=>dF});var UO=W(require("csvtojson"));async function dF(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,UO.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(dF,"jsonFromCsvString");var fh=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)}},Gc=fh;var kO=W(require("@koa/router"));var Dn=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 Gc(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 kO.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 Go=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new Dn;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 fF={...Js,...le},pF=s((t={})=>{Xa(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,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