@budibase/backend-core 3.41.1 → 3.41.2
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 +11 -11
- package/dist/index.js.map +2 -2
- package/dist/package.json +2 -2
- package/dist/src/db/lucene.d.ts +1 -1
- package/dist/src/db/lucene.js +1 -1
- package/dist/src/db/lucene.js.map +1 -1
- package/dist/src/utils/utils.js +1 -1
- package/dist/src/utils/utils.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
"use strict";var MO=Object.create;var Pi=Object.defineProperty;var FO=Object.getOwnPropertyDescriptor;var BO=Object.getOwnPropertyNames;var WO=Object.getPrototypeOf,GO=Object.prototype.hasOwnProperty;var s=(t,e)=>Pi(t,"name",{value:e,configurable:!0});var Q=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},P=(t,e)=>{for(var r in e)Pi(t,r,{get:e[r],enumerable:!0})},ph=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of BO(e))!GO.call(t,i)&&i!==r&&Pi(t,i,{get:()=>e[i],enumerable:!(n=FO(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?MO(WO(t)):{},ph(e||!t||!t.__esModule?Pi(r,"default",{value:t,enumerable:!0}):r,t)),$O=t=>ph(Pi({},"__esModule",{value:!0}),t);var Oh=Q((zc,Jc)=>{"use strict";(function(t,e){typeof zc=="object"&&typeof Jc<"u"?Jc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(zc,(function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",o="minute",a="hour",u="day",c="week",l="month",d="quarter",f="year",g="date",m="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:s(function(M){var U=["th","st","nd","rd"],L=M%100;return"["+M+(U[(L-20)%10]||U[L]||U[0])+"]"},"ordinal")},T=s(function(M,U,L){var K=String(M);return!K||K.length>=U?M:""+Array(U+1-K.length).join(L)+M},"m"),A={s:T,z:s(function(M){var U=-M.utcOffset(),L=Math.abs(U),K=Math.floor(L/60),F=L%60;return(U<=0?"+":"-")+T(K,2,"0")+":"+T(F,2,"0")},"z"),m:s(function M(U,L){if(U.date()<L.date())return-M(L,U);var K=12*(L.year()-U.year())+(L.month()-U.month()),F=U.clone().add(K,l),j=L-F<0,q=U.clone().add(K+(j?-1:1),l);return+(-(K+(L-F)/(j?F-q:q-F))||0)},"t"),a:s(function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},"a"),p:s(function(M){return{M:l,y:f,w:c,d:u,D:g,h:a,m:o,s:i,ms:n,Q:d}[M]||String(M||"").toLowerCase().replace(/s$/,"")},"p"),u:s(function(M){return M===void 0},"u")},_="en",I={};I[_]=p;var O="$isDayjsObject",C=s(function(M){return M instanceof G||!(!M||!M[O])},"S"),R=s(function M(U,L,K){var F;if(!U)return _;if(typeof U=="string"){var j=U.toLowerCase();I[j]&&(F=j),L&&(I[j]=L,F=j);var q=U.split("-");if(!F&&q.length>1)return M(q[0])}else{var B=U.name;I[B]=U,F=B}return!K&&F&&(_=F),F||!K&&_},"t"),w=s(function(M,U){if(C(M))return M.clone();var L=typeof U=="object"?U:{};return L.date=M,L.args=arguments,new G(L)},"O"),b=A;b.l=R,b.i=C,b.w=function(M,U){return w(M,{locale:U.$L,utc:U.$u,x:U.$x,$offset:U.$offset})};var G=(function(){function M(L){this.$L=R(L.locale,null,!0),this.parse(L),this.$x=this.$x||L.x||{},this[O]=!0}s(M,"M");var U=M.prototype;return U.parse=function(L){this.$d=(function(K){var F=K.date,j=K.utc;if(F===null)return new Date(NaN);if(b.u(F))return new Date;if(F instanceof Date)return new Date(F);if(typeof F=="string"&&!/Z$/i.test(F)){var q=F.match(y);if(q){var B=q[2]-1||0,fe=(q[7]||"0").substring(0,3);return j?new Date(Date.UTC(q[1],B,q[3]||1,q[4]||0,q[5]||0,q[6]||0,fe)):new Date(q[1],B,q[3]||1,q[4]||0,q[5]||0,q[6]||0,fe)}}return new Date(F)})(L),this.init()},U.init=function(){var L=this.$d;this.$y=L.getFullYear(),this.$M=L.getMonth(),this.$D=L.getDate(),this.$W=L.getDay(),this.$H=L.getHours(),this.$m=L.getMinutes(),this.$s=L.getSeconds(),this.$ms=L.getMilliseconds()},U.$utils=function(){return b},U.isValid=function(){return this.$d.toString()!==m},U.isSame=function(L,K){var F=w(L);return this.startOf(K)<=F&&F<=this.endOf(K)},U.isAfter=function(L,K){return w(L)<this.startOf(K)},U.isBefore=function(L,K){return this.endOf(K)<w(L)},U.$g=function(L,K,F){return b.u(L)?this[K]:this.set(F,L)},U.unix=function(){return Math.floor(this.valueOf()/1e3)},U.valueOf=function(){return this.$d.getTime()},U.startOf=function(L,K){var F=this,j=!!b.u(K)||K,q=b.p(L),B=s(function($r,ve){var ur=b.w(F.$u?Date.UTC(F.$y,ve,$r):new Date(F.$y,ve,$r),F);return j?ur:ur.endOf(u)},"l"),fe=s(function($r,ve){return b.w(F.toDate()[$r].apply(F.toDate("s"),(j?[0,0,0,0]:[23,59,59,999]).slice(ve)),F)},"$"),Te=this.$W,we=this.$M,Je=this.$D,bn="set"+(this.$u?"UTC":"");switch(q){case f:return j?B(1,0):B(31,11);case l:return j?B(1,we):B(0,we+1);case c:var Gr=this.$locale().weekStart||0,vi=(Te<Gr?Te+7:Te)-Gr;return B(j?Je-vi:Je+(6-vi),we);case u:case g:return fe(bn+"Hours",0);case a:return fe(bn+"Minutes",1);case o:return fe(bn+"Seconds",2);case i:return fe(bn+"Milliseconds",3);default:return this.clone()}},U.endOf=function(L){return this.startOf(L,!1)},U.$set=function(L,K){var F,j=b.p(L),q="set"+(this.$u?"UTC":""),B=(F={},F[u]=q+"Date",F[g]=q+"Date",F[l]=q+"Month",F[f]=q+"FullYear",F[a]=q+"Hours",F[o]=q+"Minutes",F[i]=q+"Seconds",F[n]=q+"Milliseconds",F)[j],fe=j===u?this.$D+(K-this.$W):K;if(j===l||j===f){var Te=this.clone().set(g,1);Te.$d[B](fe),Te.init(),this.$d=Te.set(g,Math.min(this.$D,Te.daysInMonth())).$d}else B&&this.$d[B](fe);return this.init(),this},U.set=function(L,K){return this.clone().$set(L,K)},U.get=function(L){return this[b.p(L)]()},U.add=function(L,K){var F,j=this;L=Number(L);var q=b.p(K),B=s(function(we){var Je=w(j);return b.w(Je.date(Je.date()+Math.round(we*L)),j)},"y");if(q===l)return this.set(l,this.$M+L);if(q===f)return this.set(f,this.$y+L);if(q===u)return B(1);if(q===c)return B(7);var fe=(F={},F[o]=e,F[a]=r,F[i]=t,F)[q]||1,Te=this.$d.getTime()+L*fe;return b.w(Te,this)},U.subtract=function(L,K){return this.add(-1*L,K)},U.format=function(L){var K=this,F=this.$locale();if(!this.isValid())return F.invalidDate||m;var j=L||"YYYY-MM-DDTHH:mm:ssZ",q=b.z(this),B=this.$H,fe=this.$m,Te=this.$M,we=F.weekdays,Je=F.months,bn=F.meridiem,Gr=s(function(ve,ur,Ni,$o){return ve&&(ve[ur]||ve(K,j))||Ni[ur].slice(0,$o)},"h"),vi=s(function(ve){return b.s(B%12||12,ve,"0")},"d"),$r=bn||function(ve,ur,Ni){var $o=ve<12?"AM":"PM";return Ni?$o.toLowerCase():$o};return j.replace(h,(function(ve,ur){return ur||(function(Ni){switch(Ni){case"YY":return String(K.$y).slice(-2);case"YYYY":return b.s(K.$y,4,"0");case"M":return Te+1;case"MM":return b.s(Te+1,2,"0");case"MMM":return Gr(F.monthsShort,Te,Je,3);case"MMMM":return Gr(Je,Te);case"D":return K.$D;case"DD":return b.s(K.$D,2,"0");case"d":return String(K.$W);case"dd":return Gr(F.weekdaysMin,K.$W,we,2);case"ddd":return Gr(F.weekdaysShort,K.$W,we,3);case"dddd":return we[K.$W];case"H":return String(B);case"HH":return b.s(B,2,"0");case"h":return vi(1);case"hh":return vi(2);case"a":return $r(B,fe,!0);case"A":return $r(B,fe,!1);case"m":return String(fe);case"mm":return b.s(fe,2,"0");case"s":return String(K.$s);case"ss":return b.s(K.$s,2,"0");case"SSS":return b.s(K.$ms,3,"0");case"Z":return q}return null})(ve)||q.replace(":","")}))},U.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},U.diff=function(L,K,F){var j,q=this,B=b.p(K),fe=w(L),Te=(fe.utcOffset()-this.utcOffset())*e,we=this-fe,Je=s(function(){return b.m(q,fe)},"D");switch(B){case f:j=Je()/12;break;case l:j=Je();break;case d:j=Je()/3;break;case c:j=(we-Te)/6048e5;break;case u:j=(we-Te)/864e5;break;case a:j=we/r;break;case o:j=we/e;break;case i:j=we/t;break;default:j=we}return F?j:b.a(j)},U.daysInMonth=function(){return this.endOf(l).$D},U.$locale=function(){return I[this.$L]},U.locale=function(L,K){if(!L)return this.$L;var F=this.clone(),j=R(L,K,!0);return j&&(F.$L=j),F},U.clone=function(){return b.w(this.$d,this)},U.toDate=function(){return new Date(this.valueOf())},U.toJSON=function(){return this.isValid()?this.toISOString():null},U.toISOString=function(){return this.$d.toISOString()},U.toString=function(){return this.$d.toUTCString()},M})(),ee=G.prototype;return w.prototype=ee,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",g]].forEach((function(M){ee[M[1]]=function(U){return this.$g(U,M[0],M[1])}})),w.extend=function(M,U){return M.$i||(M(U,G,w),M.$i=!0),w},w.locale=R,w.isDayjs=C,w.unix=function(M){return w(1e3*M)},w.en=I[_],w.Ls=I,w.p={},w}))});var ct=Q(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.Err=Ue.Valid=Ue.err=Ue.valid=void 0;var hI=s(t=>new Jo(t),"valid");Ue.valid=hI;var gI=s(t=>new Xo(t),"err");Ue.err=gI;var Jo=class{static{s(this,"Valid")}constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Ue.valid)(e(this.value))}mapErr(e){return(0,Ue.valid)(this.value)}};Ue.Valid=Jo;var Xo=class{static{s(this,"Err")}constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Ue.err)(this.error)}mapErr(e){return(0,Ue.err)(e(this.error))}};Ue.Err=Xo});var lt=Q(Dh=>{"use strict";Object.defineProperty(Dh,"__esModule",{value:!0})});var lr=Q(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});Rt();var J=ct();lt();var EI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],yI=["sun","mon","tue","wed","thu","fri","sat"],TI=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),Fi=s((t,e,r)=>{if(e==="months"&&r.useAliases&&EI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&yI.indexOf(t.toLowerCase())!==-1)return(0,J.valid)(!0);let n=Number(t);if(isNaN(n))return(0,J.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,J.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,J.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,J.valid)(!0)},"checkSingleElementWithinLimits"),SI=s((t,e,r)=>{if(t==="*")return TI(e,r)?(0,J.valid)(!0):(0,J.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,J.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,J.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,J.valid)(!0):Fi(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,J.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,J.valid)(!0):Fi(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,J.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,J.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,J.err)("Number of occurrence of the day of the week cannot be greater than 5."):Fi(n,e,r)}return Fi(t,e,r)},"checkSingleElement"),bh=s((t,e,r,n)=>t==="*"?(0,J.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,J.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,J.valid)(!0):Fi(t,e,r),"checkRangeElement"),AI=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,J.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return SI(n[0],e,r);if(n.length===2){let i=bh(n[0],e,r,0),o=bh(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,J.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,J.valid)(!0)}return(0,J.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),_I=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,J.err)(`List element '${t}' is not valid. (More than one '/')`);let i=AI(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,J.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,J.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,J.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,J.valid)(!0)},"checkListElement"),OI=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,J.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,J.valid)(!0):(0,J.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,J.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(_I(a,e,r))}),i.every(a=>a.isValid()))return(0,J.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,J.err)(o)},"checkField");tl.default=OI});var xh=Q(Bi=>{"use strict";var II=Bi&&Bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bi,"__esModule",{value:!0});Rt();var wI=ct(),RI=II(lr());lt();var CI=s((t,e)=>{if(!t.seconds)return(0,wI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,RI.default)(r,"seconds",e)},"checkSeconds");Bi.default=CI});var vh=Q(Wi=>{"use strict";var DI=Wi&&Wi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Wi,"__esModule",{value:!0});Rt();var bI=ct(),xI=DI(lr());lt();var vI=s((t,e)=>{if(!t.minutes)return(0,bI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,xI.default)(r,"minutes",e)},"checkMinutes");Wi.default=vI});var Nh=Q(Gi=>{"use strict";var NI=Gi&&Gi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gi,"__esModule",{value:!0});Rt();var PI=ct(),LI=NI(lr());lt();var UI=s((t,e)=>{if(!t.hours)return(0,PI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,LI.default)(r,"hours",e)},"checkHours");Gi.default=UI});var Ph=Q(Vi=>{"use strict";var kI=Vi&&Vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vi,"__esModule",{value:!0});Rt();var $i=ct(),MI=kI(lr());lt();var FI=s((t,e)=>{if(!t.daysOfMonth)return(0,$i.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$i.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$i.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,$i.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,$i.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,MI.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");Vi.default=FI});var Lh=Q(qi=>{"use strict";var BI=qi&&qi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qi,"__esModule",{value:!0});Rt();var WI=ct(),GI=BI(lr());lt();var $I=s((t,e)=>{if(!t.months)return(0,WI.err)(["months field is undefined."]);let{months:r}=t;return(0,GI.default)(r,"months",e)},"checkMonths");qi.default=$I});var Uh=Q(Qi=>{"use strict";var VI=Qi&&Qi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qi,"__esModule",{value:!0});Rt();var Ki=ct(),qI=VI(lr());lt();var KI=s((t,e)=>{if(!t.daysOfWeek)return(0,Ki.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ki.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ki.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ki.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ki.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,qI.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");Qi.default=KI});var kh=Q(ji=>{"use strict";var QI=ji&&ji.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ji,"__esModule",{value:!0});Rt();var jI=ct(),HI=QI(lr());lt();var YI=s((t,e)=>{if(!t.years)return(0,jI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,HI.default)(r,"years",e)},"checkYears");ji.default=YI});var Wh=Q((BB,Bh)=>{"use strict";var rl;try{rl=Map}catch{}var nl;try{nl=Set}catch{}function Mh(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(Fh);if(rl&&t instanceof rl)return new Map(Array.from(t.entries()));if(nl&&t instanceof nl)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var o=e.findIndex(function(a){return a===t[i]});n[i]=o>-1?r[o]:Mh(t[i],e,r)}return n}return t}s(Mh,"baseClone");function Fh(t){return Mh(t,[],[])}s(Fh,"clone");Bh.exports=Fh});var Hi=Q(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.default=rw;var zI=Object.prototype.toString,JI=Error.prototype.toString,XI=RegExp.prototype.toString,ZI=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",ew=/^Symbol\((.*)\)(.*)$/;function tw(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(tw,"printNumber");function Gh(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return tw(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return ZI.call(t).replace(ew,"Symbol($1)");let n=zI.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+JI.call(t)+"]":n==="RegExp"?XI.call(t):null}s(Gh,"printSimpleValue");function rw(t,e){let r=Gh(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=Gh(this[n],e);return o!==null?o:i},2)}s(rw,"printValue")});var Mt=Q(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.default=Se.array=Se.object=Se.boolean=Se.date=Se.number=Se.string=Se.mixed=void 0;var $h=nw(Hi());function nw(t){return t&&t.__esModule?t:{default:t}}s(nw,"_interopRequireDefault");var Vh={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:s(({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,o=`${t} must be a \`${e}\` type, but the final value was: \`${(0,$h.default)(r,!0)}\``+(i?` (cast from the value \`${(0,$h.default)(n,!0)}\`).`:".");return r===null&&(o+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),o},"notType"),defined:"${path} must be defined"};Se.mixed=Vh;var qh={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Se.string=qh;var Kh={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Se.number=Kh;var Qh={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=Qh;var jh={isValue:"${path} field must be ${value}"};Se.boolean=jh;var Hh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=Hh;var Yh={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Se.array=Yh;var iw=Object.assign(Object.create(null),{mixed:Vh,string:qh,number:Kh,date:Qh,object:Hh,array:Yh,boolean:jh});Se.default=iw});var Ln=Q(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var sw=s(t=>t&&t.__isYupSchema__,"_default");Zo.default=sw});var Jh=Q(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.default=void 0;var ow=zh(require("lodash/has")),aw=zh(Ln());function zh(t){return t&&t.__esModule?t:{default:t}}s(zh,"_interopRequireDefault");var sl=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,ow.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:i,otherwise:o}=r,a=typeof n=="function"?n:(...u)=>u.every(c=>c===n);this.fn=function(...u){let c=u.pop(),l=u.pop(),d=a(...u)?i:o;if(d)return typeof d=="function"?d(l):l.concat(d.resolve(c))}}resolve(e,r){let n=this.refs.map(o=>o.getValue(r?.value,r?.parent,r?.context)),i=this.fn.apply(e,n.concat(e,r));if(i===void 0||i===e)return e;if(!(0,aw.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},uw=sl;ea.default=uw});var al=Q(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});ol.default=cw;function cw(t){return t==null?[]:[].concat(t)}s(cw,"toArray")});var qr=Q(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.default=void 0;var lw=Xh(Hi()),dw=Xh(al());function Xh(t){return t&&t.__esModule?t:{default:t}}s(Xh,"_interopRequireDefault");function ul(){return ul=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ul.apply(this,arguments)}s(ul,"_extends");var fw=/\$\{\s*(\w+)\s*\}/g,cl=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ul({},r,{path:n})),typeof e=="string"?e.replace(fw,(i,o)=>(0,lw.default)(r[o])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,n,i){super(),this.name="ValidationError",this.value=r,this.path=n,this.type=i,this.errors=[],this.inner=[],(0,dw.default)(e).forEach(o=>{t.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};ta.default=cl});var ra=Q(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});dl.default=hw;var ll=pw(qr());function pw(t){return t&&t.__esModule?t:{default:t}}s(pw,"_interopRequireDefault");var mw=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function hw(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=mw(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new ll.default(a,o,c)):l(null,o);for(let g=0;g<n.length;g++){let m=n[g];m(i,s(function(h){if(h){if(!ll.default.isError(h))return l(h,o);if(r)return h.value=o,l(h,o);f.push(h)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new ll.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s(hw,"runTests")});var Yi=Q((tW,ng)=>{"use strict";function Kr(t){this._maxSize=t,this.clear()}s(Kr,"Cache");Kr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Kr.prototype.get=function(t){return this._values[t]};Kr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var gw=/[^.^\]^[]+|(?=\[\]|\.\.)/g,rg=/^\d+$/,Ew=/^\d/,yw=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Tw=/^\s*(['"]?)(.*?)(\1)\s*$/,ml=512,Zh=new Kr(ml),eg=new Kr(ml),tg=new Kr(ml);ng.exports={Cache:Kr,split:pl,normalizePath:fl,setter:s(function(t){var e=fl(t);return eg.get(t)||eg.set(t,s(function(n,i){for(var o=0,a=e.length,u=n;o<a-1;){var c=e[o];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;u=u[e[o++]]}u[e[o]]=i},"setter"))},"setter"),getter:s(function(t,e){var r=fl(t);return tg.get(t)||tg.set(t,s(function(i){for(var o=0,a=r.length;o<a;)if(i!=null||!e)i=i[r[o++]];else return;return i},"getter"))},"getter"),join:s(function(t){return t.reduce(function(e,r){return e+(hl(r)||rg.test(r)?"["+r+"]":(e?".":"")+r)},"")},"join"),forEach:s(function(t,e,r){Sw(Array.isArray(t)?t:pl(t),e,r)},"forEach")};function fl(t){return Zh.get(t)||Zh.set(t,pl(t).map(function(e){return e.replace(Tw,"$2")}))}s(fl,"normalizePath");function pl(t){return t.match(gw)||[""]}s(pl,"split");function Sw(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(Ow(i)&&(i='"'+i+'"'),u=hl(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(Sw,"forEach");function hl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(hl,"isQuoted");function Aw(t){return t.match(Ew)&&!t.match(rg)}s(Aw,"hasLeadingNumber");function _w(t){return yw.test(t)}s(_w,"hasSpecialChars");function Ow(t){return!hl(t)&&(Aw(t)||_w(t))}s(Ow,"shouldBeQuoted")});var Qr=Q(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=ww;Ji.default=void 0;var Iw=Yi(),na={context:"$",value:"."};function ww(t,e){return new zi(t,e)}s(ww,"create");var zi=class{static{s(this,"Reference")}constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===na.context,this.isValue=this.key[0]===na.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?na.context:this.isValue?na.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,Iw.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Ji.default=zi;zi.prototype.__isYupRef=!0});var ig=Q(El=>{"use strict";Object.defineProperty(El,"__esModule",{value:!0});El.default=bw;var Rw=gl(require("lodash/mapValues")),ia=gl(qr()),Cw=gl(Qr());function gl(t){return t&&t.__esModule?t:{default:t}}s(gl,"_interopRequireDefault");function sa(){return sa=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},sa.apply(this,arguments)}s(sa,"_extends");function Dw(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,o;for(o=0;o<n.length;o++)i=n[o],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}s(Dw,"_objectWithoutPropertiesLoose");function bw(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=Dw(r,["value","path","label","options","originalValue","sync"]),{name:f,test:g,params:m,message:y}=t,{parent:h,context:p}=u;function T(C){return Cw.default.isRef(C)?C.getValue(i,h,p):C}s(T,"resolve");function A(C={}){let R=(0,Rw.default)(sa({value:i,originalValue:c,label:a,path:C.path||o},m,C.params),T),w=new ia.default(ia.default.formatError(C.message||y,R),i,R.path,C.type||f);return w.params=R,w}s(A,"createError");let _=sa({path:o,parent:h,type:f,createError:A,resolve:T,options:u,originalValue:c},d);if(!l){try{Promise.resolve(g.call(_,i,_)).then(C=>{ia.default.isError(C)?n(C):C?n(null,C):n(A())})}catch(C){n(C)}return}let I;try{var O;if(I=g.call(_,i,_),typeof((O=I)==null?void 0:O.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(C){n(C);return}ia.default.isError(I)?n(I):I?n(null,I):n(A())}return s(e,"validate"),e.OPTIONS=t,e}s(bw,"createValidation")});var yl=Q(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.getIn=sg;Xi.default=void 0;var xw=Yi(),vw=s(t=>t.substr(0,t.length-1).substr(1),"trim");function sg(t,e,r,n=r){let i,o,a;return e?((0,xw.forEach)(e,(u,c,l)=>{let d=c?vw(u):u;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=l?parseInt(d,10):0;if(r&&f>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${u}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[f],t=t.innerType}if(!l){if(!t.fields||!t.fields[d])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${a} which is a type: "${t._type}")`);i=r,r=r&&r[d],t=t.fields[d]}o=d,a=c?"["+u+"]":"."+u}),{schema:t,parent:i,parentPath:o}):{parent:i,parentPath:e,schema:t}}s(sg,"getIn");var Nw=s((t,e,r,n)=>sg(t,e,r,n).schema,"reach"),Pw=Nw;Xi.default=Pw});var ag=Q(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.default=void 0;var og=Lw(Qr());function Lw(t){return t&&t.__esModule?t:{default:t}}s(Lw,"_interopRequireDefault");var Tl=class t{static{s(this,"ReferenceSet")}constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){og.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){og.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};oa.default=Tl});var Bt=Q(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.default=void 0;var ug=Ft(Wh()),Un=Mt(),Uw=Ft(Jh()),cg=Ft(ra()),aa=Ft(ig()),lg=Ft(Hi()),kw=Ft(Qr()),Mw=yl(),Fw=Ft(al()),dg=Ft(qr()),fg=Ft(ag());function Ft(t){return t&&t.__esModule?t:{default:t}}s(Ft,"_interopRequireDefault");function Xe(){return Xe=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Xe.apply(this,arguments)}s(Xe,"_extends");var dt=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new fg.default,this._blacklist=new fg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Un.mixed.notType)}),this.type=e?.type||"mixed",this.spec=Xe({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=Xe({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,ug.default)(Xe({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=Xe({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(o=>{e.tests.forEach(a=>{o.test(a.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,o)=>o.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(Xe({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,lg.default)(e),a=(0,lg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
|
|
1
|
+
"use strict";var FO=Object.create;var Pi=Object.defineProperty;var BO=Object.getOwnPropertyDescriptor;var WO=Object.getOwnPropertyNames;var GO=Object.getPrototypeOf,$O=Object.prototype.hasOwnProperty;var s=(t,e)=>Pi(t,"name",{value:e,configurable:!0});var Q=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},P=(t,e)=>{for(var r in e)Pi(t,r,{get:e[r],enumerable:!0})},ph=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of WO(e))!$O.call(t,i)&&i!==r&&Pi(t,i,{get:()=>e[i],enumerable:!(n=BO(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?FO(GO(t)):{},ph(e||!t||!t.__esModule?Pi(r,"default",{value:t,enumerable:!0}):r,t)),VO=t=>ph(Pi({},"__esModule",{value:!0}),t);var Oh=Q((zc,Jc)=>{"use strict";(function(t,e){typeof zc=="object"&&typeof Jc<"u"?Jc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(zc,(function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",o="minute",a="hour",u="day",c="week",l="month",d="quarter",f="year",g="date",m="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:s(function(M){var U=["th","st","nd","rd"],L=M%100;return"["+M+(U[(L-20)%10]||U[L]||U[0])+"]"},"ordinal")},T=s(function(M,U,L){var K=String(M);return!K||K.length>=U?M:""+Array(U+1-K.length).join(L)+M},"m"),A={s:T,z:s(function(M){var U=-M.utcOffset(),L=Math.abs(U),K=Math.floor(L/60),F=L%60;return(U<=0?"+":"-")+T(K,2,"0")+":"+T(F,2,"0")},"z"),m:s(function M(U,L){if(U.date()<L.date())return-M(L,U);var K=12*(L.year()-U.year())+(L.month()-U.month()),F=U.clone().add(K,l),j=L-F<0,q=U.clone().add(K+(j?-1:1),l);return+(-(K+(L-F)/(j?F-q:q-F))||0)},"t"),a:s(function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},"a"),p:s(function(M){return{M:l,y:f,w:c,d:u,D:g,h:a,m:o,s:i,ms:n,Q:d}[M]||String(M||"").toLowerCase().replace(/s$/,"")},"p"),u:s(function(M){return M===void 0},"u")},_="en",I={};I[_]=p;var O="$isDayjsObject",C=s(function(M){return M instanceof G||!(!M||!M[O])},"S"),R=s(function M(U,L,K){var F;if(!U)return _;if(typeof U=="string"){var j=U.toLowerCase();I[j]&&(F=j),L&&(I[j]=L,F=j);var q=U.split("-");if(!F&&q.length>1)return M(q[0])}else{var B=U.name;I[B]=U,F=B}return!K&&F&&(_=F),F||!K&&_},"t"),w=s(function(M,U){if(C(M))return M.clone();var L=typeof U=="object"?U:{};return L.date=M,L.args=arguments,new G(L)},"O"),b=A;b.l=R,b.i=C,b.w=function(M,U){return w(M,{locale:U.$L,utc:U.$u,x:U.$x,$offset:U.$offset})};var G=(function(){function M(L){this.$L=R(L.locale,null,!0),this.parse(L),this.$x=this.$x||L.x||{},this[O]=!0}s(M,"M");var U=M.prototype;return U.parse=function(L){this.$d=(function(K){var F=K.date,j=K.utc;if(F===null)return new Date(NaN);if(b.u(F))return new Date;if(F instanceof Date)return new Date(F);if(typeof F=="string"&&!/Z$/i.test(F)){var q=F.match(y);if(q){var B=q[2]-1||0,fe=(q[7]||"0").substring(0,3);return j?new Date(Date.UTC(q[1],B,q[3]||1,q[4]||0,q[5]||0,q[6]||0,fe)):new Date(q[1],B,q[3]||1,q[4]||0,q[5]||0,q[6]||0,fe)}}return new Date(F)})(L),this.init()},U.init=function(){var L=this.$d;this.$y=L.getFullYear(),this.$M=L.getMonth(),this.$D=L.getDate(),this.$W=L.getDay(),this.$H=L.getHours(),this.$m=L.getMinutes(),this.$s=L.getSeconds(),this.$ms=L.getMilliseconds()},U.$utils=function(){return b},U.isValid=function(){return this.$d.toString()!==m},U.isSame=function(L,K){var F=w(L);return this.startOf(K)<=F&&F<=this.endOf(K)},U.isAfter=function(L,K){return w(L)<this.startOf(K)},U.isBefore=function(L,K){return this.endOf(K)<w(L)},U.$g=function(L,K,F){return b.u(L)?this[K]:this.set(F,L)},U.unix=function(){return Math.floor(this.valueOf()/1e3)},U.valueOf=function(){return this.$d.getTime()},U.startOf=function(L,K){var F=this,j=!!b.u(K)||K,q=b.p(L),B=s(function($r,ve){var ur=b.w(F.$u?Date.UTC(F.$y,ve,$r):new Date(F.$y,ve,$r),F);return j?ur:ur.endOf(u)},"l"),fe=s(function($r,ve){return b.w(F.toDate()[$r].apply(F.toDate("s"),(j?[0,0,0,0]:[23,59,59,999]).slice(ve)),F)},"$"),Te=this.$W,we=this.$M,Je=this.$D,bn="set"+(this.$u?"UTC":"");switch(q){case f:return j?B(1,0):B(31,11);case l:return j?B(1,we):B(0,we+1);case c:var Gr=this.$locale().weekStart||0,vi=(Te<Gr?Te+7:Te)-Gr;return B(j?Je-vi:Je+(6-vi),we);case u:case g:return fe(bn+"Hours",0);case a:return fe(bn+"Minutes",1);case o:return fe(bn+"Seconds",2);case i:return fe(bn+"Milliseconds",3);default:return this.clone()}},U.endOf=function(L){return this.startOf(L,!1)},U.$set=function(L,K){var F,j=b.p(L),q="set"+(this.$u?"UTC":""),B=(F={},F[u]=q+"Date",F[g]=q+"Date",F[l]=q+"Month",F[f]=q+"FullYear",F[a]=q+"Hours",F[o]=q+"Minutes",F[i]=q+"Seconds",F[n]=q+"Milliseconds",F)[j],fe=j===u?this.$D+(K-this.$W):K;if(j===l||j===f){var Te=this.clone().set(g,1);Te.$d[B](fe),Te.init(),this.$d=Te.set(g,Math.min(this.$D,Te.daysInMonth())).$d}else B&&this.$d[B](fe);return this.init(),this},U.set=function(L,K){return this.clone().$set(L,K)},U.get=function(L){return this[b.p(L)]()},U.add=function(L,K){var F,j=this;L=Number(L);var q=b.p(K),B=s(function(we){var Je=w(j);return b.w(Je.date(Je.date()+Math.round(we*L)),j)},"y");if(q===l)return this.set(l,this.$M+L);if(q===f)return this.set(f,this.$y+L);if(q===u)return B(1);if(q===c)return B(7);var fe=(F={},F[o]=e,F[a]=r,F[i]=t,F)[q]||1,Te=this.$d.getTime()+L*fe;return b.w(Te,this)},U.subtract=function(L,K){return this.add(-1*L,K)},U.format=function(L){var K=this,F=this.$locale();if(!this.isValid())return F.invalidDate||m;var j=L||"YYYY-MM-DDTHH:mm:ssZ",q=b.z(this),B=this.$H,fe=this.$m,Te=this.$M,we=F.weekdays,Je=F.months,bn=F.meridiem,Gr=s(function(ve,ur,Ni,$o){return ve&&(ve[ur]||ve(K,j))||Ni[ur].slice(0,$o)},"h"),vi=s(function(ve){return b.s(B%12||12,ve,"0")},"d"),$r=bn||function(ve,ur,Ni){var $o=ve<12?"AM":"PM";return Ni?$o.toLowerCase():$o};return j.replace(h,(function(ve,ur){return ur||(function(Ni){switch(Ni){case"YY":return String(K.$y).slice(-2);case"YYYY":return b.s(K.$y,4,"0");case"M":return Te+1;case"MM":return b.s(Te+1,2,"0");case"MMM":return Gr(F.monthsShort,Te,Je,3);case"MMMM":return Gr(Je,Te);case"D":return K.$D;case"DD":return b.s(K.$D,2,"0");case"d":return String(K.$W);case"dd":return Gr(F.weekdaysMin,K.$W,we,2);case"ddd":return Gr(F.weekdaysShort,K.$W,we,3);case"dddd":return we[K.$W];case"H":return String(B);case"HH":return b.s(B,2,"0");case"h":return vi(1);case"hh":return vi(2);case"a":return $r(B,fe,!0);case"A":return $r(B,fe,!1);case"m":return String(fe);case"mm":return b.s(fe,2,"0");case"s":return String(K.$s);case"ss":return b.s(K.$s,2,"0");case"SSS":return b.s(K.$ms,3,"0");case"Z":return q}return null})(ve)||q.replace(":","")}))},U.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},U.diff=function(L,K,F){var j,q=this,B=b.p(K),fe=w(L),Te=(fe.utcOffset()-this.utcOffset())*e,we=this-fe,Je=s(function(){return b.m(q,fe)},"D");switch(B){case f:j=Je()/12;break;case l:j=Je();break;case d:j=Je()/3;break;case c:j=(we-Te)/6048e5;break;case u:j=(we-Te)/864e5;break;case a:j=we/r;break;case o:j=we/e;break;case i:j=we/t;break;default:j=we}return F?j:b.a(j)},U.daysInMonth=function(){return this.endOf(l).$D},U.$locale=function(){return I[this.$L]},U.locale=function(L,K){if(!L)return this.$L;var F=this.clone(),j=R(L,K,!0);return j&&(F.$L=j),F},U.clone=function(){return b.w(this.$d,this)},U.toDate=function(){return new Date(this.valueOf())},U.toJSON=function(){return this.isValid()?this.toISOString():null},U.toISOString=function(){return this.$d.toISOString()},U.toString=function(){return this.$d.toUTCString()},M})(),ee=G.prototype;return w.prototype=ee,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",g]].forEach((function(M){ee[M[1]]=function(U){return this.$g(U,M[0],M[1])}})),w.extend=function(M,U){return M.$i||(M(U,G,w),M.$i=!0),w},w.locale=R,w.isDayjs=C,w.unix=function(M){return w(1e3*M)},w.en=I[_],w.Ls=I,w.p={},w}))});var ct=Q(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.Err=Ue.Valid=Ue.err=Ue.valid=void 0;var gI=s(t=>new Jo(t),"valid");Ue.valid=gI;var EI=s(t=>new Xo(t),"err");Ue.err=EI;var Jo=class{static{s(this,"Valid")}constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Ue.valid)(e(this.value))}mapErr(e){return(0,Ue.valid)(this.value)}};Ue.Valid=Jo;var Xo=class{static{s(this,"Err")}constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Ue.err)(this.error)}mapErr(e){return(0,Ue.err)(e(this.error))}};Ue.Err=Xo});var lt=Q(Dh=>{"use strict";Object.defineProperty(Dh,"__esModule",{value:!0})});var lr=Q(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});Rt();var J=ct();lt();var yI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],TI=["sun","mon","tue","wed","thu","fri","sat"],SI=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),Fi=s((t,e,r)=>{if(e==="months"&&r.useAliases&&yI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&TI.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"),AI=s((t,e,r)=>{if(t==="*")return SI(e,r)?(0,J.valid)(!0):(0,J.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,J.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,J.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,J.valid)(!0):Fi(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,J.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,J.valid)(!0):Fi(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,J.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,J.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,J.err)("Number of occurrence of the day of the week cannot be greater than 5."):Fi(n,e,r)}return Fi(t,e,r)},"checkSingleElement"),bh=s((t,e,r,n)=>t==="*"?(0,J.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,J.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,J.valid)(!0):Fi(t,e,r),"checkRangeElement"),_I=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,J.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return AI(n[0],e,r);if(n.length===2){let i=bh(n[0],e,r,0),o=bh(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,J.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,J.valid)(!0)}return(0,J.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),OI=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=_I(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"),II=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(OI(a,e,r))}),i.every(a=>a.isValid()))return(0,J.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,J.err)(o)},"checkField");tl.default=II});var xh=Q(Bi=>{"use strict";var wI=Bi&&Bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bi,"__esModule",{value:!0});Rt();var RI=ct(),CI=wI(lr());lt();var DI=s((t,e)=>{if(!t.seconds)return(0,RI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,CI.default)(r,"seconds",e)},"checkSeconds");Bi.default=DI});var vh=Q(Wi=>{"use strict";var bI=Wi&&Wi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Wi,"__esModule",{value:!0});Rt();var xI=ct(),vI=bI(lr());lt();var NI=s((t,e)=>{if(!t.minutes)return(0,xI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,vI.default)(r,"minutes",e)},"checkMinutes");Wi.default=NI});var Nh=Q(Gi=>{"use strict";var PI=Gi&&Gi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gi,"__esModule",{value:!0});Rt();var LI=ct(),UI=PI(lr());lt();var kI=s((t,e)=>{if(!t.hours)return(0,LI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,UI.default)(r,"hours",e)},"checkHours");Gi.default=kI});var Ph=Q(Vi=>{"use strict";var MI=Vi&&Vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vi,"__esModule",{value:!0});Rt();var $i=ct(),FI=MI(lr());lt();var BI=s((t,e)=>{if(!t.daysOfMonth)return(0,$i.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$i.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$i.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,$i.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,$i.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,FI.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");Vi.default=BI});var Lh=Q(qi=>{"use strict";var WI=qi&&qi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qi,"__esModule",{value:!0});Rt();var GI=ct(),$I=WI(lr());lt();var VI=s((t,e)=>{if(!t.months)return(0,GI.err)(["months field is undefined."]);let{months:r}=t;return(0,$I.default)(r,"months",e)},"checkMonths");qi.default=VI});var Uh=Q(Qi=>{"use strict";var qI=Qi&&Qi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qi,"__esModule",{value:!0});Rt();var Ki=ct(),KI=qI(lr());lt();var QI=s((t,e)=>{if(!t.daysOfWeek)return(0,Ki.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ki.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ki.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ki.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ki.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,KI.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");Qi.default=QI});var kh=Q(ji=>{"use strict";var jI=ji&&ji.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ji,"__esModule",{value:!0});Rt();var HI=ct(),YI=jI(lr());lt();var zI=s((t,e)=>{if(!t.years)return(0,HI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,YI.default)(r,"years",e)},"checkYears");ji.default=zI});var Wh=Q((WB,Bh)=>{"use strict";var rl;try{rl=Map}catch{}var nl;try{nl=Set}catch{}function Mh(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(Fh);if(rl&&t instanceof rl)return new Map(Array.from(t.entries()));if(nl&&t instanceof nl)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var o=e.findIndex(function(a){return a===t[i]});n[i]=o>-1?r[o]:Mh(t[i],e,r)}return n}return t}s(Mh,"baseClone");function Fh(t){return Mh(t,[],[])}s(Fh,"clone");Bh.exports=Fh});var Hi=Q(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.default=nw;var JI=Object.prototype.toString,XI=Error.prototype.toString,ZI=RegExp.prototype.toString,ew=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",tw=/^Symbol\((.*)\)(.*)$/;function rw(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(rw,"printNumber");function Gh(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return rw(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return ew.call(t).replace(tw,"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?"["+XI.call(t)+"]":n==="RegExp"?ZI.call(t):null}s(Gh,"printSimpleValue");function nw(t,e){let r=Gh(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=Gh(this[n],e);return o!==null?o:i},2)}s(nw,"printValue")});var Mt=Q(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.default=Se.array=Se.object=Se.boolean=Se.date=Se.number=Se.string=Se.mixed=void 0;var $h=iw(Hi());function iw(t){return t&&t.__esModule?t:{default:t}}s(iw,"_interopRequireDefault");var Vh={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:s(({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,o=`${t} must be a \`${e}\` type, but the final value was: \`${(0,$h.default)(r,!0)}\``+(i?` (cast from the value \`${(0,$h.default)(n,!0)}\`).`:".");return r===null&&(o+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),o},"notType"),defined:"${path} must be defined"};Se.mixed=Vh;var qh={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Se.string=qh;var Kh={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Se.number=Kh;var Qh={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=Qh;var jh={isValue:"${path} field must be ${value}"};Se.boolean=jh;var Hh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=Hh;var Yh={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Se.array=Yh;var sw=Object.assign(Object.create(null),{mixed:Vh,string:qh,number:Kh,date:Qh,object:Hh,array:Yh,boolean:jh});Se.default=sw});var Ln=Q(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var ow=s(t=>t&&t.__isYupSchema__,"_default");Zo.default=ow});var Jh=Q(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.default=void 0;var aw=zh(require("lodash/has")),uw=zh(Ln());function zh(t){return t&&t.__esModule?t:{default:t}}s(zh,"_interopRequireDefault");var sl=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,aw.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,uw.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},cw=sl;ea.default=cw});var al=Q(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});ol.default=lw;function lw(t){return t==null?[]:[].concat(t)}s(lw,"toArray")});var qr=Q(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.default=void 0;var dw=Xh(Hi()),fw=Xh(al());function Xh(t){return t&&t.__esModule?t:{default:t}}s(Xh,"_interopRequireDefault");function ul(){return ul=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ul.apply(this,arguments)}s(ul,"_extends");var pw=/\$\{\s*(\w+)\s*\}/g,cl=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ul({},r,{path:n})),typeof e=="string"?e.replace(pw,(i,o)=>(0,dw.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,fw.default)(e).forEach(o=>{t.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};ta.default=cl});var ra=Q(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});dl.default=gw;var ll=mw(qr());function mw(t){return t&&t.__esModule?t:{default:t}}s(mw,"_interopRequireDefault");var hw=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function gw(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=hw(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new ll.default(a,o,c)):l(null,o);for(let g=0;g<n.length;g++){let m=n[g];m(i,s(function(h){if(h){if(!ll.default.isError(h))return l(h,o);if(r)return h.value=o,l(h,o);f.push(h)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new ll.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s(gw,"runTests")});var Yi=Q((rW,ng)=>{"use strict";function Kr(t){this._maxSize=t,this.clear()}s(Kr,"Cache");Kr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Kr.prototype.get=function(t){return this._values[t]};Kr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Ew=/[^.^\]^[]+|(?=\[\]|\.\.)/g,rg=/^\d+$/,yw=/^\d/,Tw=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Sw=/^\s*(['"]?)(.*?)(\1)\s*$/,ml=512,Zh=new Kr(ml),eg=new Kr(ml),tg=new Kr(ml);ng.exports={Cache:Kr,split:pl,normalizePath:fl,setter:s(function(t){var e=fl(t);return eg.get(t)||eg.set(t,s(function(n,i){for(var o=0,a=e.length,u=n;o<a-1;){var c=e[o];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;u=u[e[o++]]}u[e[o]]=i},"setter"))},"setter"),getter:s(function(t,e){var r=fl(t);return tg.get(t)||tg.set(t,s(function(i){for(var o=0,a=r.length;o<a;)if(i!=null||!e)i=i[r[o++]];else return;return i},"getter"))},"getter"),join:s(function(t){return t.reduce(function(e,r){return e+(hl(r)||rg.test(r)?"["+r+"]":(e?".":"")+r)},"")},"join"),forEach:s(function(t,e,r){Aw(Array.isArray(t)?t:pl(t),e,r)},"forEach")};function fl(t){return Zh.get(t)||Zh.set(t,pl(t).map(function(e){return e.replace(Sw,"$2")}))}s(fl,"normalizePath");function pl(t){return t.match(Ew)||[""]}s(pl,"split");function Aw(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(Iw(i)&&(i='"'+i+'"'),u=hl(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(Aw,"forEach");function hl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(hl,"isQuoted");function _w(t){return t.match(yw)&&!t.match(rg)}s(_w,"hasLeadingNumber");function Ow(t){return Tw.test(t)}s(Ow,"hasSpecialChars");function Iw(t){return!hl(t)&&(_w(t)||Ow(t))}s(Iw,"shouldBeQuoted")});var Qr=Q(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=Rw;Ji.default=void 0;var ww=Yi(),na={context:"$",value:"."};function Rw(t,e){return new zi(t,e)}s(Rw,"create");var zi=class{static{s(this,"Reference")}constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===na.context,this.isValue=this.key[0]===na.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?na.context:this.isValue?na.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,ww.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Ji.default=zi;zi.prototype.__isYupRef=!0});var ig=Q(El=>{"use strict";Object.defineProperty(El,"__esModule",{value:!0});El.default=xw;var Cw=gl(require("lodash/mapValues")),ia=gl(qr()),Dw=gl(Qr());function gl(t){return t&&t.__esModule?t:{default:t}}s(gl,"_interopRequireDefault");function sa(){return sa=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},sa.apply(this,arguments)}s(sa,"_extends");function bw(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(bw,"_objectWithoutPropertiesLoose");function xw(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=bw(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 Dw.default.isRef(C)?C.getValue(i,h,p):C}s(T,"resolve");function A(C={}){let R=(0,Cw.default)(sa({value:i,originalValue:c,label:a,path:C.path||o},m,C.params),T),w=new ia.default(ia.default.formatError(C.message||y,R),i,R.path,C.type||f);return w.params=R,w}s(A,"createError");let _=sa({path:o,parent:h,type:f,createError:A,resolve:T,options:u,originalValue:c},d);if(!l){try{Promise.resolve(g.call(_,i,_)).then(C=>{ia.default.isError(C)?n(C):C?n(null,C):n(A())})}catch(C){n(C)}return}let I;try{var O;if(I=g.call(_,i,_),typeof((O=I)==null?void 0:O.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(C){n(C);return}ia.default.isError(I)?n(I):I?n(null,I):n(A())}return s(e,"validate"),e.OPTIONS=t,e}s(xw,"createValidation")});var yl=Q(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.getIn=sg;Xi.default=void 0;var vw=Yi(),Nw=s(t=>t.substr(0,t.length-1).substr(1),"trim");function sg(t,e,r,n=r){let i,o,a;return e?((0,vw.forEach)(e,(u,c,l)=>{let d=c?Nw(u):u;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=l?parseInt(d,10):0;if(r&&f>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${u}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[f],t=t.innerType}if(!l){if(!t.fields||!t.fields[d])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${a} which is a type: "${t._type}")`);i=r,r=r&&r[d],t=t.fields[d]}o=d,a=c?"["+u+"]":"."+u}),{schema:t,parent:i,parentPath:o}):{parent:i,parentPath:e,schema:t}}s(sg,"getIn");var Pw=s((t,e,r,n)=>sg(t,e,r,n).schema,"reach"),Lw=Pw;Xi.default=Lw});var ag=Q(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.default=void 0;var og=Uw(Qr());function Uw(t){return t&&t.__esModule?t:{default:t}}s(Uw,"_interopRequireDefault");var Tl=class t{static{s(this,"ReferenceSet")}constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){og.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){og.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};oa.default=Tl});var Bt=Q(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.default=void 0;var ug=Ft(Wh()),Un=Mt(),kw=Ft(Jh()),cg=Ft(ra()),aa=Ft(ig()),lg=Ft(Hi()),Mw=Ft(Qr()),Fw=yl(),Bw=Ft(al()),dg=Ft(qr()),fg=Ft(ag());function Ft(t){return t&&t.__esModule?t:{default:t}}s(Ft,"_interopRequireDefault");function Xe(){return Xe=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Xe.apply(this,arguments)}s(Xe,"_extends");var dt=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new fg.default,this._blacklist=new fg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Un.mixed.notType)}),this.type=e?.type||"mixed",this.spec=Xe({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=Xe({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,ug.default)(Xe({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=Xe({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(o=>{e.tests.forEach(a=>{o.test(a.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,o)=>o.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(Xe({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,lg.default)(e),a=(0,lg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
|
|
2
2
|
|
|
3
3
|
attempted value: ${o}
|
|
4
|
-
`+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,o)=>o.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:o,from:a=[],originalValue:u=e,strict:c=this.spec.strict,abortEarly:l=this.spec.abortEarly}=r,d=e;c||(d=this._cast(d,Xe({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},g=[];this._typeError&&g.push(this._typeError),this._whitelistError&&g.push(this._whitelistError),this._blacklistError&&g.push(this._blacklistError),(0,cg.default)({args:f,value:d,path:o,sync:i,tests:g,endEarly:l},m=>{if(m)return void n(m,d);(0,cg.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(Xe({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((o,a)=>i._validate(e,r,(u,c)=>{u?a(u):o(c)}))}validateSync(e,r){let n=this.resolve(Xe({},r,{value:e})),i;return n._validate(e,Xe({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(dg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(dg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,ug.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Un.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Un.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Un.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,aa.default)(r),o=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(a=>!(a.OPTIONS.name===r.name&&(o||a.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,Fw.default)(e).map(o=>new kw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new Uw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,aa.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Un.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,aa.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let o=this.schema._whitelist;return o.has(i,this.resolve)?!0:this.createError({params:{values:o.toArray().join(", ")}})}}),n}notOneOf(e,r=Un.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,aa.default)({message:r,name:"notOneOf",test(i){let o=this.schema._blacklist;return o.has(i,this.resolve)?this.createError({params:{values:o.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(o=>({name:o.OPTIONS.name,params:o.OPTIONS.params})).filter((o,a,u)=>u.findIndex(c=>c.name===o.name)===a)}}};ua.default=dt;dt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])dt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,Mw.getIn)(this,e,r,n.context);return a[t](i&&i[o],Xe({},n,{parent:i,path:e}))};for(let t of["equals","is"])dt.prototype[t]=dt.prototype.oneOf;for(let t of["not","nope"])dt.prototype[t]=dt.prototype.notOneOf;dt.prototype.optional=dt.prototype.notRequired});var mg=Q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=pg;Zi.default=void 0;var Bw=Ww(Bt());function Ww(t){return t&&t.__esModule?t:{default:t}}s(Ww,"_interopRequireDefault");var Sl=Bw.default,Gw=Sl;Zi.default=Gw;function pg(){return new Sl}s(pg,"create");pg.prototype=Sl.prototype});var kn=Q(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.default=void 0;var $w=s(t=>t==null,"_default");ca.default=$w});var Tg=Q(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.create=yg;ts.default=void 0;var Vw=Eg(Bt()),hg=Mt(),gg=Eg(kn());function Eg(t){return t&&t.__esModule?t:{default:t}}s(Eg,"_interopRequireDefault");function yg(){return new es}s(yg,"create");var es=class extends Vw.default{static{s(this,"BooleanSchema")}constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,gg.default)(r)||r===!0}})}isFalse(e=hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,gg.default)(r)||r===!1}})}};ts.default=es;yg.prototype=es.prototype});var _g=Q(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.create=Ag;ns.default=void 0;var Ct=Mt(),Wt=Sg(kn()),qw=Sg(Bt());function Sg(t){return t&&t.__esModule?t:{default:t}}s(Sg,"_interopRequireDefault");var Kw=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,Qw=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,jw=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,Hw=s(t=>(0,Wt.default)(t)||t===t.trim(),"isTrimmed"),Yw={}.toString();function Ag(){return new rs}s(Ag,"create");var rs=class extends qw.default{static{s(this,"StringSchema")}constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===Yw?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Ct.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Wt.default)(n)||n.length===this.resolve(e)}})}min(e,r=Ct.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Wt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Ct.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,Wt.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,o;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:o}=r:i=r),this.test({name:o||"matches",message:i||Ct.string.matches,params:{regex:e},test:s(a=>(0,Wt.default)(a)||a===""&&n||a.search(e)!==-1,"test")})}email(e=Ct.string.email){return this.matches(Kw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Ct.string.url){return this.matches(Qw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Ct.string.uuid){return this.matches(jw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Ct.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:Hw})}lowercase(e=Ct.string.lowercase){return this.transform(r=>(0,Wt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:s(r=>(0,Wt.default)(r)||r===r.toLowerCase(),"test")})}uppercase(e=Ct.string.uppercase){return this.transform(r=>(0,Wt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:s(r=>(0,Wt.default)(r)||r===r.toUpperCase(),"test")})}};ns.default=rs;Ag.prototype=rs.prototype});var wg=Q(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});ss.create=Ig;ss.default=void 0;var jr=Mt(),Hr=Og(kn()),zw=Og(Bt());function Og(t){return t&&t.__esModule?t:{default:t}}s(Og,"_interopRequireDefault");var Jw=s(t=>t!=+t,"isNaN");function Ig(){return new is}s(Ig,"create");var is=class extends zw.default{static{s(this,"NumberSchema")}constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let r=e;if(typeof r=="string"){if(r=r.replace(/\s/g,""),r==="")return NaN;r=+r}return this.isType(r)?r:parseFloat(r)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!Jw(e)}min(e,r=jr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Hr.default)(n)||n>=this.resolve(e)}})}max(e,r=jr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Hr.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=jr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Hr.default)(n)||n<this.resolve(e)}})}moreThan(e,r=jr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Hr.default)(n)||n>this.resolve(e)}})}positive(e=jr.number.positive){return this.moreThan(0,e)}negative(e=jr.number.negative){return this.lessThan(0,e)}integer(e=jr.number.integer){return this.test({name:"integer",message:e,test:s(r=>(0,Hr.default)(r)||Number.isInteger(r),"test")})}truncate(){return this.transform(e=>(0,Hr.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Hr.default)(i)?i:Math[e](i))}};ss.default=is;Ig.prototype=is.prototype});var Rg=Q(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});Al.default=Zw;var Xw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Zw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Xw.exec(t)){for(var o=0,a;a=e[o];++o)i[a]=+i[a]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}s(Zw,"parseIsoDate")});var bg=Q(os=>{"use strict";Object.defineProperty(os,"__esModule",{value:!0});os.create=Ol;os.default=void 0;var eR=la(Rg()),Cg=Mt(),Dg=la(kn()),tR=la(Qr()),rR=la(Bt());function la(t){return t&&t.__esModule?t:{default:t}}s(la,"_interopRequireDefault");var _l=new Date(""),nR=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function Ol(){return new Mn}s(Ol,"create");var Mn=class extends rR.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,eR.default)(e),isNaN(e)?_l:new Date(e))})})}_typeCheck(e){return nR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(tR.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=Cg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Dg.default)(i)||i>=this.resolve(n)}})}max(e,r=Cg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Dg.default)(i)||i<=this.resolve(n)}})}};os.default=Mn;Mn.INVALID_DATE=_l;Ol.prototype=Mn.prototype;Ol.INVALID_DATE=_l});var vg=Q((CW,Il)=>{"use strict";Il.exports=function(t){return xg(iR(t),t)};Il.exports.array=xg;function xg(t,e){var r=t.length,n=new Array(r),i={},o=r,a=sR(e),u=oR(t);for(e.forEach(function(l){if(!u.has(l[0])||!u.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||c(t[o],o,new Set);return n;function c(l,d,f){if(f.has(l)){var g;try{g=", node was:"+JSON.stringify(l)}catch{g=""}throw new Error("Cyclic dependency"+g)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var m=a.get(l)||new Set;if(m=Array.from(m),d=m.length){f.add(l);do{var y=m[--d];c(y,u.get(y),f)}while(d);f.delete(l)}n[--r]=l}}}s(xg,"toposort");function iR(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}s(iR,"uniqueNodes");function sR(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}s(sR,"makeOutgoingEdges");function oR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(oR,"makeNodesHash")});var Ng=Q(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});wl.default=fR;var aR=da(require("lodash/has")),uR=da(vg()),cR=Yi(),lR=da(Qr()),dR=da(Ln());function da(t){return t&&t.__esModule?t:{default:t}}s(da,"_interopRequireDefault");function fR(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,cR.split)(o)[0];~n.indexOf(u)||n.push(u),~e.indexOf(`${a}-${u}`)||r.push([a,u])}s(i,"addNode");for(let o in t)if((0,aR.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),lR.default.isRef(a)&&a.isSibling?i(a.path,o):(0,dR.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return uR.default.array(n,r).reverse()}s(fR,"sortFields")});var Lg=Q(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.default=pR;function Pg(t,e){let r=1/0;return t.some((n,i)=>{var o;if(((o=e.path)==null?void 0:o.indexOf(n))!==-1)return r=i,!0}),r}s(Pg,"findIndex");function pR(t){return(e,r)=>Pg(t,e)-Pg(t,r)}s(pR,"sortByKeyOrder")});var Gg=Q(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.create=Wg;us.default=void 0;var Ug=Dt(require("lodash/has")),kg=Dt(require("lodash/snakeCase")),mR=Dt(require("lodash/camelCase")),hR=Dt(require("lodash/mapKeys")),gR=Dt(require("lodash/mapValues")),ER=Yi(),Mg=Mt(),yR=Dt(Ng()),Bg=Dt(Lg()),TR=Dt(ra()),SR=Dt(qr()),Cl=Dt(Bt());function Dt(t){return t&&t.__esModule?t:{default:t}}s(Dt,"_interopRequireDefault");function Fn(){return Fn=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Fn.apply(this,arguments)}s(Fn,"_extends");var Fg=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function AR(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(AR,"unknown");var _R=(0,Bg.default)([]),as=class extends Cl.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=_R,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(s(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null},"coerce")),e&&this.shape(e)})}_typeCheck(e){return Fg(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let o=this.fields,a=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,u=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),c={},l=Fn({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let g=o[f],m=(0,Ug.default)(i,f);if(g){let y,h=i[f];l.path=(r.path?`${r.path}.`:"")+f,g=g.resolve({value:h,context:r.context,parent:c});let p="spec"in g?g.spec:void 0,T=p?.strict;if(p?.strip){d=d||f in i;continue}y=!r.__validating||!T?g.cast(i[f],l):i[f],y!==void 0&&(c[f]=y)}else m&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!SR.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!Fg(f)){n(i[0]||null,f);return}u=u||f;let g=this._nodes.map(m=>(y,h)=>{let p=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(f[m],Fn({},r,{path:p,from:a,strict:!0,parent:f,originalValue:u[m]}),h);return}h(null)});(0,TR.default)({sync:o,tests:g,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Fn({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,o]of Object.entries(this.fields)){let a=n[i];a===void 0?n[i]=o:a instanceof Cl.default&&o instanceof Cl.default&&(n[i]=o.concat(a))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,Bg.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let o=r.map(([a,u])=>`${a}-${u}`);n._excludedEdges=n._excludedEdges.concat(o)}return n._nodes=(0,yR.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,ER.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,Ug.default)(o,e)&&(a=Fn({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=Mg.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let o=AR(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Mg.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,hR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(mR.default)}snakeCase(){return this.transformKeys(kg.default)}constantCase(){return this.transformKeys(e=>(0,kg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,gR.default)(this.fields,r=>r.describe()),e}};us.default=as;function Wg(t){return new as(t)}s(Wg,"create");Wg.prototype=as.prototype});var Vg=Q(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.create=$g;ls.default=void 0;var Dl=Bn(kn()),OR=Bn(Ln()),IR=Bn(Hi()),bl=Mt(),wR=Bn(ra()),RR=Bn(qr()),CR=Bn(Bt());function Bn(t){return t&&t.__esModule?t:{default:t}}s(Bn,"_interopRequireDefault");function fa(){return fa=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},fa.apply(this,arguments)}s(fa,"_extends");function $g(t){return new cs(t)}s($g,"create");var cs=class extends CR.default{static{s(this,"ArraySchema")}constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,o=n.map((a,u)=>{let c=this.innerType.cast(a,fa({},r,{path:`${r.path||""}[${u}]`}));return c!==a&&(i=!0),c});return i?o:n}_validate(e,r={},n){var i,o;let a=[],u=r.sync,c=r.path,l=this.innerType,d=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(o=r.recursive)!=null?o:this.spec.recursive,g=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,y)=>{if(m){if(!RR.default.isError(m)||d)return void n(m,y);a.push(m)}if(!f||!l||!this._typeCheck(y)){n(a[0]||null,y);return}g=g||y;let h=new Array(y.length);for(let p=0;p<y.length;p++){let T=y[p],A=`${r.path||""}[${p}]`,_=fa({},r,{path:A,strict:!0,parent:y,index:p,originalValue:g[p]});h[p]=(I,O)=>l.validate(T,_,O)}(0,wR.default)({sync:u,path:c,value:y,errors:a,endEarly:d,tests:h},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,OR.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,IR.default)(e));return r.innerType=e,r}length(e,r=bl.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Dl.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||bl.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Dl.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||bl.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Dl.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,o)=>!e(n,i,o):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};ls.default=cs;$g.prototype=cs.prototype});var qg=Q(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});ds.create=xR;ds.default=void 0;var DR=bR(Ln());function bR(t){return t&&t.__esModule?t:{default:t}}s(bR,"_interopRequireDefault");function xR(t){return new pa(t)}s(xR,"create");var pa=class{static{s(this,"Lazy")}constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,DR.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},vR=pa;ds.default=vR});var Kg=Q(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});xl.default=LR;var NR=PR(Mt());function PR(t){return t&&t.__esModule?t:{default:t}}s(PR,"_interopRequireDefault");function LR(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{NR.default[e][r]=t[e][r]})})}s(LR,"setLocale")});var Nl=Q(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.addMethod=GR;Object.defineProperty(ie,"MixedSchema",{enumerable:!0,get:s(function(){return Qg.default},"get")});Object.defineProperty(ie,"mixed",{enumerable:!0,get:s(function(){return Qg.create},"get")});Object.defineProperty(ie,"BooleanSchema",{enumerable:!0,get:s(function(){return vl.default},"get")});Object.defineProperty(ie,"bool",{enumerable:!0,get:s(function(){return vl.create},"get")});Object.defineProperty(ie,"boolean",{enumerable:!0,get:s(function(){return vl.create},"get")});Object.defineProperty(ie,"StringSchema",{enumerable:!0,get:s(function(){return jg.default},"get")});Object.defineProperty(ie,"string",{enumerable:!0,get:s(function(){return jg.create},"get")});Object.defineProperty(ie,"NumberSchema",{enumerable:!0,get:s(function(){return Hg.default},"get")});Object.defineProperty(ie,"number",{enumerable:!0,get:s(function(){return Hg.create},"get")});Object.defineProperty(ie,"DateSchema",{enumerable:!0,get:s(function(){return Yg.default},"get")});Object.defineProperty(ie,"date",{enumerable:!0,get:s(function(){return Yg.create},"get")});Object.defineProperty(ie,"ObjectSchema",{enumerable:!0,get:s(function(){return zg.default},"get")});Object.defineProperty(ie,"object",{enumerable:!0,get:s(function(){return zg.create},"get")});Object.defineProperty(ie,"ArraySchema",{enumerable:!0,get:s(function(){return Jg.default},"get")});Object.defineProperty(ie,"array",{enumerable:!0,get:s(function(){return Jg.create},"get")});Object.defineProperty(ie,"ref",{enumerable:!0,get:s(function(){return UR.create},"get")});Object.defineProperty(ie,"lazy",{enumerable:!0,get:s(function(){return kR.create},"get")});Object.defineProperty(ie,"ValidationError",{enumerable:!0,get:s(function(){return MR.default},"get")});Object.defineProperty(ie,"reach",{enumerable:!0,get:s(function(){return FR.default},"get")});Object.defineProperty(ie,"isSchema",{enumerable:!0,get:s(function(){return Xg.default},"get")});Object.defineProperty(ie,"setLocale",{enumerable:!0,get:s(function(){return BR.default},"get")});Object.defineProperty(ie,"BaseSchema",{enumerable:!0,get:s(function(){return WR.default},"get")});var Qg=Yr(mg()),vl=Yr(Tg()),jg=Yr(_g()),Hg=Yr(wg()),Yg=Yr(bg()),zg=Yr(Gg()),Jg=Yr(Vg()),UR=Qr(),kR=qg(),MR=fs(qr()),FR=fs(yl()),Xg=fs(Ln()),BR=fs(Kg()),WR=fs(Bt());function fs(t){return t&&t.__esModule?t:{default:t}}s(fs,"_interopRequireDefault");function Zg(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Zg=s(function(){return t},"_getRequireWildcardCache"),t}s(Zg,"_getRequireWildcardCache");function Yr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Zg();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=n?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}s(Yr,"_interopRequireWildcard");function GR(t,e,r){if(!t||!(0,Xg.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}s(GR,"addMethod")});var eE=Q(Ll=>{"use strict";Object.defineProperty(Ll,"__esModule",{value:!0});var Pl=Ul();Ll.default=()=>{(0,Pl.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,Pl.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,Pl.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var Ul=Q(Ae=>{"use strict";var $R=Ae&&Ae.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:s(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),VR=Ae&&Ae.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),qR=Ae&&Ae.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&$R(e,t,r);return VR(e,t),e},KR=Ae&&Ae.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.validateOptions=Ae.registerOptionPreset=Ae.getOptionPresets=Ae.getOptionPreset=void 0;var x=qR(Nl());Nl();var ps=ct(),QR=KR(eE());lt();var zr={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},tE=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),jR=s(t=>zr[t]?(0,ps.valid)(zr[t]):(0,ps.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=jR;var HR=s(()=>zr,"getOptionPresets");Ae.getOptionPresets=HR;var YR=s((t,e)=>{zr[t]=tE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=YR;var zR=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,g,m,y,h,p,T,A,_,I;try{(0,QR.default)();let O;if(t.preset)if(typeof t.preset=="string"){if(!zr[t.preset])return(0,ps.err)([`Option preset ${t.preset} does not exist.`]);O=zr[t.preset]}else O=t.preset;else O=zr.default;let C=Object.assign(Object.assign({presetId:O.presetId,preset:O},{useSeconds:O.useSeconds,useYears:O.useYears,useAliases:(e=O.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:O.useBlankDay,allowOnlyOneBlankDayField:O.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=O.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=O.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=O.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=O.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=O.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=O.seconds.lowerLimit)!==null&&u!==void 0?u:O.seconds.minValue,upperLimit:(c=O.seconds.upperLimit)!==null&&c!==void 0?c:O.seconds.maxValue},minutes:{lowerLimit:(l=O.minutes.lowerLimit)!==null&&l!==void 0?l:O.minutes.minValue,upperLimit:(d=O.minutes.upperLimit)!==null&&d!==void 0?d:O.minutes.maxValue},hours:{lowerLimit:(f=O.hours.lowerLimit)!==null&&f!==void 0?f:O.hours.minValue,upperLimit:(g=O.hours.upperLimit)!==null&&g!==void 0?g:O.hours.maxValue},daysOfMonth:{lowerLimit:(m=O.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:O.daysOfMonth.minValue,upperLimit:(y=O.daysOfMonth.upperLimit)!==null&&y!==void 0?y:O.daysOfMonth.maxValue},months:{lowerLimit:(h=O.months.lowerLimit)!==null&&h!==void 0?h:O.months.minValue,upperLimit:(p=O.months.upperLimit)!==null&&p!==void 0?p:O.months.maxValue},daysOfWeek:{lowerLimit:(T=O.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:O.daysOfWeek.minValue,upperLimit:(A=O.daysOfWeek.upperLimit)!==null&&A!==void 0?A:O.daysOfWeek.maxValue},years:{lowerLimit:(_=O.years.lowerLimit)!==null&&_!==void 0?_:O.years.minValue,upperLimit:(I=O.years.upperLimit)!==null&&I!==void 0?I:O.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:tE.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(O.seconds.minValue).max(O.seconds.maxValue),upperLimit:x.number().min(O.seconds.minValue).max(O.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(O.minutes.minValue).max(O.minutes.maxValue),upperLimit:x.number().min(O.minutes.minValue).max(O.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(O.hours.minValue).max(O.hours.maxValue),upperLimit:x.number().min(O.hours.minValue).max(O.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(O.daysOfMonth.minValue).max(O.daysOfMonth.maxValue),upperLimit:x.number().min(O.daysOfMonth.minValue).max(O.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(O.months.minValue).max(O.months.maxValue),upperLimit:x.number().min(O.months.minValue).max(O.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(O.daysOfWeek.minValue).max(O.daysOfWeek.maxValue),upperLimit:x.number().min(O.daysOfWeek.minValue).max(O.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(O.years.minValue).max(O.years.maxValue),upperLimit:x.number().min(O.years.minValue).max(O.years.maxValue)}).required()}).required().validateSync(C,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ps.valid)(w)}catch(O){return(0,ps.err)(O.errors)}},"validateOptions");Ae.validateOptions=zR});var Rt=Q((ms,Ml)=>{"use strict";var Xr=ms&&ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ms,"__esModule",{value:!0});var Jr=ct(),JR=Xr(xh()),XR=Xr(vh()),ZR=Xr(Nh()),eC=Xr(Ph()),tC=Xr(Lh()),rC=Xr(Uh()),nC=Xr(kh()),iC=Ul();lt();var sC=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Jr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Jr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Jr.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,Jr.valid)(n)},"splitCronString"),kl=s((t,e={})=>{let r=(0,iC.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=sC(t,n);if(i.isError())return(0,Jr.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,JR.default)(o,n)),a.push((0,XR.default)(o,n)),a.push((0,ZR.default)(o,n)),a.push((0,eC.default)(o,n)),a.push((0,tC.default)(o,n)),a.push((0,rC.default)(o,n)),n.useYears&&a.push((0,nC.default)(o,n)),a.every(c=>c.isValid()))return(0,Jr.valid)(o);let u=[];return a.forEach(c=>{c.isError()&&c.getError().forEach(l=>{u.push(l)})}),u.forEach((c,l)=>{u[l]=`${c} (Input cron: '${t}')`}),(0,Jr.err)(u)},"cron");ms.default=kl;Ml.exports=kl;Ml.exports.default=kl});var vy=Q(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var $t=class extends Error{static{s(this,"LuxonError")}},jl=class extends $t{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Hl=class extends $t{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Yl=class extends $t{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},pr=class extends $t{static{s(this,"ConflictingSpecificationError")}},Aa=class extends $t{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends $t{static{s(this,"InvalidArgumentError")}},bt=class extends $t{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},N="numeric",mt="short",qe="long",_a={year:N,month:N,day:N},NE={year:N,month:mt,day:N},oC={year:N,month:mt,day:N,weekday:mt},PE={year:N,month:qe,day:N},LE={year:N,month:qe,day:N,weekday:qe},UE={hour:N,minute:N},kE={hour:N,minute:N,second:N},ME={hour:N,minute:N,second:N,timeZoneName:mt},FE={hour:N,minute:N,second:N,timeZoneName:qe},BE={hour:N,minute:N,hourCycle:"h23"},WE={hour:N,minute:N,second:N,hourCycle:"h23"},GE={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:mt},$E={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:qe},VE={year:N,month:N,day:N,hour:N,minute:N},qE={year:N,month:N,day:N,hour:N,minute:N,second:N},KE={year:N,month:mt,day:N,hour:N,minute:N},QE={year:N,month:mt,day:N,hour:N,minute:N,second:N},aC={year:N,month:mt,day:N,weekday:mt,hour:N,minute:N},jE={year:N,month:qe,day:N,hour:N,minute:N,timeZoneName:mt},HE={year:N,month:qe,day:N,hour:N,minute:N,second:N,timeZoneName:mt},YE={year:N,month:qe,day:N,weekday:qe,hour:N,minute:N,timeZoneName:qe},zE={year:N,month:qe,day:N,weekday:qe,hour:N,minute:N,second:N,timeZoneName:qe},hr=class{static{s(this,"Zone")}get type(){throw new bt}get name(){throw new bt}get ianaName(){return this.name}get isUniversal(){throw new bt}offsetName(e,r){throw new bt}formatOffset(e,r){throw new bt}offset(e){throw new bt}equals(e){throw new bt}get isValid(){throw new bt}},Fl=null,Ss=class t extends hr{static{s(this,"SystemZone")}static get instance(){return Fl===null&&(Fl=new t),Fl}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ay(e,r,n)}formatOffset(e,r){return Ts(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},zl=new Map;function uC(t){let e=zl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),zl.set(t,e)),e}s(uC,"makeDTF");var cC={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function lC(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,o,a,u,c,l,d]=n;return[a,i,o,u,c,l,d]}s(lC,"hackyOffset");function dC(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=cC[o];o==="era"?n[u]=a:H(u)||(n[u]=parseInt(a,10))}return n}s(dC,"partsOffset");var Bl=new Map,Vt=class t extends hr{static{s(this,"IANAZone")}static create(e){let r=Bl.get(e);return r===void 0&&Bl.set(e,r=new t(e)),r}static resetCache(){Bl.clear(),zl.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ay(e,r,n,this.name)}formatOffset(e,r){return Ts(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=uC(this.name),[i,o,a,u,c,l,d]=n.formatToParts?dC(n,r):lC(n,r);u==="BC"&&(i=-Math.abs(i)+1);let g=ba({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),m=+r,y=m%1e3;return m-=y>=0?y:1e3+y,(g-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},rE={};function fC(t,e={}){let r=JSON.stringify([t,e]),n=rE[r];return n||(n=new Intl.ListFormat(t,e),rE[r]=n),n}s(fC,"getCachedLF");var Jl=new Map;function Xl(t,e={}){let r=JSON.stringify([t,e]),n=Jl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Jl.set(r,n)),n}s(Xl,"getCachedDTF");var Zl=new Map;function pC(t,e={}){let r=JSON.stringify([t,e]),n=Zl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Zl.set(r,n)),n}s(pC,"getCachedINF");var ed=new Map;function mC(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=ed.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),ed.set(i,o)),o}s(mC,"getCachedRTF");var gs=null;function hC(){return gs||(gs=new Intl.DateTimeFormat().resolvedOptions().locale,gs)}s(hC,"systemLocale");var td=new Map;function JE(t){let e=td.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),td.set(t,e)),e}s(JE,"getCachedIntResolvedOptions");var rd=new Map;function gC(t){let e=rd.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...XE,...e}),rd.set(t,e)}return e}s(gC,"getCachedWeekInfo");function EC(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=Xl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=Xl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(EC,"parseLocaleString");function yC(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(yC,"intlConfigString");function TC(t){let e=[];for(let r=1;r<=12;r++){let n=ue.utc(2009,r,1);e.push(t(n))}return e}s(TC,"mapMonths");function SC(t){let e=[];for(let r=1;r<=7;r++){let n=ue.utc(2016,11,13+r);e.push(t(n))}return e}s(SC,"mapWeekdays");function ma(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(ma,"listStuff");function AC(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||JE(t.locale).numberingSystem==="latn"}s(AC,"supportsFastNumbers");var nd=class{static{s(this,"PolyNumberFormatter")}constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:o,...a}=n;if(!r||Object.keys(a).length>0){let u={useGrouping:!1,...n};n.padTo>0&&(u.minimumIntegerDigits=n.padTo),this.inf=pC(e,u)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):md(e,3);return he(r,this.padTo)}}},id=class{static{s(this,"PolyDateFormatter")}constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),u=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&Vt.create(u).valid?(i=u,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=Xl(r,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},sd=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&sy()&&(this.rtf=mC(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):$C(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},XE={firstDay:1,minimalDays:4,weekend:[6,7]},re=class t{static{s(this,"Locale")}static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,o=!1){let a=e||se.defaultLocale,u=a||(o?"en-US":hC()),c=r||se.defaultNumberingSystem,l=n||se.defaultOutputCalendar,d=ad(i)||se.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){gs=null,Jl.clear(),Zl.clear(),ed.clear(),td.clear(),rd.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,o){let[a,u,c]=EC(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=yC(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=AC(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,ad(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return ma(this,e,ly,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;let i=r?{month:e,day:"numeric"}:{month:e},o=r?"format":"standalone";if(!this.monthsCache[o][e]){let a=n?u=>this.dtFormatter(u,i).format():u=>this.extract(u,i,"month");this.monthsCache[o][e]=TC(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return ma(this,e,py,()=>{let n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=r?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=SC(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return ma(this,void 0,()=>my,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[ue.utc(2016,11,13,9),ue.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return ma(this,e,hy,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[ue.utc(-40,1,1),ue.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),o=i.formatToParts(),a=o.find(u=>u.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new nd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new id(e,this.intl,r)}relFormatter(e={}){return new sd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return fC(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||JE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:oy()?gC(this.locale):XE}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Wl=null,Ke=class t extends hr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Wl===null&&(Wl=new t(0)),Wl}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(xa(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ts(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ts(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Ts(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Oa=class extends hr{static{s(this,"InvalidZone")}constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function fr(t,e){if(H(t)||t===null)return e;if(t instanceof hr)return t;if(CC(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Ss.instance:r==="utc"||r==="gmt"?Ke.utcInstance:Ke.parseSpecifier(r)||Vt.create(t)}else return mr(t)?Ke.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Oa(t)}s(fr,"normalizeZone");var ld={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},nE={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},_C=ld.hanidec.replace(/[\[|\]]/g,"").split("");function OC(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(ld.hanidec)!==-1)e+=_C.indexOf(t[r]);else for(let i in nE){let[o,a]=nE[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(OC,"parseDigits");var od=new Map;function IC(){od.clear()}s(IC,"resetDigitRegexCache");function ft({numberingSystem:t},e=""){let r=t||"latn",n=od.get(r);n===void 0&&(n=new Map,od.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${ld[r]}${e}`),n.set(e,i)),i}s(ft,"digitRegex");var iE=s(()=>Date.now(),"now"),sE="system",oE=null,aE=null,uE=null,cE=60,lE,dE=null,se=class{static{s(this,"Settings")}static get now(){return iE}static set now(e){iE=e}static set defaultZone(e){sE=e}static get defaultZone(){return fr(sE,Ss.instance)}static get defaultLocale(){return oE}static set defaultLocale(e){oE=e}static get defaultNumberingSystem(){return aE}static set defaultNumberingSystem(e){aE=e}static get defaultOutputCalendar(){return uE}static set defaultOutputCalendar(e){uE=e}static get defaultWeekSettings(){return dE}static set defaultWeekSettings(e){dE=ad(e)}static get twoDigitCutoffYear(){return cE}static set twoDigitCutoffYear(e){cE=e%100}static get throwOnInvalid(){return lE}static set throwOnInvalid(e){lE=e}static resetCaches(){re.resetCache(),Vt.resetCache(),ue.resetCache(),IC()}},Ve=class{static{s(this,"Invalid")}constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},ZE=[0,31,59,90,120,151,181,212,243,273,304,334],ey=[0,31,60,91,121,152,182,213,244,274,305,335];function et(t,e){return new Ve("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(et,"unitOutOfRange");function dd(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}s(dd,"dayOfWeek");function ty(t,e,r){return r+(_s(t)?ey:ZE)[e-1]}s(ty,"computeOrdinal");function ry(t,e){let r=_s(t)?ey:ZE,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(ry,"uncomputeOrdinal");function fd(t,e){return(t-e+7)%7+1}s(fd,"isoWeekdayToLocal");function Ia(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=ty(n,i,o),u=fd(dd(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=As(l,e,r)):c>As(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...va(t)}}s(Ia,"gregorianToWeek");function fE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=fd(dd(n,1,e),r),u=Vn(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Vn(l)):c>u?(l=n+1,c-=Vn(n)):l=n;let{month:d,day:f}=ry(l,c);return{year:l,month:d,day:f,...va(t)}}s(fE,"weekToGregorian");function Gl(t){let{year:e,month:r,day:n}=t,i=ty(e,r,n);return{year:e,ordinal:i,...va(t)}}s(Gl,"gregorianToOrdinal");function pE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=ry(e,r);return{year:e,month:n,day:i,...va(t)}}s(pE,"ordinalToGregorian");function mE(t,e){if(!H(t.localWeekday)||!H(t.localWeekNumber)||!H(t.localWeekYear)){if(!H(t.weekday)||!H(t.weekNumber)||!H(t.weekYear))throw new pr("Cannot mix locale-based week fields with ISO-based week fields");return H(t.localWeekday)||(t.weekday=t.localWeekday),H(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),H(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}s(mE,"usesLocalWeekValues");function wC(t,e=4,r=1){let n=Da(t.weekYear),i=tt(t.weekNumber,1,As(t.weekYear,e,r)),o=tt(t.weekday,1,7);return n?i?o?!1:et("weekday",t.weekday):et("week",t.weekNumber):et("weekYear",t.weekYear)}s(wC,"hasInvalidWeekData");function RC(t){let e=Da(t.year),r=tt(t.ordinal,1,Vn(t.year));return e?r?!1:et("ordinal",t.ordinal):et("year",t.year)}s(RC,"hasInvalidOrdinalData");function ny(t){let e=Da(t.year),r=tt(t.month,1,12),n=tt(t.day,1,wa(t.year,t.month));return e?r?n?!1:et("day",t.day):et("month",t.month):et("year",t.year)}s(ny,"hasInvalidGregorianData");function iy(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=tt(e,0,23)||e===24&&r===0&&n===0&&i===0,a=tt(r,0,59),u=tt(n,0,59),c=tt(i,0,999);return o?a?u?c?!1:et("millisecond",i):et("second",n):et("minute",r):et("hour",e)}s(iy,"hasInvalidTimeData");function H(t){return typeof t>"u"}s(H,"isUndefined");function mr(t){return typeof t=="number"}s(mr,"isNumber");function Da(t){return typeof t=="number"&&t%1===0}s(Da,"isInteger");function CC(t){return typeof t=="string"}s(CC,"isString");function DC(t){return Object.prototype.toString.call(t)==="[object Date]"}s(DC,"isDate");function sy(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(sy,"hasRelative");function oy(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(oy,"hasLocaleWeekInfo");function bC(t){return Array.isArray(t)?t:[t]}s(bC,"maybeArray");function hE(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let o=[e(i),i];return n&&r(n[0],o[0])===n[0]?n:o},null)[1]}s(hE,"bestBy");function xC(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(xC,"pick");function Kn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s(Kn,"hasOwnProperty");function ad(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!tt(t.firstDay,1,7)||!tt(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!tt(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(ad,"validateWeekSettings");function tt(t,e,r){return Da(t)&&t>=e&&t<=r}s(tt,"integerBetween");function vC(t,e){return t-e*Math.floor(t/e)}s(vC,"floorMod");function he(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(he,"padStart");function dr(t){if(!(H(t)||t===null||t===""))return parseInt(t,10)}s(dr,"parseInteger");function Zr(t){if(!(H(t)||t===null||t===""))return parseFloat(t)}s(Zr,"parseFloating");function pd(t){if(!(H(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(pd,"parseMillis");function md(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}s(md,"roundTo");function _s(t){return t%4===0&&(t%100!==0||t%400===0)}s(_s,"isLeapYear");function Vn(t){return _s(t)?366:365}s(Vn,"daysInYear");function wa(t,e){let r=vC(e-1,12)+1,n=t+(e-r)/12;return r===2?_s(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(wa,"daysInMonth");function ba(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}s(ba,"objToLocalTS");function gE(t,e,r){return-fd(dd(t,1,e),r)+e-1}s(gE,"firstWeekOffset");function As(t,e=4,r=1){let n=gE(t,e,r),i=gE(t+1,e,r);return(Vn(t)-n+i)/7}s(As,"weeksInWeekYear");function ud(t){return t>99?t:t>se.twoDigitCutoffYear?1900+t:2e3+t}s(ud,"untruncateYear");function ay(t,e,r,n=null){let i=new Date(t),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(o.timeZone=n);let a={timeZoneName:e,...o},u=new Intl.DateTimeFormat(r,a).formatToParts(i).find(c=>c.type.toLowerCase()==="timezonename");return u?u.value:null}s(ay,"parseZoneInfo");function xa(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}s(xa,"signedOffset");function uy(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(uy,"asNumber");function Ra(t,e){let r={};for(let n in t)if(Kn(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=uy(i)}return r}s(Ra,"normalizeObject");function Ts(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${he(r,2)}:${he(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${he(r,2)}${he(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(Ts,"formatOffset");function va(t){return xC(t,["hour","minute","second","millisecond"])}s(va,"timeObject");var NC=["January","February","March","April","May","June","July","August","September","October","November","December"],cy=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],PC=["J","F","M","A","M","J","J","A","S","O","N","D"];function ly(t){switch(t){case"narrow":return[...PC];case"short":return[...cy];case"long":return[...NC];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}s(ly,"months");var dy=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],fy=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],LC=["M","T","W","T","F","S","S"];function py(t){switch(t){case"narrow":return[...LC];case"short":return[...fy];case"long":return[...dy];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(py,"weekdays");var my=["AM","PM"],UC=["Before Christ","Anno Domini"],kC=["BC","AD"],MC=["B","A"];function hy(t){switch(t){case"narrow":return[...MC];case"short":return[...kC];case"long":return[...UC];default:return null}}s(hy,"eras");function FC(t){return my[t.hour<12?0:1]}s(FC,"meridiemForDateTime");function BC(t,e){return py(e)[t.weekday-1]}s(BC,"weekdayForDateTime");function WC(t,e){return ly(e)[t.month-1]}s(WC,"monthForDateTime");function GC(t,e){return hy(e)[t.year<0?0:1]}s(GC,"eraForDateTime");function $C(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&o){let f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${i[t][0]}`;case-1:return f?"yesterday":`last ${i[t][0]}`;case 0:return f?"today":`this ${i[t][0]}`}}let a=Object.is(e,-0)||e<0,u=Math.abs(e),c=u===1,l=i[t],d=n?c?l[1]:l[2]||l[1]:c?i[t][0]:t;return a?`${u} ${d} ago`:`in ${u} ${d}`}s($C,"formatRelativeTime");function EE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(EE,"stringifyTokens");var VC={D:_a,DD:NE,DDD:PE,DDDD:LE,t:UE,tt:kE,ttt:ME,tttt:FE,T:BE,TT:WE,TTT:GE,TTTT:$E,f:VE,ff:KE,fff:jE,ffff:YE,F:qE,FF:QE,FFF:HE,FFFF:zE},$e=class t{static{s(this,"Formatter")}static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,o=[];for(let a=0;a<e.length;a++){let u=e.charAt(a);u==="'"?((n.length>0||i)&&o.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||u===r?n+=u:(n.length>0&&o.push({literal:/^\s+$/.test(n),val:n}),n=u,r=u)}return n.length>0&&o.push({literal:i||/^\s+$/.test(n),val:n}),o}static macroTokenToFormatOpts(e){return VC[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return he(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=s((m,y)=>this.loc.extract(e,m,y),"string"),a=s(m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"","formatOffset"),u=s(()=>n?FC(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((m,y)=>n?WC(e,m):o(y?{month:m}:{month:m,day:"numeric"},"month"),"month"),l=s((m,y)=>n?BC(e,m):o(y?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(m=>{let y=t.macroTokenToFormatOpts(m);return y?this.formatWithSystemDefault(e,y):m},"maybeMacro"),f=s(m=>n?GC(e,m):o({era:m},"era"),"era"),g=s(m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return u();case"d":return i?o({day:"numeric"},"day"):this.num(e.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(e.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(e.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(m)}},"tokenToString");return EE(t.parseFormat(r),g)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>g=>{let m=i(g);if(m){let y=f.isNegativeDuration&&m!==f.largestUnit?n:1,h;return this.opts.signMode==="negativeLargestOnly"&&m!==f.largestUnit?h="never":this.opts.signMode==="all"?h="always":h="auto",this.num(d.get(m)*y,g.length,h)}else return g},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:g})=>f?d:d.concat(g),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return EE(a,o(c,l))}},gy=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Qn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Qn,"combineRegexes");function jn(...t){return e=>t.reduce(([r,n,i],o)=>{let[a,u,c]=o(e,i);return[{...r,...a},u||n,c]},[{},null,1]).slice(0,2)}s(jn,"combineExtractors");function Hn(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}s(Hn,"parse");function Ey(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=dr(e[r+i]);return[n,null,r+i]}}s(Ey,"simpleParse");var yy=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,qC=`(?:${yy.source}?(?:\\[(${gy.source})\\])?)?`,hd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ty=RegExp(`${hd.source}${qC}`),gd=RegExp(`(?:[Tt]${Ty.source})?`),KC=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,QC=/(\d{4})-?W(\d\d)(?:-?(\d))?/,jC=/(\d{4})-?(\d{3})/,HC=Ey("weekYear","weekNumber","weekDay"),YC=Ey("year","ordinal"),zC=/(\d{4})-(\d\d)-(\d\d)/,Sy=RegExp(`${hd.source} ?(?:${yy.source}|(${gy.source}))?`),JC=RegExp(`(?: ${Sy.source})?`);function qn(t,e,r){let n=t[e];return H(n)?r:dr(n)}s(qn,"int");function XC(t,e){return[{year:qn(t,e),month:qn(t,e+1,1),day:qn(t,e+2,1)},null,e+3]}s(XC,"extractISOYmd");function Yn(t,e){return[{hours:qn(t,e,0),minutes:qn(t,e+1,0),seconds:qn(t,e+2,0),milliseconds:pd(t[e+3])},null,e+4]}s(Yn,"extractISOTime");function Os(t,e){let r=!t[e]&&!t[e+1],n=xa(t[e+1],t[e+2]),i=r?null:Ke.instance(n);return[{},i,e+3]}s(Os,"extractISOOffset");function Is(t,e){let r=t[e]?Vt.create(t[e]):null;return[{},r,e+1]}s(Is,"extractIANAZone");var ZC=RegExp(`^T?${hd.source}$`),eD=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function tD(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",g=s((m,y=!1)=>m!==void 0&&(y||m&&d)?-m:m,"maybeNegate");return[{years:g(Zr(r)),months:g(Zr(n)),weeks:g(Zr(i)),days:g(Zr(o)),hours:g(Zr(a)),minutes:g(Zr(u)),seconds:g(Zr(c),c==="-0"),milliseconds:g(pd(l),f)}]}s(tD,"extractISODuration");var rD={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ed(t,e,r,n,i,o,a){let u={year:e.length===2?ud(dr(e)):dr(e),month:cy.indexOf(r)+1,day:dr(n),hour:dr(i),minute:dr(o)};return a&&(u.second=dr(a)),t&&(u.weekday=t.length>3?dy.indexOf(t)+1:fy.indexOf(t)+1),u}s(Ed,"fromStrings");var nD=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function iD(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,g=Ed(e,i,n,r,o,a,u),m;return c?m=rD[c]:l?m=0:m=xa(d,f),[g,new Ke(m)]}s(iD,"extractRFC2822");function sD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(sD,"preprocessRFC2822");var oD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,aD=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,uD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function yE(t){let[,e,r,n,i,o,a,u]=t;return[Ed(e,i,n,r,o,a,u),Ke.utcInstance]}s(yE,"extractRFC1123Or850");function cD(t){let[,e,r,n,i,o,a,u]=t;return[Ed(e,u,r,n,i,o,a),Ke.utcInstance]}s(cD,"extractASCII");var lD=Qn(KC,gd),dD=Qn(QC,gd),fD=Qn(jC,gd),pD=Qn(Ty),Ay=jn(XC,Yn,Os,Is),mD=jn(HC,Yn,Os,Is),hD=jn(YC,Yn,Os,Is),gD=jn(Yn,Os,Is);function ED(t){return Hn(t,[lD,Ay],[dD,mD],[fD,hD],[pD,gD])}s(ED,"parseISODate");function yD(t){return Hn(sD(t),[nD,iD])}s(yD,"parseRFC2822Date");function TD(t){return Hn(t,[oD,yE],[aD,yE],[uD,cD])}s(TD,"parseHTTPDate");function SD(t){return Hn(t,[eD,tD])}s(SD,"parseISODuration");var AD=jn(Yn);function _D(t){return Hn(t,[ZC,AD])}s(_D,"parseISOTimeOnly");var OD=Qn(zC,JC),ID=Qn(Sy),wD=jn(Yn,Os,Is);function RD(t){return Hn(t,[OD,Ay],[ID,wD])}s(RD,"parseSQL");var TE="Invalid Duration",_y={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},CD={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},..._y},Ze=146097/400,Wn=146097/4800,DD={years:{quarters:4,months:12,weeks:Ze/7,days:Ze,hours:Ze*24,minutes:Ze*24*60,seconds:Ze*24*60*60,milliseconds:Ze*24*60*60*1e3},quarters:{months:3,weeks:Ze/28,days:Ze/4,hours:Ze*24/4,minutes:Ze*24*60/4,seconds:Ze*24*60*60/4,milliseconds:Ze*24*60*60*1e3/4},months:{weeks:Wn/7,days:Wn,hours:Wn*24,minutes:Wn*24*60,seconds:Wn*24*60*60,milliseconds:Wn*24*60*60*1e3},..._y},tn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],bD=tn.slice(0).reverse();function Gt(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new ye(n)}s(Gt,"clone$1");function Oy(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of bD.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(Oy,"durationToMillis");function SE(t,e){let r=Oy(t,e)<0?-1:1;tn.reduceRight((n,i)=>{if(H(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),tn.reduce((n,i)=>{if(H(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(SE,"normalizeValues");function AE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(AE,"removeZeroes");var ye=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?DD:CD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||re.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new _e(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Ra(e,t.normalizeUnit),loc:re.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(mr(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new _e(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=SD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){let[n]=_D(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Duration is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(se.throwOnInvalid)throw new Yl(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Aa(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?$e.create(this.loc,n).formatDurationFromString(this,e):TE}toHuman(e={}){if(!this.isValid)return TE;let r=e.showZeros!==!1,n=tn.map(i=>{let o=this.values[i];return H(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=md(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},ue.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Oy(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of tn)(Kn(r.values,i)||Kn(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Gt(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=uy(e(this.values[n],n));return Gt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Ra(e,t.normalizeUnit)};return Gt(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Gt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return SE(this.matrix,e),Gt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=AE(this.normalize().shiftToAll().toObject());return Gt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of tn)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;mr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else mr(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return SE(this.matrix,r),Gt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Gt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=AE(this.values);return Gt(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}s(r,"eq");for(let n of tn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Gn="Invalid Interval";function xD(t,e){return!t||!t.isValid?nn.invalid("missing or invalid start"):!e||!e.isValid?nn.invalid("missing or invalid end"):e<t?nn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}s(xD,"validateStartEnd");var nn=class t{static{s(this,"Interval")}constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Interval is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(se.throwOnInvalid)throw new Hl(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=hs(e),i=hs(r),o=xD(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=ye.fromDurationLike(r),i=hs(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=ye.fromDurationLike(r),i=hs(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=ue.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=ue.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=ye.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=ye.fromISO(n,r);if(l.isValid)return t.before(u,l)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(hs).filter(a=>this.contains(a)).sort((a,u)=>a.toMillis()-u.toMillis()),n=[],{s:i}=this,o=0;for(;i<this.e;){let a=r[o]||this.e,u=+a>+this.e?this.e:a;n.push(t.fromDateTimes(i,u)),i=u,o+=1}return n}splitBy(e){let r=ye.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Gn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=_a,r={}){return this.isValid?$e.create(this.s.loc.clone(r),e).formatInterval(this):Gn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Gn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Gn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Gn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Gn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):ye.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},rn=class{static{s(this,"Info")}static hasDST(e=se.defaultZone){let r=ue.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Vt.isValidZone(e)}static normalizeZone(e){return fr(e,se.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||re.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||re.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||re.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||re.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return re.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return re.create(r,null,"gregory").eras(e)}static features(){return{relative:sy(),localeWeek:oy()}}};function _E(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(ye.fromMillis(n).as("days"))}s(_E,"dayDiff");function vD(t,e,r){let n=[["years",(c,l)=>l.year-c.year],["quarters",(c,l)=>l.quarter-c.quarter+(l.year-c.year)*4],["months",(c,l)=>l.month-c.month+(l.year-c.year)*12],["weeks",(c,l)=>{let d=_E(c,l);return(d-d%7)/7}],["days",_E]],i={},o=t,a,u;for(let[c,l]of n)r.indexOf(c)>=0&&(a=c,i[c]=l(t,e),u=o.plus(i),u>e?(i[c]--,t=o.plus(i),t>e&&(u=t,i[c]--,t=o.plus(i))):t=u);return[t,i,u,a]}s(vD,"highOrderDiffs");function ND(t,e,r,n){let[i,o,a,u]=vD(t,e,r),c=e-i,l=r.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);l.length===0&&(a<e&&(a=i.plus({[u]:1})),a!==i&&(o[u]=(o[u]||0)+c/(a-i)));let d=ye.fromObject(o,n);return l.length>0?ye.fromMillis(c,n).shiftTo(...l).plus(d):d}s(ND,"diff");var PD="missing Intl.DateTimeFormat.formatToParts support";function Z(t,e=r=>r){return{regex:t,deser:s(([r])=>e(OC(r)),"deser")}}s(Z,"intUnit");var LD="\xA0",Iy=`[ ${LD}]`,wy=new RegExp(Iy,"g");function UD(t){return t.replace(/\./g,"\\.?").replace(wy,Iy)}s(UD,"fixListRegex");function OE(t){return t.replace(/\./g,"").replace(wy," ").toLowerCase()}s(OE,"stripInsensitivities");function pt(t,e){return t===null?null:{regex:RegExp(t.map(UD).join("|")),deser:s(([r])=>t.findIndex(n=>OE(r)===OE(n))+e,"deser")}}s(pt,"oneOf");function IE(t,e){return{regex:t,deser:s(([,r,n])=>xa(r,n),"deser"),groups:e}}s(IE,"offset");function ha(t){return{regex:t,deser:s(([e])=>e,"deser")}}s(ha,"simple");function kD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(kD,"escapeToken");function MD(t,e){let r=ft(e),n=ft(e,"{2}"),i=ft(e,"{3}"),o=ft(e,"{4}"),a=ft(e,"{6}"),u=ft(e,"{1,2}"),c=ft(e,"{1,3}"),l=ft(e,"{1,6}"),d=ft(e,"{1,9}"),f=ft(e,"{2,4}"),g=ft(e,"{4,6}"),m=s(p=>({regex:RegExp(kD(p.val)),deser:s(([T])=>T,"deser"),literal:!0}),"literal"),h=s(p=>{if(t.literal)return m(p);switch(p.val){case"G":return pt(e.eras("short"),0);case"GG":return pt(e.eras("long"),0);case"y":return Z(l);case"yy":return Z(f,ud);case"yyyy":return Z(o);case"yyyyy":return Z(g);case"yyyyyy":return Z(a);case"M":return Z(u);case"MM":return Z(n);case"MMM":return pt(e.months("short",!0),1);case"MMMM":return pt(e.months("long",!0),1);case"L":return Z(u);case"LL":return Z(n);case"LLL":return pt(e.months("short",!1),1);case"LLLL":return pt(e.months("long",!1),1);case"d":return Z(u);case"dd":return Z(n);case"o":return Z(c);case"ooo":return Z(i);case"HH":return Z(n);case"H":return Z(u);case"hh":return Z(n);case"h":return Z(u);case"mm":return Z(n);case"m":return Z(u);case"q":return Z(u);case"qq":return Z(n);case"s":return Z(u);case"ss":return Z(n);case"S":return Z(c);case"SSS":return Z(i);case"u":return ha(d);case"uu":return ha(u);case"uuu":return Z(r);case"a":return pt(e.meridiems(),0);case"kkkk":return Z(o);case"kk":return Z(f,ud);case"W":return Z(u);case"WW":return Z(n);case"E":case"c":return Z(r);case"EEE":return pt(e.weekdays("short",!1),1);case"EEEE":return pt(e.weekdays("long",!1),1);case"ccc":return pt(e.weekdays("short",!0),1);case"cccc":return pt(e.weekdays("long",!0),1);case"Z":case"ZZ":return IE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return IE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return ha(/[a-z_+-/]{1,256}?/i);case" ":return ha(/[^\S\n\r]/);default:return m(p)}},"unitate")(t)||{invalidReason:PD};return h.token=t,h}s(MD,"unitForToken");var FD={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function BD(t,e,r){let{type:n,value:i}=t;if(n==="literal"){let c=/^\s+$/.test(i);return{literal:!c,val:c?" ":i}}let o=e[n],a=n;n==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=r.hour12?"hour12":"hour24");let u=FD[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(BD,"tokenForPart");function WD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(WD,"buildRegex");function GD(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if(Kn(r,a)){let u=r[a],c=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(n.slice(o,o+c))),o+=c}return[n,i]}else return[n,{}]}s(GD,"match");function $D(t){let e=s(o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},"toField"),r=null,n;return H(t.z)||(r=Vt.create(t.z)),H(t.Z)||(r||(r=new Ke(t.Z)),n=t.Z),H(t.q)||(t.M=(t.q-1)*3+1),H(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),H(t.u)||(t.S=pd(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s($D,"dateTimeFromMatches");var $l=null;function VD(){return $l||($l=ue.fromMillis(1555555555555)),$l}s(VD,"getDummyDateTime");function qD(t,e){if(t.literal)return t;let r=$e.macroTokenToFormatOpts(t.val),n=Dy(r,e);return n==null||n.includes(void 0)?t:n}s(qD,"maybeExpandMacroToken");function Ry(t,e){return Array.prototype.concat(...t.map(r=>qD(r,e)))}s(Ry,"expandMacroTokens");var Ca=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=Ry($e.parseFormat(r),e),this.units=this.tokens.map(n=>MD(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=WD(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=GD(e,this.regex,this.handlers),[i,o,a]=n?$D(n):[null,null,void 0];if(Kn(n,"a")&&Kn(n,"H"))throw new pr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function Cy(t,e,r){return new Ca(t,r).explainFromTokens(e)}s(Cy,"explainFromTokens");function KD(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=Cy(t,e,r);return[n,i,o,a]}s(KD,"parseFromTokens");function Dy(t,e){if(!t)return null;let n=$e.create(e,t).dtFormatter(VD()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>BD(a,t,o))}s(Dy,"formatOptsToTokens");var Vl="Invalid DateTime",wE=864e13;function Es(t){return new Ve("unsupported zone",`the zone "${t.name}" is not supported`)}s(Es,"unsupportedZone");function ql(t){return t.weekData===null&&(t.weekData=Ia(t.c)),t.weekData}s(ql,"possiblyCachedWeekData");function Kl(t){return t.localWeekData===null&&(t.localWeekData=Ia(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s(Kl,"possiblyCachedLocalWeekData");function en(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new ue({...r,...e,old:r})}s(en,"clone");function by(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let o=r.offset(n);return i===o?[n,i]:[t-Math.min(i,o)*60*1e3,Math.max(i,o)]}s(by,"fixOffset");function ga(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}s(ga,"tsToObj");function ya(t,e,r){return by(ba(t),e,r)}s(ya,"objToTS");function RE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,wa(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=ye.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),u=ba(o),[c,l]=by(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(RE,"adjustTime");function $n(t,e,r,n,i,o){let{setZone:a,zone:u}=r;if(t&&Object.keys(t).length!==0||e){let c=e||u,l=ue.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return ue.invalid(new Ve("unparsable",`the input "${i}" can't be parsed as ${n}`))}s($n,"parseDataToDateTime");function Ea(t,e,r=!0){return t.isValid?$e.create(re.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}s(Ea,"toTechFormat");function Ql(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=he(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=he(t.c.month),r==="month")return i;i+="-"}else if(i+=he(t.c.month),r==="month")return i;return i+=he(t.c.day),i}s(Ql,"toISODate");function CE(t,e,r,n,i,o,a){let u=!r||t.c.millisecond!==0||t.c.second!==0,c="";switch(a){case"day":case"month":case"year":break;default:if(c+=he(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=he(t.c.minute),a==="minute")break;u&&(c+=":",c+=he(t.c.second))}else{if(c+=he(t.c.minute),a==="minute")break;u&&(c+=he(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=he(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=he(Math.trunc(-t.o/60)),c+=":",c+=he(Math.trunc(-t.o%60))):(c+="+",c+=he(Math.trunc(t.o/60)),c+=":",c+=he(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(CE,"toISOTime");var xy={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},QD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Ta=["year","month","day","hour","minute","second","millisecond"],HD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],YD=["year","ordinal","hour","minute","second","millisecond"];function Sa(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Aa(t);return e}s(Sa,"normalizeUnit");function DE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Sa(t)}}s(DE,"normalizeUnitWithLocalWeeks");function zD(t){if(ys===void 0&&(ys=se.now()),t.type!=="iana")return t.offset(ys);let e=t.name,r=cd.get(e);return r===void 0&&(r=t.offset(ys),cd.set(e,r)),r}s(zD,"guessOffsetForZone");function bE(t,e){let r=fr(e.zone,se.defaultZone);if(!r.isValid)return ue.invalid(Es(r));let n=re.fromObject(e),i,o;if(H(t.year))i=se.now();else{for(let c of Ta)H(t[c])&&(t[c]=xy[c]);let a=ny(t)||iy(t);if(a)return ue.invalid(a);let u=zD(r);[i,o]=ya(t,u,r)}return new ue({ts:i,zone:r,loc:n,o})}s(bE,"quickDT");function xE(t,e,r){let n=H(r.round)?!0:r.round,i=H(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=md(u,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(u,c)),"format"),a=s(u=>r.calendary?e.hasSame(t,u)?0:e.startOf(u).diff(t.startOf(u),u).get(u):e.diff(t,u).get(u),"differ");if(r.unit)return o(a(r.unit),r.unit);for(let u of r.units){let c=a(u);if(Math.abs(c)>=1)return o(c,u)}return o(t>e?-0:0,r.units[r.units.length-1])}s(xE,"diffRelative");function vE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}s(vE,"lastOpts");var ys,cd=new Map,ue=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||se.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ve("invalid input"):null)||(r.isValid?null:Es(r));this.ts=H(e.ts)?se.now():e.ts;let i=null,o=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,o]=[e.old.c,e.old.o];else{let u=mr(e.o)&&!e.old?e.o:r.offset(this.ts);i=ga(this.ts,u),n=Number.isNaN(i.year)?new Ve("invalid input"):null,i=n?null:i,o=n?null:u}this._zone=r,this.loc=e.loc||re.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=vE(arguments),[n,i,o,a,u,c,l]=r;return bE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=vE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,bE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=DC(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=fr(r.zone,se.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:re.fromObject(r)}):t.invalid(Es(i))}static fromMillis(e,r={}){if(mr(e))return e<-wE||e>wE?t.invalid("Timestamp out of range"):new t({ts:e,zone:fr(r.zone,se.defaultZone),loc:re.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(mr(e))return new t({ts:e*1e3,zone:fr(r.zone,se.defaultZone),loc:re.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=fr(r.zone,se.defaultZone);if(!n.isValid)return t.invalid(Es(n));let i=re.fromObject(r),o=Ra(e,DE),{minDaysInFirstWeek:a,startOfWeek:u}=mE(o,i),c=se.now(),l=H(r.specificOffset)?n.offset(c):r.specificOffset,d=!H(o.ordinal),f=!H(o.year),g=!H(o.month)||!H(o.day),m=f||g,y=o.weekYear||o.weekNumber;if((m||d)&&y)throw new pr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(g&&d)throw new pr("Can't mix ordinal dates with month/day");let h=y||o.weekday&&!m,p,T,A=ga(c,l);h?(p=HD,T=QD,A=Ia(A,a,u)):d?(p=YD,T=jD,A=Gl(A)):(p=Ta,T=xy);let _=!1;for(let G of p){let ee=o[G];H(ee)?_?o[G]=T[G]:o[G]=A[G]:_=!0}let I=h?wC(o,a,u):d?RC(o):ny(o),O=I||iy(o);if(O)return t.invalid(O);let C=h?fE(o,a,u):d?pE(o):o,[R,w]=ya(C,l,n),b=new t({ts:R,zone:n,o:w,loc:i});return o.weekday&&m&&e.weekday!==b.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${b.toISO()}`):b.isValid?b:t.invalid(b.invalid)}static fromISO(e,r={}){let[n,i]=ED(e);return $n(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=yD(e);return $n(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=TD(e);return $n(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(H(e)||H(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=KD(a,e,r);return d?t.invalid(d):$n(u,c,n,`format ${r}`,e,l)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=RD(e);return $n(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the DateTime is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(se.throwOnInvalid)throw new jl(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=Dy(e,re.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return Ry($e.parseFormat(e),re.fromObject(r)).map(i=>i.val).join("")}static resetCache(){ys=void 0,cd.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?ql(this).weekYear:NaN}get weekNumber(){return this.isValid?ql(this).weekNumber:NaN}get weekday(){return this.isValid?ql(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Kl(this).weekday:NaN}get localWeekNumber(){return this.isValid?Kl(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Kl(this).weekYear:NaN}get ordinal(){return this.isValid?Gl(this.c).ordinal:NaN}get monthShort(){return this.isValid?rn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?rn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?rn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?rn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=ba(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ga(c,a),f=ga(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[en(this,{ts:c}),en(this,{ts:l})]:[this]}get isInLeapYear(){return _s(this.year)}get daysInMonth(){return wa(this.year,this.month)}get daysInYear(){return this.isValid?Vn(this.year):NaN}get weeksInWeekYear(){return this.isValid?As(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?As(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=$e.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ke.instance(e),r)}toLocal(){return this.setZone(se.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=fr(e,se.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=ya(a,o,e)}return en(this,{ts:i,zone:e})}else return t.invalid(Es(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return en(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Ra(e,DE),{minDaysInFirstWeek:n,startOfWeek:i}=mE(r,this.loc),o=!H(r.weekYear)||!H(r.weekNumber)||!H(r.weekday),a=!H(r.ordinal),u=!H(r.year),c=!H(r.month)||!H(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new pr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new pr("Can't mix ordinal dates with month/day");let f;o?f=fE({...Ia(this.c,n,i),...r},n,i):H(r.ordinal)?(f={...this.toObject(),...r},H(r.day)&&(f.day=Math.min(wa(f.year,f.month),f.day))):f=pE({...Gl(this.c),...r});let[g,m]=ya(f,this.o,this.zone);return en(this,{ts:g,o:m})}plus(e){if(!this.isValid)return this;let r=ye.fromDurationLike(e);return en(this,RE(this,r))}minus(e){if(!this.isValid)return this;let r=ye.fromDurationLike(e).negate();return en(this,RE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=ye.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?$e.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Vl}toLocaleString(e=_a,r={}){return this.isValid?$e.create(this.loc.clone(r),e).formatDateTime(this):Vl}toLocaleParts(e={}){return this.isValid?$e.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:o=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=Sa(a);let u=e==="extended",c=Ql(this,u,a);return Ta.indexOf(a)>=3&&(c+="T"),c+=CE(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?Ql(this,e==="extended",Sa(r)):null}toISOWeekDate(){return Ea(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:u="milliseconds"}={}){return this.isValid?(u=Sa(u),(i&&Ta.indexOf(u)>=3?"T":"")+CE(this,a==="extended",r,e,n,o,u)):null}toRFC2822(){return Ea(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ea(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Ql(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ea(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Vl}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return ye.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=bC(r).map(ye.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=ND(u,c,o,i);return a?l.negate():l}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?nn.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(r,n)<=i&&i<=o.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],o=e.unit;return Array.isArray(e.unit)&&(i=e.unit,o=void 0),xE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?xE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new _e("min requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Cy(a,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,o=re.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Ca(o,e)}static fromFormatParser(e,r,n={}){if(H(e)||H(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(r.locale))throw new _e(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${r.locale}`);let{result:u,zone:c,specificOffset:l,invalidReason:d}=r.explainFromTokens(e);return d?t.invalid(d):$n(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return _a}static get DATE_MED(){return NE}static get DATE_MED_WITH_WEEKDAY(){return oC}static get DATE_FULL(){return PE}static get DATE_HUGE(){return LE}static get TIME_SIMPLE(){return UE}static get TIME_WITH_SECONDS(){return kE}static get TIME_WITH_SHORT_OFFSET(){return ME}static get TIME_WITH_LONG_OFFSET(){return FE}static get TIME_24_SIMPLE(){return BE}static get TIME_24_WITH_SECONDS(){return WE}static get TIME_24_WITH_SHORT_OFFSET(){return GE}static get TIME_24_WITH_LONG_OFFSET(){return $E}static get DATETIME_SHORT(){return VE}static get DATETIME_SHORT_WITH_SECONDS(){return qE}static get DATETIME_MED(){return KE}static get DATETIME_MED_WITH_SECONDS(){return QE}static get DATETIME_MED_WITH_WEEKDAY(){return aC}static get DATETIME_FULL(){return jE}static get DATETIME_FULL_WITH_SECONDS(){return HE}static get DATETIME_HUGE(){return YE}static get DATETIME_HUGE_WITH_SECONDS(){return zE}};function hs(t){if(ue.isDateTime(t))return t;if(t&&t.valueOf&&mr(t.valueOf()))return ue.fromJSDate(t);if(t&&typeof t=="object")return ue.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(hs,"friendlyDateTime");var JD="3.7.2";Qe.DateTime=ue;Qe.Duration=ye;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Vt;Qe.Info=rn;Qe.Interval=nn;Qe.InvalidZone=Oa;Qe.Settings=se;Qe.SystemZone=Ss;Qe.VERSION=JD;Qe.Zone=hr});var Py=Q((YW,Ny)=>{"use strict";var sn=vy();Y.prototype.addYear=function(){this._date=this._date.plus({years:1})};Y.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};Y.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};Y.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};Y.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};Y.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};Y.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};Y.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};Y.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};Y.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};Y.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};Y.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};Y.prototype.getDate=function(){return this._date.day};Y.prototype.getFullYear=function(){return this._date.year};Y.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};Y.prototype.getMonth=function(){return this._date.month-1};Y.prototype.getHours=function(){return this._date.hour};Y.prototype.getMinutes=function(){return this._date.minute};Y.prototype.getSeconds=function(){return this._date.second};Y.prototype.getMilliseconds=function(){return this._date.millisecond};Y.prototype.getTime=function(){return this._date.valueOf()};Y.prototype.getUTCDate=function(){return this._getUTC().day};Y.prototype.getUTCFullYear=function(){return this._getUTC().year};Y.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};Y.prototype.getUTCMonth=function(){return this._getUTC().month-1};Y.prototype.getUTCHours=function(){return this._getUTC().hour};Y.prototype.getUTCMinutes=function(){return this._getUTC().minute};Y.prototype.getUTCSeconds=function(){return this._getUTC().second};Y.prototype.toISOString=function(){return this._date.toUTC().toISO()};Y.prototype.toJSON=function(){return this._date.toJSON()};Y.prototype.setDate=function(t){this._date=this._date.set({day:t})};Y.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};Y.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};Y.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};Y.prototype.setHours=function(t){this._date=this._date.set({hour:t})};Y.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};Y.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};Y.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};Y.prototype._getUTC=function(){return this._date.toUTC()};Y.prototype.toString=function(){return this.toDate().toString()};Y.prototype.toDate=function(){return this._date.toJSDate()};Y.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};Y.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function Y(t,e){var r={zone:e};if(t?t instanceof Y?this._date=t._date:t instanceof Date?this._date=sn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=sn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=sn.DateTime.fromISO(t,r),this._date.isValid||(this._date=sn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=sn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=sn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=sn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}s(Y,"CronDate");Ny.exports=Y});var ky=Q((JW,Uy)=>{"use strict";function on(t){return{start:t,count:1}}s(on,"buildRange");function Ly(t,e){t.end=e,t.step=e-t.start,t.count=2}s(Ly,"completeRangeWithItem");function yd(t,e,r){e&&(e.count===2?(t.push(on(e.start)),t.push(on(e.end))):t.push(e)),r&&t.push(r)}s(yd,"finalizeCurrentRange");function XD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(yd(e,r,on(i)),r=void 0):r?r.count===1?Ly(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(on(r.start)),r=on(r.end),Ly(r,i)):(yd(e,r),r=on(i)):r=on(i)}return yd(e,r),e}s(XD,"compactField");Uy.exports=XD});var Fy=Q((ZW,My)=>{"use strict";var ZD=ky();function eb(t,e,r){var n=ZD(t);if(n.length===1){var i=n[0],o=i.step;if(o===1&&i.start===e&&i.end===r)return"*";if(o!==1&&i.start===e&&i.end===r-o+1)return"*/"+o}for(var a=[],u=0,c=n.length;u<c;++u){var l=n[u];if(l.count===1){a.push(l.start);continue}var o=l.step;if(l.step===1){a.push(l.start+"-"+l.end);continue}var d=l.start==0?l.count-1:l.count;l.step*d>l.end?a=a.concat(Array.from({length:l.end-l.start+1}).map(function(g,m){var y=l.start+m;return(y-l.start)%l.step===0?y:null}).filter(function(g){return g!=null})):l.end===r-l.step+1?a.push(l.start+"/"+l.step):a.push(l.start+"-"+l.end+"/"+l.step)}return a.join(",")}s(eb,"stringifyField");My.exports=eb});var Gy=Q((tG,Wy)=>{"use strict";var an=Py(),tb=Fy(),By=1e4;function k(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new an(e.currentDate,this._tz),this._startDate=e.startDate?new an(e.startDate,this._tz):null,this._endDate=e.endDate?new an(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=k._freezeFields(t)}s(k,"CronExpression");k.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];k.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};k.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];k.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];k.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};k.parseDefaults=["0","*","*","*","*","*"];k.standardValidCharacters=/^[,*\d/-]+$/;k.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;k.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;k.validCharacters={second:k.standardValidCharacters,minute:k.standardValidCharacters,hour:k.standardValidCharacters,dayOfMonth:k.dayOfMonthValidCharacters,month:k.standardValidCharacters,dayOfWeek:k.dayOfWeekValidCharacters};k._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");k._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=k.aliases[e];r=r.replace(/[a-z]{3}/gi,function(c){if(c=c.toLowerCase(),typeof i[c]<"u")return i[c];throw new Error('Validation error, cannot resolve alias "'+c+'"')});break}if(!k.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function o(c){var l=[];function d(y){if(y instanceof Array)for(var h=0,p=y.length;h<p;h++){var T=y[h];if(k._isValidConstraintChar(n,T)){l.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);l.push(T)}else{if(k._isValidConstraintChar(n,y)){l.push(y);return}var A=+y;if(Number.isNaN(A)||A<n.min||A>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(A=A%7),l.push(A)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(y){return y.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var g=0,m=f.length;g<m;g++)d(a(f[g]));else d(a(c));return l.sort(k._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var g=+f[0],m=+f[1];if(Number.isNaN(g)||Number.isNaN(m)||g<n.min||m>n.max)throw new Error("Constraint error, got range "+g+"-"+m+" expected range "+n.min+"-"+n.max);if(g>m)throw new Error("Invalid range: "+c);var y=+l;if(Number.isNaN(y)||y<=0)throw new Error("Constraint error, cannot repeat at every "+y+" time.");e==="dayOfWeek"&&m%7===0&&d.push(0);for(var h=g,p=m;h<=p;h++){var T=d.indexOf(h)!==-1;!T&&y>0&&y%l===0?(y=1,d.push(h)):y++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");k._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};k._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=k.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(k._sortCompareFn)}};k._freezeFields=function(t){for(var e=0,r=k.map.length;e<r;++e){var n=k.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};k.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};k.prototype._findSchedule=s(function(e){function r(T,A){for(var _=0,I=A.length;_<I;_++)if(A[_]>=T)return A[_]===T;return A[0]===T}s(r,"matchSchedule");function n(T,A){if(A<6){if(T.getDate()<8&&A===1)return!0;var _=T.getDate()%7?1:0,I=T.getDate()-T.getDate()%7,O=Math.floor(I/7)+_;return O===A}return!1}s(n,"isNthDayMatch");function i(T){return T.length>0&&T.some(function(A){return typeof A=="string"&&A.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new an(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(T){return T.some(function(A){if(!i([A]))return!1;var _=Number.parseInt(A[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+A);return a.getDay()===_&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<By;){if(d++,e){if(u&&a.getTime()-u.getTime()<0)throw new Error("Out of the timespan range")}else if(c&&c.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var g=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(g=g||a.isLastDayOfMonth());var m=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||f(this.fields.dayOfWeek));var y=this.fields.dayOfMonth.length>=k.daysInMonth[a.getMonth()],h=this.fields.dayOfWeek.length===k.constraints[5].max-k.constraints[5].min+1,p=a.getHours();if(!g&&(!m||h)){this._applyTimezoneShift(a,o,"Day");continue}if(!y&&h&&!g){this._applyTimezoneShift(a,o,"Day");continue}if(y&&!h&&!m){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(p,this.fields.hour)){if(this._dstEnd===p&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==p){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(p-1,this.fields.hour)){a[o+"Hour"]();continue}if(!r(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,o,"Minute");continue}if(!r(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,o,"Second");continue}if(l===a.getTime()){o==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,o,"Second"):a.setMilliseconds(0);continue}break}if(d>=By)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new an(a,this._tz),this._hasIterated=!0,a},"_findSchedule");k.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");k.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");k.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};k.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};k.prototype.iterate=s(function(e,r){var n=[];if(e>=0)for(var i=0,o=e;i<o;i++)try{var a=this.next();n.push(a),r&&r(a,i)}catch{break}else for(var i=0,o=e;i>o;i--)try{var a=this.prev();n.push(a),r&&r(a,i)}catch{break}return n},"iterate");k.prototype.reset=s(function(e){this._currentDate=new an(e||this._options.currentDate)},"reset");k.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=k.map.length;n<i;++n){var o=k.map[n],a=this.fields[o],u=k.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:k.daysInMonth[this.fields.month[0]-1]}:o==="dayOfWeek"&&(u={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),r.push(tb(a,u.min,u.max))}return r.join(" ")},"stringify");k.parse=s(function(e,r){var n=this;typeof r=="function"&&(r={});function i(o,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new an(void 0,n._tz)),k.predefined[o]&&(o=k.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=k.map.length-c.length,d=0,f=k.map.length;d<f;++d){var g=k.map[d],m=c[c.length>f?d:d-l];if(d<l||!m)u.push(k._parseField(g,k.parseDefaults[d],k.constraints[d]));else{var y=g==="dayOfWeek"?A(m):m;u.push(k._parseField(g,y,k.constraints[d]))}}for(var h={},d=0,f=k.map.length;d<f;d++){var p=k.map[d];h[p]=u[d]}var T=k._handleMaxDaysInMonth(h);return h.dayOfMonth=T||h.dayOfMonth,new k(h,a);function A(_){var I=_.split("#");if(I.length>1){var O=+I[I.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(I.length>2||Number.isNaN(O)||O<1||O>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=O,I[0]}return _}s(A,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");k.fieldsToExpression=s(function(e,r){function n(g,m,y){if(!m)throw new Error("Validation error, Field "+g+" is missing");if(m.length===0)throw new Error("Validation error, Field "+g+" contains no values");for(var h=0,p=m.length;h<p;h++){var T=m[h];if(!k._isValidConstraintChar(y,T)&&(typeof T!="number"||Number.isNaN(T)||T<y.min||T>y.max))throw new Error("Constraint error, got value "+T+" expected range "+y.min+"-"+y.max)}}s(n,"validateConstraints");for(var i={},o=0,a=k.map.length;o<a;++o){var u=k.map[o],c=e[u];n(u,c,k.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(k._sortCompareFn).filter(function(g,m,y){return!m||g!==y[m-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=k._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new k(i,r||{})},"fieldsToExpression");Wy.exports=k});var Vy=Q((nG,$y)=>{"use strict";var Na=Gy();function gr(){}s(gr,"CronParser");gr._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:Na.parse(e)};if(r.length>6)return{interval:Na.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");gr.parseExpression=s(function(e,r){return Na.parse(e,r)},"parseExpression");gr.fieldsToExpression=s(function(e,r){return Na.fieldsToExpression(e,r)},"fieldsToExpression");gr.parseString=s(function(e){for(var r=e.split(`
|
|
5
|
-
`),n={variables:{},expressions:[],errors:{}},i=0,o=r.length;i<o;i++){var a=r[i],u=null,c=a.trim();if(c.length>0){if(c.match(/^#/))continue;if(u=c.match(/^(.*)=(.*)$/))n.variables[u[1]]=u[2];else{var l=null;try{l=gr._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");gr.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,gr.parseString(i.toString()))})},"parseFile");$y.exports=gr});var mF={};P(mF,{APIWarning:()=>Cn,ActiveContentFileError:()=>Ku,AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,BadRequestError:()=>Eo,BudibaseError:()=>go,Config:()=>rf,Cookie:()=>yr,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DEFAULT_TENANT_ID:()=>ce,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,Duration:()=>me,EmailUnavailableError:()=>er,Endpoint:()=>Gc,EndpointGroup:()=>Dn,EndpointGroupList:()=>Go,FeatureDisabledError:()=>Hu,FeatureDisabledWarning:()=>bc,ForbiddenError:()=>Qu,GlobalRole:()=>tf,HTTPError:()=>Be,Header:()=>Pe,InternalTable:()=>It,InvalidAPIKeyWarning:()=>bi,MAX_VALID_DATE:()=>qa,MIN_VALID_DATE:()=>cT,NotFoundError:()=>qu,NotImplementedError:()=>ju,RedisClient:()=>Re,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,UnexpectedError:()=>Vu,UsageLimitError:()=>Yu,UsageLimitWarning:()=>Dc,UserStatus:()=>Va,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt,accounts:()=>On,auth:()=>zm,blacklist:()=>pp,cache:()=>Di,configs:()=>tr,constants:()=>nf,context:()=>le,csv:()=>dh,db:()=>Ir,docIds:()=>Hf,docUpdates:()=>th,encryption:()=>Gm,env:()=>E,errors:()=>Ju,events:()=>wn,features:()=>km,getErrorMessage:()=>$A,getPublicError:()=>zu,init:()=>pF,installation:()=>rc,locks:()=>xr,logging:()=>uo,middleware:()=>Ym,objectStore:()=>bp,permissions:()=>Pm,platform:()=>ho,plugins:()=>Xm,queue:()=>Up,redis:()=>Zm,roles:()=>Nm,security:()=>Hp,sessions:()=>Xu,setEnv:()=>Ps,sql:()=>lh,tenancy:()=>fF,timers:()=>Du,userUtils:()=>cm,users:()=>Ii,utils:()=>di,warnings:()=>$m,withEnv:()=>mT});module.exports=$O(mF);var tr={};P(tr,{analyticsEnabled:()=>Zu,generateConfigID:()=>Lo,getConfig:()=>Ge,getDefaultGoogleConfig:()=>Tm,getGoogleConfig:()=>mc,getGoogleDatasourceConfig:()=>Am,getOIDCConfig:()=>Ek,getOIDCConfigById:()=>_m,getOIDCLogosDoc:()=>hk,getPlatformUrl:()=>Uo,getRecaptchaConfig:()=>Sk,getSCIMConfig:()=>Tk,getSMTPConfig:()=>yk,getSMTPConfigDoc:()=>k_,getSettingsConfig:()=>Sm,getSettingsConfigDoc:()=>wi,getTranslationsConfig:()=>pk,getTranslationsConfigDoc:()=>U_,save:()=>fk});var VO=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],qO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],mh=[...VO,...qO],hh={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":'AI configuration "{{ name }}" created',"ai:config:updated":'AI configuration "{{ name }}" updated',"ai:config:deleted":'AI configuration "{{ name }}" deleted',"ai:agent:created":'AI agent "{{ name }}" created',"ai:agent:updated":'AI agent "{{ name }}" updated',"ai:agent:deleted":'AI agent "{{ name }}" deleted',"rag:file:uploaded":void 0,"rag:file:deleted":void 0,"rag:file:sharepoint:connected":void 0,"rag:file:sharepoint:disconnected":void 0,"rag:file:sharepoint:sync":void 0,"rag:file:processed":void 0,"auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:automation_step:failed":void 0,"action:crud:executed":void 0,"action:crud:failed":void 0,"action:ai_agent:executed":void 0,"action:ai_agent:failed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0,"resource:copied_to_workspace":"{{ resource.type }} copied to workspace"};var $c=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))($c||{}),Vc=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.SENSITIVE_LONGFORM="sensitiveLongForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))(Vc||{}),Vo=(T=>(T.AIRTABLE="AIRTABLE",T.ARANGODB="ARANGODB",T.BUDIBASE="BUDIBASE",T.COUCHDB="COUCHDB",T.DYNAMODB="DYNAMODB",T.ELASTICSEARCH="ELASTICSEARCH",T.FIRESTORE="FIRESTORE",T.GOOGLE_SHEETS="GOOGLE_SHEETS",T.MONGODB="MONGODB",T.MYSQL="MYSQL",T.ORACLE="ORACLE",T.POSTGRES="POSTGRES",T.REDIS="REDIS",T.REST="REST",T.S3="S3",T.SNOWFLAKE="SNOWFLAKE",T.SQL_SERVER="SQL_SERVER",T))(Vo||{});var qc=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(qc||{});var KO=W(require("lodash/isPlainObject"));var Vr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Vr||{}),cr=(o=>(o.CONTAINS="contains",o.NOT_CONTAINS="notContains",o.CONTAINS_ANY="containsAny",o.ONE_OF="oneOf",o.NOT_ONE_OF="notOneOf",o))(cr||{}),xn=(e=>(e.RANGE="range",e))(xn||{}),Li=(r=>(r.AND="$and",r.OR="$or",r))(Li||{});function qo(t){return Object.values(Li).includes(t)}s(qo,"isLogicalSearchOperator");function gh(t){return Object.values(Vr).includes(t)}s(gh,"isBasicSearchOperator");function Eh(t){return Object.values(cr).includes(t)}s(Eh,"isArraySearchOperator");function Ko(t){return Object.values(xn).includes(t)}s(Ko,"isRangeSearchOperator");var yh=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Ui=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Ui||{});var ki=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ki||{});var Qo=(f=>(f.WORKSPACE="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(Qo||{});var jo=s(t=>t.hosting==="cloud","isCloudAccount");var Ho=s(t=>t.authType==="sso","isSSOAccount");var D="_",Ne="\uFFF0",Ot=s(t=>`${t}_`,"prefixed"),ae=($=>($.USER="us",$.GROUP="gr",$.CONFIG="config",$.TEMPLATE="template",$.WORKSPACE="app",$.DEV="dev",$.WORKSPACE_DEV="app_dev",$.WORKSPACE_METADATA="app_metadata",$.ROLE="role",$.DEV_INFO="devinfo",$.AUTOMATION_LOG="log_au",$.ACCOUNT_METADATA="acc_metadata",$.PLUGIN="plg",$.DATASOURCE="datasource",$.DATASOURCE_PLUS="datasource_plus",$.WORKSPACE_BACKUP="backup",$.TABLE="ta",$.ROW="ro",$.AUTOMATION="au",$.LINK="li",$.WEBHOOK="wh",$.INSTANCE="inst",$.LAYOUT="layout",$.SCREEN="screen",$.QUERY="query",$.DEPLOYMENTS="deployments",$.METADATA="metadata",$.MEM_VIEW="view",$.USER_FLAG="flag",$.AUTOMATION_METADATA="meta_au",$.AUDIT_LOG="al",$.SCIM_LOG="scimlog",$.ROW_ACTIONS="ra",$.OAUTH2_CONFIG="oauth2",$.OAUTH2_CONFIG_LOG="oauth2log",$.AGENT="agent",$.CHAT_APP="chatapp",$.CHAT_CONVERSATION="chatconvo",$.CHAT_IDENTITY_LINK="chatidentitylink",$.AGENT_TOOL_SOURCE="agenttoolsource",$.AGENT_FILE="agentfile",$.AGENT_LOG_SESSION="agentlogsession",$.AGENT_LOG_REQUEST="agentlogrequest",$.AGENT_REQUEST="agentrequest",$.AGENT_TEST_SUITE="agenttestsuite",$.AGENT_TEST_RUN="agenttestrun",$.AGENT_KNOWLEDGE_SOURCE_SYNC_STATE="agentknowledgesync",$.AGENT_KNOWLEDGE_SOURCE_CONNECTION="agentknowledgeconn",$.KNOWLEDGE_BASE_FILE="knowledgebasefile",$.AI_CONFIG="aiconfig",$.LITELLM_KEY="litellmkey",$.KNOWLEDGE_BASE="knowledgebase",$.WORKSPACE_APP="workspace_app",$.WORKSPACE_FAVOURITE="workspace_favourite",$.PROJECT="project",$.AUTO_COLUMN_STATE="autocolumn_state",$.ESCALATION_CONTEXT="escalation_context",$.ESCALATION_NOTIFICATION="escalation_notification",$))(ae||{});var It=(e=>(e.USER_METADATA="ta_users",e))(It||{});function vn(t){return!!t.providerType}s(vn,"isSSOUser");var Kc=(f=>(f.OBJECT="object",f.STRING="string",f.BOOLEAN="boolean",f.NUMBER="number",f.ARRAY="array",f.JSON="json",f.DATE="date",f.DATETIME="datetime",f.ATTACHMENT="attachment",f.LONGFORM="longform",f.JS="javascript",f))(Kc||{}),Qc=(C=>(C.TABLE="table",C.ROW="row",C.ROWS="rows",C.WIDE="wide",C.QUERY="query",C.QUERY_PARAMS="queryParams",C.QUERY_LIMIT="queryLimit",C.LOOP_OPTION="loopOption",C.ITEM="item",C.CODE="code",C.FILTERS="filters",C.COLUMN="column",C.TRIGGER_SCHEMA="triggerSchema",C.CRON="cron",C.WEBHOOK_URL="webhookUrl",C.AUTOMATION="automation",C.AUTOMATION_FIELDS="automationFields",C.MULTI_ATTACHMENTS="multi_attachments",C.TRIGGER_FILTER="trigger_filter",C.CATEGORIES="categories",C.AGENT="agent",C.OUTPUT_SCHEMA="outputSchema",C))(Qc||{}),jc=(c=>(c.ROW_SAVED="ROW_SAVED",c.ROW_UPDATED="ROW_UPDATED",c.ROW_DELETED="ROW_DELETED",c.WEBHOOK="WEBHOOK",c.APP="APP",c.CRON="CRON",c.ROW_ACTION="ROW_ACTION",c.EMAIL="EMAIL",c))(jc||{});var Hc=(B=>(B.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",B.CREATE_ROW="CREATE_ROW",B.GET_ROW="GET_ROW",B.UPDATE_ROW="UPDATE_ROW",B.DELETE_ROW="DELETE_ROW",B.QUERY_ROWS="QUERY_ROWS",B.EXECUTE_BASH="EXECUTE_BASH",B.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",B.EXECUTE_SCRIPT="EXECUTE_SCRIPT",B.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",B.EXECUTE_QUERY="EXECUTE_QUERY",B.SERVER_LOG="SERVER_LOG",B.DELAY="DELAY",B.FILTER="FILTER",B.API_REQUEST="API_REQUEST",B.LOOP="LOOP",B.COLLECT="COLLECT",B.OPENAI="OPENAI",B.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",B.BRANCH="BRANCH",B.CLASSIFY_CONTENT="CLASSIFY_CONTENT",B.PROMPT_LLM="PROMPT_LLM",B.TRANSLATE="TRANSLATE",B.SUMMARISE="SUMMARISE",B.GENERATE_TEXT="GENERATE_TEXT",B.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",B.EXTRACT_STATE="EXTRACT_STATE",B.LOOP_V2="LOOP_V2",B.AGENT="AGENT",B.ESCALATION="ESCALATION",B.discord="discord",B.slack="slack",B.zapier="zapier",B.integromat="integromat",B.n8n="n8n",B))(Hc||{}),Th=[...Object.values(Hc),...Object.values(jc)];function Sh(t){return t.stepId==="BRANCH"}s(Sh,"isBranchStep");var Yc="bb_internal";var Ah=["attachment_single","attachment","signature_single","bb_reference","json","array"];var nf={};P(nf,{AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,Config:()=>rf,Cookie:()=>yr,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DEFAULT_TENANT_ID:()=>ce,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,GlobalRole:()=>tf,Header:()=>Pe,InternalTable:()=>It,MAX_VALID_DATE:()=>qa,MIN_VALID_DATE:()=>cT,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,UserStatus:()=>Va,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt});var Pe=(I=>(I.API_KEY="x-budibase-api-key",I.LICENSE_KEY="x-budibase-license-key",I.API_VER="x-budibase-api-version",I.APP_ID="x-budibase-app-id",I.SESSION_ID="x-budibase-session-id",I.CLIENT="x-budibase-client",I.TYPE="x-budibase-type",I.PREVIEW_ROLE="x-budibase-role",I.TENANT_ID="x-budibase-tenant-id",I.VERIFICATION_CODE="x-budibase-verification-code",I.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",I.RESET_PASSWORD_CODE="x-budibase-reset-password-code",I.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",I.TOKEN="x-budibase-token",I.CSRF_TOKEN="x-csrf-token",I.CORRELATION_ID="x-budibase-correlation-id",I.AUTHORIZATION="authorization",I.MIGRATING_APP="x-budibase-migrating-app",I.SKIP_MIGRATING_WAIT="x-budibase-migrating-app-skip-wait",I.COOKIE="cookie",I))(Pe||{});var Nn={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Mi={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var Le={Equals:{value:"equal",label:"Equals"},NotEquals:{value:"notEqual",label:"Not equals"},Empty:{value:"empty",label:"Is empty"},NotEmpty:{value:"notEmpty",label:"Is not empty"},StartsWith:{value:"string",label:"Starts with"},Like:{value:"fuzzy",label:"Like"},MoreThan:{value:"rangeLow",label:"More than or equal to"},LessThan:{value:"rangeHigh",label:"Less than or equal to"},Contains:{value:"contains",label:"Contains"},NotContains:{value:"notContains",label:"Does not contain"},In:{value:"oneOf",label:"Is in"},NotIn:{value:"notOneOf",label:"Is not in"},ContainsAny:{value:"containsAny",label:"Has any"}},_h={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Pn="datasource_internal_bb_default";var Er={};P(Er,{ColumnSplitter:()=>kd,NoEmptyFilterStrings:()=>nT,buildQuery:()=>iT,cleanupQuery:()=>Bd,fixupFilterArrays:()=>Gd,getKeyNumbering:()=>Wd,getValidOperatorsForType:()=>Nb,hasFilters:()=>Md,limit:()=>oT,recurseLogicalOperators:()=>Fd,removeKeyNumbering:()=>Yo,runQuery:()=>Ma,search:()=>Ub,sort:()=>sT,splitFiltersArray:()=>zo});var zn=W(Oh());var wt={};P(wt,{filterValueToLabel:()=>JO,hasSchema:()=>XO,isSupportedUserSearch:()=>Rh,nameToUrl:()=>nI,parallelForeach:()=>zO,processSearchFilters:()=>Xc,toMap:()=>eI,trimOtherProps:()=>ZO,unreachable:()=>YO});var wh=W(require("lodash/pick"));var HO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function YO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(YO,"unreachable");async function zO(t,e,r){let n=[],i=Symbol.asyncIterator in t,o=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),a=s(async()=>{let u=await(i?o.next():Promise.resolve(o.next()));for(;!u.done;)await e(u.value),u=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}s(zO,"parallelForeach");function JO(){return Object.keys(Le).reduce((t,e)=>{let n=Le[e];return t[n.value]=n.label,t},{})}s(JO,"filterValueToLabel");function XO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(XO,"hasSchema");function ZO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(ZO,"trimOtherProps");function Rh(t){let e=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(qo(o)){for(let l of t[o].conditions)if(!Rh(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!e.find(l=>l.op===o&&u.length===1&&u[0]===l.key))return!1}return!0}s(Rh,"isSupportedUserSearch");function Xc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=zo(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,wh.default)(i,HO);return o.field=Yo(o.field),o})}]}}s(Xc,"processSearchFilters");function eI(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(eI,"toMap");var tI=s(t=>t?t.trim():null,"resolveWorkspaceName"),rI=s(t=>{let e,r=tI(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),nI=s(t=>{let e=rI(t);return iI(e)},"nameToUrl"),iI=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var ke={};P(ke,{accountPortalAccountUrl:()=>Rd,accountPortalBillingUrl:()=>Cd,accountPortalUpgradeUrl:()=>Dd,agentChatUrl:()=>Ld,appAgentUrl:()=>Ua,appChatUrl:()=>La,applyBaseUrl:()=>zy,builderAppsUrl:()=>Pd,builderSettingsAuthUrl:()=>vd,builderSettingsEmailUrl:()=>xd,builderSettingsPeopleUsersUrl:()=>Nd,builderWorkspacesUrl:()=>bd,cancelableTimeout:()=>Ch,cron:()=>Db,deepGet:()=>Zc,duplicateName:()=>_b,escapeHtml:()=>cI,formatBytes:()=>Cb,getNextPreviewDevice:()=>Tb,getPreviewDeviceIcon:()=>Sb,getPreviewModalDevice:()=>Ab,getSequentialName:()=>Ob,getUserColor:()=>oI,getUserInitials:()=>sI,getUserLabel:()=>aI,isEnvironmentVariableKey:()=>eT,isGoogleSheets:()=>dI,isSQL:()=>fI,lists:()=>Id,normaliseSafeCssColor:()=>mI,normalizeForComparison:()=>lI,retry:()=>pI,roles:()=>Od,schema:()=>ws,structuredOutput:()=>Sd,urlHelpers:()=>Zy,views:()=>_d,wait:()=>el,withTimeout:()=>uI});var Zc=s((t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},"deepGet"),sI=s(t=>{if(!t)return"?";let e="";return e+=t.firstName?t.firstName[0]:"",e+=t.lastName?t.lastName[0]:"",e!==""?e:t.email?.[0]||"U"},"getUserInitials"),oI=s(t=>{let e=t?._id;if(!e)return"var(--spectrum-global-color-blue-400)";e=e.replace("ro_ta_users_","");let r=1;for(let n=0;n<e.length;n++)r+=e.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),aI=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function Ch(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(Ch,"cancelableTimeout");async function uI(t,e){let[r,n]=Ch(t),i=await Promise.race([e(),r]);return n(),i}s(uI,"withTimeout");var cI=s(t=>t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeHtml"),lI=s(t=>t.toLowerCase().trim(),"normalizeForComparison");function dI(t){return t==="GOOGLE_SHEETS"}s(dI,"isGoogleSheets");function fI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(fI,"isSQL");async function el(t){return new Promise(e=>setTimeout(e,t))}s(el,"wait");async function pI(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let o=1.5**i*1e3*(Math.random()+.5);await el(o);try{return await t()}catch(a){n=a}}throw n}s(pI,"retry");var mI=s(t=>{if(t==null||t.trim()==="")return;let e=t.trim();if(e.includes(";")||/\burl\s*\(/i.test(e))throw new Error("Color is invalid.");return e},"normaliseSafeCssColor");var Ky=W(Rt()),Qy=W(Vy());var qy="(Input cron: ",rb={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function nb(t,e){return new Intl.DateTimeFormat("en-GB",{weekday:"short",day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:e}).format(t)}s(nb,"formatExecutionDate");function ib(t){let e=[];for(let r of t){r.includes(qy)&&(r=r.split(qy)[0].trim());for(let[n,i]of Object.entries(rb))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(ib,"improveErrors");function jy(t,e=4,r){let n=Qy.default.parseExpression(t,r?{tz:r}:void 0),i=[];for(let o=0;o<e;o++)i.push(nb(n.next().toDate(),r));return i}s(jy,"getNextExecutionDates");function Hy(t){let e=(0,Ky.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:ib(e.getError())}}s(Hy,"validate");var ws={};P(ws,{decodeNonAscii:()=>Td,encodeNonAscii:()=>ab,isDeprecatedSingleUserColumn:()=>sb,isNumeric:()=>ub,isRequired:()=>ob});function sb(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(sb,"isDeprecatedSingleUserColumn");function ob(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(ob,"isRequired");function ab(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(ab,"encodeNonAscii");function Td(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(Td,"decodeNonAscii");function ub(t){return t.type==="number"||t.type==="bigint"}s(ub,"isNumeric");var Sd={};P(Sd,{normalizeSchemaForStructuredOutput:()=>cb});function cb(t){function e(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let o=i.properties,a=[],u={};for(let[d,f]of Object.entries(o))if(typeof f=="object"&&f!==null){let g=f;if(g.required===!0){a.push(d);let{required:m,...y}=g;u[d]=e(y)}else u[d]=e(g)}else u[d]=f;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=e(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>e(a)));return i}s(e,"processSchema");let r=e(t);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}s(cb,"normalizeSchemaForStructuredOutput");var _d={};P(_d,{basicFields:()=>mb,calculationFields:()=>pb,hasCalculationFields:()=>fb,isBasicViewField:()=>lb,isCalculationField:()=>Rs,isCalculationView:()=>db,isV2:()=>hb,isVisible:()=>Yy});var Ad=W(require("lodash/pickBy"));function Rs(t){return"calculationType"in t}s(Rs,"isCalculationField");function lb(t){return!Rs(t)}s(lb,"isBasicViewField");function db(t){return t.type==="calculation"}s(db,"isCalculationView");function fb(t){return Object.values(t.schema||{}).some(Rs)}s(fb,"hasCalculationFields");function pb(t){return(0,Ad.default)(t.schema||{},Rs)}s(pb,"calculationFields");function Yy(t){return t.visible!==!1}s(Yy,"isVisible");function mb(t,e){let{visible:r=!0}=e||{};return(0,Ad.default)(t.schema||{},n=>!Rs(n)&&(!r||Yy(n)))}s(mb,"basicFields");function hb(t){return t.version===2}s(hb,"isV2");var Od={};P(Od,{checkForRoleInheritanceLoops:()=>Eb});function gb(t){return`role${"_"}${t}`}s(gb,"prefixForCheck");function Eb(t){let e=new Map;t.forEach(o=>{e.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=gb(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let u=e.get(a)||e.get(o);if(!u)return n.delete(o),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!t.find(o=>i(o._id))}s(Eb,"checkForRoleInheritanceLoops");var Id={};P(Id,{punctuateList:()=>yb});function yb(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}s(yb,"punctuateList");var wd=["desktop","tablet","mobile"],Tb=s(t=>{let e=wd.indexOf(t||"desktop"),n=((e===-1?0:e)+1)%wd.length;return wd[n]},"getNextPreviewDevice"),Sb=s(t=>t==="mobile"?"device-mobile-camera":t==="tablet"?"device-tablet-camera":"monitor","getPreviewDeviceIcon"),Ab=s(t=>t&&t!=="desktop"?t:null,"getPreviewModalDevice");var _b=s((t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];e.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(o.push(parseInt(c[1])),!0):!1}),o.sort((u,c)=>u-c);let a;if(o.length===0)a=1;else{for(let u=0;u<o.length;u++)if(o[u]!==u+1){a=u+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),Ob=s((t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let o=e.trim(),a=n?`${e}1`:o;if(!t?.length)return a;let u=0;return t.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(o))return;let d=l.split(o);if(d.length!==2)return;d[1].trim()===""&&(d[1]="1");let f=parseInt(d[1]);f>u&&(u=f)}),u===0?a:`${e}${i}${u+1}`},"getSequentialName");var Ib=/{?{{([^{].*?)}}}?/g;function zy(t,e){if(!e)return t;let r=t.match(Ib)??[],n=[],i=t;for(let l of r){let d=`:${l}`;i.includes(d)&&(n.push(l),i=i.replace(d,":0"))}let o=s(l=>`__hbs${l}__`,"placeholder"),a=r.filter(l=>!n.includes(l));i=a.reduce((l,d,f)=>l.replace(d,o(f)),i);let u=s(l=>a.reduce((d,f,g)=>d.replace(o(g),f),l),"restore"),c=e.replace(/\/$/,"");try{let l=new URL(i),d=l.pathname==="/"?"":l.pathname;return c+u(d+l.search+l.hash)}catch{let l=u(i);return l.startsWith("/")?c+l:c}}s(zy,"applyBaseUrl");var Jy=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),wb=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),qt=s((t,e)=>{let r=Jy(e);if(!t)return r;let n=wb(t);return r?`${n}${r}`:n},"joinBaseAndPath"),Rb=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),Xy=s(t=>Rb(Jy(t)),"normalizeAppUrl"),Rd=s(t=>qt(t,Mi.ACCOUNT),"accountPortalAccountUrl"),Cd=s((t,e)=>{let r=typeof e=="string"||e==null?{tenantId:e}:e,n=qt(t,Mi.BILLING),i=new URLSearchParams;r?.tenantId&&i.set("tenantId",r.tenantId),r?.purchasePrepaidAiCredits&&i.set("purchasePrepaidAiCredits","1");let o=i.toString();return o?`${n}?${o}`:n},"accountPortalBillingUrl"),Dd=s((t,e)=>{if(e){let r=qt(t,Mi.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return qt(t,Mi.UPGRADE)},"accountPortalUpgradeUrl"),bd=s(t=>qt(t,Nn.WORKSPACES),"builderWorkspacesUrl"),xd=s(t=>qt(t,Nn.SETTINGS_EMAIL),"builderSettingsEmailUrl"),vd=s(t=>qt(t,Nn.SETTINGS_AUTH),"builderSettingsAuthUrl"),Nd=s(t=>qt(t,Nn.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Pd=s(t=>qt(t,Nn.APPS),"builderAppsUrl"),La=s(t=>`/app-chat${Xy(t)}`,"appChatUrl"),Ua=s((t,e)=>`${Xy(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),Ld=s((t,e)=>La(Ua(t,e)),"agentChatUrl"),Zy={accountPortalAccountUrl:Rd,accountPortalBillingUrl:Cd,accountPortalUpgradeUrl:Dd,builderWorkspacesUrl:bd,builderSettingsEmailUrl:xd,builderSettingsAuthUrl:vd,builderSettingsPeopleUsersUrl:Nd,builderAppsUrl:Pd,appChatUrl:La,appAgentUrl:Ua,agentChatUrl:Ld};function Cb(t,e=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,o=typeof t=="string"?parseInt(t,10):t||0;for(;o>=1024&&i<r.length-1&&++i;)o/=1024;return`${o.toFixed(o<10&&i>0?1:0)}${e}${r[i]}`}s(Cb,"formatBytes");function eT(t){return/^{{\s*env\.([^\s]+)\s*}}$/.test(String(t))}s(eT,"isEnvironmentVariableKey");var Db={getNextExecutionDates:jy,validate:Hy};var ka=W(require("lodash/isPlainObject")),Ud=W(require("lodash/isEmpty"));var xb=/{{([^{].*?)}}/g,rT=Object.values(Li),vb=[...Object.values(Vr),...Object.values(cr),...Object.values(xn)],Nb=s((t,e,r)=>{let n=Le,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In,n.NotIn],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:d}=t;c==="string"?d==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||ws.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let f=r?.tableId?.includes("datasource_plus");return e==="_id"&&f&&(u=[n.Equals,n.NotEquals,n.In,n.NotIn]),u},"getValidOperatorsForType"),nT=[Le.StartsWith.value,Le.Like.value,Le.Equals.value,Le.NotEquals.value,Le.Contains.value,Le.NotContains.value,Le.ContainsAny.value,Le.In.value,Le.NotIn.value];function Fd(t,e){for(let r of rT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Fd,"recurseLogicalOperators");var Bd=s(t=>{for(let e of nT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,o]of Object.entries(t[r]))(o==null||o===""||Pb(o))&&delete t[e][i]}return t=Fd(t,Bd),t},"cleanupQuery");function Pb(t){return Array.isArray(t)&&t.length===0}s(Pb,"isEmptyArray");var Yo=s(t=>Wd(t).key,"removeKeyNumbering"),Wd=s(t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},"getKeyNumbering"),kd=class{static{s(this,"ColumnSplitter")}constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=Wd(e),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let o;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),o=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=Td(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function Lb(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:o}=t,{value:a}=t;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(xb)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Ko(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"||r==="notOneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(Ko(r)){let l=_h[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],low:a};else if(gh(r)||Eh(r)||Ko(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(Lb,"buildCondition");function zo(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}s(zo,"splitFiltersArray");function iT(t){if(!t)return{};if(Array.isArray(t)&&(t=Xc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=tT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=iT(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=zo(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=tT(n.logicalOperator)),{[u]:{conditions:a.map(Lb).filter(c=>c)}}})},e}s(iT,"buildQuery");function tT(t){return t==="all"?"$and":"$or"}s(tT,"logicalOperatorFromUI");function Gd(t){if(!t)return t;for(let e of Object.values(cr)){let r=t[e];if(!(r==null||!(0,ka.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(o=>o.trim()):r[n]=[i]}}return Fd(t,Gd),t}s(Gd,"fixupFilterArrays");function Ub(t,e){let r=Ma(t,e.query);e.sort&&(r=sT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=oT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(Ub,"search");function Ma(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Bd(e),e=Gd(e),!Md(e)&&e.onEmptyFilter==="none")return[];let r=s((R,w)=>b=>{for(let[G,ee]of Object.entries(e[R]||{})){let M=qo(R)?b:Zc(b,Yo(G)),U=w(M,ee);if(e.allOr&&U)return!0;if(!e.allOr&&!U)return!1}return!e.allOr},"match"),n=r("string",(R,w)=>typeof R!="string"||typeof w!="string"?!1:R.toLowerCase().startsWith(w.toLowerCase())),i=r("fuzzy",(R,w)=>typeof R!="string"||typeof w!="string"?!1:R.toLowerCase().includes(w.toLowerCase())),o=r("range",(R,w)=>{if(R==null||R===""||((0,ka.default)(w.low)&&(0,Ud.default)(w.low)&&(w.low=void 0),(0,ka.default)(w.high)&&(0,Ud.default)(w.high)&&(w.high=void 0),w.low==null&&w.high==null))return!1;let b=+R;if(!isNaN(b)){let ee=+w.low,M=+w.high;if(!isNaN(ee)&&!isNaN(M))return b>=ee&&b<=M;if(isNaN(ee)){if(!isNaN(M))return b<=M}else return b>=ee}let G=(0,zn.default)(R);if(G.isValid()){let ee=(0,zn.default)(w.low||"0000-00-00T00:00:00.000Z"),M=(0,zn.default)(w.high||"9999-00-00T00:00:00.000Z");if(ee.isValid()&&M.isValid())return G.isAfter(ee)&&G.isBefore(M)||G.isSame(ee)||G.isSame(M);if(ee.isValid())return G.isAfter(ee)||G.isSame(ee);if(M.isValid())return G.isBefore(M)||G.isSame(M)}return w.low!=null&&w.high!=null?R>=w.low&&R<=w.high:w.low!=null?R>=w.low:w.high!=null?R<=w.high:!1}),a=s((R,w)=>{if(Array.isArray(R)){for(let G of R)if(a(G,w))return!0;return!1}if(R&&typeof R=="object"&&typeof w=="string")return R._id===w;if(R===w)return!0;if(R==null&&w!=null||R!=null&&w==null)return!1;let b=(0,zn.default)(R);if(b.isValid()){let G=(0,zn.default)(w);if(G.isValid())return b.isSame(G)}return!1},"_valueMatches"),u=s(R=>(...w)=>!R(...w),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(R=>typeof R=="string"?R==="":Array.isArray(R)?R.length===0:R&&typeof R=="object"?Object.keys(R).length===0:R==null,"_empty"),f=r("empty",d),g=r("notEmpty",u(d)),m=s((R,w)=>(typeof w=="string"&&(w=w.split(",")),typeof R=="number"&&(w=w.map(b=>parseFloat(b))),Array.isArray(w)?w.some(b=>a(R,b)):!1),"_oneOf"),y=r("oneOf",m),h=r("notOneOf",u(m)),p=s(R=>(w,b)=>!Array.isArray(w)||(typeof b=="string"&&(b=b.split(","),typeof w[0]=="number"&&(b=b.map(G=>parseFloat(G)))),!Array.isArray(b))?!1:b.length===0?!0:b[R](G=>a(w,G)),"_contains"),T=r("contains",(R,w)=>Array.isArray(w)&&w.length===0?!0:p("every")(R,w)),A=r("notContains",(R,w)=>Array.isArray(w)&&w.length===0?!0:u(p("every"))(R,w)),_=r("containsAny",p("some")),I=r("$and",(R,w)=>{if(!w.length)return!1;for(let b of w)if(!Ma([R],b).length)return!1;return!0}),O=r("$or",(R,w)=>{if(!w.length)return!1;for(let b of w)if(Ma([R],{...b,allOr:!0}).length)return!0;return!1}),C=s(R=>{let w={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:g,oneOf:y,notOneOf:h,contains:T,containsAny:_,notContains:A,$and:I,$or:O},b=Object.entries(e||{}).filter(([G,ee])=>!["allOr","onEmptyFilter"].includes(G)&&ee&&Object.keys(ee).length>0).map(([G])=>w[G]?.(R)??!1);return Md(e)?e.allOr?b.some(G=>G===!0):b.every(G=>G===!0):!0},"docMatch");return t.filter(C)}s(Ma,"runQuery");function sT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return t.slice().sort((o,a)=>{let u=i(o[e]),c=i(a[e]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(sT,"sort");function oT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(oT,"limit");var Md=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of rT)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of vb){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return e(t)},"hasFilters");var Me={};P(Me,{automations:()=>qd,screens:()=>Hd,users:()=>jd,workspaces:()=>Vd});var Vd={};P(Vd,{getDevWorkspaceID:()=>kb,getProdWorkspaceID:()=>Ds});var $d=Ot("app"),Cs=Ot("app_dev");function kb(t){if(!t)throw new Error("No workspace ID provided");if(t.startsWith(Cs))return t;let e=t.split($d);e.shift();let r=e.join($d);return`${Cs}${r}`}s(kb,"getDevWorkspaceID");function Ds(t){if(!t)throw new Error("No workspace ID provided");if(!t.startsWith(Cs))return t;let e=t.split(Cs);e.shift();let r=e.join(Cs);return`${$d}${r}`}s(Ds,"getProdWorkspaceID");var qd={};P(qd,{checkForCollectStep:()=>Wb,isAppAction:()=>Bb,isRowAction:()=>Mb,isWebhookAction:()=>Fb});function Mb(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(Mb,"isRowAction");function Fb(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(Fb,"isWebhookAction");function Bb(t){return t.definition.trigger?.stepId==="APP"}s(Bb,"isAppAction");function aT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Sh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(aT(r))return!0}}return!1}s(aT,"hasCollectBlockRecursive");function Wb(t){return aT(t.definition.steps)}s(Wb,"checkForCollectStep");var jd={};P(jd,{canCreateApps:()=>Gb,containsUserID:()=>Yb,getGlobalUserID:()=>Hb,getUserAppGroups:()=>zb,hasAdminPermissions:()=>Qd,hasAppBuilderPermissions:()=>Ba,hasBuilderPermissions:()=>Qb,hasCreatorPermissions:()=>Wa,isAdmin:()=>bs,isAdminOrBuilder:()=>Vb,isAdminOrGlobalBuilder:()=>qb,isAdminOrWorkspaceBuilder:()=>$b,isBuilder:()=>Kd,isCreator:()=>jb,isGlobalBuilder:()=>Fa,userAppAccessList:()=>Jb});function Kd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Ds(e))):!1}s(Kd,"isBuilder");function Fa(t){return Kd(t)&&!Ba(t)||bs(t)}s(Fa,"isGlobalBuilder");function Gb(t){return Fa(t)||Wa(t)}s(Gb,"canCreateApps");function bs(t){return t?Qd(t):!1}s(bs,"isAdmin");function $b(t,e){return t?!!(bs(t)||e&&t.builder?.apps?.includes(Ds(e))):!1}s($b,"isAdminOrWorkspaceBuilder");function Vb(t,e){return Kd(t,e)||bs(t)}s(Vb,"isAdminOrBuilder");function qb(t){return Fa(t)||bs(t)}s(qb,"isAdminOrGlobalBuilder");function Ba(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Ba,"hasAppBuilderPermissions");function Kb(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(Kb,"hasAppCreatorPermissions");function Qb(t){return t?t.builder?.global||Ba(t)||Wa(t):!1}s(Qb,"hasBuilderPermissions");function Qd(t){return t?!!t.admin?.global:!1}s(Qd,"hasAdminPermissions");function Wa(t){return t?!!t.builder?.creator:!1}s(Wa,"hasCreatorPermissions");function jb(t){return t?Fa(t)||Qd(t)||Wa(t)||Ba(t)||Kb(t):!1}s(jb,"isCreator");function Hb(t){if(typeof t!="string")return t;let e=`ro${"_"}ta_users${"_"}`;return t.startsWith(e)?t.split(e)[1]:t}s(Hb,"getGlobalUserID");function Yb(t){return typeof t!="string"?!1:t.includes(`us${"_"}`)}s(Yb,"containsUserID");function uT(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(uT,"getUserGroups");function zb(t,e,r){let n=Ds(t);return uT(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(zb,"getUserAppGroups");function Jb(t,e){let n=uT(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Jb,"userAppAccessList");var Hd={};P(Hd,{findInSettings:()=>Xb});function Xb(t,e){let r=[];function n(i,o=""){if(!(!i||typeof i!="object"))for(let[a,u]of Object.entries(i)){let c=o?`${o}.${a}`:a;u&&(typeof u=="string"&&u.includes(e)?r.push({setting:c,value:u}):typeof u=="object"&&n(u,c))}}return s(n,"recurse"),n(t.props),n(t.onLoad||[],"onLoad"),r}s(Xb,"findInSettings");var Ga=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ga||{}),Kt=(h=>(h.USER_BY_WORKSPACE="by_app",h.USER_BY_EMAIL="by_email2",h.BY_API_KEY="by_api_key",h.AGENT_REQUESTS_BY_AGENT="agent_requests_by_agent",h.AGENT_REQUESTS_BY_UPDATED_AT="agent_requests_by_updated_at_2",h.AGENT_REQUESTS_BY_STATUS_AND_UPDATED_AT="agent_requests_by_status_and_updated_at",h.LINK="by_link",h.ROUTING="screen_routes_2",h.PROJECT_MEMBERS="project_members",h.AUTOMATION_LOGS="automation_logs",h.ACCOUNT_BY_EMAIL="account_by_email",h.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",h.USER_BY_GROUP="user_by_group",h.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",h.WORKSPACE_BACKUP_BY_EXPIRY="workspace_backup_by_expiry",h))(Kt||{}),Jn={by_email2:["by_email"],agent_requests_by_updated_at_2:["agent_requests_by_updated_at"]},pe={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},rt=Ot("app"),$a=Ot("app_dev"),nt=$a,Yd="internal",zd="budibase",xt="_design/sqlite",Jd="ta_bb_jobs",Xd="ta_bb_inventory",Zd="ta_bb_expenses",ef="ta_bb_employee",xs=`ro${"_"}ta_users${"_"}`,vs=(r=>(r[r.SQLITE=xt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(vs||{});var Va=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Va||{}),yr=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(yr||{}),tf=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(tf||{}),rf=(c=>(c.SETTINGS="settings",c.ACCOUNT="account",c.SMTP="smtp",c.GOOGLE="google",c.OIDC="oidc",c.OIDC_LOGOS="logos_oidc",c.SCIM="scim",c.AI="AI",c))(rf||{}),cT=new Date(-2147483647e3),qa=new Date(2147483647e3),ce="default";var Di={};P(Di,{CacheKey:()=>Oe,TTL:()=>gi,bustCache:()=>Ei,destroy:()=>fo,docWritethrough:()=>Mp,generic:()=>Gu,get:()=>lo,increment:()=>vA,invite:()=>An,keys:()=>Wu,passwordReset:()=>Gp,store:()=>yn,user:()=>nr,withCache:()=>br,withCacheWithDynamicTTL:()=>xA,workspace:()=>Vs,writethrough:()=>ym});var Mp={};P(Mp,{DocWritethrough:()=>kp,DocWritethroughProcessor:()=>co,getProcessor:()=>iP,init:()=>bA});var Up={};P(Up,{BudibaseQueue:()=>yt,InMemoryQueue:()=>Cu,JobQueue:()=>fi,QueuedProcessor:()=>Lp,UnretriableError:()=>Fu,shutdown:()=>yN});var sf=require("crypto"),Qa=require("fs"),fT=require("lodash"),Ns=require("path");var Zb=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Ns.resolve)((0,Ns.join)(__dirname,"..","..","..")),lT=!1;!lT&&Ka()&&!of()&&(require("dotenv").config({path:(0,Ns.join)(Zb,".env")}),lT=!0);function of(){return pT()}s(of,"isTest");function pT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(pT,"isJest");function Ka(){return process.env.NODE_ENV!=="production"}s(Ka,"isDev");function ex(t){if(t)return parseInt(t)}s(ex,"parseIntSafe");var Xn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},dT=!!parseInt(process.env.SELF_HOSTED||"");function tx(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(tx,"getAPIEncryptionKey");function rx(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(rx,"httpLogging");function nx(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Qa.existsSync)(l))return l;let d=`${c}/..`;return d===c?null:n(u,d)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Qa.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(Ka()&&!of())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(nx,"getPackageJsonFields");function ix(){return ht.SERVICE_TYPE==="worker"}s(ix,"isWorker");function sx(){return ht.SERVICE_TYPE==="apps"}s(sx,"isApps");function ox(){return ht.BUDIBASE_ENVIRONMENT==="QA"}s(ox,"isQA");function ax(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}s(ax,"getServiceName");var ht={isTest:of,isJest:pT,isDev:Ka,isWorker:ix,isApps:sx,isQA:ox,isProd:s(()=>!Ka(),"isProd"),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,sf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,sf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:tx(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,MICROSOFT_CLIENT_ID:process.env.MICROSOFT_CLIENT_ID,MICROSOFT_CLIENT_SECRET:process.env.MICROSOFT_CLIENT_SECRET,MICROSOFT_TENANT_ID:process.env.MICROSOFT_TENANT_ID,RAG_SHAREPOINT_DEFAULT_SCOPE:process.env.RAG_SHAREPOINT_DEFAULT_SCOPE||"offline_access User.Read https://graph.microsoft.com/Sites.Read.All",SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_USERNAME:process.env.REDIS_USERNAME,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:dT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS:process.env.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Xn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Xn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Xn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Xn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Xn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Xn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:ax(),LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:rx(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:dT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING:process.env.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING,...nx(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,ht[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:ex(process.env.BSON_BUFFER_SIZE),CUSTOM_CSP_MEDIA_SRC:process.env.CUSTOM_CSP_MEDIA_SRC,CUSTOM_CSP_SCRIPT_SRC:process.env.CUSTOM_CSP_SCRIPT_SRC,CUSTOM_CSP_CONNECT_SRC:process.env.CUSTOM_CSP_CONNECT_SRC,CUSTOM_CSP_IMG_SRC:process.env.CUSTOM_CSP_IMG_SRC,CUSTOM_CSP_FONT_SRC:process.env.CUSTOM_CSP_FONT_SRC,CUSTOM_CSP_FRAME_SRC:process.env.CUSTOM_CSP_FRAME_SRC,OPENROUTER_BASE_URL:process.env.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1",COUCH_DB_SQS_PORT:process.env.COUCH_DB_SQS_PORT||"4984"};function Ps(t){let e=(0,fT.cloneDeep)(ht),r;for(r in t)ht._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))ht._set(n,i)}}s(Ps,"setEnv");function mT(t,e){let r=Ps(t);try{let n=e();return n instanceof Promise?n.finally(r):(r(),n)}catch(n){throw r(),n}}s(mT,"withEnv");var hT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","MICROSOFT_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","REDIS_PASSWORD","REDIS_USERNAME"];for(let[t,e]of Object.entries(ht))e==="0"&&(ht[t]=0),e==="false"&&(ht[t]=0);var E=ht;var Ya={};P(Ya,{Databases:()=>af,SEPARATOR:()=>Zn,SelectableDatabase:()=>ja,getRedisClusterOptions:()=>uf,getRedisConnectionDetails:()=>Ha,getRedisOptions:()=>un,removeDbPrefix:()=>cf});var Zn="-",af=(_=>(_.PW_RESETS="pwReset",_.VERIFICATIONS="verification",_.INVITATIONS_LIST="invitationList",_.DEV_LOCKS="devLocks",_.DEBOUNCE="debounce",_.SESSIONS="session",_.USER_CACHE="users",_.FLAGS="flags",_.WORKSPACE_METADATA="appMetadata",_.QUERY_VARS="queryVars",_.LICENSES="license",_.GENERIC_CACHE="data_cache",_.WRITE_THROUGH="writeThrough",_.LOCKS="locks",_.SOCKET_IO="socket_io",_.BPM_EVENTS="bpmEvents",_.DOC_WRITE_THROUGH="docWriteThrough",_.RECAPTCHA_SESSION="recaptchaSession",_.OPENAPI_IMPORT_SPECS="openapiImportSpecs",_))(af||{}),ja=(p=>(p[p.DEFAULT=0]="DEFAULT",p[p.SOCKET_IO=1]="SOCKET_IO",p[p.RATE_LIMITING=2]="RATE_LIMITING",p[p.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",p[p.UNUSED_3=4]="UNUSED_3",p[p.UNUSED_4=5]="UNUSED_4",p[p.UNUSED_5=6]="UNUSED_5",p[p.UNUSED_6=7]="UNUSED_6",p[p.UNUSED_7=8]="UNUSED_7",p[p.UNUSED_8=9]="UNUSED_8",p[p.UNUSED_9=10]="UNUSED_9",p[p.UNUSED_10=11]="UNUSED_10",p[p.UNUSED_11=12]="UNUSED_11",p[p.UNUSED_12=13]="UNUSED_12",p[p.UNUSED_13=14]="UNUSED_13",p[p.UNUSED_14=15]="UNUSED_14",p))(ja||{});function Ha(){let t=E.REDIS_PASSWORD,e=E.REDIS_USERNAME,r=E.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");e=e||a[0]||void 0,t=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:t,username:e,port:isNaN(o)?6379:o}}s(Ha,"getRedisConnectionDetails");function uf(){return{slotsRefreshTimeout:2e3,dnsLookup:s((t,e)=>e(null,t),"dnsLookup"),redisOptions:{...un()}}}s(uf,"getRedisClusterOptions");function un(){let{host:t,password:e,port:r,username:n}=Ha(),i=E.REDIS_URL.toLowerCase().startsWith("rediss://")?{}:void 0;return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n},...i&&{tls:i}}}s(un,"getRedisOptions");function cf(t){let e=t.split(Zn);return e.length>=2?(e.shift(),e.join(Zn)):e[0]}s(cf,"removeDbPrefix");var KS=W(require("events"));var di={};P(di,{Duration:()=>me,GZIP_PREFIX:()=>Iu,clearCookie:()=>Jt,compare:()=>ff,createPinnedLookup:()=>qS,fetchWithBlacklist:()=>li,getBearerToken:()=>Qv,getCookie:()=>zt,getDispatcher:()=>Gv,getSessionExpiryDate:()=>tp,getSessionExpirySeconds:()=>Su,getWorkspaceIdFromCtx:()=>pn,gunzipFromBase64:()=>Kv,gzipToBase64:()=>qv,hasCircularStructure:()=>Pv,hash:()=>df,isAudited:()=>sp,isClient:()=>Nv,isPublicApiRequest:()=>bv,isServingApp:()=>Rv,isServingBuilder:()=>Cv,isServingBuilderPreview:()=>Dv,isValidInternalAPIKey:()=>Xs,microsoftDatasourceCreationCacheKey:()=>uN,newid:()=>X,openJwt:()=>_u,setAuthCookie:()=>vv,setCookie:()=>np,time:()=>Uv,timeout:()=>ip,urlHasProtocol:()=>Lv,validEmail:()=>op});var gT=require("uuid");function X(){return(0,gT.v4)().replace(/-/g,"")}s(X,"newid");var lf=require("bcrypt"),ux=E.SALT_ROUNDS||10;async function df(t){let e=await lf.genSalt(ux);return lf.hash(t,e)}s(df,"hash");async function ff(t,e){return lf.compare(t,e)}s(ff,"compare");var Au=W(require("jsonwebtoken"));var le={};P(le,{DEFAULT_TENANT_ID:()=>ce,baseGlobalDBName:()=>Ws,doInAutomationContext:()=>Nx,doInContext:()=>vf,doInEnvironmentContext:()=>Vx,doInFeatureFlagOverrideContext:()=>Ff,doInIPContext:()=>Lf,doInIdentityContext:()=>Us,doInLicenseContext:()=>Lx,doInScimContext:()=>qx,doInSelfHostTenantUsingCloud:()=>Px,doInTenant:()=>be,doInWorkspaceContext:()=>Mx,doInWorkspaceMigrationContext:()=>Bx,ensureSnippetContext:()=>NT,getAuditLogDBName:()=>xT,getAuditLogsDB:()=>Qx,getAutomationId:()=>Nf,getCurrentContext:()=>dn,getDevWorkspaceDB:()=>Hx,getDevWorkspaceId:()=>Gx,getEnvironmentVariables:()=>Kx,getFeatureFlagOverrides:()=>Mf,getFeatureFlags:()=>Uf,getGlobalDB:()=>z,getGlobalDBName:()=>ln,getIP:()=>Pf,getIdentity:()=>Qt,getLicense:()=>Ux,getOrThrowWorkspaceId:()=>Wx,getPlatformURL:()=>xf,getProdWorkspaceDB:()=>jx,getProdWorkspaceId:()=>$x,getScimDBName:()=>Dx,getSelfHostCloudDB:()=>kx,getTableForView:()=>Yx,getTenantIDFromWorkspaceID:()=>ni,getTenantId:()=>V,getWorkspaceDB:()=>ii,getWorkspaceId:()=>Fe,identity:()=>Ls,isDevWorkspace:()=>PT,isMultiTenant:()=>Sr,isProdWorkspace:()=>Jx,isScim:()=>Et,isSelfHostUsingCloud:()=>nu,isTenancyEnabled:()=>xx,isTenantIdSet:()=>bx,setFeatureFlags:()=>kf,setTableForView:()=>zx});var Ls={};P(Ls,{doInAccountContext:()=>cx,doInIdentityContext:()=>hf,doInUserContext:()=>gf,getAccountUserId:()=>ET,getIdentity:()=>mf});function mf(){return Qt()}s(mf,"getIdentity");function hf(t,e){return Us(t,e)}s(hf,"doInIdentityContext");function gf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return hf(n,r)}s(gf,"doInUserContext");function cx(t,e){let r=ET(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return hf(i,e)}s(cx,"doInAccountContext");function ET(t){let e;return jo(t)?e=t.budibaseUserId:e=t.accountId,e}s(ET,"getAccountUserId");var vt=s(()=>za(E.COUCH_DB_URL,{user:E.COUCH_DB_USERNAME||"",password:E.COUCH_DB_PASSWORD||""}),"getCouchInfo"),za=s((t,e)=>{let r=Ef(t),n,i;if(r.auth?.username)n=r.auth.username;else if(e?.user)n=e?.user;else throw new Error("CouchDB username not set");if(r.auth?.password)i=r.auth.password;else if(e?.password)i=e?.password;else throw new Error("CouchDB password not set");let o=Buffer.from(`${n}:${i}`).toString("base64"),a=E.COUCH_DB_SQL_URL;if(!a&&r.url){let u=new URL(r.url);u.port=E.COUCH_DB_SQS_PORT,a=u.toString().replace(/\/$/,"")}return{url:r.url,sqlUrl:Ef(a).url,auth:{username:n,password:i},cookie:`Basic ${o}`}},"parseCouchConnection"),Ef=s((t=E.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var CT=W(require("@budibase/nano"));var yT=W(require("node-fetch"));function Ja(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(Ja,"checkSlashesInUrl");async function TT(t,e="GET",r){let{url:n,cookie:i}=vt(),o=`${n}/${t}`;return await ks({url:o,cookie:i,method:e,body:r})}s(TT,"directCouchCall");async function ks({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,yT.default)(Ja(encodeURI(t)),i)}s(ks,"directCouchUrlCall");async function yf(t,e="GET",r){let n=await TT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(yf,"directCouchQuery");var cn=W(require("pouchdb"));var ST,AT=!1,Tf=s((t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:s((i,o)=>(o.headers.set("Authorization",r),cn.default.fetch(i,o)),"fetch")};if(t.inMemory){let i=require("pouchdb-adapter-memory");cn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");cn.default.plugin(i.plugin),cn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");cn.default.plugin(i)}return cn.default.defaults(n)},"getPouch");function Xa(t){ST=Tf(t),AT=!0}s(Xa,"init");var lx=s(()=>{if(!AT)throw new Error("init has not been called")},"checkInitialised");function it(t,e){lx();let r=new ST(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(it,"getPouchDB");async function Ms(t){if(!(!t||E.isTest()))try{return await t.close()}catch{}}s(Ms,"closePouchDB");var de=W(require("dd-trace"));var ei=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return de.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return de.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return de.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return de.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return de.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return de.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return de.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return de.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return de.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return de.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return de.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return de.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return de.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return de.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return de.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return de.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return de.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return de.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return de.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return de.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return de.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Cf={};P(Cf,{breakExternalTableId:()=>_f,breakRowIdField:()=>Ox,buildExternalTableId:()=>Ex,convertRowId:()=>_x,encodeTableId:()=>yx,encodeViewId:()=>Tx,extractDate:()=>If,generateRowIdField:()=>Sx,getNativeSql:()=>ti,isExternalTable:()=>Af,isExternalTableID:()=>Za,isInternalTableID:()=>gx,isRowId:()=>Ax,isValidFilter:()=>tu,isValidISODateString:()=>eu,isValidISODateStringWithoutTimezone:()=>Of,isValidTime:()=>wf,sqlLog:()=>Fs,validateManyToMany:()=>Rf});var Sf=`${"_"}${"_"}`,OT=/^\[.*]$/g,dx=encodeURIComponent(" "),fx=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,px=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,mx=/(\d{4}-\d{2}-\d{2})/,hx=/^\d{1,2}:\d{2}(?:\.\d{1,6}|:\d{2}(?:\.\d{1,6})?)?$/;function Za(t){return t.startsWith("datasource_")}s(Za,"isExternalTableID");function gx(t){return!Za(t)}s(gx,"isInternalTableID");function ti(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}s(ti,"getNativeSql");function Af(t){return t?.sourceId&&t.sourceId.includes("datasource_")&&t?.sourceId!==Pn||t?.sourceType==="external"?!0:!!(t?._id&&Za(t._id))}s(Af,"isExternalTable");function Ex(t,e){return`${t}${Sf}${encodeURIComponent(e)}`}s(Ex,"buildExternalTableId");function yx(t){return Za(t)?encodeURIComponent(t):t}s(yx,"encodeTableId");function Tx(t){return encodeURIComponent(t)}s(Tx,"encodeViewId");function _f(t){let e=t.split(Sf),r=e.shift(),n=e.join(Sf);if(n.includes(dx)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(_f,"breakExternalTableId");function Sx(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}s(Sx,"generateRowIdField");function Ax(t){return Array.isArray(t)||typeof t=="string"&&t.match(OT)!=null}s(Ax,"isRowId");function _x(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(OT)!=null?t.substring(1,t.length-1):t}s(_x,"convertRowId");function Ox(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}s(Ox,"breakRowIdField");function eu(t){let e=t.trim();if(!fx.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(eu,"isValidISODateString");function Of(t){let e=t.trim();if(!px.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Of,"isValidISODateStringWithoutTimezone");function If(t){let e=t.match(mx);if(e)return e[0]}s(If,"extractDate");function tu(t){return t!=null&&t!==""}s(tu,"isValidFilter");function wf(t){return hx.test(t)}s(wf,"isValidTime");function Fs(t,e,r){if(!E.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Fs,"sqlLog");function Ix(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(Ix,"isValidManyToManyRelationship");function Rf(t){if(Ix(t))return t}s(Rf,"validateManyToMany");var IT="Database does not exist.";function wT(t){return(0,CT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(wT,"buildNano");var Tr=class extends Error{static{s(this,"CouchDBError")}constructor(e,r){super(e);let n=r.status||r.statusCode||500;this.status=n,this.statusCode=n,this.reason=r.reason||"Unknown",this.name=r.name,this.errid=r.errid||"Unknown",this.description=r.description||"Unknown",this.error=r.error||"Not found"}};function wx(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new ri(t,r,e);return new ei(n)}s(wx,"DatabaseWithConnection");var ri=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=za(n),this.instanceNano=wT(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=vt();t.nano=wT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await ks({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Tr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===IT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Tr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Tr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(yh(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new Tr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=X()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===IT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ja(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await ks(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new Tr("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${xt}`;return Fs("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(xt)){let e=await this.get(xt);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new Tr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return it(this.name).dump(e,r)}async load(e){return it(this.name).load(e)}async createIndex(e){return it(this.name).createIndex(e)}async deleteIndex(e){return it(this.name).deleteIndex(e)}async getIndexes(){return it(this.name).getIndexes()}};function De(t,e){return new ei(new ri(t,e))}s(De,"getDB");async function je(t,e,r){let n=De(t,r);return await e(n)}s(je,"doWithDB");async function Df(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await yf(e)}s(Df,"directCouchAllDbs");var bf="No app provided";function Nt(t){if(!t)throw bf;return t.startsWith(nt)}s(Nt,"isDevWorkspaceID");function Rx(t){if(!t)throw bf;return t.startsWith(rt)&&!Nt(t)}s(Rx,"isProdWorkspaceID");function Bs(t){if(!t)throw bf;return Nt(t.appId)}s(Bs,"isDevWorkspace");function ru(t){if(!t||t.startsWith(nt))return t;let e=t.split(rt);e.shift();let r=e.join(rt);return`${nt}${r}`}s(ru,"getDevWorkspaceID");function He(t){if(!t||!t.startsWith(nt))return t;let e=t.split(nt);e.shift();let r=e.join(nt);return`${rt}${r}`}s(He,"getProdWorkspaceID");var DT=require("async_hooks");var ge=class t{static{s(this,"Context")}static{this.storage=new DT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var bT=null;function ln(t){return t||(t=V()),Ws(t)}s(ln,"getGlobalDBName");function xT(t){return t||(t=V()),t===ce?pe.AUDIT_LOGS.name:`${t}${"_"}${pe.AUDIT_LOGS.name}`}s(xT,"getAuditLogDBName");function Dx(t){return t||(t=V()),t===ce?pe.SCIM_LOGS.name:`${t}${"_"}${pe.SCIM_LOGS.name}`}s(Dx,"getScimDBName");function Ws(t){return!t||t===ce?pe.GLOBAL.name:`${t}${"_"}${pe.GLOBAL.name}`}s(Ws,"baseGlobalDBName");function xf(){return E.PLATFORM_URL}s(xf,"getPlatformURL");function Sr(){return!!E.MULTI_TENANCY}s(Sr,"isMultiTenant");function bx(){return!!ge.get()?.tenantId}s(bx,"isTenantIdSet");function xx(){return E.MULTI_TENANCY}s(xx,"isTenancyEnabled");function ni(t){if(!t)return;if(!Sr())return ce;let e=t.split("_"),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(ni,"getTenantIDFromWorkspaceID");function vx(t){let e;try{e=ge.get()}catch{e={}}return e={...e,...t},e}s(vx,"updateContext");async function gt(t,e){Fx();let r=vx(t);return ge.run(r,e)}s(gt,"newContext");async function Nx(t){return await NT(),await gt({tenantId:ni(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(Nx,"doInAutomationContext");async function vf(t,e){let r=ni(t);return gt({tenantId:r,appId:t},e)}s(vf,"doInContext");async function be(t,e){return E.MULTI_TENANCY||(t=t||ce),gt(t?{tenantId:t}:{},e)}s(be,"doInTenant");async function Px(t,e){return gt({tenantId:t,isSelfHostUsingCloud:!0},e)}s(Px,"doInSelfHostTenantUsingCloud");async function Lx(t,e){return gt({license:t},e)}s(Lx,"doInLicenseContext");function Ux(){return ge.get()?.license}s(Ux,"getLicense");function nu(){return!!ge.get()?.isSelfHostUsingCloud}s(nu,"isSelfHostUsingCloud");function kx(){let t=ge.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return De(pe.SELF_HOST_CLOUD.name)}s(kx,"getSelfHostCloudDB");async function Mx(t,e){return vT(t,e)}s(Mx,"doInWorkspaceContext");async function vT(t,e,r){if(!t)throw new Error("workspaceId is required");let n=ni(t),i={appId:t,...r};return n&&(i.tenantId=n),gt(i,e)}s(vT,"_doInWorkspaceContext");async function Us(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),gt(r,e)}s(Us,"doInIdentityContext");function Fx(){if(ge.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(Fx,"guardMigration");async function Bx(t,e){return vT(t,e,{isMigrating:!0})}s(Bx,"doInWorkspaceMigrationContext");function Qt(){try{return ge.get()?.identity}catch{}}s(Qt,"getIdentity");function V(){if(!Sr())return ce;let e=ge.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(V,"getTenantId");function Nf(){return ge.get()?.automationId}s(Nf,"getAutomationId");function Fe(){let e=ge.get()?.appId;return!e&&E.isTest()&&bT?bT:e}s(Fe,"getWorkspaceId");function Wx(){let t=Fe();if(!t)throw new Error("Workspace id not set");return t}s(Wx,"getOrThrowWorkspaceId");function Pf(){return ge.get()?.ip}s(Pf,"getIP");var Gx=s(()=>{let t=Fe();if(!t)throw new Error("Could not get workspaceId");return ru(t)},"getDevWorkspaceId"),$x=s(()=>{let t=Fe();if(!t)throw new Error("Could not get workspaceId");return He(t)},"getProdWorkspaceId");function Vx(t,e){if(!t)throw new Error("Must supply environment variables.");return gt({environmentVariables:t},e)}s(Vx,"doInEnvironmentContext");function qx(t){return gt({isScim:!0},t)}s(qx,"doInScimContext");function Lf(t,e){return gt({ip:t},e)}s(Lf,"doInIPContext");async function NT(){let t=dn();if(!t||t.snippets)return;let e,r=ii();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(NT,"ensureSnippetContext");function Kx(){let t=ge.get();return t.environmentVariables?t.environmentVariables:null}s(Kx,"getEnvironmentVariables");function z(){let t=ge.get();if(!t||E.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return De(Ws(t?.tenantId))}s(z,"getGlobalDB");function Qx(){if(!V())throw new Error("No tenant ID found - cannot open audit log DB");return De(xT())}s(Qx,"getAuditLogsDB");function ii(t){let e=Fe();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(nu())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return De(e,t)}s(ii,"getWorkspaceDB");function jx(t){let e=Fe();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return De(He(e),t)}s(jx,"getProdWorkspaceDB");function Hx(t){let e=Fe();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return De(ru(e),t)}s(Hx,"getDevWorkspaceDB");function Et(){return!!ge.get()?.isScim}s(Et,"isScim");function dn(){try{return ge.get()}catch{return}}s(dn,"getCurrentContext");function Uf(t){let e=dn();if(e)return e.featureFlagCache?.[t]}s(Uf,"getFeatureFlags");function kf(t,e){let r=dn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(kf,"setFeatureFlags");function Mf(){return dn()?.featureFlagOverrides||{}}s(Mf,"getFeatureFlagOverrides");async function Ff(t,e){return await gt({featureFlagOverrides:t},e)}s(Ff,"doInFeatureFlagOverrideContext");function Yx(t){let e=dn();if(e)return e.viewToTableCache?.[t]}s(Yx,"getTableForView");function zx(t,e){let r=dn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(zx,"setTableForView");function PT(){let t=Fe();return Nt(t)}s(PT,"isDevWorkspace");function Jx(){return!PT()}s(Jx,"isProdWorkspace");var Ir={};P(Ir,{AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DatabaseImpl:()=>ri,DatabaseWithConnection:()=>wx,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,InternalTable:()=>It,QueryBuilder:()=>Yt,Replication:()=>DS,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt,baseGlobalDBName:()=>Ws,checkErrorCode:()=>NS,closePouchDB:()=>Ms,createApiKeyView:()=>_S,createNewUserEmailView:()=>SS,createPlatformAccountEmailView:()=>IS,createPlatformUserView:()=>wS,createUserAppView:()=>AS,createView:()=>ci,dbExists:()=>mv,directCouchAllDbs:()=>Df,directCouchCall:()=>TT,directCouchQuery:()=>yf,directCouchUrlCall:()=>ks,doWithDB:()=>je,fullSearch:()=>Tv,generateAIConfigID:()=>iS,generateAgentID:()=>HT,generateAgentKnowledgeSourceConnectionID:()=>tS,generateAgentKnowledgeSourceSyncStateID:()=>eS,generateAgentRequestID:()=>JT,generateAgentToolSourceID:()=>ZT,generateAppUserID:()=>Eu,generateChatAppID:()=>YT,generateChatConversationID:()=>zT,generateDevInfoID:()=>KT,generateGlobalUserID:()=>ai,generateKnowledgeBaseFileID:()=>rS,generateKnowledgeBaseID:()=>cS,generateOAuth2LogID:()=>jT,generatePluginID:()=>QT,generateProjectID:()=>uS,generateRoleID:()=>Kf,generateRowID:()=>qf,generateTableID:()=>WT,generateTemplateID:()=>qT,generateUserMetadataID:()=>$T,generateWorkspaceAppID:()=>oS,generateWorkspaceFavouriteID:()=>aS,generateWorkspaceID:()=>BT,getAgentTestRunID:()=>XT,getAgentTestSuiteID:()=>Qf,getAllDbs:()=>TS,getAllWorkspaces:()=>Ks,getCouchInfo:()=>vt,getDB:()=>De,getDevWorkspaceID:()=>ru,getDevWorkspaceIDs:()=>fv,getDocParams:()=>Pt,getGlobalDBName:()=>ln,getGlobalIDFromUserMetadataID:()=>VT,getGlobalUserParams:()=>fn,getLiteLLMKeyID:()=>sS,getOAuth2ConfigParams:()=>mS,getPluginParams:()=>pS,getPouch:()=>Tf,getPouchDB:()=>it,getProdWorkpaceIDs:()=>dv,getProdWorkspaceID:()=>He,getProjectParams:()=>ES,getQueryIndex:()=>lS,getRoleParams:()=>yu,getRowParams:()=>jf,getStartEndKeyURL:()=>qs,getTemplateParams:()=>fS,getUrlInfo:()=>Ef,getUserMetadataParams:()=>dS,getUsersByWorkspaceParams:()=>ui,getWorkspaceAppParams:()=>hS,getWorkspaceFavouriteParams:()=>gS,getWorkspacesByIDs:()=>lv,init:()=>Xa,isDevWorkspace:()=>Bs,isDevWorkspaceID:()=>Nt,isDocumentConflictError:()=>Av,isGlobalUserID:()=>GT,isKnowledgeBaseFileID:()=>nS,isProdWorkspaceID:()=>Rx,isSameWorkspaceID:()=>pv,isType:()=>yS,paginatedSearch:()=>yv,pagination:()=>Yf,parseCouchConnection:()=>za,prefixRoleID:()=>jt,queryGlobalView:()=>Ht,queryGlobalViewRaw:()=>Hs,queryPlatformView:()=>js,queryView:()=>Jf,queryViewRaw:()=>Qs,removeKeyNumbering:()=>Ys,searchIndexes:()=>Zf});var Vs={};P(Vs,{WorkspaceState:()=>Vf,getWorkspaceMetadata:()=>gu,invalidateWorkspaceMetadata:()=>av});var _r={};P(_r,{getCacheClient:()=>Wf,getDocWritethroughClient:()=>nv,getInviteListClient:()=>Gs,getLockClient:()=>$f,getOpenapiImportSpecsClient:()=>tv,getPasswordResetClient:()=>$s,getSessionClient:()=>Ar,getSocketClient:()=>rv,getUserClient:()=>oi,getWorkspaceClient:()=>hu,getWritethroughClient:()=>Gf,init:()=>st,shutdown:()=>MT});var su=W(require("ioredis"));var iu=require("dd-trace"),UT=require("lodash");var LT;if(E.MOCK_REDIS)try{LT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function Xx(t=0){return await iu.tracer.trace("Redis.init",async e=>{if(E.MOCK_REDIS)return e.addTags({mock:!0}),new LT(un());let r;if(E.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=Ha();r=new su.Cluster([{host:n,port:i}],uf())}else r=new su.default(un());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}s(Xx,"init");function Zx(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",o=>o.forEach(a=>i.add(a))),t.on("error",o=>n(o)),t.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let u=await e.get(a);return u&&(u=JSON.parse(u)),{key:cf(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(Zx,"promisifyStream");function ev(t){return t.isCluster}s(ev,"isCluster");var Bf=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await iu.tracer.trace("RedisWrapper.init",async n=>{let i=await Xx(r);return r&&!E.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return iu.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Zn}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${Zn}${e}`;let n;ev(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await Zx(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(e){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:e}),this.client.keys(this.prefixed(e))))}async exists(e){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:e}),await this.client.exists(this.prefixed(e))))}async get(e){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:e});let n=await this.client.get(this.prefixed(e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}})}async bulkGet(e){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:e.length}),e.length===0)return{};let n=await this.client.mget(e.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,UT.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e}),await this.client.eval(`
|
|
4
|
+
`+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,o)=>o.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:o,from:a=[],originalValue:u=e,strict:c=this.spec.strict,abortEarly:l=this.spec.abortEarly}=r,d=e;c||(d=this._cast(d,Xe({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},g=[];this._typeError&&g.push(this._typeError),this._whitelistError&&g.push(this._whitelistError),this._blacklistError&&g.push(this._blacklistError),(0,cg.default)({args:f,value:d,path:o,sync:i,tests:g,endEarly:l},m=>{if(m)return void n(m,d);(0,cg.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(Xe({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((o,a)=>i._validate(e,r,(u,c)=>{u?a(u):o(c)}))}validateSync(e,r){let n=this.resolve(Xe({},r,{value:e})),i;return n._validate(e,Xe({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(dg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(dg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,ug.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Un.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Un.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Un.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,aa.default)(r),o=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(a=>!(a.OPTIONS.name===r.name&&(o||a.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,Bw.default)(e).map(o=>new Mw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new kw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,aa.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Un.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,aa.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let o=this.schema._whitelist;return o.has(i,this.resolve)?!0:this.createError({params:{values:o.toArray().join(", ")}})}}),n}notOneOf(e,r=Un.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,aa.default)({message:r,name:"notOneOf",test(i){let o=this.schema._blacklist;return o.has(i,this.resolve)?this.createError({params:{values:o.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(o=>({name:o.OPTIONS.name,params:o.OPTIONS.params})).filter((o,a,u)=>u.findIndex(c=>c.name===o.name)===a)}}};ua.default=dt;dt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])dt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,Fw.getIn)(this,e,r,n.context);return a[t](i&&i[o],Xe({},n,{parent:i,path:e}))};for(let t of["equals","is"])dt.prototype[t]=dt.prototype.oneOf;for(let t of["not","nope"])dt.prototype[t]=dt.prototype.notOneOf;dt.prototype.optional=dt.prototype.notRequired});var mg=Q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=pg;Zi.default=void 0;var Ww=Gw(Bt());function Gw(t){return t&&t.__esModule?t:{default:t}}s(Gw,"_interopRequireDefault");var Sl=Ww.default,$w=Sl;Zi.default=$w;function pg(){return new Sl}s(pg,"create");pg.prototype=Sl.prototype});var kn=Q(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.default=void 0;var Vw=s(t=>t==null,"_default");ca.default=Vw});var Tg=Q(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.create=yg;ts.default=void 0;var qw=Eg(Bt()),hg=Mt(),gg=Eg(kn());function Eg(t){return t&&t.__esModule?t:{default:t}}s(Eg,"_interopRequireDefault");function yg(){return new es}s(yg,"create");var es=class extends qw.default{static{s(this,"BooleanSchema")}constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,gg.default)(r)||r===!0}})}isFalse(e=hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,gg.default)(r)||r===!1}})}};ts.default=es;yg.prototype=es.prototype});var _g=Q(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.create=Ag;ns.default=void 0;var Ct=Mt(),Wt=Sg(kn()),Kw=Sg(Bt());function Sg(t){return t&&t.__esModule?t:{default:t}}s(Sg,"_interopRequireDefault");var Qw=/^((([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,jw=/^((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,Hw=/^(?:[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,Yw=s(t=>(0,Wt.default)(t)||t===t.trim(),"isTrimmed"),zw={}.toString();function Ag(){return new rs}s(Ag,"create");var rs=class extends Kw.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===zw?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(Qw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Ct.string.url){return this.matches(jw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Ct.string.uuid){return this.matches(Hw,{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:Yw})}lowercase(e=Ct.string.lowercase){return this.transform(r=>(0,Wt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:s(r=>(0,Wt.default)(r)||r===r.toLowerCase(),"test")})}uppercase(e=Ct.string.uppercase){return this.transform(r=>(0,Wt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:s(r=>(0,Wt.default)(r)||r===r.toUpperCase(),"test")})}};ns.default=rs;Ag.prototype=rs.prototype});var wg=Q(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});ss.create=Ig;ss.default=void 0;var jr=Mt(),Hr=Og(kn()),Jw=Og(Bt());function Og(t){return t&&t.__esModule?t:{default:t}}s(Og,"_interopRequireDefault");var Xw=s(t=>t!=+t,"isNaN");function Ig(){return new is}s(Ig,"create");var is=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"&&!Xw(e)}min(e,r=jr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Hr.default)(n)||n>=this.resolve(e)}})}max(e,r=jr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Hr.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=jr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Hr.default)(n)||n<this.resolve(e)}})}moreThan(e,r=jr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Hr.default)(n)||n>this.resolve(e)}})}positive(e=jr.number.positive){return this.moreThan(0,e)}negative(e=jr.number.negative){return this.lessThan(0,e)}integer(e=jr.number.integer){return this.test({name:"integer",message:e,test:s(r=>(0,Hr.default)(r)||Number.isInteger(r),"test")})}truncate(){return this.transform(e=>(0,Hr.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Hr.default)(i)?i:Math[e](i))}};ss.default=is;Ig.prototype=is.prototype});var Rg=Q(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});Al.default=eR;var Zw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function eR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Zw.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(eR,"parseIsoDate")});var bg=Q(os=>{"use strict";Object.defineProperty(os,"__esModule",{value:!0});os.create=Ol;os.default=void 0;var tR=la(Rg()),Cg=Mt(),Dg=la(kn()),rR=la(Qr()),nR=la(Bt());function la(t){return t&&t.__esModule?t:{default:t}}s(la,"_interopRequireDefault");var _l=new Date(""),iR=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function Ol(){return new Mn}s(Ol,"create");var Mn=class extends nR.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,tR.default)(e),isNaN(e)?_l:new Date(e))})})}_typeCheck(e){return iR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(rR.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=Cg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Dg.default)(i)||i>=this.resolve(n)}})}max(e,r=Cg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Dg.default)(i)||i<=this.resolve(n)}})}};os.default=Mn;Mn.INVALID_DATE=_l;Ol.prototype=Mn.prototype;Ol.INVALID_DATE=_l});var vg=Q((DW,Il)=>{"use strict";Il.exports=function(t){return xg(sR(t),t)};Il.exports.array=xg;function xg(t,e){var r=t.length,n=new Array(r),i={},o=r,a=oR(e),u=aR(t);for(e.forEach(function(l){if(!u.has(l[0])||!u.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||c(t[o],o,new Set);return n;function c(l,d,f){if(f.has(l)){var g;try{g=", node was:"+JSON.stringify(l)}catch{g=""}throw new Error("Cyclic dependency"+g)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var m=a.get(l)||new Set;if(m=Array.from(m),d=m.length){f.add(l);do{var y=m[--d];c(y,u.get(y),f)}while(d);f.delete(l)}n[--r]=l}}}s(xg,"toposort");function sR(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(sR,"uniqueNodes");function oR(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(oR,"makeOutgoingEdges");function aR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(aR,"makeNodesHash")});var Ng=Q(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});wl.default=pR;var uR=da(require("lodash/has")),cR=da(vg()),lR=Yi(),dR=da(Qr()),fR=da(Ln());function da(t){return t&&t.__esModule?t:{default:t}}s(da,"_interopRequireDefault");function pR(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,lR.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,uR.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),dR.default.isRef(a)&&a.isSibling?i(a.path,o):(0,fR.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return cR.default.array(n,r).reverse()}s(pR,"sortFields")});var Lg=Q(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.default=mR;function Pg(t,e){let r=1/0;return t.some((n,i)=>{var o;if(((o=e.path)==null?void 0:o.indexOf(n))!==-1)return r=i,!0}),r}s(Pg,"findIndex");function mR(t){return(e,r)=>Pg(t,e)-Pg(t,r)}s(mR,"sortByKeyOrder")});var Gg=Q(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.create=Wg;us.default=void 0;var Ug=Dt(require("lodash/has")),kg=Dt(require("lodash/snakeCase")),hR=Dt(require("lodash/camelCase")),gR=Dt(require("lodash/mapKeys")),ER=Dt(require("lodash/mapValues")),yR=Yi(),Mg=Mt(),TR=Dt(Ng()),Bg=Dt(Lg()),SR=Dt(ra()),AR=Dt(qr()),Cl=Dt(Bt());function Dt(t){return t&&t.__esModule?t:{default:t}}s(Dt,"_interopRequireDefault");function Fn(){return Fn=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Fn.apply(this,arguments)}s(Fn,"_extends");var Fg=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function _R(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(_R,"unknown");var OR=(0,Bg.default)([]),as=class extends Cl.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=OR,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(s(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null},"coerce")),e&&this.shape(e)})}_typeCheck(e){return Fg(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let o=this.fields,a=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,u=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),c={},l=Fn({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let g=o[f],m=(0,Ug.default)(i,f);if(g){let y,h=i[f];l.path=(r.path?`${r.path}.`:"")+f,g=g.resolve({value:h,context:r.context,parent:c});let p="spec"in g?g.spec:void 0,T=p?.strict;if(p?.strip){d=d||f in i;continue}y=!r.__validating||!T?g.cast(i[f],l):i[f],y!==void 0&&(c[f]=y)}else m&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!AR.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!Fg(f)){n(i[0]||null,f);return}u=u||f;let g=this._nodes.map(m=>(y,h)=>{let p=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(f[m],Fn({},r,{path:p,from:a,strict:!0,parent:f,originalValue:u[m]}),h);return}h(null)});(0,SR.default)({sync:o,tests:g,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Fn({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,o]of Object.entries(this.fields)){let a=n[i];a===void 0?n[i]=o:a instanceof Cl.default&&o instanceof Cl.default&&(n[i]=o.concat(a))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,Bg.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let o=r.map(([a,u])=>`${a}-${u}`);n._excludedEdges=n._excludedEdges.concat(o)}return n._nodes=(0,TR.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,yR.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,Ug.default)(o,e)&&(a=Fn({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=Mg.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let o=_R(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Mg.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,gR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(hR.default)}snakeCase(){return this.transformKeys(kg.default)}constantCase(){return this.transformKeys(e=>(0,kg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,ER.default)(this.fields,r=>r.describe()),e}};us.default=as;function Wg(t){return new as(t)}s(Wg,"create");Wg.prototype=as.prototype});var Vg=Q(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.create=$g;ls.default=void 0;var Dl=Bn(kn()),IR=Bn(Ln()),wR=Bn(Hi()),bl=Mt(),RR=Bn(ra()),CR=Bn(qr()),DR=Bn(Bt());function Bn(t){return t&&t.__esModule?t:{default:t}}s(Bn,"_interopRequireDefault");function fa(){return fa=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},fa.apply(this,arguments)}s(fa,"_extends");function $g(t){return new cs(t)}s($g,"create");var cs=class extends DR.default{static{s(this,"ArraySchema")}constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,o=n.map((a,u)=>{let c=this.innerType.cast(a,fa({},r,{path:`${r.path||""}[${u}]`}));return c!==a&&(i=!0),c});return i?o:n}_validate(e,r={},n){var i,o;let a=[],u=r.sync,c=r.path,l=this.innerType,d=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(o=r.recursive)!=null?o:this.spec.recursive,g=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,y)=>{if(m){if(!CR.default.isError(m)||d)return void n(m,y);a.push(m)}if(!f||!l||!this._typeCheck(y)){n(a[0]||null,y);return}g=g||y;let h=new Array(y.length);for(let p=0;p<y.length;p++){let T=y[p],A=`${r.path||""}[${p}]`,_=fa({},r,{path:A,strict:!0,parent:y,index:p,originalValue:g[p]});h[p]=(I,O)=>l.validate(T,_,O)}(0,RR.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,IR.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,wR.default)(e));return r.innerType=e,r}length(e,r=bl.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Dl.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||bl.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Dl.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||bl.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Dl.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,o)=>!e(n,i,o):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};ls.default=cs;$g.prototype=cs.prototype});var qg=Q(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});ds.create=vR;ds.default=void 0;var bR=xR(Ln());function xR(t){return t&&t.__esModule?t:{default:t}}s(xR,"_interopRequireDefault");function vR(t){return new pa(t)}s(vR,"create");var pa=class{static{s(this,"Lazy")}constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,bR.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)}},NR=pa;ds.default=NR});var Kg=Q(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});xl.default=UR;var PR=LR(Mt());function LR(t){return t&&t.__esModule?t:{default:t}}s(LR,"_interopRequireDefault");function UR(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{PR.default[e][r]=t[e][r]})})}s(UR,"setLocale")});var Nl=Q(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});ie.addMethod=$R;Object.defineProperty(ie,"MixedSchema",{enumerable:!0,get:s(function(){return Qg.default},"get")});Object.defineProperty(ie,"mixed",{enumerable:!0,get:s(function(){return Qg.create},"get")});Object.defineProperty(ie,"BooleanSchema",{enumerable:!0,get:s(function(){return vl.default},"get")});Object.defineProperty(ie,"bool",{enumerable:!0,get:s(function(){return vl.create},"get")});Object.defineProperty(ie,"boolean",{enumerable:!0,get:s(function(){return vl.create},"get")});Object.defineProperty(ie,"StringSchema",{enumerable:!0,get:s(function(){return jg.default},"get")});Object.defineProperty(ie,"string",{enumerable:!0,get:s(function(){return jg.create},"get")});Object.defineProperty(ie,"NumberSchema",{enumerable:!0,get:s(function(){return Hg.default},"get")});Object.defineProperty(ie,"number",{enumerable:!0,get:s(function(){return Hg.create},"get")});Object.defineProperty(ie,"DateSchema",{enumerable:!0,get:s(function(){return Yg.default},"get")});Object.defineProperty(ie,"date",{enumerable:!0,get:s(function(){return Yg.create},"get")});Object.defineProperty(ie,"ObjectSchema",{enumerable:!0,get:s(function(){return zg.default},"get")});Object.defineProperty(ie,"object",{enumerable:!0,get:s(function(){return zg.create},"get")});Object.defineProperty(ie,"ArraySchema",{enumerable:!0,get:s(function(){return Jg.default},"get")});Object.defineProperty(ie,"array",{enumerable:!0,get:s(function(){return Jg.create},"get")});Object.defineProperty(ie,"ref",{enumerable:!0,get:s(function(){return kR.create},"get")});Object.defineProperty(ie,"lazy",{enumerable:!0,get:s(function(){return MR.create},"get")});Object.defineProperty(ie,"ValidationError",{enumerable:!0,get:s(function(){return FR.default},"get")});Object.defineProperty(ie,"reach",{enumerable:!0,get:s(function(){return BR.default},"get")});Object.defineProperty(ie,"isSchema",{enumerable:!0,get:s(function(){return Xg.default},"get")});Object.defineProperty(ie,"setLocale",{enumerable:!0,get:s(function(){return WR.default},"get")});Object.defineProperty(ie,"BaseSchema",{enumerable:!0,get:s(function(){return GR.default},"get")});var Qg=Yr(mg()),vl=Yr(Tg()),jg=Yr(_g()),Hg=Yr(wg()),Yg=Yr(bg()),zg=Yr(Gg()),Jg=Yr(Vg()),kR=Qr(),MR=qg(),FR=fs(qr()),BR=fs(yl()),Xg=fs(Ln()),WR=fs(Kg()),GR=fs(Bt());function fs(t){return t&&t.__esModule?t:{default:t}}s(fs,"_interopRequireDefault");function Zg(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Zg=s(function(){return t},"_getRequireWildcardCache"),t}s(Zg,"_getRequireWildcardCache");function Yr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Zg();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=n?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}s(Yr,"_interopRequireWildcard");function $R(t,e,r){if(!t||!(0,Xg.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}s($R,"addMethod")});var eE=Q(Ll=>{"use strict";Object.defineProperty(Ll,"__esModule",{value:!0});var Pl=Ul();Ll.default=()=>{(0,Pl.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,Pl.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,Pl.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var Ul=Q(Ae=>{"use strict";var VR=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]})),qR=Ae&&Ae.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),KR=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)&&VR(e,t,r);return qR(e,t),e},QR=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=KR(Nl());Nl();var ps=ct(),jR=QR(eE());lt();var zr={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},tE=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),HR=s(t=>zr[t]?(0,ps.valid)(zr[t]):(0,ps.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=HR;var YR=s(()=>zr,"getOptionPresets");Ae.getOptionPresets=YR;var zR=s((t,e)=>{zr[t]=tE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=zR;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,jR.default)();let O;if(t.preset)if(typeof t.preset=="string"){if(!zr[t.preset])return(0,ps.err)([`Option preset ${t.preset} does not exist.`]);O=zr[t.preset]}else O=t.preset;else O=zr.default;let C=Object.assign(Object.assign({presetId:O.presetId,preset:O},{useSeconds:O.useSeconds,useYears:O.useYears,useAliases:(e=O.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:O.useBlankDay,allowOnlyOneBlankDayField:O.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=O.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=O.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=O.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=O.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=O.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=O.seconds.lowerLimit)!==null&&u!==void 0?u:O.seconds.minValue,upperLimit:(c=O.seconds.upperLimit)!==null&&c!==void 0?c:O.seconds.maxValue},minutes:{lowerLimit:(l=O.minutes.lowerLimit)!==null&&l!==void 0?l:O.minutes.minValue,upperLimit:(d=O.minutes.upperLimit)!==null&&d!==void 0?d:O.minutes.maxValue},hours:{lowerLimit:(f=O.hours.lowerLimit)!==null&&f!==void 0?f:O.hours.minValue,upperLimit:(g=O.hours.upperLimit)!==null&&g!==void 0?g:O.hours.maxValue},daysOfMonth:{lowerLimit:(m=O.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:O.daysOfMonth.minValue,upperLimit:(y=O.daysOfMonth.upperLimit)!==null&&y!==void 0?y:O.daysOfMonth.maxValue},months:{lowerLimit:(h=O.months.lowerLimit)!==null&&h!==void 0?h:O.months.minValue,upperLimit:(p=O.months.upperLimit)!==null&&p!==void 0?p:O.months.maxValue},daysOfWeek:{lowerLimit:(T=O.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:O.daysOfWeek.minValue,upperLimit:(A=O.daysOfWeek.upperLimit)!==null&&A!==void 0?A:O.daysOfWeek.maxValue},years:{lowerLimit:(_=O.years.lowerLimit)!==null&&_!==void 0?_:O.years.minValue,upperLimit:(I=O.years.upperLimit)!==null&&I!==void 0?I:O.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:tE.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(O.seconds.minValue).max(O.seconds.maxValue),upperLimit:x.number().min(O.seconds.minValue).max(O.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(O.minutes.minValue).max(O.minutes.maxValue),upperLimit:x.number().min(O.minutes.minValue).max(O.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(O.hours.minValue).max(O.hours.maxValue),upperLimit:x.number().min(O.hours.minValue).max(O.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(O.daysOfMonth.minValue).max(O.daysOfMonth.maxValue),upperLimit:x.number().min(O.daysOfMonth.minValue).max(O.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(O.months.minValue).max(O.months.maxValue),upperLimit:x.number().min(O.months.minValue).max(O.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(O.daysOfWeek.minValue).max(O.daysOfWeek.maxValue),upperLimit:x.number().min(O.daysOfWeek.minValue).max(O.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(O.years.minValue).max(O.years.maxValue),upperLimit:x.number().min(O.years.minValue).max(O.years.maxValue)}).required()}).required().validateSync(C,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ps.valid)(w)}catch(O){return(0,ps.err)(O.errors)}},"validateOptions");Ae.validateOptions=JR});var Rt=Q((ms,Ml)=>{"use strict";var Xr=ms&&ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ms,"__esModule",{value:!0});var Jr=ct(),XR=Xr(xh()),ZR=Xr(vh()),eC=Xr(Nh()),tC=Xr(Ph()),rC=Xr(Lh()),nC=Xr(Uh()),iC=Xr(kh()),sC=Ul();lt();var oC=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Jr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Jr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Jr.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,Jr.valid)(n)},"splitCronString"),kl=s((t,e={})=>{let r=(0,sC.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=oC(t,n);if(i.isError())return(0,Jr.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,XR.default)(o,n)),a.push((0,ZR.default)(o,n)),a.push((0,eC.default)(o,n)),a.push((0,tC.default)(o,n)),a.push((0,rC.default)(o,n)),a.push((0,nC.default)(o,n)),n.useYears&&a.push((0,iC.default)(o,n)),a.every(c=>c.isValid()))return(0,Jr.valid)(o);let u=[];return a.forEach(c=>{c.isError()&&c.getError().forEach(l=>{u.push(l)})}),u.forEach((c,l)=>{u[l]=`${c} (Input cron: '${t}')`}),(0,Jr.err)(u)},"cron");ms.default=kl;Ml.exports=kl;Ml.exports.default=kl});var vy=Q(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var $t=class extends Error{static{s(this,"LuxonError")}},jl=class extends $t{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Hl=class extends $t{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Yl=class extends $t{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},pr=class extends $t{static{s(this,"ConflictingSpecificationError")}},Aa=class extends $t{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends $t{static{s(this,"InvalidArgumentError")}},bt=class extends $t{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},N="numeric",mt="short",qe="long",_a={year:N,month:N,day:N},NE={year:N,month:mt,day:N},aC={year:N,month:mt,day:N,weekday:mt},PE={year:N,month:qe,day:N},LE={year:N,month:qe,day:N,weekday:qe},UE={hour:N,minute:N},kE={hour:N,minute:N,second:N},ME={hour:N,minute:N,second:N,timeZoneName:mt},FE={hour:N,minute:N,second:N,timeZoneName:qe},BE={hour:N,minute:N,hourCycle:"h23"},WE={hour:N,minute:N,second:N,hourCycle:"h23"},GE={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:mt},$E={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:qe},VE={year:N,month:N,day:N,hour:N,minute:N},qE={year:N,month:N,day:N,hour:N,minute:N,second:N},KE={year:N,month:mt,day:N,hour:N,minute:N},QE={year:N,month:mt,day:N,hour:N,minute:N,second:N},uC={year:N,month:mt,day:N,weekday:mt,hour:N,minute:N},jE={year:N,month:qe,day:N,hour:N,minute:N,timeZoneName:mt},HE={year:N,month:qe,day:N,hour:N,minute:N,second:N,timeZoneName:mt},YE={year:N,month:qe,day:N,weekday:qe,hour:N,minute:N,timeZoneName:qe},zE={year:N,month:qe,day:N,weekday:qe,hour:N,minute:N,second:N,timeZoneName:qe},hr=class{static{s(this,"Zone")}get type(){throw new bt}get name(){throw new bt}get ianaName(){return this.name}get isUniversal(){throw new bt}offsetName(e,r){throw new bt}formatOffset(e,r){throw new bt}offset(e){throw new bt}equals(e){throw new bt}get isValid(){throw new bt}},Fl=null,Ss=class t extends hr{static{s(this,"SystemZone")}static get instance(){return Fl===null&&(Fl=new t),Fl}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ay(e,r,n)}formatOffset(e,r){return Ts(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},zl=new Map;function cC(t){let e=zl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),zl.set(t,e)),e}s(cC,"makeDTF");var lC={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function dC(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(dC,"hackyOffset");function fC(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=lC[o];o==="era"?n[u]=a:H(u)||(n[u]=parseInt(a,10))}return n}s(fC,"partsOffset");var Bl=new Map,Vt=class t extends hr{static{s(this,"IANAZone")}static create(e){let r=Bl.get(e);return r===void 0&&Bl.set(e,r=new t(e)),r}static resetCache(){Bl.clear(),zl.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ay(e,r,n,this.name)}formatOffset(e,r){return Ts(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=cC(this.name),[i,o,a,u,c,l,d]=n.formatToParts?fC(n,r):dC(n,r);u==="BC"&&(i=-Math.abs(i)+1);let g=ba({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),m=+r,y=m%1e3;return m-=y>=0?y:1e3+y,(g-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},rE={};function pC(t,e={}){let r=JSON.stringify([t,e]),n=rE[r];return n||(n=new Intl.ListFormat(t,e),rE[r]=n),n}s(pC,"getCachedLF");var Jl=new Map;function Xl(t,e={}){let r=JSON.stringify([t,e]),n=Jl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Jl.set(r,n)),n}s(Xl,"getCachedDTF");var Zl=new Map;function mC(t,e={}){let r=JSON.stringify([t,e]),n=Zl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Zl.set(r,n)),n}s(mC,"getCachedINF");var ed=new Map;function hC(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=ed.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),ed.set(i,o)),o}s(hC,"getCachedRTF");var gs=null;function gC(){return gs||(gs=new Intl.DateTimeFormat().resolvedOptions().locale,gs)}s(gC,"systemLocale");var td=new Map;function JE(t){let e=td.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),td.set(t,e)),e}s(JE,"getCachedIntResolvedOptions");var rd=new Map;function EC(t){let e=rd.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...XE,...e}),rd.set(t,e)}return e}s(EC,"getCachedWeekInfo");function yC(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=Xl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=Xl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(yC,"parseLocaleString");function TC(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(TC,"intlConfigString");function SC(t){let e=[];for(let r=1;r<=12;r++){let n=ue.utc(2009,r,1);e.push(t(n))}return e}s(SC,"mapMonths");function AC(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(AC,"mapWeekdays");function ma(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(ma,"listStuff");function _C(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||JE(t.locale).numberingSystem==="latn"}s(_C,"supportsFastNumbers");var nd=class{static{s(this,"PolyNumberFormatter")}constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:o,...a}=n;if(!r||Object.keys(a).length>0){let u={useGrouping:!1,...n};n.padTo>0&&(u.minimumIntegerDigits=n.padTo),this.inf=mC(e,u)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):md(e,3);return he(r,this.padTo)}}},id=class{static{s(this,"PolyDateFormatter")}constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),u=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&Vt.create(u).valid?(i=u,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=Xl(r,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},sd=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&sy()&&(this.rtf=hC(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):VC(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},XE={firstDay:1,minimalDays:4,weekend:[6,7]},re=class t{static{s(this,"Locale")}static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,o=!1){let a=e||se.defaultLocale,u=a||(o?"en-US":gC()),c=r||se.defaultNumberingSystem,l=n||se.defaultOutputCalendar,d=ad(i)||se.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){gs=null,Jl.clear(),Zl.clear(),ed.clear(),td.clear(),rd.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,o){let[a,u,c]=yC(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=TC(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=_C(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,ad(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return ma(this,e,ly,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;let i=r?{month:e,day:"numeric"}:{month:e},o=r?"format":"standalone";if(!this.monthsCache[o][e]){let a=n?u=>this.dtFormatter(u,i).format():u=>this.extract(u,i,"month");this.monthsCache[o][e]=SC(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return ma(this,e,py,()=>{let n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=r?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=AC(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return ma(this,void 0,()=>my,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[ue.utc(2016,11,13,9),ue.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return ma(this,e,hy,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[ue.utc(-40,1,1),ue.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),o=i.formatToParts(),a=o.find(u=>u.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new nd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new id(e,this.intl,r)}relFormatter(e={}){return new sd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return pC(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||JE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:oy()?EC(this.locale):XE}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Wl=null,Ke=class t extends hr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Wl===null&&(Wl=new t(0)),Wl}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(xa(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ts(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ts(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Ts(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Oa=class extends hr{static{s(this,"InvalidZone")}constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function fr(t,e){if(H(t)||t===null)return e;if(t instanceof hr)return t;if(DC(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Ss.instance:r==="utc"||r==="gmt"?Ke.utcInstance:Ke.parseSpecifier(r)||Vt.create(t)}else return mr(t)?Ke.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Oa(t)}s(fr,"normalizeZone");var ld={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},nE={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},OC=ld.hanidec.replace(/[\[|\]]/g,"").split("");function IC(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(ld.hanidec)!==-1)e+=OC.indexOf(t[r]);else for(let i in nE){let[o,a]=nE[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(IC,"parseDigits");var od=new Map;function wC(){od.clear()}s(wC,"resetDigitRegexCache");function ft({numberingSystem:t},e=""){let r=t||"latn",n=od.get(r);n===void 0&&(n=new Map,od.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${ld[r]}${e}`),n.set(e,i)),i}s(ft,"digitRegex");var iE=s(()=>Date.now(),"now"),sE="system",oE=null,aE=null,uE=null,cE=60,lE,dE=null,se=class{static{s(this,"Settings")}static get now(){return iE}static set now(e){iE=e}static set defaultZone(e){sE=e}static get defaultZone(){return fr(sE,Ss.instance)}static get defaultLocale(){return oE}static set defaultLocale(e){oE=e}static get defaultNumberingSystem(){return aE}static set defaultNumberingSystem(e){aE=e}static get defaultOutputCalendar(){return uE}static set defaultOutputCalendar(e){uE=e}static get defaultWeekSettings(){return dE}static set defaultWeekSettings(e){dE=ad(e)}static get twoDigitCutoffYear(){return cE}static set twoDigitCutoffYear(e){cE=e%100}static get throwOnInvalid(){return lE}static set throwOnInvalid(e){lE=e}static resetCaches(){re.resetCache(),Vt.resetCache(),ue.resetCache(),wC()}},Ve=class{static{s(this,"Invalid")}constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},ZE=[0,31,59,90,120,151,181,212,243,273,304,334],ey=[0,31,60,91,121,152,182,213,244,274,305,335];function et(t,e){return new Ve("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(et,"unitOutOfRange");function dd(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}s(dd,"dayOfWeek");function ty(t,e,r){return r+(_s(t)?ey:ZE)[e-1]}s(ty,"computeOrdinal");function ry(t,e){let r=_s(t)?ey:ZE,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(ry,"uncomputeOrdinal");function fd(t,e){return(t-e+7)%7+1}s(fd,"isoWeekdayToLocal");function Ia(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=ty(n,i,o),u=fd(dd(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=As(l,e,r)):c>As(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...va(t)}}s(Ia,"gregorianToWeek");function fE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=fd(dd(n,1,e),r),u=Vn(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Vn(l)):c>u?(l=n+1,c-=Vn(n)):l=n;let{month:d,day:f}=ry(l,c);return{year:l,month:d,day:f,...va(t)}}s(fE,"weekToGregorian");function Gl(t){let{year:e,month:r,day:n}=t,i=ty(e,r,n);return{year:e,ordinal:i,...va(t)}}s(Gl,"gregorianToOrdinal");function pE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=ry(e,r);return{year:e,month:n,day:i,...va(t)}}s(pE,"ordinalToGregorian");function mE(t,e){if(!H(t.localWeekday)||!H(t.localWeekNumber)||!H(t.localWeekYear)){if(!H(t.weekday)||!H(t.weekNumber)||!H(t.weekYear))throw new pr("Cannot mix locale-based week fields with ISO-based week fields");return H(t.localWeekday)||(t.weekday=t.localWeekday),H(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),H(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}s(mE,"usesLocalWeekValues");function RC(t,e=4,r=1){let n=Da(t.weekYear),i=tt(t.weekNumber,1,As(t.weekYear,e,r)),o=tt(t.weekday,1,7);return n?i?o?!1:et("weekday",t.weekday):et("week",t.weekNumber):et("weekYear",t.weekYear)}s(RC,"hasInvalidWeekData");function CC(t){let e=Da(t.year),r=tt(t.ordinal,1,Vn(t.year));return e?r?!1:et("ordinal",t.ordinal):et("year",t.year)}s(CC,"hasInvalidOrdinalData");function ny(t){let e=Da(t.year),r=tt(t.month,1,12),n=tt(t.day,1,wa(t.year,t.month));return e?r?n?!1:et("day",t.day):et("month",t.month):et("year",t.year)}s(ny,"hasInvalidGregorianData");function iy(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=tt(e,0,23)||e===24&&r===0&&n===0&&i===0,a=tt(r,0,59),u=tt(n,0,59),c=tt(i,0,999);return o?a?u?c?!1:et("millisecond",i):et("second",n):et("minute",r):et("hour",e)}s(iy,"hasInvalidTimeData");function H(t){return typeof t>"u"}s(H,"isUndefined");function mr(t){return typeof t=="number"}s(mr,"isNumber");function Da(t){return typeof t=="number"&&t%1===0}s(Da,"isInteger");function DC(t){return typeof t=="string"}s(DC,"isString");function bC(t){return Object.prototype.toString.call(t)==="[object Date]"}s(bC,"isDate");function sy(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(sy,"hasRelative");function oy(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(oy,"hasLocaleWeekInfo");function xC(t){return Array.isArray(t)?t:[t]}s(xC,"maybeArray");function hE(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let o=[e(i),i];return n&&r(n[0],o[0])===n[0]?n:o},null)[1]}s(hE,"bestBy");function vC(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(vC,"pick");function Kn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s(Kn,"hasOwnProperty");function ad(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!tt(t.firstDay,1,7)||!tt(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!tt(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(ad,"validateWeekSettings");function tt(t,e,r){return Da(t)&&t>=e&&t<=r}s(tt,"integerBetween");function NC(t,e){return t-e*Math.floor(t/e)}s(NC,"floorMod");function he(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(he,"padStart");function dr(t){if(!(H(t)||t===null||t===""))return parseInt(t,10)}s(dr,"parseInteger");function Zr(t){if(!(H(t)||t===null||t===""))return parseFloat(t)}s(Zr,"parseFloating");function pd(t){if(!(H(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(pd,"parseMillis");function md(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}s(md,"roundTo");function _s(t){return t%4===0&&(t%100!==0||t%400===0)}s(_s,"isLeapYear");function Vn(t){return _s(t)?366:365}s(Vn,"daysInYear");function wa(t,e){let r=NC(e-1,12)+1,n=t+(e-r)/12;return r===2?_s(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(wa,"daysInMonth");function ba(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}s(ba,"objToLocalTS");function gE(t,e,r){return-fd(dd(t,1,e),r)+e-1}s(gE,"firstWeekOffset");function As(t,e=4,r=1){let n=gE(t,e,r),i=gE(t+1,e,r);return(Vn(t)-n+i)/7}s(As,"weeksInWeekYear");function ud(t){return t>99?t:t>se.twoDigitCutoffYear?1900+t:2e3+t}s(ud,"untruncateYear");function ay(t,e,r,n=null){let i=new Date(t),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(o.timeZone=n);let a={timeZoneName:e,...o},u=new Intl.DateTimeFormat(r,a).formatToParts(i).find(c=>c.type.toLowerCase()==="timezonename");return u?u.value:null}s(ay,"parseZoneInfo");function xa(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}s(xa,"signedOffset");function uy(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(uy,"asNumber");function Ra(t,e){let r={};for(let n in t)if(Kn(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=uy(i)}return r}s(Ra,"normalizeObject");function Ts(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${he(r,2)}:${he(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${he(r,2)}${he(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(Ts,"formatOffset");function va(t){return vC(t,["hour","minute","second","millisecond"])}s(va,"timeObject");var PC=["January","February","March","April","May","June","July","August","September","October","November","December"],cy=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],LC=["J","F","M","A","M","J","J","A","S","O","N","D"];function ly(t){switch(t){case"narrow":return[...LC];case"short":return[...cy];case"long":return[...PC];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}s(ly,"months");var dy=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],fy=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],UC=["M","T","W","T","F","S","S"];function py(t){switch(t){case"narrow":return[...UC];case"short":return[...fy];case"long":return[...dy];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(py,"weekdays");var my=["AM","PM"],kC=["Before Christ","Anno Domini"],MC=["BC","AD"],FC=["B","A"];function hy(t){switch(t){case"narrow":return[...FC];case"short":return[...MC];case"long":return[...kC];default:return null}}s(hy,"eras");function BC(t){return my[t.hour<12?0:1]}s(BC,"meridiemForDateTime");function WC(t,e){return py(e)[t.weekday-1]}s(WC,"weekdayForDateTime");function GC(t,e){return ly(e)[t.month-1]}s(GC,"monthForDateTime");function $C(t,e){return hy(e)[t.year<0?0:1]}s($C,"eraForDateTime");function VC(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(VC,"formatRelativeTime");function EE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(EE,"stringifyTokens");var qC={D:_a,DD:NE,DDD:PE,DDDD:LE,t:UE,tt:kE,ttt:ME,tttt:FE,T:BE,TT:WE,TTT:GE,TTTT:$E,f:VE,ff:KE,fff:jE,ffff:YE,F:qE,FF:QE,FFF:HE,FFFF:zE},$e=class t{static{s(this,"Formatter")}static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,o=[];for(let a=0;a<e.length;a++){let u=e.charAt(a);u==="'"?((n.length>0||i)&&o.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||u===r?n+=u:(n.length>0&&o.push({literal:/^\s+$/.test(n),val:n}),n=u,r=u)}return n.length>0&&o.push({literal:i||/^\s+$/.test(n),val:n}),o}static macroTokenToFormatOpts(e){return qC[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?BC(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((m,y)=>n?GC(e,m):o(y?{month:m}:{month:m,day:"numeric"},"month"),"month"),l=s((m,y)=>n?WC(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?$C(e,m):o({era:m},"era"),"era"),g=s(m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return u();case"d":return i?o({day:"numeric"},"day"):this.num(e.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(e.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(e.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(m)}},"tokenToString");return EE(t.parseFormat(r),g)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>g=>{let m=i(g);if(m){let y=f.isNegativeDuration&&m!==f.largestUnit?n:1,h;return this.opts.signMode==="negativeLargestOnly"&&m!==f.largestUnit?h="never":this.opts.signMode==="all"?h="always":h="auto",this.num(d.get(m)*y,g.length,h)}else return g},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:g})=>f?d:d.concat(g),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return EE(a,o(c,l))}},gy=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Qn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Qn,"combineRegexes");function jn(...t){return e=>t.reduce(([r,n,i],o)=>{let[a,u,c]=o(e,i);return[{...r,...a},u||n,c]},[{},null,1]).slice(0,2)}s(jn,"combineExtractors");function Hn(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}s(Hn,"parse");function Ey(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=dr(e[r+i]);return[n,null,r+i]}}s(Ey,"simpleParse");var yy=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,KC=`(?:${yy.source}?(?:\\[(${gy.source})\\])?)?`,hd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ty=RegExp(`${hd.source}${KC}`),gd=RegExp(`(?:[Tt]${Ty.source})?`),QC=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,jC=/(\d{4})-?W(\d\d)(?:-?(\d))?/,HC=/(\d{4})-?(\d{3})/,YC=Ey("weekYear","weekNumber","weekDay"),zC=Ey("year","ordinal"),JC=/(\d{4})-(\d\d)-(\d\d)/,Sy=RegExp(`${hd.source} ?(?:${yy.source}|(${gy.source}))?`),XC=RegExp(`(?: ${Sy.source})?`);function qn(t,e,r){let n=t[e];return H(n)?r:dr(n)}s(qn,"int");function ZC(t,e){return[{year:qn(t,e),month:qn(t,e+1,1),day:qn(t,e+2,1)},null,e+3]}s(ZC,"extractISOYmd");function Yn(t,e){return[{hours:qn(t,e,0),minutes:qn(t,e+1,0),seconds:qn(t,e+2,0),milliseconds:pd(t[e+3])},null,e+4]}s(Yn,"extractISOTime");function Os(t,e){let r=!t[e]&&!t[e+1],n=xa(t[e+1],t[e+2]),i=r?null:Ke.instance(n);return[{},i,e+3]}s(Os,"extractISOOffset");function Is(t,e){let r=t[e]?Vt.create(t[e]):null;return[{},r,e+1]}s(Is,"extractIANAZone");var eD=RegExp(`^T?${hd.source}$`),tD=/^-?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 rD(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",g=s((m,y=!1)=>m!==void 0&&(y||m&&d)?-m:m,"maybeNegate");return[{years:g(Zr(r)),months:g(Zr(n)),weeks:g(Zr(i)),days:g(Zr(o)),hours:g(Zr(a)),minutes:g(Zr(u)),seconds:g(Zr(c),c==="-0"),milliseconds:g(pd(l),f)}]}s(rD,"extractISODuration");var nD={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ed(t,e,r,n,i,o,a){let u={year:e.length===2?ud(dr(e)):dr(e),month:cy.indexOf(r)+1,day:dr(n),hour:dr(i),minute:dr(o)};return a&&(u.second=dr(a)),t&&(u.weekday=t.length>3?dy.indexOf(t)+1:fy.indexOf(t)+1),u}s(Ed,"fromStrings");var iD=/^(?:(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 sD(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,g=Ed(e,i,n,r,o,a,u),m;return c?m=nD[c]:l?m=0:m=xa(d,f),[g,new Ke(m)]}s(sD,"extractRFC2822");function oD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(oD,"preprocessRFC2822");var aD=/^(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$/,uD=/^(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$/,cD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function yE(t){let[,e,r,n,i,o,a,u]=t;return[Ed(e,i,n,r,o,a,u),Ke.utcInstance]}s(yE,"extractRFC1123Or850");function lD(t){let[,e,r,n,i,o,a,u]=t;return[Ed(e,u,r,n,i,o,a),Ke.utcInstance]}s(lD,"extractASCII");var dD=Qn(QC,gd),fD=Qn(jC,gd),pD=Qn(HC,gd),mD=Qn(Ty),Ay=jn(ZC,Yn,Os,Is),hD=jn(YC,Yn,Os,Is),gD=jn(zC,Yn,Os,Is),ED=jn(Yn,Os,Is);function yD(t){return Hn(t,[dD,Ay],[fD,hD],[pD,gD],[mD,ED])}s(yD,"parseISODate");function TD(t){return Hn(oD(t),[iD,sD])}s(TD,"parseRFC2822Date");function SD(t){return Hn(t,[aD,yE],[uD,yE],[cD,lD])}s(SD,"parseHTTPDate");function AD(t){return Hn(t,[tD,rD])}s(AD,"parseISODuration");var _D=jn(Yn);function OD(t){return Hn(t,[eD,_D])}s(OD,"parseISOTimeOnly");var ID=Qn(JC,XC),wD=Qn(Sy),RD=jn(Yn,Os,Is);function CD(t){return Hn(t,[ID,Ay],[wD,RD])}s(CD,"parseSQL");var TE="Invalid Duration",_y={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},DD={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},..._y},Ze=146097/400,Wn=146097/4800,bD={years:{quarters:4,months:12,weeks:Ze/7,days:Ze,hours:Ze*24,minutes:Ze*24*60,seconds:Ze*24*60*60,milliseconds:Ze*24*60*60*1e3},quarters:{months:3,weeks:Ze/28,days:Ze/4,hours:Ze*24/4,minutes:Ze*24*60/4,seconds:Ze*24*60*60/4,milliseconds:Ze*24*60*60*1e3/4},months:{weeks:Wn/7,days:Wn,hours:Wn*24,minutes:Wn*24*60,seconds:Wn*24*60*60,milliseconds:Wn*24*60*60*1e3},..._y},tn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],xD=tn.slice(0).reverse();function Gt(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new ye(n)}s(Gt,"clone$1");function Oy(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of xD.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(Oy,"durationToMillis");function SE(t,e){let r=Oy(t,e)<0?-1:1;tn.reduceRight((n,i)=>{if(H(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),tn.reduce((n,i)=>{if(H(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(SE,"normalizeValues");function AE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(AE,"removeZeroes");var ye=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?bD:DD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||re.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new _e(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Ra(e,t.normalizeUnit),loc:re.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(mr(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new _e(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=AD(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]=OD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Duration is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(se.throwOnInvalid)throw new Yl(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Aa(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?$e.create(this.loc,n).formatDurationFromString(this,e):TE}toHuman(e={}){if(!this.isValid)return TE;let r=e.showZeros!==!1,n=tn.map(i=>{let o=this.values[i];return H(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=md(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},ue.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Oy(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of tn)(Kn(r.values,i)||Kn(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Gt(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=uy(e(this.values[n],n));return Gt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Ra(e,t.normalizeUnit)};return Gt(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Gt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return SE(this.matrix,e),Gt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=AE(this.normalize().shiftToAll().toObject());return Gt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of tn)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;mr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else mr(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return SE(this.matrix,r),Gt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Gt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=AE(this.values);return Gt(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}s(r,"eq");for(let n of tn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Gn="Invalid Interval";function vD(t,e){return!t||!t.isValid?nn.invalid("missing or invalid start"):!e||!e.isValid?nn.invalid("missing or invalid end"):e<t?nn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}s(vD,"validateStartEnd");var nn=class t{static{s(this,"Interval")}constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Interval is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(se.throwOnInvalid)throw new Hl(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=hs(e),i=hs(r),o=vD(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=ye.fromDurationLike(r),i=hs(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=ye.fromDurationLike(r),i=hs(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=ue.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=ue.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=ye.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=ye.fromISO(n,r);if(l.isValid)return t.before(u,l)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(hs).filter(a=>this.contains(a)).sort((a,u)=>a.toMillis()-u.toMillis()),n=[],{s:i}=this,o=0;for(;i<this.e;){let a=r[o]||this.e,u=+a>+this.e?this.e:a;n.push(t.fromDateTimes(i,u)),i=u,o+=1}return n}splitBy(e){let r=ye.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Gn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=_a,r={}){return this.isValid?$e.create(this.s.loc.clone(r),e).formatInterval(this):Gn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Gn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Gn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Gn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Gn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):ye.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},rn=class{static{s(this,"Info")}static hasDST(e=se.defaultZone){let r=ue.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Vt.isValidZone(e)}static normalizeZone(e){return fr(e,se.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||re.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||re.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||re.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||re.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||re.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return re.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return re.create(r,null,"gregory").eras(e)}static features(){return{relative:sy(),localeWeek:oy()}}};function _E(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(ye.fromMillis(n).as("days"))}s(_E,"dayDiff");function ND(t,e,r){let n=[["years",(c,l)=>l.year-c.year],["quarters",(c,l)=>l.quarter-c.quarter+(l.year-c.year)*4],["months",(c,l)=>l.month-c.month+(l.year-c.year)*12],["weeks",(c,l)=>{let d=_E(c,l);return(d-d%7)/7}],["days",_E]],i={},o=t,a,u;for(let[c,l]of n)r.indexOf(c)>=0&&(a=c,i[c]=l(t,e),u=o.plus(i),u>e?(i[c]--,t=o.plus(i),t>e&&(u=t,i[c]--,t=o.plus(i))):t=u);return[t,i,u,a]}s(ND,"highOrderDiffs");function PD(t,e,r,n){let[i,o,a,u]=ND(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(PD,"diff");var LD="missing Intl.DateTimeFormat.formatToParts support";function Z(t,e=r=>r){return{regex:t,deser:s(([r])=>e(IC(r)),"deser")}}s(Z,"intUnit");var UD="\xA0",Iy=`[ ${UD}]`,wy=new RegExp(Iy,"g");function kD(t){return t.replace(/\./g,"\\.?").replace(wy,Iy)}s(kD,"fixListRegex");function OE(t){return t.replace(/\./g,"").replace(wy," ").toLowerCase()}s(OE,"stripInsensitivities");function pt(t,e){return t===null?null:{regex:RegExp(t.map(kD).join("|")),deser:s(([r])=>t.findIndex(n=>OE(r)===OE(n))+e,"deser")}}s(pt,"oneOf");function IE(t,e){return{regex:t,deser:s(([,r,n])=>xa(r,n),"deser"),groups:e}}s(IE,"offset");function ha(t){return{regex:t,deser:s(([e])=>e,"deser")}}s(ha,"simple");function MD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(MD,"escapeToken");function FD(t,e){let r=ft(e),n=ft(e,"{2}"),i=ft(e,"{3}"),o=ft(e,"{4}"),a=ft(e,"{6}"),u=ft(e,"{1,2}"),c=ft(e,"{1,3}"),l=ft(e,"{1,6}"),d=ft(e,"{1,9}"),f=ft(e,"{2,4}"),g=ft(e,"{4,6}"),m=s(p=>({regex:RegExp(MD(p.val)),deser:s(([T])=>T,"deser"),literal:!0}),"literal"),h=s(p=>{if(t.literal)return m(p);switch(p.val){case"G":return pt(e.eras("short"),0);case"GG":return pt(e.eras("long"),0);case"y":return Z(l);case"yy":return Z(f,ud);case"yyyy":return Z(o);case"yyyyy":return Z(g);case"yyyyyy":return Z(a);case"M":return Z(u);case"MM":return Z(n);case"MMM":return pt(e.months("short",!0),1);case"MMMM":return pt(e.months("long",!0),1);case"L":return Z(u);case"LL":return Z(n);case"LLL":return pt(e.months("short",!1),1);case"LLLL":return pt(e.months("long",!1),1);case"d":return Z(u);case"dd":return Z(n);case"o":return Z(c);case"ooo":return Z(i);case"HH":return Z(n);case"H":return Z(u);case"hh":return Z(n);case"h":return Z(u);case"mm":return Z(n);case"m":return Z(u);case"q":return Z(u);case"qq":return Z(n);case"s":return Z(u);case"ss":return Z(n);case"S":return Z(c);case"SSS":return Z(i);case"u":return ha(d);case"uu":return ha(u);case"uuu":return Z(r);case"a":return pt(e.meridiems(),0);case"kkkk":return Z(o);case"kk":return Z(f,ud);case"W":return Z(u);case"WW":return Z(n);case"E":case"c":return Z(r);case"EEE":return pt(e.weekdays("short",!1),1);case"EEEE":return pt(e.weekdays("long",!1),1);case"ccc":return pt(e.weekdays("short",!0),1);case"cccc":return pt(e.weekdays("long",!0),1);case"Z":case"ZZ":return IE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return IE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return ha(/[a-z_+-/]{1,256}?/i);case" ":return ha(/[^\S\n\r]/);default:return m(p)}},"unitate")(t)||{invalidReason:LD};return h.token=t,h}s(FD,"unitForToken");var BD={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 WD(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=BD[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(WD,"tokenForPart");function GD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(GD,"buildRegex");function $D(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if(Kn(r,a)){let u=r[a],c=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(n.slice(o,o+c))),o+=c}return[n,i]}else return[n,{}]}s($D,"match");function VD(t){let e=s(o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},"toField"),r=null,n;return H(t.z)||(r=Vt.create(t.z)),H(t.Z)||(r||(r=new Ke(t.Z)),n=t.Z),H(t.q)||(t.M=(t.q-1)*3+1),H(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),H(t.u)||(t.S=pd(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s(VD,"dateTimeFromMatches");var $l=null;function qD(){return $l||($l=ue.fromMillis(1555555555555)),$l}s(qD,"getDummyDateTime");function KD(t,e){if(t.literal)return t;let r=$e.macroTokenToFormatOpts(t.val),n=Dy(r,e);return n==null||n.includes(void 0)?t:n}s(KD,"maybeExpandMacroToken");function Ry(t,e){return Array.prototype.concat(...t.map(r=>KD(r,e)))}s(Ry,"expandMacroTokens");var Ca=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=Ry($e.parseFormat(r),e),this.units=this.tokens.map(n=>FD(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=GD(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=$D(e,this.regex,this.handlers),[i,o,a]=n?VD(n):[null,null,void 0];if(Kn(n,"a")&&Kn(n,"H"))throw new pr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function Cy(t,e,r){return new Ca(t,r).explainFromTokens(e)}s(Cy,"explainFromTokens");function QD(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=Cy(t,e,r);return[n,i,o,a]}s(QD,"parseFromTokens");function Dy(t,e){if(!t)return null;let n=$e.create(e,t).dtFormatter(qD()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>WD(a,t,o))}s(Dy,"formatOptsToTokens");var Vl="Invalid DateTime",wE=864e13;function Es(t){return new Ve("unsupported zone",`the zone "${t.name}" is not supported`)}s(Es,"unsupportedZone");function ql(t){return t.weekData===null&&(t.weekData=Ia(t.c)),t.weekData}s(ql,"possiblyCachedWeekData");function Kl(t){return t.localWeekData===null&&(t.localWeekData=Ia(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s(Kl,"possiblyCachedLocalWeekData");function en(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new ue({...r,...e,old:r})}s(en,"clone");function by(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let o=r.offset(n);return i===o?[n,i]:[t-Math.min(i,o)*60*1e3,Math.max(i,o)]}s(by,"fixOffset");function ga(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}s(ga,"tsToObj");function ya(t,e,r){return by(ba(t),e,r)}s(ya,"objToTS");function RE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,wa(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=ye.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),u=ba(o),[c,l]=by(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(RE,"adjustTime");function $n(t,e,r,n,i,o){let{setZone:a,zone:u}=r;if(t&&Object.keys(t).length!==0||e){let c=e||u,l=ue.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return ue.invalid(new Ve("unparsable",`the input "${i}" can't be parsed as ${n}`))}s($n,"parseDataToDateTime");function Ea(t,e,r=!0){return t.isValid?$e.create(re.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}s(Ea,"toTechFormat");function Ql(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=he(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=he(t.c.month),r==="month")return i;i+="-"}else if(i+=he(t.c.month),r==="month")return i;return i+=he(t.c.day),i}s(Ql,"toISODate");function CE(t,e,r,n,i,o,a){let u=!r||t.c.millisecond!==0||t.c.second!==0,c="";switch(a){case"day":case"month":case"year":break;default:if(c+=he(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=he(t.c.minute),a==="minute")break;u&&(c+=":",c+=he(t.c.second))}else{if(c+=he(t.c.minute),a==="minute")break;u&&(c+=he(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=he(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=he(Math.trunc(-t.o/60)),c+=":",c+=he(Math.trunc(-t.o%60))):(c+="+",c+=he(Math.trunc(t.o/60)),c+=":",c+=he(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(CE,"toISOTime");var xy={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},jD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},HD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Ta=["year","month","day","hour","minute","second","millisecond"],YD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],zD=["year","ordinal","hour","minute","second","millisecond"];function Sa(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Aa(t);return e}s(Sa,"normalizeUnit");function DE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Sa(t)}}s(DE,"normalizeUnitWithLocalWeeks");function JD(t){if(ys===void 0&&(ys=se.now()),t.type!=="iana")return t.offset(ys);let e=t.name,r=cd.get(e);return r===void 0&&(r=t.offset(ys),cd.set(e,r)),r}s(JD,"guessOffsetForZone");function bE(t,e){let r=fr(e.zone,se.defaultZone);if(!r.isValid)return ue.invalid(Es(r));let n=re.fromObject(e),i,o;if(H(t.year))i=se.now();else{for(let c of Ta)H(t[c])&&(t[c]=xy[c]);let a=ny(t)||iy(t);if(a)return ue.invalid(a);let u=JD(r);[i,o]=ya(t,u,r)}return new ue({ts:i,zone:r,loc:n,o})}s(bE,"quickDT");function xE(t,e,r){let n=H(r.round)?!0:r.round,i=H(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=md(u,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(u,c)),"format"),a=s(u=>r.calendary?e.hasSame(t,u)?0:e.startOf(u).diff(t.startOf(u),u).get(u):e.diff(t,u).get(u),"differ");if(r.unit)return o(a(r.unit),r.unit);for(let u of r.units){let c=a(u);if(Math.abs(c)>=1)return o(c,u)}return o(t>e?-0:0,r.units[r.units.length-1])}s(xE,"diffRelative");function vE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}s(vE,"lastOpts");var ys,cd=new Map,ue=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||se.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ve("invalid input"):null)||(r.isValid?null:Es(r));this.ts=H(e.ts)?se.now():e.ts;let i=null,o=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,o]=[e.old.c,e.old.o];else{let u=mr(e.o)&&!e.old?e.o:r.offset(this.ts);i=ga(this.ts,u),n=Number.isNaN(i.year)?new Ve("invalid input"):null,i=n?null:i,o=n?null:u}this._zone=r,this.loc=e.loc||re.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=vE(arguments),[n,i,o,a,u,c,l]=r;return bE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=vE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,bE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=bC(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=fr(r.zone,se.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:re.fromObject(r)}):t.invalid(Es(i))}static fromMillis(e,r={}){if(mr(e))return e<-wE||e>wE?t.invalid("Timestamp out of range"):new t({ts:e,zone:fr(r.zone,se.defaultZone),loc:re.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(mr(e))return new t({ts:e*1e3,zone:fr(r.zone,se.defaultZone),loc:re.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=fr(r.zone,se.defaultZone);if(!n.isValid)return t.invalid(Es(n));let i=re.fromObject(r),o=Ra(e,DE),{minDaysInFirstWeek:a,startOfWeek:u}=mE(o,i),c=se.now(),l=H(r.specificOffset)?n.offset(c):r.specificOffset,d=!H(o.ordinal),f=!H(o.year),g=!H(o.month)||!H(o.day),m=f||g,y=o.weekYear||o.weekNumber;if((m||d)&&y)throw new pr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(g&&d)throw new pr("Can't mix ordinal dates with month/day");let h=y||o.weekday&&!m,p,T,A=ga(c,l);h?(p=YD,T=jD,A=Ia(A,a,u)):d?(p=zD,T=HD,A=Gl(A)):(p=Ta,T=xy);let _=!1;for(let G of p){let ee=o[G];H(ee)?_?o[G]=T[G]:o[G]=A[G]:_=!0}let I=h?RC(o,a,u):d?CC(o):ny(o),O=I||iy(o);if(O)return t.invalid(O);let C=h?fE(o,a,u):d?pE(o):o,[R,w]=ya(C,l,n),b=new t({ts:R,zone:n,o:w,loc:i});return o.weekday&&m&&e.weekday!==b.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${b.toISO()}`):b.isValid?b:t.invalid(b.invalid)}static fromISO(e,r={}){let[n,i]=yD(e);return $n(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=TD(e);return $n(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=SD(e);return $n(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(H(e)||H(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=QD(a,e,r);return d?t.invalid(d):$n(u,c,n,`format ${r}`,e,l)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=CD(e);return $n(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the DateTime is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(se.throwOnInvalid)throw new jl(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=Dy(e,re.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return Ry($e.parseFormat(e),re.fromObject(r)).map(i=>i.val).join("")}static resetCache(){ys=void 0,cd.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?ql(this).weekYear:NaN}get weekNumber(){return this.isValid?ql(this).weekNumber:NaN}get weekday(){return this.isValid?ql(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Kl(this).weekday:NaN}get localWeekNumber(){return this.isValid?Kl(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Kl(this).weekYear:NaN}get ordinal(){return this.isValid?Gl(this.c).ordinal:NaN}get monthShort(){return this.isValid?rn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?rn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?rn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?rn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=ba(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ga(c,a),f=ga(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[en(this,{ts:c}),en(this,{ts:l})]:[this]}get isInLeapYear(){return _s(this.year)}get daysInMonth(){return wa(this.year,this.month)}get daysInYear(){return this.isValid?Vn(this.year):NaN}get weeksInWeekYear(){return this.isValid?As(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?As(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=$e.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ke.instance(e),r)}toLocal(){return this.setZone(se.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=fr(e,se.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=ya(a,o,e)}return en(this,{ts:i,zone:e})}else return t.invalid(Es(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return en(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Ra(e,DE),{minDaysInFirstWeek:n,startOfWeek:i}=mE(r,this.loc),o=!H(r.weekYear)||!H(r.weekNumber)||!H(r.weekday),a=!H(r.ordinal),u=!H(r.year),c=!H(r.month)||!H(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new pr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new pr("Can't mix ordinal dates with month/day");let f;o?f=fE({...Ia(this.c,n,i),...r},n,i):H(r.ordinal)?(f={...this.toObject(),...r},H(r.day)&&(f.day=Math.min(wa(f.year,f.month),f.day))):f=pE({...Gl(this.c),...r});let[g,m]=ya(f,this.o,this.zone);return en(this,{ts:g,o:m})}plus(e){if(!this.isValid)return this;let r=ye.fromDurationLike(e);return en(this,RE(this,r))}minus(e){if(!this.isValid)return this;let r=ye.fromDurationLike(e).negate();return en(this,RE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=ye.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?$e.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Vl}toLocaleString(e=_a,r={}){return this.isValid?$e.create(this.loc.clone(r),e).formatDateTime(this):Vl}toLocaleParts(e={}){return this.isValid?$e.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:o=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=Sa(a);let u=e==="extended",c=Ql(this,u,a);return Ta.indexOf(a)>=3&&(c+="T"),c+=CE(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?Ql(this,e==="extended",Sa(r)):null}toISOWeekDate(){return Ea(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:u="milliseconds"}={}){return this.isValid?(u=Sa(u),(i&&Ta.indexOf(u)>=3?"T":"")+CE(this,a==="extended",r,e,n,o,u)):null}toRFC2822(){return Ea(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ea(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Ql(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ea(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Vl}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return ye.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=xC(r).map(ye.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=PD(u,c,o,i);return a?l.negate():l}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?nn.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(r,n)<=i&&i<=o.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],o=e.unit;return Array.isArray(e.unit)&&(i=e.unit,o=void 0),xE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?xE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new _e("min requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Cy(a,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,o=re.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Ca(o,e)}static fromFormatParser(e,r,n={}){if(H(e)||H(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=re.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(r.locale))throw new _e(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${r.locale}`);let{result:u,zone:c,specificOffset:l,invalidReason:d}=r.explainFromTokens(e);return d?t.invalid(d):$n(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return _a}static get DATE_MED(){return NE}static get DATE_MED_WITH_WEEKDAY(){return aC}static get DATE_FULL(){return PE}static get DATE_HUGE(){return LE}static get TIME_SIMPLE(){return UE}static get TIME_WITH_SECONDS(){return kE}static get TIME_WITH_SHORT_OFFSET(){return ME}static get TIME_WITH_LONG_OFFSET(){return FE}static get TIME_24_SIMPLE(){return BE}static get TIME_24_WITH_SECONDS(){return WE}static get TIME_24_WITH_SHORT_OFFSET(){return GE}static get TIME_24_WITH_LONG_OFFSET(){return $E}static get DATETIME_SHORT(){return VE}static get DATETIME_SHORT_WITH_SECONDS(){return qE}static get DATETIME_MED(){return KE}static get DATETIME_MED_WITH_SECONDS(){return QE}static get DATETIME_MED_WITH_WEEKDAY(){return uC}static get DATETIME_FULL(){return jE}static get DATETIME_FULL_WITH_SECONDS(){return HE}static get DATETIME_HUGE(){return YE}static get DATETIME_HUGE_WITH_SECONDS(){return zE}};function hs(t){if(ue.isDateTime(t))return t;if(t&&t.valueOf&&mr(t.valueOf()))return ue.fromJSDate(t);if(t&&typeof t=="object")return ue.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(hs,"friendlyDateTime");var XD="3.7.2";Qe.DateTime=ue;Qe.Duration=ye;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Vt;Qe.Info=rn;Qe.Interval=nn;Qe.InvalidZone=Oa;Qe.Settings=se;Qe.SystemZone=Ss;Qe.VERSION=XD;Qe.Zone=hr});var Py=Q((zW,Ny)=>{"use strict";var sn=vy();Y.prototype.addYear=function(){this._date=this._date.plus({years:1})};Y.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};Y.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};Y.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};Y.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};Y.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};Y.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};Y.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};Y.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};Y.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};Y.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};Y.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};Y.prototype.getDate=function(){return this._date.day};Y.prototype.getFullYear=function(){return this._date.year};Y.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};Y.prototype.getMonth=function(){return this._date.month-1};Y.prototype.getHours=function(){return this._date.hour};Y.prototype.getMinutes=function(){return this._date.minute};Y.prototype.getSeconds=function(){return this._date.second};Y.prototype.getMilliseconds=function(){return this._date.millisecond};Y.prototype.getTime=function(){return this._date.valueOf()};Y.prototype.getUTCDate=function(){return this._getUTC().day};Y.prototype.getUTCFullYear=function(){return this._getUTC().year};Y.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};Y.prototype.getUTCMonth=function(){return this._getUTC().month-1};Y.prototype.getUTCHours=function(){return this._getUTC().hour};Y.prototype.getUTCMinutes=function(){return this._getUTC().minute};Y.prototype.getUTCSeconds=function(){return this._getUTC().second};Y.prototype.toISOString=function(){return this._date.toUTC().toISO()};Y.prototype.toJSON=function(){return this._date.toJSON()};Y.prototype.setDate=function(t){this._date=this._date.set({day:t})};Y.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};Y.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};Y.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};Y.prototype.setHours=function(t){this._date=this._date.set({hour:t})};Y.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};Y.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};Y.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};Y.prototype._getUTC=function(){return this._date.toUTC()};Y.prototype.toString=function(){return this.toDate().toString()};Y.prototype.toDate=function(){return this._date.toJSDate()};Y.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};Y.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function Y(t,e){var r={zone:e};if(t?t instanceof Y?this._date=t._date:t instanceof Date?this._date=sn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=sn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=sn.DateTime.fromISO(t,r),this._date.isValid||(this._date=sn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=sn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=sn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=sn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}s(Y,"CronDate");Ny.exports=Y});var ky=Q((XW,Uy)=>{"use strict";function on(t){return{start:t,count:1}}s(on,"buildRange");function Ly(t,e){t.end=e,t.step=e-t.start,t.count=2}s(Ly,"completeRangeWithItem");function yd(t,e,r){e&&(e.count===2?(t.push(on(e.start)),t.push(on(e.end))):t.push(e)),r&&t.push(r)}s(yd,"finalizeCurrentRange");function ZD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(yd(e,r,on(i)),r=void 0):r?r.count===1?Ly(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(on(r.start)),r=on(r.end),Ly(r,i)):(yd(e,r),r=on(i)):r=on(i)}return yd(e,r),e}s(ZD,"compactField");Uy.exports=ZD});var Fy=Q((eG,My)=>{"use strict";var eb=ky();function tb(t,e,r){var n=eb(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(tb,"stringifyField");My.exports=tb});var Gy=Q((rG,Wy)=>{"use strict";var an=Py(),rb=Fy(),By=1e4;function k(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new an(e.currentDate,this._tz),this._startDate=e.startDate?new an(e.startDate,this._tz):null,this._endDate=e.endDate?new an(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=k._freezeFields(t)}s(k,"CronExpression");k.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];k.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};k.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];k.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];k.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};k.parseDefaults=["0","*","*","*","*","*"];k.standardValidCharacters=/^[,*\d/-]+$/;k.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;k.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;k.validCharacters={second:k.standardValidCharacters,minute:k.standardValidCharacters,hour:k.standardValidCharacters,dayOfMonth:k.dayOfMonthValidCharacters,month:k.standardValidCharacters,dayOfWeek:k.dayOfWeekValidCharacters};k._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");k._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=k.aliases[e];r=r.replace(/[a-z]{3}/gi,function(c){if(c=c.toLowerCase(),typeof i[c]<"u")return i[c];throw new Error('Validation error, cannot resolve alias "'+c+'"')});break}if(!k.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function o(c){var l=[];function d(y){if(y instanceof Array)for(var h=0,p=y.length;h<p;h++){var T=y[h];if(k._isValidConstraintChar(n,T)){l.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);l.push(T)}else{if(k._isValidConstraintChar(n,y)){l.push(y);return}var A=+y;if(Number.isNaN(A)||A<n.min||A>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(A=A%7),l.push(A)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(y){return y.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var g=0,m=f.length;g<m;g++)d(a(f[g]));else d(a(c));return l.sort(k._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var g=+f[0],m=+f[1];if(Number.isNaN(g)||Number.isNaN(m)||g<n.min||m>n.max)throw new Error("Constraint error, got range "+g+"-"+m+" expected range "+n.min+"-"+n.max);if(g>m)throw new Error("Invalid range: "+c);var y=+l;if(Number.isNaN(y)||y<=0)throw new Error("Constraint error, cannot repeat at every "+y+" time.");e==="dayOfWeek"&&m%7===0&&d.push(0);for(var h=g,p=m;h<=p;h++){var T=d.indexOf(h)!==-1;!T&&y>0&&y%l===0?(y=1,d.push(h)):y++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");k._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};k._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=k.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(k._sortCompareFn)}};k._freezeFields=function(t){for(var e=0,r=k.map.length;e<r;++e){var n=k.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};k.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};k.prototype._findSchedule=s(function(e){function r(T,A){for(var _=0,I=A.length;_<I;_++)if(A[_]>=T)return A[_]===T;return A[0]===T}s(r,"matchSchedule");function n(T,A){if(A<6){if(T.getDate()<8&&A===1)return!0;var _=T.getDate()%7?1:0,I=T.getDate()-T.getDate()%7,O=Math.floor(I/7)+_;return O===A}return!1}s(n,"isNthDayMatch");function i(T){return T.length>0&&T.some(function(A){return typeof A=="string"&&A.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new an(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(T){return T.some(function(A){if(!i([A]))return!1;var _=Number.parseInt(A[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+A);return a.getDay()===_&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<By;){if(d++,e){if(u&&a.getTime()-u.getTime()<0)throw new Error("Out of the timespan range")}else if(c&&c.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var g=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(g=g||a.isLastDayOfMonth());var m=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||f(this.fields.dayOfWeek));var y=this.fields.dayOfMonth.length>=k.daysInMonth[a.getMonth()],h=this.fields.dayOfWeek.length===k.constraints[5].max-k.constraints[5].min+1,p=a.getHours();if(!g&&(!m||h)){this._applyTimezoneShift(a,o,"Day");continue}if(!y&&h&&!g){this._applyTimezoneShift(a,o,"Day");continue}if(y&&!h&&!m){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(p,this.fields.hour)){if(this._dstEnd===p&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==p){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(p-1,this.fields.hour)){a[o+"Hour"]();continue}if(!r(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,o,"Minute");continue}if(!r(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,o,"Second");continue}if(l===a.getTime()){o==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,o,"Second"):a.setMilliseconds(0);continue}break}if(d>=By)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new an(a,this._tz),this._hasIterated=!0,a},"_findSchedule");k.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");k.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");k.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};k.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};k.prototype.iterate=s(function(e,r){var n=[];if(e>=0)for(var i=0,o=e;i<o;i++)try{var a=this.next();n.push(a),r&&r(a,i)}catch{break}else for(var i=0,o=e;i>o;i--)try{var a=this.prev();n.push(a),r&&r(a,i)}catch{break}return n},"iterate");k.prototype.reset=s(function(e){this._currentDate=new an(e||this._options.currentDate)},"reset");k.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=k.map.length;n<i;++n){var o=k.map[n],a=this.fields[o],u=k.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:k.daysInMonth[this.fields.month[0]-1]}:o==="dayOfWeek"&&(u={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),r.push(rb(a,u.min,u.max))}return r.join(" ")},"stringify");k.parse=s(function(e,r){var n=this;typeof r=="function"&&(r={});function i(o,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new an(void 0,n._tz)),k.predefined[o]&&(o=k.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=k.map.length-c.length,d=0,f=k.map.length;d<f;++d){var g=k.map[d],m=c[c.length>f?d:d-l];if(d<l||!m)u.push(k._parseField(g,k.parseDefaults[d],k.constraints[d]));else{var y=g==="dayOfWeek"?A(m):m;u.push(k._parseField(g,y,k.constraints[d]))}}for(var h={},d=0,f=k.map.length;d<f;d++){var p=k.map[d];h[p]=u[d]}var T=k._handleMaxDaysInMonth(h);return h.dayOfMonth=T||h.dayOfMonth,new k(h,a);function A(_){var I=_.split("#");if(I.length>1){var O=+I[I.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(I.length>2||Number.isNaN(O)||O<1||O>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=O,I[0]}return _}s(A,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");k.fieldsToExpression=s(function(e,r){function n(g,m,y){if(!m)throw new Error("Validation error, Field "+g+" is missing");if(m.length===0)throw new Error("Validation error, Field "+g+" contains no values");for(var h=0,p=m.length;h<p;h++){var T=m[h];if(!k._isValidConstraintChar(y,T)&&(typeof T!="number"||Number.isNaN(T)||T<y.min||T>y.max))throw new Error("Constraint error, got value "+T+" expected range "+y.min+"-"+y.max)}}s(n,"validateConstraints");for(var i={},o=0,a=k.map.length;o<a;++o){var u=k.map[o],c=e[u];n(u,c,k.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(k._sortCompareFn).filter(function(g,m,y){return!m||g!==y[m-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=k._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new k(i,r||{})},"fieldsToExpression");Wy.exports=k});var Vy=Q((iG,$y)=>{"use strict";var Na=Gy();function gr(){}s(gr,"CronParser");gr._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:Na.parse(e)};if(r.length>6)return{interval:Na.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");gr.parseExpression=s(function(e,r){return Na.parse(e,r)},"parseExpression");gr.fieldsToExpression=s(function(e,r){return Na.fieldsToExpression(e,r)},"fieldsToExpression");gr.parseString=s(function(e){for(var r=e.split(`
|
|
5
|
+
`),n={variables:{},expressions:[],errors:{}},i=0,o=r.length;i<o;i++){var a=r[i],u=null,c=a.trim();if(c.length>0){if(c.match(/^#/))continue;if(u=c.match(/^(.*)=(.*)$/))n.variables[u[1]]=u[2];else{var l=null;try{l=gr._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");gr.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,gr.parseString(i.toString()))})},"parseFile");$y.exports=gr});var hF={};P(hF,{APIWarning:()=>Cn,ActiveContentFileError:()=>Ku,AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,BadRequestError:()=>Eo,BudibaseError:()=>go,Config:()=>rf,Cookie:()=>yr,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DEFAULT_TENANT_ID:()=>ce,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,Duration:()=>me,EmailUnavailableError:()=>er,Endpoint:()=>Gc,EndpointGroup:()=>Dn,EndpointGroupList:()=>Go,FeatureDisabledError:()=>Hu,FeatureDisabledWarning:()=>bc,ForbiddenError:()=>Qu,GlobalRole:()=>tf,HTTPError:()=>Be,Header:()=>Pe,InternalTable:()=>It,InvalidAPIKeyWarning:()=>bi,MAX_VALID_DATE:()=>qa,MIN_VALID_DATE:()=>lT,NotFoundError:()=>qu,NotImplementedError:()=>ju,RedisClient:()=>Re,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,UnexpectedError:()=>Vu,UsageLimitError:()=>Yu,UsageLimitWarning:()=>Dc,UserStatus:()=>Va,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt,accounts:()=>On,auth:()=>zm,blacklist:()=>pp,cache:()=>Di,configs:()=>tr,constants:()=>nf,context:()=>le,csv:()=>dh,db:()=>Ir,docIds:()=>Hf,docUpdates:()=>th,encryption:()=>Gm,env:()=>E,errors:()=>Ju,events:()=>wn,features:()=>km,getErrorMessage:()=>VA,getPublicError:()=>zu,init:()=>mF,installation:()=>rc,locks:()=>xr,logging:()=>uo,middleware:()=>Ym,objectStore:()=>bp,permissions:()=>Pm,platform:()=>ho,plugins:()=>Xm,queue:()=>Up,redis:()=>Zm,roles:()=>Nm,security:()=>Hp,sessions:()=>Xu,setEnv:()=>Ps,sql:()=>lh,tenancy:()=>pF,timers:()=>Du,userUtils:()=>cm,users:()=>Ii,utils:()=>di,warnings:()=>$m,withEnv:()=>hT});module.exports=VO(hF);var tr={};P(tr,{analyticsEnabled:()=>Zu,generateConfigID:()=>Lo,getConfig:()=>Ge,getDefaultGoogleConfig:()=>Tm,getGoogleConfig:()=>mc,getGoogleDatasourceConfig:()=>Am,getOIDCConfig:()=>yk,getOIDCConfigById:()=>_m,getOIDCLogosDoc:()=>gk,getPlatformUrl:()=>Uo,getRecaptchaConfig:()=>Ak,getSCIMConfig:()=>Sk,getSMTPConfig:()=>Tk,getSMTPConfigDoc:()=>M_,getSettingsConfig:()=>Sm,getSettingsConfigDoc:()=>wi,getTranslationsConfig:()=>mk,getTranslationsConfigDoc:()=>k_,save:()=>pk});var qO=["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"],KO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],mh=[...qO,...KO],hh={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":'AI configuration "{{ name }}" created',"ai:config:updated":'AI configuration "{{ name }}" updated',"ai:config:deleted":'AI configuration "{{ name }}" deleted',"ai:agent:created":'AI agent "{{ name }}" created',"ai:agent:updated":'AI agent "{{ name }}" updated',"ai:agent:deleted":'AI agent "{{ name }}" deleted',"rag:file:uploaded":void 0,"rag:file:deleted":void 0,"rag:file:sharepoint:connected":void 0,"rag:file:sharepoint:disconnected":void 0,"rag:file:sharepoint:sync":void 0,"rag:file:processed":void 0,"auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:automation_step:failed":void 0,"action:crud:executed":void 0,"action:crud:failed":void 0,"action:ai_agent:executed":void 0,"action:ai_agent:failed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0,"resource:copied_to_workspace":"{{ resource.type }} copied to workspace"};var $c=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))($c||{}),Vc=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.SENSITIVE_LONGFORM="sensitiveLongForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))(Vc||{}),Vo=(T=>(T.AIRTABLE="AIRTABLE",T.ARANGODB="ARANGODB",T.BUDIBASE="BUDIBASE",T.COUCHDB="COUCHDB",T.DYNAMODB="DYNAMODB",T.ELASTICSEARCH="ELASTICSEARCH",T.FIRESTORE="FIRESTORE",T.GOOGLE_SHEETS="GOOGLE_SHEETS",T.MONGODB="MONGODB",T.MYSQL="MYSQL",T.ORACLE="ORACLE",T.POSTGRES="POSTGRES",T.REDIS="REDIS",T.REST="REST",T.S3="S3",T.SNOWFLAKE="SNOWFLAKE",T.SQL_SERVER="SQL_SERVER",T))(Vo||{});var qc=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(qc||{});var QO=W(require("lodash/isPlainObject"));var Vr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Vr||{}),cr=(o=>(o.CONTAINS="contains",o.NOT_CONTAINS="notContains",o.CONTAINS_ANY="containsAny",o.ONE_OF="oneOf",o.NOT_ONE_OF="notOneOf",o))(cr||{}),xn=(e=>(e.RANGE="range",e))(xn||{}),Li=(r=>(r.AND="$and",r.OR="$or",r))(Li||{});function qo(t){return Object.values(Li).includes(t)}s(qo,"isLogicalSearchOperator");function gh(t){return Object.values(Vr).includes(t)}s(gh,"isBasicSearchOperator");function Eh(t){return Object.values(cr).includes(t)}s(Eh,"isArraySearchOperator");function Ko(t){return Object.values(xn).includes(t)}s(Ko,"isRangeSearchOperator");var yh=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Ui=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Ui||{});var ki=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ki||{});var Qo=(f=>(f.WORKSPACE="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(Qo||{});var jo=s(t=>t.hosting==="cloud","isCloudAccount");var Ho=s(t=>t.authType==="sso","isSSOAccount");var D="_",Ne="\uFFF0",Ot=s(t=>`${t}_`,"prefixed"),ae=($=>($.USER="us",$.GROUP="gr",$.CONFIG="config",$.TEMPLATE="template",$.WORKSPACE="app",$.DEV="dev",$.WORKSPACE_DEV="app_dev",$.WORKSPACE_METADATA="app_metadata",$.ROLE="role",$.DEV_INFO="devinfo",$.AUTOMATION_LOG="log_au",$.ACCOUNT_METADATA="acc_metadata",$.PLUGIN="plg",$.DATASOURCE="datasource",$.DATASOURCE_PLUS="datasource_plus",$.WORKSPACE_BACKUP="backup",$.TABLE="ta",$.ROW="ro",$.AUTOMATION="au",$.LINK="li",$.WEBHOOK="wh",$.INSTANCE="inst",$.LAYOUT="layout",$.SCREEN="screen",$.QUERY="query",$.DEPLOYMENTS="deployments",$.METADATA="metadata",$.MEM_VIEW="view",$.USER_FLAG="flag",$.AUTOMATION_METADATA="meta_au",$.AUDIT_LOG="al",$.SCIM_LOG="scimlog",$.ROW_ACTIONS="ra",$.OAUTH2_CONFIG="oauth2",$.OAUTH2_CONFIG_LOG="oauth2log",$.AGENT="agent",$.CHAT_APP="chatapp",$.CHAT_CONVERSATION="chatconvo",$.CHAT_IDENTITY_LINK="chatidentitylink",$.AGENT_TOOL_SOURCE="agenttoolsource",$.AGENT_FILE="agentfile",$.AGENT_LOG_SESSION="agentlogsession",$.AGENT_LOG_REQUEST="agentlogrequest",$.AGENT_REQUEST="agentrequest",$.AGENT_TEST_SUITE="agenttestsuite",$.AGENT_TEST_RUN="agenttestrun",$.AGENT_KNOWLEDGE_SOURCE_SYNC_STATE="agentknowledgesync",$.AGENT_KNOWLEDGE_SOURCE_CONNECTION="agentknowledgeconn",$.KNOWLEDGE_BASE_FILE="knowledgebasefile",$.AI_CONFIG="aiconfig",$.LITELLM_KEY="litellmkey",$.KNOWLEDGE_BASE="knowledgebase",$.WORKSPACE_APP="workspace_app",$.WORKSPACE_FAVOURITE="workspace_favourite",$.PROJECT="project",$.AUTO_COLUMN_STATE="autocolumn_state",$.ESCALATION_CONTEXT="escalation_context",$.ESCALATION_NOTIFICATION="escalation_notification",$))(ae||{});var It=(e=>(e.USER_METADATA="ta_users",e))(It||{});function vn(t){return!!t.providerType}s(vn,"isSSOUser");var Kc=(f=>(f.OBJECT="object",f.STRING="string",f.BOOLEAN="boolean",f.NUMBER="number",f.ARRAY="array",f.JSON="json",f.DATE="date",f.DATETIME="datetime",f.ATTACHMENT="attachment",f.LONGFORM="longform",f.JS="javascript",f))(Kc||{}),Qc=(C=>(C.TABLE="table",C.ROW="row",C.ROWS="rows",C.WIDE="wide",C.QUERY="query",C.QUERY_PARAMS="queryParams",C.QUERY_LIMIT="queryLimit",C.LOOP_OPTION="loopOption",C.ITEM="item",C.CODE="code",C.FILTERS="filters",C.COLUMN="column",C.TRIGGER_SCHEMA="triggerSchema",C.CRON="cron",C.WEBHOOK_URL="webhookUrl",C.AUTOMATION="automation",C.AUTOMATION_FIELDS="automationFields",C.MULTI_ATTACHMENTS="multi_attachments",C.TRIGGER_FILTER="trigger_filter",C.CATEGORIES="categories",C.AGENT="agent",C.OUTPUT_SCHEMA="outputSchema",C))(Qc||{}),jc=(c=>(c.ROW_SAVED="ROW_SAVED",c.ROW_UPDATED="ROW_UPDATED",c.ROW_DELETED="ROW_DELETED",c.WEBHOOK="WEBHOOK",c.APP="APP",c.CRON="CRON",c.ROW_ACTION="ROW_ACTION",c.EMAIL="EMAIL",c))(jc||{});var Hc=(B=>(B.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",B.CREATE_ROW="CREATE_ROW",B.GET_ROW="GET_ROW",B.UPDATE_ROW="UPDATE_ROW",B.DELETE_ROW="DELETE_ROW",B.QUERY_ROWS="QUERY_ROWS",B.EXECUTE_BASH="EXECUTE_BASH",B.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",B.EXECUTE_SCRIPT="EXECUTE_SCRIPT",B.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",B.EXECUTE_QUERY="EXECUTE_QUERY",B.SERVER_LOG="SERVER_LOG",B.DELAY="DELAY",B.FILTER="FILTER",B.API_REQUEST="API_REQUEST",B.LOOP="LOOP",B.COLLECT="COLLECT",B.OPENAI="OPENAI",B.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",B.BRANCH="BRANCH",B.CLASSIFY_CONTENT="CLASSIFY_CONTENT",B.PROMPT_LLM="PROMPT_LLM",B.TRANSLATE="TRANSLATE",B.SUMMARISE="SUMMARISE",B.GENERATE_TEXT="GENERATE_TEXT",B.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",B.EXTRACT_STATE="EXTRACT_STATE",B.LOOP_V2="LOOP_V2",B.AGENT="AGENT",B.ESCALATION="ESCALATION",B.discord="discord",B.slack="slack",B.zapier="zapier",B.integromat="integromat",B.n8n="n8n",B))(Hc||{}),Th=[...Object.values(Hc),...Object.values(jc)];function Sh(t){return t.stepId==="BRANCH"}s(Sh,"isBranchStep");var Yc="bb_internal";var Ah=["attachment_single","attachment","signature_single","bb_reference","json","array"];var nf={};P(nf,{AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,Config:()=>rf,Cookie:()=>yr,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DEFAULT_TENANT_ID:()=>ce,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,GlobalRole:()=>tf,Header:()=>Pe,InternalTable:()=>It,MAX_VALID_DATE:()=>qa,MIN_VALID_DATE:()=>lT,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,UserStatus:()=>Va,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt});var Pe=(I=>(I.API_KEY="x-budibase-api-key",I.LICENSE_KEY="x-budibase-license-key",I.API_VER="x-budibase-api-version",I.WORKSPACE_ID="x-budibase-app-id",I.SESSION_ID="x-budibase-session-id",I.CLIENT="x-budibase-client",I.TYPE="x-budibase-type",I.PREVIEW_ROLE="x-budibase-role",I.TENANT_ID="x-budibase-tenant-id",I.VERIFICATION_CODE="x-budibase-verification-code",I.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",I.RESET_PASSWORD_CODE="x-budibase-reset-password-code",I.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",I.TOKEN="x-budibase-token",I.CSRF_TOKEN="x-csrf-token",I.CORRELATION_ID="x-budibase-correlation-id",I.AUTHORIZATION="authorization",I.MIGRATING_APP="x-budibase-migrating-app",I.SKIP_MIGRATING_WAIT="x-budibase-migrating-app-skip-wait",I.COOKIE="cookie",I))(Pe||{});var Nn={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Mi={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var Le={Equals:{value:"equal",label:"Equals"},NotEquals:{value:"notEqual",label:"Not equals"},Empty:{value:"empty",label:"Is empty"},NotEmpty:{value:"notEmpty",label:"Is not empty"},StartsWith:{value:"string",label:"Starts with"},Like:{value:"fuzzy",label:"Like"},MoreThan:{value:"rangeLow",label:"More than or equal to"},LessThan:{value:"rangeHigh",label:"Less than or equal to"},Contains:{value:"contains",label:"Contains"},NotContains:{value:"notContains",label:"Does not contain"},In:{value:"oneOf",label:"Is in"},NotIn:{value:"notOneOf",label:"Is not in"},ContainsAny:{value:"containsAny",label:"Has any"}},_h={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Pn="datasource_internal_bb_default";var Er={};P(Er,{ColumnSplitter:()=>kd,NoEmptyFilterStrings:()=>nT,buildQuery:()=>iT,cleanupQuery:()=>Bd,fixupFilterArrays:()=>Gd,getKeyNumbering:()=>Wd,getValidOperatorsForType:()=>Pb,hasFilters:()=>Md,limit:()=>aT,multiSort:()=>oT,recurseLogicalOperators:()=>Fd,removeKeyNumbering:()=>Yo,runQuery:()=>Ma,search:()=>kb,sort:()=>sT,splitFiltersArray:()=>zo});var zn=W(Oh());var wt={};P(wt,{filterValueToLabel:()=>XO,hasSchema:()=>ZO,isSupportedUserSearch:()=>Rh,nameToUrl:()=>iI,parallelForeach:()=>JO,processSearchFilters:()=>Xc,toMap:()=>tI,trimOtherProps:()=>eI,unreachable:()=>zO});var wh=W(require("lodash/pick"));var YO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function zO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(zO,"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 XO(){return Object.keys(Le).reduce((t,e)=>{let n=Le[e];return t[n.value]=n.label,t},{})}s(XO,"filterValueToLabel");function ZO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(ZO,"hasSchema");function eI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(eI,"trimOtherProps");function Rh(t){let e=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(qo(o)){for(let l of t[o].conditions)if(!Rh(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!e.find(l=>l.op===o&&u.length===1&&u[0]===l.key))return!1}return!0}s(Rh,"isSupportedUserSearch");function Xc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=zo(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,wh.default)(i,YO);return o.field=Yo(o.field),o})}]}}s(Xc,"processSearchFilters");function tI(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(tI,"toMap");var rI=s(t=>t?t.trim():null,"resolveWorkspaceName"),nI=s(t=>{let e,r=rI(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),iI=s(t=>{let e=nI(t);return sI(e)},"nameToUrl"),sI=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var ke={};P(ke,{accountPortalAccountUrl:()=>Rd,accountPortalBillingUrl:()=>Cd,accountPortalUpgradeUrl:()=>Dd,agentChatUrl:()=>Ld,appAgentUrl:()=>Ua,appChatUrl:()=>La,applyBaseUrl:()=>zy,builderAppsUrl:()=>Pd,builderSettingsAuthUrl:()=>vd,builderSettingsEmailUrl:()=>xd,builderSettingsPeopleUsersUrl:()=>Nd,builderWorkspacesUrl:()=>bd,cancelableTimeout:()=>Ch,cron:()=>bb,deepGet:()=>Zc,duplicateName:()=>Ob,escapeHtml:()=>lI,formatBytes:()=>Db,getNextPreviewDevice:()=>Sb,getPreviewDeviceIcon:()=>Ab,getPreviewModalDevice:()=>_b,getSequentialName:()=>Ib,getUserColor:()=>aI,getUserInitials:()=>oI,getUserLabel:()=>uI,isEnvironmentVariableKey:()=>eT,isGoogleSheets:()=>fI,isSQL:()=>pI,lists:()=>Id,normaliseSafeCssColor:()=>hI,normalizeForComparison:()=>dI,retry:()=>mI,roles:()=>Od,schema:()=>ws,structuredOutput:()=>Sd,urlHelpers:()=>Zy,views:()=>_d,wait:()=>el,withTimeout:()=>cI});var Zc=s((t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},"deepGet"),oI=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"),aI=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"),uI=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function Ch(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(Ch,"cancelableTimeout");async function cI(t,e){let[r,n]=Ch(t),i=await Promise.race([e(),r]);return n(),i}s(cI,"withTimeout");var lI=s(t=>t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeHtml"),dI=s(t=>t.toLowerCase().trim(),"normalizeForComparison");function fI(t){return t==="GOOGLE_SHEETS"}s(fI,"isGoogleSheets");function pI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(pI,"isSQL");async function el(t){return new Promise(e=>setTimeout(e,t))}s(el,"wait");async function mI(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let o=1.5**i*1e3*(Math.random()+.5);await el(o);try{return await t()}catch(a){n=a}}throw n}s(mI,"retry");var hI=s(t=>{if(t==null||t.trim()==="")return;let e=t.trim();if(e.includes(";")||/\burl\s*\(/i.test(e))throw new Error("Color is invalid.");return e},"normaliseSafeCssColor");var Ky=W(Rt()),Qy=W(Vy());var qy="(Input cron: ",nb={"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 ib(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(ib,"formatExecutionDate");function sb(t){let e=[];for(let r of t){r.includes(qy)&&(r=r.split(qy)[0].trim());for(let[n,i]of Object.entries(nb))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(sb,"improveErrors");function jy(t,e=4,r){let n=Qy.default.parseExpression(t,r?{tz:r}:void 0),i=[];for(let o=0;o<e;o++)i.push(ib(n.next().toDate(),r));return i}s(jy,"getNextExecutionDates");function Hy(t){let e=(0,Ky.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:sb(e.getError())}}s(Hy,"validate");var ws={};P(ws,{decodeNonAscii:()=>Td,encodeNonAscii:()=>ub,isDeprecatedSingleUserColumn:()=>ob,isNumeric:()=>cb,isRequired:()=>ab});function ob(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(ob,"isDeprecatedSingleUserColumn");function ab(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(ab,"isRequired");function ub(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(ub,"encodeNonAscii");function Td(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(Td,"decodeNonAscii");function cb(t){return t.type==="number"||t.type==="bigint"}s(cb,"isNumeric");var Sd={};P(Sd,{normalizeSchemaForStructuredOutput:()=>lb});function lb(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(lb,"normalizeSchemaForStructuredOutput");var _d={};P(_d,{basicFields:()=>hb,calculationFields:()=>mb,hasCalculationFields:()=>pb,isBasicViewField:()=>db,isCalculationField:()=>Rs,isCalculationView:()=>fb,isV2:()=>gb,isVisible:()=>Yy});var Ad=W(require("lodash/pickBy"));function Rs(t){return"calculationType"in t}s(Rs,"isCalculationField");function db(t){return!Rs(t)}s(db,"isBasicViewField");function fb(t){return t.type==="calculation"}s(fb,"isCalculationView");function pb(t){return Object.values(t.schema||{}).some(Rs)}s(pb,"hasCalculationFields");function mb(t){return(0,Ad.default)(t.schema||{},Rs)}s(mb,"calculationFields");function Yy(t){return t.visible!==!1}s(Yy,"isVisible");function hb(t,e){let{visible:r=!0}=e||{};return(0,Ad.default)(t.schema||{},n=>!Rs(n)&&(!r||Yy(n)))}s(hb,"basicFields");function gb(t){return t.version===2}s(gb,"isV2");var Od={};P(Od,{checkForRoleInheritanceLoops:()=>yb});function Eb(t){return`role${"_"}${t}`}s(Eb,"prefixForCheck");function yb(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=Eb(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(yb,"checkForRoleInheritanceLoops");var Id={};P(Id,{punctuateList:()=>Tb});function Tb(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(Tb,"punctuateList");var wd=["desktop","tablet","mobile"],Sb=s(t=>{let e=wd.indexOf(t||"desktop"),n=((e===-1?0:e)+1)%wd.length;return wd[n]},"getNextPreviewDevice"),Ab=s(t=>t==="mobile"?"device-mobile-camera":t==="tablet"?"device-tablet-camera":"monitor","getPreviewDeviceIcon"),_b=s(t=>t&&t!=="desktop"?t:null,"getPreviewModalDevice");var Ob=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"),Ib=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 wb=/{?{{([^{].*?)}}}?/g;function zy(t,e){if(!e)return t;let r=t.match(wb)??[],n=[],i=t;for(let l of r){let d=`:${l}`;i.includes(d)&&(n.push(l),i=i.replace(d,":0"))}let o=s(l=>`__hbs${l}__`,"placeholder"),a=r.filter(l=>!n.includes(l));i=a.reduce((l,d,f)=>l.replace(d,o(f)),i);let u=s(l=>a.reduce((d,f,g)=>d.replace(o(g),f),l),"restore"),c=e.replace(/\/$/,"");try{let l=new URL(i),d=l.pathname==="/"?"":l.pathname;return c+u(d+l.search+l.hash)}catch{let l=u(i);return l.startsWith("/")?c+l:c}}s(zy,"applyBaseUrl");var Jy=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),Rb=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),qt=s((t,e)=>{let r=Jy(e);if(!t)return r;let n=Rb(t);return r?`${n}${r}`:n},"joinBaseAndPath"),Cb=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),Xy=s(t=>Cb(Jy(t)),"normalizeAppUrl"),Rd=s(t=>qt(t,Mi.ACCOUNT),"accountPortalAccountUrl"),Cd=s((t,e)=>{let r=typeof e=="string"||e==null?{tenantId:e}:e,n=qt(t,Mi.BILLING),i=new URLSearchParams;r?.tenantId&&i.set("tenantId",r.tenantId),r?.purchasePrepaidAiCredits&&i.set("purchasePrepaidAiCredits","1");let o=i.toString();return o?`${n}?${o}`:n},"accountPortalBillingUrl"),Dd=s((t,e)=>{if(e){let r=qt(t,Mi.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return qt(t,Mi.UPGRADE)},"accountPortalUpgradeUrl"),bd=s(t=>qt(t,Nn.WORKSPACES),"builderWorkspacesUrl"),xd=s(t=>qt(t,Nn.SETTINGS_EMAIL),"builderSettingsEmailUrl"),vd=s(t=>qt(t,Nn.SETTINGS_AUTH),"builderSettingsAuthUrl"),Nd=s(t=>qt(t,Nn.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Pd=s(t=>qt(t,Nn.APPS),"builderAppsUrl"),La=s(t=>`/app-chat${Xy(t)}`,"appChatUrl"),Ua=s((t,e)=>`${Xy(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),Ld=s((t,e)=>La(Ua(t,e)),"agentChatUrl"),Zy={accountPortalAccountUrl:Rd,accountPortalBillingUrl:Cd,accountPortalUpgradeUrl:Dd,builderWorkspacesUrl:bd,builderSettingsEmailUrl:xd,builderSettingsAuthUrl:vd,builderSettingsPeopleUsersUrl:Nd,builderAppsUrl:Pd,appChatUrl:La,appAgentUrl:Ua,agentChatUrl:Ld};function Db(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(Db,"formatBytes");function eT(t){return/^{{\s*env\.([^\s]+)\s*}}$/.test(String(t))}s(eT,"isEnvironmentVariableKey");var bb={getNextExecutionDates:jy,validate:Hy};var ka=W(require("lodash/isPlainObject")),Ud=W(require("lodash/isEmpty"));var vb=/{{([^{].*?)}}/g,rT=Object.values(Li),Nb=[...Object.values(Vr),...Object.values(cr),...Object.values(xn)],Pb=s((t,e,r)=>{let n=Le,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In,n.NotIn],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:d}=t;c==="string"?d==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||ws.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let f=r?.tableId?.includes("datasource_plus");return e==="_id"&&f&&(u=[n.Equals,n.NotEquals,n.In,n.NotIn]),u},"getValidOperatorsForType"),nT=[Le.StartsWith.value,Le.Like.value,Le.Equals.value,Le.NotEquals.value,Le.Contains.value,Le.NotContains.value,Le.ContainsAny.value,Le.In.value,Le.NotIn.value];function Fd(t,e){for(let r of rT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Fd,"recurseLogicalOperators");var Bd=s(t=>{for(let e of nT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,o]of Object.entries(t[r]))(o==null||o===""||Lb(o))&&delete t[e][i]}return t=Fd(t,Bd),t},"cleanupQuery");function Lb(t){return Array.isArray(t)&&t.length===0}s(Lb,"isEmptyArray");var Yo=s(t=>Wd(t).key,"removeKeyNumbering"),Wd=s(t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},"getKeyNumbering"),kd=class{static{s(this,"ColumnSplitter")}constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=Wd(e),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let o;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),o=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=Td(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function Ub(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(vb)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Ko(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"||r==="notOneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(Ko(r)){let l=_h[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],low:a};else if(gh(r)||Eh(r)||Ko(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(Ub,"buildCondition");function zo(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}s(zo,"splitFiltersArray");function iT(t){if(!t)return{};if(Array.isArray(t)&&(t=Xc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=tT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=iT(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=zo(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=tT(n.logicalOperator)),{[u]:{conditions:a.map(Ub).filter(c=>c)}}})},e}s(iT,"buildQuery");function tT(t){return t==="all"?"$and":"$or"}s(tT,"logicalOperatorFromUI");function Gd(t){if(!t)return t;for(let e of Object.values(cr)){let r=t[e];if(!(r==null||!(0,ka.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(o=>o.trim()):r[n]=[i]}}return Fd(t,Gd),t}s(Gd,"fixupFilterArrays");function kb(t,e){let r=Ma(t,e.query);typeof e.sort=="string"?r=sT(r,e.sort,e.sortOrder||"ascending",e.sortType):e.sort&&(r=oT(r,e.sort));let n=r.length;e.limit&&(r=aT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(kb,"search");function Ma(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Bd(e),e=Gd(e),!Md(e)&&e.onEmptyFilter==="none")return[];let r=s((R,w)=>b=>{for(let[G,ee]of Object.entries(e[R]||{})){let M=qo(R)?b:Zc(b,Yo(G)),U=w(M,ee);if(e.allOr&&U)return!0;if(!e.allOr&&!U)return!1}return!e.allOr},"match"),n=r("string",(R,w)=>typeof R!="string"||typeof w!="string"?!1:R.toLowerCase().startsWith(w.toLowerCase())),i=r("fuzzy",(R,w)=>typeof R!="string"||typeof w!="string"?!1:R.toLowerCase().includes(w.toLowerCase())),o=r("range",(R,w)=>{if(R==null||R===""||((0,ka.default)(w.low)&&(0,Ud.default)(w.low)&&(w.low=void 0),(0,ka.default)(w.high)&&(0,Ud.default)(w.high)&&(w.high=void 0),w.low==null&&w.high==null))return!1;let b=+R;if(!isNaN(b)){let ee=+w.low,M=+w.high;if(!isNaN(ee)&&!isNaN(M))return b>=ee&&b<=M;if(isNaN(ee)){if(!isNaN(M))return b<=M}else return b>=ee}let G=(0,zn.default)(R);if(G.isValid()){let ee=(0,zn.default)(w.low||"0000-00-00T00:00:00.000Z"),M=(0,zn.default)(w.high||"9999-00-00T00:00:00.000Z");if(ee.isValid()&&M.isValid())return G.isAfter(ee)&&G.isBefore(M)||G.isSame(ee)||G.isSame(M);if(ee.isValid())return G.isAfter(ee)||G.isSame(ee);if(M.isValid())return G.isBefore(M)||G.isSame(M)}return w.low!=null&&w.high!=null?R>=w.low&&R<=w.high:w.low!=null?R>=w.low:w.high!=null?R<=w.high:!1}),a=s((R,w)=>{if(Array.isArray(R)){for(let G of R)if(a(G,w))return!0;return!1}if(R&&typeof R=="object"&&typeof w=="string")return R._id===w;if(R===w)return!0;if(R==null&&w!=null||R!=null&&w==null)return!1;let b=(0,zn.default)(R);if(b.isValid()){let G=(0,zn.default)(w);if(G.isValid())return b.isSame(G)}return!1},"_valueMatches"),u=s(R=>(...w)=>!R(...w),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(R=>typeof R=="string"?R==="":Array.isArray(R)?R.length===0:R&&typeof R=="object"?Object.keys(R).length===0:R==null,"_empty"),f=r("empty",d),g=r("notEmpty",u(d)),m=s((R,w)=>(typeof w=="string"&&(w=w.split(",")),typeof R=="number"&&(w=w.map(b=>parseFloat(b))),Array.isArray(w)?w.some(b=>a(R,b)):!1),"_oneOf"),y=r("oneOf",m),h=r("notOneOf",u(m)),p=s(R=>(w,b)=>!Array.isArray(w)||(typeof b=="string"&&(b=b.split(","),typeof w[0]=="number"&&(b=b.map(G=>parseFloat(G)))),!Array.isArray(b))?!1:b.length===0?!0:b[R](G=>a(w,G)),"_contains"),T=r("contains",(R,w)=>Array.isArray(w)&&w.length===0?!0:p("every")(R,w)),A=r("notContains",(R,w)=>Array.isArray(w)&&w.length===0?!0:u(p("every"))(R,w)),_=r("containsAny",p("some")),I=r("$and",(R,w)=>{if(!w.length)return!1;for(let b of w)if(!Ma([R],b).length)return!1;return!0}),O=r("$or",(R,w)=>{if(!w.length)return!1;for(let b of w)if(Ma([R],{...b,allOr:!0}).length)return!0;return!1}),C=s(R=>{let w={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:g,oneOf:y,notOneOf:h,contains:T,containsAny:_,notContains:A,$and:I,$or:O},b=Object.entries(e||{}).filter(([G,ee])=>!["allOr","onEmptyFilter"].includes(G)&&ee&&Object.keys(ee).length>0).map(([G])=>w[G]?.(R)??!1);return Md(e)?e.allOr?b.some(G=>G===!0):b.every(G=>G===!0):!0},"docMatch");return t.filter(C)}s(Ma,"runQuery");function sT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return t.slice().sort((o,a)=>{let u=i(o[e]),c=i(a[e]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(sT,"sort");function oT(t,e){let r=Object.entries(e);if(!r.length)return t;let n=s((i,o)=>i==null?i:o==="number"?parseFloat(i):`${i}`,"parse");return t.slice().sort((i,o)=>{for(let[a,u]of r){let c=n(i[a],u.type),l=n(o[a],u.type);if(c===l)continue;let d;return c==null?d=-1:l==null||c>l?d=1:d=-1,u.direction==="descending"?d*-1:d}return 0})}s(oT,"multiSort");function aT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(aT,"limit");var Md=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of rT)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of Nb){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return e(t)},"hasFilters");var Me={};P(Me,{automations:()=>qd,screens:()=>Hd,users:()=>jd,workspaces:()=>Vd});var Vd={};P(Vd,{getDevWorkspaceID:()=>Mb,getProdWorkspaceID:()=>Ds});var $d=Ot("app"),Cs=Ot("app_dev");function Mb(t){if(!t)throw new Error("No workspace ID provided");if(t.startsWith(Cs))return t;let e=t.split($d);e.shift();let r=e.join($d);return`${Cs}${r}`}s(Mb,"getDevWorkspaceID");function Ds(t){if(!t)throw new Error("No workspace ID provided");if(!t.startsWith(Cs))return t;let e=t.split(Cs);e.shift();let r=e.join(Cs);return`${$d}${r}`}s(Ds,"getProdWorkspaceID");var qd={};P(qd,{checkForCollectStep:()=>Gb,isAppAction:()=>Wb,isRowAction:()=>Fb,isWebhookAction:()=>Bb});function Fb(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(Fb,"isRowAction");function Bb(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(Bb,"isWebhookAction");function Wb(t){return t.definition.trigger?.stepId==="APP"}s(Wb,"isAppAction");function uT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Sh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(uT(r))return!0}}return!1}s(uT,"hasCollectBlockRecursive");function Gb(t){return uT(t.definition.steps)}s(Gb,"checkForCollectStep");var jd={};P(jd,{canCreateApps:()=>$b,containsUserID:()=>zb,getGlobalUserID:()=>Yb,getUserAppGroups:()=>Jb,hasAdminPermissions:()=>Qd,hasAppBuilderPermissions:()=>Ba,hasBuilderPermissions:()=>jb,hasCreatorPermissions:()=>Wa,isAdmin:()=>bs,isAdminOrBuilder:()=>qb,isAdminOrGlobalBuilder:()=>Kb,isAdminOrWorkspaceBuilder:()=>Vb,isBuilder:()=>Kd,isCreator:()=>Hb,isGlobalBuilder:()=>Fa,userAppAccessList:()=>Xb});function Kd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Ds(e))):!1}s(Kd,"isBuilder");function Fa(t){return Kd(t)&&!Ba(t)||bs(t)}s(Fa,"isGlobalBuilder");function $b(t){return Fa(t)||Wa(t)}s($b,"canCreateApps");function bs(t){return t?Qd(t):!1}s(bs,"isAdmin");function Vb(t,e){return t?!!(bs(t)||e&&t.builder?.apps?.includes(Ds(e))):!1}s(Vb,"isAdminOrWorkspaceBuilder");function qb(t,e){return Kd(t,e)||bs(t)}s(qb,"isAdminOrBuilder");function Kb(t){return Fa(t)||bs(t)}s(Kb,"isAdminOrGlobalBuilder");function Ba(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Ba,"hasAppBuilderPermissions");function Qb(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(Qb,"hasAppCreatorPermissions");function jb(t){return t?t.builder?.global||Ba(t)||Wa(t):!1}s(jb,"hasBuilderPermissions");function Qd(t){return t?!!t.admin?.global:!1}s(Qd,"hasAdminPermissions");function Wa(t){return t?!!t.builder?.creator:!1}s(Wa,"hasCreatorPermissions");function Hb(t){return t?Fa(t)||Qd(t)||Wa(t)||Ba(t)||Qb(t):!1}s(Hb,"isCreator");function Yb(t){if(typeof t!="string")return t;let e=`ro${"_"}ta_users${"_"}`;return t.startsWith(e)?t.split(e)[1]:t}s(Yb,"getGlobalUserID");function zb(t){return typeof t!="string"?!1:t.includes(`us${"_"}`)}s(zb,"containsUserID");function cT(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(cT,"getUserGroups");function Jb(t,e,r){let n=Ds(t);return cT(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(Jb,"getUserAppGroups");function Xb(t,e){let n=cT(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Xb,"userAppAccessList");var Hd={};P(Hd,{findInSettings:()=>Zb});function Zb(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(Zb,"findInSettings");var Ga=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ga||{}),Kt=(h=>(h.USER_BY_WORKSPACE="by_app",h.USER_BY_EMAIL="by_email2",h.BY_API_KEY="by_api_key",h.AGENT_REQUESTS_BY_AGENT="agent_requests_by_agent",h.AGENT_REQUESTS_BY_UPDATED_AT="agent_requests_by_updated_at_2",h.AGENT_REQUESTS_BY_STATUS_AND_UPDATED_AT="agent_requests_by_status_and_updated_at",h.LINK="by_link",h.ROUTING="screen_routes_2",h.PROJECT_MEMBERS="project_members",h.AUTOMATION_LOGS="automation_logs",h.ACCOUNT_BY_EMAIL="account_by_email",h.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",h.USER_BY_GROUP="user_by_group",h.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",h.WORKSPACE_BACKUP_BY_EXPIRY="workspace_backup_by_expiry",h))(Kt||{}),Jn={by_email2:["by_email"],agent_requests_by_updated_at_2:["agent_requests_by_updated_at"]},pe={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},rt=Ot("app"),$a=Ot("app_dev"),nt=$a,Yd="internal",zd="budibase",xt="_design/sqlite",Jd="ta_bb_jobs",Xd="ta_bb_inventory",Zd="ta_bb_expenses",ef="ta_bb_employee",xs=`ro${"_"}ta_users${"_"}`,vs=(r=>(r[r.SQLITE=xt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(vs||{});var Va=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Va||{}),yr=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(yr||{}),tf=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(tf||{}),rf=(c=>(c.SETTINGS="settings",c.ACCOUNT="account",c.SMTP="smtp",c.GOOGLE="google",c.OIDC="oidc",c.OIDC_LOGOS="logos_oidc",c.SCIM="scim",c.AI="AI",c))(rf||{}),lT=new Date(-2147483647e3),qa=new Date(2147483647e3),ce="default";var Di={};P(Di,{CacheKey:()=>Oe,TTL:()=>gi,bustCache:()=>Ei,destroy:()=>fo,docWritethrough:()=>Mp,generic:()=>Gu,get:()=>lo,increment:()=>NA,invite:()=>An,keys:()=>Wu,passwordReset:()=>Gp,store:()=>yn,user:()=>nr,withCache:()=>br,withCacheWithDynamicTTL:()=>vA,workspace:()=>Vs,writethrough:()=>ym});var Mp={};P(Mp,{DocWritethrough:()=>kp,DocWritethroughProcessor:()=>co,getProcessor:()=>sP,init:()=>xA});var Up={};P(Up,{BudibaseQueue:()=>yt,InMemoryQueue:()=>Cu,JobQueue:()=>fi,QueuedProcessor:()=>Lp,UnretriableError:()=>Fu,shutdown:()=>TN});var sf=require("crypto"),Qa=require("fs"),pT=require("lodash"),Ns=require("path");var ex=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Ns.resolve)((0,Ns.join)(__dirname,"..","..","..")),dT=!1;!dT&&Ka()&&!of()&&(require("dotenv").config({path:(0,Ns.join)(ex,".env")}),dT=!0);function of(){return mT()}s(of,"isTest");function mT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(mT,"isJest");function Ka(){return process.env.NODE_ENV!=="production"}s(Ka,"isDev");function tx(t){if(t)return parseInt(t)}s(tx,"parseIntSafe");var Xn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},fT=!!parseInt(process.env.SELF_HOSTED||"");function rx(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(rx,"getAPIEncryptionKey");function nx(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(nx,"httpLogging");function ix(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Qa.existsSync)(l))return l;let d=`${c}/..`;return d===c?null:n(u,d)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Qa.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(Ka()&&!of())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(ix,"getPackageJsonFields");function sx(){return ht.SERVICE_TYPE==="worker"}s(sx,"isWorker");function ox(){return ht.SERVICE_TYPE==="apps"}s(ox,"isApps");function ax(){return ht.BUDIBASE_ENVIRONMENT==="QA"}s(ax,"isQA");function ux(){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(ux,"getServiceName");var ht={isTest:of,isJest:mT,isDev:Ka,isWorker:sx,isApps:ox,isQA:ax,isProd:s(()=>!Ka(),"isProd"),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,sf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,sf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:rx(),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:fT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS:process.env.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Xn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Xn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Xn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Xn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Xn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Xn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:ux(),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:nx(),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:fT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING:process.env.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING,...ix(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,ht[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:tx(process.env.BSON_BUFFER_SIZE),CUSTOM_CSP_MEDIA_SRC:process.env.CUSTOM_CSP_MEDIA_SRC,CUSTOM_CSP_SCRIPT_SRC:process.env.CUSTOM_CSP_SCRIPT_SRC,CUSTOM_CSP_CONNECT_SRC:process.env.CUSTOM_CSP_CONNECT_SRC,CUSTOM_CSP_IMG_SRC:process.env.CUSTOM_CSP_IMG_SRC,CUSTOM_CSP_FONT_SRC:process.env.CUSTOM_CSP_FONT_SRC,CUSTOM_CSP_FRAME_SRC:process.env.CUSTOM_CSP_FRAME_SRC,OPENROUTER_BASE_URL:process.env.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1",COUCH_DB_SQS_PORT:process.env.COUCH_DB_SQS_PORT||"4984"};function Ps(t){let e=(0,pT.cloneDeep)(ht),r;for(r in t)ht._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))ht._set(n,i)}}s(Ps,"setEnv");function hT(t,e){let r=Ps(t);try{let n=e();return n instanceof Promise?n.finally(r):(r(),n)}catch(n){throw r(),n}}s(hT,"withEnv");var gT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","MICROSOFT_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","REDIS_PASSWORD","REDIS_USERNAME"];for(let[t,e]of Object.entries(ht))e==="0"&&(ht[t]=0),e==="false"&&(ht[t]=0);var E=ht;var Ya={};P(Ya,{Databases:()=>af,SEPARATOR:()=>Zn,SelectableDatabase:()=>ja,getRedisClusterOptions:()=>uf,getRedisConnectionDetails:()=>Ha,getRedisOptions:()=>un,removeDbPrefix:()=>cf});var Zn="-",af=(_=>(_.PW_RESETS="pwReset",_.VERIFICATIONS="verification",_.INVITATIONS_LIST="invitationList",_.DEV_LOCKS="devLocks",_.DEBOUNCE="debounce",_.SESSIONS="session",_.USER_CACHE="users",_.FLAGS="flags",_.WORKSPACE_METADATA="appMetadata",_.QUERY_VARS="queryVars",_.LICENSES="license",_.GENERIC_CACHE="data_cache",_.WRITE_THROUGH="writeThrough",_.LOCKS="locks",_.SOCKET_IO="socket_io",_.BPM_EVENTS="bpmEvents",_.DOC_WRITE_THROUGH="docWriteThrough",_.RECAPTCHA_SESSION="recaptchaSession",_.OPENAPI_IMPORT_SPECS="openapiImportSpecs",_))(af||{}),ja=(p=>(p[p.DEFAULT=0]="DEFAULT",p[p.SOCKET_IO=1]="SOCKET_IO",p[p.RATE_LIMITING=2]="RATE_LIMITING",p[p.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",p[p.UNUSED_3=4]="UNUSED_3",p[p.UNUSED_4=5]="UNUSED_4",p[p.UNUSED_5=6]="UNUSED_5",p[p.UNUSED_6=7]="UNUSED_6",p[p.UNUSED_7=8]="UNUSED_7",p[p.UNUSED_8=9]="UNUSED_8",p[p.UNUSED_9=10]="UNUSED_9",p[p.UNUSED_10=11]="UNUSED_10",p[p.UNUSED_11=12]="UNUSED_11",p[p.UNUSED_12=13]="UNUSED_12",p[p.UNUSED_13=14]="UNUSED_13",p[p.UNUSED_14=15]="UNUSED_14",p))(ja||{});function Ha(){let t=E.REDIS_PASSWORD,e=E.REDIS_USERNAME,r=E.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");e=e||a[0]||void 0,t=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:t,username:e,port:isNaN(o)?6379:o}}s(Ha,"getRedisConnectionDetails");function uf(){return{slotsRefreshTimeout:2e3,dnsLookup:s((t,e)=>e(null,t),"dnsLookup"),redisOptions:{...un()}}}s(uf,"getRedisClusterOptions");function un(){let{host:t,password:e,port:r,username:n}=Ha(),i=E.REDIS_URL.toLowerCase().startsWith("rediss://")?{}:void 0;return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n},...i&&{tls:i}}}s(un,"getRedisOptions");function cf(t){let e=t.split(Zn);return e.length>=2?(e.shift(),e.join(Zn)):e[0]}s(cf,"removeDbPrefix");var QS=W(require("events"));var di={};P(di,{Duration:()=>me,GZIP_PREFIX:()=>Iu,clearCookie:()=>Jt,compare:()=>ff,createPinnedLookup:()=>KS,fetchWithBlacklist:()=>li,getBearerToken:()=>jv,getCookie:()=>zt,getDispatcher:()=>$v,getSessionExpiryDate:()=>tp,getSessionExpirySeconds:()=>Su,getWorkspaceIdFromCtx:()=>pn,gunzipFromBase64:()=>Qv,gzipToBase64:()=>Kv,hasCircularStructure:()=>Lv,hash:()=>df,isAudited:()=>sp,isClient:()=>Pv,isPublicApiRequest:()=>xv,isServingApp:()=>Cv,isServingBuilder:()=>Dv,isServingBuilderPreview:()=>bv,isValidInternalAPIKey:()=>Xs,microsoftDatasourceCreationCacheKey:()=>cN,newid:()=>X,openJwt:()=>_u,setAuthCookie:()=>Nv,setCookie:()=>np,time:()=>kv,timeout:()=>ip,urlHasProtocol:()=>Uv,validEmail:()=>op});var ET=require("uuid");function X(){return(0,ET.v4)().replace(/-/g,"")}s(X,"newid");var lf=require("bcrypt"),cx=E.SALT_ROUNDS||10;async function df(t){let e=await lf.genSalt(cx);return lf.hash(t,e)}s(df,"hash");async function ff(t,e){return lf.compare(t,e)}s(ff,"compare");var Au=W(require("jsonwebtoken"));var le={};P(le,{DEFAULT_TENANT_ID:()=>ce,baseGlobalDBName:()=>Ws,doInAutomationContext:()=>Px,doInContext:()=>vf,doInEnvironmentContext:()=>qx,doInFeatureFlagOverrideContext:()=>Ff,doInIPContext:()=>Lf,doInIdentityContext:()=>Us,doInLicenseContext:()=>Ux,doInScimContext:()=>Kx,doInSelfHostTenantUsingCloud:()=>Lx,doInTenant:()=>be,doInWorkspaceContext:()=>Fx,doInWorkspaceMigrationContext:()=>Wx,ensureSnippetContext:()=>PT,getAuditLogDBName:()=>vT,getAuditLogsDB:()=>jx,getAutomationId:()=>Nf,getCurrentContext:()=>dn,getDevWorkspaceDB:()=>Yx,getDevWorkspaceId:()=>$x,getEnvironmentVariables:()=>Qx,getFeatureFlagOverrides:()=>Mf,getFeatureFlags:()=>Uf,getGlobalDB:()=>z,getGlobalDBName:()=>ln,getIP:()=>Pf,getIdentity:()=>Qt,getLicense:()=>kx,getOrThrowWorkspaceId:()=>Gx,getPlatformURL:()=>xf,getProdWorkspaceDB:()=>Hx,getProdWorkspaceId:()=>Vx,getScimDBName:()=>bx,getSelfHostCloudDB:()=>Mx,getTableForView:()=>zx,getTenantIDFromWorkspaceID:()=>ni,getTenantId:()=>V,getWorkspaceDB:()=>ii,getWorkspaceId:()=>Fe,identity:()=>Ls,isDevWorkspace:()=>LT,isMultiTenant:()=>Sr,isProdWorkspace:()=>Xx,isScim:()=>Et,isSelfHostUsingCloud:()=>nu,isTenancyEnabled:()=>vx,isTenantIdSet:()=>xx,setFeatureFlags:()=>kf,setTableForView:()=>Jx});var Ls={};P(Ls,{doInAccountContext:()=>lx,doInIdentityContext:()=>hf,doInUserContext:()=>gf,getAccountUserId:()=>yT,getIdentity:()=>mf});function mf(){return Qt()}s(mf,"getIdentity");function hf(t,e){return Us(t,e)}s(hf,"doInIdentityContext");function gf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return hf(n,r)}s(gf,"doInUserContext");function lx(t,e){let r=yT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return hf(i,e)}s(lx,"doInAccountContext");function yT(t){let e;return jo(t)?e=t.budibaseUserId:e=t.accountId,e}s(yT,"getAccountUserId");var vt=s(()=>za(E.COUCH_DB_URL,{user:E.COUCH_DB_USERNAME||"",password:E.COUCH_DB_PASSWORD||""}),"getCouchInfo"),za=s((t,e)=>{let r=Ef(t),n,i;if(r.auth?.username)n=r.auth.username;else if(e?.user)n=e?.user;else throw new Error("CouchDB username not set");if(r.auth?.password)i=r.auth.password;else if(e?.password)i=e?.password;else throw new Error("CouchDB password not set");let o=Buffer.from(`${n}:${i}`).toString("base64"),a=E.COUCH_DB_SQL_URL;if(!a&&r.url){let u=new URL(r.url);u.port=E.COUCH_DB_SQS_PORT,a=u.toString().replace(/\/$/,"")}return{url:r.url,sqlUrl:Ef(a).url,auth:{username:n,password:i},cookie:`Basic ${o}`}},"parseCouchConnection"),Ef=s((t=E.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var DT=W(require("@budibase/nano"));var TT=W(require("node-fetch"));function Ja(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(Ja,"checkSlashesInUrl");async function ST(t,e="GET",r){let{url:n,cookie:i}=vt(),o=`${n}/${t}`;return await ks({url:o,cookie:i,method:e,body:r})}s(ST,"directCouchCall");async function ks({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,TT.default)(Ja(encodeURI(t)),i)}s(ks,"directCouchUrlCall");async function yf(t,e="GET",r){let n=await ST(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(yf,"directCouchQuery");var cn=W(require("pouchdb"));var AT,_T=!1,Tf=s((t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:s((i,o)=>(o.headers.set("Authorization",r),cn.default.fetch(i,o)),"fetch")};if(t.inMemory){let i=require("pouchdb-adapter-memory");cn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");cn.default.plugin(i.plugin),cn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");cn.default.plugin(i)}return cn.default.defaults(n)},"getPouch");function Xa(t){AT=Tf(t),_T=!0}s(Xa,"init");var dx=s(()=>{if(!_T)throw new Error("init has not been called")},"checkInitialised");function it(t,e){dx();let r=new AT(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(it,"getPouchDB");async function Ms(t){if(!(!t||E.isTest()))try{return await t.close()}catch{}}s(Ms,"closePouchDB");var de=W(require("dd-trace"));var ei=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return de.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return de.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return de.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return de.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return de.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return de.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return de.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return de.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return de.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return de.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return de.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return de.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return de.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return de.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return de.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return de.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return de.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return de.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return de.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return de.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return de.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Cf={};P(Cf,{breakExternalTableId:()=>_f,breakRowIdField:()=>Ix,buildExternalTableId:()=>yx,convertRowId:()=>Ox,encodeTableId:()=>Tx,encodeViewId:()=>Sx,extractDate:()=>If,generateRowIdField:()=>Ax,getNativeSql:()=>ti,isExternalTable:()=>Af,isExternalTableID:()=>Za,isInternalTableID:()=>Ex,isRowId:()=>_x,isValidFilter:()=>tu,isValidISODateString:()=>eu,isValidISODateStringWithoutTimezone:()=>Of,isValidTime:()=>wf,sqlLog:()=>Fs,validateManyToMany:()=>Rf});var Sf=`${"_"}${"_"}`,IT=/^\[.*]$/g,fx=encodeURIComponent(" "),px=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,mx=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,hx=/(\d{4}-\d{2}-\d{2})/,gx=/^\d{1,2}:\d{2}(?:\.\d{1,6}|:\d{2}(?:\.\d{1,6})?)?$/;function Za(t){return t.startsWith("datasource_")}s(Za,"isExternalTableID");function Ex(t){return!Za(t)}s(Ex,"isInternalTableID");function ti(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}s(ti,"getNativeSql");function Af(t){return t?.sourceId&&t.sourceId.includes("datasource_")&&t?.sourceId!==Pn||t?.sourceType==="external"?!0:!!(t?._id&&Za(t._id))}s(Af,"isExternalTable");function yx(t,e){return`${t}${Sf}${encodeURIComponent(e)}`}s(yx,"buildExternalTableId");function Tx(t){return Za(t)?encodeURIComponent(t):t}s(Tx,"encodeTableId");function Sx(t){return encodeURIComponent(t)}s(Sx,"encodeViewId");function _f(t){let e=t.split(Sf),r=e.shift(),n=e.join(Sf);if(n.includes(fx)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(_f,"breakExternalTableId");function Ax(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(Ax,"generateRowIdField");function _x(t){return Array.isArray(t)||typeof t=="string"&&t.match(IT)!=null}s(_x,"isRowId");function Ox(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(IT)!=null?t.substring(1,t.length-1):t}s(Ox,"convertRowId");function Ix(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(Ix,"breakRowIdField");function eu(t){let e=t.trim();if(!px.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(eu,"isValidISODateString");function Of(t){let e=t.trim();if(!mx.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Of,"isValidISODateStringWithoutTimezone");function If(t){let e=t.match(hx);if(e)return e[0]}s(If,"extractDate");function tu(t){return t!=null&&t!==""}s(tu,"isValidFilter");function wf(t){return gx.test(t)}s(wf,"isValidTime");function Fs(t,e,r){if(!E.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Fs,"sqlLog");function wx(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(wx,"isValidManyToManyRelationship");function Rf(t){if(wx(t))return t}s(Rf,"validateManyToMany");var wT="Database does not exist.";function RT(t){return(0,DT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(RT,"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 Rx(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new ri(t,r,e);return new ei(n)}s(Rx,"DatabaseWithConnection");var ri=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=za(n),this.instanceNano=RT(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=vt();t.nano=RT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await ks({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Tr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===wT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Tr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Tr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(yh(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new Tr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=X()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===wT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ja(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await ks(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new Tr("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${xt}`;return Fs("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(xt)){let e=await this.get(xt);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new Tr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return it(this.name).dump(e,r)}async load(e){return it(this.name).load(e)}async createIndex(e){return it(this.name).createIndex(e)}async deleteIndex(e){return it(this.name).deleteIndex(e)}async getIndexes(){return it(this.name).getIndexes()}};function De(t,e){return new ei(new ri(t,e))}s(De,"getDB");async function je(t,e,r){let n=De(t,r);return await e(n)}s(je,"doWithDB");async function Df(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await yf(e)}s(Df,"directCouchAllDbs");var bf="No app provided";function Nt(t){if(!t)throw bf;return t.startsWith(nt)}s(Nt,"isDevWorkspaceID");function Cx(t){if(!t)throw bf;return t.startsWith(rt)&&!Nt(t)}s(Cx,"isProdWorkspaceID");function Bs(t){if(!t)throw bf;return Nt(t.appId)}s(Bs,"isDevWorkspace");function ru(t){if(!t||t.startsWith(nt))return t;let e=t.split(rt);e.shift();let r=e.join(rt);return`${nt}${r}`}s(ru,"getDevWorkspaceID");function He(t){if(!t||!t.startsWith(nt))return t;let e=t.split(nt);e.shift();let r=e.join(nt);return`${rt}${r}`}s(He,"getProdWorkspaceID");var bT=require("async_hooks");var ge=class t{static{s(this,"Context")}static{this.storage=new bT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var xT=null;function ln(t){return t||(t=V()),Ws(t)}s(ln,"getGlobalDBName");function vT(t){return t||(t=V()),t===ce?pe.AUDIT_LOGS.name:`${t}${"_"}${pe.AUDIT_LOGS.name}`}s(vT,"getAuditLogDBName");function bx(t){return t||(t=V()),t===ce?pe.SCIM_LOGS.name:`${t}${"_"}${pe.SCIM_LOGS.name}`}s(bx,"getScimDBName");function Ws(t){return!t||t===ce?pe.GLOBAL.name:`${t}${"_"}${pe.GLOBAL.name}`}s(Ws,"baseGlobalDBName");function xf(){return E.PLATFORM_URL}s(xf,"getPlatformURL");function Sr(){return!!E.MULTI_TENANCY}s(Sr,"isMultiTenant");function xx(){return!!ge.get()?.tenantId}s(xx,"isTenantIdSet");function vx(){return E.MULTI_TENANCY}s(vx,"isTenancyEnabled");function ni(t){if(!t)return;if(!Sr())return ce;let e=t.split("_"),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(ni,"getTenantIDFromWorkspaceID");function Nx(t){let e;try{e=ge.get()}catch{e={}}return e={...e,...t},e}s(Nx,"updateContext");async function gt(t,e){Bx();let r=Nx(t);return ge.run(r,e)}s(gt,"newContext");async function Px(t){return await PT(),await gt({tenantId:ni(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(Px,"doInAutomationContext");async function vf(t,e){let r=ni(t);return gt({tenantId:r,appId:t},e)}s(vf,"doInContext");async function be(t,e){return E.MULTI_TENANCY||(t=t||ce),gt(t?{tenantId:t}:{},e)}s(be,"doInTenant");async function Lx(t,e){return gt({tenantId:t,isSelfHostUsingCloud:!0},e)}s(Lx,"doInSelfHostTenantUsingCloud");async function Ux(t,e){return gt({license:t},e)}s(Ux,"doInLicenseContext");function kx(){return ge.get()?.license}s(kx,"getLicense");function nu(){return!!ge.get()?.isSelfHostUsingCloud}s(nu,"isSelfHostUsingCloud");function Mx(){let t=ge.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return De(pe.SELF_HOST_CLOUD.name)}s(Mx,"getSelfHostCloudDB");async function Fx(t,e){return NT(t,e)}s(Fx,"doInWorkspaceContext");async function NT(t,e,r){if(!t)throw new Error("workspaceId is required");let n=ni(t),i={appId:t,...r};return n&&(i.tenantId=n),gt(i,e)}s(NT,"_doInWorkspaceContext");async function Us(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),gt(r,e)}s(Us,"doInIdentityContext");function Bx(){if(ge.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(Bx,"guardMigration");async function Wx(t,e){return NT(t,e,{isMigrating:!0})}s(Wx,"doInWorkspaceMigrationContext");function Qt(){try{return ge.get()?.identity}catch{}}s(Qt,"getIdentity");function V(){if(!Sr())return ce;let e=ge.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(V,"getTenantId");function Nf(){return ge.get()?.automationId}s(Nf,"getAutomationId");function Fe(){let e=ge.get()?.appId;return!e&&E.isTest()&&xT?xT:e}s(Fe,"getWorkspaceId");function Gx(){let t=Fe();if(!t)throw new Error("Workspace id not set");return t}s(Gx,"getOrThrowWorkspaceId");function Pf(){return ge.get()?.ip}s(Pf,"getIP");var $x=s(()=>{let t=Fe();if(!t)throw new Error("Could not get workspaceId");return ru(t)},"getDevWorkspaceId"),Vx=s(()=>{let t=Fe();if(!t)throw new Error("Could not get workspaceId");return He(t)},"getProdWorkspaceId");function qx(t,e){if(!t)throw new Error("Must supply environment variables.");return gt({environmentVariables:t},e)}s(qx,"doInEnvironmentContext");function Kx(t){return gt({isScim:!0},t)}s(Kx,"doInScimContext");function Lf(t,e){return gt({ip:t},e)}s(Lf,"doInIPContext");async function PT(){let t=dn();if(!t||t.snippets)return;let e,r=ii();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(PT,"ensureSnippetContext");function Qx(){let t=ge.get();return t.environmentVariables?t.environmentVariables:null}s(Qx,"getEnvironmentVariables");function z(){let t=ge.get();if(!t||E.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return De(Ws(t?.tenantId))}s(z,"getGlobalDB");function jx(){if(!V())throw new Error("No tenant ID found - cannot open audit log DB");return De(vT())}s(jx,"getAuditLogsDB");function ii(t){let e=Fe();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(nu())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return De(e,t)}s(ii,"getWorkspaceDB");function Hx(t){let e=Fe();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return De(He(e),t)}s(Hx,"getProdWorkspaceDB");function Yx(t){let e=Fe();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return De(ru(e),t)}s(Yx,"getDevWorkspaceDB");function Et(){return!!ge.get()?.isScim}s(Et,"isScim");function dn(){try{return ge.get()}catch{return}}s(dn,"getCurrentContext");function Uf(t){let e=dn();if(e)return e.featureFlagCache?.[t]}s(Uf,"getFeatureFlags");function kf(t,e){let r=dn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(kf,"setFeatureFlags");function Mf(){return dn()?.featureFlagOverrides||{}}s(Mf,"getFeatureFlagOverrides");async function Ff(t,e){return await gt({featureFlagOverrides:t},e)}s(Ff,"doInFeatureFlagOverrideContext");function zx(t){let e=dn();if(e)return e.viewToTableCache?.[t]}s(zx,"getTableForView");function Jx(t,e){let r=dn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(Jx,"setTableForView");function LT(){let t=Fe();return Nt(t)}s(LT,"isDevWorkspace");function Xx(){return!LT()}s(Xx,"isProdWorkspace");var Ir={};P(Ir,{AutomationViewMode:()=>Ga,BUDIBASE_DATASOURCE_TYPE:()=>zd,DEFAULT_BB_DATASOURCE_ID:()=>Pn,DEFAULT_EMPLOYEE_TABLE_ID:()=>ef,DEFAULT_EXPENSES_TABLE_ID:()=>Zd,DEFAULT_INVENTORY_TABLE_ID:()=>Xd,DEFAULT_JOBS_TABLE_ID:()=>Jd,DatabaseImpl:()=>ri,DatabaseWithConnection:()=>Rx,DeprecatedViews:()=>Jn,DesignDocuments:()=>vs,DocumentType:()=>ae,InternalTable:()=>It,QueryBuilder:()=>Yt,Replication:()=>bS,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>xt,SQS_DATASOURCE_INTERNAL:()=>Yd,StaticDatabases:()=>pe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>xs,ViewName:()=>Kt,WORKSPACE_DEV:()=>$a,WORKSPACE_DEV_PREFIX:()=>nt,WORKSPACE_PREFIX:()=>rt,baseGlobalDBName:()=>Ws,checkErrorCode:()=>PS,closePouchDB:()=>Ms,createApiKeyView:()=>OS,createNewUserEmailView:()=>AS,createPlatformAccountEmailView:()=>wS,createPlatformUserView:()=>RS,createUserAppView:()=>_S,createView:()=>ci,dbExists:()=>hv,directCouchAllDbs:()=>Df,directCouchCall:()=>ST,directCouchQuery:()=>yf,directCouchUrlCall:()=>ks,doWithDB:()=>je,fullSearch:()=>Sv,generateAIConfigID:()=>sS,generateAgentID:()=>YT,generateAgentKnowledgeSourceConnectionID:()=>rS,generateAgentKnowledgeSourceSyncStateID:()=>tS,generateAgentRequestID:()=>XT,generateAgentToolSourceID:()=>eS,generateAppUserID:()=>Eu,generateChatAppID:()=>zT,generateChatConversationID:()=>JT,generateDevInfoID:()=>QT,generateGlobalUserID:()=>ai,generateKnowledgeBaseFileID:()=>nS,generateKnowledgeBaseID:()=>lS,generateOAuth2LogID:()=>HT,generatePluginID:()=>jT,generateProjectID:()=>cS,generateRoleID:()=>Kf,generateRowID:()=>qf,generateTableID:()=>GT,generateTemplateID:()=>KT,generateUserMetadataID:()=>VT,generateWorkspaceAppID:()=>aS,generateWorkspaceFavouriteID:()=>uS,generateWorkspaceID:()=>WT,getAgentTestRunID:()=>ZT,getAgentTestSuiteID:()=>Qf,getAllDbs:()=>SS,getAllWorkspaces:()=>Ks,getCouchInfo:()=>vt,getDB:()=>De,getDevWorkspaceID:()=>ru,getDevWorkspaceIDs:()=>pv,getDocParams:()=>Pt,getGlobalDBName:()=>ln,getGlobalIDFromUserMetadataID:()=>qT,getGlobalUserParams:()=>fn,getLiteLLMKeyID:()=>oS,getOAuth2ConfigParams:()=>hS,getPluginParams:()=>mS,getPouch:()=>Tf,getPouchDB:()=>it,getProdWorkpaceIDs:()=>fv,getProdWorkspaceID:()=>He,getProjectParams:()=>yS,getQueryIndex:()=>dS,getRoleParams:()=>yu,getRowParams:()=>jf,getStartEndKeyURL:()=>qs,getTemplateParams:()=>pS,getUrlInfo:()=>Ef,getUserMetadataParams:()=>fS,getUsersByWorkspaceParams:()=>ui,getWorkspaceAppParams:()=>gS,getWorkspaceFavouriteParams:()=>ES,getWorkspacesByIDs:()=>dv,init:()=>Xa,isDevWorkspace:()=>Bs,isDevWorkspaceID:()=>Nt,isDocumentConflictError:()=>_v,isGlobalUserID:()=>$T,isKnowledgeBaseFileID:()=>iS,isProdWorkspaceID:()=>Cx,isSameWorkspaceID:()=>mv,isType:()=>TS,paginatedSearch:()=>Tv,pagination:()=>Yf,parseCouchConnection:()=>za,prefixRoleID:()=>jt,queryGlobalView:()=>Ht,queryGlobalViewRaw:()=>Hs,queryPlatformView:()=>js,queryView:()=>Jf,queryViewRaw:()=>Qs,removeKeyNumbering:()=>Ys,searchIndexes:()=>Zf});var Vs={};P(Vs,{WorkspaceState:()=>Vf,getWorkspaceMetadata:()=>gu,invalidateWorkspaceMetadata:()=>uv});var _r={};P(_r,{getCacheClient:()=>Wf,getDocWritethroughClient:()=>iv,getInviteListClient:()=>Gs,getLockClient:()=>$f,getOpenapiImportSpecsClient:()=>rv,getPasswordResetClient:()=>$s,getSessionClient:()=>Ar,getSocketClient:()=>nv,getUserClient:()=>oi,getWorkspaceClient:()=>hu,getWritethroughClient:()=>Gf,init:()=>st,shutdown:()=>FT});var su=W(require("ioredis"));var iu=require("dd-trace"),kT=require("lodash");var UT;if(E.MOCK_REDIS)try{UT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function Zx(t=0){return await iu.tracer.trace("Redis.init",async e=>{if(E.MOCK_REDIS)return e.addTags({mock:!0}),new UT(un());let r;if(E.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=Ha();r=new su.Cluster([{host:n,port:i}],uf())}else r=new su.default(un());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}s(Zx,"init");function ev(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",o=>o.forEach(a=>i.add(a))),t.on("error",o=>n(o)),t.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let u=await e.get(a);return u&&(u=JSON.parse(u)),{key:cf(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(ev,"promisifyStream");function tv(t){return t.isCluster}s(tv,"isCluster");var Bf=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await iu.tracer.trace("RedisWrapper.init",async n=>{let i=await Zx(r);return r&&!E.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return iu.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Zn}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${Zn}${e}`;let n;tv(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await ev(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,kT.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=Bf;var ou,au,uu,cu,lu,si,du,fu,pu,mu,
|
|
9
|
+
`,1,this.prefixed(e),r)})}},Re=Bf;var ou,au,uu,cu,lu,si,du,fu,pu,mu,MT;async function st(){ou=await Re.init("users"),au=await Re.init("session"),uu=await Re.init("appMetadata"),cu=await Re.init("data_cache"),lu=await Re.init("openapiImportSpecs",3),du=await Re.init("locks"),si=await Re.init("writeThrough"),pu=await Re.init("invitationList"),mu=await Re.init("pwReset"),fu=await Re.init("socket_io",1),MT=await Re.init("docWriteThrough")}s(st,"init");async function FT(){await ou?.finish(),await au?.finish(),await uu?.finish(),await cu?.finish(),await lu?.finish(),await si?.finish(),await du?.finish(),await pu?.finish(),await mu?.finish(),await fu?.finish(),await MT?.finish()}s(FT,"shutdown");process.on("exit",async()=>{await FT()});async function oi(){return ou||await st(),ou}s(oi,"getUserClient");async function Ar(){return au||await st(),au}s(Ar,"getSessionClient");async function hu(){return uu||await st(),uu}s(hu,"getWorkspaceClient");async function Wf(){return cu||await st(),cu}s(Wf,"getCacheClient");async function rv(){return lu||await st(),lu}s(rv,"getOpenapiImportSpecsClient");async function Gf(){return si||await st(),si}s(Gf,"getWritethroughClient");async function $f(){return du||await st(),du}s($f,"getLockClient");async function nv(){return fu||await st(),fu}s(nv,"getSocketClient");async function Gs(){return pu||await st(),pu}s(Gs,"getInviteListClient");async function $s(){return mu||await st(),mu}s($s,"getPasswordResetClient");async function iv(){return si||await st(),si}s(iv,"getDocWritethroughClient");var Vf=(e=>(e.INVALID="invalid",e))(Vf||{}),BT=3600,sv=60;async function ov(t){return je(t,e=>e.get("app_metadata"),{skip_setup:!0})}s(ov,"populateFromDB");function av(t){return!t||t.state==="invalid"}s(av,"isInvalid");async function gu(t){let e=await hu(),r=await e.get(t);if(!r){let n=BT;try{r=await ov(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=sv;else throw i}if(av(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}s(gu,"getWorkspaceMetadata");async function uv(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await hu();await r.delete(t),e&&await r.store(t,e,BT)}s(uv,"invalidateWorkspaceMetadata");var Hf={};P(Hf,{generateAIConfigID:()=>sS,generateAgentID:()=>YT,generateAgentKnowledgeSourceConnectionID:()=>rS,generateAgentKnowledgeSourceSyncStateID:()=>tS,generateAgentRequestID:()=>XT,generateAgentToolSourceID:()=>eS,generateAppUserID:()=>Eu,generateChatAppID:()=>zT,generateChatConversationID:()=>JT,generateDevInfoID:()=>QT,generateGlobalUserID:()=>ai,generateKnowledgeBaseFileID:()=>nS,generateKnowledgeBaseID:()=>lS,generateOAuth2LogID:()=>HT,generatePluginID:()=>jT,generateProjectID:()=>cS,generateRoleID:()=>Kf,generateRowID:()=>qf,generateTableID:()=>GT,generateTemplateID:()=>KT,generateUserMetadataID:()=>VT,generateWorkspaceAppID:()=>aS,generateWorkspaceFavouriteID:()=>uS,generateWorkspaceID:()=>WT,getAgentTestRunID:()=>ZT,getAgentTestSuiteID:()=>Qf,getDocParams:()=>Pt,getGlobalIDFromUserMetadataID:()=>qT,getGlobalUserParams:()=>fn,getLiteLLMKeyID:()=>oS,getOAuth2ConfigParams:()=>hS,getPluginParams:()=>mS,getProjectParams:()=>yS,getQueryIndex:()=>dS,getRoleParams:()=>yu,getRowParams:()=>jf,getStartEndKeyURL:()=>qs,getTemplateParams:()=>pS,getUserMetadataParams:()=>fS,getUsersByWorkspaceParams:()=>ui,getWorkspaceAppParams:()=>gS,getWorkspaceFavouriteParams:()=>ES,isGlobalUserID:()=>$T,isKnowledgeBaseFileID:()=>iS,isType:()=>TS,prefixRoleID:()=>jt});var WT=s(t=>{let e=rt;return t&&(e+=`${t}${"_"}`),`${e}${X()}`},"generateWorkspaceID");function GT(){return`ta${"_"}${X()}`}s(GT,"generateTableID");function qf(t,e){return e=e||X(),`ro${"_"}${t}${"_"}${e}`}s(qf,"generateRowID");function ai(t){return`us${"_"}${t||X()}`}s(ai,"generateGlobalUserID");var cv=new RegExp(`^us${"_"}.+`);function $T(t){return cv.test(t)}s($T,"isGlobalUserID");function VT(t){return qf("ta_users",t)}s(VT,"generateUserMetadataID");function qT(t){let e=`ro${"_"}ta_users${"_"}`;return!t||!t.includes(e)?t:t.split(e)[1]}s(qT,"getGlobalIDFromUserMetadataID");function KT(t){return`template${"_"}${t}${"_"}${X()}`}s(KT,"generateTemplateID");function Eu(t,e){return`${t}${"_"}${e}`}s(Eu,"generateAppUserID");function Kf(t){let e=`role${"_"}`;return t.startsWith(e)?t:`${e}${t}`}s(Kf,"generateRoleID");function jt(t){return Kf(t)}s(jt,"prefixRoleID");var QT=s(t=>`devinfo${"_"}${t}`,"generateDevInfoID"),jT=s(t=>`plg${"_"}${t}`,"generatePluginID"),HT=s(t=>`oauth2log${"_"}${t}`,"generateOAuth2LogID"),YT=s(()=>`agent${"_"}${X()}`,"generateAgentID"),zT=s(()=>`chatapp${"_"}${X()}`,"generateChatAppID"),JT=s(()=>`chatconvo${"_"}${X()}`,"generateChatConversationID"),XT=s((t=X())=>`agentrequest${"_"}${t}`,"generateAgentRequestID"),Qf=s(t=>`agenttestsuite${"_"}${t}`,"getAgentTestSuiteID"),ZT=s((t,e)=>`${Qf(t)}${"_"}agenttestrun${"_"}${e}`,"getAgentTestRunID"),eS=s(()=>`agenttoolsource${"_"}${X()}`,"generateAgentToolSourceID"),tS=s((t,e)=>`agentknowledgesync${"_"}${t}${"_"}${encodeURIComponent(e)}`,"generateAgentKnowledgeSourceSyncStateID"),rS=s(()=>`agentknowledgeconn${"_"}${X()}`,"generateAgentKnowledgeSourceConnectionID"),nS=s(t=>`knowledgebasefile${"_"}${t}${"_"}${X()}`,"generateKnowledgeBaseFileID"),lv=new RegExp(`^knowledgebasefile${"_"}.+`),iS=s(t=>lv.test(t),"isKnowledgeBaseFileID"),sS=s((t=X())=>`aiconfig${"_"}${t}`,"generateAIConfigID"),oS=s(()=>`litellmkey${"_"}config`,"getLiteLLMKeyID"),aS=s(()=>`workspace_app${"_"}${X()}`,"generateWorkspaceAppID"),uS=s(()=>`workspace_favourite${"_"}${X()}`,"generateWorkspaceFavouriteID"),cS=s(()=>`project${"_"}${X()}`,"generateProjectID"),lS=s(()=>`knowledgebase${"_"}${X()}`,"generateKnowledgeBaseID");function Pt(t,e,r={}){e==null&&(e="");let n=`${t}${"_"}${e}`,i=`${t}${"_"}${e}${"\uFFF0"}`;return{startkey:n,endkey:i,...r}}s(Pt,"getDocParams");function jf(t,e,r={}){if(t==null)return Pt("ro",null,r);let n=e??`${t}${"_"}`;return Pt("ro",n,r)}s(jf,"getRowParams");function dS(t){return`database/${t}`}s(dS,"getQueryIndex");function fn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${"_"}${t}`,endkey:`us${"_"}${t}${"\uFFF0"}`}}s(fn,"getGlobalUserParams");function fS(t,e={}){return jf("ta_users",t,e)}s(fS,"getUserMetadataParams");function ui(t,e={}){let r=He(t);return{...e,startkey:r,endkey:`${r}${"\uFFF0"}`}}s(ui,"getUsersByWorkspaceParams");function pS(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${"_"}${t}${"_"}`,{...r,startkey:n,endkey:`${n}${"\uFFF0"}`}}s(pS,"getTemplateParams");function yu(t,e={}){return Pt("role",t,e)}s(yu,"getRoleParams");function qs(t,e){let r=e?`${"_"}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${"\uFFF0"}"`}s(qs,"getStartEndKeyURL");var mS=s((t,e={})=>Pt("plg",t,e),"getPluginParams"),hS=s((t,e={})=>Pt("oauth2",t,e),"getOAuth2ConfigParams"),gS=s((t,e={})=>Pt("workspace_app",t,e),"getWorkspaceAppParams"),ES=s((t,e={})=>Pt("workspace_favourite",t,e),"getWorkspaceFavouriteParams"),yS=s((t,e={})=>Pt("project",t,e),"getProjectParams");function TS(t,e){return Object.values(ae).sort((r,n)=>n.length-r.length).find(r=>t.startsWith(Ot(r)))===e}s(TS,"isType");async function SS(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(o){let a=await Df(o);r=r.concat(a)}s(n,"addDbs");let i=V();return!E.MULTI_TENANCY||!e&&i===ce?await n():(await n(qs("app",i)),await n(qs("app_dev",i)),r.push(ln(i))),r}s(SS,"getAllDbs");async function Ks({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=V();!E.MULTI_TENANCY&&!i&&(i=ce);let a=(await SS({efficient:n||!1})).filter(c=>{if(E.isTest()&&!c)return!1;let l=c.split("_");if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ce&&f||d===i}return!1});if(r){let c=a.filter(d=>Nt(d)),l=a.filter(d=>!Nt(d));switch(t){case!0:return c;case!1:return l;default:return a}}let u=a.map(c=>gu(c));if(u.length===0)return[];{let l=(await Promise.allSettled(u)).filter(d=>d.status==="fulfilled"&&d.value?.state!=="invalid").map(({value:d})=>d);return e?l.map(d=>({...d,status:Bs(d)?"development":"published"})):l.filter(d=>t?Bs(d):!Bs(d))}}s(Ks,"getAllWorkspaces");async function dv(t){return(await Promise.allSettled(t.map(r=>gu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}s(dv,"getWorkspacesByIDs");async function fv(){return(await Ks({idsOnly:!0})).filter(e=>!Nt(e))}s(fv,"getProdWorkpaceIDs");async function pv(){return(await Ks({idsOnly:!0})).filter(e=>Nt(e))}s(pv,"getDevWorkspaceIDs");function mv(t,e){return t==null||e==null?!1:He(t)===He(e)}s(mv,"isSameWorkspaceID");async function hv(t){return je(t,async e=>await e.exists(),{skip_setup:!0})}s(hv,"dbExists");function Yf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let o=t.length>e,a;return i||(i=s(u=>n?u?.[n]:u?._id,"getKey")),o&&(a=i(t[e])),{data:t.slice(0,e),hasNextPage:o,nextPage:a}}s(Yf,"pagination");var zf="_design/database";function gv(){return{_id:zf,views:{}}}s(gv,"DesignDoc");async function Ev(t,e){if(Jn[e])try{let r=await t.get(zf);for(let n of Jn[e])delete r.views?.[n];await t.put(r)}catch{}}s(Ev,"removeDeprecated");async function ci(t,e,r){let n;try{n=await t.get(zf)}catch{n=gv()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(o){if(o.status===409)return await ci(t,e,r);throw o}}s(ci,"createView");var AS=s(async()=>{let t=z(),e=`function(doc) {
|
|
10
10
|
if (doc._id.startsWith("us${"_"}")) {
|
|
11
11
|
emit(doc.email.toLowerCase(), doc._id)
|
|
12
12
|
}
|
|
13
|
-
}`;await ci(t,e,"by_email2")},"createNewUserEmailView"),
|
|
13
|
+
}`;await ci(t,e,"by_email2")},"createNewUserEmailView"),_S=s(async()=>{let t=z(),e=`function(doc) {
|
|
14
14
|
if (doc._id.startsWith("us${"_"}") && doc.roles) {
|
|
15
15
|
for (let prodWorkspaceId of Object.keys(doc.roles)) {
|
|
16
16
|
let emitted = prodWorkspaceId + "${"_"}" + doc._id
|
|
17
17
|
emit(emitted, null)
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
}`;await ci(t,e,"by_app")},"createUserAppView"),
|
|
20
|
+
}`;await ci(t,e,"by_app")},"createUserAppView"),OS=s(async()=>{let t=z(),e=`function(doc) {
|
|
21
21
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
22
22
|
emit(doc.apiKey, doc.userId)
|
|
23
23
|
}
|
|
24
|
-
}`;await ci(t,e,"by_api_key")},"createApiKeyView");async function Qs(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await
|
|
24
|
+
}`;await ci(t,e,"by_api_key")},"createApiKeyView");async function Qs(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await Ev(r,t),await n(),Qs(t,e,r,n,i);if(o.status===409)return Qs(t,e,r,n,i);throw o}}s(Qs,"queryViewRaw");var Jf=s(async(t,e,r,n,i)=>{let u=(await Qs(t,e,r,n,i)).rows.map(c=>e.include_docs?c.doc:c.value);return i?.arrayResponse?u:u.length<=1?u[0]:u},"queryView");async function IS(t,e){try{await je(pe.PLATFORM_INFO.name,async r=>{await ci(r,t,e)})}catch(r){if(r.status===409&&E.isTest())return;throw r}}s(IS,"createPlatformView");var wS=s(async()=>{let t=`function(doc) {
|
|
25
25
|
if (doc._id.startsWith("acc_metadata${"_"}")) {
|
|
26
26
|
emit(doc.email.toLowerCase(), doc._id)
|
|
27
27
|
}
|
|
28
|
-
}`;await
|
|
28
|
+
}`;await IS(t,"account_by_email")},"createPlatformAccountEmailView"),RS=s(async()=>{await IS(`function(doc) {
|
|
29
29
|
if (doc.tenantId) {
|
|
30
30
|
emit(doc._id.toLowerCase(), doc._id)
|
|
31
31
|
}
|
|
@@ -33,7 +33,7 @@ attempted value: ${o}
|
|
|
33
33
|
if (doc.ssoId) {
|
|
34
34
|
emit(doc.ssoId, doc._id)
|
|
35
35
|
}
|
|
36
|
-
}`,"platform_users_lowercase_2")},"createPlatformUserView"),js=s(async(t,e)=>{let r={account_by_email:IS,platform_users_lowercase_2:wS};return je(pe.PLATFORM_INFO.name,async n=>{let i=r[t];return Jf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),RS={by_email2:SS,by_api_key:_S,by_app:AS},Ht=s(async(t,e,r,n)=>{r||(r=z());let i=RS[t];return Jf(t,e,r,i,n)},"queryGlobalView");async function Hs(t,e,r){let n=z(),i=RS[t];return Qs(t,e,n,i,r)}s(Hs,"queryGlobalViewRaw");var Ev=W(require("pouchdb"));var CS=require("dd-trace");var Xf=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=it(e),this.target=it(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([Ms(this.source),Ms(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}async resolveInconsistencies(e){for(let r of e)try{let[n,i]=await Promise.all([this.source.get(r),this.target.get(r)]),o=this.replicationDelta(n,i);if(o<0||o===0&&n._rev===i._rev)continue;let a=o+1;await CS.tracer.trace("Replication.resolveInconsistencies",async u=>{u.addTags({versionsToJump:a,toFix:!0,id:r,sourceRev:n._rev,targetRev:i._rev});for(let c=0;c<a;c++){let l=await this.source.get(i._id);await this.source.put(l)}})}catch{console.warn("Cannot resolve inconsistencies for document",r)}}replicationDelta(e,r){let n=this.getRevisionNumber(e);return this.getRevisionNumber(r)-n}getRevisionNumber(e){return parseInt(e._rev?.split("-")[0]||"0")}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,n=this.direction,i=n==="toDev";delete e.filter;let o=e.isCreation,a=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let u=!1,c;typeof a=="string"&&a==="all"?u=!0:a&&(c=a);let l=s((f,g)=>f?.startsWith(g+"_"),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:s((f,g)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,xs)?!0:n==="toProduction"&&!o&&l(f._id,"autocolumn_state")?!1:d(f._id)?!!c?.find(m=>f._id.includes(m))||u:l(f._id,"log_au")||l(f._id,"agentlogsession")||f._id==="app_metadata"?!1:r?r(f,g):!0,"filter")}}async rollback(){await this.target.destroy(),this.target=it(this.target.name),await this.replicate()}},DS=Xf;var xS=W(require("node-fetch"));var Ys=Er.removeKeyNumbering;function Or(t){return t==null||t===""}s(Or,"isEmpty");var Yt=class t{static{s(this,"QueryBuilder")}#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},notOneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addNotOneOf(e,r){return this.#e.notOneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:o}={}){let a=!!this.#f,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let o of Object.keys(e)){let a=Ys(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#e.equal.tableId&&(a=this.#e.equal.tableId,delete this.#e.equal.tableId);let u=s((h,p)=>Or(p)?null:`${h}:${e.preprocess(p,o)}`,"equal"),c=s((h,p,T="AND")=>{if(Or(p))return null;if(!Array.isArray(p))return`${h}:${p}`;let A=`${e.preprocess(p[0],{escape:!0})}`;for(let _=1;_<p.length;_++)A+=` ${T} ${e.preprocess(p[_],{escape:!0})}`;return`${h}:(${A})`},"contains"),l=s((h,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"fuzzy"}),`${h}:/.*${p}.*/`),"fuzzy"),d=s((h,p)=>{let T=r?"*:* AND ":"",A=r?"AND":void 0;return T+"NOT "+c(h,p,A)},"notContains"),f=s((h,p)=>c(h,p,"OR"),"containsAny"),g=s((h,p)=>{if(Or(p))return"*:*";if(!Array.isArray(p))if(typeof p=="string")p=p.split(",");else return"";let T=`${e.preprocess(p[0],o)}`;for(let A=1;A<p.length;A++)T+=` OR ${e.preprocess(p[A],o)}`;return`${h}:(${T})`},"oneOf"),m=s((h,p)=>{if(Or(p))return null;if(!Array.isArray(p))if(typeof p=="string")p=p.split(",");else return"";let T=`${e.preprocess(p[0],o)}`;for(let A=1;A<p.length;A++)T+=` OR ${e.preprocess(p[A],o)}`;return`(*:* -${h}:(${T}))`},"notOneOf");function y(h,p,T){let A="";for(let[_,I]of Object.entries(h)){_=Ys(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let O=p(_,I);if(O!=null){if(A.length>0||n.length>0){let C=T?.mode?T.mode:r?"OR":"AND";A+=` ${C} `}A+=O,(typeof I!="string"&&I!=null||typeof I=="string"&&I!==a&&I!=="")&&(i=!1)}}if(T?.returnBuilt)return A;n+=A}if(s(y,"build"),this.#e.string&&y(this.#e.string,(h,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"string"}),`${h}:${p}*`)),this.#e.range&&y(this.#e.range,(h,p)=>{if(Or(p)||p.low==null||p.low===""||p.high==null||p.high==="")return null;let T=e.preprocess(p.low,o),A=e.preprocess(p.high,o);return`${h}:[${T} TO ${A}]`}),this.#e.fuzzy&&y(this.#e.fuzzy,l),this.#e.equal&&y(this.#e.equal,u),this.#e.notEqual&&y(this.#e.notEqual,(h,p)=>Or(p)?null:typeof p=="boolean"?`(*:* AND !${h}:${p})`:`!${h}:${e.preprocess(p,o)}`),this.#e.empty&&y(this.#e.empty,h=>(i=!1,`(*:* -${h}:["" TO *])`)),this.#e.notEmpty&&y(this.#e.notEmpty,h=>(i=!1,`${h}:["" TO *]`)),this.#e.oneOf&&y(this.#e.oneOf,g),this.#e.notOneOf&&y(this.#e.notOneOf,m),this.#e.contains&&y(this.#e.contains,c),this.#e.notContains&&y(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&y(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,y({tableId:a},u)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await bS(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await bS(n,i,r);throw o}}};async function bS(t,e,r){let n=await(0,xS.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),o={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(o.rows=i.rows.map(a=>a.doc)),i.bookmark&&(o.bookmark=i.bookmark),i.total_rows&&(o.totalRows=i.total_rows),o}s(bS,"runQuery");async function vS(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Yt.maxLimit;n.limit&&o.length>n.limit-Yt.maxLimit&&(a=n.limit-o.length);let u=new Yt(t,e,r);u.setVersion(n.version).setBookmark(i).setLimit(a).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&u.setTable(n.tableId);let c=await u.run();if(!c.rows.length)return o;if(c.rows.length<Yt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await vS(t,e,r,l)}s(vS,"recursiveSearch");async function yv(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Yt.maxLimit);let o=new Yt(t,e,r);n.version&&o.setVersion(n.version),n.tableId&&o.setTable(n.tableId),n.sort&&o.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&o.setIndexBuilder(n.indexer),n.disableEscaping&&o.disableEscaping();let a=await o.setBookmark(n.bookmark).setLimit(i).run();o.setBookmark(a.bookmark).setLimit(1),n.tableId&&o.setTable(n.tableId);let u=await o.run();return{...a,hasNextPage:u.rows&&u.rows.length>0}}s(yv,"paginatedSearch");async function Tv(t,e,r,n){let i=n.limit;return(i==null||isNaN(i)||i<0)&&(i=1e3),n.limit=Math.min(i,1e3),{rows:await vS(t,e,r,n)}}s(Tv,"fullSearch");var Zf={};P(Zf,{createUserIndex:()=>Sv});async function Sv(){let t=z(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=s(function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function o(a,u){for(let c of Object.keys(a)){if(i.includes(c))continue;let l=u!=null?`${u}.${c}`:c;typeof a[c]=="string"?index(l,a[c].toLowerCase(),{facet:!0}):typeof a[c]!="object"?index(l,a[c],{facet:!0}):o(a[c],l)}}s(o,"idx"),o(n)},"fn");e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}s(Sv,"createUserIndex");function NS(t,e){let r=e.toString();if(typeof t=="object")return t.status===e||t.message?.includes(r);if(typeof t=="number")return t===e;if(typeof t=="string")return t.includes(r)}s(NS,"checkErrorCode");function Av(t){return NS(t,409)}s(Av,"isDocumentConflictError");var Js={};P(Js,{addTenantToUrl:()=>_v,getTenantDB:()=>ep,getTenantIDFromCtx:()=>zs,isUserInWorkspaceTenant:()=>Ov});function ep(t){return De(ln(t))}s(ep,"getTenantDB");function _v(t){let e=V();if(Sr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(_v,"addTenantToUrl");var Ov=s((t,e)=>{let r;return e?r=e.tenantId||ce:r=V(),(ni(t)||ce)===r},"isUserInWorkspaceTenant"),Iv=Object.values(Ui),zs=s((t,e)=>{if(!Sr())return ce;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=Iv),e.excludeStrategies||(e.excludeStrategies=[]);let r=s(n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0},"isAllowed");if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(xf()).host.split(":")[0]}catch(o){if(o.code!=="ERR_INVALID_URL")throw o}let i=t.host;if(n&&i.includes(n)){let o=i.substring(0,i.indexOf(`.${n}`));if(o)return o}}if(r("path")){let n=t.matched.find(a=>!!a.paramNames.find(u=>u.name==="tenantId")),i=t.originalUrl,o;if(i.includes("?")?o=i.split("?")[0]:o=i,n){let a=n.params(o,n.captures(o),{});if(a.tenantId)return a.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")},"getTenantIDFromCtx");var Tu={milliseconds:1,seconds:1e3,minutes:60*1e3,hours:3600*1e3,days:1440*60*1e3},me=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/Tu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Tu[e]/Tu[r]}static from(e,r){return new t(r*Tu[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};function Su(){let t=me.fromDays(7).toSeconds();if(!E.SESSION_EXPIRY_SECONDS)return t;let e=parseInt(E.SESSION_EXPIRY_SECONDS);return Number.isFinite(e)&&e>0?e:t}s(Su,"getSessionExpirySeconds");function tp(){return new Date(Date.now()+Su()*1e3)}s(tp,"getSessionExpiryDate");var rp="app_",PS="/app/",LS="/app-chat/";async function wv(t){let r=t.path.split("/")[2];if(!r)return;let n=`/${r.toLowerCase()}`,i=V();!E.isDev()&&E.MULTI_TENANCY&&(i=zs(t,{includeStrategies:["subdomain"]}));let a=(await be(i,()=>Ks({dev:!1}))).filter(u=>u.url&&u.url.toLowerCase()===n)[0];return a&&a.appId?a.appId:void 0}s(wv,"resolveAppUrl");function Rv(t){return t.path.startsWith(`/${rp}`)?!0:t.path.startsWith(PS)||t.path.startsWith(LS)}s(Rv,"isServingApp");function Cv(t){return t.path.startsWith("/builder/workspace/")}s(Cv,"isServingBuilder");function Dv(t){return US(t.path)}s(Dv,"isServingBuilderPreview");function US(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(US,"isBuilderPreviewUrl");function bv(t){return t.path.startsWith("/api/public/v")}s(bv,"isPublicApiRequest");async function pn(t){let e;function r(u){u&&u.startsWith(rp)&&(e&&e!==u&&t.throw(403,"App id conflict"),e=u)}s(r,"setWorkspaceIdIfValid");function n(u){if(u){typeof u=="string"&&(u=[u]);for(let c of u)r(c)}}s(n,"checkPossibleValues"),n(t.request.headers["x-budibase-app-id"]),r(t.request.body?.appId);let i=xv(t.path);r(i),n(t.query?.appId);let o=US(t.path);return(t.path.startsWith(PS)||t.path.startsWith(LS))&&!o&&r(await wv(t)),e}s(pn,"getWorkspaceIdFromCtx");function xv(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(rp))}s(xv,"parseWorkspaceIdFromUrlPath");function _u(t){if(t)try{return Au.default.verify(t,E.JWT_SECRET)}catch(e){if(E.JWT_SECRET_FALLBACK)return Au.default.verify(t,E.JWT_SECRET_FALLBACK);throw e}}s(_u,"openJwt");function Xs(t){return E.INTERNAL_API_KEY&&E.INTERNAL_API_KEY===t?!0:!!(E.INTERNAL_API_KEY_FALLBACK&&E.INTERNAL_API_KEY_FALLBACK===t)}s(Xs,"isValidInternalAPIKey");function zt(t,e){let r=t.cookies.get(e);if(r)return _u(r)}s(zt,"getCookie");function np(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Au.default.sign(e,E.JWT_SECRET));let i=n.sameSite,o=n.secure??t.secure;i==="none"&&(o?o=!0:i="lax");let a={expires:n.expires??qa,path:"/",httpOnly:n.httpOnly??!1,secure:o,overwrite:!0};i&&(a.sameSite=i),E.COOKIE_DOMAIN&&(a.domain=E.COOKIE_DOMAIN),t.cookies.set(r,e,a)}s(np,"setCookie");function vv(t,e){np(t,e,"budibase:auth",{sign:!1,httpOnly:!0,expires:tp()})}s(vv,"setAuthCookie");function Jt(t,e){np(t,null,e)}s(Jt,"clearCookie");function Nv(t){return t.headers["x-budibase-type"]==="client"}s(Nv,"isClient");function ip(t){return new Promise(e=>setTimeout(e,t))}s(ip,"timeout");function sp(t){return!!hh[t]}s(sp,"isAudited");function Pv(t){if(typeof t!="object")return!1;try{JSON.stringify(t)}catch(e){if(e instanceof Error&&e?.message.includes("circular structure"))return!0}return!1}s(Pv,"hasCircularStructure");function Lv(t){return!!t.match(/^.+:\/\/.+$/)}s(Lv,"urlHasProtocol");function op(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}s(op,"validEmail");async function Uv(t){let e=performance.now();return[await t(),me.fromMilliseconds(performance.now()-e)]}s(Uv,"time");var Ou=require("undici");function kv(t,e){let r,n=null;try{let o=new URL(t);r=o.hostname,n=o.port||null}catch{return!1}let i=e.split(/[\s,]+/).filter(o=>o.length>0);for(let o of i){let u=o.replace(/^\./,"*").match(/^(.+?)(?::(\d+))?$/);if(!u||!u[1])continue;let c=u[1].toLowerCase(),l=u[2]||null,d=!1;if(c==="*")d=!0;else if(c.startsWith("*")){let g=c.slice(1);d=r===g.slice(1)||r.endsWith(g)}else d=r===c;if(d&&(!l||n===l))return!0}return!1}s(kv,"isUrlMatchingNoProxy");function Mv(t){let e=process.env.GLOBAL_AGENT_HTTP_PROXY||process.env.HTTP_PROXY,n=process.env.GLOBAL_AGENT_HTTPS_PROXY||process.env.HTTPS_PROXY||e;if(!n||!n.trim())return!0;try{new URL(n.trim())}catch{return console.log("[fetch] Invalid proxy URL format:",n),!0}if(t){let i=process.env.GLOBAL_AGENT_NO_PROXY||process.env.NO_PROXY||"";if(i&&kv(t,i))return console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy",{url:t,noProxy:i}),!0}return!1}s(Mv,"shouldBypassProxy");function Fv(t,e){return new Ou.Agent({connect:{rejectUnauthorized:t,...e?{lookup:e}:{}}})}s(Fv,"createDirectAgent");function Bv(t){let e=process.env.GLOBAL_AGENT_HTTP_PROXY||process.env.HTTP_PROXY,n=(process.env.GLOBAL_AGENT_HTTPS_PROXY||process.env.HTTPS_PROXY||e).trim();console.log("[fetch] Creating ProxyAgent",{proxyUrl:n,rejectUnauthorized:t});let i={uri:n,requestTls:{rejectUnauthorized:t}};return n.startsWith("https://")&&(i.proxyTls={rejectUnauthorized:t}),new Ou.ProxyAgent(i)}s(Bv,"createProxyAgent");function Wv(t){let e=t?.rejectUnauthorized??!0;return Mv(t?.url)?Fv(e,t?.lookup):(t?.lookup&&console.log("[fetch] Proxy configured; IP pinning is not applied to proxied requests"),Bv(e))}s(Wv,"createDispatcher");function Gv(t){return Wv(t)}s(Gv,"getDispatcher");var ap=require("util"),up=W(require("zlib"));var $v=(0,ap.promisify)(up.default.gzip),Vv=(0,ap.promisify)(up.default.gunzip),Iu="gzip:",qv=s(async t=>{let e=await $v(t);return`${Iu}${e.toString("base64")}`},"gzipToBase64"),Kv=s(async t=>{let e=t.startsWith(Iu)?t.slice(Iu.length):t,r=Buffer.from(e,"base64");return(await Vv(new Uint8Array(r))).toString("utf8")},"gunzipFromBase64");function Qv(t){let e=t.get("authorization");if(!e)return null;let r=e.match(/^Bearer\s+(.+)$/i);return r?r[1]:null}s(Qv,"getBearerToken");var $S=W(require("http")),VS=W(require("https"));var pp={};P(pp,{isBlacklisted:()=>fp,refreshBlacklist:()=>WS,resolveAddress:()=>wu});var kS=W(require("dns")),wr=W(require("net"));var MS=require("util");var jv=["127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","100.64.0.0/10","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10"],lp,Hv=(0,MS.promisify)(kS.default.lookup);function FS(){return!(E.SELF_HOSTED&&E.BLACKLIST_IPS!==void 0)}s(FS,"shouldApplyDefaultBlacklist");function dp(t){return wr.default.isIP(t)===6?"ipv6":"ipv4"}s(dp,"getIpVersion");function Yv(t){let e=wr.default.isIP(t);return e===4?32:e===6?128:null}s(Yv,"getMaxPrefixLength");function zv(t,e){if(!/^\d+$/.test(e))return null;let r=Number.parseInt(e,10),n=Yv(t);return n==null||r>n?null:r}s(zv,"getValidSubnetPrefix");function Jv(t){return wr.default.isIP(t)?t:(/^https?:\/\//.test(t)||(t=`https://${t}`),new URL(t).hostname.replace(/^\[|\]$/g,""))}s(Jv,"parseAddress");async function BS(t){return t=Jv(t),(await Hv(t,{all:!0})).map(r=>r.address)}s(BS,"lookup");async function wu(t){return wr.default.isIP(t)?[t]:BS(t)}s(wu,"resolveAddress");function cp(t,e){let r=e.trim();if(!r)return;let n=r.split("/");if(n.length>2){console.log(`Ignoring invalid blacklist entry: ${r}`);return}let[i,o]=n,a=wr.default.isIP(i);if(n.length===2){let u=zv(i,o);if(a&&u!==null){t.addSubnet(i,u,dp(i));return}console.log(`Ignoring invalid blacklist entry: ${r}`);return}a&&t.addAddress(i,dp(i))}s(cp,"addEntryToBlacklist");async function WS(){let t=new wr.default.BlockList;if(FS())for(let r of jv)cp(t,r);let e=E.BLACKLIST_IPS?.split(",")||[];for(let r of e){let n=r.trim();if(!n)continue;let[i]=n.split("/");if(wr.default.isIP(i)){cp(t,n);continue}let o=await BS(n);for(let a of o)cp(t,a)}lp=t}s(WS,"refreshBlacklist");async function fp(t){lp||await WS();let e;try{e=await wu(t)}catch(r){return r instanceof TypeError?(console.error("Black list error: could not parse address: ",t),!0):FS()}return e.some(r=>lp.check(r,dp(r)))}s(fp,"isBlacklisted");var Ru=W(require("node-fetch"));var GS=5,Xv=new Set(["http:","https:"]),Zv=["authorization","cookie","cookie2","proxy-authorization"];function mp(t){let e;try{e=new URL(t)}catch{throw new Error("Invalid URL.")}if(!Xv.has(e.protocol))throw new Error("Only HTTP(S) URLs are allowed.");if(e.username||e.password)throw new Error("URL must not include credentials.");return e}s(mp,"parseUrl");function eN(t){return[301,302,303,307,308].includes(t)}s(eN,"isRedirect");async function tN(t){let e=mp(t),r=await wu(e.hostname);if(r.length===0)throw new Error("URL is blocked or could not be resolved safely.");for(let n of r)if(await fp(n))throw new Error("URL is blocked or could not be resolved safely.");return r[0]}s(tN,"resolveSafePinnedIp");function qS(t){let e=t.includes(":")?6:4;return(r,n,i)=>{if(typeof n=="object"&&n?.all){i(null,[{address:t,family:e}]);return}i(null,t,e)}}s(qS,"createPinnedLookup");function rN(t,e){let r=new URL(t).protocol,n=qS(e);return r==="https:"?new VS.default.Agent({lookup:n}):new $S.default.Agent({lookup:n})}s(rN,"makePinnedAgent");function nN(t,e){let r=t.method?.toUpperCase()||"GET";return e===303||(e===301||e===302)&&r==="POST"?{...t,body:void 0,method:"GET",redirect:"manual"}:t}s(nN,"nextRequestForRedirect");function iN(t,e){return new URL(t).origin!==new URL(e).origin}s(iN,"shouldStripSensitiveHeadersForRedirect");function sN(t){if(!t.headers)return t;let e=new Ru.Headers(t.headers);return Zv.forEach(r=>e.delete(r)),{...t,headers:e}}s(sN,"stripSensitiveHeadersForRedirect");function oN(t){return!t||typeof t!="object"||!("resume"in t)?!1:typeof t.resume=="function"}s(oN,"isResumableBody");function aN(t){let e=t.body;oN(e)&&e.resume()}s(aN,"releaseResponseBody");async function li(t,e={},{followRedirects:r=!0,returnRedirectWithoutLocation:n=!1,rejectCrossOriginRedirects:i=!1,fetchFn:o=Ru.default}={}){let a=t,u={...e,redirect:"manual"};for(let c=0;c<=GS;c++){let l=await tN(a),d;try{d=await o(a,{...u,agent:rN(a,l)},l)}catch(m){let y=mp(a).hostname;throw m instanceof Error?(m.message=`Failed to connect to resolved IP for ${y}: ${m.message}`,m):new Error(`Failed to connect to resolved IP for ${y}: unknown network error`)}if(!eN(d.status))return d;if(aN(d),!r)throw new Error("Redirects are not permitted.");if(c===GS)break;let f=d.headers.get("location");if(!f){if(n)return d;throw new Error("Maximum redirect reached.")}let g=mp(new URL(f,a).toString()).toString();if(u=nN(u,d.status),iN(a,g)){if(i)throw new Error("Redirect to a different origin is not permitted.");u=sN(u)}a=g}throw new Error("Maximum redirect reached.")}s(li,"fetchWithBlacklist");var uN=s((t,e)=>`datasource:creation:${t}:microsoft:${e}`,"microsoftDatasourceCreationCacheKey");function cN(t){let e="",r=-1,n,i,o=t.opts?.repeat;return o&&(i=o.endDate?new Date(o.endDate).getTime():Date.now(),n=o.tz,"cron"in o?e=o.cron:r=o.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}s(cN,"jobToJobInformation");var Cu=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new KS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((f,g)=>{f?l(f):c(g)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await ke.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=X(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:s(async()=>{c._isDiscarded=!0},"discard")};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:s(()=>new Promise((c,l)=>{let d=s((g,m)=>{g.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(m))},"errorHandler"),f=s((g,m)=>{g.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(m))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)}),"finished")}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}async getJobs(){return this._messages}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>cN(e))}async whenCurrentJobsFinished(){do await ip(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},QS=Cu;var Ep=W(require("bull"));var fi=(y=>(y.AUTOMATION="automationQueue",y.APP_BACKUP="appBackupQueue",y.AUDIT_LOG="auditLogQueue",y.SYSTEM_EVENT_QUEUE="systemEventQueue",y.APP_MIGRATION="appMigration",y.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",y.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",y.BATCH_USER_SYNC_PROCESSOR="batchUserSyncProcessorQueue",y.RAG_INGESTION="ragIngestionQueue",y.KNOWLEDGE_SOURCE_SYNC="knowledgeSourceSyncQueue",y.AGENT_LOG_INDEXING="agentLogIndexingQueue",y.ESCALATION="escalationQueue",y.AGENT_REQUEST_TRACKING="agentRequestTrackingQueue",y.AGENT_TEST_RUN="agentTestRunQueue",y))(fi||{});function jS(t,e,r){fN(t,e),r&&lN(t,r)}s(jS,"addListeners");function lN(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let o of i)o.id===n&&await t.removeRepeatableByKey(o.key);console.log(`jobId=${n} disabled`)}})}s(lN,"handleStalled");function ot(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(ot,"getLogParams");var dN={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event",batchUserSyncProcessorQueue:"batch-user-sync-processor",ragIngestionQueue:"rag-ingestion-processor",agentLogIndexingQueue:"agent-log-indexing-processor",escalationQueue:"escalation-processor",agentRequestTrackingQueue:"agent-request-tracking-processor",agentTestRunQueue:"agent-test-run-processor",knowledgeSourceSyncQueue:"knowledge-source-sync-processor"};function fN(t,e){let r=dN[e];function n(i,o){let a=i.data.event?.appId;if(a)return vf(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...ot(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...ot(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...ot(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...ot(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...ot(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...ot(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...ot(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...ot(r,"paused"))}).on("resumed",()=>{console.info(...ot(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...ot(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...ot(r,"drained"))}).on("removed",i=>{console.info(...ot(r,"removed",{job:i}))})}s(fN,"logging");var Du={};P(Du,{cleanup:()=>pN,clear:()=>gp,set:()=>hp});var Zs=[];function hp(t,e){let r=setInterval(t,e);return Zs.push(r),r}s(hp,"set");function gp(t){let e=Zs.indexOf(t);e!==-1&&Zs.splice(e,1),clearInterval(t)}s(gp,"clear");function pN(){for(let t of Zs)clearInterval(t);Zs=[]}s(pN,"cleanup");var Xt=W(require("dd-trace")),eo=W(require("object-sizeof"));var mN=me.fromMinutes(5).toMs(),hN=me.fromSeconds(30).toMs(),yp=me.fromSeconds(60).toMs(),to=[],bu;async function HS(){for(let t of to)await t.clean(yp,"completed"),await t.clean(yp,"failed")}s(HS,"cleanup");async function gN(t,e,r){let n=performance.now();try{let i=await e();return Xt.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw Xt.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;Xt.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),Xt.default.dogstatsd.increment(t,1,r)}}s(gN,"withMetrics");function YS(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}s(YS,"jobOptsTags");function EN(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,eo.default)(t.data),...YS(t.opts||{})}}s(EN,"jobTags");var yt=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:un(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:mN,lockRenewTime:hN}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return E.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new Ep.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new QS(this.jobQueue,r):n=new Ep.default(this.jobQueue,r),jS(n,this.jobQueue,this.opts.removeStalledCb),to.push(n),!bu&&!E.isTest()&&(bu=hp(HS,yp),HS().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=s(async(a,u)=>{await Xt.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:s(()=>l.traceId,"toTraceId"),toSpanId:s(()=>l.spanId,"toSpanId"),toTraceparent:s(()=>"","toTraceparent")};c.addLink({context:d})}c.addTags({"queue.name":this.jobQueue,...EN(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),Xt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,eo.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await Xt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,eo.default)(e),...YS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},Xt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,eo.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return gN(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function yN(){bu&&gp(bu),console.log("Waiting for current queue jobs to finish...");for(let t of to)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of to)await t.close();to=[],console.log("Queues shutdown")}s(yN,"shutdown");var uo={};P(uo,{correlation:()=>ro,logAlert:()=>gn,logAlertWithInfo:()=>rP,logWarn:()=>hi,logger:()=>Mu,system:()=>Np});var ro={};P(ro,{getId:()=>Tp,setHeader:()=>TN});var zS=require("correlation-id"),TN=s(t=>{let e=zS.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function Tp(){return zS.getId()}s(Tp,"getId");var ku=W(require("pino")),CA=W(require("pino-pretty")),Pp=W(require("dd-trace")),DA=require("dd-trace/ext");var Np={};P(Np,{getLogReadStream:()=>zN,getSingleFileMaxSizeInfo:()=>RA,localFileDestination:()=>vp});var ao=W(require("fs")),xp=W(require("path")),_A=W(require("rotating-file-stream"));var bp={};P(bp,{ObjectStore:()=>at,ObjectStoreBuckets:()=>AN,SIGNED_FILE_PREFIX:()=>wp,bucketTTLConfig:()=>xu,budibaseTempDir:()=>mn,client3rdPartyLibrary:()=>VN,clientLibraryPath:()=>$N,clientLibraryUrl:()=>qN,createBucketIfNotExists:()=>oo,deleteFile:()=>PN,deleteFiles:()=>LN,deleteFolder:()=>lA,downloadTarball:()=>kN,downloadTarballDirect:()=>UN,enrichPWAImages:()=>KN,enrichPluginURLs:()=>jN,extractBucketAndPath:()=>Sp,getAllFiles:()=>xN,getAppFileUrl:()=>mA,getClientCacheKey:()=>pA,getGlobalFileS3Key:()=>hA,getGlobalFileUrl:()=>QN,getObjectMetadata:()=>MN,getPluginIconKey:()=>yA,getPluginJSKey:()=>EA,getPluginS3Dir:()=>SA,getPresignedUrl:()=>hn,getReadStream:()=>vu,getSafeRetrieveDirectoryPath:()=>cA,listAllObjects:()=>Rp,objectExists:()=>FN,processAutomationAttachment:()=>ON,processObjectStoreAttachment:()=>tA,retrieve:()=>uA,retrieveDirectory:()=>NN,retrieveToTmp:()=>vN,sanitizeBucket:()=>xe,sanitizeKey:()=>Ee,streamUpload:()=>aA,streamUploadMany:()=>bN,upload:()=>DN,uploadDirectory:()=>Cp});var Pu=require("@aws-sdk/client-s3"),Ap=require("@aws-sdk/lib-storage"),rA=require("@aws-sdk/s3-request-presigner"),nA=require("@smithy/node-http-handler");var Zt=W(require("dd-trace")),pi=W(require("fs")),io=W(require("fs/promises")),iA=W(require("https")),Ye=require("path"),Lu=W(require("stream")),so=require("stream/promises"),_p=W(require("tar-fs")),Op=require("uuid"),Ip=W(require("zlib"));var JS=W(require("fs")),XS=require("os"),no=W(require("path")),ZS=W(require("stream"));var AN={BACKUPS:E.BACKUPS_BUCKET_NAME,APPS:E.APPS_BUCKET_NAME,TEMPLATES:E.TEMPLATES_BUCKET_NAME,GLOBAL:E.GLOBAL_BUCKET_NAME,PLUGINS:E.PLUGIN_BUCKET_NAME,TEMP:E.TEMP_BUCKET_NAME},eA=(0,no.join)((0,XS.tmpdir)(),".budibase");try{JS.default.mkdirSync(eA)}catch(t){if(t.code!=="EEXIST")throw t}function mn(){return eA}s(mn,"budibaseTempDir");var xu=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function _N(t){let e=await li(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=no.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");if(!(e.body instanceof ZS.default.Readable))throw new Error("Unexpected response body stream type");return{filename:t.filename||r,content:e.body}}s(_N,"processUrlAttachment");async function tA(t){let e=Sp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await vu(r,n),o=no.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(tA,"processObjectStoreAttachment");async function ON(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await _N(t):await tA(t)}s(ON,"processAutomationAttachment");var IN=require("sanitize-s3-objectkey"),wN={bucketCreationPromises:{}},wp="/files/signed",Rr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},RN=[Rr.html,Rr.css,Rr.js,Rr.json];function Ee(t){let e=IN(xe(t)).replace(/\\/g,"/");if(e.split("/").some(r=>r==="."||r===".."))throw new Error("Invalid object store key: path traversal is not allowed.");return e}s(Ee,"sanitizeKey");function xe(t){return t.replace(new RegExp(nt,"g"),rt)}s(xe,"sanitizeBucket");function at(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY},region:E.AWS_REGION};if(!E.MINIO_ENABLED&&E.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY,sessionToken:E.AWS_SESSION_TOKEN}),E.MINIO_URL&&(t.presigning&&E.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=E.MINIO_URL),E.S3_IGNORE_SELF_SIGNED==="true"){let r=new iA.default.Agent({rejectUnauthorized:!1});e.requestHandler=new nA.NodeHttpHandler({httpsAgent:r})}return new Pu.S3(e)}s(at,"ObjectStore");async function oo(t,e){e=xe(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode||r.$metadata?.httpStatusCode,i=wN.bucketCreationPromises;if(n===403)throw new Error("Access denied to object store bucket."+r);if(i[e])return await i[e],{created:!1,exists:!0};i[e]=t.createBucket({Bucket:e}).catch(o=>{if(o.Code!=="BucketAlreadyOwnedByYou"&&o.name!=="BucketAlreadyOwnedByYou")throw o});try{return await i[e],{created:!0,exists:!1}}finally{delete i[e]}}}s(oo,"createBucketIfNotExists");var CN=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?Rr[r.toLowerCase()]:Rr.txt},"resolveContentType"),sA=s(async(t,e,r)=>{let n=xe(t),i=at(),o=await oo(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=xu(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),oA=s(async({client:t,bucket:e,filename:r,stream:n,type:i,extra:o})=>{if(!n)throw new Error("Stream to upload is invalid/undefined");let a=CN(r,i),u=Ee(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new Ap.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function DN({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await io.default.open(r)).createReadStream():o,l=at(),d=await oo(l,t);if(a&&d.created){let h=xu(t,a);await l.putBucketLifecycleConfiguration(h)}let f=n,g=f||(u?Rr[u.toLowerCase()]:Rr.txt),m={Bucket:xe(t),Key:Ee(e),Body:c,ContentType:g};if(i&&typeof i=="object"){for(let h of Object.keys(i))(!i[h]||typeof i[h]!="string")&&delete i[h];m.Metadata=i}return new Ap.Upload({client:l,params:m}).done()}s(DN,"upload");async function aA({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await Zt.default.trace("streamUpload",async a=>{a.addTags({bucketName:t,filename:r,type:n,ttl:o});let u=r.split(".").pop();a.addTags({extension:u});let{bucket:c,client:l}=await sA(t,o,a),{details:d,contentType:f}=await oA({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),g=await l.headObject({Bucket:c,Key:Ee(r)});return a.addTags({contentType:f,contentLength:g.ContentLength}),{...d,ContentLength:g.ContentLength}})}s(aA,"streamUpload");async function bN({bucket:t,files:e,ttl:r}){return await Zt.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await sA(t,r,i),u=e.map((l,d)=>({...l,index:d})),c=new Array(e.length);return await wt.parallelForeach(u,async l=>{let{details:d}=await oA({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=d},10),c})}s(bN,"streamUploadMany");async function uA(t,e){return await Zt.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=at(),i={Bucket:xe(t),Key:Ee(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),RN.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return Lu.default.Readable.fromWeb(a)}})}s(uA,"retrieve");async function*Rp(t,e){let r=at(),n=s((a={})=>r.listObjectsV2({...a,Bucket:xe(t),Prefix:Ee(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s(Rp,"listAllObjects");async function xN(t,e){let r={};return await wt.parallelForeach(Rp(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(xN,"getAllFiles");async function hn(t,e,r=3600){let n=at({presigning:!0}),i={Bucket:xe(t),Key:Ee(e)},o=await(0,rA.getSignedUrl)(n,new Pu.GetObjectCommand(i),{expiresIn:r});if(E.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${wp}${u}${c}`}else return o}s(hn,"getPresignedUrl");async function vN(t,e){return await Zt.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=xe(t),e=Ee(e);let n=await uA(t,e),i=(0,Ye.join)(mn(),(0,Op.v4)());return r.addTags({outputPath:i}),n instanceof Lu.default.Readable?(r.addTags({stream:!0}),await(0,so.pipeline)(n,pi.default.createWriteStream(i))):(r.addTags({stream:!1}),pi.default.writeFileSync(i,n)),i})}s(vN,"retrieveToTmp");async function NN(t,e,r){return await Zt.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Ye.join)(mn(),(0,Op.v4)());await io.default.mkdir(i,{recursive:!0});let o=0;return await wt.parallelForeach(Rp(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await Zt.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let d=cA(i,l);if(!d){c.addTags({skippedUnsafePath:!0});return}let{stream:f}=await vu(t,l);pi.default.existsSync(d.dir)||await io.default.mkdir(d.dir,{recursive:!0}),await(0,so.pipeline)(f,pi.default.createWriteStream(d.path,{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(NN,"retrieveDirectory");function cA(t,e){let r=(0,Ye.resolve)(t),n=(0,Ye.resolve)(r,...e.split("/"));if(n===r||n.startsWith(`${r}${Ye.sep}`))return{dir:(0,Ye.dirname)(n),path:n}}s(cA,"getSafeRetrieveDirectoryPath");async function PN(t,e){let r=at();await oo(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(PN,"deleteFile");async function LN(t,e){let r=at();await oo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ee(i)}))}};return r.deleteObjects(n)}s(LN,"deleteFiles");async function lA(t,e){t=xe(t),e=Ee(e);let r=at(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return lA(t,e)}s(lA,"deleteFolder");async function Cp(t,e,r){return await Zt.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=xe(t);let i=await io.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=Ee((0,Ye.join)(r,o.name)),u=(0,Ye.join)(e,o.name);o.isDirectory()?await Cp(t,u,a):await aA({bucket:t,filename:a,stream:pi.default.createReadStream(u)})}return i})}s(Cp,"uploadDirectory");async function UN(t,e,r={},{followRedirects:n=!0}={}){e=Ee(e);let i=await li(t,{headers:r},{followRedirects:n});if(!i.ok)throw new Error(`unexpected response ${i.statusText}`);await(0,so.pipeline)(i.body,Ip.default.createUnzip(),_p.default.extract(e))}s(UN,"downloadTarballDirect");async function kN(t,e,r){e=xe(e),r=Ee(r);let n=await li(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Ye.join)(mn(),r);return await(0,so.pipeline)(n.body,Ip.default.createUnzip(),_p.default.extract(i)),!E.isTest()&&E.SELF_HOSTED&&await Cp(e,i,r),i}s(kN,"downloadTarball");async function vu(t,e){return await Zt.default.trace("getReadStream",async r=>{t=xe(t),e=Ee(e),r.addTags({bucketName:t,path:e});let n=at(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof Lu.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(vu,"getReadStream");async function MN(t,e){t=xe(t),e=Ee(e);let r=at(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(MN,"getObjectMetadata");async function FN(t,e){t=xe(t),e=Ee(e);let r=at(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode||i.$metadata?.httpStatusCode)===404)return!1;throw i}}s(FN,"objectExists");function Sp(t){let e=t.split("?")[0],r=new RegExp(`^${wp}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:o}=n.groups;return{bucket:i,path:o}}return null}s(Sp,"extractBucketAndPath");var fA=W(require("querystring"));var dA=W(require("aws-cloudfront-sign"));var Uu;function BN(){if(!E.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Uu||(Uu=Buffer.from(E.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Uu)}s(BN,"getPrivateKey");var WN=s(()=>({keypairId:E.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:BN(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),mi=s(t=>{let e=GN(t);return dA.getSignedUrl(e,WN())},"getPresignedUrl"),GN=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${E.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function $N(t){return`${Ee(t)}/budibase-client.js`}s($N,"clientLibraryPath");function VN(t,e){return`${Ee(t)}/${e}`}s(VN,"client3rdPartyLibrary");async function qN(t,e){return`/api/assets/${t}/client?${await pA(e)}`}s(qN,"clientLibraryUrl");async function pA(t){let e,r;try{e=V()}finally{r={version:t}}return e&&e!==ce&&(r.tenantId=e),fA.default.encode(r)}s(pA,"getClientCacheKey");async function mA(t){return E.CLOUDFRONT_CDN?mi(t):await hn(E.APPS_BUCKET_NAME,t)}s(mA,"getAppFileUrl");async function KN(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await mA(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(KN,"enrichPWAImages");var QN=s(async(t,e,r)=>{let n=hA(t,e);return E.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),mi(n)):await hn(E.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),hA=s((t,e)=>{let r=`${t}/${e}`;return E.MULTI_TENANCY&&(r=`${V()}/${r}`),r},"getGlobalFileS3Key");async function jN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await HN(e),n=await YN(e);return{...e,jsUrl:r,iconUrl:n}}))}s(jN,"enrichPluginURLs");async function HN(t){let e=EA(t);return gA(e)}s(HN,"getPluginJSUrl");async function YN(t){let e=yA(t);if(e)return gA(e)}s(YN,"getPluginIconUrl");async function gA(t){return E.CLOUDFRONT_CDN?mi(t):await hn(E.PLUGIN_BUCKET_NAME,t)}s(gA,"getPluginUrl");function EA(t){return TA(t,"plugin.min.js")}s(EA,"getPluginJSKey");function yA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return TA(t,e)}s(yA,"getPluginIconKey");function TA(t,e){return`${SA(t.name)}/${e}`}s(TA,"getPluginS3Key");function SA(t){let e=`${t}`;return E.MULTI_TENANCY&&(e=`${V()}/${e}`),E.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(SA,"getPluginS3Dir");var OA="budibase.log",IA="budibase-logs-history.txt",wA=xp.default.join(mn(),"systemlogs");function AA(t){return xp.default.join(wA,t)}s(AA,"getFullPath");function RA(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}s(RA,"getSingleFileMaxSizeInfo");function vp(){let t=RA(E.ROLLING_LOG_MAX_SIZE);return _A.createStream(OA,{size:t?.size,path:wA,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:IA,initialRotation:!1})}s(vp,"localFileDestination");function zN(){let t=[],e=AA(IA);if(ao.default.existsSync(e)){let i=ao.default.readFileSync(e,"utf-8").split(`
|
|
37
|
-
`);for(let o of i.filter(a=>a))t.push(ao.default.readFileSync(o))}return t.push(ao.default.readFileSync(AA(OA))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(zN,"getLogReadStream");function JN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(JN,"isPlainObject");function XN(t){return t instanceof Error}s(XN,"isError");function ZN(t){return typeof t=="string"}s(ZN,"isMessage");var Cr;if(!E.DISABLE_PINO_LOGGER){let t=E.LOG_LEVEL,e={level:t,formatters:{level:s(c=>({level:c.toUpperCase()}),"level"),bindings:s(()=>E.SELF_HOSTED?{service:E.SERVICE_NAME}:{},"bindings")},timestamp:s(()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`,"timestamp")},r=[];r.push(E.isDev()?{stream:(0,CA.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),E.SELF_HOSTED&&r.push({stream:vp(),level:t}),Cr=r.length?(0,ku.default)(e,ku.default.multistream(r)):(0,ku.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(p=>{ZN(p)&&(f=`${f} ${p}`.trimStart()),JN(p)&&d.push(p),XN(p)&&(l=p)});let g=u(),m={};m={tenantId:i(),appId:o(),automationId:a(),identityId:g?._id,identityType:g?.type,correlationId:Tp()};let y=Pp.default.scope().active();y&&Pp.default.inject(y.context(),DA.formats.LOG,m);let h={err:l,pid:process.pid,...m};if(d.length){let p={},T=0;for(let A=0;A<d.length;A++){let _=d[A],I=_._logKey;I?(delete _._logKey,h[I]=_):(p[T]=_,T++)}Object.keys(p).length&&(h.data=p)}return[h,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Cr?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Cr?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Cr?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Cr?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Cr?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Cr?.debug(l,d)};let i=s(()=>{let c;try{c=V()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=Fe()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=Nf()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=Qt()}catch{}return c},"getIdentity")}var Mu=Cr;var eP=["AccountError"];function tP(t){return t&&t.suppressAlert}s(tP,"isSuppressed");function gn(t,e){e&&eP.includes(e.name)&&tP(e)||console.error(`bb-alert: ${t}`,e)}s(gn,"logAlert");function rP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,gn(t,n)}s(rP,"logAlertWithInfo");function hi(t,e){console.warn(`bb-warn: ${t}`,e)}s(hi,"logWarn");var Fu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},Lp=class{static{s(this,"QueuedProcessor")}constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:o=!0,maxStalledCount:a=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new yt(e,{maxStalledCount:a,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:o}}),this._queue.process(async(u,c)=>{try{let l=await this.processFn(u.data);c?.(null,l)}catch(l){l instanceof Fu&&await u.discard(),gn(`Failed to process job in ${this._queue.name}`,l),c?.(l)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await ke.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var nP=100,Bu,co=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new yt("docWritethroughQueue",{jobOptions:{attempts:nP}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){if(r.startsWith("scimlog"))return;let i=De(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},kp=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await co.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function bA(){return Bu=new co().init(),Bu}s(bA,"init");function iP(){return Bu||bA()}s(iP,"getProcessor");var Gu={};P(Gu,{CacheKey:()=>Oe,TTL:()=>gi,bustCache:()=>Ei,destroy:()=>fo,get:()=>lo,increment:()=>vA,keys:()=>Wu,store:()=>yn,withCache:()=>br,withCacheWithDynamicTTL:()=>xA});function Tt(t){let e=V();return`${t}:${e}`}s(Tt,"generateTenantKey");var En=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Wf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Tt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Tt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[Tt(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Tt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(Tt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async increment(e,r,n={useTenancy:!0}){e=n.useTenancy?Tt(e):e;let i=await this.getClient(),o=await i.increment(e);return r&&await i.setExpiry(e,r),o}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Tt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var Dr=new En,Oe={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:s(t=>`oauth2Token_${t}`,"OAUTH2_TOKEN")},gi=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(gi||{}),Wu=s((...t)=>Dr.keys(...t),"keys"),lo=s((...t)=>Dr.get(...t),"get"),yn=s((...t)=>Dr.store(...t),"store"),fo=s((...t)=>Dr.delete(...t),"destroy"),br=s((...t)=>Dr.withCache(...t),"withCache"),xA=s((...t)=>Dr.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),Ei=s((...t)=>Dr.bustCache(...t),"bustCache"),vA=s((...t)=>Dr.increment(...t),"increment");var An={};P(An,{createCode:()=>dP,deleteCode:()=>pP,getCode:()=>fP,getExistingInvites:()=>Wp,getInviteCodes:()=>FA,updateCode:()=>lP});var xr={};P(xr,{AUTO_EXTEND_POLLING_MS:()=>PA,doWithLock:()=>Sn,newRedlock:()=>Tn});var NA=W(require("redlock"));async function sP(t,e){if(t==="custom")return Tn(e);switch(t){case"try_once":return Tn(yi.TRY_ONCE);case"try_twice":return Tn(yi.TRY_TWICE);case"default":return Tn(yi.DEFAULT);case"delay_500":return Tn(yi.DELAY_500);case"auto_extend":return Tn(yi.AUTO_EXTEND);default:throw wt.unreachable(t)}}s(sP,"getClient");var yi={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function Tn(t={}){let e={...yi.DEFAULT,...t},n=(await $f()).client;return new NA.default([n],e)}s(Tn,"newRedlock");function oP(t){let r=`lock:${t.systemLock?"system":V()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(oP,"getLockName");var PA=me.fromSeconds(10).toMs();async function Sn(t,e){let r=await sP(t.type,t.customOptions),n,i,o,a=!1;try{let u=oP(t),c=t.type==="auto_extend"?PA:t.ttl;if(n=await r.lock(u,c),t.type==="auto_extend"){let d=s(()=>{i=setTimeout(async()=>{a||(o=(async()=>{n=await n.extend(c,()=>t.onExtend&&t.onExtend())})(),await o,o=void 0,d())},c/2)},"extendInIntervals");d()}return{executed:!0,result:await e()}}catch(u){if(u.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw u}else throw u}finally{a=!0,clearTimeout(i),await o?.catch(()=>{}),await n?.unlock()}}s(Sn,"doWithLock");var UA=me.fromDays(7).toSeconds(),aP=me.fromSeconds(10).toMs(),$u="Invitation is not valid or has expired, please request a new one.";function kA(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(kA,"normaliseInviteList");function uP(t){let e=!1,r=Date.now();for(let[n,i]of Object.entries(t.invites))(!i?.expiresAt||i.expiresAt<=r)&&(delete t.invites[n],e=!0);return{list:t,changed:e}}s(uP,"pruneExpiredInvites");async function Bp(t){let r=await(await Gs()).get(t);return kA(r,t)}s(Bp,"loadInviteList");async function po(t,e){await(await Gs()).store(t,e)}s(po,"saveInviteList");async function mo(t,e){let{result:r}=await Sn({type:"default",name:"process_user_invite",systemLock:!0,resource:t,ttl:aP},e);return r}s(mo,"withInviteListLock");function cP(t,e){return{code:t,email:e.email,info:e.info}}s(cP,"toInviteWithCode");async function MA(t,e){let r=await Gs(),n=kA(await r.get(e),e);if(!n)throw new Error($u);if(!Object.keys(n.invites).includes(t))throw new Error($u);return{list:n,invite:n.invites[t]}}s(MA,"findInviteInList");async function lP(t,e){let r={...e.info},n=r.tenantId||V();r.tenantId=n,await mo(n,async()=>{let i=await Bp(n)||{tenantId:n,invites:{}};i.invites[t]={email:e.email,info:r,expiresAt:Date.now()+UA*1e3},await po(n,i)})}s(lP,"updateCode");async function dP(t,e){let r=X(),n={...e||{}},i=n.tenantId||V();return n.tenantId=i,await mo(i,async()=>{let o=await Bp(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+UA*1e3},await po(i,o)}),r}s(dP,"createCode");async function fP(t,e){let r=e||V();return await mo(r,async()=>{let n=await MA(t,r),{list:i,invite:o}=n;if(o.expiresAt<=Date.now())throw delete i.invites[t],await po(i.tenantId,i),new Error($u);return{email:o.email,info:o.info}})}s(fP,"getCode");async function pP(t,e){let r=e||V();try{await mo(r,async()=>{let n=await MA(t,r);delete n.list.invites[t],await po(n.list.tenantId,n.list)})}catch(n){if(n instanceof Error&&n.message===$u)return;throw n}}s(pP,"deleteCode");async function FA(){let t=V(),e=await mo(t,async()=>{let n=await Bp(t)||{tenantId:t,invites:{}},i=uP(n);return n=i.list,i.changed&&await po(t,n),n}),r=new Map;for(let[n,i]of Object.entries(e.invites))r.set(n,cP(n,i));return Array.from(r.values())}s(FA,"getInviteCodes");async function Wp(t){let e=new Set(t.map(r=>r.toLowerCase()));return(await FA()).filter(r=>e.has(r.email.toLowerCase()))}s(Wp,"getExistingInvites");var Gp={};P(Gp,{createCode:()=>hP,getCode:()=>gP,invalidateCode:()=>EP});var mP=me.fromHours(1).toSeconds();async function hP(t,e){let r=X();return await(await $s()).store(r,{userId:t,info:e},mP),r}s(hP,"createCode");async function gP(t){let r=await(await $s()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(gP,"getCode");async function EP(t){await(await $s()).delete(t)}s(EP,"invalidateCode");var nr={};P(nr,{getUser:()=>vo,getUsers:()=>ik,invalidateUser:()=>No,invalidateUsers:()=>sk});var ho={};P(ho,{getPlatformDB:()=>vr,users:()=>St});var St={};P(St,{addSsoUser:()=>WA,addUser:()=>OP,getUserDoc:()=>BA,lookupTenantId:()=>yP,removeUser:()=>IP,updateUserDoc:()=>TP});function vr(){return De(pe.PLATFORM_INFO.name)}s(vr,"getPlatformDB");async function yP(t){return E.MULTI_TENANCY?(await BA(t)).tenantId:ce}s(yP,"lookupTenantId");async function BA(t){return vr().get(t)}s(BA,"getUserDoc");async function TP(t){await vr().put(t)}s(TP,"updateUserDoc");function SP(t,e){return{_id:t,tenantId:e}}s(SP,"newUserIdDoc");function AP(t,e,r){return{_id:e,userId:t,tenantId:r}}s(AP,"newUserEmailDoc");function _P(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(_P,"newUserSsoIdDoc");async function $p(t,e){let r=vr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s($p,"addUserDoc");async function WA(t,e,r,n){return $p(t,()=>_P(t,e,r,n))}s(WA,"addSsoUser");async function OP(t,e,r,n){let i=[$p(e,()=>SP(e,t)),$p(r,()=>AP(e,r,t))];n&&i.push(WA(n,r,e,t)),await Promise.all(i)}s(OP,"addUser");async function IP(t){let e=vr(),r=[t._id,t.email],n=await e.allDocs({keys:r,include_docs:!0});await e.bulkRemove(n.rows.map(i=>i.doc),{silenceErrors:!0})}s(IP,"removeUser");var On={};P(On,{getAccount:()=>Nr,getAccountByTenantId:()=>Ti,getStatus:()=>wP});var GA=W(require("node-fetch"));var _n=class{static{s(this,"API")}constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";ro.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,GA.default)(`${this.host}${r}`,o)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var Vp=new _n(E.INTERNAL_ACCOUNT_PORTAL_URL),qp=E.SELF_HOSTED||E.DISABLE_ACCOUNT_PORTAL,Nr=s(async t=>{if(qp)return;let e={email:t},r=await Vp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),Ti=s(async t=>{if(qp)return;let e={tenantId:t},r=await Vp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),wP=s(async()=>{if(qp)return;let t=await Vp.get("/api/status",{headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var Ii={};P(Ii,{UserDB:()=>Ut,addAppBuilder:()=>ek,bulkGetGlobalUsersById:()=>lc,bulkUpdateGlobalUsers:()=>bo,cleanseUserObject:()=>pm,creatorsInList:()=>Lr,deriveUserFieldsFromInvite:()=>mm,doesUserExist:()=>Y0,getAccountHolderFromUsers:()=>cc,getAllUserIds:()=>j0,getAllUsers:()=>H0,getById:()=>Ur,getCreatorCount:()=>X0,getExistingAccounts:()=>Oi,getExistingPlatformUsers:()=>O_,getExistingTenantUsers:()=>__,getFirstPlatformUser:()=>Co,getGlobalUserByAppPage:()=>x_,getGlobalUserByEmail:()=>ut,getPlatformUsers:()=>sc,getUserCount:()=>J0,hasAdminPermissions:()=>Pr,hasAppBuilderPermissions:()=>R_,hasBuilderPermissions:()=>We,isAdmin:()=>Lt,isAdminOrBuilder:()=>w_,isAdminOrWorkspaceBuilder:()=>oc,isBuilder:()=>Ci,isCreatorAsync:()=>Do,isCreatorSync:()=>ac,isGlobalBuilder:()=>I_,paginatedUsers:()=>N_,removeAppBuilder:()=>tk,removePortalUserPermissions:()=>Z0,searchExistingEmails:()=>um,searchGlobalUsersByApp:()=>b_,searchGlobalUsersByAppAccess:()=>fm,searchGlobalUsersByEmail:()=>v_,validateUniqueUser:()=>uc});var Ju={};P(Ju,{ActiveContentFileError:()=>Ku,BadRequestError:()=>Eo,BudibaseError:()=>go,EmailUnavailableError:()=>er,FeatureDisabledError:()=>Hu,ForbiddenError:()=>Qu,HTTPError:()=>Be,NotFoundError:()=>qu,NotImplementedError:()=>ju,UnexpectedError:()=>Vu,UsageLimitError:()=>Yu,getErrorMessage:()=>$A,getPublicError:()=>zu});var go=class extends Error{static{s(this,"BudibaseError")}constructor(e,r){super(e),this.code=r}};function $A(t){if(t==null)return"No error provided.";if(t instanceof Error)return t.message;if(typeof t=="string")return t;if(typeof t=="object"&&"message"in t)return String(t.message);try{let r=JSON.stringify(t);if(r!=="{}")return r}catch{}let e=String(t);return e!=="[object Object]"?e:"An unknown error occurred"}s($A,"getErrorMessage");var zu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),Be=class t extends go{static{s(this,"HTTPError")}constructor(e,r,n="http"){super(e,n),this.status=r}static async fromResponse(e){let r=await e.text(),n=r,i=e.status,o="http";try{let a=JSON.parse(r);n=a.error?.message||a.message,i=a.status??e.status,o=a.error?.code??e.statusText}catch{}return new t(n,i,o)}},Vu=class extends Be{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},qu=class extends Be{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},Eo=class extends Be{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},Ku=class extends Eo{static{s(this,"ActiveContentFileError")}constructor(e){super(`File "${e}" contains active content which is not permitted`)}},Qu=class extends Be{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},ju=class extends Be{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},Hu=class extends Error{static{s(this,"FeatureDisabledError")}constructor(e){super(`Feature disabled: '${e}'`)}},Yu=class extends Error{static{s(this,"UsageLimitError")}constructor(e){super(`Usage limit exceeded: '${e}'`)}},er=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var Hp={};P(Hp,{PASSWORD_MAX_LENGTH:()=>Qp,PASSWORD_MIN_LENGTH:()=>Kp,validatePassword:()=>jp});var Kp=+(E.PASSWORD_MIN_LENGTH||12),Qp=+(E.PASSWORD_MAX_LENGTH||512);function jp(t){return!t||t.length<Kp?{valid:!1,error:`Password invalid. Minimum ${Kp} characters.`}:t.length>Qp?{valid:!1,error:`Password invalid. Maximum ${Qp} characters.`}:{valid:!0}}s(jp,"validatePassword");var Xu={};P(Xu,{createASession:()=>RP,endSession:()=>CP,getSession:()=>zp,getSessionsForUser:()=>yo,invalidateSessions:()=>In,updateSessionTTL:()=>Yp});var qA=require("uuid");var KA=Su();function Si(t,e){return`${t}/${e}`}s(Si,"makeSessionID");async function yo(t){return t?(await(await Ar()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(yo,"getSessionsForUser");async function In(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await yo(t)).map(a=>({key:Si(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:Si(t,o)}))),i&&i.length>0){let o=await Ar(),a=[];for(let u of i)a.push(o.delete(u.key));E.isTest()||hi(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(In,"invalidateSessions");async function RP(t,e){let r=await yo(t),n=0;if(r.length>=3){let l=r.sort((g,m)=>new Date(g.createdAt).getTime()-new Date(m.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(g=>g.sessionId);n=f.length,await In(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await Ar(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,qA.v4)(),u=Si(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,KA),{session:c,invalidatedSessionCount:n}}s(RP,"createASession");async function Yp(t){let e=await Ar(),r=Si(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,KA)}s(Yp,"updateSessionTTL");async function CP(t,e){await(await Ar()).delete(Si(t,e))}s(CP,"endSession");async function zp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Ar()).get(Si(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(zp,"getSession");var wn={};P(wn,{account:()=>JA,action:()=>XA,ai:()=>ZA,analytics:()=>Jp,app:()=>e_,asyncEventQueue:()=>At,auditLog:()=>t_,auth:()=>ic,automation:()=>r_,backfill:()=>n_,backfillCache:()=>tc,backup:()=>i_,datasource:()=>s_,email:()=>o_,environmentVariable:()=>a_,group:()=>u_,identification:()=>_t,initAsyncEvents:()=>P0,installation:()=>Ao,layout:()=>c_,license:()=>l_,org:()=>d_,plugin:()=>f_,processors:()=>nm,publishEvent:()=>S,query:()=>p_,resource:()=>m_,role:()=>Ro,rowAction:()=>h_,rows:()=>g_,screen:()=>E_,serve:()=>y_,shutdown:()=>L0,table:()=>T_,user:()=>Ce,view:()=>S_,workspace:()=>A_});var Jp={};P(Jp,{enabled:()=>DP});var DP=s(async()=>Zu(),"enabled");var At;function ec(){At=new yt("systemEventQueue",{jobTags:s(t=>({"event.name":t.event}),"jobTags")})}s(ec,"init");async function QA(){At&&await At.close()}s(QA,"shutdown");async function jA(t){At||ec();let{event:e,identity:r}=t;mh.indexOf(e)!==-1&&r.tenantId&&await At.add(t)}s(jA,"publishAsyncEvent");var tc={};P(tc,{end:()=>xP,isAlreadySent:()=>em,isBackfillingEvent:()=>Zp,recordEvent:()=>Xp,start:()=>bP});var bP=s(async t=>NP({eventWhitelist:t}),"start"),Xp=s(async(t,e)=>{let r=tm(t,e);await yn(r,e,void 0,{useTenancy:!1})},"recordEvent"),xP=s(async()=>{await PP(),await LP()},"end"),vP=s(async()=>lo(Oe.BACKFILL_METADATA),"getBackfillMetadata"),NP=s(async t=>yn(Oe.BACKFILL_METADATA,t),"saveBackfillMetadata"),PP=s(async()=>{await fo(Oe.BACKFILL_METADATA)},"deleteBackfillMetadata"),LP=s(async()=>{let t=tm(),e=await Wu(t);for(let r of e)await fo(r,{useTenancy:!1})},"clearEvents"),Zp=s(async t=>{let r=(await vP())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),em=s(async(t,e)=>{let r=tm(t,e);return!!await lo(r,{useTenancy:!1})},"isAlreadySent"),UP={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},tm=s((t,e)=>{let r,n=V();if(t){r=`${Oe.EVENTS}:${n}:${t}`;let i=UP[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${Oe.EVENTS}:${n}:*`;return r},"getEventKey");var nm={};P(nm,{init:()=>WP,processors:()=>rr});var rm=E.SELF_HOSTED&&!E.isDev(),To=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){rm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){rm||console.log("[audit] identified",e)}async identifyGroup(e){rm||console.log("[audit] group identified",e)}async shutdown(){}};var Ai=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new yt("auditLogQueue",{jobTags:s(n=>({"event.name":n.event}),"jobTags")}),t.auditLogQueue.process(async n=>{await be(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};E.ENABLE_AUDIT_LOG_IP_ADDR&&(o=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&sp(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:Fe(),hostInfo:r.hostInfo},tenantId:V()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var HA=require("uuid");var kP=new _n(E.INTERNAL_ACCOUNT_PORTAL_URL),_i=class t{static{s(this,"EventBrokerProcessor")}static init(e){t.getLicenseKeyFn=e}async processEvent(e,r,n,i){if(E.DISABLE_ACCOUNT_PORTAL)return;let o;if(E.SELF_HOSTED){if(!t.getLicenseKeyFn)return;let c=await t.getLicenseKeyFn();if(!c)return;o={"x-budibase-license-key":c}}else o={"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY},r.tenantId&&(o["x-budibase-tenant-id"]=r.tenantId);let a=Fe(),u={id:(0,HA.v4)(),type:e,identity:r,properties:{...n,version:E.VERSION,service:E.SERVICE,environment:r.environment,hosting:r.hosting,...a&&{appId:a},...r.installationId&&{installationId:r.installationId},...r.tenantId&&{tenantId:r.tenantId}},timestamp:i===void 0?Date.now():new Date(i).getTime()};try{let c=await kP.post("/api/v2/analytics/event",{headers:o,body:u});c.ok||console.warn(`[EventBrokerProcessor] unexpected response status: ${c.status}`)}catch(c){console.error(`[EventBrokerProcessor] failed to send event: ${c}`)}}};var So=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var MP=new To,FP=new Ai,BP=new _i;function WP(t,e){return _i.init(e),Ai.init(t)}s(WP,"init");var rr=new So([MP,FP,BP]);var rc={};P(rc,{checkInstallVersion:()=>VP,getInstall:()=>_o,getInstallFromDB:()=>sm});var im=W(require("semver"));var _o=s(async()=>br(Oe.INSTALLATION,86400,sm,{useTenancy:!1}),"getInstall");async function GP(t){let e={_id:pe.PLATFORM_INFO.docs.install,installId:X(),version:E.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return sm();throw r}}s(GP,"createInstallDoc");var sm=s(async()=>je(pe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(pe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await GP(t);else throw r}return e}),"getInstallFromDB"),$P=s(async t=>{try{await je(pe.PLATFORM_INFO.name,async e=>{let r=await _o();r.version=t,await e.put(r),await Ei(Oe.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),VP=s(async()=>{let t=await _o(),e=t.version,r=E.VERSION;try{if(e!==r){let n=im.default.gt(r,e),i=im.default.lt(r,e);await $P(r)&&(await Us({_id:t.installId,type:"installation"},async()=>{n?await Ao.upgraded(e,r):i&&await Ao.downgraded(e,r)}),await _t.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?gn(`Invalid version "${r}" - is it semver?`):gn("Failed to retrieve version",n)}},"checkInstallVersion");var qP=s(async()=>{let t=mf(),e=wo(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await Rn(),i=Oo();return{id:YA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await Rn(),i=await nc(V()),o=Oo();return{id:YA(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:V(),environment:e}}else if(r==="user"){let n=t,i=await nc(V()),o=await Rn(),a=n.account,u;return a?u=a.hosting:u=Oo(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:V(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),KP=s(async(t,e)=>{let r=t,n="installation",i=Oo(),o=E.VERSION,a=wo(),u={id:r,type:n,hosting:i,version:o,environment:a};await om(u,e),await Io({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),QP=s(async(t,e,r,n=E.VERSION)=>{let i=await nc(t),o="tenant",a=await Rn(),u=wo(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await om(c,r),await Io({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),jP=s(async(t,e,r)=>{let n=t._id,i=await nc(t.tenantId),o="user",a=We(t),u=Pr(t),c;vn(t)&&(c=t.providerType);let d=(await Oi([t.email])).length>0,f=!!e&&d&&e.verified,g=await Rn(),m=e?e.hosting:Oo(),y=wo();await Io({id:n,type:o,hosting:m,installationId:g,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:y},r)},"identifyUser"),HP=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ho(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await Rn(),l=wo();if(jo(t)){let f=await ut(t.email);f?._id&&(e=f._id)}await Io({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),Io=s(async(t,e)=>{await rr.identify(t,e)},"identify"),om=s(async(t,e)=>{await rr.identifyGroup(t,e)},"identifyGroup"),wo=s(()=>E.isDev()?"development":E.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),Oo=s(()=>E.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),Rn=s(async()=>YP()?"account-portal":(await _o()).installId,"getInstallationId"),nc=s(async t=>E.SELF_HOSTED?zA(t):t,"getEventTenantId"),zA=s(async t=>be(t,()=>br(Oe.UNIQUE_TENANT_ID,86400,async()=>{let e=z(),r=await wi(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${X()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=E.VERSION,await e.put(r),n)})),"getUniqueTenantId"),YP=s(()=>E.SERVICE==="account-portal","isAccountPortal"),YA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),_t={getCurrentIdentity:qP,identifyInstallationGroup:KP,identifyTenantGroup:QP,identifyUser:jP,identifyAccount:HP,identify:Io,identifyGroup:om,getInstallationId:Rn,getUniqueTenantId:zA};var S=s(async(t,e,r,n)=>{let i=n||await _t.getCurrentIdentity();if(!(n?!1:await Zp(t))){await jA({event:t,identity:i,properties:e,timestamp:r}),await rr.processEvent(t,i,e,r);return}await em(t,e)||(await rr.processEvent(t,i,e,r),await Xp(t,e))},"publishEvent");async function zP(t,e){let r={tenantId:t.tenantId};await S("account:created",r,void 0,e)}s(zP,"created");async function JP(t){let e={tenantId:t.tenantId};await S("account:deleted",e)}s(JP,"deleted");async function XP(t){let e={tenantId:t.tenantId};await S("account:verified",e)}s(XP,"verified");var JA={created:zP,deleted:JP,verified:XP};function ZP(t,e){S("action:automation_step:executed",t,e).catch(r=>{console.error("automationStepExecuted telemetry failed",{action:t,err:r})})}s(ZP,"automationStepExecuted");function eL(t){S("action:automation_step:failed",t).catch(e=>{console.error("automationStepFailed telemetry failed",{action:t,err:e})})}s(eL,"automationStepFailed");function tL(t,e){S("action:crud:executed",t,e).catch(r=>{console.error("crudExecuted telemetry failed",{action:t,err:r})})}s(tL,"crudExecuted");function rL(t){S("action:crud:failed",t).catch(e=>{console.error("crudFailed telemetry failed",{action:t,err:e})})}s(rL,"crudFailed");function nL(t,e){S("action:ai_agent:executed",t,e).catch(r=>{console.error("aiAgentExecuted telemetry failed",{action:t,err:r})})}s(nL,"aiAgentExecuted");function iL(t){S("action:ai_agent:failed",t).catch(e=>{console.error("aiAgentFailed telemetry failed",{action:t,err:e})})}s(iL,"aiAgentFailed");var XA={aiAgentExecuted:nL,aiAgentFailed:iL,automationStepExecuted:ZP,automationStepFailed:eL,crudExecuted:tL,crudFailed:rL};function sL(t,e){let r={configId:t._id,audited:{name:t.name}};S("ai:config:created",r,e).catch(n=>{console.error("configCreated telemetry failed",{configId:t._id,err:n})})}s(sL,"configCreated");function oL(t){let e={configId:t._id,audited:{name:t.name}};S("ai:config:updated",e).catch(r=>{console.error("configUpdated telemetry failed",{configId:t._id,err:r})})}s(oL,"configUpdated");function aL(t){let e={configId:t._id,audited:{name:t.name}};S("ai:config:deleted",e).catch(r=>{console.error("configDeleted telemetry failed",{configId:t._id,err:r})})}s(aL,"configDeleted");function uL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:created",e).catch(r=>{console.error("agentCreated telemetry failed",{agentId:t._id,err:r})})}s(uL,"agentCreated");function cL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:updated",e).catch(r=>{console.error("agentUpdated telemetry failed",{agentId:t._id,err:r})})}s(cL,"agentUpdated");function lL(t){let e={agentId:t._id,audited:{name:t.name}};S("ai:agent:deleted",e).catch(r=>{console.error("agentDeleted telemetry failed",{agentId:t._id,err:r})})}s(lL,"agentDeleted");function dL(t){S("rag:file:uploaded",t).catch(e=>{console.error("ragFileUploaded telemetry failed",{event:t,err:e})})}s(dL,"ragFileUploaded");function fL(t){S("rag:file:deleted",t).catch(e=>{console.error("ragFileDeleted telemetry failed",{event:t,err:e})})}s(fL,"ragFileDeleted");function pL(t){S("rag:file:sharepoint:connected",t).catch(e=>{console.error("ragFileSharePointConnected telemetry failed",{event:t,err:e})})}s(pL,"ragFileSharePointConnected");function mL(t){S("rag:file:sharepoint:disconnected",t).catch(e=>{console.error("ragFileSharePointDisconnected telemetry failed",{event:t,err:e})})}s(mL,"ragFileSharePointDisconnected");function hL(t){S("rag:file:processed",t).catch(e=>{console.error("ragFileProcessed telemetry failed",{event:t,err:e})})}s(hL,"ragFileProcessed");function gL(t){S("rag:file:sharepoint:sync",t).catch(e=>{console.error("ragFileSharePointSync telemetry failed",{event:t,err:e})})}s(gL,"ragFileSharePointSync");var ZA={configCreated:sL,configUpdated:oL,configDeleted:aL,agentCreated:uL,agentUpdated:cL,agentDeleted:lL,ragFileUploaded:dL,ragFileDeleted:fL,ragFileSharePointConnected:pL,ragFileSharePointDisconnected:mL,ragFileSharePointSync:gL,ragFileProcessed:hL};var EL=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await S("app:created",r,e)},"created");async function yL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await S("app:updated",e)}s(yL,"updated");async function TL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:deleted",e)}s(TL,"deleted");async function SL(t,e){let r={appId:t.appId,audited:{name:t.name}};await S("app:published",r,e)}s(SL,"published");async function AL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:unpublished",e)}s(AL,"unpublished");async function _L(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:file:imported",e)}s(_L,"fileImported");async function OL(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await S("app:duplicated",r)}s(OL,"duplicated");async function IL(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await S("app:template:imported",r)}s(IL,"templateImported");async function wL(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await S("app:version:updated",n)}s(wL,"versionUpdated");async function RL(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await S("app:version:reverted",n)}s(RL,"versionReverted");async function CL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:reverted",e)}s(CL,"reverted");async function DL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:exported",e)}s(DL,"exported");var e_={created:EL,updated:yL,deleted:TL,published:SL,unpublished:AL,fileImported:_L,duplicated:OL,templateImported:IL,versionUpdated:wL,versionReverted:RL,reverted:CL,exported:DL};async function bL(t){let e={filters:t};await S("audit_log:filtered",e)}s(bL,"filtered");async function xL(t){let e={filters:t};await S("audit_log:downloaded",e)}s(xL,"downloaded");var t_={filtered:bL,downloaded:xL};async function vL(t,e){let n={userId:(await _t.getCurrentIdentity()).id,source:t,audited:{email:e}};await S("auth:login",n)}s(vL,"login");async function NL(t){let r={userId:(await _t.getCurrentIdentity()).id,audited:{email:t}};await S("auth:logout",r)}s(NL,"logout");async function PL(t,e){let r={type:t};await S("auth:sso:created",r,e)}s(PL,"SSOCreated");async function LL(t){let e={type:t};await S("auth:sso:updated",e)}s(LL,"SSOUpdated");async function UL(t,e){let r={type:t};await S("auth:sso:activated",r,e)}s(UL,"SSOActivated");async function kL(t){let e={type:t};await S("auth:sso:deactivated",e)}s(kL,"SSODeactivated");var ic={login:vL,logout:NL,SSOCreated:PL,SSOUpdated:LL,SSOActivated:UL,SSODeactivated:kL};async function ML(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await S("automation:created",r,e)}s(ML,"created");async function FL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await S("automation:trigger:updated",e)}s(FL,"triggerUpdated");async function BL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await S("automation:deleted",e)}s(BL,"deleted");async function WL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await S("automation:tested",e)}s(WL,"tested");var GL=s(async(t,e)=>{let r={count:t};await S("automations:run",r,e)},"run");async function $L(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await S("automation:step:created",n,r)}s($L,"stepCreated");async function VL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await S("automation:step:deleted",r)}s(VL,"stepDeleted");var r_={created:ML,triggerUpdated:FL,deleted:BL,tested:WL,run:GL,stepCreated:$L,stepDeleted:VL};var Ri=!E.SELF_HOSTED&&!E.isDev();async function qL(t){Ri||await S("app:backfill:succeeded",t)}s(qL,"appSucceeded");async function KL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("app:backfill:failed",e)}s(KL,"appFailed");async function QL(t){Ri||await S("tenant:backfill:succeeded",t)}s(QL,"tenantSucceeded");async function jL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("tenant:backfill:failed",e)}s(jL,"tenantFailed");async function HL(){if(Ri)return;let t={};await S("installation:backfill:succeeded",t)}s(HL,"installationSucceeded");async function YL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("installation:backfill:failed",e)}s(YL,"installationFailed");var n_={appSucceeded:qL,appFailed:KL,tenantSucceeded:QL,tenantFailed:jL,installationSucceeded:HL,installationFailed:YL};async function zL(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await S("app:backup:restored",e)}s(zL,"workspaceBackupRestored");async function JL(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await S("app:backup:triggered",o)}s(JL,"workspaceBackupTriggered");var i_={workspaceBackupRestored:zL,workspaceBackupTriggered:JL};function am(t){return!Object.values(Vo).includes(t.source)}s(am,"isCustom");async function XL(t,e){let r={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:created",r,e)}s(XL,"created");async function ZL(t){let e={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:updated",e)}s(ZL,"updated");async function eU(t){let e={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:deleted",e)}s(eU,"deleted");var s_={created:XL,updated:ZL,deleted:eU};async function tU(t){let e={};await S("email:smtp:created",e,t)}s(tU,"SMTPCreated");async function rU(){let t={};await S("email:smtp:updated",t)}s(rU,"SMTPUpdated");var o_={SMTPCreated:tU,SMTPUpdated:rU};async function nU(t,e){let r={name:t,environments:e};await S("environment_variable:created",r)}s(nU,"created");async function iU(t){let e={name:t};await S("environment_variable:deleted",e)}s(iU,"deleted");async function sU(t){let e={userId:t};await S("environment_variable:upgrade_panel_opened",e)}s(sU,"upgradePanelOpened");var a_={created:nU,deleted:iU,upgradePanelOpened:sU};async function oU(t,e){let r={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:created",r,e)}s(oU,"created");async function aU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:updated",e)}s(aU,"updated");async function uU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:deleted",e)}s(uU,"deleted");async function cU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await S("user_group:user_added",n)}s(cU,"usersAdded");async function lU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await S("user_group:users_deleted",n)}s(lU,"usersDeleted");async function dU(t){let e={groupId:t,onboarding:!0};await S("user_group:onboarding_added",e)}s(dU,"createdOnboarding");async function fU(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await S("user_group:permissions_edited",e)}s(fU,"permissionsEdited");var u_={created:oU,updated:aU,deleted:uU,usersAdded:cU,usersDeleted:lU,createdOnboarding:dU,permissionsEdited:fU};async function pU(t){let e={currentVersion:t};await S("installation:version:checked",e)}s(pU,"versionChecked");async function mU(t,e){let r={from:t,to:e};await S("installation:version:upgraded",r)}s(mU,"upgraded");async function hU(t,e){let r={from:t,to:e};await S("installation:version:downgraded",r)}s(hU,"downgraded");async function gU(){let t={};await S("installation:firstStartup",t)}s(gU,"firstStartup");var Ao={versionChecked:pU,upgraded:mU,downgraded:hU,firstStartup:gU};async function EU(t,e){let r={layoutId:t._id};await S("layout:created",r,e)}s(EU,"created");async function yU(t){let e={layoutId:t};await S("layout:deleted",e)}s(yU,"deleted");var c_={created:EU,deleted:yU};async function TU(t,e){let r={accountId:t.accountId,...e};await S("license:plan:changed",r)}s(TU,"planChanged");async function SU(t){let e={accountId:t.accountId};await S("license:activated",e)}s(SU,"activated");async function AU(t){let e={accountId:t.accountId};await S("license:checkout:opened",e)}s(AU,"checkoutOpened");async function _U(t){let e={accountId:t.accountId};await S("license:checkout:success",e)}s(_U,"checkoutSuccess");async function OU(t){let e={accountId:t.accountId};await S("license:portal:opened",e)}s(OU,"portalOpened");async function IU(t){let e={accountId:t.accountId};await S("license:payment:failed",e)}s(IU,"paymentFailed");async function wU(t){let e={accountId:t.accountId};await S("license:payment:recovered",e)}s(wU,"paymentRecovered");var l_={planChanged:TU,activated:SU,checkoutOpened:AU,checkoutSuccess:_U,portalOpened:OU,paymentFailed:IU,paymentRecovered:wU};async function RU(t){let e={};await S("org:info:name:updated",e,t)}s(RU,"nameUpdated");async function CU(t){let e={};await S("org:info:logo:updated",e,t)}s(CU,"logoUpdated");async function DU(t){let e={};await S("org:platformurl:updated",e,t)}s(DU,"platformURLUpdated");async function bU(){let t={};await S("analytics:opt:out",t)}s(bU,"analyticsOptOut");async function xU(){let t={};await S("analytics:opt:out",t)}s(xU,"analyticsOptIn");var d_={nameUpdated:RU,logoUpdated:CU,platformURLUpdated:DU,analyticsOptOut:bU,analyticsOptIn:xU};async function vU(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await S("plugin:init",e)}s(vU,"init");async function NU(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await S("plugin:imported",e)}s(NU,"imported");async function PU(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await S("plugin:deleted",e)}s(PU,"deleted");var f_={init:vU,imported:NU,deleted:PU};var LU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await S("query:created",n,r)},"created"),UU=s(async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await S("query:updated",r)},"updated"),kU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await S("query:deleted",n)},"deleted"),MU=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await S("query:import",n)},"imported"),FU=s(async(t,e)=>{let r={count:t};await S("queries:run",r,e)},"run"),BU=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await S("query:previewed",r)},"previewed"),p_={created:LU,updated:UU,deleted:kU,imported:MU,run:FU,previewed:BU};async function WU({resource:t,fromWorkspace:e,toWorkspace:r},n){let i={resource:t,fromWorkspace:e,toWorkspace:r};await S("resource:copied_to_workspace",i,n)}s(WU,"duplicatedToWorkspace");var m_={duplicatedToWorkspace:WU};async function GU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:created",r,e)}s(GU,"created");async function $U(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:updated",e)}s($U,"updated");async function VU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:deleted",e)}s(VU,"deleted");async function qU(t,e,r){let n={userId:t._id,roleId:e};await S("role:assigned",n,r)}s(qU,"assigned");async function KU(t,e){let r={userId:t._id,roleId:e};await S("role:unassigned",r)}s(KU,"unassigned");var Ro={created:GU,updated:$U,deleted:VU,assigned:qU,unassigned:KU};async function QU(t,e){await S("row_action:created",t,e)}s(QU,"created");var h_={created:QU};var jU=s(async(t,e)=>{let r={count:t};await S("rows:created",r,e)},"created"),HU=s(async(t,e)=>{let r={tableId:t._id,count:e};await S("rows:imported",r)},"imported"),g_={created:jU,imported:HU};async function YU(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await S("screen:created",r,e)}s(YU,"created");async function zU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await S("screen:deleted",e)}s(zU,"deleted");var E_={created:YU,deleted:zU};async function JU(t){let e={timezone:t};await S("served:builder",e)}s(JU,"servedBuilder");async function XU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await S("served:app",n)}s(XU,"servedApp");async function ZU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await S("served:app:preview",r)}s(ZU,"servedAppPreview");var y_={servedBuilder:JU,servedApp:XU,servedAppPreview:ZU};async function e0(t,e){let r={tableId:t._id,audited:{name:t.name}};await S("table:created",r,e)}s(e0,"created");async function t0(t,e){let r,n;for(let o in e.schema)if(!t.schema[o]){let a=e.schema[o];"default"in a&&a.default!=null&&(r=!0),a.type==="ai"&&(n=a.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await S("table:updated",i)}s(t0,"updated");async function r0(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await S("table:deleted",r)}s(r0,"deleted");async function n0(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await S("table:exported",r)}s(n0,"exported");async function i0(t){let e={tableId:t._id,audited:{name:t.name}};await S("table:imported",e)}s(i0,"imported");var T_={created:e0,updated:t0,deleted:r0,exported:n0,imported:i0};async function s0(t,e){let r={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:created",r,e)}s(s0,"created");async function o0(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:updated",e)}s(o0,"updated");async function a0(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:deleted",e)}s(a0,"deleted");async function u0(t,e){let r={userId:t._id,audited:{email:t.email}};await S("user:admin:assigned",r,e)}s(u0,"permissionAdminAssigned");async function c0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:admin:removed",e)}s(c0,"permissionAdminRemoved");async function l0(t,e){let r={userId:t._id,audited:{email:t.email}};await S("user:builder:assigned",r,e)}s(l0,"permissionBuilderAssigned");async function d0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:builder:removed",e)}s(d0,"permissionBuilderRemoved");async function f0(t){let e={audited:{email:t}};await S("user:invited",e)}s(f0,"invited");async function p0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:invite:accepted",e)}s(p0,"inviteAccepted");async function m0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:force:reset",e)}s(m0,"passwordForceReset");async function h0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:updated",e)}s(h0,"passwordUpdated");async function g0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:reset:requested",e)}s(g0,"passwordResetRequested");async function E0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:reset",e)}s(E0,"passwordReset");async function y0(t){let e={users:t};await S("user:data:collaboration",e)}s(y0,"dataCollaboration");var Ce={created:s0,updated:o0,deleted:a0,permissionAdminAssigned:u0,permissionAdminRemoved:c0,permissionBuilderAssigned:l0,permissionBuilderRemoved:d0,invited:f0,inviteAccepted:p0,passwordForceReset:m0,passwordUpdated:h0,passwordResetRequested:g0,passwordReset:E0,dataCollaboration:y0};async function T0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await S("view:created",r,e)}s(T0,"created");async function S0(t){let e={tableId:t.tableId};await S("view:updated",e)}s(S0,"updated");async function A0(t,e){let r={...ke.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await S("view:deleted",r)}s(A0,"deleted");async function _0(t,e){let r={tableId:t._id,format:e};await S("view:exported",r)}s(_0,"exported");async function O0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await S("view:filter:created",n,r)}s(O0,"filterCreated");async function I0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await S("view:filter:updated",r)}s(I0,"filterUpdated");async function w0(t){let e={tableId:t.tableId};await S("view:filter:deleted",e)}s(w0,"filterDeleted");async function R0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await S("view:calculation:created",n,r)}s(R0,"calculationCreated");async function C0(t){let e={tableId:t.tableId,calculation:t.calculation};await S("view:calculation:updated",e)}s(C0,"calculationUpdated");async function D0(t){let e={tableId:t.tableId,calculation:t.calculation};await S("view:calculation:deleted",e)}s(D0,"calculationDeleted");async function b0(t,e){let r={tableId:t};await S("view:join:created",r,e)}s(b0,"viewJoinCreated");var S_={created:T0,updated:S0,deleted:A0,exported:_0,filterCreated:O0,filterUpdated:I0,filterDeleted:w0,calculationCreated:R0,calculationUpdated:C0,calculationDeleted:D0,viewJoinCreated:b0};async function x0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:created",r).catch(n=>{console.error("appCreated telemetry failed",{workspaceAppId:t._id,err:n})})}s(x0,"appCreated");async function v0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:updated",r).catch(n=>{console.error("appUpdated telemetry failed",{workspaceAppId:t._id,err:n})})}s(v0,"appUpdated");async function N0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};S("workspace_app:deleted",r).catch(n=>{console.error("appDeleted telemetry failed",{workspaceAppId:t._id,err:n})})}s(N0,"appDeleted");var A_={appCreated:x0,appUpdated:v0,appDeleted:N0};function P0(){}s(P0,"initAsyncEvents");var L0=s(async()=>{await rr.shutdown(),console.log("Events shutdown")},"shutdown");var cm={};P(cm,{creatorsInList:()=>Lr,getAccountHolderFromUsers:()=>cc,hasAdminPermissions:()=>Pr,hasAppBuilderPermissions:()=>R_,hasBuilderPermissions:()=>We,isAdmin:()=>Lt,isAdminOrBuilder:()=>w_,isAdminOrWorkspaceBuilder:()=>oc,isBuilder:()=>Ci,isCreatorAsync:()=>Do,isCreatorSync:()=>ac,isGlobalBuilder:()=>I_,validateUniqueUser:()=>uc});async function um(t){let e=[],r=await __(t);e.push(...r.map(a=>a.email));let n=await O_(t);e.push(...n.map(a=>a._id));let i=await Oi(t);e.push(...i.map(a=>a.email));let o=await Wp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(um,"searchExistingEmails");async function sc(t){return await js("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(sc,"getPlatformUsers");async function Co(t){return(await sc(t))[0]??null}s(Co,"getFirstPlatformUser");async function __(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await Ht("by_email2",r,void 0,n)}s(__,"getExistingTenantUsers");async function O_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await js("platform_users_lowercase_2",r)}s(O_,"getExistingPlatformUsers");async function Oi(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await js("account_by_email",r)}s(Oi,"getExistingAccounts");var Ci=Me.users.isBuilder,Lt=Me.users.isAdmin,I_=Me.users.isGlobalBuilder,w_=Me.users.isAdminOrBuilder,Pr=Me.users.hasAdminPermissions,We=Me.users.hasBuilderPermissions,R_=Me.users.hasAppBuilderPermissions,oc=Me.users.isAdminOrWorkspaceBuilder;async function Lr(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await z().getMultiple(r,{allowMissing:!0}),t.map(i=>ac(i,e))}s(Lr,"creatorsInList");async function Do(t){let e=[];return t.userGroups&&(e=await z().getMultiple(t.userGroups)),ac(t,e)}s(Do,"isCreatorAsync");function ac(t,e){let r=Me.users.isCreator(t);return!r&&t?U0(t,e):r}s(ac,"isCreatorSync");function U0(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes("CREATOR")):!1}s(U0,"isCreatorByGroupMembership");async function uc(t,e){if(E.MULTI_TENANCY){let r=await Co(t);if(r!=null&&r.tenantId!==e)throw new er(t)}if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let r=await Nr(t);if(r&&r.verified&&r.tenantId!==e)throw new er(t)}}s(uc,"validateUniqueUser");async function cc(t){if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let e=await Oi(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(cc,"getAccountHolderFromUsers");var lm=s(async t=>{await Ce.deleted(t),We(t)&&await Ce.permissionBuilderRemoved(t),Pr(t)&&await Ce.permissionAdminRemoved(t)},"handleDeleteEvents"),k0=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ro.assigned(t,i)},"assignAppRoleEvents"),M0=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ro.unassigned(t,i)},"unassignAppRoleEvents"),F0=s(async(t,e)=>{let r=t.roles,n=e?.roles;await k0(t,r,n),await M0(t,r,n)},"handleAppRoleEvents"),dm=s(async(t,e,r)=>{let n=r;!n&&!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL&&(n=await Ti(V())),await _t.identifyUser(t,n),e?(await Ce.updated(t),W0(t,e)&&await Ce.permissionBuilderRemoved(t),$0(t,e)&&await Ce.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Ce.passwordForceReset(t),t.password!==e.password&&await Ce.passwordUpdated(t)):await Ce.created(t),B0(t,e)&&await Ce.permissionBuilderAssigned(t),G0(t,e)&&await Ce.permissionAdminAssigned(t),await F0(t,e)},"handleSaveEvents"),B0=s((t,e)=>C_(t,e,We),"isAddingBuilder"),W0=s((t,e)=>D_(t,e,We),"isRemovingBuilder"),G0=s((t,e)=>C_(t,e,Pr),"isAddingAdmin"),$0=s((t,e)=>D_(t,e,Pr),"isRemovingAdmin"),C_=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),D_=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var K0=s(async t=>{let e=t._id;await St.removeUser(t),await lm(t),await nr.invalidateUser(e),await In(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),Ut=class t{static{s(this,"UserDB")}static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return E.ENABLE_SSO_MAINTENANCE_MODE&&Lt(e)?!1:await t.features.isSSOEnforced()||vn(e)?!0:(r||(r=await Ti(V())),!!(r&&r.email===e.email&&Ho(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,o){let{password:a,_id:u}=e;i&&!i.password&&(r.requirePassword=!1);let c;if(a&&a!==i?.password){if(await t.isPreventPasswordActions(e,o))throw new Be("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=jp(a);if(!f.valid)throw new Be(f.error,400)}c=r.hashPassword?await df(a):a}else i&&(c=i.password);let l=r.requirePassword&&!await t.features.isSSOEnforced();if(!c&&l)throw"Password must be specified.";u=u||ai();let d={createdAt:Date.now(),...i,...e,_id:u,password:c,tenantId:n};return d.roles||(d.roles={}),d.status==null&&(d.status="active"),d}static async allUsers(){return(await z().allDocs(fn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByWorkspace(e){if(typeof e!="string"||!e)throw new Error("Must provide a string based workspace ID");return{userCount:(await Hs("by_app",ui(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await fm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return ut(e)}static async getUser(e){let r=await Ur(e);return r&&delete r.password,r}static async bulkGet(e){return await lc(e)}static async bulkUpdate(e){let r=await bo(e);return await nr.invalidateUsers(e.map(n=>n._id)),r}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=V(),i=z(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await Ur(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!l&&o&&(l=await ut(o),l&&l._id!==a))throw new er(o);let d=!l,f=!!l&&!!o&&l.email!==o,g=!r.isAccountHolder&&!!o&&(d||f),m=[...u];if(d&&m.length===0){let p=await t.groups.getDefaultGroup?.();p?._id&&(m=[p._id])}let y=1,h=0;if((r.isAccountHolder||l)&&(y=0,h=1),l){let[p,T]=await Lr([l,e]);h=p!==T?1:0}else if(!r.isAccountHolder){let p=m.length>0?{...e,userGroups:m}:e;h=(await Lr([p]))[0]?1:0}return t.quotas.addUsers(y,h,async()=>{g&&await uc(o,n);let p=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(p=pm(p,l)),!l&&c?.length&&(p.roles={...c});let T=[];if(d){m.length>0&&(p.userGroups=m);for(let A of m)T.push(t.groups.addUsers(A,[p._id]))}try{let A=await i.put(p);return p._rev=A.rev,await dm(p,l),l&&p.email!==l.email&&await St.removeUser({email:l.email}),await St.addUser(n,p._id,p.email,p.ssoId),await nr.invalidateUser(A.id),await Promise.all(T),i.get(p._id)}catch(A){throw A.status===409?"User exists already":A}})}static async bulkCreate(e,r){let n=V(),i=[],o=[],a=[],u=e.map(y=>y.email),c=await um(u),l=[],d=!!r?.length,f=d?[...r]:[];if(!d){let y=await t.groups.getDefaultGroup?.();y?._id&&(f=[y._id])}for(let y of e){let h=o.find(T=>T.email.toLowerCase()===y.email.toLowerCase()),p=c.includes(y.email.toLowerCase());if(h||p){l.push({email:y.email,reason:"Unavailable"});continue}y.userGroups=[...f],o.push(y),await Do(y)&&a.push(y)}let g=await Ti(n),m=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let p of o)m&&delete p.password,i.push(t.buildUser(p,{hashPassword:!0,requirePassword:!m},n,void 0,g));let y=await Promise.all(i);await bo(y);for(let p of y)await St.addUser(n,p._id,p.email),await dm(p,void 0,g);let h=y.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(h)&&f.length){let p=[],T=h.map(A=>A._id);for(let A of f)p.push(t.groups.addUsers(A,T));await Promise.all(p)}return{successful:h,unsuccessful:l}})}static async bulkDelete(e){let r=z(),n={successful:[],unsuccessful:[]},i=await cc(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),u=a.map(m=>({...m,_deleted:!0})),c=await bo(u),d=(await Lr(a)).filter(m=>m).length,f=[];for(let m of a){let h=(await Co(m._id)).ssoId;h&&(await sc(h)).filter(T=>T.ssoId==null).forEach(T=>{f.push({...T,_deleted:!0})}),await K0(m)}await vr().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let g={};return a.reduce((m,y)=>(m[y._id]=y,m),g),c.forEach(m=>{let y=g[m.id].email;m.ok?n.successful.push({_id:m.id,email:y}):n.unsuccessful.push({_id:m.id,email:y,reason:"Database error"})}),n}static async destroy(e){let r=z(),n=await r.get(e),i=n._id;if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Nr(a))throw n.userId===Qt()._id?new Be('Please visit "Account" to delete this user',400):new Be("Account holder cannot be deleted",400)}await St.removeUser(n),await r.remove(i,n._rev);let o=await Do(n)?1:0;await t.quotas.removeUsers(1,o),await lm(n),await nr.invalidateUser(i),await In(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,o={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(o.ssoId=n.ssoId),await Ei(Oe.CHECKLIST),await t.save(o,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function xo(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(xo,"removeUserPassword");async function lc(t,e){let n=(await z().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=xo(n)),n}s(lc,"bulkGetGlobalUsersById");async function j0(){let t=z(),e=`us${"_"}`;return(await t.allDocs({startkey:e,endkey:`${e}${"\uFFF0"}`})).rows.map(n=>n.id)}s(j0,"getAllUserIds");async function H0(){let t=z(),e=`us${"_"}`;return(await t.allDocs({startkey:e,endkey:`${e}${"\uFFF0"}`,include_docs:!0})).rows.map(n=>n.doc)}s(H0,"getAllUsers");async function bo(t){return await z().bulkDocs(t)}s(bo,"bulkUpdateGlobalUsers");async function Ur(t,e){let n=await z().get(t);return e?.cleanup&&(n=xo(n)),n}s(Ur,"getById");async function ut(t,e){if(t==null)throw"Must supply an email address to view";let r=await Ht("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=xo(n)),n}s(ut,"getGlobalUserByEmail");async function Y0(t){try{let e=await ut(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(Y0,"doesUserExist");async function b_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ui(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await Ht("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=xo(o)),o}s(b_,"searchGlobalUsersByApp");async function fm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let a={[r]:{$exists:!0}};n.push(a)}return(await z().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(fm,"searchGlobalUsersByAppAccess");function x_(t,e){if(e)return Eu(He(t),e._id)}s(x_,"getGlobalUserByAppPage");async function v_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,o=await Ht("by_email2",{...e,startkey:i,endkey:`${n}${"\uFFF0"}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=xo(a)),a}s(v_,"searchGlobalUsersByEmail");var z0=8;async function N_({bookmark:t,query:e,appId:r,limit:n}={}){let i=z(),o=n??z0,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await Ur(e.equal._id)]:r?(c=await b_(r,u),d=s(f=>x_(r,f),"getKey")):e?.string?.email?(c=await v_(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await lc(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(fn(null,{...u,limit:void 0}))).rows.map(g=>g.doc),c=Er.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(fn(null,u))).rows.map(g=>g.doc),Yf(c,o,{paginate:!0,property:l,getKey:d})}s(N_,"paginatedUsers");async function J0(){return(await Hs("by_email2",{limit:0,include_docs:!1})).total_rows}s(J0,"getUserCount");async function X0(){let t=0;async function e(r){let n=await N_({bookmark:r}),i=await Lr(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(X0,"getCreatorCount");function Z0(t){return delete t.admin,delete t.builder,t}s(Z0,"removePortalUserPermissions");function pm(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}s(pm,"cleanseUserObject");async function ek(t,e){let r=He(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ut.save(t,{hashPassword:!1})}s(ek,"addAppBuilder");async function tk(t,e){let r=He(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ut.save(t,{hashPassword:!1})}s(tk,"removeAppBuilder");function mm(t){let e=t.apps||{},r=Object.keys(e).filter(u=>e[u]==="CREATOR"),n=[...t.builder?.apps||[],...r],i=[...new Set(n)],o=!!t.builder?.creator||r.length>0,a={roles:e,admin:{global:t.admin?.global||!1}};return(t.builder||o||i.length)&&(a.builder={global:t.builder?.global||!1},o&&(a.builder.creator=!0),i.length&&(a.builder.apps=i)),t.userGroups?.length&&(a.userGroups=t.userGroups),a}s(mm,"deriveUserFieldsFromInvite");var P_=3600;async function rk(t,e){let n=await ep(e).get(t);if(n.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let i=await Nr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(rk,"populateFromDB");async function nk(t){let e=await Ut.bulkGet(t),r=t.filter((i,o)=>!e[o]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let o=await Nr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(nk,"populateUsersFromDB");async function vo({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=rk),!e)try{e=V()}catch{e=await St.lookupTenantId(t)}let i=await oi(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,P_)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Me.users.isGlobalBuilder(o)&&await be(e,async()=>{let a=await Ut.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(vo,"getUser");async function ik(t){let e=await oi(),r=await e.bulkGet(t),n=t.filter(a=>!r[a]),i=Object.values(r).filter(a=>!!a),o;if(n.length){let a=await nk(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,P_);i.push(...a.users)}return{users:i,notFoundIds:o}}s(ik,"getUsers");async function No(t){await(await oi()).delete(t)}s(No,"invalidateUser");async function sk(t){if(t.length===0)return;await(await oi()).bulkDelete(t)}s(sk,"invalidateUsers");var ym={};P(ym,{Writethrough:()=>gm});var L_=1e4,hm=null;async function dc(){if(!hm){let t=await Gf();hm=new En(t)}return hm}s(dc,"getCache");function Po(t,e){return t.name+e}s(Po,"makeCacheKey");function Em(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(Em,"makeCacheItem");async function ok(t,e,r=L_){let n=await dc(),i=e._id,o;i&&(o=await n.get(Po(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await Sn({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let l=s(async d=>{let f=await t.put(d,{force:!0});u._id=f.id,u._rev=f.rev},"writeDb");try{await l(e)}catch(d){if(d.status!==409)throw d;hi("Ignoring conflict in write-through cache")}})).executed||hi("Ignoring redlock conflict in write-through cache")),o=Em(u,a?null:o?.lastWrite),u._id&&await n.store(Po(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(ok,"put");async function ak(t,e){let r=await dc(),n=Po(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=Em(o),await r.store(n,i)}return i.doc}s(ak,"get");async function uk(t,e){let r=await dc(),n=Po(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=Em(o),await r.store(n,i)}return i.doc}s(uk,"tryGet");async function ck(t,e,r){let n=await dc();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Po(t,i))}finally{await t.remove(i,r)}}s(ck,"remove");var gm=class{static{s(this,"Writethrough")}constructor(e,r=L_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return ok(this.db,e,r)}async get(e){return ak(this.db,e)}async tryGet(e){return uk(this.db,e)}async remove(e,r){return ck(this.db,e,r)}};function Lo(t){return`config${"_"}${t}`}s(Lo,"generateConfigID");var fc="en";function lk(){return{_id:Lo("translations"),type:"translations",config:{defaultLocale:fc,locales:{[fc]:{label:"English",overrides:{}}}}}}s(lk,"createDefaultTranslationsConfig");function dk(t){let e=t?.defaultLocale||fc,r={...t?.locales??{}};r[e]||(r[e]={label:e===fc?"English":e,overrides:{}});for(let n of Object.keys(r))r[n].overrides||(r[n]={...r[n],overrides:{}});return{defaultLocale:e,locales:r}}s(dk,"prepareTranslationsConfig");async function Ge(t){let e=z();try{return await e.get(Lo(t))}catch(r){if(r.status===404)return;throw r}}s(Ge,"getConfig");async function fk(t){return t._id||(t._id=Lo(t.type)),z().put(t)}s(fk,"save");async function U_(){let t=await Ge("translations");return t?(t.config=dk(t.config),t):lk()}s(U_,"getTranslationsConfigDoc");async function pk(){return(await U_()).config}s(pk,"getTranslationsConfig");async function wi(){let t=await Ge("settings");return t||(t={_id:Lo("settings"),type:"settings",config:{}}),t.config.platformUrl=await Uo({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Zu({config:t.config}),t}s(wi,"getSettingsConfigDoc");async function Sm(){return(await wi()).config}s(Sm,"getSettingsConfig");async function Uo(t={tenantAware:!0}){let e=E.PLATFORM_URL||"http://localhost:10000";if(!E.SELF_HOSTED&&E.MULTI_TENANCY&&t.tenantAware){let r=V();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(E.SELF_HOSTED){let r=t?.config?t.config:(await Ge("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(Uo,"getPlatformUrl");var Zu=s(async t=>{if(!E.SELF_HOSTED)return!!E.ENABLE_ANALYTICS;let e=await br(Oe.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Ge("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=E.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function mk(){return await Ge("google")}s(mk,"getGoogleConfigDoc");async function mc(){return(await mk())?.config}s(mc,"getGoogleConfig");async function Am(){if(!E.SELF_HOSTED)return Tm();let t=await mc();return(!t||!t.activated)&&(t=Tm()),t}s(Am,"getGoogleDatasourceConfig");function Tm(){if(E.GOOGLE_CLIENT_ID&&E.GOOGLE_CLIENT_SECRET)return{clientID:E.GOOGLE_CLIENT_ID,clientSecret:E.GOOGLE_CLIENT_SECRET,activated:!0}}s(Tm,"getDefaultGoogleConfig");async function hk(){return Ge("logos_oidc")}s(hk,"getOIDCLogosDoc");async function gk(){return Ge("oidc")}s(gk,"getOIDCConfigDoc");async function Ek(){let t=(await gk())?.config;return t?.configs&&t.configs[0]}s(Ek,"getOIDCConfig");async function _m(t){let e=(await Ge("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(_m,"getOIDCConfigById");async function k_(){return Ge("smtp")}s(k_,"getSMTPConfigDoc");async function yk(t){let e=await k_();if(e)return e.config;let r=E.SELF_HOSTED||!t;if(E.SMTP_FALLBACK_ENABLED&&r)return{port:E.SMTP_PORT,host:E.SMTP_HOST,secure:!1,from:E.SMTP_FROM_ADDRESS,auth:{user:E.SMTP_USER,pass:E.SMTP_PASSWORD},fallback:!0}}s(yk,"getSMTPConfig");async function Tk(){return(await Ge("scim"))?.config}s(Tk,"getSCIMConfig");async function Sk(){return Ge("recaptcha")}s(Sk,"getRecaptchaConfig");var Nm={};P(Nm,{AccessController:()=>wm,BUILTIN_ROLE_IDS:()=>Rm,Role:()=>kr,RoleHierarchyTraversal:()=>hc,RoleIDVersion:()=>Cm,builtinRoleToNumber:()=>ko,checkForRoleResourceArray:()=>W_,externalRole:()=>Rk,findRole:()=>Mo,getAllRoleIds:()=>xk,getAllRoles:()=>vm,getBuiltinRole:()=>F_,getBuiltinRoles:()=>bm,getDBRoleID:()=>G_,getExternalRoleID:()=>Mr,getExternalRoleIDs:()=>$_,getRole:()=>Ck,getUserRoleHierarchy:()=>xm,getUserRoleIdHierarchy:()=>B_,isBuiltin:()=>Fr,lowerBuiltinRoleID:()=>wk,prefixRoleIDNoBuiltin:()=>Im,roleIDsAreEqual:()=>ze,roleToNumber:()=>Ik,saveRoles:()=>Dk,validInherits:()=>Ok});var M_=require("lodash"),gc=W(require("lodash/fp/cloneDeep")),Om=W(require("semver"));var Rm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ne={...Rm,BUILDER:"BUILDER"},Cm={UUID:void 0,NAME:"name"};function _k(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(_k,"rolesInList");var kr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Cm.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=Im(e):e&&Array.isArray(e)&&(e=e.map(Im)),this.inherits=e,this}},hc=class{static{s(this,"RoleHierarchyTraversal")}constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let o of e.inherits){let a=Mo(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!_k(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=Mo(a.inherits,n,r),a&&i.push(a),ke.roles.checkForRoleInheritanceLoops(i))break}}return(0,M_.uniqBy)(i,o=>o._id)}},Dm={ADMIN:new kr(ne.ADMIN,ne.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ne.POWER),POWER:new kr(ne.POWER,ne.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ne.BASIC),BASIC:new kr(ne.BASIC,ne.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ne.PUBLIC),PUBLIC:new kr(ne.PUBLIC,ne.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new kr(ne.BUILDER,ne.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function bm(){return(0,gc.default)(Dm)}s(bm,"getBuiltinRoles");function Fr(t){return Object.values(Rm).includes(t)}s(Fr,"isBuiltin");function Im(t){return Fr(t)?t:jt(t)}s(Im,"prefixRoleIDNoBuiltin");function F_(t){let e=Object.values(Dm).find(r=>t.includes(r._id));if(e)return(0,gc.default)(e)}s(F_,"getBuiltinRole");function Ok(t,e){if(!e)return!1;let r=s(n=>t.find(i=>ze(i._id,n)),"find");if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}s(Ok,"validInherits");function ko(t){let e=bm(),r=Object.values(e).length+1;if(ze(t,ne.ADMIN)||ze(t,ne.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}s(ko,"builtinRoleToNumber");async function Ik(t){if(Fr(t))return ko(t);let e=await xm(t,{defaultPublic:!0}),r=s(n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(o=>{let a=e.find(u=>ze(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(Fr(n.inherits))return ko(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(Ik,"roleToNumber");function wk(t,e){return t?e&&ko(t)>ko(e)?e:t:e}s(wk,"lowerBuiltinRoleID");function ze(t,e){return jt(t)===jt(e)}s(ze,"roleIDsAreEqual");function Rk(t){let e;return t._id&&(e=Mr(t._id)),{...t,_id:e,inherits:$_(t.inherits,t.version)}}s(Rk,"externalRole");function Mo(t,e,r){let n=F_(t);n||(t=jt(t));let i=e.find(o=>o._id&&ze(o._id,t));return!i&&!Fr(t)&&r?.defaultPublic?(0,gc.default)(Dm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Mr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(Mo,"findRole");async function Ck(t,e){let r=ii(),n=[];if(!Fr(t)){let i=await r.tryGet(G_(t));i&&n.push(i)}return Mo(t,n,e)}s(Ck,"getRole");async function Dk(t){await ii().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:jt(r._id)})))}s(Dk,"saveRoles");async function bk(t,e){let r=await vm();if(ze(t,ne.ADMIN))return r;let n=Mo(t,r,e),i=[];return n&&(i=new hc(r,e).walk(n)),i}s(bk,"getAllUserRoles");async function B_(t){return(await xm(t)).map(r=>r._id)}s(B_,"getUserRoleIdHierarchy");async function xm(t,e){return bk(t,e)}s(xm,"getUserRoleHierarchy");function W_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(W_,"checkForRoleResourceArray");async function xk(t){return(await vm(t)).map(r=>r._id)}s(xk,"getAllRoleIds");async function vm(t){if(t)return je(t,e);{let r;try{r=ii()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(yu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=Mr(u._id,u.version)));let i=bm(),o=[];!r||await vk(r)?o=[ne.ADMIN,ne.POWER,ne.BASIC,ne.PUBLIC]:o=[ne.ADMIN,ne.BASIC,ne.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>ze(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=Mr(u._id,c.version),n.push({...u,...c,name:u.name,_id:Mr(u._id,u.version),uiMetadata:{...c.uiMetadata,...u.uiMetadata}}))}for(let a of n)if(a.permissions)for(let u of Object.keys(a.permissions))a.permissions=W_(a.permissions,u);return n}s(e,"internal")}s(vm,"getAllRoles");async function vk(t){if(await Nk(t))return!0;let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Om.default.valid(r)?!0:!Om.default.gte(r,E.MIN_VERSION_WITHOUT_POWER_ROLE)}s(vk,"shouldIncludePowerRole");async function Nk(t){let r=(await t.tryGet("ta_users"))?.schema?.roleId?.constraints?.inclusion;return!Array.isArray(r)||!r.some(i=>ze(i,ne.POWER))?!1:r.some(i=>!Fr(i))}s(Nk,"hasLegacyPowerRole");var wm=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||ze(e,ne.BUILDER)||ze(r,e)||ze(r,ne.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await B_(r),this.userHierarchies[r]=n),n?.find(i=>ze(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let o=await this.checkScreenAccess(i,r);o&&n.push(o)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function G_(t){return t?.startsWith("role")?t:jt(t)}s(G_,"getDBRoleID");function Mr(t,e){if(t.startsWith(`role${"_"}`)&&(Fr(t)||e===Cm.NAME)){let r=t.split("_");return r.shift(),r.join("_")}return t}s(Mr,"getExternalRoleID");function $_(t,e){return t&&(typeof t=="string"?Mr(t,e):t.map(r=>Mr(r,e)))}s($_,"getExternalRoleIDs");var Pm={};P(Pm,{BUILDER:()=>Mk,BUILTIN_PERMISSIONS:()=>Ec,CREATOR:()=>Fk,GLOBAL_BUILDER:()=>Bk,PermissionImpl:()=>oe,PermissionLevel:()=>ki,PermissionType:()=>Qo,doesHaveBasePermission:()=>Uk,getAllowedLevels:()=>Q_,getBuiltinPermissionByID:()=>Lk,getBuiltinPermissions:()=>Pk,isPermissionLevelHigherThanRead:()=>kk,levelToNumber:()=>K_});var V_=W(require("lodash/flatten")),q_=W(require("lodash/fp/cloneDeep"));var oe=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function K_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(K_,"levelToNumber");function Q_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(Q_,"getAllowedLevels");var Ec={PUBLIC:{_id:"public",name:"Public",permissions:[new oe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new oe("query","read"),new oe("table","read"),new oe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new oe("query","write"),new oe("table","write"),new oe("automation","execute"),new oe("legacy_view","read"),new oe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new oe("table","write"),new oe("user","read"),new oe("automation","execute"),new oe("webhook","read"),new oe("legacy_view","read"),new oe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new oe("table","admin"),new oe("user","admin"),new oe("automation","admin"),new oe("webhook","read"),new oe("query","admin"),new oe("legacy_view","read"),new oe("app","read")]}};function Pk(){return(0,q_.default)(Ec)}s(Pk,"getBuiltinPermissions");function Lk(t){return Object.values(Ec).find(r=>r._id===t)}s(Lk,"getBuiltinPermissionByID");function Uk(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(Ec),o=(0,V_.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&Q_(a.level).indexOf(e)!==-1)return!0;return!1}s(Uk,"doesHaveBasePermission");function kk(t){return K_(t)>1}s(kk,"isPermissionLevelHigherThanRead");var Mk="builder",Fk="creator",Bk="globalBuilder";var km={};P(km,{FlagSet:()=>Tc,all:()=>Kk,flags:()=>Lm,getEnvFlags:()=>z_,init:()=>Gk,isEnabled:()=>qk,parseEnvFlags:()=>Ac,shutdown:()=>$k,testutils:()=>Um});var Sc=W(require("crypto")),j_=W(require("dd-trace")),H_=require("lodash"),Y_=require("posthog-node");var yc,Wk=s(()=>{let t=E.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS;if(t){let e=parseInt(t,10);if(!Number.isNaN(e)&&e>0)return e}return me.fromDays(1).toMs()},"getFeatureFlagsPollingInterval");function Gk(t){E.POSTHOG_TOKEN&&E.POSTHOG_API_HOST&&!E.SELF_HOSTED&&E.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),yc=new Y_.PostHog(E.POSTHOG_TOKEN,{host:E.POSTHOG_API_HOST,personalApiKey:E.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Wk(),...t})):console.log("posthog disabled")}s(Gk,"init");function $k(){yc?.shutdown()}s($k,"shutdown");function Ac(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let o of i){let a=!0;o.startsWith("!")&&(o=o.slice(1),a=!1),r.push({tenantId:n,key:o,value:a})}return r}s(Ac,"parseEnvFlags");function z_(){return Ac(E.TENANT_FEATURE_FLAGS||"")}s(z_,"getEnvFlags");var Tc=class{constructor(e){this.flagSchema=e;this.setId=Sc.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,H_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await j_.default.trace("features.fetch",async e=>{let r=Uf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=V(),a=new Set;if(nu())return i;for(let{tenantId:f,key:g,value:m}of z_())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,m===!1&&a.add(g),!!this.isFlagName(g))){if(typeof i[g]!="boolean")throw new Error(`Feature: ${g} is not a boolean`);i[g]=m,n[`flags.${g}.source`]="environment"}let u=Qt(),c=u?._id;if(!c){let f=Pf();f&&(c=Sc.createHash("sha512").update(f).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,yc&&c){n.readFromPostHog=!0;let f=await wi(),g={tenantId:l},m={tenant:{id:l}};f.config.createdVersion&&(m.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(m.tenant.createdAt=`${f.createdAt}`);let y=await yc.getAllFlags(c,{personProperties:g,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:m});for(let[h,p]of Object.entries(y))if(this.isFlagName(h)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${h}": ${p}`);continue}if(!(i[h]===!0||a.has(h)))try{i[h]=p,n[`flags.${h}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${h}": ${p}`,T)}}}let d=Mf();for(let[f,g]of Object.entries(d))this.isFlagName(f)&&typeof g=="boolean"&&(i[f]=g,n[`flags.${f}.source`]="override");kf(this.setId,i);for(let[f,g]of Object.entries(i))n[`flags.${f}.value`]=g;return e?.addTags(n),i})}},Vk={USE_ZOD_VALIDATOR:!1,AI_TESTS:!1,ESCALATION:!1,FRONT_COMPANION:!1,PROJECTS:!1,DEBUG_UI:E.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1,AI_AGENT_ACTIVITY:!1},Lm=new Tc(Vk);async function qk(t){return await Lm.isEnabled(t)}s(qk,"isEnabled");async function Kk(){return await Lm.fetch()}s(Kk,"all");var Um={};P(Um,{setFeatureFlags:()=>J_,withFeatureFlags:()=>Hk});function Qk(){let t={};for(let{tenantId:e,key:r,value:n}of Ac(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(Qk,"getCurrentFlags");function jk(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,o]of Object.entries(n))o===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}s(jk,"buildFlagString");function J_(t,e){let r=Qk();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=jk(r);return Ps({TENANT_FEATURE_FLAGS:n})}s(J_,"setFeatureFlags");function Hk(t,e,r){let n=J_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(Hk,"withFeatureFlags");var zm={};P(zm,{adminOnly:()=>_c,auditLog:()=>Oc,authError:()=>Ie,buildAuthMiddleware:()=>FM,buildCsrfMiddleware:()=>WM,buildTenancyMiddleware:()=>BM,builderOnly:()=>Nc,builderOrAdmin:()=>Pc,google:()=>or,internalApi:()=>Uc,joiValidator:()=>Fo,oidc:()=>ar,passport:()=>GM,platformLogout:()=>QM,refreshOAuthToken:()=>qM,ssoCallbackUrl:()=>Wr,updateUserOAuth:()=>KM,workspaceBuilderOrAdmin:()=>Fc});var Ym={};P(Ym,{activeTenant:()=>_O,adminOnly:()=>_c,auditLog:()=>Oc,authError:()=>Ie,authenticated:()=>vc,builderOnly:()=>Nc,builderOrAdmin:()=>Pc,correlation:()=>Z_,csp:()=>cO,csrf:()=>Lc,datasource:()=>kM,errorHandling:()=>dO,featureFlagCookie:()=>fO,google:()=>or,internalApi:()=>Uc,ip:()=>pO,joiValidator:()=>Fo,local:()=>xi,oidc:()=>ar,pino:()=>eO,querystringToBody:()=>AO,ssoCallbackUrl:()=>Wr,tenancy:()=>Mc,workspaceBuilderOrAdmin:()=>Fc});var X_=require("uuid");var Yk=require("correlation-id"),Z_=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,X_.v4)()),Yk.withId(r,()=>e())},"correlationMiddleware");var zk=require("koa-pino-logger"),Jk=require("correlation-id");function Xk(){return{logger:Mu,genReqId:Jk.getId,autoLogging:{ignore:s(t=>!!t.url?.includes("/health"),"ignore")},serializers:{req:s(t=>({method:t.method,url:t.url,correlationId:t.id}),"req"),res:s(t=>({status:t.statusCode}),"res")}}}s(Xk,"pinoSettings");function Zk(){return E.HTTP_LOGGING?zk(Xk()):(t,e)=>e()}s(Zk,"getMiddleware");var eO=Zk();var _c=s(async(t,e)=>(!t.internal&&!Lt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var Oc=s((async(t,e)=>e()),"auditLog");var sO=require("jsonwebtoken");var eM=/\/:(.*?)(\/.*)?$/g,ir=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(eM);if(i)for(let o of i){let u="/.*"+(o.endsWith("/")?"/":"");r=r.replace(o,u)}return{regex:new RegExp(`^${r}`),method:n,route:r}}):[],"buildMatcherRegex"),sr=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.path),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var Gm={};P(Gm,{SecretOption:()=>nO,compare:()=>iM,decrypt:()=>Cc,decryptFile:()=>aM,encrypt:()=>nM,encryptFile:()=>sM,getSecret:()=>Wm});var kt=W(require("crypto")),Br=W(require("fs")),Mm=require("path"),Fm=W(require("zlib"));var Ic="aes-256-ctr",rO="-",tM=1e4,rM=32,wc=16,Bm=16,nO=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(nO||{});function Wm(t){let e,r;if(t==="encryption"?(e=E.ENCRYPTION_KEY,r="ENCRYPTION_KEY"):(e=E.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY"),!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(Wm,"getSecret");function Rc(t,e){return kt.default.pbkdf2Sync(t,new Uint8Array(e),tM,rM,"sha512")}s(Rc,"stretchString");function nM(t,e="api"){let r=kt.default.randomBytes(wc),n=Rc(Wm(e),r),i=kt.default.createCipheriv(Ic,new Uint8Array(n),new Uint8Array(r)),o=i.update(t,"utf8"),a=i.final(),u=Buffer.concat([new Uint8Array(o),new Uint8Array(a)]).toString("hex");return`${r.toString("hex")}${rO}${u}`}s(nM,"encrypt");function Cc(t,e="api"){let[r,n]=t.split(rO),i=Buffer.from(r,"hex"),o=Rc(Wm(e),i),a=kt.default.createDecipheriv(Ic,new Uint8Array(o),new Uint8Array(i)),u=a.update(n,"hex"),c=a.final();return Buffer.concat([new Uint8Array(u),new Uint8Array(c)]).toString()}s(Cc,"decrypt");function iM(t,e,r="api"){try{let n=new TextEncoder,i=n.encode(Cc(e,r)),o=n.encode(t);return i.length!==o.length?!1:kt.default.timingSafeEqual(i,o)}catch{return!1}}s(iM,"compare");async function sM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Mm.join)(t,e);if(Br.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=Br.default.createReadStream(i),a=Br.default.createWriteStream((0,Mm.join)(t,n)),u=kt.default.randomBytes(wc),c=kt.default.randomBytes(Bm),l=Rc(r,u),d=kt.default.createCipheriv(Ic,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(Fm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(sM,"encryptFile");async function oM(t){let e=Br.default.createReadStream(t),r=await tO(e,wc),n=await tO(e,Bm);return e.close(),{salt:r,iv:n}}s(oM,"getSaltAndIV");async function aM(t,e,r){if(Br.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await oM(t),o=Br.default.createReadStream(t,{start:wc+Bm}),a=Br.default.createWriteStream(e),u=Rc(r,n),c=kt.default.createDecipheriv(Ic,new Uint8Array(u),new Uint8Array(i)),l=Fm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",g=>{a.close(),f(g)}),c.on("error",g=>{a.close(),f(g)}),l.on("error",g=>{a.close(),f(g)}),a.on("error",g=>{a.close(),f(g)})})}s(aM,"decryptFile");function tO(t,e){return new Promise((r,n)=>{let i=0,o=[];t.on("readable",()=>{let a;for(;(a=t.read(e-i))!==null;)o.push(a),i+=a.length;r(Buffer.concat(o.map(u=>new Uint8Array(u))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",a=>{n(a)})})}s(tO,"readBytes");var $m={};P($m,{APIWarning:()=>Cn,FeatureDisabledWarning:()=>bc,InvalidAPIKeyWarning:()=>bi,UsageLimitWarning:()=>Dc});var Cn=class extends Error{static{s(this,"APIWarning")}constructor(e,r){super(e),this.code=r}},bi=class extends Cn{static{s(this,"InvalidAPIKeyWarning")}constructor(){super("Invalid API key","invalid_api_key")}},Dc=class extends Cn{static{s(this,"UsageLimitWarning")}constructor(e){super(`Usage limit exceeded: '${e}'`,"usage_limit_exceeded"),this.limitName=e}getPublicWarning(){return{limitName:this.limitName}}},bc=class extends Cn{static{s(this,"FeatureDisabledWarning")}constructor(e){super(`Feature disabled: '${e}'`,"feature_disabled"),this.featureName=e,this.status=400}getPublicWarning(){return{featureName:this.featureName}}getPublicError(){return{featureName:this.featureName}}};var oO=W(require("dd-trace"));var cM=E.SESSION_UPDATE_PERIOD?parseInt(E.SESSION_UPDATE_PERIOD):60*1e3;function lM(){return new Date(Date.now()-cM).toISOString()}s(lM,"timeMinusOneMinute");function iO(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}s(iO,"finalise");async function dM(t,e){if(Xs(t))return{valid:!0,user:void 0};let n=Cc(t).split("_")[0];return be(n,async()=>{let i;try{let o=z();i=await Ht("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await vo({userId:i,tenantId:n,populateUser:e})};throw new bi})}s(dM,"checkApiKey");function xc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(xc,"getHeader");function vc(t=[],e={publicAllowed:!1}){let r=t?ir(t):[];return(async(n,i)=>{let o=!1,a=xc(n,"x-budibase-api-version");sr(n,r)&&(o=!0);try{let c=xc(n,"x-budibase-token"),l=zt(n,"budibase:auth"),d=l||_u(c);d&&!d.exp&&(l&&Jt(n,"budibase:auth"),n.throw(401,"Session token missing expiration, please log in again"));let f=xc(n,"x-budibase-api-key");!f&&n.request.headers.authorization&&(f=n.request.headers.authorization.split(" ")[1]);let g=xc(n,"x-budibase-tenant-id"),m=!1,y,h=!1,p;if(d&&!f){let A=d.sessionId,_=d.userId,I;try{I=await zp(_,A),e&&e.populateUser?y=await vo({userId:_,tenantId:I.tenantId,email:I.email,populateUser:e.populateUser(n)}):y=await vo({userId:_,tenantId:I.tenantId,email:I.email}),y.csrfToken=I.csrfToken,p="cookie",I?.lastAccessedAt<lM()&&await Yp(I),m=!0}catch(O){m=!1,console.warn(`Auth Error: ${O.message}`),Jt(n,"budibase:auth")}}if(!m&&f){let A=e.populateUser?e.populateUser(n):null,{valid:_,user:I}=await dM(f,A);_&&(m=!0,p="api_key",y=I,h=!I)}!y&&g?y={tenantId:g}:y&&"password"in y&&delete y.password,m||(m=!1);let T=s(A=>A&&A.email,"isUser");return T(y)&&oO.default.setUser({id:y._id,tenantId:y.tenantId,budibaseAccess:y.budibaseAccess,status:y.status}),iO(n,{authenticated:m,user:y,internal:h,version:a,publicEndpoint:o,loginMethod:p}),T(y)?gf(y,n,i):i()}catch(c){if(console.warn(`Auth Error: ${c.message}`),c instanceof sO.JsonWebTokenError?Jt(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return iO(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c.message||"Authentication failed")}})}s(vc,"authenticated");async function Nc(t,e){if(t.internal)return e();let r=await pn(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)?t.throw(403,"Builder user only endpoint."):r&&!Ci(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(Nc,"builderOnly");async function Pc(t,e){if(t.internal||Lt(t.user))return e();let r=await pn(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!Ci(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(Pc,"builderOrAdmin");var uO=W(require("crypto"));var aO={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","https://www.google.com/recaptcha/api.js","https://companion.frontapp.com"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com","https://d2l5prqdbvm3op.cloudfront.net","https://companion.frontapp.com","https://*.frontapp.com"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},Vm=/^[A-Za-z0-9-*:/.]+$/,cO=s((async(t,e)=>{let r=uO.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...aO};n["script-src"]=[...aO["script-src"],`'nonce-${r}'`];let i={"media-src":E.CUSTOM_CSP_MEDIA_SRC,"script-src":E.CUSTOM_CSP_SCRIPT_SRC,"connect-src":E.CUSTOM_CSP_CONNECT_SRC,"img-src":E.CUSTOM_CSP_IMG_SRC,"font-src":E.CUSTOM_CSP_FONT_SRC,"frame-src":E.CUSTOM_CSP_FRAME_SRC};for(let[c,l]of Object.entries(i))if(l){let d=l.split(",").map(f=>f.trim()).filter(f=>Vm.test(f));n[c]=[...n[c]||[],...d]}let o=t.request?.get("x-budibase-embed")?.toLowerCase()==="true",a=t.user?.license?.features.includes("customAppScripts");if(o&&(n["frame-ancestors"]=["*"]),t.appId&&(o||a))try{let c=await Vs.getWorkspaceMetadata(t.appId);if("name"in c){if(a)for(let l of c.scripts||[]){let d=(l.cspWhitelist||"").split(`
|
|
38
|
-
`).filter(g=>Vm.test(g)),f=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let g of f)n[g]=[...n[g]||[],...d]}if(o){let l=(c.embedAllowedOrigins||[]).map(d=>d.trim()).filter(d=>Vm.test(d));n["frame-ancestors"]=l.length?l:["*"]}}}catch(c){console.error(`Error occurred in Content-Security-Policy middleware: ${c}`)}let u=Object.entries(n).map(([c,l])=>`${c} ${l.join(" ")}`).join("; ");t.set("Content-Security-Policy",u),await e()}),"contentSecurityPolicy");var fM=["GET","HEAD","OPTIONS"],pM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Lc(t={noCsrfPatterns:[]}){let e=ir(t.noCsrfPatterns);return(async(r,n)=>{if(sr(r,e)||fM.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!pM.filter(c=>o.includes(c)).length||r.internal)return n();let a=r.user?.csrfToken;if(!a)return n();let u=r.get("x-csrf-token");return(!u||u!==a)&&r.throw(403,"Invalid CSRF token"),n()})}s(Lc,"csrf");function lO(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of hT){let r=E[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(lO,"stringContainsSecret");async function dO(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 5xx response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:zu(r)};if(lO(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),E.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(dO,"errorHandling");var fO=s((async(t,e)=>{let n=zt(t,"budibase:featureflags")?.flags||{};await Ff(n,async()=>{await e()})}),"featureFlagCookie");async function Uc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Xs(r)||t.throw(403,"Unauthorized"),e()}s(Uc,"internalApi");async function pO(t,e){return t.ip?await Lf(t.ip,()=>e()):e()}s(pO,"ip");var Fo={};P(Fo,{body:()=>mM,params:()=>hM});var qm=W(require("joi"));function mO(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,o)=>{if(!t)return o();let a=null,u=i.request?.[e];i[e]!=null?a=i[e]:u!=null&&(a=u),t.append&&(t=t.append({createdAt:qm.default.any().optional(),updatedAt:qm.default.any().optional()}));let{error:c}=t.validate(a,{allowUnknown:r?.allowUnknown});if(c){let l=c.message;n&&(l=`Invalid ${e} - ${l}`),i.throw(400,l)}return o()}}s(mO,"validate");function mM(t,e){return mO(t,"body",e)}s(mM,"body");function hM(t,e){return mO(t,"params",e)}s(hM,"params");var xi={};P(xi,{authenticate:()=>yM,options:()=>EM});function Ie(t,e,r){return t(r,null,{message:e})}s(Ie,"authError");async function Wr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Sm(),n="/api/global/auth";return Sr()&&(n+=`/${V()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(Wr,"ssoCallbackUrl");var Km="Invalid credentials",gM="This account has expired. Please reset your password",EM={passReqToCallback:!0};async function yM(t,e,r,n){if(!e)return Ie(n,"Email Required");if(!r)return Ie(n,"Password Required");let i=await ut(e);return i==null?(console.info(`user=${e} could not be found`),Ie(n,Km)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ie(n,Km)):i.password?await ff(r,i.password)?(delete i.password,n(null,i)):Ie(n,Km):(console.info(`user=${e} has no password set`,i),Ie(n,gM))}s(yM,"authenticate");var or={};P(or,{buildVerifyFn:()=>EO,getCallbackUrl:()=>IM,strategyFactory:()=>jm});var Bo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function kc(t,e=!0,r,n,i=!1){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ie(r,"sso user id required");if(!t.email)return Ie(r,"sso user email required");let o=ai(t.userId),a;try{a=await Ur(o)}catch(d){if(!d.status||d.status!==404)return Ie(r,"Unexpected error when retrieving existing user",d)}!a&&(t.emailVerified||i)&&(a=await ut(t.email));let u;a||(u=(await An.getExistingInvites([t.email]))[0]);let c=!t.emailVerified&&!i;if(!a&&!u&&c&&(a=await SM(t)),!a&&!u&&e)return Ie(r,"Email does not yet exist. You must set up your local budibase account first.");let l;try{u?l=await AM(u,o,t,n):(a||(a={_id:o,email:t.email,tenantId:V(),roles:{}}),l=await Qm(a,t,n))}catch(d){return Ie(r,"Error saving user",d)}return r(null,l)}s(kc,"authenticate");async function Qm(t,e,r){let n=await _M(t,e);return n.forceResetPassword=!1,delete n.password,await r(n,{hashPassword:!1,requirePassword:!1})}s(Qm,"syncAndSaveUser");function TM(t,e){return t.password||t.status==="inactive"||t.admin?.global||t.ssoId?!1:vn(t)?t.provider===e.provider&&t.providerType===e.providerType:!0}s(TM,"isAccountLinkable");async function SM(t){let e=await ut(t.email);if(e&&TM(e,t))return e}s(SM,"findLinkableAccountByEmail");async function AM(t,e,r,n){let{result:i}=await Sn({type:"auto_extend",name:"process_user_invite",resource:t.code,systemLock:!0},async()=>{try{await An.getCode(t.code,t.info.tenantId)}catch(u){let c;try{c=await Ur(e)}catch(l){if(!l.status||l.status!==404)throw l}if(!c)throw u;return await Qm(c,r,n)}let o={_id:e,email:r.email,tenantId:t.info.tenantId||V(),...mm(t.info)},a=await Qm(o,r,n);return await An.deleteCode(t.code,t.info.tenantId),await Ce.inviteAccepted(a),a});return i}s(AM,"claimInviteAndSaveUser");async function _M(t,e){let r,n,i;if(e.profile){let o=e.profile;if(o.name){let a=o.name;a.givenName&&(r=a.givenName),a.familyName&&(n=a.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}s(_M,"syncUser");var OM=require("passport-google-oauth").OAuth2Strategy;function EO(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,emailVerified:n._json.email_verified===!0,oauth2:{accessToken:e,refreshToken:r}};return kc(o,!0,i,t)}}s(EO,"buildVerifyFn");async function jm(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let o=EO(r);return new OM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(jm,"strategyFactory");async function IM(t){return Wr("google",t)}s(IM,"getCallbackUrl");var ar={};P(ar,{buildVerifyFn:()=>SO,fetchStrategyConfig:()=>vM,getCallbackUrl:()=>NM,strategyFactory:()=>bM});var yO=W(require("node-fetch"));var TO=require("@govtechsg/passport-openidconnect");function SO(t,e=!1){return async(r,n,i,o,a,u,c,l,d)=>{let f=wM(n,i),g=RM(n,i),m={provider:r,providerType:"oidc",userId:f.id,profile:f,email:CM(f,g),emailVerified:DM(f,g),oauth2:{accessToken:u,refreshToken:c}};return kc(m,!1,d,t,e)}}s(SO,"buildVerifyFn");function wM(t,e){let r={...t?._json||{}};!r.email&&e.emails?.length&&(r.email=e.emails[0].value,r.email_verified=e._json?.email_verified);let n=t?.displayName||e.displayName;return{id:t?.id||e.id,name:t?.name||e.name||!!n&&{givenName:n,familyName:""}||void 0,_json:r,provider:t?.provider}}s(wM,"normalizeProfile");function RM(t,e){return{email:t?._json?.email||e.emails?.[0]?.value,email_verified:e._json?.email_verified,preferred_username:e.username}}s(RM,"buildJwtClaims");function CM(t,e){if(t._json.email)return t._json.email.toLowerCase();if(e.email)return e.email.toLowerCase();let r=e.preferred_username;if(r&&op(r))return r.toLowerCase();throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(CM,"getEmail");function DM(t,e){return t._json.email?t._json.email_verified===!0:e.email?e.email_verified===!0:!1}s(DM,"getEmailVerified");async function bM(t,e){try{let r=SO(e,t.allowUnverifiedEmailLinking),n=new TO.Strategy(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(bM,"strategyFactory");function xM(t){let e=E.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING;if(e===void 0)return t;let r=`${e}`.toLowerCase();return r!==""&&r!=="false"&&r!=="0"}s(xM,"resolveAllowUnverifiedEmailLinking");async function vM(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o,allowUnverifiedEmailLinking:a}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let u=await(0,yO.default)(i);if(!u.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${u.statusText}`);let c=await u.json();return{issuer:c.issuer,authorizationURL:c.authorization_endpoint,tokenURL:c.token_endpoint,userInfoURL:c.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o,allowUnverifiedEmailLinking:xM(a)}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(vM,"fetchStrategyConfig");async function NM(){return Wr("oidc")}s(NM,"getCallbackUrl");function AO(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}s(AO,"querystringToBody");function Mc(t,e,r={noTenancyRequired:!1}){let n=ir(t),i=ir(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!sr(o,i)};sr(o,n)||(c.excludeStrategies=["query"]);let d=zs(o,c);return d&&o.set("x-budibase-tenant-id",d),be(d,a)}}s(Mc,"tenancy");function _O(t=[]){let e=ir(t);return async function(r,n){if(sr(r,e))return n();try{if((await Ge("settings"))?.config?.active===!1){r.status=404,r.body={message:"Tenant not found"};return}}catch(i){if(i.message==="Global DB not found")return n();throw i}return n()}}s(_O,"activeTenant");async function Fc(t,e){if(t.internal||Lt(t.user))return e();let r=await pn(t);return r&&!oc(t.user,r)?t.throw(403,"Workspace Admin/Builder user only endpoint."):!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}s(Fc,"workspaceBuilderOrAdmin");var Hm={};P(Hm,{postAuth:()=>UM,preAuth:()=>LM});var PM=require("passport-google-oauth").OAuth2Strategy;async function OO(){let t=await Am();if(!t)throw new Error("No google configuration found");return t}s(OO,"fetchGoogleCreds");async function LM(t,e,r){let n=await OO(),o=`${await Uo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await jm(n,o,Bo);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(a,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}s(LM,"preAuth");async function UM(t,e,r){let n=await OO(),o=`${await Uo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=zt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new PM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{Jt(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=X();await yn(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(UM,"postAuth");var kM={google:Hm};var IO=require("koa-passport"),MM=require("passport-local").Strategy,Bc=require("passport-oauth2-refresh"),FM=vc,BM=Mc,WM=Lc,GM=IO;IO.use(new MM(xi.options,xi.authenticate));async function $M(t,e){let r=await ar.getCallbackUrl(),n,i;try{if(n=await ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await ar.strategyFactory(n,Bo)}catch{throw new Error("Could not refresh OAuth Token")}return Bc.use(i),new Promise(o=>{Bc.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s($M,"refreshOIDCAccessToken");async function VM(t,e){let r=await or.getCallbackUrl(t),n;try{n=await or.strategyFactory(t,r,Bo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Bc.use(n),new Promise(i=>{Bc.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(VM,"refreshGoogleAccessToken");async function qM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await _m(r);return n?$M(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await mc();return n?VM(n,t):{err:{data:"Google configuration not found"}}}}}s(qM,"refreshOAuthToken");async function KM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=z(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await No(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(KM,"updateUserOAuth");async function QM(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=zt(e,"budibase:auth"),o=await yo(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):Jt(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await In(r,{sessionIds:a,reason:"logout"}),await ic.logout(e.user?.email),await No(r)}s(QM,"platformLogout");var Xm={};P(Xm,{validate:()=>JM});var v=W(require("joi"));var jM=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Jm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(Jm,"runJoi");function HM(t){let e=v.default.object({type:v.default.string().allow("component").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),settings:v.default.array().items(v.default.object().unknown(!0)).required()}).unknown(!0)});Jm(e,t)}s(HM,"validateComponent");function YM(t){let e=v.default.object({type:v.default.string().allow(...Object.values(Vc)).required(),required:v.default.boolean().required(),default:v.default.any(),display:v.default.string()}),r=v.default.object({type:v.default.string().allow(...Object.values($c)),readable:v.default.boolean(),displayName:v.default.string(),fields:v.default.object().pattern(v.default.string(),e)}).required(),n=v.default.object({type:v.default.string().allow("datasource").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({docs:v.default.string(),plus:v.default.boolean().optional(),isSQL:v.default.boolean().optional(),auth:v.default.object({type:v.default.string().required()}).optional(),features:v.default.object(Object.fromEntries(Object.values(qc).map(i=>[i,v.default.boolean().optional()]))).optional(),relationships:v.default.boolean().optional(),description:v.default.string().required(),friendlyName:v.default.string().required(),type:v.default.string().allow(...jM),datasource:v.default.object().pattern(v.default.string(),e).required(),query:v.default.object().pattern(v.default.string(),r).unknown(!0).required(),extra:v.default.object().pattern(v.default.string(),v.default.object({type:v.default.string().required(),displayName:v.default.string().required(),required:v.default.boolean(),data:v.default.object()}))})});Jm(n,t)}s(YM,"validateDatasource");function zM(t){let e=v.default.object().pattern(v.default.string(),{type:v.default.string().allow(...Object.values(Kc)).required(),customType:v.default.string().allow(...Object.values(Qc)),title:v.default.string(),description:v.default.string(),enum:v.default.array().items(v.default.string()),pretty:v.default.array().items(v.default.string())}),r=v.default.object({properties:e,required:v.default.array().items(v.default.string())}).concat(e).required(),n=v.default.object({type:v.default.string().allow("automation").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),tagline:v.default.string().required(),icon:v.default.string().required(),description:v.default.string().required(),type:v.default.string().allow("ACTION","LOGIC").required(),stepId:v.default.string().disallow(...Th).required(),inputs:v.default.object().optional(),schema:v.default.object({inputs:r,outputs:r}).required()})});Jm(n,t)}s(zM,"validateAutomation");function JM(t){switch(t?.type){case"component":HM(t);break;case"datasource":YM(t);break;case"automation":zM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(JM,"validate");var Zm={};P(Zm,{Client:()=>Re,clients:()=>_r,locks:()=>xr,utils:()=>Ya});var th={};P(th,{init:()=>ZM});var XM={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};function wO(t,e){let r=XM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(wO,"getDocumentId");var Wo=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=wO(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await be(i,async()=>{await u({id:o,tenantId:i,appId:n.appId,properties:n})})}shutdown(){return QA()}};var RO,eh;function ZM(t){At||ec(),eh||(eh=new Wo(t)),RO||(RO=At.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await eh.processEvent(r,n,i)}))}s(ZM,"init");var lh={};P(lh,{COUNT_FIELD_NAME:()=>uh,Sql:()=>LO,SqlTable:()=>Wc,designDoc:()=>ch,utils:()=>Cf});var xO=require("knex");var eF=require("knex");function rh(t){return["link","formula","ai"].indexOf(t)!==-1}s(rh,"isIgnoredType");function CO(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(g=>g.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(g=>g.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(g=>g.foreignKey);for(let[g,m]of Object.entries(e.schema)){let y=n?.schema[g];if(y&&y.type||l.includes(g)||i?.updated===g)continue;let h=m.type;switch(h){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(g)?t.string(g,255):t.text(g);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:p,toTable:T}=m.meta;t.integer(g).unsigned(),t.foreign(g).references(`${T}.${p}`)}else d.indexOf(g)===-1&&t.float(g);break;case"bigint":t.bigint(g);break;case"boolean":t.boolean(g);break;case"datetime":m.timeOnly?t.time(g):t.datetime(g,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":ke.schema.isDeprecatedSingleUserColumn(m)?t.text(g):t.json(g);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:p}=_f(m.tableId),T=r[p];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let A=T.primary[0],_=T.schema[A].externalType;_?t.specificType(m.foreignKey,_):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${p}.${A}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(g);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:wt.unreachable(h)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!rh(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,y])=>!rh(y.type)&&e.schema[m]==null).forEach(([m,y])=>{i?.old===m||rh(y.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}s(CO,"generateSchema");function rF(t,e,r){return t.createTable(e.name,n=>{CO(n,e,r)})}s(rF,"buildCreateTable");function nF(t,e,r,n,i){return t.alterTable(e.name,o=>{CO(o,e,r,n,i)})}s(nF,"buildUpdateTable");function iF(t,e){return t.dropTable(e.name)}s(iF,"buildDeleteTable");var nh=class{static{s(this,"SqlTableQueryBuilder")}constructor(e){this.sqlClient=e}getBaseSqlClient(){return this.sqlClient}getSqlClient(){return this.extendedSqlClient||this.sqlClient}setExtendedSqlClient(e){this.extendedSqlClient=e}_operation(e){return e.operation}_tableQuery(e){let r=(0,eF.knex)({client:this.sqlClient}).schema;e?.schema&&(r=r.withSchema(e.schema));let n;if(!e.table||!e.tables)throw new Error("Cannot execute without table being specified");if(e.table.sourceType==="internal")throw new Error("Cannot perform table actions for SQS.");switch(this._operation(e)){case"CREATE_TABLE":n=rF(r,e.table,e.tables);break;case"UPDATE_TABLE":if(!e.table)throw new Error("Must specify old table for update");if(this.sqlClient==="mysql2"&&e.meta?.renamed){let i=e.meta.renamed.updated;return{sql:`alter table ${e?.schema?`\`${e.schema}\`.\`${e.table.name}\``:`\`${e.table.name}\``} rename column \`${e.meta.renamed.old}\` to \`${i}\`;`,bindings:[]}}if(n=nF(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,o=e.meta.renamed.updated,a=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,u=ti(n);if(Array.isArray(u))for(let c of u)c.sql.startsWith("exec sp_rename")&&(c.sql=`exec sp_rename '${a}.${i}', '${o}', 'COLUMN'`,c.bindings=[]);return u}break;case"DELETE_TABLE":n=iF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ti(n)}},Wc=nh;var vO=require("lodash");var uh="__bb_total";function DO(){return(E.SQL_MAX_ROWS?parseInt(E.SQL_MAX_ROWS):null)||5e3}s(DO,"getBaseLimit");function ih(){return(E.SQL_MAX_RELATED_ROWS?parseInt(E.SQL_MAX_RELATED_ROWS):null)||500}s(ih,"getRelationshipLimit");function sF(t,e){return t.sort((r,n)=>{let i=e.find(a=>a&&r.endsWith(a)),o=e.find(a=>a&&n.endsWith(a));return i&&!o?-1:!i&&o?1:r.localeCompare(n)})}s(sF,"prioritisedArraySort");function NO(t){return Array.isArray(t)?t.map(e=>NO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(NO,"convertBooleans");function bO(t){return t.sourceType==="internal"||t.sourceId===Yc}s(bO,"isSqs");function oF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(oF,"escapeQuotes");function aF(t,e='"'){return`${e}${oF(t,e)}${e}`}s(aF,"wrap");function uF(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=aF(t[r],e));return`[${t.join(",")}]`}s(uF,"stringifyArray");function sh(t){return`{${(Array.isArray(t)?t:t==null?[]:[t]).map(n=>{if(typeof n=="string"&&n.length>1){let i=n[0],o=n[n.length-1];if(i==='"'&&o==='"'||i==="'"&&o==="'")return n.substring(1,n.length-1)}return`${n}`}).join(",")}}`}s(sh,"toPgArrayLiteral");function PO(t){return Ah.includes(t.type)&&!ke.schema.isDeprecatedSingleUserColumn(t)}s(PO,"isJsonColumn");var cF={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,notOneOf:!0,$and:!1,$or:!1},oh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:s(e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array","POSTGRES_ARRAY"),POSTGRES_MONEY:s(e=>this.client==="pg"&&e?.externalType?.includes("money"),"POSTGRES_MONEY"),POSTGRES_ENUM:s(e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options","POSTGRES_ENUM"),MSSQL_DATES:s(e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly,"MSSQL_DATES")};this.client=e,this.query=n,this.knex=r,this.splitter=new Er.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}static{s(this,"InternalBuilder")}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(a=>{let u=a.split(/\./g),c,l=u[0];return u.length>1&&(c=u[0],l=u.slice(1).join(".")),{table:c,column:l,field:a}}).filter(({table:a})=>!a||a===n).map(({table:a,column:u,field:c})=>{let l=i[u];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(l)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([a,u].join(".")),this.knex.raw(this.quote(c))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(l)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(c),this.knex.raw(this.quote(c))]):a?this.rawQuotedIdentifier(`${a}.${u}`):this.rawQuotedIdentifier(c)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),o=this.table.schema[i],a=this.rawQuotedIdentifier(e);return(o.type==="string"||o.type==="longform"||o.type==="bb_reference_single"||o.type==="bb_reference"||o.type==="options"||o.type==="barcodeqr")&&(r?.forSelect?a=this.knex.raw("to_char(??) as ??",[a,this.rawQuotedIdentifier(i)]):a=this.knex.raw("to_char(??)",[a])),a}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&PO(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${e}}`;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),o=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${o}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!wf(e))return null}else if(r.dateOnly){let n=If(e);return n?new Date(n):null}else return r.ignoreTimezones?eu(e)?new Date(e):Of(e)?new Date(e+"Z"):null:eu(e)?new Date(e.trim()):null;return e}parseBody(e){for(let[r,n]of Object.entries(e)){let{column:i}=this.splitter.run(r),o=this.table.schema[i];o&&(e[r]=this.parse(n,o))}return e}parseFilters(e){e=(0,vO.cloneDeep)(e);for(let r of Object.values(Vr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=this.parse(n[i],a))}}for(let r of Object.values(cr)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=n[i].map(u=>this.parse(u,a)))}}for(let r of Object.values(xn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];if(!a)continue;let u=n[i];"low"in u&&(u.low=this.parse(u.low,a)),"high"in u&&(u.high=this.parse(u.high,a))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i,o){let{relationships:a,schema:u,tableAliases:c,table:l}=this.query,d=c?.[l.name]||l.name,f=s(g=>n.match(new RegExp(`^${g}\\.`)),"matches");if(!a)return e;for(let g of a){let m=g.tableName,y=c?.[m]||m,h=f(m)||f(y),p=f(g.column),T=g.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((h||p||T)&&g.to&&g.tableName){let A=this.knex.select(this.knex.raw(1)).from({[y]:m}),_=A.clone(),I=Rf(g),O;if(h?O=n:O=n.replace(new RegExp(`^${g.column}.`),`${c?.[g.tableName]||g.tableName}.`),I){let C=c?.[I.through]||g.through,R=this.tableNameWithSchema(I.through,{alias:C,schema:u});_=_.innerJoin(R,function(){this.on(`${y}.${I.toPrimary}`,"=",`${C}.${I.to}`)}).where(`${C}.${I.from}`,"=",this.rawQuotedIdentifier(`${d}.${I.fromPrimary}`)),this.client==="sqlite3"&&(_=this.addJoinFieldCheck(_,I)),T&&i==="empty"?e=e.whereNotExists(_):T&&i==="notEmpty"?e=e.whereExists(_):e=e.where(w=>{w.whereExists(o(O,_)),r&&w.orWhereNotExists(A.clone().innerJoin(R,function(){this.on(`${d}.${I.fromPrimary}`,"=",`${C}.${I.from}`)}))})}else{let C=`${y}.${g.to}`,R=`${d}.${g.from}`;_=_.where(C,"=",this.rawQuotedIdentifier(R)),T&&i==="empty"?e=e.whereNotExists(_):T&&i==="notEmpty"?e=e.whereExists(_):e=e.where(w=>{w.whereExists(o(O,_.clone())),r&&w.orWhereNotExists(_)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let o=this.query.tableAliases,a=r.allOr,c=this.client==="sqlite3"?this.table._id:this.table.name;function l(h){return o?.[h]||h}s(l,"getTableAlias");function d(h,p,T,A){let _=s((I,O,C)=>{let[R,...w]=O.split("."),b=w.join("."),G=l(R);return I.andWhere(ee=>T(ee,G?`${G}.${b}`:b,C))},"handleRelationship");for(let I in h){let O=h[I],C=Ys(I),R=C.includes(".")||i.getFieldSchema(C)?.type==="link",w=n?.relationship&&R,b;if(I==="_complexIdOperator"&&(b=h[I])&&A){let G=l(c);e=A(e,b.id.map(ee=>G?`${G}.${ee}`:ee),b.values)}else if(R)w&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,cF[p],C,p,(G,ee)=>_(ee,G,O)));else{let G=l(c);e=T(e,G?`${G}.${C}`:C,O)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,g=s((h,p,T)=>((r?.fuzzyOr||a)&&(h=h.or),f?h.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`%${T}%`]):this.client==="oracledb"||this.client==="sqlite3"?h.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`%${T.toLowerCase()}%`]):h.whereILike(this.rawQuotedIdentifier(p),this.knex.raw("?",[`%${T}%`]))),"like"),m=s((h,p=!1)=>{function T(A){return(a||h===r?.containsAny)&&(A=A.or),h===r?.notContains&&(A=A.not),A}s(T,"addModifiers"),this.client==="pg"?d(h,"contains",(A,_,I)=>{A=T(A);let O=this.getFieldSchema(_),C=this.rawQuotedIdentifier(_),R=Array.isArray(I)?[...I]:[I],w=this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(O);return p?w?A.whereRaw("COALESCE(?? && ?::text[], FALSE)",[C,sh(R)]):A.whereRaw("COALESCE(??::jsonb \\?| ?::text[], FALSE)",[C,sh(R)]):w?A.whereRaw("COALESCE(?? @> ?::text[], FALSE)",[C,sh(R)]):A.whereRaw("COALESCE(??::jsonb @> ?::jsonb, FALSE)",[C,uF(R)])}):this.client==="mysql2"||this.client==="mariadb"?d(h,"contains",(A,_,I)=>{let O=Array.isArray(I)?I:[I];return T(A).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(p?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),JSON.stringify(O)])}):d(h,"contains",(A,_,I)=>(I.length===0||(A=A.where(O=>(h===r?.notContains&&(O=O.not),O=O.where(C=>{for(let R of I){h===r?.containsAny?C=C.or:C=C.and;let w=!f,b=typeof R=="string"?`"${w?R.toLowerCase():R}"`:R,G=w?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";C=C.whereLike(this.knex.raw(G,[this.rawQuotedIdentifier(_)]),`%${b}%`)}}),h===r?.notContains&&(O=O.or.whereNull(this.rawQuotedIdentifier(_))),O))),A))},"contains");if(r.$and){let{$and:h}=r;for(let p of h.conditions)e=e.where(T=>{this.addFilters(T,p,n)})}if(r.$or){let{$or:h}=r;e=e.where(p=>{for(let T of h.conditions)p.orWhere(A=>this.addFilters(A,{...T,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(h,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(h=h.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly){for(let I of _)I!=null?h=h.or.whereLike(p,`${I.toISOString().slice(0,10)}%`):h=h.or.whereNull(p);return h}return h.whereIn(p,_)},(h,p,T)=>(a&&(h=h.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),h.whereIn(p,Array.isArray(T)?T:[T]))),r.notOneOf&&d(r.notOneOf,"notOneOf",(h,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(h=h.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly)return h.where(I=>{I.whereNot(O=>{for(let C of _)C!=null&&O.orWhereLike(p,`${C.toISOString().slice(0,10)}%`)}).orWhereNull(p)});return h.where(I=>{I.whereNotIn(p,_).orWhereNull(p)})},(h,p,T)=>(a&&(h=h.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),h.whereNotIn(p,Array.isArray(T)?T:[T]))),r.string&&d(r.string,"string",(h,p,T)=>{if(a&&(h=h.or),f)return h.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`${T}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return h.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`${T.toLowerCase()}%`]);{let A=this.getFieldSchema(p);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(A)?h.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(A.name)),`${T}%`]):h.whereILike(p,`${T}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",g),r.range&&d(r.range,"range",(h,p,T)=>{let A=s(b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype,"isEmptyObject");A(T.low)&&(T.low=""),A(T.high)&&(T.high="");let _=tu(T.low),I=tu(T.high),O=this.getFieldSchema(p),C=p,R=T.high,w=T.low;return this.client==="sqlite3"&&O?.type==="datetime"&&O.dateOnly&&(R!=null&&(R=`${R.toISOString().slice(0,10)}T23:59:59.999Z`),w!=null&&(w=w.toISOString().slice(0,10))),this.client==="oracledb"?C=this.convertClobs(p):this.client==="sqlite3"&&O?.type==="bigint"&&(C=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(p)]),R=this.knex.raw("CAST(? AS INTEGER)",[T.high]),w=this.knex.raw("CAST(? AS INTEGER)",[T.low])),a&&(h=h.or),_&&I?h.whereBetween(C,[w,R]):_?h.where(C,">=",w):I?h.where(C,"<=",R):h}),r.equal&&d(r.equal,"equal",(h,p,T)=>{let A=this.getFieldSchema(p);if(a&&(h=h.or),this.client==="mssql")return h.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return h.where(I=>I.whereNotNull(_).andWhere(_,T))}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?h.whereLike(p,`${T.toISOString().slice(0,10)}%`):h.whereNull(p):h.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(p),T])}),r.notEqual&&d(r.notEqual,"notEqual",(h,p,T)=>{let A=this.getFieldSchema(p);if(a&&(h=h.or),this.client==="mssql")return h.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return h.where(I=>I.not.whereNull(_).and.where(_,"!=",T)).or.whereNull(_)}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?h.not.whereLike(p,`${T.toISOString().slice(0,10)}%`).or.whereNull(p):h.not.whereNull(p):h.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(p),T])}),r.empty&&d(r.empty,"empty",(h,p)=>(a&&(h=h.or),h.whereNull(p))),r.notEmpty&&d(r.notEmpty,"notEmpty",(h,p)=>(a&&(h=h.or),h.whereNotNull(p))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let y=o?.[this.table._id]||this.table._id;return r.documentType&&!Af(this.table)&&y&&e.andWhereLike(`${y}._id`,`${Ot(r.documentType)}%`),e}isSqs(){return bO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;bO(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${uh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let o=n.map(a=>this.qualifyIdentifier(a));if(this.client==="oracledb"){let a=o.map(c=>this.convertClobs(c)),u=o.map(c=>this.convertClobs(c,{forSelect:!0}));e=e.groupBy(a).select(u)}else e=e.groupBy(o).select(o)}for(let o of r){let a=o.calculationType;if(a==="count")if("distinct"in o&&o.distinct)if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[u,o.name]))}else e=e.countDistinct(`${i}.${o.field} as ${o.name}`);else if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[u,o.name]))}else e=e.count(`${o.field} as ${o.name}`);else{let u=this.getFieldSchema(o.field);if(!u)throw new Error(`field schema missing for aggregation target: ${o.field}`);let c=this.knex.raw("??(??)",[this.knex.raw(a),this.rawQuotedIdentifier(`${i}.${o.field}`)]);u.type==="bigint"&&(c=this.castIntToString(c)),e=e.select(this.knex.raw("?? as ??",[c,o.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,o=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[u,c]of Object.entries(r)){let l=this.getFieldSchema(u);if(this.isUnsortableField(l))continue;let d=c.direction==="ascending"?"asc":"desc",f;(this.client==="pg"||this.client==="oracledb")&&(f=c.direction==="ascending"?"first":"last");let g=`${o}.${u}`,m;this.isAggregateField(u)?m=this.rawQuotedIdentifier(u):this.client==="oracledb"?m=this.convertClobs(g):m=this.rawQuotedIdentifier(g),e=e.orderByRaw(`?? ?? ${f?"nulls ??":""}`,[m,this.knex.raw(d),...f?[this.knex.raw(f)]:[]])}if(!((n?.aggregations?.length??0)>0)){let u=this.findSortablePrimaryKey(i);if(u&&(!r||r[u]===void 0))e=e.orderBy(`${o}.${u}`);else if(!u&&(!r||Object.keys(r).length===0))throw new Error(`Primary key not found for table ${this.table.name}`)}return e}isUnsortableField(e){return e?.type==="json"}findSortablePrimaryKey(e){return e.find(r=>{if(r==null)return!1;let n=this.getFieldSchema(r);return!this.isUnsortableField(n)})}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],o,a;if(n.length>1){let l=n.shift();o=n.join("."),a=`${l}.${o}`}else o=n.join("."),a=o;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let u=this.rawQuotedIdentifier(a),c=e.schema[i];return c&&c.type==="bigint"&&(u=this.castIntToString(u)),[o,u]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,o=this.knex,{resource:a,tableAliases:u,schema:c,tables:l}=this.query,d=a?.fields||[];for(let f of n){let{tableName:g,through:m,to:y,from:h,fromPrimary:p,toPrimary:T}=f;if(!g||!r)continue;let A=l[g];if(!A)throw new Error(`related table "${g}" not found in datasource`);let _=u?.[g]||g,I=u?.[r]||r,O=m&&u?.[m]||m,C=this.tableNameWithSchema(g,{alias:_,schema:c}),R=[...A?.primary||[],A?.primaryDisplay].filter(q=>q),w=sF(d.filter(q=>q.split(".")[0]===_),R);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let b=w.map(q=>this.buildJsonField(A,q));if(!b.length)continue;let G=b.map(q=>{let B=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${B}??`,[q[0],q[1]]).toString()}).join(","),ee=`${_}.${T||y}`,M=o.from(C).orderBy(ee),U=m&&T&&p,L=U?`${O}.${h}`:`${_}.${y}`,K=U?`${I}.${p}`:`${I}.${h}`;if(U){let q=this.tableNameWithSchema(m,{alias:O,schema:c});M=M.join(q,function(){this.on(`${_}.${T}`,"=",`${O}.${y}`)})}M=M.where(this.rawQuotedIdentifier(L),"=",this.rawQuotedIdentifier(K));let F=s(q=>(M=M.select(w.map(B=>this.rawQuotedIdentifier(B))).limit(ih()),o.select(q).from({[_]:M})),"standardWrap"),j;switch(i){case"sqlite3":M=this.addJoinFieldCheck(M,f),j=F(this.knex.raw(`json_group_array(json_object(${G}))`));break;case"pg":j=F(this.knex.raw(`json_agg(json_build_object(${G}))`));break;case"mariadb":j=M.select(o.raw(`json_arrayagg(json_object(${G}) LIMIT ${ih()})`));break;case"mysql2":case"oracledb":j=F(this.knex.raw(`json_arrayagg(json_object(${G}))`));break;case"mssql":{let q=o.select("*").from({[I]:M.select(b.map(B=>o.ref(B[1]).as(B[0]))).limit(ih())});j=o.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:j})}return e}addJoin(e,r,n){let{tableAliases:i,schema:o}=this.query,a=r.to,u=r.from,c=r.through,l=i?.[a]||a,d=c&&i?.[c]||c,f=i?.[u]||u,g=this.tableNameWithSchema(a,{alias:l,schema:o}),m=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(m,function(){for(let y of n){let h=y.fromPrimary,p=y.from;this.orOn(`${f}.${h}`,"=",`${d}.${p}`)}}).leftJoin(g,function(){for(let y of n){let h=y.toPrimary,p=y.to;this.orOn(`${l}.${h}`,`${d}.${p}`)}}):e=e.leftJoin(g,function(){for(let y of n){let h=y.from,p=y.to;this.orOn(`${f}.${h}`,"=",`${l}.${p}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let m=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=m}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let g=this.query.tableAliases?.[a.name]||a.name,m=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[g]:"paginated"}));return this.addJsonRelationships(m,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n,{relationship:!0}),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r,{relationship:!0}),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},ah=class extends Wc{static{s(this,"SqlQueryBuilder")}constructor(e,r=DO()){super(e),this.limit=r}convertToNative(e,r={}){let n=this.getSqlClient();if(r?.disableBindings)return{sql:e.toString()};{let i=ti(e);return n==="sqlite3"&&(i=NO(i)),i}}_query(e,r={}){let n=this.getSqlClient(),i={client:this.getBaseSqlClient()};(n==="sqlite3"||n==="oracledb")&&(i.useNullAsDefault=!0);let o=(0,xO.knex)(i),a,u=new oh(n,o,e);switch(this._operation(e)){case"CREATE":a=u.create(r);break;case"READ":a=u.read({limits:{query:this.limit,base:DO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(r);break;case"DELETE":a=u.delete(r);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(e);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,r)}async getReturningRow(e,r){if(!r.extra||!r.extra.idFilter)return{};let n=this._query({operation:"READ",datasource:r.datasource,schema:r.schema,table:r.table,tables:r.tables,resource:{fields:[]},filters:r.extra?.idFilter,paginate:{limit:1}});return e(n,"READ")}checkLookupKeys(e,r){if(!e||!r.table.primary)return r;let n=r.table.primary[0];return r.extra={idFilter:{equal:{[n]:e}}},r}async queryWithReturning(e,r,n=i=>i){let i=this.getSqlClient(),o=this._operation(e),a=this._query(e,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let f of a)d.push(await r(f,o));return d}let u;o==="DELETE"&&(u=n(await this.getReturningRow(r,e)));let c=await r(a,o),l=n(c);if(o==="CREATE"||o==="UPDATE"){let d;i==="mssql"?d=l?.[0].id:(i==="mysql2"||i==="mariadb")&&(d=l?.insertId),u=n(await this.getReturningRow(r,this.checkLookupKeys(d,e)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(e,r){let n=e.name;if(e.sourceType==="internal"||e.sourceId===Yc){if(!e._id)return;n=e._id}return r?.[n]||n}convertJsonStringColumns(e,r,n){let i=this.getTableName(e,n);for(let[o,a]of Object.entries(e.schema)){if(!PO(a))continue;let u=`${i}.${o}`;for(let c of r)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return r}log(e,r){Fs(this.getSqlClient(),e,r)}},LO=ah;var ch={};P(ch,{base:()=>lF});function lF(t){return{_id:xt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(lF,"base");var dh={};P(dh,{jsonFromCsvString:()=>dF});var UO=W(require("csvtojson"));async function dF(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let o of i){let a,u=!1;try{let c=await(0,UO.default)({ignoreEmpty:r,delimiter:o}).fromString(t);for(let[,l]of c.entries()){let d=Object.keys(l);if(a==null&&(a=d),!n&&d.length===1){u=!0;break}if(a.length!==d.length){u=!0;break}for(let f of a)(l[f]===void 0||l[f]==="")&&(l[f]=null)}if(u)continue;return c}catch{continue}}throw new Error("Unable to determine delimiter")}s(dF,"jsonFromCsvString");var fh=class{static{s(this,"Endpoint")}constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,o=this.controller,a=this.outputMiddlewares,u=s(()=>{},"complete"),c=[n,...i,o,...a,u];e[r](...c)}},Gc=fh;var kO=W(require("@koa/router"));var Dn=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}static{s(this,"EndpointGroup")}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),o=new Gc(e,r,i);if(n.length!==0)for(let a of n)o.addMiddleware(a);return this.endpoints.push(o),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new kO.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var Go=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new Dn;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var fF={...Js,...le},pF=s((t={})=>{Xa(t.db)},"init");0&&(module.exports={APIWarning,ActiveContentFileError,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DesignDocuments,DocumentType,Duration,EmailUnavailableError,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,FeatureDisabledWarning,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyWarning,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,USER_METADATA_PREFIX,UnexpectedError,UsageLimitError,UsageLimitWarning,UserStatus,ViewName,WORKSPACE_DEV,WORKSPACE_DEV_PREFIX,WORKSPACE_PREFIX,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getErrorMessage,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,warnings,withEnv});
|
|
36
|
+
}`,"platform_users_lowercase_2")},"createPlatformUserView"),js=s(async(t,e)=>{let r={account_by_email:wS,platform_users_lowercase_2:RS};return je(pe.PLATFORM_INFO.name,async n=>{let i=r[t];return Jf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),CS={by_email2:AS,by_api_key:OS,by_app:_S},Ht=s(async(t,e,r,n)=>{r||(r=z());let i=CS[t];return Jf(t,e,r,i,n)},"queryGlobalView");async function Hs(t,e,r){let n=z(),i=CS[t];return Qs(t,e,n,i,r)}s(Hs,"queryGlobalViewRaw");var yv=W(require("pouchdb"));var DS=require("dd-trace");var Xf=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=it(e),this.target=it(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([Ms(this.source),Ms(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}async resolveInconsistencies(e){for(let r of e)try{let[n,i]=await Promise.all([this.source.get(r),this.target.get(r)]),o=this.replicationDelta(n,i);if(o<0||o===0&&n._rev===i._rev)continue;let a=o+1;await DS.tracer.trace("Replication.resolveInconsistencies",async u=>{u.addTags({versionsToJump:a,toFix:!0,id:r,sourceRev:n._rev,targetRev:i._rev});for(let c=0;c<a;c++){let l=await this.source.get(i._id);await this.source.put(l)}})}catch{console.warn("Cannot resolve inconsistencies for document",r)}}replicationDelta(e,r){let n=this.getRevisionNumber(e);return this.getRevisionNumber(r)-n}getRevisionNumber(e){return parseInt(e._rev?.split("-")[0]||"0")}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,n=this.direction,i=n==="toDev";delete e.filter;let o=e.isCreation,a=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let u=!1,c;typeof a=="string"&&a==="all"?u=!0:a&&(c=a);let l=s((f,g)=>f?.startsWith(g+"_"),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:s((f,g)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,xs)?!0:n==="toProduction"&&!o&&l(f._id,"autocolumn_state")?!1:d(f._id)?!!c?.find(m=>f._id.includes(m))||u:l(f._id,"log_au")||l(f._id,"agentlogsession")||f._id==="app_metadata"?!1:r?r(f,g):!0,"filter")}}async rollback(){await this.target.destroy(),this.target=it(this.target.name),await this.replicate()}},bS=Xf;var vS=W(require("node-fetch"));var Ys=Er.removeKeyNumbering;function Or(t){return t==null||t===""}s(Or,"isEmpty");var Yt=class t{static{s(this,"QueryBuilder")}#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},notOneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return typeof e=="string"&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addNotOneOf(e,r){return this.#e.notOneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:o}={}){let a=!!this.#f,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let o of Object.keys(e)){let a=Ys(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#e.equal.tableId&&(a=this.#e.equal.tableId,delete this.#e.equal.tableId);let u=s((h,p)=>Or(p)?null:`${h}:${e.preprocess(p,o)}`,"equal"),c=s((h,p,T="AND")=>{if(Or(p))return null;if(!Array.isArray(p))return`${h}:${p}`;let A=`${e.preprocess(p[0],{escape:!0})}`;for(let _=1;_<p.length;_++)A+=` ${T} ${e.preprocess(p[_],{escape:!0})}`;return`${h}:(${A})`},"contains"),l=s((h,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"fuzzy"}),`${h}:/.*${p}.*/`),"fuzzy"),d=s((h,p)=>{let T=r?"*:* AND ":"",A=r?"AND":void 0;return T+"NOT "+c(h,p,A)},"notContains"),f=s((h,p)=>c(h,p,"OR"),"containsAny"),g=s((h,p)=>{if(Or(p))return"*:*";if(!Array.isArray(p))if(typeof p=="string")p=p.split(",");else return"";let T=`${e.preprocess(p[0],o)}`;for(let A=1;A<p.length;A++)T+=` OR ${e.preprocess(p[A],o)}`;return`${h}:(${T})`},"oneOf"),m=s((h,p)=>{if(Or(p))return null;if(!Array.isArray(p))if(typeof p=="string")p=p.split(",");else return"";let T=`${e.preprocess(p[0],o)}`;for(let A=1;A<p.length;A++)T+=` OR ${e.preprocess(p[A],o)}`;return`(*:* -${h}:(${T}))`},"notOneOf");function y(h,p,T){let A="";for(let[_,I]of Object.entries(h)){_=Ys(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let O=p(_,I);if(O!=null){if(A.length>0||n.length>0){let C=T?.mode?T.mode:r?"OR":"AND";A+=` ${C} `}A+=O,(typeof I!="string"&&I!=null||typeof I=="string"&&I!==a&&I!=="")&&(i=!1)}}if(T?.returnBuilt)return A;n+=A}if(s(y,"build"),this.#e.string&&y(this.#e.string,(h,p)=>Or(p)?null:(p=e.preprocess(p,{escape:!0,lowercase:!0,type:"string"}),`${h}:${p}*`)),this.#e.range&&y(this.#e.range,(h,p)=>{if(Or(p)||p.low==null||p.low===""||p.high==null||p.high==="")return null;let T=e.preprocess(p.low,o),A=e.preprocess(p.high,o);return`${h}:[${T} TO ${A}]`}),this.#e.fuzzy&&y(this.#e.fuzzy,l),this.#e.equal&&y(this.#e.equal,u),this.#e.notEqual&&y(this.#e.notEqual,(h,p)=>Or(p)?null:typeof p=="boolean"?`(*:* AND !${h}:${p})`:`!${h}:${e.preprocess(p,o)}`),this.#e.empty&&y(this.#e.empty,h=>(i=!1,`(*:* -${h}:["" TO *])`)),this.#e.notEmpty&&y(this.#e.notEmpty,h=>(i=!1,`${h}:["" TO *]`)),this.#e.oneOf&&y(this.#e.oneOf,g),this.#e.notOneOf&&y(this.#e.notOneOf,m),this.#e.contains&&y(this.#e.contains,c),this.#e.notContains&&y(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&y(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,y({tableId:a},u)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await xS(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await xS(n,i,r);throw o}}};async function xS(t,e,r){let n=await(0,vS.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(xS,"runQuery");async function NS(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 NS(t,e,r,l)}s(NS,"recursiveSearch");async function Tv(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(Tv,"paginatedSearch");async function Sv(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 NS(t,e,r,n)}}s(Sv,"fullSearch");var Zf={};P(Zf,{createUserIndex:()=>Av});async function Av(){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(Av,"createUserIndex");function PS(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(PS,"checkErrorCode");function _v(t){return PS(t,409)}s(_v,"isDocumentConflictError");var Js={};P(Js,{addTenantToUrl:()=>Ov,getTenantDB:()=>ep,getTenantIDFromCtx:()=>zs,isUserInWorkspaceTenant:()=>Iv});function ep(t){return De(ln(t))}s(ep,"getTenantDB");function Ov(t){let e=V();if(Sr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(Ov,"addTenantToUrl");var Iv=s((t,e)=>{let r;return e?r=e.tenantId||ce:r=V(),(ni(t)||ce)===r},"isUserInWorkspaceTenant"),wv=Object.values(Ui),zs=s((t,e)=>{if(!Sr())return ce;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=wv),e.excludeStrategies||(e.excludeStrategies=[]);let r=s(n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0},"isAllowed");if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(xf()).host.split(":")[0]}catch(o){if(o.code!=="ERR_INVALID_URL")throw o}let i=t.host;if(n&&i.includes(n)){let o=i.substring(0,i.indexOf(`.${n}`));if(o)return o}}if(r("path")){let n=t.matched.find(a=>!!a.paramNames.find(u=>u.name==="tenantId")),i=t.originalUrl,o;if(i.includes("?")?o=i.split("?")[0]:o=i,n){let a=n.params(o,n.captures(o),{});if(a.tenantId)return a.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")},"getTenantIDFromCtx");var Tu={milliseconds:1,seconds:1e3,minutes:60*1e3,hours:3600*1e3,days:1440*60*1e3},me=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/Tu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Tu[e]/Tu[r]}static from(e,r){return new t(r*Tu[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};function Su(){let t=me.fromDays(7).toSeconds();if(!E.SESSION_EXPIRY_SECONDS)return t;let e=parseInt(E.SESSION_EXPIRY_SECONDS);return Number.isFinite(e)&&e>0?e:t}s(Su,"getSessionExpirySeconds");function tp(){return new Date(Date.now()+Su()*1e3)}s(tp,"getSessionExpiryDate");var rp="app_",LS="/app/",US="/app-chat/";async function Rv(t){let r=t.path.split("/")[2];if(!r)return;let n=`/${r.toLowerCase()}`,i=V();!E.isDev()&&E.MULTI_TENANCY&&(i=zs(t,{includeStrategies:["subdomain"]}));let a=(await be(i,()=>Ks({dev:!1}))).filter(u=>u.url&&u.url.toLowerCase()===n)[0];return a&&a.appId?a.appId:void 0}s(Rv,"resolveAppUrl");function Cv(t){return t.path.startsWith(`/${rp}`)?!0:t.path.startsWith(LS)||t.path.startsWith(US)}s(Cv,"isServingApp");function Dv(t){return t.path.startsWith("/builder/workspace/")}s(Dv,"isServingBuilder");function bv(t){return kS(t.path)}s(bv,"isServingBuilderPreview");function kS(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(kS,"isBuilderPreviewUrl");function xv(t){return t.path.startsWith("/api/public/v")}s(xv,"isPublicApiRequest");async function pn(t){let e;function r(u){u&&u.startsWith(rp)&&(e&&e!==u&&t.throw(403,"App id conflict"),e=u)}s(r,"setWorkspaceIdIfValid");function n(u){if(u){typeof u=="string"&&(u=[u]);for(let c of u)r(c)}}s(n,"checkPossibleValues"),n(t.request.headers["x-budibase-app-id"]),r(t.request.body?.appId);let i=vv(t.path);r(i),n(t.query?.appId);let o=kS(t.path);return(t.path.startsWith(LS)||t.path.startsWith(US))&&!o&&r(await Rv(t)),e}s(pn,"getWorkspaceIdFromCtx");function vv(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(rp))}s(vv,"parseWorkspaceIdFromUrlPath");function _u(t){if(t)try{return Au.default.verify(t,E.JWT_SECRET)}catch(e){if(E.JWT_SECRET_FALLBACK)return Au.default.verify(t,E.JWT_SECRET_FALLBACK);throw e}}s(_u,"openJwt");function Xs(t){return E.INTERNAL_API_KEY&&E.INTERNAL_API_KEY===t?!0:!!(E.INTERNAL_API_KEY_FALLBACK&&E.INTERNAL_API_KEY_FALLBACK===t)}s(Xs,"isValidInternalAPIKey");function zt(t,e){let r=t.cookies.get(e);if(r)return _u(r)}s(zt,"getCookie");function np(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Au.default.sign(e,E.JWT_SECRET));let i=n.sameSite,o=n.secure??t.secure;i==="none"&&(o?o=!0:i="lax");let a={expires:n.expires??qa,path:"/",httpOnly:n.httpOnly??!1,secure:o,overwrite:!0};i&&(a.sameSite=i),E.COOKIE_DOMAIN&&(a.domain=E.COOKIE_DOMAIN),t.cookies.set(r,e,a)}s(np,"setCookie");function Nv(t,e){np(t,e,"budibase:auth",{sign:!1,httpOnly:!0,expires:tp()})}s(Nv,"setAuthCookie");function Jt(t,e){np(t,null,e)}s(Jt,"clearCookie");function Pv(t){return t.headers["x-budibase-type"]==="client"}s(Pv,"isClient");function ip(t){return new Promise(e=>setTimeout(e,t))}s(ip,"timeout");function sp(t){return!!hh[t]}s(sp,"isAudited");function Lv(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(Lv,"hasCircularStructure");function Uv(t){return!!t.match(/^.+:\/\/.+$/)}s(Uv,"urlHasProtocol");function op(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}s(op,"validEmail");async function kv(t){let e=performance.now();return[await t(),me.fromMilliseconds(performance.now()-e)]}s(kv,"time");var Ou=require("undici");function Mv(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(Mv,"isUrlMatchingNoProxy");function Fv(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&&Mv(t,i))return console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy",{url:t,noProxy:i}),!0}return!1}s(Fv,"shouldBypassProxy");function Bv(t,e){return new Ou.Agent({connect:{rejectUnauthorized:t,...e?{lookup:e}:{}}})}s(Bv,"createDirectAgent");function Wv(t){let e=process.env.GLOBAL_AGENT_HTTP_PROXY||process.env.HTTP_PROXY,n=(process.env.GLOBAL_AGENT_HTTPS_PROXY||process.env.HTTPS_PROXY||e).trim();console.log("[fetch] Creating ProxyAgent",{proxyUrl:n,rejectUnauthorized:t});let i={uri:n,requestTls:{rejectUnauthorized:t}};return n.startsWith("https://")&&(i.proxyTls={rejectUnauthorized:t}),new Ou.ProxyAgent(i)}s(Wv,"createProxyAgent");function Gv(t){let e=t?.rejectUnauthorized??!0;return Fv(t?.url)?Bv(e,t?.lookup):(t?.lookup&&console.log("[fetch] Proxy configured; IP pinning is not applied to proxied requests"),Wv(e))}s(Gv,"createDispatcher");function $v(t){return Gv(t)}s($v,"getDispatcher");var ap=require("util"),up=W(require("zlib"));var Vv=(0,ap.promisify)(up.default.gzip),qv=(0,ap.promisify)(up.default.gunzip),Iu="gzip:",Kv=s(async t=>{let e=await Vv(t);return`${Iu}${e.toString("base64")}`},"gzipToBase64"),Qv=s(async t=>{let e=t.startsWith(Iu)?t.slice(Iu.length):t,r=Buffer.from(e,"base64");return(await qv(new Uint8Array(r))).toString("utf8")},"gunzipFromBase64");function jv(t){let e=t.get("authorization");if(!e)return null;let r=e.match(/^Bearer\s+(.+)$/i);return r?r[1]:null}s(jv,"getBearerToken");var VS=W(require("http")),qS=W(require("https"));var pp={};P(pp,{isBlacklisted:()=>fp,refreshBlacklist:()=>GS,resolveAddress:()=>wu});var MS=W(require("dns")),wr=W(require("net"));var FS=require("util");var Hv=["127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","100.64.0.0/10","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10"],lp,Yv=(0,FS.promisify)(MS.default.lookup);function BS(){return!(E.SELF_HOSTED&&E.BLACKLIST_IPS!==void 0)}s(BS,"shouldApplyDefaultBlacklist");function dp(t){return wr.default.isIP(t)===6?"ipv6":"ipv4"}s(dp,"getIpVersion");function zv(t){let e=wr.default.isIP(t);return e===4?32:e===6?128:null}s(zv,"getMaxPrefixLength");function Jv(t,e){if(!/^\d+$/.test(e))return null;let r=Number.parseInt(e,10),n=zv(t);return n==null||r>n?null:r}s(Jv,"getValidSubnetPrefix");function Xv(t){return wr.default.isIP(t)?t:(/^https?:\/\//.test(t)||(t=`https://${t}`),new URL(t).hostname.replace(/^\[|\]$/g,""))}s(Xv,"parseAddress");async function WS(t){return t=Xv(t),(await Yv(t,{all:!0})).map(r=>r.address)}s(WS,"lookup");async function wu(t){return wr.default.isIP(t)?[t]:WS(t)}s(wu,"resolveAddress");function cp(t,e){let r=e.trim();if(!r)return;let n=r.split("/");if(n.length>2){console.log(`Ignoring invalid blacklist entry: ${r}`);return}let[i,o]=n,a=wr.default.isIP(i);if(n.length===2){let u=Jv(i,o);if(a&&u!==null){t.addSubnet(i,u,dp(i));return}console.log(`Ignoring invalid blacklist entry: ${r}`);return}a&&t.addAddress(i,dp(i))}s(cp,"addEntryToBlacklist");async function GS(){let t=new wr.default.BlockList;if(BS())for(let r of Hv)cp(t,r);let e=E.BLACKLIST_IPS?.split(",")||[];for(let r of e){let n=r.trim();if(!n)continue;let[i]=n.split("/");if(wr.default.isIP(i)){cp(t,n);continue}let o=await WS(n);for(let a of o)cp(t,a)}lp=t}s(GS,"refreshBlacklist");async function fp(t){lp||await GS();let e;try{e=await wu(t)}catch(r){return r instanceof TypeError?(console.error("Black list error: could not parse address: ",t),!0):BS()}return e.some(r=>lp.check(r,dp(r)))}s(fp,"isBlacklisted");var Ru=W(require("node-fetch"));var $S=5,Zv=new Set(["http:","https:"]),eN=["authorization","cookie","cookie2","proxy-authorization"];function mp(t){let e;try{e=new URL(t)}catch{throw new Error("Invalid URL.")}if(!Zv.has(e.protocol))throw new Error("Only HTTP(S) URLs are allowed.");if(e.username||e.password)throw new Error("URL must not include credentials.");return e}s(mp,"parseUrl");function tN(t){return[301,302,303,307,308].includes(t)}s(tN,"isRedirect");async function rN(t){let e=mp(t),r=await wu(e.hostname);if(r.length===0)throw new Error("URL is blocked or could not be resolved safely.");for(let n of r)if(await fp(n))throw new Error("URL is blocked or could not be resolved safely.");return r[0]}s(rN,"resolveSafePinnedIp");function KS(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(KS,"createPinnedLookup");function nN(t,e){let r=new URL(t).protocol,n=KS(e);return r==="https:"?new qS.default.Agent({lookup:n}):new VS.default.Agent({lookup:n})}s(nN,"makePinnedAgent");function iN(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(iN,"nextRequestForRedirect");function sN(t,e){return new URL(t).origin!==new URL(e).origin}s(sN,"shouldStripSensitiveHeadersForRedirect");function oN(t){if(!t.headers)return t;let e=new Ru.Headers(t.headers);return eN.forEach(r=>e.delete(r)),{...t,headers:e}}s(oN,"stripSensitiveHeadersForRedirect");function aN(t){return!t||typeof t!="object"||!("resume"in t)?!1:typeof t.resume=="function"}s(aN,"isResumableBody");function uN(t){let e=t.body;aN(e)&&e.resume()}s(uN,"releaseResponseBody");async function li(t,e={},{followRedirects:r=!0,returnRedirectWithoutLocation:n=!1,rejectCrossOriginRedirects:i=!1,fetchFn:o=Ru.default}={}){let a=t,u={...e,redirect:"manual"};for(let c=0;c<=$S;c++){let l=await rN(a),d;try{d=await o(a,{...u,agent:nN(a,l)},l)}catch(m){let y=mp(a).hostname;throw m instanceof Error?(m.message=`Failed to connect to resolved IP for ${y}: ${m.message}`,m):new Error(`Failed to connect to resolved IP for ${y}: unknown network error`)}if(!tN(d.status))return d;if(uN(d),!r)throw new Error("Redirects are not permitted.");if(c===$S)break;let f=d.headers.get("location");if(!f){if(n)return d;throw new Error("Maximum redirect reached.")}let g=mp(new URL(f,a).toString()).toString();if(u=iN(u,d.status),sN(a,g)){if(i)throw new Error("Redirect to a different origin is not permitted.");u=oN(u)}a=g}throw new Error("Maximum redirect reached.")}s(li,"fetchWithBlacklist");var cN=s((t,e)=>`datasource:creation:${t}:microsoft:${e}`,"microsoftDatasourceCreationCacheKey");function lN(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(lN,"jobToJobInformation");var Cu=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new QS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((f,g)=>{f?l(f):c(g)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await ke.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=X(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:s(async()=>{c._isDiscarded=!0},"discard")};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:s(()=>new Promise((c,l)=>{let d=s((g,m)=>{g.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(m))},"errorHandler"),f=s((g,m)=>{g.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(m))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)}),"finished")}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}async getJobs(){return this._messages}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>lN(e))}async whenCurrentJobsFinished(){do await ip(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},jS=Cu;var Ep=W(require("bull"));var fi=(y=>(y.AUTOMATION="automationQueue",y.APP_BACKUP="appBackupQueue",y.AUDIT_LOG="auditLogQueue",y.SYSTEM_EVENT_QUEUE="systemEventQueue",y.APP_MIGRATION="appMigration",y.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",y.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",y.BATCH_USER_SYNC_PROCESSOR="batchUserSyncProcessorQueue",y.RAG_INGESTION="ragIngestionQueue",y.KNOWLEDGE_SOURCE_SYNC="knowledgeSourceSyncQueue",y.AGENT_LOG_INDEXING="agentLogIndexingQueue",y.ESCALATION="escalationQueue",y.AGENT_REQUEST_TRACKING="agentRequestTrackingQueue",y.AGENT_TEST_RUN="agentTestRunQueue",y))(fi||{});function HS(t,e,r){pN(t,e),r&&dN(t,r)}s(HS,"addListeners");function dN(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(dN,"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 fN={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 pN(t,e){let r=fN[e];function n(i,o){let a=i.data.event?.appId;if(a)return vf(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...ot(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...ot(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...ot(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...ot(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...ot(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...ot(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...ot(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...ot(r,"paused"))}).on("resumed",()=>{console.info(...ot(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...ot(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...ot(r,"drained"))}).on("removed",i=>{console.info(...ot(r,"removed",{job:i}))})}s(pN,"logging");var Du={};P(Du,{cleanup:()=>mN,clear:()=>gp,set:()=>hp});var Zs=[];function hp(t,e){let r=setInterval(t,e);return Zs.push(r),r}s(hp,"set");function gp(t){let e=Zs.indexOf(t);e!==-1&&Zs.splice(e,1),clearInterval(t)}s(gp,"clear");function mN(){for(let t of Zs)clearInterval(t);Zs=[]}s(mN,"cleanup");var Xt=W(require("dd-trace")),eo=W(require("object-sizeof"));var hN=me.fromMinutes(5).toMs(),gN=me.fromSeconds(30).toMs(),yp=me.fromSeconds(60).toMs(),to=[],bu;async function YS(){for(let t of to)await t.clean(yp,"completed"),await t.clean(yp,"failed")}s(YS,"cleanup");async function EN(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(EN,"withMetrics");function zS(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(zS,"jobOptsTags");function yN(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,eo.default)(t.data),...zS(t.opts||{})}}s(yN,"jobTags");var yt=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:un(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:hN,lockRenewTime:gN}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return E.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new Ep.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new jS(this.jobQueue,r):n=new Ep.default(this.jobQueue,r),HS(n,this.jobQueue,this.opts.removeStalledCb),to.push(n),!bu&&!E.isTest()&&(bu=hp(YS,yp),YS().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=s(async(a,u)=>{await Xt.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:s(()=>l.traceId,"toTraceId"),toSpanId:s(()=>l.spanId,"toSpanId"),toTraceparent:s(()=>"","toTraceparent")};c.addLink({context:d})}c.addTags({"queue.name":this.jobQueue,...yN(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),Xt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,eo.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await Xt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,eo.default)(e),...zS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},Xt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,eo.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return EN(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function TN(){bu&&gp(bu),console.log("Waiting for current queue jobs to finish...");for(let t of to)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of to)await t.close();to=[],console.log("Queues shutdown")}s(TN,"shutdown");var uo={};P(uo,{correlation:()=>ro,logAlert:()=>gn,logAlertWithInfo:()=>nP,logWarn:()=>hi,logger:()=>Mu,system:()=>Np});var ro={};P(ro,{getId:()=>Tp,setHeader:()=>SN});var JS=require("correlation-id"),SN=s(t=>{let e=JS.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function Tp(){return JS.getId()}s(Tp,"getId");var ku=W(require("pino")),DA=W(require("pino-pretty")),Pp=W(require("dd-trace")),bA=require("dd-trace/ext");var Np={};P(Np,{getLogReadStream:()=>JN,getSingleFileMaxSizeInfo:()=>CA,localFileDestination:()=>vp});var ao=W(require("fs")),xp=W(require("path")),OA=W(require("rotating-file-stream"));var bp={};P(bp,{ObjectStore:()=>at,ObjectStoreBuckets:()=>_N,SIGNED_FILE_PREFIX:()=>wp,bucketTTLConfig:()=>xu,budibaseTempDir:()=>mn,client3rdPartyLibrary:()=>qN,clientLibraryPath:()=>VN,clientLibraryUrl:()=>KN,createBucketIfNotExists:()=>oo,deleteFile:()=>LN,deleteFiles:()=>UN,deleteFolder:()=>dA,downloadTarball:()=>MN,downloadTarballDirect:()=>kN,enrichPWAImages:()=>QN,enrichPluginURLs:()=>HN,extractBucketAndPath:()=>Sp,getAllFiles:()=>vN,getAppFileUrl:()=>hA,getClientCacheKey:()=>mA,getGlobalFileS3Key:()=>gA,getGlobalFileUrl:()=>jN,getObjectMetadata:()=>FN,getPluginIconKey:()=>TA,getPluginJSKey:()=>yA,getPluginS3Dir:()=>AA,getPresignedUrl:()=>hn,getReadStream:()=>vu,getSafeRetrieveDirectoryPath:()=>lA,listAllObjects:()=>Rp,objectExists:()=>BN,processAutomationAttachment:()=>IN,processObjectStoreAttachment:()=>rA,retrieve:()=>cA,retrieveDirectory:()=>PN,retrieveToTmp:()=>NN,sanitizeBucket:()=>xe,sanitizeKey:()=>Ee,streamUpload:()=>uA,streamUploadMany:()=>xN,upload:()=>bN,uploadDirectory:()=>Cp});var Pu=require("@aws-sdk/client-s3"),Ap=require("@aws-sdk/lib-storage"),nA=require("@aws-sdk/s3-request-presigner"),iA=require("@smithy/node-http-handler");var Zt=W(require("dd-trace")),pi=W(require("fs")),io=W(require("fs/promises")),sA=W(require("https")),Ye=require("path"),Lu=W(require("stream")),so=require("stream/promises"),_p=W(require("tar-fs")),Op=require("uuid"),Ip=W(require("zlib"));var XS=W(require("fs")),ZS=require("os"),no=W(require("path")),eA=W(require("stream"));var _N={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},tA=(0,no.join)((0,ZS.tmpdir)(),".budibase");try{XS.default.mkdirSync(tA)}catch(t){if(t.code!=="EEXIST")throw t}function mn(){return tA}s(mn,"budibaseTempDir");var xu=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function ON(t){let e=await li(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=no.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");if(!(e.body instanceof eA.default.Readable))throw new Error("Unexpected response body stream type");return{filename:t.filename||r,content:e.body}}s(ON,"processUrlAttachment");async function rA(t){let e=Sp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await vu(r,n),o=no.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(rA,"processObjectStoreAttachment");async function IN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await ON(t):await rA(t)}s(IN,"processAutomationAttachment");var wN=require("sanitize-s3-objectkey"),RN={bucketCreationPromises:{}},wp="/files/signed",Rr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},CN=[Rr.html,Rr.css,Rr.js,Rr.json];function Ee(t){let e=wN(xe(t)).replace(/\\/g,"/");if(e.split("/").some(r=>r==="."||r===".."))throw new Error("Invalid object store key: path traversal is not allowed.");return e}s(Ee,"sanitizeKey");function xe(t){return t.replace(new RegExp(nt,"g"),rt)}s(xe,"sanitizeBucket");function at(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY},region:E.AWS_REGION};if(!E.MINIO_ENABLED&&E.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY,sessionToken:E.AWS_SESSION_TOKEN}),E.MINIO_URL&&(t.presigning&&E.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=E.MINIO_URL),E.S3_IGNORE_SELF_SIGNED==="true"){let r=new sA.default.Agent({rejectUnauthorized:!1});e.requestHandler=new iA.NodeHttpHandler({httpsAgent:r})}return new Pu.S3(e)}s(at,"ObjectStore");async function oo(t,e){e=xe(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode||r.$metadata?.httpStatusCode,i=RN.bucketCreationPromises;if(n===403)throw new Error("Access denied to object store bucket."+r);if(i[e])return await i[e],{created:!1,exists:!0};i[e]=t.createBucket({Bucket:e}).catch(o=>{if(o.Code!=="BucketAlreadyOwnedByYou"&&o.name!=="BucketAlreadyOwnedByYou")throw o});try{return await i[e],{created:!0,exists:!1}}finally{delete i[e]}}}s(oo,"createBucketIfNotExists");var DN=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?Rr[r.toLowerCase()]:Rr.txt},"resolveContentType"),oA=s(async(t,e,r)=>{let n=xe(t),i=at(),o=await oo(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=xu(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),aA=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=DN(r,i),u=Ee(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new Ap.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function bN({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await io.default.open(r)).createReadStream():o,l=at(),d=await oo(l,t);if(a&&d.created){let h=xu(t,a);await l.putBucketLifecycleConfiguration(h)}let f=n,g=f||(u?Rr[u.toLowerCase()]:Rr.txt),m={Bucket:xe(t),Key:Ee(e),Body:c,ContentType:g};if(i&&typeof i=="object"){for(let h of Object.keys(i))(!i[h]||typeof i[h]!="string")&&delete i[h];m.Metadata=i}return new Ap.Upload({client:l,params:m}).done()}s(bN,"upload");async function uA({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 oA(t,o,a),{details:d,contentType:f}=await aA({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(uA,"streamUpload");async function xN({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 oA(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 aA({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=d},10),c})}s(xN,"streamUploadMany");async function cA(t,e){return await Zt.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=at(),i={Bucket:xe(t),Key:Ee(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),CN.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return Lu.default.Readable.fromWeb(a)}})}s(cA,"retrieve");async function*Rp(t,e){let r=at(),n=s((a={})=>r.listObjectsV2({...a,Bucket:xe(t),Prefix:Ee(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s(Rp,"listAllObjects");async function vN(t,e){let r={};return await wt.parallelForeach(Rp(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(vN,"getAllFiles");async function hn(t,e,r=3600){let n=at({presigning:!0}),i={Bucket:xe(t),Key:Ee(e)},o=await(0,nA.getSignedUrl)(n,new Pu.GetObjectCommand(i),{expiresIn:r});if(E.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${wp}${u}${c}`}else return o}s(hn,"getPresignedUrl");async function NN(t,e){return await Zt.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=xe(t),e=Ee(e);let n=await cA(t,e),i=(0,Ye.join)(mn(),(0,Op.v4)());return r.addTags({outputPath:i}),n instanceof Lu.default.Readable?(r.addTags({stream:!0}),await(0,so.pipeline)(n,pi.default.createWriteStream(i))):(r.addTags({stream:!1}),pi.default.writeFileSync(i,n)),i})}s(NN,"retrieveToTmp");async function PN(t,e,r){return await Zt.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Ye.join)(mn(),(0,Op.v4)());await io.default.mkdir(i,{recursive:!0});let o=0;return await wt.parallelForeach(Rp(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await Zt.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let d=lA(i,l);if(!d){c.addTags({skippedUnsafePath:!0});return}let{stream:f}=await vu(t,l);pi.default.existsSync(d.dir)||await io.default.mkdir(d.dir,{recursive:!0}),await(0,so.pipeline)(f,pi.default.createWriteStream(d.path,{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(PN,"retrieveDirectory");function lA(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(lA,"getSafeRetrieveDirectoryPath");async function LN(t,e){let r=at();await oo(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(LN,"deleteFile");async function UN(t,e){let r=at();await oo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ee(i)}))}};return r.deleteObjects(n)}s(UN,"deleteFiles");async function dA(t,e){t=xe(t),e=Ee(e);let r=at(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return dA(t,e)}s(dA,"deleteFolder");async function Cp(t,e,r){return await Zt.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=xe(t);let i=await io.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=Ee((0,Ye.join)(r,o.name)),u=(0,Ye.join)(e,o.name);o.isDirectory()?await Cp(t,u,a):await uA({bucket:t,filename:a,stream:pi.default.createReadStream(u)})}return i})}s(Cp,"uploadDirectory");async function kN(t,e,r={},{followRedirects:n=!0}={}){e=Ee(e);let i=await li(t,{headers:r},{followRedirects:n});if(!i.ok)throw new Error(`unexpected response ${i.statusText}`);await(0,so.pipeline)(i.body,Ip.default.createUnzip(),_p.default.extract(e))}s(kN,"downloadTarballDirect");async function MN(t,e,r){e=xe(e),r=Ee(r);let n=await li(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Ye.join)(mn(),r);return await(0,so.pipeline)(n.body,Ip.default.createUnzip(),_p.default.extract(i)),!E.isTest()&&E.SELF_HOSTED&&await Cp(e,i,r),i}s(MN,"downloadTarball");async function vu(t,e){return await Zt.default.trace("getReadStream",async r=>{t=xe(t),e=Ee(e),r.addTags({bucketName:t,path:e});let n=at(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof Lu.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(vu,"getReadStream");async function FN(t,e){t=xe(t),e=Ee(e);let r=at(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(FN,"getObjectMetadata");async function BN(t,e){t=xe(t),e=Ee(e);let r=at(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode||i.$metadata?.httpStatusCode)===404)return!1;throw i}}s(BN,"objectExists");function Sp(t){let e=t.split("?")[0],r=new RegExp(`^${wp}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:o}=n.groups;return{bucket:i,path:o}}return null}s(Sp,"extractBucketAndPath");var pA=W(require("querystring"));var fA=W(require("aws-cloudfront-sign"));var Uu;function WN(){if(!E.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Uu||(Uu=Buffer.from(E.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Uu)}s(WN,"getPrivateKey");var GN=s(()=>({keypairId:E.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:WN(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),mi=s(t=>{let e=$N(t);return fA.getSignedUrl(e,GN())},"getPresignedUrl"),$N=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${E.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function VN(t){return`${Ee(t)}/budibase-client.js`}s(VN,"clientLibraryPath");function qN(t,e){return`${Ee(t)}/${e}`}s(qN,"client3rdPartyLibrary");async function KN(t,e){return`/api/assets/${t}/client?${await mA(e)}`}s(KN,"clientLibraryUrl");async function mA(t){let e,r;try{e=V()}finally{r={version:t}}return e&&e!==ce&&(r.tenantId=e),pA.default.encode(r)}s(mA,"getClientCacheKey");async function hA(t){return E.CLOUDFRONT_CDN?mi(t):await hn(E.APPS_BUCKET_NAME,t)}s(hA,"getAppFileUrl");async function QN(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await hA(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(QN,"enrichPWAImages");var jN=s(async(t,e,r)=>{let n=gA(t,e);return E.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),mi(n)):await hn(E.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),gA=s((t,e)=>{let r=`${t}/${e}`;return E.MULTI_TENANCY&&(r=`${V()}/${r}`),r},"getGlobalFileS3Key");async function HN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await YN(e),n=await zN(e);return{...e,jsUrl:r,iconUrl:n}}))}s(HN,"enrichPluginURLs");async function YN(t){let e=yA(t);return EA(e)}s(YN,"getPluginJSUrl");async function zN(t){let e=TA(t);if(e)return EA(e)}s(zN,"getPluginIconUrl");async function EA(t){return E.CLOUDFRONT_CDN?mi(t):await hn(E.PLUGIN_BUCKET_NAME,t)}s(EA,"getPluginUrl");function yA(t){return SA(t,"plugin.min.js")}s(yA,"getPluginJSKey");function TA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return SA(t,e)}s(TA,"getPluginIconKey");function SA(t,e){return`${AA(t.name)}/${e}`}s(SA,"getPluginS3Key");function AA(t){let e=`${t}`;return E.MULTI_TENANCY&&(e=`${V()}/${e}`),E.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(AA,"getPluginS3Dir");var IA="budibase.log",wA="budibase-logs-history.txt",RA=xp.default.join(mn(),"systemlogs");function _A(t){return xp.default.join(RA,t)}s(_A,"getFullPath");function CA(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(CA,"getSingleFileMaxSizeInfo");function vp(){let t=CA(E.ROLLING_LOG_MAX_SIZE);return OA.createStream(IA,{size:t?.size,path:RA,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:wA,initialRotation:!1})}s(vp,"localFileDestination");function JN(){let t=[],e=_A(wA);if(ao.default.existsSync(e)){let i=ao.default.readFileSync(e,"utf-8").split(`
|
|
37
|
+
`);for(let o of i.filter(a=>a))t.push(ao.default.readFileSync(o))}return t.push(ao.default.readFileSync(_A(IA))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(JN,"getLogReadStream");function XN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(XN,"isPlainObject");function ZN(t){return t instanceof Error}s(ZN,"isError");function eP(t){return typeof t=="string"}s(eP,"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,DA.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),E.SELF_HOSTED&&r.push({stream:vp(),level:t}),Cr=r.length?(0,ku.default)(e,ku.default.multistream(r)):(0,ku.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(p=>{eP(p)&&(f=`${f} ${p}`.trimStart()),XN(p)&&d.push(p),ZN(p)&&(l=p)});let g=u(),m={};m={tenantId:i(),appId:o(),automationId:a(),identityId:g?._id,identityType:g?.type,correlationId:Tp()};let y=Pp.default.scope().active();y&&Pp.default.inject(y.context(),bA.formats.LOG,m);let h={err:l,pid:process.pid,...m};if(d.length){let p={},T=0;for(let A=0;A<d.length;A++){let _=d[A],I=_._logKey;I?(delete _._logKey,h[I]=_):(p[T]=_,T++)}Object.keys(p).length&&(h.data=p)}return[h,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Cr?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Cr?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Cr?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Cr?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Cr?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Cr?.debug(l,d)};let i=s(()=>{let c;try{c=V()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=Fe()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=Nf()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=Qt()}catch{}return c},"getIdentity")}var Mu=Cr;var tP=["AccountError"];function rP(t){return t&&t.suppressAlert}s(rP,"isSuppressed");function gn(t,e){e&&tP.includes(e.name)&&rP(e)||console.error(`bb-alert: ${t}`,e)}s(gn,"logAlert");function nP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,gn(t,n)}s(nP,"logAlertWithInfo");function hi(t,e){console.warn(`bb-warn: ${t}`,e)}s(hi,"logWarn");var Fu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},Lp=class{static{s(this,"QueuedProcessor")}constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:o=!0,maxStalledCount:a=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new yt(e,{maxStalledCount:a,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:o}}),this._queue.process(async(u,c)=>{try{let l=await this.processFn(u.data);c?.(null,l)}catch(l){l instanceof Fu&&await u.discard(),gn(`Failed to process job in ${this._queue.name}`,l),c?.(l)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await ke.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var iP=100,Bu,co=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new yt("docWritethroughQueue",{jobOptions:{attempts:iP}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){if(r.startsWith("scimlog"))return;let i=De(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},kp=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await co.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function xA(){return Bu=new co().init(),Bu}s(xA,"init");function sP(){return Bu||xA()}s(sP,"getProcessor");var Gu={};P(Gu,{CacheKey:()=>Oe,TTL:()=>gi,bustCache:()=>Ei,destroy:()=>fo,get:()=>lo,increment:()=>NA,keys:()=>Wu,store:()=>yn,withCache:()=>br,withCacheWithDynamicTTL:()=>vA});function Tt(t){let e=V();return`${t}:${e}`}s(Tt,"generateTenantKey");var En=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Wf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Tt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Tt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[Tt(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Tt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Tt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(Tt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async increment(e,r,n={useTenancy:!0}){e=n.useTenancy?Tt(e):e;let i=await this.getClient(),o=await i.increment(e);return r&&await i.setExpiry(e,r),o}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Tt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var Dr=new En,Oe={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:s(t=>`oauth2Token_${t}`,"OAUTH2_TOKEN")},gi=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(gi||{}),Wu=s((...t)=>Dr.keys(...t),"keys"),lo=s((...t)=>Dr.get(...t),"get"),yn=s((...t)=>Dr.store(...t),"store"),fo=s((...t)=>Dr.delete(...t),"destroy"),br=s((...t)=>Dr.withCache(...t),"withCache"),vA=s((...t)=>Dr.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),Ei=s((...t)=>Dr.bustCache(...t),"bustCache"),NA=s((...t)=>Dr.increment(...t),"increment");var An={};P(An,{createCode:()=>fP,deleteCode:()=>mP,getCode:()=>pP,getExistingInvites:()=>Wp,getInviteCodes:()=>BA,updateCode:()=>dP});var xr={};P(xr,{AUTO_EXTEND_POLLING_MS:()=>LA,doWithLock:()=>Sn,newRedlock:()=>Tn});var PA=W(require("redlock"));async function oP(t,e){if(t==="custom")return Tn(e);switch(t){case"try_once":return Tn(yi.TRY_ONCE);case"try_twice":return Tn(yi.TRY_TWICE);case"default":return Tn(yi.DEFAULT);case"delay_500":return Tn(yi.DELAY_500);case"auto_extend":return Tn(yi.AUTO_EXTEND);default:throw wt.unreachable(t)}}s(oP,"getClient");var yi={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function Tn(t={}){let e={...yi.DEFAULT,...t},n=(await $f()).client;return new PA.default([n],e)}s(Tn,"newRedlock");function aP(t){let r=`lock:${t.systemLock?"system":V()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(aP,"getLockName");var LA=me.fromSeconds(10).toMs();async function Sn(t,e){let r=await oP(t.type,t.customOptions),n,i,o,a=!1;try{let u=aP(t),c=t.type==="auto_extend"?LA:t.ttl;if(n=await r.lock(u,c),t.type==="auto_extend"){let d=s(()=>{i=setTimeout(async()=>{a||(o=(async()=>{n=await n.extend(c,()=>t.onExtend&&t.onExtend())})(),await o,o=void 0,d())},c/2)},"extendInIntervals");d()}return{executed:!0,result:await e()}}catch(u){if(u.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw u}else throw u}finally{a=!0,clearTimeout(i),await o?.catch(()=>{}),await n?.unlock()}}s(Sn,"doWithLock");var kA=me.fromDays(7).toSeconds(),uP=me.fromSeconds(10).toMs(),$u="Invitation is not valid or has expired, please request a new one.";function MA(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(MA,"normaliseInviteList");function cP(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(cP,"pruneExpiredInvites");async function Bp(t){let r=await(await Gs()).get(t);return MA(r,t)}s(Bp,"loadInviteList");async function po(t,e){await(await Gs()).store(t,e)}s(po,"saveInviteList");async function mo(t,e){let{result:r}=await Sn({type:"default",name:"process_user_invite",systemLock:!0,resource:t,ttl:uP},e);return r}s(mo,"withInviteListLock");function lP(t,e){return{code:t,email:e.email,info:e.info}}s(lP,"toInviteWithCode");async function FA(t,e){let r=await Gs(),n=MA(await r.get(e),e);if(!n)throw new Error($u);if(!Object.keys(n.invites).includes(t))throw new Error($u);return{list:n,invite:n.invites[t]}}s(FA,"findInviteInList");async function dP(t,e){let r={...e.info},n=r.tenantId||V();r.tenantId=n,await mo(n,async()=>{let i=await Bp(n)||{tenantId:n,invites:{}};i.invites[t]={email:e.email,info:r,expiresAt:Date.now()+kA*1e3},await po(n,i)})}s(dP,"updateCode");async function fP(t,e){let r=X(),n={...e||{}},i=n.tenantId||V();return n.tenantId=i,await mo(i,async()=>{let o=await Bp(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+kA*1e3},await po(i,o)}),r}s(fP,"createCode");async function pP(t,e){let r=e||V();return await mo(r,async()=>{let n=await FA(t,r),{list:i,invite:o}=n;if(o.expiresAt<=Date.now())throw delete i.invites[t],await po(i.tenantId,i),new Error($u);return{email:o.email,info:o.info}})}s(pP,"getCode");async function mP(t,e){let r=e||V();try{await mo(r,async()=>{let n=await FA(t,r);delete n.list.invites[t],await po(n.list.tenantId,n.list)})}catch(n){if(n instanceof Error&&n.message===$u)return;throw n}}s(mP,"deleteCode");async function BA(){let t=V(),e=await mo(t,async()=>{let n=await Bp(t)||{tenantId:t,invites:{}},i=cP(n);return n=i.list,i.changed&&await po(t,n),n}),r=new Map;for(let[n,i]of Object.entries(e.invites))r.set(n,lP(n,i));return Array.from(r.values())}s(BA,"getInviteCodes");async function Wp(t){let e=new Set(t.map(r=>r.toLowerCase()));return(await BA()).filter(r=>e.has(r.email.toLowerCase()))}s(Wp,"getExistingInvites");var Gp={};P(Gp,{createCode:()=>gP,getCode:()=>EP,invalidateCode:()=>yP});var hP=me.fromHours(1).toSeconds();async function gP(t,e){let r=X();return await(await $s()).store(r,{userId:t,info:e},hP),r}s(gP,"createCode");async function EP(t){let r=await(await $s()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(EP,"getCode");async function yP(t){await(await $s()).delete(t)}s(yP,"invalidateCode");var nr={};P(nr,{getUser:()=>vo,getUsers:()=>sk,invalidateUser:()=>No,invalidateUsers:()=>ok});var ho={};P(ho,{getPlatformDB:()=>vr,users:()=>St});var St={};P(St,{addSsoUser:()=>GA,addUser:()=>IP,getUserDoc:()=>WA,lookupTenantId:()=>TP,removeUser:()=>wP,updateUserDoc:()=>SP});function vr(){return De(pe.PLATFORM_INFO.name)}s(vr,"getPlatformDB");async function TP(t){return E.MULTI_TENANCY?(await WA(t)).tenantId:ce}s(TP,"lookupTenantId");async function WA(t){return vr().get(t)}s(WA,"getUserDoc");async function SP(t){await vr().put(t)}s(SP,"updateUserDoc");function AP(t,e){return{_id:t,tenantId:e}}s(AP,"newUserIdDoc");function _P(t,e,r){return{_id:e,userId:t,tenantId:r}}s(_P,"newUserEmailDoc");function OP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(OP,"newUserSsoIdDoc");async function $p(t,e){let r=vr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s($p,"addUserDoc");async function GA(t,e,r,n){return $p(t,()=>OP(t,e,r,n))}s(GA,"addSsoUser");async function IP(t,e,r,n){let i=[$p(e,()=>AP(e,t)),$p(r,()=>_P(e,r,t))];n&&i.push(GA(n,r,e,t)),await Promise.all(i)}s(IP,"addUser");async function wP(t){let e=vr(),r=[t._id,t.email],n=await e.allDocs({keys:r,include_docs:!0});await e.bulkRemove(n.rows.map(i=>i.doc),{silenceErrors:!0})}s(wP,"removeUser");var On={};P(On,{getAccount:()=>Nr,getAccountByTenantId:()=>Ti,getStatus:()=>RP});var $A=W(require("node-fetch"));var _n=class{static{s(this,"API")}constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";ro.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,$A.default)(`${this.host}${r}`,o)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var Vp=new _n(E.INTERNAL_ACCOUNT_PORTAL_URL),qp=E.SELF_HOSTED||E.DISABLE_ACCOUNT_PORTAL,Nr=s(async t=>{if(qp)return;let e={email:t},r=await Vp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),Ti=s(async t=>{if(qp)return;let e={tenantId:t},r=await Vp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),RP=s(async()=>{if(qp)return;let t=await Vp.get("/api/status",{headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var Ii={};P(Ii,{UserDB:()=>Ut,addAppBuilder:()=>tk,bulkGetGlobalUsersById:()=>lc,bulkUpdateGlobalUsers:()=>bo,cleanseUserObject:()=>pm,creatorsInList:()=>Lr,deriveUserFieldsFromInvite:()=>mm,doesUserExist:()=>z0,getAccountHolderFromUsers:()=>cc,getAllUserIds:()=>H0,getAllUsers:()=>Y0,getById:()=>Ur,getCreatorCount:()=>Z0,getExistingAccounts:()=>Oi,getExistingPlatformUsers:()=>I_,getExistingTenantUsers:()=>O_,getFirstPlatformUser:()=>Co,getGlobalUserByAppPage:()=>v_,getGlobalUserByEmail:()=>ut,getPlatformUsers:()=>sc,getUserCount:()=>X0,hasAdminPermissions:()=>Pr,hasAppBuilderPermissions:()=>C_,hasBuilderPermissions:()=>We,isAdmin:()=>Lt,isAdminOrBuilder:()=>R_,isAdminOrWorkspaceBuilder:()=>oc,isBuilder:()=>Ci,isCreatorAsync:()=>Do,isCreatorSync:()=>ac,isGlobalBuilder:()=>w_,paginatedUsers:()=>P_,removeAppBuilder:()=>rk,removePortalUserPermissions:()=>ek,searchExistingEmails:()=>um,searchGlobalUsersByApp:()=>x_,searchGlobalUsersByAppAccess:()=>fm,searchGlobalUsersByEmail:()=>N_,validateUniqueUser:()=>uc});var Ju={};P(Ju,{ActiveContentFileError:()=>Ku,BadRequestError:()=>Eo,BudibaseError:()=>go,EmailUnavailableError:()=>er,FeatureDisabledError:()=>Hu,ForbiddenError:()=>Qu,HTTPError:()=>Be,NotFoundError:()=>qu,NotImplementedError:()=>ju,UnexpectedError:()=>Vu,UsageLimitError:()=>Yu,getErrorMessage:()=>VA,getPublicError:()=>zu});var go=class extends Error{static{s(this,"BudibaseError")}constructor(e,r){super(e),this.code=r}};function VA(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(VA,"getErrorMessage");var zu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),Be=class t extends go{static{s(this,"HTTPError")}constructor(e,r,n="http"){super(e,n),this.status=r}static async fromResponse(e){let r=await e.text(),n=r,i=e.status,o="http";try{let a=JSON.parse(r);n=a.error?.message||a.message,i=a.status??e.status,o=a.error?.code??e.statusText}catch{}return new t(n,i,o)}},Vu=class extends Be{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},qu=class extends Be{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},Eo=class extends Be{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},Ku=class extends Eo{static{s(this,"ActiveContentFileError")}constructor(e){super(`File "${e}" contains active content which is not permitted`)}},Qu=class extends Be{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},ju=class extends Be{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},Hu=class extends Error{static{s(this,"FeatureDisabledError")}constructor(e){super(`Feature disabled: '${e}'`)}},Yu=class extends Error{static{s(this,"UsageLimitError")}constructor(e){super(`Usage limit exceeded: '${e}'`)}},er=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var Hp={};P(Hp,{PASSWORD_MAX_LENGTH:()=>Qp,PASSWORD_MIN_LENGTH:()=>Kp,validatePassword:()=>jp});var Kp=+(E.PASSWORD_MIN_LENGTH||12),Qp=+(E.PASSWORD_MAX_LENGTH||512);function jp(t){return!t||t.length<Kp?{valid:!1,error:`Password invalid. Minimum ${Kp} characters.`}:t.length>Qp?{valid:!1,error:`Password invalid. Maximum ${Qp} characters.`}:{valid:!0}}s(jp,"validatePassword");var Xu={};P(Xu,{createASession:()=>CP,endSession:()=>DP,getSession:()=>zp,getSessionsForUser:()=>yo,invalidateSessions:()=>In,updateSessionTTL:()=>Yp});var KA=require("uuid");var QA=Su();function Si(t,e){return`${t}/${e}`}s(Si,"makeSessionID");async function yo(t){return t?(await(await Ar()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(yo,"getSessionsForUser");async function In(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await yo(t)).map(a=>({key:Si(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:Si(t,o)}))),i&&i.length>0){let o=await Ar(),a=[];for(let u of i)a.push(o.delete(u.key));E.isTest()||hi(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(In,"invalidateSessions");async function CP(t,e){let r=await yo(t),n=0;if(r.length>=3){let l=r.sort((g,m)=>new Date(g.createdAt).getTime()-new Date(m.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(g=>g.sessionId);n=f.length,await In(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await Ar(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,KA.v4)(),u=Si(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,QA),{session:c,invalidatedSessionCount:n}}s(CP,"createASession");async function Yp(t){let e=await Ar(),r=Si(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,QA)}s(Yp,"updateSessionTTL");async function DP(t,e){await(await Ar()).delete(Si(t,e))}s(DP,"endSession");async function zp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Ar()).get(Si(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(zp,"getSession");var wn={};P(wn,{account:()=>XA,action:()=>ZA,ai:()=>e_,analytics:()=>Jp,app:()=>t_,asyncEventQueue:()=>At,auditLog:()=>r_,auth:()=>ic,automation:()=>n_,backfill:()=>i_,backfillCache:()=>tc,backup:()=>s_,datasource:()=>o_,email:()=>a_,environmentVariable:()=>u_,group:()=>c_,identification:()=>_t,initAsyncEvents:()=>L0,installation:()=>Ao,layout:()=>l_,license:()=>d_,org:()=>f_,plugin:()=>p_,processors:()=>nm,publishEvent:()=>S,query:()=>m_,resource:()=>h_,role:()=>Ro,rowAction:()=>g_,rows:()=>E_,screen:()=>y_,serve:()=>T_,shutdown:()=>U0,table:()=>S_,user:()=>Ce,view:()=>A_,workspace:()=>__});var Jp={};P(Jp,{enabled:()=>bP});var bP=s(async()=>Zu(),"enabled");var At;function ec(){At=new yt("systemEventQueue",{jobTags:s(t=>({"event.name":t.event}),"jobTags")})}s(ec,"init");async function jA(){At&&await At.close()}s(jA,"shutdown");async function HA(t){At||ec();let{event:e,identity:r}=t;mh.indexOf(e)!==-1&&r.tenantId&&await At.add(t)}s(HA,"publishAsyncEvent");var tc={};P(tc,{end:()=>vP,isAlreadySent:()=>em,isBackfillingEvent:()=>Zp,recordEvent:()=>Xp,start:()=>xP});var xP=s(async t=>PP({eventWhitelist:t}),"start"),Xp=s(async(t,e)=>{let r=tm(t,e);await yn(r,e,void 0,{useTenancy:!1})},"recordEvent"),vP=s(async()=>{await LP(),await UP()},"end"),NP=s(async()=>lo(Oe.BACKFILL_METADATA),"getBackfillMetadata"),PP=s(async t=>yn(Oe.BACKFILL_METADATA,t),"saveBackfillMetadata"),LP=s(async()=>{await fo(Oe.BACKFILL_METADATA)},"deleteBackfillMetadata"),UP=s(async()=>{let t=tm(),e=await Wu(t);for(let r of e)await fo(r,{useTenancy:!1})},"clearEvents"),Zp=s(async t=>{let r=(await NP())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),em=s(async(t,e)=>{let r=tm(t,e);return!!await lo(r,{useTenancy:!1})},"isAlreadySent"),kP={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},tm=s((t,e)=>{let r,n=V();if(t){r=`${Oe.EVENTS}:${n}:${t}`;let i=kP[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${Oe.EVENTS}:${n}:*`;return r},"getEventKey");var nm={};P(nm,{init:()=>GP,processors:()=>rr});var rm=E.SELF_HOSTED&&!E.isDev(),To=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){rm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){rm||console.log("[audit] identified",e)}async identifyGroup(e){rm||console.log("[audit] group identified",e)}async shutdown(){}};var Ai=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new yt("auditLogQueue",{jobTags:s(n=>({"event.name":n.event}),"jobTags")}),t.auditLogQueue.process(async n=>{await be(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};E.ENABLE_AUDIT_LOG_IP_ADDR&&(o=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&sp(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:Fe(),hostInfo:r.hostInfo},tenantId:V()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var YA=require("uuid");var MP=new _n(E.INTERNAL_ACCOUNT_PORTAL_URL),_i=class t{static{s(this,"EventBrokerProcessor")}static init(e){t.getLicenseKeyFn=e}async processEvent(e,r,n,i){if(E.DISABLE_ACCOUNT_PORTAL)return;let o;if(E.SELF_HOSTED){if(!t.getLicenseKeyFn)return;let c=await t.getLicenseKeyFn();if(!c)return;o={"x-budibase-license-key":c}}else o={"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY},r.tenantId&&(o["x-budibase-tenant-id"]=r.tenantId);let a=Fe(),u={id:(0,YA.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 MP.post("/api/v2/analytics/event",{headers:o,body:u});c.ok||console.warn(`[EventBrokerProcessor] unexpected response status: ${c.status}`)}catch(c){console.error(`[EventBrokerProcessor] failed to send event: ${c}`)}}};var So=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var FP=new To,BP=new Ai,WP=new _i;function GP(t,e){return _i.init(e),Ai.init(t)}s(GP,"init");var rr=new So([FP,BP,WP]);var rc={};P(rc,{checkInstallVersion:()=>qP,getInstall:()=>_o,getInstallFromDB:()=>sm});var im=W(require("semver"));var _o=s(async()=>br(Oe.INSTALLATION,86400,sm,{useTenancy:!1}),"getInstall");async function $P(t){let e={_id:pe.PLATFORM_INFO.docs.install,installId:X(),version:E.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return sm();throw r}}s($P,"createInstallDoc");var sm=s(async()=>je(pe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(pe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await $P(t);else throw r}return e}),"getInstallFromDB"),VP=s(async t=>{try{await je(pe.PLATFORM_INFO.name,async e=>{let r=await _o();r.version=t,await e.put(r),await Ei(Oe.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),qP=s(async()=>{let t=await _o(),e=t.version,r=E.VERSION;try{if(e!==r){let n=im.default.gt(r,e),i=im.default.lt(r,e);await VP(r)&&(await Us({_id:t.installId,type:"installation"},async()=>{n?await Ao.upgraded(e,r):i&&await Ao.downgraded(e,r)}),await _t.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?gn(`Invalid version "${r}" - is it semver?`):gn("Failed to retrieve version",n)}},"checkInstallVersion");var KP=s(async()=>{let t=mf(),e=wo(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await Rn(),i=Oo();return{id:zA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await Rn(),i=await nc(V()),o=Oo();return{id:zA(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:V(),environment:e}}else if(r==="user"){let n=t,i=await nc(V()),o=await Rn(),a=n.account,u;return a?u=a.hosting:u=Oo(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:V(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),QP=s(async(t,e)=>{let r=t,n="installation",i=Oo(),o=E.VERSION,a=wo(),u={id:r,type:n,hosting:i,version:o,environment:a};await om(u,e),await Io({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),jP=s(async(t,e,r,n=E.VERSION)=>{let i=await nc(t),o="tenant",a=await Rn(),u=wo(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await om(c,r),await Io({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),HP=s(async(t,e,r)=>{let n=t._id,i=await nc(t.tenantId),o="user",a=We(t),u=Pr(t),c;vn(t)&&(c=t.providerType);let d=(await Oi([t.email])).length>0,f=!!e&&d&&e.verified,g=await Rn(),m=e?e.hosting:Oo(),y=wo();await Io({id:n,type:o,hosting:m,installationId:g,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:y},r)},"identifyUser"),YP=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ho(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await Rn(),l=wo();if(jo(t)){let f=await ut(t.email);f?._id&&(e=f._id)}await Io({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),Io=s(async(t,e)=>{await rr.identify(t,e)},"identify"),om=s(async(t,e)=>{await rr.identifyGroup(t,e)},"identifyGroup"),wo=s(()=>E.isDev()?"development":E.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),Oo=s(()=>E.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),Rn=s(async()=>zP()?"account-portal":(await _o()).installId,"getInstallationId"),nc=s(async t=>E.SELF_HOSTED?JA(t):t,"getEventTenantId"),JA=s(async t=>be(t,()=>br(Oe.UNIQUE_TENANT_ID,86400,async()=>{let e=z(),r=await wi(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${X()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=E.VERSION,await e.put(r),n)})),"getUniqueTenantId"),zP=s(()=>E.SERVICE==="account-portal","isAccountPortal"),zA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),_t={getCurrentIdentity:KP,identifyInstallationGroup:QP,identifyTenantGroup:jP,identifyUser:HP,identifyAccount:YP,identify:Io,identifyGroup:om,getInstallationId:Rn,getUniqueTenantId:JA};var S=s(async(t,e,r,n)=>{let i=n||await _t.getCurrentIdentity();if(!(n?!1:await Zp(t))){await HA({event:t,identity:i,properties:e,timestamp:r}),await rr.processEvent(t,i,e,r);return}await em(t,e)||(await rr.processEvent(t,i,e,r),await Xp(t,e))},"publishEvent");async function JP(t,e){let r={tenantId:t.tenantId};await S("account:created",r,void 0,e)}s(JP,"created");async function XP(t){let e={tenantId:t.tenantId};await S("account:deleted",e)}s(XP,"deleted");async function ZP(t){let e={tenantId:t.tenantId};await S("account:verified",e)}s(ZP,"verified");var XA={created:JP,deleted:XP,verified:ZP};function eL(t,e){S("action:automation_step:executed",t,e).catch(r=>{console.error("automationStepExecuted telemetry failed",{action:t,err:r})})}s(eL,"automationStepExecuted");function tL(t){S("action:automation_step:failed",t).catch(e=>{console.error("automationStepFailed telemetry failed",{action:t,err:e})})}s(tL,"automationStepFailed");function rL(t,e){S("action:crud:executed",t,e).catch(r=>{console.error("crudExecuted telemetry failed",{action:t,err:r})})}s(rL,"crudExecuted");function nL(t){S("action:crud:failed",t).catch(e=>{console.error("crudFailed telemetry failed",{action:t,err:e})})}s(nL,"crudFailed");function iL(t,e){S("action:ai_agent:executed",t,e).catch(r=>{console.error("aiAgentExecuted telemetry failed",{action:t,err:r})})}s(iL,"aiAgentExecuted");function sL(t){S("action:ai_agent:failed",t).catch(e=>{console.error("aiAgentFailed telemetry failed",{action:t,err:e})})}s(sL,"aiAgentFailed");var ZA={aiAgentExecuted:iL,aiAgentFailed:sL,automationStepExecuted:eL,automationStepFailed:tL,crudExecuted:rL,crudFailed:nL};function oL(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(oL,"configCreated");function aL(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(aL,"configUpdated");function uL(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(uL,"configDeleted");function cL(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(cL,"agentCreated");function lL(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(lL,"agentUpdated");function dL(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(dL,"agentDeleted");function fL(t){S("rag:file:uploaded",t).catch(e=>{console.error("ragFileUploaded telemetry failed",{event:t,err:e})})}s(fL,"ragFileUploaded");function pL(t){S("rag:file:deleted",t).catch(e=>{console.error("ragFileDeleted telemetry failed",{event:t,err:e})})}s(pL,"ragFileDeleted");function mL(t){S("rag:file:sharepoint:connected",t).catch(e=>{console.error("ragFileSharePointConnected telemetry failed",{event:t,err:e})})}s(mL,"ragFileSharePointConnected");function hL(t){S("rag:file:sharepoint:disconnected",t).catch(e=>{console.error("ragFileSharePointDisconnected telemetry failed",{event:t,err:e})})}s(hL,"ragFileSharePointDisconnected");function gL(t){S("rag:file:processed",t).catch(e=>{console.error("ragFileProcessed telemetry failed",{event:t,err:e})})}s(gL,"ragFileProcessed");function EL(t){S("rag:file:sharepoint:sync",t).catch(e=>{console.error("ragFileSharePointSync telemetry failed",{event:t,err:e})})}s(EL,"ragFileSharePointSync");var e_={configCreated:oL,configUpdated:aL,configDeleted:uL,agentCreated:cL,agentUpdated:lL,agentDeleted:dL,ragFileUploaded:fL,ragFileDeleted:pL,ragFileSharePointConnected:mL,ragFileSharePointDisconnected:hL,ragFileSharePointSync:EL,ragFileProcessed:gL};var yL=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 TL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await S("app:updated",e)}s(TL,"updated");async function SL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:deleted",e)}s(SL,"deleted");async function AL(t,e){let r={appId:t.appId,audited:{name:t.name}};await S("app:published",r,e)}s(AL,"published");async function _L(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:unpublished",e)}s(_L,"unpublished");async function OL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:file:imported",e)}s(OL,"fileImported");async function IL(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await S("app:duplicated",r)}s(IL,"duplicated");async function wL(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await S("app:template:imported",r)}s(wL,"templateImported");async function RL(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await S("app:version:updated",n)}s(RL,"versionUpdated");async function CL(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await S("app:version:reverted",n)}s(CL,"versionReverted");async function DL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:reverted",e)}s(DL,"reverted");async function bL(t){let e={appId:t.appId,audited:{name:t.name}};await S("app:exported",e)}s(bL,"exported");var t_={created:yL,updated:TL,deleted:SL,published:AL,unpublished:_L,fileImported:OL,duplicated:IL,templateImported:wL,versionUpdated:RL,versionReverted:CL,reverted:DL,exported:bL};async function xL(t){let e={filters:t};await S("audit_log:filtered",e)}s(xL,"filtered");async function vL(t){let e={filters:t};await S("audit_log:downloaded",e)}s(vL,"downloaded");var r_={filtered:xL,downloaded:vL};async function NL(t,e){let n={userId:(await _t.getCurrentIdentity()).id,source:t,audited:{email:e}};await S("auth:login",n)}s(NL,"login");async function PL(t){let r={userId:(await _t.getCurrentIdentity()).id,audited:{email:t}};await S("auth:logout",r)}s(PL,"logout");async function LL(t,e){let r={type:t};await S("auth:sso:created",r,e)}s(LL,"SSOCreated");async function UL(t){let e={type:t};await S("auth:sso:updated",e)}s(UL,"SSOUpdated");async function kL(t,e){let r={type:t};await S("auth:sso:activated",r,e)}s(kL,"SSOActivated");async function ML(t){let e={type:t};await S("auth:sso:deactivated",e)}s(ML,"SSODeactivated");var ic={login:NL,logout:PL,SSOCreated:LL,SSOUpdated:UL,SSOActivated:kL,SSODeactivated:ML};async function FL(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(FL,"created");async function BL(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(BL,"triggerUpdated");async function WL(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(WL,"deleted");async function GL(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(GL,"tested");var $L=s(async(t,e)=>{let r={count:t};await S("automations:run",r,e)},"run");async function VL(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(VL,"stepCreated");async function qL(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(qL,"stepDeleted");var n_={created:FL,triggerUpdated:BL,deleted:WL,tested:GL,run:$L,stepCreated:VL,stepDeleted:qL};var Ri=!E.SELF_HOSTED&&!E.isDev();async function KL(t){Ri||await S("app:backfill:succeeded",t)}s(KL,"appSucceeded");async function QL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("app:backfill:failed",e)}s(QL,"appFailed");async function jL(t){Ri||await S("tenant:backfill:succeeded",t)}s(jL,"tenantSucceeded");async function HL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("tenant:backfill:failed",e)}s(HL,"tenantFailed");async function YL(){if(Ri)return;let t={};await S("installation:backfill:succeeded",t)}s(YL,"installationSucceeded");async function zL(t){if(Ri)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await S("installation:backfill:failed",e)}s(zL,"installationFailed");var i_={appSucceeded:KL,appFailed:QL,tenantSucceeded:jL,tenantFailed:HL,installationSucceeded:YL,installationFailed:zL};async function JL(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await S("app:backup:restored",e)}s(JL,"workspaceBackupRestored");async function XL(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await S("app:backup:triggered",o)}s(XL,"workspaceBackupTriggered");var s_={workspaceBackupRestored:JL,workspaceBackupTriggered:XL};function am(t){return!Object.values(Vo).includes(t.source)}s(am,"isCustom");async function ZL(t,e){let r={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:created",r,e)}s(ZL,"created");async function eU(t){let e={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:updated",e)}s(eU,"updated");async function tU(t){let e={datasourceId:t._id,source:t.source,custom:am(t)};await S("datasource:deleted",e)}s(tU,"deleted");var o_={created:ZL,updated:eU,deleted:tU};async function rU(t){let e={};await S("email:smtp:created",e,t)}s(rU,"SMTPCreated");async function nU(){let t={};await S("email:smtp:updated",t)}s(nU,"SMTPUpdated");var a_={SMTPCreated:rU,SMTPUpdated:nU};async function iU(t,e){let r={name:t,environments:e};await S("environment_variable:created",r)}s(iU,"created");async function sU(t){let e={name:t};await S("environment_variable:deleted",e)}s(sU,"deleted");async function oU(t){let e={userId:t};await S("environment_variable:upgrade_panel_opened",e)}s(oU,"upgradePanelOpened");var u_={created:iU,deleted:sU,upgradePanelOpened:oU};async function aU(t,e){let r={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:created",r,e)}s(aU,"created");async function uU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:updated",e)}s(uU,"updated");async function cU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await S("user_group:deleted",e)}s(cU,"deleted");async function lU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await S("user_group:user_added",n)}s(lU,"usersAdded");async function dU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await S("user_group:users_deleted",n)}s(dU,"usersDeleted");async function fU(t){let e={groupId:t,onboarding:!0};await S("user_group:onboarding_added",e)}s(fU,"createdOnboarding");async function pU(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await S("user_group:permissions_edited",e)}s(pU,"permissionsEdited");var c_={created:aU,updated:uU,deleted:cU,usersAdded:lU,usersDeleted:dU,createdOnboarding:fU,permissionsEdited:pU};async function mU(t){let e={currentVersion:t};await S("installation:version:checked",e)}s(mU,"versionChecked");async function hU(t,e){let r={from:t,to:e};await S("installation:version:upgraded",r)}s(hU,"upgraded");async function gU(t,e){let r={from:t,to:e};await S("installation:version:downgraded",r)}s(gU,"downgraded");async function EU(){let t={};await S("installation:firstStartup",t)}s(EU,"firstStartup");var Ao={versionChecked:mU,upgraded:hU,downgraded:gU,firstStartup:EU};async function yU(t,e){let r={layoutId:t._id};await S("layout:created",r,e)}s(yU,"created");async function TU(t){let e={layoutId:t};await S("layout:deleted",e)}s(TU,"deleted");var l_={created:yU,deleted:TU};async function SU(t,e){let r={accountId:t.accountId,...e};await S("license:plan:changed",r)}s(SU,"planChanged");async function AU(t){let e={accountId:t.accountId};await S("license:activated",e)}s(AU,"activated");async function _U(t){let e={accountId:t.accountId};await S("license:checkout:opened",e)}s(_U,"checkoutOpened");async function OU(t){let e={accountId:t.accountId};await S("license:checkout:success",e)}s(OU,"checkoutSuccess");async function IU(t){let e={accountId:t.accountId};await S("license:portal:opened",e)}s(IU,"portalOpened");async function wU(t){let e={accountId:t.accountId};await S("license:payment:failed",e)}s(wU,"paymentFailed");async function RU(t){let e={accountId:t.accountId};await S("license:payment:recovered",e)}s(RU,"paymentRecovered");var d_={planChanged:SU,activated:AU,checkoutOpened:_U,checkoutSuccess:OU,portalOpened:IU,paymentFailed:wU,paymentRecovered:RU};async function CU(t){let e={};await S("org:info:name:updated",e,t)}s(CU,"nameUpdated");async function DU(t){let e={};await S("org:info:logo:updated",e,t)}s(DU,"logoUpdated");async function bU(t){let e={};await S("org:platformurl:updated",e,t)}s(bU,"platformURLUpdated");async function xU(){let t={};await S("analytics:opt:out",t)}s(xU,"analyticsOptOut");async function vU(){let t={};await S("analytics:opt:out",t)}s(vU,"analyticsOptIn");var f_={nameUpdated:CU,logoUpdated:DU,platformURLUpdated:bU,analyticsOptOut:xU,analyticsOptIn:vU};async function NU(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await S("plugin:init",e)}s(NU,"init");async function PU(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(PU,"imported");async function LU(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(LU,"deleted");var p_={init:NU,imported:PU,deleted:LU};var UU=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"),kU=s(async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await S("query:updated",r)},"updated"),MU=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"),FU=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await S("query:import",n)},"imported"),BU=s(async(t,e)=>{let r={count:t};await S("queries:run",r,e)},"run"),WU=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await S("query:previewed",r)},"previewed"),m_={created:UU,updated:kU,deleted:MU,imported:FU,run:BU,previewed:WU};async function GU({resource:t,fromWorkspace:e,toWorkspace:r},n){let i={resource:t,fromWorkspace:e,toWorkspace:r};await S("resource:copied_to_workspace",i,n)}s(GU,"duplicatedToWorkspace");var h_={duplicatedToWorkspace:GU};async function $U(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:created",r,e)}s($U,"created");async function VU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:updated",e)}s(VU,"updated");async function qU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await S("role:deleted",e)}s(qU,"deleted");async function KU(t,e,r){let n={userId:t._id,roleId:e};await S("role:assigned",n,r)}s(KU,"assigned");async function QU(t,e){let r={userId:t._id,roleId:e};await S("role:unassigned",r)}s(QU,"unassigned");var Ro={created:$U,updated:VU,deleted:qU,assigned:KU,unassigned:QU};async function jU(t,e){await S("row_action:created",t,e)}s(jU,"created");var g_={created:jU};var HU=s(async(t,e)=>{let r={count:t};await S("rows:created",r,e)},"created"),YU=s(async(t,e)=>{let r={tableId:t._id,count:e};await S("rows:imported",r)},"imported"),E_={created:HU,imported:YU};async function zU(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(zU,"created");async function JU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await S("screen:deleted",e)}s(JU,"deleted");var y_={created:zU,deleted:JU};async function XU(t){let e={timezone:t};await S("served:builder",e)}s(XU,"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 e0(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await S("served:app:preview",r)}s(e0,"servedAppPreview");var T_={servedBuilder:XU,servedApp:ZU,servedAppPreview:e0};async function t0(t,e){let r={tableId:t._id,audited:{name:t.name}};await S("table:created",r,e)}s(t0,"created");async function r0(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(r0,"updated");async function n0(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await S("table:deleted",r)}s(n0,"deleted");async function i0(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await S("table:exported",r)}s(i0,"exported");async function s0(t){let e={tableId:t._id,audited:{name:t.name}};await S("table:imported",e)}s(s0,"imported");var S_={created:t0,updated:r0,deleted:n0,exported:i0,imported:s0};async function o0(t,e){let r={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:created",r,e)}s(o0,"created");async function a0(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:updated",e)}s(a0,"updated");async function u0(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await S("user:deleted",e)}s(u0,"deleted");async function c0(t,e){let r={userId:t._id,audited:{email:t.email}};await S("user:admin:assigned",r,e)}s(c0,"permissionAdminAssigned");async function l0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:admin:removed",e)}s(l0,"permissionAdminRemoved");async function d0(t,e){let r={userId:t._id,audited:{email:t.email}};await S("user:builder:assigned",r,e)}s(d0,"permissionBuilderAssigned");async function f0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:builder:removed",e)}s(f0,"permissionBuilderRemoved");async function p0(t){let e={audited:{email:t}};await S("user:invited",e)}s(p0,"invited");async function m0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:invite:accepted",e)}s(m0,"inviteAccepted");async function h0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:force:reset",e)}s(h0,"passwordForceReset");async function g0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:updated",e)}s(g0,"passwordUpdated");async function E0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:reset:requested",e)}s(E0,"passwordResetRequested");async function y0(t){let e={userId:t._id,audited:{email:t.email}};await S("user:password:reset",e)}s(y0,"passwordReset");async function T0(t){let e={users:t};await S("user:data:collaboration",e)}s(T0,"dataCollaboration");var Ce={created:o0,updated:a0,deleted:u0,permissionAdminAssigned:c0,permissionAdminRemoved:l0,permissionBuilderAssigned:d0,permissionBuilderRemoved:f0,invited:p0,inviteAccepted:m0,passwordForceReset:h0,passwordUpdated:g0,passwordResetRequested:E0,passwordReset:y0,dataCollaboration:T0};async function S0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await S("view:created",r,e)}s(S0,"created");async function A0(t){let e={tableId:t.tableId};await S("view:updated",e)}s(A0,"updated");async function _0(t,e){let r={...ke.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await S("view:deleted",r)}s(_0,"deleted");async function O0(t,e){let r={tableId:t._id,format:e};await S("view:exported",r)}s(O0,"exported");async function I0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await S("view:filter:created",n,r)}s(I0,"filterCreated");async function w0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await S("view:filter:updated",r)}s(w0,"filterUpdated");async function R0(t){let e={tableId:t.tableId};await S("view:filter:deleted",e)}s(R0,"filterDeleted");async function C0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await S("view:calculation:created",n,r)}s(C0,"calculationCreated");async function D0(t){let e={tableId:t.tableId,calculation:t.calculation};await S("view:calculation:updated",e)}s(D0,"calculationUpdated");async function b0(t){let e={tableId:t.tableId,calculation:t.calculation};await S("view:calculation:deleted",e)}s(b0,"calculationDeleted");async function x0(t,e){let r={tableId:t};await S("view:join:created",r,e)}s(x0,"viewJoinCreated");var A_={created:S0,updated:A0,deleted:_0,exported:O0,filterCreated:I0,filterUpdated:w0,filterDeleted:R0,calculationCreated:C0,calculationUpdated:D0,calculationDeleted:b0,viewJoinCreated:x0};async function v0(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(v0,"appCreated");async function N0(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(N0,"appUpdated");async function P0(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(P0,"appDeleted");var __={appCreated:v0,appUpdated:N0,appDeleted:P0};function L0(){}s(L0,"initAsyncEvents");var U0=s(async()=>{await rr.shutdown(),console.log("Events shutdown")},"shutdown");var cm={};P(cm,{creatorsInList:()=>Lr,getAccountHolderFromUsers:()=>cc,hasAdminPermissions:()=>Pr,hasAppBuilderPermissions:()=>C_,hasBuilderPermissions:()=>We,isAdmin:()=>Lt,isAdminOrBuilder:()=>R_,isAdminOrWorkspaceBuilder:()=>oc,isBuilder:()=>Ci,isCreatorAsync:()=>Do,isCreatorSync:()=>ac,isGlobalBuilder:()=>w_,validateUniqueUser:()=>uc});async function um(t){let e=[],r=await O_(t);e.push(...r.map(a=>a.email));let n=await I_(t);e.push(...n.map(a=>a._id));let i=await Oi(t);e.push(...i.map(a=>a.email));let o=await Wp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(um,"searchExistingEmails");async function sc(t){return await js("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(sc,"getPlatformUsers");async function Co(t){return(await sc(t))[0]??null}s(Co,"getFirstPlatformUser");async function O_(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(O_,"getExistingTenantUsers");async function I_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await js("platform_users_lowercase_2",r)}s(I_,"getExistingPlatformUsers");async function Oi(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await js("account_by_email",r)}s(Oi,"getExistingAccounts");var Ci=Me.users.isBuilder,Lt=Me.users.isAdmin,w_=Me.users.isGlobalBuilder,R_=Me.users.isAdminOrBuilder,Pr=Me.users.hasAdminPermissions,We=Me.users.hasBuilderPermissions,C_=Me.users.hasAppBuilderPermissions,oc=Me.users.isAdminOrWorkspaceBuilder;async function Lr(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await z().getMultiple(r,{allowMissing:!0}),t.map(i=>ac(i,e))}s(Lr,"creatorsInList");async function Do(t){let e=[];return t.userGroups&&(e=await z().getMultiple(t.userGroups)),ac(t,e)}s(Do,"isCreatorAsync");function ac(t,e){let r=Me.users.isCreator(t);return!r&&t?k0(t,e):r}s(ac,"isCreatorSync");function k0(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(k0,"isCreatorByGroupMembership");async function uc(t,e){if(E.MULTI_TENANCY){let r=await Co(t);if(r!=null&&r.tenantId!==e)throw new er(t)}if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let r=await Nr(t);if(r&&r.verified&&r.tenantId!==e)throw new er(t)}}s(uc,"validateUniqueUser");async function cc(t){if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let e=await Oi(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(cc,"getAccountHolderFromUsers");var lm=s(async t=>{await Ce.deleted(t),We(t)&&await Ce.permissionBuilderRemoved(t),Pr(t)&&await Ce.permissionAdminRemoved(t)},"handleDeleteEvents"),M0=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ro.assigned(t,i)},"assignAppRoleEvents"),F0=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ro.unassigned(t,i)},"unassignAppRoleEvents"),B0=s(async(t,e)=>{let r=t.roles,n=e?.roles;await M0(t,r,n),await F0(t,r,n)},"handleAppRoleEvents"),dm=s(async(t,e,r)=>{let n=r;!n&&!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL&&(n=await Ti(V())),await _t.identifyUser(t,n),e?(await Ce.updated(t),G0(t,e)&&await Ce.permissionBuilderRemoved(t),V0(t,e)&&await Ce.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Ce.passwordForceReset(t),t.password!==e.password&&await Ce.passwordUpdated(t)):await Ce.created(t),W0(t,e)&&await Ce.permissionBuilderAssigned(t),$0(t,e)&&await Ce.permissionAdminAssigned(t),await B0(t,e)},"handleSaveEvents"),W0=s((t,e)=>D_(t,e,We),"isAddingBuilder"),G0=s((t,e)=>b_(t,e,We),"isRemovingBuilder"),$0=s((t,e)=>D_(t,e,Pr),"isAddingAdmin"),V0=s((t,e)=>b_(t,e,Pr),"isRemovingAdmin"),D_=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),b_=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var Q0=s(async t=>{let e=t._id;await St.removeUser(t),await lm(t),await nr.invalidateUser(e),await In(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),Ut=class t{static{s(this,"UserDB")}static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return E.ENABLE_SSO_MAINTENANCE_MODE&&Lt(e)?!1:await t.features.isSSOEnforced()||vn(e)?!0:(r||(r=await Ti(V())),!!(r&&r.email===e.email&&Ho(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,o){let{password:a,_id:u}=e;i&&!i.password&&(r.requirePassword=!1);let c;if(a&&a!==i?.password){if(await t.isPreventPasswordActions(e,o))throw new Be("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=jp(a);if(!f.valid)throw new Be(f.error,400)}c=r.hashPassword?await df(a):a}else i&&(c=i.password);let l=r.requirePassword&&!await t.features.isSSOEnforced();if(!c&&l)throw"Password must be specified.";u=u||ai();let d={createdAt:Date.now(),...i,...e,_id:u,password:c,tenantId:n};return d.roles||(d.roles={}),d.status==null&&(d.status="active"),d}static async allUsers(){return(await z().allDocs(fn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByWorkspace(e){if(typeof e!="string"||!e)throw new Error("Must provide a string based workspace ID");return{userCount:(await Hs("by_app",ui(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await fm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return ut(e)}static async getUser(e){let r=await Ur(e);return r&&delete r.password,r}static async bulkGet(e){return await lc(e)}static async bulkUpdate(e){let r=await bo(e);return await nr.invalidateUsers(e.map(n=>n._id)),r}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=V(),i=z(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await Ur(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!l&&o&&(l=await ut(o),l&&l._id!==a))throw new er(o);let d=!l,f=!!l&&!!o&&l.email!==o,g=!r.isAccountHolder&&!!o&&(d||f),m=[...u];if(d&&m.length===0){let p=await t.groups.getDefaultGroup?.();p?._id&&(m=[p._id])}let y=1,h=0;if((r.isAccountHolder||l)&&(y=0,h=1),l){let[p,T]=await Lr([l,e]);h=p!==T?1:0}else if(!r.isAccountHolder){let p=m.length>0?{...e,userGroups:m}:e;h=(await Lr([p]))[0]?1:0}return t.quotas.addUsers(y,h,async()=>{g&&await uc(o,n);let p=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(p=pm(p,l)),!l&&c?.length&&(p.roles={...c});let T=[];if(d){m.length>0&&(p.userGroups=m);for(let A of m)T.push(t.groups.addUsers(A,[p._id]))}try{let A=await i.put(p);return p._rev=A.rev,await dm(p,l),l&&p.email!==l.email&&await St.removeUser({email:l.email}),await St.addUser(n,p._id,p.email,p.ssoId),await nr.invalidateUser(A.id),await Promise.all(T),i.get(p._id)}catch(A){throw A.status===409?"User exists already":A}})}static async bulkCreate(e,r){let n=V(),i=[],o=[],a=[],u=e.map(y=>y.email),c=await um(u),l=[],d=!!r?.length,f=d?[...r]:[];if(!d){let y=await t.groups.getDefaultGroup?.();y?._id&&(f=[y._id])}for(let y of e){let h=o.find(T=>T.email.toLowerCase()===y.email.toLowerCase()),p=c.includes(y.email.toLowerCase());if(h||p){l.push({email:y.email,reason:"Unavailable"});continue}y.userGroups=[...f],o.push(y),await Do(y)&&a.push(y)}let g=await Ti(n),m=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let p of o)m&&delete p.password,i.push(t.buildUser(p,{hashPassword:!0,requirePassword:!m},n,void 0,g));let y=await Promise.all(i);await bo(y);for(let p of y)await St.addUser(n,p._id,p.email),await dm(p,void 0,g);let h=y.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(h)&&f.length){let p=[],T=h.map(A=>A._id);for(let A of f)p.push(t.groups.addUsers(A,T));await Promise.all(p)}return{successful:h,unsuccessful:l}})}static async bulkDelete(e){let r=z(),n={successful:[],unsuccessful:[]},i=await cc(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),u=a.map(m=>({...m,_deleted:!0})),c=await bo(u),d=(await Lr(a)).filter(m=>m).length,f=[];for(let m of a){let h=(await Co(m._id)).ssoId;h&&(await sc(h)).filter(T=>T.ssoId==null).forEach(T=>{f.push({...T,_deleted:!0})}),await Q0(m)}await vr().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let g={};return a.reduce((m,y)=>(m[y._id]=y,m),g),c.forEach(m=>{let y=g[m.id].email;m.ok?n.successful.push({_id:m.id,email:y}):n.unsuccessful.push({_id:m.id,email:y,reason:"Database error"})}),n}static async destroy(e){let r=z(),n=await r.get(e),i=n._id;if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Nr(a))throw n.userId===Qt()._id?new Be('Please visit "Account" to delete this user',400):new Be("Account holder cannot be deleted",400)}await St.removeUser(n),await r.remove(i,n._rev);let o=await Do(n)?1:0;await t.quotas.removeUsers(1,o),await lm(n),await nr.invalidateUser(i),await In(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,o={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(o.ssoId=n.ssoId),await Ei(Oe.CHECKLIST),await t.save(o,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function xo(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(xo,"removeUserPassword");async function lc(t,e){let n=(await z().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=xo(n)),n}s(lc,"bulkGetGlobalUsersById");async function H0(){let t=z(),e=`us${"_"}`;return(await t.allDocs({startkey:e,endkey:`${e}${"\uFFF0"}`})).rows.map(n=>n.id)}s(H0,"getAllUserIds");async function Y0(){let t=z(),e=`us${"_"}`;return(await t.allDocs({startkey:e,endkey:`${e}${"\uFFF0"}`,include_docs:!0})).rows.map(n=>n.doc)}s(Y0,"getAllUsers");async function bo(t){return await z().bulkDocs(t)}s(bo,"bulkUpdateGlobalUsers");async function Ur(t,e){let n=await z().get(t);return e?.cleanup&&(n=xo(n)),n}s(Ur,"getById");async function ut(t,e){if(t==null)throw"Must supply an email address to view";let r=await Ht("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=xo(n)),n}s(ut,"getGlobalUserByEmail");async function z0(t){try{let e=await ut(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(z0,"doesUserExist");async function x_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ui(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await Ht("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=xo(o)),o}s(x_,"searchGlobalUsersByApp");async function fm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let a={[r]:{$exists:!0}};n.push(a)}return(await z().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(fm,"searchGlobalUsersByAppAccess");function v_(t,e){if(e)return Eu(He(t),e._id)}s(v_,"getGlobalUserByAppPage");async function N_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,o=await Ht("by_email2",{...e,startkey:i,endkey:`${n}${"\uFFF0"}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=xo(a)),a}s(N_,"searchGlobalUsersByEmail");var J0=8;async function P_({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 Ur(e.equal._id)]:r?(c=await x_(r,u),d=s(f=>v_(r,f),"getKey")):e?.string?.email?(c=await N_(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await lc(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(fn(null,{...u,limit:void 0}))).rows.map(g=>g.doc),c=Er.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(fn(null,u))).rows.map(g=>g.doc),Yf(c,o,{paginate:!0,property:l,getKey:d})}s(P_,"paginatedUsers");async function X0(){return(await Hs("by_email2",{limit:0,include_docs:!1})).total_rows}s(X0,"getUserCount");async function Z0(){let t=0;async function e(r){let n=await P_({bookmark:r}),i=await Lr(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(Z0,"getCreatorCount");function ek(t){return delete t.admin,delete t.builder,t}s(ek,"removePortalUserPermissions");function pm(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}s(pm,"cleanseUserObject");async function tk(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(tk,"addAppBuilder");async function rk(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(rk,"removeAppBuilder");function mm(t){let e=t.apps||{},r=Object.keys(e).filter(u=>e[u]==="CREATOR"),n=[...t.builder?.apps||[],...r],i=[...new Set(n)],o=!!t.builder?.creator||r.length>0,a={roles:e,admin:{global:t.admin?.global||!1}};return(t.builder||o||i.length)&&(a.builder={global:t.builder?.global||!1},o&&(a.builder.creator=!0),i.length&&(a.builder.apps=i)),t.userGroups?.length&&(a.userGroups=t.userGroups),a}s(mm,"deriveUserFieldsFromInvite");var L_=3600;async function nk(t,e){let n=await ep(e).get(t);if(n.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let i=await Nr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(nk,"populateFromDB");async function ik(t){let e=await Ut.bulkGet(t),r=t.filter((i,o)=>!e[o]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let o=await Nr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(ik,"populateUsersFromDB");async function vo({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=nk),!e)try{e=V()}catch{e=await St.lookupTenantId(t)}let i=await oi(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,L_)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Me.users.isGlobalBuilder(o)&&await be(e,async()=>{let a=await Ut.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(vo,"getUser");async function sk(t){let e=await oi(),r=await e.bulkGet(t),n=t.filter(a=>!r[a]),i=Object.values(r).filter(a=>!!a),o;if(n.length){let a=await ik(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,L_);i.push(...a.users)}return{users:i,notFoundIds:o}}s(sk,"getUsers");async function No(t){await(await oi()).delete(t)}s(No,"invalidateUser");async function ok(t){if(t.length===0)return;await(await oi()).bulkDelete(t)}s(ok,"invalidateUsers");var ym={};P(ym,{Writethrough:()=>gm});var U_=1e4,hm=null;async function dc(){if(!hm){let t=await Gf();hm=new En(t)}return hm}s(dc,"getCache");function Po(t,e){return t.name+e}s(Po,"makeCacheKey");function Em(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(Em,"makeCacheItem");async function ak(t,e,r=U_){let n=await dc(),i=e._id,o;i&&(o=await n.get(Po(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await Sn({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let l=s(async d=>{let f=await t.put(d,{force:!0});u._id=f.id,u._rev=f.rev},"writeDb");try{await l(e)}catch(d){if(d.status!==409)throw d;hi("Ignoring conflict in write-through cache")}})).executed||hi("Ignoring redlock conflict in write-through cache")),o=Em(u,a?null:o?.lastWrite),u._id&&await n.store(Po(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(ak,"put");async function uk(t,e){let r=await dc(),n=Po(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=Em(o),await r.store(n,i)}return i.doc}s(uk,"get");async function ck(t,e){let r=await dc(),n=Po(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=Em(o),await r.store(n,i)}return i.doc}s(ck,"tryGet");async function lk(t,e,r){let n=await dc();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Po(t,i))}finally{await t.remove(i,r)}}s(lk,"remove");var gm=class{static{s(this,"Writethrough")}constructor(e,r=U_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return ak(this.db,e,r)}async get(e){return uk(this.db,e)}async tryGet(e){return ck(this.db,e)}async remove(e,r){return lk(this.db,e,r)}};function Lo(t){return`config${"_"}${t}`}s(Lo,"generateConfigID");var fc="en";function dk(){return{_id:Lo("translations"),type:"translations",config:{defaultLocale:fc,locales:{[fc]:{label:"English",overrides:{}}}}}}s(dk,"createDefaultTranslationsConfig");function fk(t){let e=t?.defaultLocale||fc,r={...t?.locales??{}};r[e]||(r[e]={label:e===fc?"English":e,overrides:{}});for(let n of Object.keys(r))r[n].overrides||(r[n]={...r[n],overrides:{}});return{defaultLocale:e,locales:r}}s(fk,"prepareTranslationsConfig");async function Ge(t){let e=z();try{return await e.get(Lo(t))}catch(r){if(r.status===404)return;throw r}}s(Ge,"getConfig");async function pk(t){return t._id||(t._id=Lo(t.type)),z().put(t)}s(pk,"save");async function k_(){let t=await Ge("translations");return t?(t.config=fk(t.config),t):dk()}s(k_,"getTranslationsConfigDoc");async function mk(){return(await k_()).config}s(mk,"getTranslationsConfig");async function wi(){let t=await Ge("settings");return t||(t={_id:Lo("settings"),type:"settings",config:{}}),t.config.platformUrl=await Uo({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Zu({config:t.config}),t}s(wi,"getSettingsConfigDoc");async function Sm(){return(await wi()).config}s(Sm,"getSettingsConfig");async function Uo(t={tenantAware:!0}){let e=E.PLATFORM_URL||"http://localhost:10000";if(!E.SELF_HOSTED&&E.MULTI_TENANCY&&t.tenantAware){let r=V();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(E.SELF_HOSTED){let r=t?.config?t.config:(await Ge("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(Uo,"getPlatformUrl");var Zu=s(async t=>{if(!E.SELF_HOSTED)return!!E.ENABLE_ANALYTICS;let e=await br(Oe.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Ge("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=E.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function hk(){return await Ge("google")}s(hk,"getGoogleConfigDoc");async function mc(){return(await hk())?.config}s(mc,"getGoogleConfig");async function Am(){if(!E.SELF_HOSTED)return Tm();let t=await mc();return(!t||!t.activated)&&(t=Tm()),t}s(Am,"getGoogleDatasourceConfig");function Tm(){if(E.GOOGLE_CLIENT_ID&&E.GOOGLE_CLIENT_SECRET)return{clientID:E.GOOGLE_CLIENT_ID,clientSecret:E.GOOGLE_CLIENT_SECRET,activated:!0}}s(Tm,"getDefaultGoogleConfig");async function gk(){return Ge("logos_oidc")}s(gk,"getOIDCLogosDoc");async function Ek(){return Ge("oidc")}s(Ek,"getOIDCConfigDoc");async function yk(){let t=(await Ek())?.config;return t?.configs&&t.configs[0]}s(yk,"getOIDCConfig");async function _m(t){let e=(await Ge("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(_m,"getOIDCConfigById");async function M_(){return Ge("smtp")}s(M_,"getSMTPConfigDoc");async function Tk(t){let e=await M_();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(Tk,"getSMTPConfig");async function Sk(){return(await Ge("scim"))?.config}s(Sk,"getSCIMConfig");async function Ak(){return Ge("recaptcha")}s(Ak,"getRecaptchaConfig");var Nm={};P(Nm,{AccessController:()=>wm,BUILTIN_ROLE_IDS:()=>Rm,Role:()=>kr,RoleHierarchyTraversal:()=>hc,RoleIDVersion:()=>Cm,builtinRoleToNumber:()=>ko,checkForRoleResourceArray:()=>G_,externalRole:()=>Ck,findRole:()=>Mo,getAllRoleIds:()=>vk,getAllRoles:()=>vm,getBuiltinRole:()=>B_,getBuiltinRoles:()=>bm,getDBRoleID:()=>$_,getExternalRoleID:()=>Mr,getExternalRoleIDs:()=>V_,getRole:()=>Dk,getUserRoleHierarchy:()=>xm,getUserRoleIdHierarchy:()=>W_,isBuiltin:()=>Fr,lowerBuiltinRoleID:()=>Rk,prefixRoleIDNoBuiltin:()=>Im,roleIDsAreEqual:()=>ze,roleToNumber:()=>wk,saveRoles:()=>bk,validInherits:()=>Ik});var F_=require("lodash"),gc=W(require("lodash/fp/cloneDeep")),Om=W(require("semver"));var Rm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ne={...Rm,BUILDER:"BUILDER"},Cm={UUID:void 0,NAME:"name"};function Ok(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(Ok,"rolesInList");var kr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Cm.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=Im(e):e&&Array.isArray(e)&&(e=e.map(Im)),this.inherits=e,this}},hc=class{static{s(this,"RoleHierarchyTraversal")}constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let o of e.inherits){let a=Mo(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!Ok(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=Mo(a.inherits,n,r),a&&i.push(a),ke.roles.checkForRoleInheritanceLoops(i))break}}return(0,F_.uniqBy)(i,o=>o._id)}},Dm={ADMIN:new kr(ne.ADMIN,ne.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ne.POWER),POWER:new kr(ne.POWER,ne.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ne.BASIC),BASIC:new kr(ne.BASIC,ne.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ne.PUBLIC),PUBLIC:new kr(ne.PUBLIC,ne.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new kr(ne.BUILDER,ne.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function bm(){return(0,gc.default)(Dm)}s(bm,"getBuiltinRoles");function Fr(t){return Object.values(Rm).includes(t)}s(Fr,"isBuiltin");function Im(t){return Fr(t)?t:jt(t)}s(Im,"prefixRoleIDNoBuiltin");function B_(t){let e=Object.values(Dm).find(r=>t.includes(r._id));if(e)return(0,gc.default)(e)}s(B_,"getBuiltinRole");function Ik(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(Ik,"validInherits");function ko(t){let e=bm(),r=Object.values(e).length+1;if(ze(t,ne.ADMIN)||ze(t,ne.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}s(ko,"builtinRoleToNumber");async function wk(t){if(Fr(t))return ko(t);let e=await xm(t,{defaultPublic:!0}),r=s(n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(o=>{let a=e.find(u=>ze(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(Fr(n.inherits))return ko(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(wk,"roleToNumber");function Rk(t,e){return t?e&&ko(t)>ko(e)?e:t:e}s(Rk,"lowerBuiltinRoleID");function ze(t,e){return jt(t)===jt(e)}s(ze,"roleIDsAreEqual");function Ck(t){let e;return t._id&&(e=Mr(t._id)),{...t,_id:e,inherits:V_(t.inherits,t.version)}}s(Ck,"externalRole");function Mo(t,e,r){let n=B_(t);n||(t=jt(t));let i=e.find(o=>o._id&&ze(o._id,t));return!i&&!Fr(t)&&r?.defaultPublic?(0,gc.default)(Dm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Mr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(Mo,"findRole");async function Dk(t,e){let r=ii(),n=[];if(!Fr(t)){let i=await r.tryGet($_(t));i&&n.push(i)}return Mo(t,n,e)}s(Dk,"getRole");async function bk(t){await ii().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:jt(r._id)})))}s(bk,"saveRoles");async function xk(t,e){let r=await vm();if(ze(t,ne.ADMIN))return r;let n=Mo(t,r,e),i=[];return n&&(i=new hc(r,e).walk(n)),i}s(xk,"getAllUserRoles");async function W_(t){return(await xm(t)).map(r=>r._id)}s(W_,"getUserRoleIdHierarchy");async function xm(t,e){return xk(t,e)}s(xm,"getUserRoleHierarchy");function G_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(G_,"checkForRoleResourceArray");async function vk(t){return(await vm(t)).map(r=>r._id)}s(vk,"getAllRoleIds");async function vm(t){if(t)return je(t,e);{let r;try{r=ii()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(yu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=Mr(u._id,u.version)));let i=bm(),o=[];!r||await Nk(r)?o=[ne.ADMIN,ne.POWER,ne.BASIC,ne.PUBLIC]:o=[ne.ADMIN,ne.BASIC,ne.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>ze(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=Mr(u._id,c.version),n.push({...u,...c,name:u.name,_id:Mr(u._id,u.version),uiMetadata:{...c.uiMetadata,...u.uiMetadata}}))}for(let a of n)if(a.permissions)for(let u of Object.keys(a.permissions))a.permissions=G_(a.permissions,u);return n}s(e,"internal")}s(vm,"getAllRoles");async function Nk(t){if(await Pk(t))return!0;let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Om.default.valid(r)?!0:!Om.default.gte(r,E.MIN_VERSION_WITHOUT_POWER_ROLE)}s(Nk,"shouldIncludePowerRole");async function Pk(t){let r=(await t.tryGet("ta_users"))?.schema?.roleId?.constraints?.inclusion;return!Array.isArray(r)||!r.some(i=>ze(i,ne.POWER))?!1:r.some(i=>!Fr(i))}s(Pk,"hasLegacyPowerRole");var wm=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||ze(e,ne.BUILDER)||ze(r,e)||ze(r,ne.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await W_(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 $_(t){return t?.startsWith("role")?t:jt(t)}s($_,"getDBRoleID");function Mr(t,e){if(t.startsWith(`role${"_"}`)&&(Fr(t)||e===Cm.NAME)){let r=t.split("_");return r.shift(),r.join("_")}return t}s(Mr,"getExternalRoleID");function V_(t,e){return t&&(typeof t=="string"?Mr(t,e):t.map(r=>Mr(r,e)))}s(V_,"getExternalRoleIDs");var Pm={};P(Pm,{BUILDER:()=>Fk,BUILTIN_PERMISSIONS:()=>Ec,CREATOR:()=>Bk,GLOBAL_BUILDER:()=>Wk,PermissionImpl:()=>oe,PermissionLevel:()=>ki,PermissionType:()=>Qo,doesHaveBasePermission:()=>kk,getAllowedLevels:()=>j_,getBuiltinPermissionByID:()=>Uk,getBuiltinPermissions:()=>Lk,isPermissionLevelHigherThanRead:()=>Mk,levelToNumber:()=>Q_});var q_=W(require("lodash/flatten")),K_=W(require("lodash/fp/cloneDeep"));var oe=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function Q_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(Q_,"levelToNumber");function j_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(j_,"getAllowedLevels");var Ec={PUBLIC:{_id:"public",name:"Public",permissions:[new oe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new oe("query","read"),new oe("table","read"),new oe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new oe("query","write"),new oe("table","write"),new oe("automation","execute"),new oe("legacy_view","read"),new oe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new oe("table","write"),new oe("user","read"),new oe("automation","execute"),new oe("webhook","read"),new oe("legacy_view","read"),new oe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new oe("table","admin"),new oe("user","admin"),new oe("automation","admin"),new oe("webhook","read"),new oe("query","admin"),new oe("legacy_view","read"),new oe("app","read")]}};function Lk(){return(0,K_.default)(Ec)}s(Lk,"getBuiltinPermissions");function Uk(t){return Object.values(Ec).find(r=>r._id===t)}s(Uk,"getBuiltinPermissionByID");function kk(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(Ec),o=(0,q_.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&j_(a.level).indexOf(e)!==-1)return!0;return!1}s(kk,"doesHaveBasePermission");function Mk(t){return Q_(t)>1}s(Mk,"isPermissionLevelHigherThanRead");var Fk="builder",Bk="creator",Wk="globalBuilder";var km={};P(km,{FlagSet:()=>Tc,all:()=>Qk,flags:()=>Lm,getEnvFlags:()=>J_,init:()=>$k,isEnabled:()=>Kk,parseEnvFlags:()=>Ac,shutdown:()=>Vk,testutils:()=>Um});var Sc=W(require("crypto")),H_=W(require("dd-trace")),Y_=require("lodash"),z_=require("posthog-node");var yc,Gk=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 $k(t){E.POSTHOG_TOKEN&&E.POSTHOG_API_HOST&&!E.SELF_HOSTED&&E.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),yc=new z_.PostHog(E.POSTHOG_TOKEN,{host:E.POSTHOG_API_HOST,personalApiKey:E.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Gk(),...t})):console.log("posthog disabled")}s($k,"init");function Vk(){yc?.shutdown()}s(Vk,"shutdown");function Ac(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let o of i){let a=!0;o.startsWith("!")&&(o=o.slice(1),a=!1),r.push({tenantId:n,key:o,value:a})}return r}s(Ac,"parseEnvFlags");function J_(){return Ac(E.TENANT_FEATURE_FLAGS||"")}s(J_,"getEnvFlags");var Tc=class{constructor(e){this.flagSchema=e;this.setId=Sc.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,Y_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await H_.default.trace("features.fetch",async e=>{let r=Uf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=V(),a=new Set;if(nu())return i;for(let{tenantId:f,key:g,value:m}of 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=Pf();f&&(c=Sc.createHash("sha512").update(f).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,yc&&c){n.readFromPostHog=!0;let f=await wi(),g={tenantId:l},m={tenant:{id:l}};f.config.createdVersion&&(m.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(m.tenant.createdAt=`${f.createdAt}`);let y=await yc.getAllFlags(c,{personProperties:g,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:m});for(let[h,p]of Object.entries(y))if(this.isFlagName(h)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${h}": ${p}`);continue}if(!(i[h]===!0||a.has(h)))try{i[h]=p,n[`flags.${h}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${h}": ${p}`,T)}}}let d=Mf();for(let[f,g]of Object.entries(d))this.isFlagName(f)&&typeof g=="boolean"&&(i[f]=g,n[`flags.${f}.source`]="override");kf(this.setId,i);for(let[f,g]of Object.entries(i))n[`flags.${f}.value`]=g;return e?.addTags(n),i})}},qk={USE_ZOD_VALIDATOR:!1,AI_TESTS:!1,ESCALATION:!1,FRONT_COMPANION:!1,PROJECTS:!1,DEBUG_UI:E.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1,AI_AGENT_ACTIVITY:!1},Lm=new Tc(qk);async function Kk(t){return await Lm.isEnabled(t)}s(Kk,"isEnabled");async function Qk(){return await Lm.fetch()}s(Qk,"all");var Um={};P(Um,{setFeatureFlags:()=>X_,withFeatureFlags:()=>Yk});function jk(){let t={};for(let{tenantId:e,key:r,value:n}of Ac(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(jk,"getCurrentFlags");function Hk(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(Hk,"buildFlagString");function X_(t,e){let r=jk();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=Hk(r);return Ps({TENANT_FEATURE_FLAGS:n})}s(X_,"setFeatureFlags");function Yk(t,e,r){let n=X_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(Yk,"withFeatureFlags");var zm={};P(zm,{adminOnly:()=>_c,auditLog:()=>Oc,authError:()=>Ie,buildAuthMiddleware:()=>BM,buildCsrfMiddleware:()=>GM,buildTenancyMiddleware:()=>WM,builderOnly:()=>Nc,builderOrAdmin:()=>Pc,google:()=>or,internalApi:()=>Uc,joiValidator:()=>Fo,oidc:()=>ar,passport:()=>$M,platformLogout:()=>jM,refreshOAuthToken:()=>KM,ssoCallbackUrl:()=>Wr,updateUserOAuth:()=>QM,workspaceBuilderOrAdmin:()=>Fc});var Ym={};P(Ym,{activeTenant:()=>OO,adminOnly:()=>_c,auditLog:()=>Oc,authError:()=>Ie,authenticated:()=>vc,builderOnly:()=>Nc,builderOrAdmin:()=>Pc,correlation:()=>eO,csp:()=>lO,csrf:()=>Lc,datasource:()=>MM,errorHandling:()=>fO,featureFlagCookie:()=>pO,google:()=>or,internalApi:()=>Uc,ip:()=>mO,joiValidator:()=>Fo,local:()=>xi,oidc:()=>ar,pino:()=>tO,querystringToBody:()=>_O,ssoCallbackUrl:()=>Wr,tenancy:()=>Mc,workspaceBuilderOrAdmin:()=>Fc});var Z_=require("uuid");var zk=require("correlation-id"),eO=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,Z_.v4)()),zk.withId(r,()=>e())},"correlationMiddleware");var Jk=require("koa-pino-logger"),Xk=require("correlation-id");function Zk(){return{logger:Mu,genReqId:Xk.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(Zk,"pinoSettings");function eM(){return E.HTTP_LOGGING?Jk(Zk()):(t,e)=>e()}s(eM,"getMiddleware");var tO=eM();var _c=s(async(t,e)=>(!t.internal&&!Lt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var Oc=s((async(t,e)=>e()),"auditLog");var oO=require("jsonwebtoken");var tM=/\/:(.*?)(\/.*)?$/g,ir=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(tM);if(i)for(let o of i){let u="/.*"+(o.endsWith("/")?"/":"");r=r.replace(o,u)}return{regex:new RegExp(`^${r}`),method:n,route:r}}):[],"buildMatcherRegex"),sr=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.path),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var Gm={};P(Gm,{SecretOption:()=>iO,compare:()=>sM,decrypt:()=>Cc,decryptFile:()=>uM,encrypt:()=>iM,encryptFile:()=>oM,getSecret:()=>Wm});var kt=W(require("crypto")),Br=W(require("fs")),Mm=require("path"),Fm=W(require("zlib"));var Ic="aes-256-ctr",nO="-",rM=1e4,nM=32,wc=16,Bm=16,iO=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(iO||{});function Wm(t){let e,r;if(t==="encryption"?(e=E.ENCRYPTION_KEY,r="ENCRYPTION_KEY"):(e=E.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY"),!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(Wm,"getSecret");function Rc(t,e){return kt.default.pbkdf2Sync(t,new Uint8Array(e),rM,nM,"sha512")}s(Rc,"stretchString");function iM(t,e="api"){let r=kt.default.randomBytes(wc),n=Rc(Wm(e),r),i=kt.default.createCipheriv(Ic,new Uint8Array(n),new Uint8Array(r)),o=i.update(t,"utf8"),a=i.final(),u=Buffer.concat([new Uint8Array(o),new Uint8Array(a)]).toString("hex");return`${r.toString("hex")}${nO}${u}`}s(iM,"encrypt");function Cc(t,e="api"){let[r,n]=t.split(nO),i=Buffer.from(r,"hex"),o=Rc(Wm(e),i),a=kt.default.createDecipheriv(Ic,new Uint8Array(o),new Uint8Array(i)),u=a.update(n,"hex"),c=a.final();return Buffer.concat([new Uint8Array(u),new Uint8Array(c)]).toString()}s(Cc,"decrypt");function sM(t,e,r="api"){try{let n=new TextEncoder,i=n.encode(Cc(e,r)),o=n.encode(t);return i.length!==o.length?!1:kt.default.timingSafeEqual(i,o)}catch{return!1}}s(sM,"compare");async function oM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Mm.join)(t,e);if(Br.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=Br.default.createReadStream(i),a=Br.default.createWriteStream((0,Mm.join)(t,n)),u=kt.default.randomBytes(wc),c=kt.default.randomBytes(Bm),l=Rc(r,u),d=kt.default.createCipheriv(Ic,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(Fm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(oM,"encryptFile");async function aM(t){let e=Br.default.createReadStream(t),r=await rO(e,wc),n=await rO(e,Bm);return e.close(),{salt:r,iv:n}}s(aM,"getSaltAndIV");async function uM(t,e,r){if(Br.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await aM(t),o=Br.default.createReadStream(t,{start:wc+Bm}),a=Br.default.createWriteStream(e),u=Rc(r,n),c=kt.default.createDecipheriv(Ic,new Uint8Array(u),new Uint8Array(i)),l=Fm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",g=>{a.close(),f(g)}),c.on("error",g=>{a.close(),f(g)}),l.on("error",g=>{a.close(),f(g)}),a.on("error",g=>{a.close(),f(g)})})}s(uM,"decryptFile");function rO(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(rO,"readBytes");var $m={};P($m,{APIWarning:()=>Cn,FeatureDisabledWarning:()=>bc,InvalidAPIKeyWarning:()=>bi,UsageLimitWarning:()=>Dc});var Cn=class extends Error{static{s(this,"APIWarning")}constructor(e,r){super(e),this.code=r}},bi=class extends Cn{static{s(this,"InvalidAPIKeyWarning")}constructor(){super("Invalid API key","invalid_api_key")}},Dc=class extends Cn{static{s(this,"UsageLimitWarning")}constructor(e){super(`Usage limit exceeded: '${e}'`,"usage_limit_exceeded"),this.limitName=e}getPublicWarning(){return{limitName:this.limitName}}},bc=class extends Cn{static{s(this,"FeatureDisabledWarning")}constructor(e){super(`Feature disabled: '${e}'`,"feature_disabled"),this.featureName=e,this.status=400}getPublicWarning(){return{featureName:this.featureName}}getPublicError(){return{featureName:this.featureName}}};var aO=W(require("dd-trace"));var lM=E.SESSION_UPDATE_PERIOD?parseInt(E.SESSION_UPDATE_PERIOD):60*1e3;function dM(){return new Date(Date.now()-lM).toISOString()}s(dM,"timeMinusOneMinute");function sO(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(sO,"finalise");async function fM(t,e){if(Xs(t))return{valid:!0,user:void 0};let n=Cc(t).split("_")[0];return be(n,async()=>{let i;try{let o=z();i=await Ht("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await vo({userId:i,tenantId:n,populateUser:e})};throw new bi})}s(fM,"checkApiKey");function xc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(xc,"getHeader");function vc(t=[],e={publicAllowed:!1}){let r=t?ir(t):[];return(async(n,i)=>{let o=!1,a=xc(n,"x-budibase-api-version");sr(n,r)&&(o=!0);try{let c=xc(n,"x-budibase-token"),l=zt(n,"budibase:auth"),d=l||_u(c);d&&!d.exp&&(l&&Jt(n,"budibase:auth"),n.throw(401,"Session token missing expiration, please log in again"));let f=xc(n,"x-budibase-api-key");!f&&n.request.headers.authorization&&(f=n.request.headers.authorization.split(" ")[1]);let g=xc(n,"x-budibase-tenant-id"),m=!1,y,h=!1,p;if(d&&!f){let A=d.sessionId,_=d.userId,I;try{I=await zp(_,A),e&&e.populateUser?y=await vo({userId:_,tenantId:I.tenantId,email:I.email,populateUser:e.populateUser(n)}):y=await vo({userId:_,tenantId:I.tenantId,email:I.email}),y.csrfToken=I.csrfToken,p="cookie",I?.lastAccessedAt<dM()&&await Yp(I),m=!0}catch(O){m=!1,console.warn(`Auth Error: ${O.message}`),Jt(n,"budibase:auth")}}if(!m&&f){let A=e.populateUser?e.populateUser(n):null,{valid:_,user:I}=await fM(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)&&aO.default.setUser({id:y._id,tenantId:y.tenantId,budibaseAccess:y.budibaseAccess,status:y.status}),sO(n,{authenticated:m,user:y,internal:h,version:a,publicEndpoint:o,loginMethod:p}),T(y)?gf(y,n,i):i()}catch(c){if(console.warn(`Auth Error: ${c.message}`),c instanceof oO.JsonWebTokenError?Jt(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return sO(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c.message||"Authentication failed")}})}s(vc,"authenticated");async function Nc(t,e){if(t.internal)return e();let r=await pn(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)?t.throw(403,"Builder user only endpoint."):r&&!Ci(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(Nc,"builderOnly");async function Pc(t,e){if(t.internal||Lt(t.user))return e();let r=await pn(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!Ci(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(Pc,"builderOrAdmin");var cO=W(require("crypto"));var uO={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","https://www.google.com/recaptcha/api.js","https://companion.frontapp.com"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com","https://d2l5prqdbvm3op.cloudfront.net","https://companion.frontapp.com","https://*.frontapp.com"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},Vm=/^[A-Za-z0-9-*:/.]+$/,lO=s((async(t,e)=>{let r=cO.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...uO};n["script-src"]=[...uO["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[l,d]of Object.entries(i))if(d){let f=d.split(",").map(g=>g.trim()).filter(g=>Vm.test(g));n[l]=[...n[l]||[],...f]}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 l=await Vs.getWorkspaceMetadata(t.appId);if("name"in l){if(a)for(let d of l.scripts||[]){let f=(d.cspWhitelist||"").split(`
|
|
38
|
+
`).filter(m=>Vm.test(m)),g=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let m of g)n[m]=[...n[m]||[],...f]}if(o){let d=(l.embedAllowedOrigins||[]).map(f=>f.trim()).filter(f=>Vm.test(f));n["frame-ancestors"]=d.length?d:["*"]}}}catch(l){console.error(`Error occurred in Content-Security-Policy middleware: ${l}`)}let u=Object.entries(n).map(([l,d])=>`${l} ${Array.from(new Set(d)).join(" ")}`).join("; ");t.set("Content-Security-Policy",u),await e();let c=t.response.type?.toLowerCase();!t.headerSent&&(c==="application/json"||c?.endsWith("+json"))&&t.remove("Content-Security-Policy")}),"contentSecurityPolicy");var pM=["GET","HEAD","OPTIONS"],mM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Lc(t={noCsrfPatterns:[]}){let e=ir(t.noCsrfPatterns);return(async(r,n)=>{if(sr(r,e)||pM.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!mM.filter(c=>o.includes(c)).length||r.internal)return n();let a=r.user?.csrfToken;if(!a)return n();let u=r.get("x-csrf-token");return(!u||u!==a)&&r.throw(403,"Invalid CSRF token"),n()})}s(Lc,"csrf");function dO(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of gT){let r=E[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(dO,"stringContainsSecret");async function fO(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 5xx response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:zu(r)};if(dO(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(fO,"errorHandling");var pO=s((async(t,e)=>{let n=zt(t,"budibase:featureflags")?.flags||{};await Ff(n,async()=>{await e()})}),"featureFlagCookie");async function Uc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Xs(r)||t.throw(403,"Unauthorized"),e()}s(Uc,"internalApi");async function mO(t,e){return t.ip?await Lf(t.ip,()=>e()):e()}s(mO,"ip");var Fo={};P(Fo,{body:()=>hM,params:()=>gM});var qm=W(require("joi"));function hO(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,o)=>{if(!t)return o();let a=null,u=i.request?.[e];i[e]!=null?a=i[e]:u!=null&&(a=u),t.append&&(t=t.append({createdAt:qm.default.any().optional(),updatedAt:qm.default.any().optional()}));let{error:c}=t.validate(a,{allowUnknown:r?.allowUnknown});if(c){let l=c.message;n&&(l=`Invalid ${e} - ${l}`),i.throw(400,l)}return o()}}s(hO,"validate");function hM(t,e){return hO(t,"body",e)}s(hM,"body");function gM(t,e){return hO(t,"params",e)}s(gM,"params");var xi={};P(xi,{authenticate:()=>TM,options:()=>yM});function Ie(t,e,r){return t(r,null,{message:e})}s(Ie,"authError");async function Wr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Sm(),n="/api/global/auth";return Sr()&&(n+=`/${V()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(Wr,"ssoCallbackUrl");var Km="Invalid credentials",EM="This account has expired. Please reset your password",yM={passReqToCallback:!0};async function TM(t,e,r,n){if(!e)return Ie(n,"Email Required");if(!r)return Ie(n,"Password Required");let i=await ut(e);return i==null?(console.info(`user=${e} could not be found`),Ie(n,Km)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ie(n,Km)):i.password?await ff(r,i.password)?(delete i.password,n(null,i)):Ie(n,Km):(console.info(`user=${e} has no password set`,i),Ie(n,EM))}s(TM,"authenticate");var or={};P(or,{buildVerifyFn:()=>yO,getCallbackUrl:()=>wM,strategyFactory:()=>jm});var Bo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function kc(t,e=!0,r,n,i=!1){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ie(r,"sso user id required");if(!t.email)return Ie(r,"sso user email required");let o=ai(t.userId),a;try{a=await Ur(o)}catch(d){if(!d.status||d.status!==404)return Ie(r,"Unexpected error when retrieving existing user",d)}!a&&(t.emailVerified||i)&&(a=await ut(t.email));let u;a||(u=(await An.getExistingInvites([t.email]))[0]);let c=!t.emailVerified&&!i;if(!a&&!u&&c&&(a=await AM(t)),!a&&!u&&e)return Ie(r,"Email does not yet exist. You must set up your local budibase account first.");let l;try{u?l=await _M(u,o,t,n):(a||(a={_id:o,email:t.email,tenantId:V(),roles:{}}),l=await Qm(a,t,n))}catch(d){return Ie(r,"Error saving user",d)}return r(null,l)}s(kc,"authenticate");async function Qm(t,e,r){let n=await OM(t,e);return n.forceResetPassword=!1,delete n.password,await r(n,{hashPassword:!1,requirePassword:!1})}s(Qm,"syncAndSaveUser");function SM(t,e){return t.password||t.status==="inactive"||t.admin?.global||t.ssoId?!1:vn(t)?t.provider===e.provider&&t.providerType===e.providerType:!0}s(SM,"isAccountLinkable");async function AM(t){let e=await ut(t.email);if(e&&SM(e,t))return e}s(AM,"findLinkableAccountByEmail");async function _M(t,e,r,n){let{result:i}=await Sn({type:"auto_extend",name:"process_user_invite",resource:t.code,systemLock:!0},async()=>{try{await An.getCode(t.code,t.info.tenantId)}catch(u){let c;try{c=await Ur(e)}catch(l){if(!l.status||l.status!==404)throw l}if(!c)throw u;return await Qm(c,r,n)}let o={_id:e,email:r.email,tenantId:t.info.tenantId||V(),...mm(t.info)},a=await Qm(o,r,n);return await An.deleteCode(t.code,t.info.tenantId),await Ce.inviteAccepted(a),a});return i}s(_M,"claimInviteAndSaveUser");async function OM(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(OM,"syncUser");var IM=require("passport-google-oauth").OAuth2Strategy;function yO(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,emailVerified:n._json.email_verified===!0,oauth2:{accessToken:e,refreshToken:r}};return kc(o,!0,i,t)}}s(yO,"buildVerifyFn");async function jm(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let o=yO(r);return new IM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(jm,"strategyFactory");async function wM(t){return Wr("google",t)}s(wM,"getCallbackUrl");var ar={};P(ar,{buildVerifyFn:()=>AO,fetchStrategyConfig:()=>NM,getCallbackUrl:()=>PM,strategyFactory:()=>xM});var TO=W(require("node-fetch"));var SO=require("@govtechsg/passport-openidconnect");function AO(t,e=!1){return async(r,n,i,o,a,u,c,l,d)=>{let f=RM(n,i),g=CM(n,i),m={provider:r,providerType:"oidc",userId:f.id,profile:f,email:DM(f,g),emailVerified:bM(f,g),oauth2:{accessToken:u,refreshToken:c}};return kc(m,!1,d,t,e)}}s(AO,"buildVerifyFn");function RM(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(RM,"normalizeProfile");function CM(t,e){return{email:t?._json?.email||e.emails?.[0]?.value,email_verified:e._json?.email_verified,preferred_username:e.username}}s(CM,"buildJwtClaims");function DM(t,e){if(t._json.email)return t._json.email.toLowerCase();if(e.email)return e.email.toLowerCase();let r=e.preferred_username;if(r&&op(r))return r.toLowerCase();throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(DM,"getEmail");function bM(t,e){return t._json.email?t._json.email_verified===!0:e.email?e.email_verified===!0:!1}s(bM,"getEmailVerified");async function xM(t,e){try{let r=AO(e,t.allowUnverifiedEmailLinking),n=new SO.Strategy(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(xM,"strategyFactory");function vM(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(vM,"resolveAllowUnverifiedEmailLinking");async function NM(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,TO.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:vM(a)}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(NM,"fetchStrategyConfig");async function PM(){return Wr("oidc")}s(PM,"getCallbackUrl");function _O(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(_O,"querystringToBody");function Mc(t,e,r={noTenancyRequired:!1}){let n=ir(t),i=ir(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!sr(o,i)};sr(o,n)||(c.excludeStrategies=["query"]);let d=zs(o,c);return d&&o.set("x-budibase-tenant-id",d),be(d,a)}}s(Mc,"tenancy");function OO(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(OO,"activeTenant");async function Fc(t,e){if(t.internal||Lt(t.user))return e();let r=await pn(t);return r&&!oc(t.user,r)?t.throw(403,"Workspace Admin/Builder user only endpoint."):!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!We(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}s(Fc,"workspaceBuilderOrAdmin");var Hm={};P(Hm,{postAuth:()=>kM,preAuth:()=>UM});var LM=require("passport-google-oauth").OAuth2Strategy;async function IO(){let t=await Am();if(!t)throw new Error("No google configuration found");return t}s(IO,"fetchGoogleCreds");async function UM(t,e,r){let n=await IO(),o=`${await Uo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await jm(n,o,Bo);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(a,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}s(UM,"preAuth");async function kM(t,e,r){let n=await IO(),o=`${await Uo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=zt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new LM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{Jt(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=X();await yn(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(kM,"postAuth");var MM={google:Hm};var wO=require("koa-passport"),FM=require("passport-local").Strategy,Bc=require("passport-oauth2-refresh"),BM=vc,WM=Mc,GM=Lc,$M=wO;wO.use(new FM(xi.options,xi.authenticate));async function VM(t,e){let r=await ar.getCallbackUrl(),n,i;try{if(n=await ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await ar.strategyFactory(n,Bo)}catch{throw new Error("Could not refresh OAuth Token")}return Bc.use(i),new Promise(o=>{Bc.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s(VM,"refreshOIDCAccessToken");async function qM(t,e){let r=await or.getCallbackUrl(t),n;try{n=await or.strategyFactory(t,r,Bo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Bc.use(n),new Promise(i=>{Bc.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(qM,"refreshGoogleAccessToken");async function KM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await _m(r);return n?VM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await mc();return n?qM(n,t):{err:{data:"Google configuration not found"}}}}}s(KM,"refreshOAuthToken");async function QM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=z(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await No(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(QM,"updateUserOAuth");async function jM(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=zt(e,"budibase:auth"),o=await yo(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):Jt(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await In(r,{sessionIds:a,reason:"logout"}),await ic.logout(e.user?.email),await No(r)}s(jM,"platformLogout");var Xm={};P(Xm,{validate:()=>XM});var v=W(require("joi"));var HM=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Jm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(Jm,"runJoi");function YM(t){let e=v.default.object({type:v.default.string().allow("component").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),settings:v.default.array().items(v.default.object().unknown(!0)).required()}).unknown(!0)});Jm(e,t)}s(YM,"validateComponent");function zM(t){let e=v.default.object({type:v.default.string().allow(...Object.values(Vc)).required(),required:v.default.boolean().required(),default:v.default.any(),display:v.default.string()}),r=v.default.object({type:v.default.string().allow(...Object.values($c)),readable:v.default.boolean(),displayName:v.default.string(),fields:v.default.object().pattern(v.default.string(),e)}).required(),n=v.default.object({type:v.default.string().allow("datasource").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({docs:v.default.string(),plus:v.default.boolean().optional(),isSQL:v.default.boolean().optional(),auth:v.default.object({type:v.default.string().required()}).optional(),features:v.default.object(Object.fromEntries(Object.values(qc).map(i=>[i,v.default.boolean().optional()]))).optional(),relationships:v.default.boolean().optional(),description:v.default.string().required(),friendlyName:v.default.string().required(),type:v.default.string().allow(...HM),datasource:v.default.object().pattern(v.default.string(),e).required(),query:v.default.object().pattern(v.default.string(),r).unknown(!0).required(),extra:v.default.object().pattern(v.default.string(),v.default.object({type:v.default.string().required(),displayName:v.default.string().required(),required:v.default.boolean(),data:v.default.object()}))})});Jm(n,t)}s(zM,"validateDatasource");function JM(t){let e=v.default.object().pattern(v.default.string(),{type:v.default.string().allow(...Object.values(Kc)).required(),customType:v.default.string().allow(...Object.values(Qc)),title:v.default.string(),description:v.default.string(),enum:v.default.array().items(v.default.string()),pretty:v.default.array().items(v.default.string())}),r=v.default.object({properties:e,required:v.default.array().items(v.default.string())}).concat(e).required(),n=v.default.object({type:v.default.string().allow("automation").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),tagline:v.default.string().required(),icon:v.default.string().required(),description:v.default.string().required(),type:v.default.string().allow("ACTION","LOGIC").required(),stepId:v.default.string().disallow(...Th).required(),inputs:v.default.object().optional(),schema:v.default.object({inputs:r,outputs:r}).required()})});Jm(n,t)}s(JM,"validateAutomation");function XM(t){switch(t?.type){case"component":YM(t);break;case"datasource":zM(t);break;case"automation":JM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(XM,"validate");var Zm={};P(Zm,{Client:()=>Re,clients:()=>_r,locks:()=>xr,utils:()=>Ya});var th={};P(th,{init:()=>eF});var ZM={"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 RO(t,e){let r=ZM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(RO,"getDocumentId");var Wo=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=RO(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await be(i,async()=>{await u({id:o,tenantId:i,appId:n.appId,properties:n})})}shutdown(){return jA()}};var CO,eh;function eF(t){At||ec(),eh||(eh=new Wo(t)),CO||(CO=At.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await eh.processEvent(r,n,i)}))}s(eF,"init");var lh={};P(lh,{COUNT_FIELD_NAME:()=>uh,Sql:()=>UO,SqlTable:()=>Wc,designDoc:()=>ch,utils:()=>Cf});var vO=require("knex");var tF=require("knex");function rh(t){return["link","formula","ai"].indexOf(t)!==-1}s(rh,"isIgnoredType");function DO(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(g=>g.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(g=>g.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(g=>g.foreignKey);for(let[g,m]of Object.entries(e.schema)){let y=n?.schema[g];if(y&&y.type||l.includes(g)||i?.updated===g)continue;let h=m.type;switch(h){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(g)?t.string(g,255):t.text(g);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:p,toTable:T}=m.meta;t.integer(g).unsigned(),t.foreign(g).references(`${T}.${p}`)}else d.indexOf(g)===-1&&t.float(g);break;case"bigint":t.bigint(g);break;case"boolean":t.boolean(g);break;case"datetime":m.timeOnly?t.time(g):t.datetime(g,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":ke.schema.isDeprecatedSingleUserColumn(m)?t.text(g):t.json(g);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:p}=_f(m.tableId),T=r[p];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let A=T.primary[0],_=T.schema[A].externalType;_?t.specificType(m.foreignKey,_):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${p}.${A}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(g);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:wt.unreachable(h)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!rh(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,y])=>!rh(y.type)&&e.schema[m]==null).forEach(([m,y])=>{i?.old===m||rh(y.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}s(DO,"generateSchema");function nF(t,e,r){return t.createTable(e.name,n=>{DO(n,e,r)})}s(nF,"buildCreateTable");function iF(t,e,r,n,i){return t.alterTable(e.name,o=>{DO(o,e,r,n,i)})}s(iF,"buildUpdateTable");function sF(t,e){return t.dropTable(e.name)}s(sF,"buildDeleteTable");var nh=class{static{s(this,"SqlTableQueryBuilder")}constructor(e){this.sqlClient=e}getBaseSqlClient(){return this.sqlClient}getSqlClient(){return this.extendedSqlClient||this.sqlClient}setExtendedSqlClient(e){this.extendedSqlClient=e}_operation(e){return e.operation}_tableQuery(e){let r=(0,tF.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=nF(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=iF(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,o=e.meta.renamed.updated,a=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,u=ti(n);if(Array.isArray(u))for(let c of u)c.sql.startsWith("exec sp_rename")&&(c.sql=`exec sp_rename '${a}.${i}', '${o}', 'COLUMN'`,c.bindings=[]);return u}break;case"DELETE_TABLE":n=sF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ti(n)}},Wc=nh;var NO=require("lodash");var uh="__bb_total";function bO(){return(E.SQL_MAX_ROWS?parseInt(E.SQL_MAX_ROWS):null)||5e3}s(bO,"getBaseLimit");function ih(){return(E.SQL_MAX_RELATED_ROWS?parseInt(E.SQL_MAX_RELATED_ROWS):null)||500}s(ih,"getRelationshipLimit");function oF(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(oF,"prioritisedArraySort");function PO(t){return Array.isArray(t)?t.map(e=>PO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(PO,"convertBooleans");function xO(t){return t.sourceType==="internal"||t.sourceId===Yc}s(xO,"isSqs");function aF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(aF,"escapeQuotes");function uF(t,e='"'){return`${e}${aF(t,e)}${e}`}s(uF,"wrap");function cF(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=uF(t[r],e));return`[${t.join(",")}]`}s(cF,"stringifyArray");function sh(t){return`{${(Array.isArray(t)?t:t==null?[]:[t]).map(n=>{if(typeof n=="string"&&n.length>1){let i=n[0],o=n[n.length-1];if(i==='"'&&o==='"'||i==="'"&&o==="'")return n.substring(1,n.length-1)}return`${n}`}).join(",")}}`}s(sh,"toPgArrayLiteral");function LO(t){return Ah.includes(t.type)&&!ke.schema.isDeprecatedSingleUserColumn(t)}s(LO,"isJsonColumn");var lF={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,notOneOf:!0,$and:!1,$or:!1},oh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:s(e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array","POSTGRES_ARRAY"),POSTGRES_MONEY:s(e=>this.client==="pg"&&e?.externalType?.includes("money"),"POSTGRES_MONEY"),POSTGRES_ENUM:s(e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options","POSTGRES_ENUM"),MSSQL_DATES:s(e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly,"MSSQL_DATES")};this.client=e,this.query=n,this.knex=r,this.splitter=new Er.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}static{s(this,"InternalBuilder")}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(a=>{let u=a.split(/\./g),c,l=u[0];return u.length>1&&(c=u[0],l=u.slice(1).join(".")),{table:c,column:l,field:a}}).filter(({table:a})=>!a||a===n).map(({table:a,column:u,field:c})=>{let l=i[u];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(l)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([a,u].join(".")),this.knex.raw(this.quote(c))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(l)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(c),this.knex.raw(this.quote(c))]):a?this.rawQuotedIdentifier(`${a}.${u}`):this.rawQuotedIdentifier(c)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),o=this.table.schema[i],a=this.rawQuotedIdentifier(e);return(o.type==="string"||o.type==="longform"||o.type==="bb_reference_single"||o.type==="bb_reference"||o.type==="options"||o.type==="barcodeqr")&&(r?.forSelect?a=this.knex.raw("to_char(??) as ??",[a,this.rawQuotedIdentifier(i)]):a=this.knex.raw("to_char(??)",[a])),a}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&LO(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${e}}`;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),o=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${o}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!wf(e))return null}else if(r.dateOnly){let n=If(e);return n?new Date(n):null}else return r.ignoreTimezones?eu(e)?new Date(e):Of(e)?new Date(e+"Z"):null:eu(e)?new Date(e.trim()):null;return e}parseBody(e){for(let[r,n]of Object.entries(e)){let{column:i}=this.splitter.run(r),o=this.table.schema[i];o&&(e[r]=this.parse(n,o))}return e}parseFilters(e){e=(0,NO.cloneDeep)(e);for(let r of Object.values(Vr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=this.parse(n[i],a))}}for(let r of Object.values(cr)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=n[i].map(u=>this.parse(u,a)))}}for(let r of Object.values(xn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];if(!a)continue;let u=n[i];"low"in u&&(u.low=this.parse(u.low,a)),"high"in u&&(u.high=this.parse(u.high,a))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i,o){let{relationships:a,schema:u,tableAliases:c,table:l}=this.query,d=c?.[l.name]||l.name,f=s(g=>n.match(new RegExp(`^${g}\\.`)),"matches");if(!a)return e;for(let g of a){let m=g.tableName,y=c?.[m]||m,h=f(m)||f(y),p=f(g.column),T=g.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((h||p||T)&&g.to&&g.tableName){let A=this.knex.select(this.knex.raw(1)).from({[y]:m}),_=A.clone(),I=Rf(g),O;if(h?O=n:O=n.replace(new RegExp(`^${g.column}.`),`${c?.[g.tableName]||g.tableName}.`),I){let C=c?.[I.through]||g.through,R=this.tableNameWithSchema(I.through,{alias:C,schema:u});_=_.innerJoin(R,function(){this.on(`${y}.${I.toPrimary}`,"=",`${C}.${I.to}`)}).where(`${C}.${I.from}`,"=",this.rawQuotedIdentifier(`${d}.${I.fromPrimary}`)),this.client==="sqlite3"&&(_=this.addJoinFieldCheck(_,I)),T&&i==="empty"?e=e.whereNotExists(_):T&&i==="notEmpty"?e=e.whereExists(_):e=e.where(w=>{w.whereExists(o(O,_)),r&&w.orWhereNotExists(A.clone().innerJoin(R,function(){this.on(`${d}.${I.fromPrimary}`,"=",`${C}.${I.from}`)}))})}else{let C=`${y}.${g.to}`,R=`${d}.${g.from}`;_=_.where(C,"=",this.rawQuotedIdentifier(R)),T&&i==="empty"?e=e.whereNotExists(_):T&&i==="notEmpty"?e=e.whereExists(_):e=e.where(w=>{w.whereExists(o(O,_.clone())),r&&w.orWhereNotExists(_)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let o=this.query.tableAliases,a=r.allOr,c=this.client==="sqlite3"?this.table._id:this.table.name;function l(h){return o?.[h]||h}s(l,"getTableAlias");function d(h,p,T,A){let _=s((I,O,C)=>{let[R,...w]=O.split("."),b=w.join("."),G=l(R);return I.andWhere(ee=>T(ee,G?`${G}.${b}`:b,C))},"handleRelationship");for(let I in h){let O=h[I],C=Ys(I),R=C.includes(".")||i.getFieldSchema(C)?.type==="link",w=n?.relationship&&R,b;if(I==="_complexIdOperator"&&(b=h[I])&&A){let G=l(c);e=A(e,b.id.map(ee=>G?`${G}.${ee}`:ee),b.values)}else if(R)w&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,lF[p],C,p,(G,ee)=>_(ee,G,O)));else{let G=l(c);e=T(e,G?`${G}.${C}`:C,O)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,g=s((h,p,T)=>((r?.fuzzyOr||a)&&(h=h.or),f?h.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`%${T}%`]):this.client==="oracledb"||this.client==="sqlite3"?h.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`%${T.toLowerCase()}%`]):h.whereILike(this.rawQuotedIdentifier(p),this.knex.raw("?",[`%${T}%`]))),"like"),m=s((h,p=!1)=>{function T(A){return(a||h===r?.containsAny)&&(A=A.or),h===r?.notContains&&(A=A.not),A}s(T,"addModifiers"),this.client==="pg"?d(h,"contains",(A,_,I)=>{A=T(A);let O=this.getFieldSchema(_),C=this.rawQuotedIdentifier(_),R=Array.isArray(I)?[...I]:[I],w=this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(O);return p?w?A.whereRaw("COALESCE(?? && ?::text[], FALSE)",[C,sh(R)]):A.whereRaw("COALESCE(??::jsonb \\?| ?::text[], FALSE)",[C,sh(R)]):w?A.whereRaw("COALESCE(?? @> ?::text[], FALSE)",[C,sh(R)]):A.whereRaw("COALESCE(??::jsonb @> ?::jsonb, FALSE)",[C,cF(R)])}):this.client==="mysql2"||this.client==="mariadb"?d(h,"contains",(A,_,I)=>{let O=Array.isArray(I)?I:[I];return T(A).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(p?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),JSON.stringify(O)])}):d(h,"contains",(A,_,I)=>(I.length===0||(A=A.where(O=>(h===r?.notContains&&(O=O.not),O=O.where(C=>{for(let R of I){h===r?.containsAny?C=C.or:C=C.and;let w=!f,b=typeof R=="string"?`"${w?R.toLowerCase():R}"`:R,G=w?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";C=C.whereLike(this.knex.raw(G,[this.rawQuotedIdentifier(_)]),`%${b}%`)}}),h===r?.notContains&&(O=O.or.whereNull(this.rawQuotedIdentifier(_))),O))),A))},"contains");if(r.$and){let{$and:h}=r;for(let p of h.conditions)e=e.where(T=>{this.addFilters(T,p,n)})}if(r.$or){let{$or:h}=r;e=e.where(p=>{for(let T of h.conditions)p.orWhere(A=>this.addFilters(A,{...T,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(h,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(h=h.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly){for(let I of _)I!=null?h=h.or.whereLike(p,`${I.toISOString().slice(0,10)}%`):h=h.or.whereNull(p);return h}return h.whereIn(p,_)},(h,p,T)=>(a&&(h=h.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),h.whereIn(p,Array.isArray(T)?T:[T]))),r.notOneOf&&d(r.notOneOf,"notOneOf",(h,p,T)=>{let A=this.getFieldSchema(p),_=Array.isArray(T)?T:[T];if(a&&(h=h.or),this.client==="oracledb")p=this.convertClobs(p);else if(this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly)return h.where(I=>{I.whereNot(O=>{for(let C of _)C!=null&&O.orWhereLike(p,`${C.toISOString().slice(0,10)}%`)}).orWhereNull(p)});return h.where(I=>{I.whereNotIn(p,_).orWhereNull(p)})},(h,p,T)=>(a&&(h=h.or),this.client==="oracledb"&&(p=p.map(A=>this.convertClobs(A))),h.whereNotIn(p,Array.isArray(T)?T:[T]))),r.string&&d(r.string,"string",(h,p,T)=>{if(a&&(h=h.or),f)return h.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(p),`${T}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return h.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(p),`${T.toLowerCase()}%`]);{let A=this.getFieldSchema(p);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(A)?h.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(A.name)),`${T}%`]):h.whereILike(p,`${T}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",g),r.range&&d(r.range,"range",(h,p,T)=>{let A=s(b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype,"isEmptyObject");A(T.low)&&(T.low=""),A(T.high)&&(T.high="");let _=tu(T.low),I=tu(T.high),O=this.getFieldSchema(p),C=p,R=T.high,w=T.low;return this.client==="sqlite3"&&O?.type==="datetime"&&O.dateOnly&&(R!=null&&(R=`${R.toISOString().slice(0,10)}T23:59:59.999Z`),w!=null&&(w=w.toISOString().slice(0,10))),this.client==="oracledb"?C=this.convertClobs(p):this.client==="sqlite3"&&O?.type==="bigint"&&(C=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(p)]),R=this.knex.raw("CAST(? AS INTEGER)",[T.high]),w=this.knex.raw("CAST(? AS INTEGER)",[T.low])),a&&(h=h.or),_&&I?h.whereBetween(C,[w,R]):_?h.where(C,">=",w):I?h.where(C,"<=",R):h}),r.equal&&d(r.equal,"equal",(h,p,T)=>{let A=this.getFieldSchema(p);if(a&&(h=h.or),this.client==="mssql")return h.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return h.where(I=>I.whereNotNull(_).andWhere(_,T))}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?h.whereLike(p,`${T.toISOString().slice(0,10)}%`):h.whereNull(p):h.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(p),T])}),r.notEqual&&d(r.notEqual,"notEqual",(h,p,T)=>{let A=this.getFieldSchema(p);if(a&&(h=h.or),this.client==="mssql")return h.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(p),T]);if(this.client==="oracledb"){let _=this.convertClobs(p);return h.where(I=>I.not.whereNull(_).and.where(_,"!=",T)).or.whereNull(_)}else return this.client==="sqlite3"&&A?.type==="datetime"&&A.dateOnly?T!=null?h.not.whereLike(p,`${T.toISOString().slice(0,10)}%`).or.whereNull(p):h.not.whereNull(p):h.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(p),T])}),r.empty&&d(r.empty,"empty",(h,p)=>(a&&(h=h.or),h.whereNull(p))),r.notEmpty&&d(r.notEmpty,"notEmpty",(h,p)=>(a&&(h=h.or),h.whereNotNull(p))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let y=o?.[this.table._id]||this.table._id;return r.documentType&&!Af(this.table)&&y&&e.andWhereLike(`${y}._id`,`${Ot(r.documentType)}%`),e}isSqs(){return xO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;xO(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${uh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let o=n.map(a=>this.qualifyIdentifier(a));if(this.client==="oracledb"){let a=o.map(c=>this.convertClobs(c)),u=o.map(c=>this.convertClobs(c,{forSelect:!0}));e=e.groupBy(a).select(u)}else e=e.groupBy(o).select(o)}for(let o of r){let a=o.calculationType;if(a==="count")if("distinct"in o&&o.distinct)if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[u,o.name]))}else e=e.countDistinct(`${i}.${o.field} as ${o.name}`);else if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[u,o.name]))}else e=e.count(`${o.field} as ${o.name}`);else{let u=this.getFieldSchema(o.field);if(!u)throw new Error(`field schema missing for aggregation target: ${o.field}`);let c=this.knex.raw("??(??)",[this.knex.raw(a),this.rawQuotedIdentifier(`${i}.${o.field}`)]);u.type==="bigint"&&(c=this.castIntToString(c)),e=e.select(this.knex.raw("?? as ??",[c,o.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,o=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[u,c]of Object.entries(r)){let l=this.getFieldSchema(u);if(this.isUnsortableField(l))continue;let d=c.direction==="ascending"?"asc":"desc",f;(this.client==="pg"||this.client==="oracledb")&&(f=c.direction==="ascending"?"first":"last");let g=`${o}.${u}`,m;this.isAggregateField(u)?m=this.rawQuotedIdentifier(u):this.client==="oracledb"?m=this.convertClobs(g):m=this.rawQuotedIdentifier(g),e=e.orderByRaw(`?? ?? ${f?"nulls ??":""}`,[m,this.knex.raw(d),...f?[this.knex.raw(f)]:[]])}if(!((n?.aggregations?.length??0)>0)){let u=this.findSortablePrimaryKey(i);if(u&&(!r||r[u]===void 0))e=e.orderBy(`${o}.${u}`);else if(!u&&(!r||Object.keys(r).length===0))throw new Error(`Primary key not found for table ${this.table.name}`)}return e}isUnsortableField(e){return e?.type==="json"}findSortablePrimaryKey(e){return e.find(r=>{if(r==null)return!1;let n=this.getFieldSchema(r);return!this.isUnsortableField(n)})}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],o,a;if(n.length>1){let l=n.shift();o=n.join("."),a=`${l}.${o}`}else o=n.join("."),a=o;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let u=this.rawQuotedIdentifier(a),c=e.schema[i];return c&&c.type==="bigint"&&(u=this.castIntToString(u)),[o,u]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,o=this.knex,{resource:a,tableAliases:u,schema:c,tables:l}=this.query,d=a?.fields||[];for(let f of n){let{tableName:g,through:m,to:y,from:h,fromPrimary:p,toPrimary:T}=f;if(!g||!r)continue;let A=l[g];if(!A)throw new Error(`related table "${g}" not found in datasource`);let _=u?.[g]||g,I=u?.[r]||r,O=m&&u?.[m]||m,C=this.tableNameWithSchema(g,{alias:_,schema:c}),R=[...A?.primary||[],A?.primaryDisplay].filter(q=>q),w=oF(d.filter(q=>q.split(".")[0]===_),R);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let b=w.map(q=>this.buildJsonField(A,q));if(!b.length)continue;let G=b.map(q=>{let B=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${B}??`,[q[0],q[1]]).toString()}).join(","),ee=`${_}.${T||y}`,M=o.from(C).orderBy(ee),U=m&&T&&p,L=U?`${O}.${h}`:`${_}.${y}`,K=U?`${I}.${p}`:`${I}.${h}`;if(U){let q=this.tableNameWithSchema(m,{alias:O,schema:c});M=M.join(q,function(){this.on(`${_}.${T}`,"=",`${O}.${y}`)})}M=M.where(this.rawQuotedIdentifier(L),"=",this.rawQuotedIdentifier(K));let F=s(q=>(M=M.select(w.map(B=>this.rawQuotedIdentifier(B))).limit(ih()),o.select(q).from({[_]:M})),"standardWrap"),j;switch(i){case"sqlite3":M=this.addJoinFieldCheck(M,f),j=F(this.knex.raw(`json_group_array(json_object(${G}))`));break;case"pg":j=F(this.knex.raw(`json_agg(json_build_object(${G}))`));break;case"mariadb":j=M.select(o.raw(`json_arrayagg(json_object(${G}) LIMIT ${ih()})`));break;case"mysql2":case"oracledb":j=F(this.knex.raw(`json_arrayagg(json_object(${G}))`));break;case"mssql":{let q=o.select("*").from({[I]:M.select(b.map(B=>o.ref(B[1]).as(B[0]))).limit(ih())});j=o.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:j})}return e}addJoin(e,r,n){let{tableAliases:i,schema:o}=this.query,a=r.to,u=r.from,c=r.through,l=i?.[a]||a,d=c&&i?.[c]||c,f=i?.[u]||u,g=this.tableNameWithSchema(a,{alias:l,schema:o}),m=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(m,function(){for(let y of n){let h=y.fromPrimary,p=y.from;this.orOn(`${f}.${h}`,"=",`${d}.${p}`)}}).leftJoin(g,function(){for(let y of n){let h=y.toPrimary,p=y.to;this.orOn(`${l}.${h}`,`${d}.${p}`)}}):e=e.leftJoin(g,function(){for(let y of n){let h=y.from,p=y.to;this.orOn(`${f}.${h}`,"=",`${l}.${p}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let m=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=m}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let g=this.query.tableAliases?.[a.name]||a.name,m=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[g]:"paginated"}));return this.addJsonRelationships(m,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n,{relationship:!0}),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r,{relationship:!0}),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},ah=class extends Wc{static{s(this,"SqlQueryBuilder")}constructor(e,r=bO()){super(e),this.limit=r}convertToNative(e,r={}){let n=this.getSqlClient();if(r?.disableBindings)return{sql:e.toString()};{let i=ti(e);return n==="sqlite3"&&(i=PO(i)),i}}_query(e,r={}){let n=this.getSqlClient(),i={client:this.getBaseSqlClient()};(n==="sqlite3"||n==="oracledb")&&(i.useNullAsDefault=!0);let o=(0,vO.knex)(i),a,u=new oh(n,o,e);switch(this._operation(e)){case"CREATE":a=u.create(r);break;case"READ":a=u.read({limits:{query:this.limit,base:bO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(r);break;case"DELETE":a=u.delete(r);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(e);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,r)}async getReturningRow(e,r){if(!r.extra||!r.extra.idFilter)return{};let n=this._query({operation:"READ",datasource:r.datasource,schema:r.schema,table:r.table,tables:r.tables,resource:{fields:[]},filters:r.extra?.idFilter,paginate:{limit:1}});return e(n,"READ")}checkLookupKeys(e,r){if(!e||!r.table.primary)return r;let n=r.table.primary[0];return r.extra={idFilter:{equal:{[n]:e}}},r}async queryWithReturning(e,r,n=i=>i){let i=this.getSqlClient(),o=this._operation(e),a=this._query(e,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let f of a)d.push(await r(f,o));return d}let u;o==="DELETE"&&(u=n(await this.getReturningRow(r,e)));let c=await r(a,o),l=n(c);if(o==="CREATE"||o==="UPDATE"){let d;i==="mssql"?d=l?.[0].id:(i==="mysql2"||i==="mariadb")&&(d=l?.insertId),u=n(await this.getReturningRow(r,this.checkLookupKeys(d,e)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(e,r){let n=e.name;if(e.sourceType==="internal"||e.sourceId===Yc){if(!e._id)return;n=e._id}return r?.[n]||n}convertJsonStringColumns(e,r,n){let i=this.getTableName(e,n);for(let[o,a]of Object.entries(e.schema)){if(!LO(a))continue;let u=`${i}.${o}`;for(let c of r)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return r}log(e,r){Fs(this.getSqlClient(),e,r)}},UO=ah;var ch={};P(ch,{base:()=>dF});function dF(t){return{_id:xt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(dF,"base");var dh={};P(dh,{jsonFromCsvString:()=>fF});var kO=W(require("csvtojson"));async function fF(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,kO.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(fF,"jsonFromCsvString");var fh=class{static{s(this,"Endpoint")}constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,o=this.controller,a=this.outputMiddlewares,u=s(()=>{},"complete"),c=[n,...i,o,...a,u];e[r](...c)}},Gc=fh;var MO=W(require("@koa/router"));var Dn=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}static{s(this,"EndpointGroup")}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),o=new Gc(e,r,i);if(n.length!==0)for(let a of n)o.addMiddleware(a);return this.endpoints.push(o),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new MO.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var Go=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new Dn;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var pF={...Js,...le},mF=s((t={})=>{Xa(t.db)},"init");0&&(module.exports={APIWarning,ActiveContentFileError,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DesignDocuments,DocumentType,Duration,EmailUnavailableError,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,FeatureDisabledWarning,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyWarning,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,USER_METADATA_PREFIX,UnexpectedError,UsageLimitError,UsageLimitWarning,UserStatus,ViewName,WORKSPACE_DEV,WORKSPACE_DEV_PREFIX,WORKSPACE_PREFIX,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getErrorMessage,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,warnings,withEnv});
|
|
39
39
|
//# sourceMappingURL=index.js.map
|