@budibase/backend-core 3.39.31 → 3.40.0
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 +8 -8
- package/dist/index.js.map +2 -2
- package/dist/package.json +2 -2
- package/dist/src/constants/db.d.ts +2 -1
- package/dist/src/constants/db.js +1 -0
- package/dist/src/constants/db.js.map +1 -1
- package/dist/src/environment.d.ts +1 -0
- package/dist/src/environment.js +3 -1
- package/dist/src/environment.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
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}},N=(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",h="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+)?$/,E=/\[([^\]]+)]|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:h,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 h: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[h]=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(h,1);Te.$d[B](fe),Te.init(),this.$d=Te.set(h,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(E,(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",h]].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 PI=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=PI});var xh=Q(Bi=>{"use strict";var NI=Bi&&Bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bi,"__esModule",{value:!0});Rt();var Fi=ut(),LI=NI(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 Ph=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 Nh=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 h=0;h<n.length;h++){let m=n[h];m(i,s(function(E){if(E){if(!cl.default.isError(E))return l(E,o);if(r)return E.value=o,l(E,o);f.push(E)}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((HB,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:h,params:m,message:y}=t,{parent:E,context:p}=u;function T(C){return Iw.default.isRef(C)?C.getValue(i,E,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:E,type:f,createError:A,resolve:T,options:u,originalValue:c},d);if(!l){try{Promise.resolve(h.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=h.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(),Pw=Ft(Hh()),og=Ft(ta()),oa=Ft(tg()),ag=Ft(qi()),Nw=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 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}".
|
|
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},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,og.default)({args:f,value:d,path:o,sync:i,tests:h,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 Nw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new Pw.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 Pn=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(Pn());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(Pn()),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(Pn()),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(Pn()),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 Nn}s(_l,"create");var Nn=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=Nn;Nn.INVALID_DATE=Al;_l.prototype=Nn.prototype;_l.INVALID_DATE=Al});var Dg=Q((SW,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 h;try{h=", node was:"+JSON.stringify(l)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var 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 Pg=Dt(require("lodash/has")),Ng=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 h=o[f],m=(0,Pg.default)(i,f);if(h){let y,E=i[f];l.path=(r.path?`${r.path}.`:"")+f,h=h.resolve({value:E,context:r.context,parent:c});let p="spec"in h?h.spec:void 0,T=p?.strict;if(p?.strip){d=d||f in i;continue}y=!r.__validating||!T?h.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 h=this._nodes.map(m=>(y,E)=>{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]}),E);return}E(null)});(0,gR.default)({sync:o,tests:h,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=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,Pg.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(Ng.default)}constantCase(){return this.transformKeys(e=>(0,Ng.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(Pn()),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,h=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}h=h||y;let E=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:h[p]});E[p]=(I,O)=>l.validate(T,_,O)}(0,_R.default)({sync:u,path:c,value:y,errors:a,endEarly:d,tests:E},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 PR.create},"get")});Object.defineProperty(ie,"lazy",{enumerable:!0,get:s(function(){return NR.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()),PR=qr(),NR=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(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});var Pl=Ll();Nl.default=()=>{(0,Pl.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,Pl.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,Pl.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var 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,h,m,y,E,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:(h=O.hours.upperLimit)!==null&&h!==void 0?h: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:(E=O.months.lowerLimit)!==null&&E!==void 0?E: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(Ph()),eC=zr(Nh()),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")}},P="numeric",pt="short",qe="long",Aa={year:P,month:P,day:P},bE={year:P,month:pt,day:P},nC={year:P,month:pt,day:P,weekday:pt},xE={year:P,month:qe,day:P},vE={year:P,month:qe,day:P,weekday:qe},PE={hour:P,minute:P},NE={hour:P,minute:P,second:P},LE={hour:P,minute:P,second:P,timeZoneName:pt},UE={hour:P,minute:P,second:P,timeZoneName:qe},kE={hour:P,minute:P,hourCycle:"h23"},ME={hour:P,minute:P,second:P,hourCycle:"h23"},FE={hour:P,minute:P,second:P,hourCycle:"h23",timeZoneName:pt},BE={hour:P,minute:P,second:P,hourCycle:"h23",timeZoneName:qe},WE={year:P,month:P,day:P,hour:P,minute:P},GE={year:P,month:P,day:P,hour:P,minute:P,second:P},$E={year:P,month:pt,day:P,hour:P,minute:P},VE={year:P,month:pt,day:P,hour:P,minute:P,second:P},iC={year:P,month:pt,day:P,weekday:pt,hour:P,minute:P},qE={year:P,month:qe,day:P,hour:P,minute:P,timeZoneName:pt},KE={year:P,month:qe,day:P,hour:P,minute:P,second:P,timeZoneName:pt},QE={year:P,month:qe,day:P,weekday:qe,hour:P,minute:P,timeZoneName:qe},jE={year:P,month:qe,day:P,weekday:qe,hour:P,minute:P,second:P,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 h=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,(h-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"],PC=["Before Christ","Anno Domini"],NC=["BC","AD"],LC=["B","A"];function fy(t){switch(t){case"narrow":return[...LC];case"short":return[...NC];case"long":return[...PC];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:PE,tt:NE,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"),h=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),h)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>h=>{let m=i(h);if(m){let y=f.isNegativeDuration&&m!==f.largestUnit?n:1,E;return this.opts.signMode==="negativeLargestOnly"&&m!==f.largestUnit?E="never":this.opts.signMode==="all"?E="always":E="auto",this.num(d.get(m)*y,h.length,E)}else return h},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:h})=>f?d:d.concat(h),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return 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]==="-",h=s((m,y=!1)=>m!==void 0&&(y||m&&d)?-m:m,"maybeNegate");return[{years:h(Jr(r)),months:h(Jr(n)),weeks:h(Jr(i)),days:h(Jr(o)),hours:h(Jr(a)),minutes:h(Jr(u)),seconds:h(Jr(c),c==="-0"),milliseconds:h(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,h=gd(e,i,n,r,o,a,u),m;return c?m=ZC[c]:l?m=0:m=ba(d,f),[h,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 PD(t){return t.replace(/\./g,"\\.?").replace(_y,Ay)}s(PD,"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(PD).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 ND(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(ND,"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}"),h=dt(e,"{4,6}"),m=s(p=>({regex:RegExp(ND(p.val)),deser:s(([T])=>T,"deser"),literal:!0}),"literal"),E=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(h);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 E.token=t,E}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),h=!H(o.month)||!H(o.day),m=f||h,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(h&&d)throw new pr("Can't mix ordinal dates with month/day");let E=y||o.weekday&&!m,p,T,A=ha(c,l);E?(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=E?_C(o,a,u):d?OC(o):ey(o),O=I||ty(o);if(O)return t.invalid(O);let C=E?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[h,m]=Ea(f,this.o,this.zone);return Xr(this,{ts:h,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 PE}static get TIME_WITH_SECONDS(){return NE}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(($W,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 Ny=Q((qW,Py)=>{"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");Py.exports=YD});var Uy=Q((QW,Ly)=>{"use strict";var zD=Ny();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(h,m){var y=l.start+m;return(y-l.start)%l.step===0?y:null}).filter(function(h){return h!=null})):l.end===r-l.step+1?a.push(l.start+"/"+l.step):a.push(l.start+"-"+l.end+"/"+l.step)}return a.join(",")}s(JD,"stringifyField");Ly.exports=JD});var Fy=Q((HW,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 E=0,p=y.length;E<p;E++){var T=y[E];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 h=0,m=f.length;h<m;h++)d(a(f[h]));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 h=+f[0],m=+f[1];if(Number.isNaN(h)||Number.isNaN(m)||h<n.min||m>n.max)throw new Error("Constraint error, got range "+h+"-"+m+" expected range "+n.min+"-"+n.max);if(h>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 E=h,p=m;E<=p;E++){var T=d.indexOf(E)!==-1;!T&&y>0&&y%l===0?(y=1,d.push(E)):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 h=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(h=h||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()],E=this.fields.dayOfWeek.length===k.constraints[5].max-k.constraints[5].min+1,p=a.getHours();if(!h&&(!m||E)){this._applyTimezoneShift(a,o,"Day");continue}if(!y&&E&&!h){this._applyTimezoneShift(a,o,"Day");continue}if(y&&!E&&!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 h=k.map[d],m=c[c.length>f?d:d-l];if(d<l||!m)u.push(k._parseField(h,k.parseDefaults[d],k.constraints[d]));else{var y=h==="dayOfWeek"?A(m):m;u.push(k._parseField(h,y,k.constraints[d]))}}for(var E={},d=0,f=k.map.length;d<f;d++){var p=k.map[d];E[p]=u[d]}var T=k._handleMaxDaysInMonth(E);return E.dayOfMonth=T||E.dayOfMonth,new k(E,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(h,m,y){if(!m)throw new Error("Validation error, Field "+h+" is missing");if(m.length===0)throw new Error("Validation error, Field "+h+" contains no values");for(var E=0,p=m.length;E<p;E++){var T=m[E];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(h,m,y){return!m||h!==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((zW,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 aF={};N(aF,{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:()=>Pe,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:()=>g,errors:()=>zu,events:()=>Ti,features:()=>Lm,getErrorMessage:()=>BA,getPublicError:()=>Yu,init:()=>oF,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:()=>sF,timers:()=>Cu,userUtils:()=>um,users:()=>Ai,utils:()=>ai,warnings:()=>Wm,withEnv:()=>dT});module.exports=BO(aF);var tr={};N(tr,{analyticsEnabled:()=>Xu,generateConfigID:()=>Po,getConfig:()=>Ge,getDefaultGoogleConfig:()=>Em,getGoogleConfig:()=>pc,getGoogleDatasourceConfig:()=>Tm,getOIDCConfig:()=>mk,getOIDCConfigById:()=>Sm,getOIDCLogosDoc:()=>fk,getPlatformUrl:()=>No,getRecaptchaConfig:()=>Ek,getSCIMConfig:()=>gk,getSMTPConfig:()=>hk,getSMTPConfigDoc:()=>N_,getSettingsConfig:()=>ym,getSettingsConfigDoc:()=>_i,getTranslationsConfig:()=>lk,getTranslationsConfigDoc:()=>P_,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 Pi=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Pi||{});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={};N(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:()=>Pe,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 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 Dn={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Ni={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var Ne={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={};N(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:()=>Pb,sort:()=>rT,splitFiltersArray:()=>Yo});var Qn=W(Sh());var wt={};N(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(Ne).reduce((t,e)=>{let n=Ne[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={};N(Ue,{accountPortalAccountUrl:()=>wd,accountPortalBillingUrl:()=>Rd,accountPortalUpgradeUrl:()=>Cd,agentChatUrl:()=>Nd,appAgentUrl:()=>La,appChatUrl:()=>Na,applyBaseUrl:()=>jy,builderAppsUrl:()=>Pd,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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"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={};N(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={};N(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 h=f;if(h.required===!0){a.push(d);let{required:m,...y}=h;u[d]=e(y)}else u[d]=e(h)}else u[d]=f;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=e(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>e(a)));return i}s(e,"processSchema");let r=e(t);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}s(ob,"normalizeSchemaForStructuredOutput");var Ad={};N(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={};N(_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={};N(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,h)=>d.replace(o(h),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,Ni.ACCOUNT),"accountPortalAccountUrl"),Rd=s((t,e)=>{let r=typeof e=="string"||e==null?{tenantId:e}:e,n=qt(t,Ni.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,Ni.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return qt(t,Ni.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"),Pd=s(t=>qt(t,Dn.APPS),"builderAppsUrl"),Na=s(t=>`/app-chat${Yy(t)}`,"appChatUrl"),La=s((t,e)=>`${Yy(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),Nd=s((t,e)=>Na(La(t,e)),"agentChatUrl"),zy={accountPortalAccountUrl:wd,accountPortalBillingUrl:Rd,accountPortalUpgradeUrl:Cd,builderWorkspacesUrl:Dd,builderSettingsEmailUrl:bd,builderSettingsAuthUrl:xd,builderSettingsPeopleUsersUrl:vd,builderAppsUrl:Pd,appChatUrl:Na,appAgentUrl:La,agentChatUrl:Nd};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=Ne,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=[Ne.StartsWith.value,Ne.Like.value,Ne.Equals.value,Ne.NotEquals.value,Ne.Contains.value,Ne.NotContains.value,Ne.ContainsAny.value,Ne.In.value,Ne.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 Pb(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(Pb,"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),h=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),E=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:h,oneOf:y,notOneOf:E,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={};N(ke,{applications:()=>$d,automations:()=>Vd,screens:()=>jd,users:()=>Qd});var $d={};N($d,{getDevAppID:()=>Nb,getProdAppID:()=>Is});var Gd=Ot("app"),Os=Ot("app_dev");function Nb(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(Nb,"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={};N(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={};N(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={};N(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=(y=>(y.USER_BY_WORKSPACE="by_app",y.USER_BY_EMAIL="by_email2",y.BY_API_KEY="by_api_key",y.AGENT_REQUESTS_BY_AGENT="agent_requests_by_agent",y.AGENT_REQUESTS_BY_UPDATED_AT="agent_requests_by_updated_at_2",y.AGENT_REQUESTS_BY_STATUS_AND_UPDATED_AT="agent_requests_by_status_and_updated_at",y.LINK="by_link",y.ROUTING="screen_routes_2",y.PROJECT_MEMBERS="project_members",y.AUTOMATION_LOGS="automation_logs",y.ACCOUNT_BY_EMAIL="account_by_email",y.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",y.USER_BY_GROUP="user_by_group",y.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",y))(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={};N(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={};N(kp,{DocWritethrough:()=>Up,DocWritethroughProcessor:()=>so,getProcessor:()=>tN,init:()=>RA});var Lp={};N(Lp,{BudibaseQueue:()=>Et,InMemoryQueue:()=>Ru,JobQueue:()=>ui,QueuedProcessor:()=>Np,UnretriableError:()=>Mu,shutdown:()=>hP});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,...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 g=mt;var Ha={};N(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=g.REDIS_PASSWORD,e=g.REDIS_USERNAME,r=g.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");e=e||a[0]||void 0,t=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:t,username:e,port:isNaN(o)?6379:o}}s(ja,"getRedisConnectionDetails");function 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=g.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={};N(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:()=>sP,newid:()=>X,openJwt:()=>Au,setAuthCookie:()=>Dv,setCookie:()=>rp,time:()=>Pv,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=g.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={};N(le,{DEFAULT_TENANT_ID:()=>ce,baseGlobalDBName:()=>ks,doInAutomationContext:()=>bx,doInContext:()=>xf,doInEnvironmentContext:()=>Wx,doInFeatureFlagOverrideContext:()=>Mf,doInIPContext:()=>Nf,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:()=>Pf,getIdentity:()=>Qt,getLicense:()=>Px,getOrThrowWorkspaceId:()=>Mx,getPlatformURL:()=>bf,getProdWorkspaceDB:()=>qx,getProdWorkspaceId:()=>Bx,getScimDBName:()=>wx,getSelfHostCloudDB:()=>Nx,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={};N(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(g.COUCH_DB_URL,{user:g.COUCH_DB_USERNAME||"",password:g.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=g.COUCH_DB_SQL_URL;if(!a&&r.url){let u=new URL(r.url);u.port=g.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=g.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var 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 Ps({url:o,cookie:i,method:e,body:r})}s(gT,"directCouchCall");async function Ps({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(Ps,"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 Ns(t){if(!(!t||g.isTest()))try{return await t.close()}catch{}}s(Ns,"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={};N(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(!g.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 Ps({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 Ps(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 Pt(t){if(!t)throw Df;return t.startsWith(nt)}s(Pt,"isDevWorkspaceID");function Ox(t){if(!t)throw Df;return t.startsWith(rt)&&!Pt(t)}s(Ox,"isProdWorkspaceID");function Us(t){if(!t)throw Df;return Pt(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 g.PLATFORM_URL}s(bf,"getPlatformURL");function Sr(){return!!g.MULTI_TENANCY}s(Sr,"isMultiTenant");function Rx(){return!!ge.get()?.tenantId}s(Rx,"isTenantIdSet");function Cx(){return g.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 g.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 Px(){return ge.get()?.license}s(Px,"getLicense");function ru(){return!!ge.get()?.isSelfHostUsingCloud}s(ru,"isSelfHostUsingCloud");function Nx(){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(Nx,"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&&g.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 Pf(){return ge.get()?.ip}s(Pf,"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 Nf(t,e){return ht({ip:t},e)}s(Nf,"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||g.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return 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 Pt(t)}s(xT,"isDevWorkspace");function Hx(){return!xT()}s(Hx,"isProdWorkspace");var Ir={};N(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:()=>Ns,createApiKeyView:()=>TS,createNewUserEmailView:()=>ES,createPlatformAccountEmailView:()=>AS,createPlatformUserView:()=>_S,createUserAppView:()=>yS,createView:()=>si,dbExists:()=>dv,directCouchAllDbs:()=>Cf,directCouchCall:()=>gT,directCouchQuery:()=>Ef,directCouchUrlCall:()=>Ps,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:()=>Nt,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:()=>Pt,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={};N(Bs,{WorkspaceState:()=>$f,getWorkspaceMetadata:()=>hu,invalidateWorkspaceMetadata:()=>iv});var _r={};N(_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"),PT=require("lodash");var vT;if(g.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(g.MOCK_REDIS)return e.addTags({mock:!0}),new vT(on());let r;if(g.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&&!g.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return nu.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Yn}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${Yn}${e}`;let n;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,PT.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,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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"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(`
|
|
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,
|
|
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) {
|
|
10
10
|
if (doc._id.startsWith("us${"_"}")) {
|
|
11
11
|
emit(doc.email.toLowerCase(), doc._id)
|
|
12
12
|
}
|
|
@@ -21,7 +21,7 @@ attempted value: ${o}
|
|
|
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&&
|
|
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) {
|
|
25
25
|
if (doc._id.startsWith("acc_metadata${"_"}")) {
|
|
26
26
|
emit(doc.email.toLowerCase(), doc._id)
|
|
27
27
|
}
|
|
@@ -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([Ns(this.source),Ns(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,h)=>f?.startsWith(h+"_"),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:s((f,h)=>!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,h):!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((E,p)=>Or(p)?null:`${E}:${e.preprocess(p,o)}`,"equal"),c=s((E,p,T="AND")=>{if(Or(p))return null;if(!Array.isArray(p))return`${E}:${p}`;let A=`${e.preprocess(p[0],{escape:!0})}`;for(let _=1;_<p.length;_++)A+=` ${T} ${e.preprocess(p[_],{escape:!0})}`;return`${E}:(${A})`},"contains"),l=s((E,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"fuzzy"}),`${E}:/.*${p}.*/`),"fuzzy"),d=s((E,p)=>{let T=r?"*:* AND ":"",A=r?"AND":void 0;return T+"NOT "+c(E,p,A)},"notContains"),f=s((E,p)=>c(E,p,"OR"),"containsAny"),h=s((E,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`${E}:(${T})`},"oneOf"),m=s((E,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`(*:* -${E}:(${T}))`},"notOneOf");function y(E,p,T){let A="";for(let[_,I]of Object.entries(E)){_=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,(E,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"string"}),`${E}:${p}*`)),this.#e.range&&y(this.#e.range,(E,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`${E}:[${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,(E,p)=>Or(p)?null:typeof p=="boolean"?`(*:* AND !${E}:${p})`:`!${E}:${e.preprocess(p,o)}`),this.#e.empty&&y(this.#e.empty,E=>(i=!1,`(*:* -${E}:["" TO *])`)),this.#e.notEmpty&&y(this.#e.notEmpty,E=>(i=!1,`${E}:["" TO *]`)),this.#e.oneOf&&y(this.#e.oneOf,h),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={};N(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={};N(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(!g.SESSION_EXPIRY_SECONDS)return t;let e=parseInt(g.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();!g.isDev()&&g.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 PS(t.path)}s(wv,"isServingBuilderPreview");function PS(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(PS,"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=PS(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,g.JWT_SECRET)}catch(e){if(g.JWT_SECRET_FALLBACK)return Su.default.verify(t,g.JWT_SECRET_FALLBACK);throw e}}s(Au,"openJwt");function Hs(t){return g.INTERNAL_API_KEY&&g.INTERNAL_API_KEY===t?!0:!!(g.INTERNAL_API_KEY_FALLBACK&&g.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,g.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),g.COOKIE_DOMAIN&&(a.domain=g.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 Pv(t){let e=performance.now();return[await t(),me.fromMilliseconds(performance.now()-e)]}s(Pv,"time");var _u=require("undici");function Nv(t,e){let r,n=null;try{let o=new URL(t);r=o.hostname,n=o.port||null}catch{return!1}let i=e.split(/[\s,]+/).filter(o=>o.length>0);for(let o of i){let u=o.replace(/^\./,"*").match(/^(.+?)(?::(\d+))?$/);if(!u||!u[1])continue;let c=u[1].toLowerCase(),l=u[2]||null,d=!1;if(c==="*")d=!0;else if(c.startsWith("*")){let h=c.slice(1);d=r===h.slice(1)||r.endsWith(h)}else d=r===c;if(d&&(!l||n===l))return!0}return!1}s(Nv,"isUrlMatchingNoProxy");function 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&&Nv(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={};N(fp,{isBlacklisted:()=>dp,refreshBlacklist:()=>MS,resolveAddress:()=>Iu});var NS=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)(NS.default.lookup);function US(){return!(g.SELF_HOSTED&&g.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=g.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 eP(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(eP,"nextRequestForRedirect");function tP(t,e){return new URL(t).origin!==new URL(e).origin}s(tP,"shouldStripSensitiveHeadersForRedirect");function rP(t){if(!t.headers)return t;let e=new wu.Headers(t.headers);return zv.forEach(r=>e.delete(r)),{...t,headers:e}}s(rP,"stripSensitiveHeadersForRedirect");function nP(t){return!t||typeof t!="object"||!("resume"in t)?!1:typeof t.resume=="function"}s(nP,"isResumableBody");function iP(t){let e=t.body;nP(e)&&e.resume()}s(iP,"releaseResponseBody");async function oi(t,e={},{followRedirects:r=!0,returnRedirectWithoutLocation:n=!1,fetchFn:i=wu.default}={}){let o=t,a={...e,redirect:"manual"};for(let u=0;u<=FS;u++){let c=await Xv(o),l;try{l=await i(o,{...a,agent:Zv(o,c)},c)}catch(h){let m=pp(o).hostname;throw h instanceof Error?(h.message=`Failed to connect to resolved IP for ${m}: ${h.message}`,h):new Error(`Failed to connect to resolved IP for ${m}: unknown network error`)}if(!Jv(l.status))return l;if(iP(l),!r)throw new Error("Redirects are not permitted.");if(u===FS)break;let d=l.headers.get("location");if(!d){if(n)return l;throw new Error("Maximum redirect reached.")}let f=pp(new URL(d,o).toString()).toString();a=eP(a,l.status),tP(o,f)&&(a=rP(a)),o=f}throw new Error("Maximum redirect reached.")}s(oi,"fetchWithBlacklist");var sP=s((t,e)=>`datasource:creation:${t}:microsoft:${e}`,"microsoftDatasourceCreationCacheKey");function oP(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(oP,"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,h)=>{f?l(f):c(h)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await Ue.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=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((h,m)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(m))},"errorHandler"),f=s((h,m)=>{h.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=>oP(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){cP(t,e),r&&aP(t,r)}s(qS,"addListeners");function aP(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(aP,"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 uP={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 cP(t,e){let r=uP[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(cP,"logging");var Cu={};N(Cu,{cleanup:()=>lP,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 lP(){for(let t of Ys)clearInterval(t);Ys=[]}s(lP,"cleanup");var Xt=W(require("dd-trace")),zs=W(require("object-sizeof"));var dP=me.fromMinutes(5).toMs(),fP=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 pP(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(pP,"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 mP(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(mP,"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:dP,lockRenewTime:fP}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return g.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new 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&&!g.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,...mP(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 pP(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function hP(){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(hP,"shutdown");var io={};N(io,{correlation:()=>Xs,logAlert:()=>mn,logAlertWithInfo:()=>ZP,logWarn:()=>di,logger:()=>ku,system:()=>vp});var Xs={};N(Xs,{getId:()=>yp,setHeader:()=>gP});var jS=require("correlation-id"),gP=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")),Pp=W(require("dd-trace")),wA=require("dd-trace/ext");var vp={};N(vp,{getLogReadStream:()=>jP,getSingleFileMaxSizeInfo:()=>OA,localFileDestination:()=>xp});var no=W(require("fs")),bp=W(require("path")),TA=W(require("rotating-file-stream"));var Dp={};N(Dp,{ObjectStore:()=>at,ObjectStoreBuckets:()=>yP,SIGNED_FILE_PREFIX:()=>Ip,bucketTTLConfig:()=>bu,budibaseTempDir:()=>fn,client3rdPartyLibrary:()=>WP,clientLibraryPath:()=>BP,clientLibraryUrl:()=>GP,createBucketIfNotExists:()=>ro,deleteFile:()=>xP,deleteFiles:()=>vP,deleteFolder:()=>aA,downloadTarball:()=>NP,downloadTarballDirect:()=>PP,enrichPWAImages:()=>$P,enrichPluginURLs:()=>qP,extractBucketAndPath:()=>Tp,getAllFiles:()=>CP,getAppFileUrl:()=>dA,getClientCacheKey:()=>lA,getGlobalFileS3Key:()=>fA,getGlobalFileUrl:()=>VP,getObjectMetadata:()=>LP,getPluginIconKey:()=>hA,getPluginJSKey:()=>mA,getPluginS3Dir:()=>EA,getPresignedUrl:()=>pn,getReadStream:()=>xu,getSafeRetrieveDirectoryPath:()=>oA,listAllObjects:()=>wp,objectExists:()=>UP,processAutomationAttachment:()=>SP,processObjectStoreAttachment:()=>XS,retrieve:()=>sA,retrieveDirectory:()=>bP,retrieveToTmp:()=>DP,sanitizeBucket:()=>be,sanitizeKey:()=>Ee,streamUpload:()=>iA,streamUploadMany:()=>RP,upload:()=>wP,uploadDirectory:()=>Rp});var Pu=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"),Nu=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 yP={BACKUPS:g.BACKUPS_BUCKET_NAME,APPS:g.APPS_BUCKET_NAME,TEMPLATES:g.TEMPLATES_BUCKET_NAME,GLOBAL:g.GLOBAL_BUCKET_NAME,PLUGINS:g.PLUGIN_BUCKET_NAME,TEMP:g.TEMP_BUCKET_NAME},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 TP(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(TP,"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 SP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await TP(t):await XS(t)}s(SP,"processAutomationAttachment");var AP=require("sanitize-s3-objectkey"),_P={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"},OP=[Rr.html,Rr.css,Rr.js,Rr.json];function Ee(t){let e=AP(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:g.MINIO_ACCESS_KEY,secretAccessKey:g.MINIO_SECRET_KEY},region:g.AWS_REGION};if(!g.MINIO_ENABLED&&g.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:g.MINIO_ACCESS_KEY,secretAccessKey:g.MINIO_SECRET_KEY,sessionToken:g.AWS_SESSION_TOKEN}),g.MINIO_URL&&(t.presigning&&g.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=g.MINIO_URL),g.S3_IGNORE_SELF_SIGNED==="true"){let r=new tA.default.Agent({rejectUnauthorized:!1});e.requestHandler=new eA.NodeHttpHandler({httpsAgent:r})}return new Pu.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=_P.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 IP=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=IP(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 wP({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 E=bu(t,a);await l.putBucketLifecycleConfiguration(E)}let f=n,h=f||(u?Rr[u.toLowerCase()]:Rr.txt),m={Bucket:be(t),Key:Ee(e),Body:c,ContentType:h};if(i&&typeof i=="object"){for(let E of Object.keys(i))(!i[E]||typeof i[E]!="string")&&delete i[E];m.Metadata=i}return new Sp.Upload({client:l,params:m}).done()}s(wP,"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}),h=await l.headObject({Bucket:c,Key:Ee(r)});return a.addTags({contentType:f,contentLength:h.ContentLength}),{...d,ContentLength:h.ContentLength}})}s(iA,"streamUpload");async function RP({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(RP,"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}),OP.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return Nu.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 CP(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(CP,"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 Pu.GetObjectCommand(i),{expiresIn:r});if(g.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 DP(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 Nu.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(DP,"retrieveToTmp");async function bP(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(bP,"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 xP(t,e){let r=at();await ro(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(xP,"deleteFile");async function vP(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(vP,"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 PP(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(PP,"downloadTarballDirect");async function NP(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)),!g.isTest()&&g.SELF_HOSTED&&await Rp(e,i,r),i}s(NP,"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 Nu.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 LP(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(LP,"getObjectMetadata");async function UP(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(UP,"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 kP(){if(!g.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Lu||(Lu=Buffer.from(g.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Lu)}s(kP,"getPrivateKey");var MP=s(()=>({keypairId:g.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:kP(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),li=s(t=>{let e=FP(t);return uA.getSignedUrl(e,MP())},"getPresignedUrl"),FP=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${g.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function BP(t){return`${Ee(t)}/budibase-client.js`}s(BP,"clientLibraryPath");function WP(t,e){return`${Ee(t)}/${e}`}s(WP,"client3rdPartyLibrary");async function GP(t,e){return`/api/assets/${t}/client?${await lA(e)}`}s(GP,"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 g.CLOUDFRONT_CDN?li(t):await pn(g.APPS_BUCKET_NAME,t)}s(dA,"getAppFileUrl");async function $P(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($P,"enrichPWAImages");var VP=s(async(t,e,r)=>{let n=fA(t,e);return g.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),li(n)):await pn(g.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),fA=s((t,e)=>{let r=`${t}/${e}`;return g.MULTI_TENANCY&&(r=`${q()}/${r}`),r},"getGlobalFileS3Key");async function qP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await KP(e),n=await QP(e);return{...e,jsUrl:r,iconUrl:n}}))}s(qP,"enrichPluginURLs");async function KP(t){let e=mA(t);return pA(e)}s(KP,"getPluginJSUrl");async function QP(t){let e=hA(t);if(e)return pA(e)}s(QP,"getPluginIconUrl");async function pA(t){return g.CLOUDFRONT_CDN?li(t):await pn(g.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 g.MULTI_TENANCY&&(e=`${q()}/${e}`),g.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(g.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 jP(){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(jP,"getLogReadStream");function HP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(HP,"isPlainObject");function YP(t){return t instanceof Error}s(YP,"isError");function zP(t){return typeof t=="string"}s(zP,"isMessage");var Cr;if(!g.DISABLE_PINO_LOGGER){let t=g.LOG_LEVEL,e={level:t,formatters:{level:s(c=>({level:c.toUpperCase()}),"level"),bindings:s(()=>g.SELF_HOSTED?{service:g.SERVICE_NAME}:{},"bindings")},timestamp:s(()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`,"timestamp")},r=[];r.push(g.isDev()?{stream:(0,IA.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),g.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=>{zP(p)&&(f=`${f} ${p}`.trimStart()),HP(p)&&d.push(p),YP(p)&&(l=p)});let h=u(),m={};m={tenantId:i(),appId:o(),automationId:a(),identityId:h?._id,identityType:h?.type,correlationId:yp()};let y=Pp.default.scope().active();y&&Pp.default.inject(y.context(),wA.formats.LOG,m);let E={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,E[I]=_):(p[T]=_,T++)}Object.keys(p).length&&(E.data=p)}return[E,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 JP=["AccountError"];function XP(t){return t&&t.suppressAlert}s(XP,"isSuppressed");function mn(t,e){e&&JP.includes(e.name)&&XP(e)||console.error(`bb-alert: ${t}`,e)}s(mn,"logAlert");function ZP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,mn(t,n)}s(ZP,"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"}},Np=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 eN=100,Fu,so=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new Et("docWritethroughQueue",{jobOptions:{attempts:eN}})),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 tN(){return Fu||RA()}s(tN,"getProcessor");var Wu={};N(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={};N(Bp,{createCode:()=>cN,deleteCode:()=>dN,getCode:()=>lN,getExistingInvites:()=>Fp,getInviteCodes:()=>UA,updateCode:()=>uN});var yn={};N(yn,{AUTO_EXTEND_POLLING_MS:()=>vA,doWithLock:()=>uo,newRedlock:()=>En});var xA=W(require("redlock"));async function rN(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(rN,"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 nN(t){let r=`lock:${t.systemLock?"system":q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(nN,"getLockName");var vA=me.fromSeconds(10).toMs();async function uo(t,e){let r=await rN(t.type,t.customOptions),n,i,o,a=!1;try{let u=nN(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 PA=me.fromDays(7).toSeconds(),sN=me.fromSeconds(10).toMs(),Gu="Invitation is not valid or has expired, please request a new one.";function NA(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(NA,"normaliseInviteList");function oN(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(oN,"pruneExpiredInvites");async function Mp(t){let r=await(await Ms()).get(t);return NA(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:sN},e);return r}s(lo,"withInviteListLock");function aN(t,e){return{code:t,email:e.email,info:e.info}}s(aN,"toInviteWithCode");async function LA(t,e){let r=await Ms(),n=NA(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 uN(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()+PA*1e3},await co(n,i)})}s(uN,"updateCode");async function cN(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()+PA*1e3},await co(i,o)}),r}s(cN,"createCode");async function lN(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(lN,"getCode");async function dN(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(dN,"deleteCode");async function UA(){let t=q(),e=await lo(t,async()=>{let n=await Mp(t)||{tenantId:t,invites:{}},i=oN(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,aN(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={};N(Wp,{createCode:()=>pN,getCode:()=>mN,invalidateCode:()=>hN});var fN=me.fromHours(1).toSeconds();async function pN(t,e){let r=X();return await(await Fs()).store(r,{userId:t,info:e},fN),r}s(pN,"createCode");async function mN(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(mN,"getCode");async function hN(t){await(await Fs()).delete(t)}s(hN,"invalidateCode");var nr={};N(nr,{getUser:()=>bo,getUsers:()=>tk,invalidateUser:()=>xo,invalidateUsers:()=>rk});var fo={};N(fo,{getPlatformDB:()=>xr,users:()=>Tt});var Tt={};N(Tt,{addSsoUser:()=>MA,addUser:()=>AN,getUserDoc:()=>kA,lookupTenantId:()=>gN,removeUser:()=>_N,updateUserDoc:()=>EN});function xr(){return Ce(pe.PLATFORM_INFO.name)}s(xr,"getPlatformDB");async function gN(t){return g.MULTI_TENANCY?(await kA(t)).tenantId:ce}s(gN,"lookupTenantId");async function kA(t){return xr().get(t)}s(kA,"getUserDoc");async function EN(t){await xr().put(t)}s(EN,"updateUserDoc");function yN(t,e){return{_id:t,tenantId:e}}s(yN,"newUserIdDoc");function TN(t,e,r){return{_id:e,userId:t,tenantId:r}}s(TN,"newUserEmailDoc");function SN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(SN,"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,()=>SN(t,e,r,n))}s(MA,"addSsoUser");async function AN(t,e,r,n){let i=[Gp(e,()=>yN(e,t)),Gp(r,()=>TN(e,r,t))];n&&i.push(MA(n,r,e,t)),await Promise.all(i)}s(AN,"addUser");async function _N(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(_N,"removeUser");var Sn={};N(Sn,{getAccount:()=>vr,getAccountByTenantId:()=>hi,getStatus:()=>ON});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(g.INTERNAL_ACCOUNT_PORTAL_URL),Vp=g.SELF_HOSTED||g.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":g.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":g.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),ON=s(async()=>{if(Vp)return;let t=await $p.get("/api/status",{headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var Ai={};N(Ai,{UserDB:()=>Ut,addAppBuilder:()=>J0,bulkGetGlobalUsersById:()=>cc,bulkUpdateGlobalUsers:()=>Ro,cleanseUserObject:()=>fm,creatorsInList:()=>Nr,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:()=>Pr,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={};N(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={};N(jp,{PASSWORD_MAX_LENGTH:()=>Kp,PASSWORD_MIN_LENGTH:()=>qp,validatePassword:()=>Qp});var qp=+(g.PASSWORD_MIN_LENGTH||12),Kp=+(g.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={};N(Ju,{createASession:()=>IN,endSession:()=>wN,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));g.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 IN(t,e){let r=await ho(t),n=0;if(r.length>=3){let l=r.sort((h,m)=>new Date(h.createdAt).getTime()-new Date(m.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(h=>h.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(IN,"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 wN(t,e){await(await Ar()).delete(gi(t,e))}s(wN,"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={};N(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:()=>P0,table:()=>g_,user:()=>We,view:()=>E_,workspace:()=>y_});var zp={};N(zp,{enabled:()=>RN});var RN=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={};N(ec,{end:()=>DN,isAlreadySent:()=>Zp,isBackfillingEvent:()=>Xp,recordEvent:()=>Jp,start:()=>CN});var CN=s(async t=>xN({eventWhitelist:t}),"start"),Jp=s(async(t,e)=>{let r=em(t,e);await gn(r,e,void 0,{useTenancy:!1})},"recordEvent"),DN=s(async()=>{await vN(),await PN()},"end"),bN=s(async()=>oo(Oe.BACKFILL_METADATA),"getBackfillMetadata"),xN=s(async t=>gn(Oe.BACKFILL_METADATA,t),"saveBackfillMetadata"),vN=s(async()=>{await ao(Oe.BACKFILL_METADATA)},"deleteBackfillMetadata"),PN=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 bN())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),Zp=s(async(t,e)=>{let r=em(t,e);return!!await oo(r,{useTenancy:!1})},"isAlreadySent"),NN={"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=NN[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${Oe.EVENTS}:${n}:*`;return r},"getEventKey");var rm={};N(rm,{init:()=>FN,processors:()=>rr});var tm=g.SELF_HOSTED&&!g.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={};g.ENABLE_AUDIT_LOG_IP_ADDR&&(o=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&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 LN=new Tn(g.INTERNAL_ACCOUNT_PORTAL_URL),yi=class t{static{s(this,"EventBrokerProcessor")}static init(e){t.getLicenseKeyFn=e}async processEvent(e,r,n,i){if(g.DISABLE_ACCOUNT_PORTAL)return;let o;if(g.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":g.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:g.VERSION,service:g.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 LN.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 UN=new go,kN=new Ei,MN=new yi;function FN(t,e){return yi.init(e),Ei.init(t)}s(FN,"init");var rr=new Eo([UN,kN,MN]);var tc={};N(tc,{checkInstallVersion:()=>GN,getInstall:()=>To,getInstallFromDB:()=>im});var nm=W(require("semver"));var To=s(async()=>br(Oe.INSTALLATION,86400,im,{useTenancy:!1}),"getInstall");async function BN(t){let e={_id:pe.PLATFORM_INFO.docs.install,installId:X(),version:g.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(BN,"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 BN(t);else throw r}return e}),"getInstallFromDB"),WN=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"),GN=s(async()=>{let t=await To(),e=t.version,r=g.VERSION;try{if(e!==r){let n=nm.default.gt(r,e),i=nm.default.lt(r,e);await WN(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 $N=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"),VN=s(async(t,e)=>{let r=t,n="installation",i=So(),o=g.VERSION,a=_o(),u={id:r,type:n,hosting:i,version:o,environment:a};await sm(u,e),await Ao({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),qN=s(async(t,e,r,n=g.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"),KN=s(async(t,e,r)=>{let n=t._id,i=await rc(t.tenantId),o="user",a=Be(t),u=Pr(t),c;jo(t)&&(c=t.providerType);let d=(await Si([t.email])).length>0,f=!!e&&d&&e.verified,h=await _n(),m=e?e.hosting:So(),y=_o();await Ao({id:n,type:o,hosting:m,installationId:h,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:y},r)},"identifyUser"),QN=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(()=>g.isDev()?"development":g.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),So=s(()=>g.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),_n=s(async()=>jN()?"account-portal":(await To()).installId,"getInstallationId"),rc=s(async t=>g.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=g.VERSION,await e.put(r),n)})),"getUniqueTenantId"),jN=s(()=>g.SERVICE==="account-portal","isAccountPortal"),QA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),At={getCurrentIdentity:$N,identifyInstallationGroup:VN,identifyTenantGroup:qN,identifyUser:KN,identifyAccount:QN,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 HN(t,e){let r={tenantId:t.tenantId};await S("account:created",r,void 0,e)}s(HN,"created");async function YN(t){let e={tenantId:t.tenantId};await S("account:deleted",e)}s(YN,"deleted");async function zN(t){let e={tenantId:t.tenantId};await S("account:verified",e)}s(zN,"verified");var HA={created:HN,deleted:YN,verified:zN};function JN(t,e){S("action:automation_step:executed",t,e).catch(r=>{console.error("automationStepExecuted telemetry failed",{action:t,err:r})})}s(JN,"automationStepExecuted");function XN(t){S("action:automation_step:failed",t).catch(e=>{console.error("automationStepFailed telemetry failed",{action:t,err:e})})}s(XN,"automationStepFailed");function ZN(t,e){S("action:crud:executed",t,e).catch(r=>{console.error("crudExecuted telemetry failed",{action:t,err:r})})}s(ZN,"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:JN,automationStepFailed:XN,crudExecuted:ZN,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 PL(t){let e={type:t};await S("auth:sso:updated",e)}s(PL,"SSOUpdated");async function NL(t,e){let r={type:t};await S("auth:sso:activated",r,e)}s(NL,"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:PL,SSOActivated:NL,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=!g.SELF_HOSTED&&!g.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 PU=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"),NU=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:PU,updated:NU,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 P0=s(async()=>{await rr.shutdown(),console.log("Events shutdown")},"shutdown");var um={};N(um,{creatorsInList:()=>Nr,getAccountHolderFromUsers:()=>uc,hasAdminPermissions:()=>Pr,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,Pr=ke.users.hasAdminPermissions,Be=ke.users.hasBuilderPermissions,O_=ke.users.hasAppBuilderPermissions,sc=ke.users.isAdminOrWorkspaceBuilder;async function Nr(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(Nr,"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?N0(t,e):r}s(oc,"isCreatorSync");function N0(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(N0,"isCreatorByGroupMembership");async function ac(t,e){if(g.MULTI_TENANCY){let r=await Io(t);if(r!=null&&r.tenantId!==e)throw new er(t)}if(!g.SELF_HOSTED&&!g.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(!g.SELF_HOSTED&&!g.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),Pr(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&&!g.SELF_HOSTED&&!g.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,Pr),"isAddingAdmin"),W0=s((t,e)=>w_(t,e,Pr),"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 g.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,h=!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,E=0;if((r.isAccountHolder||l)&&(y=0,E=1),l){let[p,T]=await Nr([l,e]);E=p!==T?1:0}else if(!r.isAccountHolder){let p=m.length>0?{...e,userGroups:m}:e;E=(await Nr([p]))[0]?1:0}return t.quotas.addUsers(y,E,async()=>{h&&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 E=o.find(T=>T.email.toLowerCase()===y.email.toLowerCase()),p=c.includes(y.email.toLowerCase());if(E||p){l.push({email:y.email,reason:"Unavailable"});continue}y.userGroups=[...f],o.push(y),await wo(y)&&a.push(y)}let h=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,h));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,h);let E=y.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(E)&&f.length){let p=[],T=E.map(A=>A._id);for(let A of f)p.push(t.groups.addUsers(A,T));await Promise.all(p)}return{successful:E,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 Nr(a)).filter(m=>m).length,f=[];for(let m of a){let E=(await Io(m._id)).ssoId;E&&(await ic(E)).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 h={};return a.reduce((m,y)=>(m[y._id]=y,m),h),c.forEach(m=>{let y=h[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(!g.SELF_HOSTED&&!g.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(h=>h.doc),c=Er.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(ln(null,u))).rows.map(h=>h.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 Nr(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,!g.SELF_HOSTED&&!g.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,!g.SELF_HOSTED&&!g.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={};N(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 Po(t){return`config${"_"}${t}`}s(Po,"generateConfigID");var dc="en";function ak(){return{_id:Po("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(Po(t))}catch(r){if(r.status===404)return;throw r}}s(Ge,"getConfig");async function ck(t){return t._id||(t._id=Po(t.type)),z().put(t)}s(ck,"save");async function P_(){let t=await Ge("translations");return t?(t.config=uk(t.config),t):ak()}s(P_,"getTranslationsConfigDoc");async function lk(){return(await P_()).config}s(lk,"getTranslationsConfig");async function _i(){let t=await Ge("settings");return t||(t={_id:Po("settings"),type:"settings",config:{}}),t.config.platformUrl=await No({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 No(t={tenantAware:!0}){let e=g.PLATFORM_URL||"http://localhost:10000";if(!g.SELF_HOSTED&&g.MULTI_TENANCY&&t.tenantAware){let r=q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(g.SELF_HOSTED){let r=t?.config?t.config:(await Ge("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(No,"getPlatformUrl");var Xu=s(async t=>{if(!g.SELF_HOSTED)return!!g.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=g.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(!g.SELF_HOSTED)return Em();let t=await pc();return(!t||!t.activated)&&(t=Em()),t}s(Tm,"getGoogleDatasourceConfig");function Em(){if(g.GOOGLE_CLIENT_ID&&g.GOOGLE_CLIENT_SECRET)return{clientID:g.GOOGLE_CLIENT_ID,clientSecret:g.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 N_(){return Ge("smtp")}s(N_,"getSMTPConfigDoc");async function hk(t){let e=await N_();if(e)return e.config;let r=g.SELF_HOSTED||!t;if(g.SMTP_FALLBACK_ENABLED&&r)return{port:g.SMTP_PORT,host:g.SMTP_HOST,secure:!1,from:g.SMTP_FROM_ADDRESS,auth:{user:g.SMTP_USER,pass:g.SMTP_PASSWORD},fallback:!0}}s(hk,"getSMTPConfig");async function gk(){return(await Ge("scim"))?.config}s(gk,"getSCIMConfig");async function Ek(){return Ge("recaptcha")}s(Ek,"getRecaptchaConfig");var xm={};N(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,g.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={};N(vm,{BUILDER:()=>Lk,BUILTIN_PERMISSIONS:()=>gc,CREATOR:()=>Uk,GLOBAL_BUILDER:()=>kk,PermissionImpl:()=>oe,PermissionLevel:()=>Pi,PermissionType:()=>qo,doesHaveBasePermission:()=>Pk,getAllowedLevels:()=>V_,getBuiltinPermissionByID:()=>vk,getBuiltinPermissions:()=>xk,isPermissionLevelHigherThanRead:()=>Nk,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 Pk(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(Pk,"doesHaveBasePermission");function Nk(t){return $_(t)>1}s(Nk,"isPermissionLevelHigherThanRead");var Lk="builder",Uk="creator",kk="globalBuilder";var Lm={};N(Lm,{FlagSet:()=>yc,all:()=>$k,flags:()=>Pm,getEnvFlags:()=>j_,init:()=>Fk,isEnabled:()=>Gk,parseEnvFlags:()=>Sc,shutdown:()=>Bk,testutils:()=>Nm});var Tc=W(require("crypto")),q_=W(require("dd-trace")),K_=require("lodash"),Q_=require("posthog-node");var Ec,Mk=s(()=>{let t=g.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){g.POSTHOG_TOKEN&&g.POSTHOG_API_HOST&&!g.SELF_HOSTED&&g.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Ec=new Q_.PostHog(g.POSTHOG_TOKEN,{host:g.POSTHOG_API_HOST,personalApiKey:g.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(g.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:h,value:m}of j_())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,m===!1&&a.add(h),!!this.isFlagName(h))){if(typeof i[h]!="boolean")throw new Error(`Feature: ${h} is not a boolean`);i[h]=m,n[`flags.${h}.source`]="environment"}let u=Qt(),c=u?._id;if(!c){let f=Pf();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(),h={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:h,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:m});for(let[E,p]of Object.entries(y))if(this.isFlagName(E)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${E}": ${p}`);continue}if(!(i[E]===!0||a.has(E)))try{i[E]=p,n[`flags.${E}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${E}": ${p}`,T)}}}let d=kf();for(let[f,h]of Object.entries(d))this.isFlagName(f)&&typeof h=="boolean"&&(i[f]=h,n[`flags.${f}.source`]="override");Uf(this.setId,i);for(let[f,h]of Object.entries(i))n[`flags.${f}.value`]=h;return e?.addTags(n),i})}},Wk={USE_ZOD_VALIDATOR:!1,AI_RAG_SHAREPOINT:!1,AI_AGENT_INSTRUCTIONS:!1,AI_TESTS:!1,MULTIPLE_OPERATIONS:!1,ESCALATION:!1,FRONT_COMPANION:!1,PROJECTS:!1,DEBUG_UI:g.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1,AI_AGENT_ACTIVITY:!1},Pm=new yc(Wk);async function Gk(t){return await Pm.isEnabled(t)}s(Gk,"isEnabled");async function $k(){return await Pm.fetch()}s($k,"all");var Nm={};N(Nm,{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={};N(jm,{adminOnly:()=>Ac,auditLog:()=>_c,authError:()=>Ie,buildAuthMiddleware:()=>vM,buildCsrfMiddleware:()=>NM,buildTenancyMiddleware:()=>PM,builderOnly:()=>vc,builderOrAdmin:()=>Pc,google:()=>or,internalApi:()=>Lc,joiValidator:()=>ko,oidc:()=>ar,passport:()=>LM,platformLogout:()=>BM,refreshOAuthToken:()=>MM,ssoCallbackUrl:()=>Fr,updateUserOAuth:()=>FM,workspaceBuilderOrAdmin:()=>Mc});var Qm={};N(Qm,{activeTenant:()=>TO,adminOnly:()=>Ac,auditLog:()=>_c,authError:()=>Ie,authenticated:()=>xc,builderOnly:()=>vc,builderOrAdmin:()=>Pc,correlation:()=>z_,csp:()=>oO,csrf:()=>Nc,datasource:()=>bM,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 g.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={};N(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=g.ENCRYPTION_KEY,r="ENCRYPTION_KEY"):(e=g.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",h=>{a.close(),f(h)}),c.on("error",h=>{a.close(),f(h)}),l.on("error",h=>{a.close(),f(h)}),a.on("error",h=>{a.close(),f(h)})})}s(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={};N(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=g.SESSION_UPDATE_PERIOD?parseInt(g.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 h=bc(n,"x-budibase-tenant-id"),m=!1,y,E=!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,E=!I)}!y&&h?y={tenantId:h}: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:E,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&&!g.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 Pc(t,e){if(t.internal||Lt(t.user))return e();let r=await dn(t);return!r&&!g.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(Pc,"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":g.CUSTOM_CSP_MEDIA_SRC,"script-src":g.CUSTOM_CSP_SCRIPT_SRC,"connect-src":g.CUSTOM_CSP_CONNECT_SRC,"img-src":g.CUSTOM_CSP_IMG_SRC,"font-src":g.CUSTOM_CSP_FONT_SRC,"frame-src":g.CUSTOM_CSP_FRAME_SRC};for(let[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(h=>Gm.test(h)),f=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let h of f)n[h]=[...n[h]||[],...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 Nc(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(Nc,"csrf");function aO(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of fT){let r=g[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"}),g.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(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 Nf(t.ip,()=>e()):e()}s(lO,"ip");var ko={};N(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={};N(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={};N(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={};N(ar,{buildVerifyFn:()=>EO,fetchStrategyConfig:()=>IM,getCallbackUrl:()=>wM,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),h=SM(n,i),m={provider:r,providerType:"oidc",userId:f.id,profile:f,email:AM(f,h),emailVerified:_M(f,h),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");async function IM(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:a}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(IM,"fetchStrategyConfig");async function wM(){return Fr("oidc")}s(wM,"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&&!g.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={};N(Km,{postAuth:()=>DM,preAuth:()=>CM});var RM=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 CM(t,e,r){let n=await SO(),o=`${await No({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(CM,"preAuth");async function DM(t,e,r){let n=await SO(),o=`${await No({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 RM({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(DM,"postAuth");var bM={google:Km};var AO=require("koa-passport"),xM=require("passport-local").Strategy,Fc=require("passport-oauth2-refresh"),vM=xc,PM=kc,NM=Nc,LM=AO;AO.use(new xM(Ri.options,Ri.authenticate));async function UM(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(UM,"refreshOIDCAccessToken");async function kM(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(kM,"refreshGoogleAccessToken");async function MM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Sm(r);return n?UM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await pc();return n?kM(n,t):{err:{data:"Google configuration not found"}}}}}s(MM,"refreshOAuthToken");async function FM(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(FM,"updateUserOAuth");async function BM(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(BM,"platformLogout");var Ym={};N(Ym,{validate:()=>qM});var v=W(require("joi"));var WM=["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 GM(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(GM,"validateComponent");function $M(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(...WM),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($M,"validateDatasource");function VM(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(VM,"validateAutomation");function qM(t){switch(t?.type){case"component":GM(t);break;case"datasource":$M(t);break;case"automation":VM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(qM,"validate");var zm={};N(zm,{Client:()=>Re,clients:()=>_r,locks:()=>yn,utils:()=>Ha});var Xm={};N(Xm,{init:()=>QM});var KM={"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=KM[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 QM(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(QM,"init");var ah={};N(ah,{COUNT_FIELD_NAME:()=>sh,Sql:()=>vO,SqlTable:()=>Bc,designDoc:()=>oh,utils:()=>Rf});var CO=require("knex");var jM=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(h=>h.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(h=>h.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(h=>h.foreignKey);for(let[h,m]of Object.entries(e.schema)){let y=n?.schema[h];if(y&&y.type||l.includes(h)||i?.updated===h)continue;let E=m.type;switch(E){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(h)?t.string(h,255):t.text(h);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:p,toTable:T}=m.meta;t.integer(h).unsigned(),t.foreign(h).references(`${T}.${p}`)}else d.indexOf(h)===-1&&t.float(h);break;case"bigint":t.bigint(h);break;case"boolean":t.boolean(h);break;case"datetime":m.timeOnly?t.time(h):t.datetime(h,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":Ue.schema.isDeprecatedSingleUserColumn(m)?t.text(h):t.json(h);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(h);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(E)}}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 YM(t,e,r){return t.createTable(e.name,n=>{IO(n,e,r)})}s(YM,"buildCreateTable");function zM(t,e,r,n,i){return t.alterTable(e.name,o=>{IO(o,e,r,n,i)})}s(zM,"buildUpdateTable");function JM(t,e){return t.dropTable(e.name)}s(JM,"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,jM.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=YM(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=zM(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=JM(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(g.SQL_MAX_ROWS?parseInt(g.SQL_MAX_ROWS):null)||5e3}s(wO,"getBaseLimit");function th(){return(g.SQL_MAX_RELATED_ROWS?parseInt(g.SQL_MAX_RELATED_ROWS):null)||500}s(th,"getRelationshipLimit");function XM(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(XM,"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 ZM(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(ZM,"escapeQuotes");function eF(t,e='"'){return`${e}${ZM(t,e)}${e}`}s(eF,"wrap");function tF(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=eF(t[r],e));return`[${t.join(",")}]`}s(tF,"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 rF={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(h=>n.match(new RegExp(`^${h}\\.`)),"matches");if(!a)return e;for(let h of a){let m=h.tableName,y=c?.[m]||m,E=f(m)||f(y),p=f(h.column),T=h.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((E||p||T)&&h.to&&h.tableName){let A=this.knex.select(this.knex.raw(1)).from({[y]:m}),_=A.clone(),I=wf(h),O;if(E?O=n:O=n.replace(new RegExp(`^${h.column}.`),`${c?.[h.tableName]||h.tableName}.`),I){let C=c?.[I.through]||h.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}.${h.to}`,R=`${d}.${h.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(E){return o?.[E]||E}s(l,"getTableAlias");function d(E,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 E){let O=E[I],C=Ks(I),R=C.includes(".")||i.getFieldSchema(C)?.type==="link",w=n?.relationship&&R,b;if(I==="_complexIdOperator"&&(b=E[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,rF[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,h=s((E,p,T)=>((r?.fuzzyOr||a)&&(E=E.or),f?E.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`%${T}%`]):this.client==="oracledb"||this.client==="sqlite3"?E.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`%${T.toLowerCase()}%`]):E.whereILike(this.rawQuotedIdentifier(p),this.knex.raw("?",[`%${T}%`]))),"like"),m=s((E,p=!1)=>{function T(A){return(a||E===r?.containsAny)&&(A=A.or),E===r?.notContains&&(A=A.not),A}s(T,"addModifiers"),this.client==="pg"?d(E,"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,tF(R)])}):this.client==="mysql2"||this.client==="mariadb"?d(E,"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(E,"contains",(A,_,I)=>(I.length===0||(A=A.where(O=>(E===r?.notContains&&(O=O.not),O=O.where(C=>{for(let R of I){E===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}%`)}}),E===r?.notContains&&(O=O.or.whereNull(this.rawQuotedIdentifier(_))),O))),A))},"contains");if(r.$and){let{$and:E}=r;for(let p of E.conditions)e=e.where(T=>{this.addFilters(T,p,n)})}if(r.$or){let{$or:E}=r;e=e.where(p=>{for(let T of E.conditions)p.orWhere(A=>this.addFilters(A,{...T,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(E,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(E=E.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly){for(let I of _)I!=null?E=E.or.whereLike(p,`${I.toISOString().slice(0,10)}%`):E=E.or.whereNull(p);return E}return E.whereIn(p,_)},(E,p,T)=>(a&&(E=E.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),E.whereIn(p,Array.isArray(T)?T:[T]))),r.notOneOf&&d(r.notOneOf,"notOneOf",(E,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(E=E.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly)return E.where(I=>{I.whereNot(O=>{for(let C of _)C!=null&&O.orWhereLike(p,`${C.toISOString().slice(0,10)}%`)}).orWhereNull(p)});return E.where(I=>{I.whereNotIn(p,_).orWhereNull(p)})},(E,p,T)=>(a&&(E=E.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),E.whereNotIn(p,Array.isArray(T)?T:[T]))),r.string&&d(r.string,"string",(E,p,T)=>{if(a&&(E=E.or),f)return E.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`${T}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return E.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`${T.toLowerCase()}%`]);{let A=this.getFieldSchema(p);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(A)?E.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(A.name)),`${T}%`]):E.whereILike(p,`${T}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",h),r.range&&d(r.range,"range",(E,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&&(E=E.or),_&&I?E.whereBetween(C,[w,R]):_?E.where(C,">=",w):I?E.where(C,"<=",R):E}),r.equal&&d(r.equal,"equal",(E,p,T)=>{let A=this.getFieldSchema(p);if(a&&(E=E.or),this.client==="mssql")return E.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return E.where(I=>I.whereNotNull(_).andWhere(_,T))}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?E.whereLike(p,`${T.toISOString().slice(0,10)}%`):E.whereNull(p):E.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(p),T])}),r.notEqual&&d(r.notEqual,"notEqual",(E,p,T)=>{let A=this.getFieldSchema(p);if(a&&(E=E.or),this.client==="mssql")return E.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return E.where(I=>I.not.whereNull(_).and.where(_,"!=",T)).or.whereNull(_)}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?E.not.whereLike(p,`${T.toISOString().slice(0,10)}%`).or.whereNull(p):E.not.whereNull(p):E.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(p),T])}),r.empty&&d(r.empty,"empty",(E,p)=>(a&&(E=E.or),E.whereNull(p))),r.notEmpty&&d(r.notEmpty,"notEmpty",(E,p)=>(a&&(E=E.or),E.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 h=`${o}.${u}`,m;this.isAggregateField(u)?m=this.rawQuotedIdentifier(u):this.client==="oracledb"?m=this.convertClobs(h):m=this.rawQuotedIdentifier(h),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:h,through:m,to:y,from:E,fromPrimary:p,toPrimary:T}=f;if(!h||!r)continue;let A=l[h];if(!A)throw new Error(`related table "${h}" not found in datasource`);let _=u?.[h]||h,I=u?.[r]||r,O=m&&u?.[m]||m,C=this.tableNameWithSchema(h,{alias:_,schema:c}),R=[...A?.primary||[],A?.primaryDisplay].filter(V=>V),w=XM(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}.${E}`:`${_}.${y}`,K=U?`${I}.${p}`:`${I}.${E}`;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,h=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 E=y.fromPrimary,p=y.from;this.orOn(`${f}.${E}`,"=",`${d}.${p}`)}}).leftJoin(h,function(){for(let y of n){let E=y.toPrimary,p=y.to;this.orOn(`${l}.${E}`,`${d}.${p}`)}}):e=e.leftJoin(h,function(){for(let y of n){let E=y.from,p=y.to;this.orOn(`${f}.${E}`,"=",`${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 h=this.query.tableAliases?.[a.name]||a.name,m=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[h]:"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={};N(oh,{base:()=>nF});function nF(t){return{_id:xt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(nF,"base");var uh={};N(uh,{jsonFromCsvString:()=>iF});var PO=W(require("csvtojson"));async function iF(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let o of i){let a,u=!1;try{let c=await(0,PO.default)({ignoreEmpty:r,delimiter:o}).fromString(t);for(let[,l]of c.entries()){let d=Object.keys(l);if(a==null&&(a=d),!n&&d.length===1){u=!0;break}if(a.length!==d.length){u=!0;break}for(let f of a)(l[f]===void 0||l[f]==="")&&(l[f]=null)}if(u)continue;return c}catch{continue}}throw new Error("Unable to determine delimiter")}s(iF,"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 NO=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 NO.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 sF={...js,...le},oF=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"),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,fetchFn:i=wu.default}={}){let o=t,a={...e,redirect:"manual"};for(let u=0;u<=FS;u++){let c=await Xv(o),l;try{l=await i(o,{...a,agent:Zv(o,c)},c)}catch(g){let m=pp(o).hostname;throw g instanceof Error?(g.message=`Failed to connect to resolved IP for ${m}: ${g.message}`,g):new Error(`Failed to connect to resolved IP for ${m}: unknown network error`)}if(!Jv(l.status))return l;if(iN(l),!r)throw new Error("Redirects are not permitted.");if(u===FS)break;let d=l.headers.get("location");if(!d){if(n)return l;throw new Error("Maximum redirect reached.")}let f=pp(new URL(d,o).toString()).toString();a=eN(a,l.status),tN(o,f)&&(a=rN(a)),o=f}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});
|
|
39
39
|
//# sourceMappingURL=index.js.map
|