@budibase/backend-core 3.29.0 → 3.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +11 -11
- package/dist/index.js.map +2 -2
- package/dist/package.json +2 -2
- package/dist/src/cache/invite.js +2 -31
- package/dist/src/cache/invite.js.map +1 -1
- package/dist/src/redis/init.d.ts +0 -1
- package/dist/src/redis/init.js +1 -12
- package/dist/src/redis/init.js.map +1 -1
- package/dist/src/redis/utils.d.ts +0 -1
- package/dist/src/redis/utils.js +0 -1
- package/dist/src/redis/utils.js.map +1 -1
- package/dist/src/utils/utils.js +11 -3
- package/dist/src/utils/utils.js.map +1 -1
- package/dist/tests/core/cache/invite.spec.js +12 -22
- package/dist/tests/core/cache/invite.spec.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
"use strict";var uO=Object.create;var wi=Object.defineProperty;var cO=Object.getOwnPropertyDescriptor;var lO=Object.getOwnPropertyNames;var dO=Object.getPrototypeOf,fO=Object.prototype.hasOwnProperty;var s=(t,e)=>wi(t,"name",{value:e,configurable:!0});var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)wi(t,r,{get:e[r],enumerable:!0})},Km=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of lO(e))!fO.call(t,i)&&i!==r&&wi(t,i,{get:()=>e[i],enumerable:!(n=cO(e,i))||n.enumerable});return t};var B=(t,e,r)=>(r=t!=null?uO(dO(t)):{},Km(e||!t||!t.__esModule?wi(r,"default",{value:t,enumerable:!0}):r,t)),pO=t=>Km(wi({},"__esModule",{value:!0}),t);var th=q((Yc,Hc)=>{"use strict";(function(t,e){typeof Yc=="object"&&typeof Hc<"u"?Hc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Yc,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",o="minute",a="hour",u="day",c="week",l="month",d="quarter",f="year",h="date",p="Invalid Date",S=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(W){var F=["th","st","nd","rd"],N=W%100;return"["+W+(F[(N-20)%10]||F[N]||F[0])+"]"}},y=s(function(W,F,N){var G=String(W);return!G||G.length>=F?W:""+Array(F+1-G.length).join(N)+W},"m"),I={s:y,z:function(W){var F=-W.utcOffset(),N=Math.abs(F),G=Math.floor(N/60),M=N%60;return(F<=0?"+":"-")+y(G,2,"0")+":"+y(M,2,"0")},m:s(function W(F,N){if(F.date()<N.date())return-W(N,F);var G=12*(N.year()-F.year())+(N.month()-F.month()),M=F.clone().add(G,l),K=N-M<0,D=F.clone().add(G+(K?-1:1),l);return+(-(G+(N-M)/(K?M-D:D-M))||0)},"t"),a:function(W){return W<0?Math.ceil(W)||0:Math.floor(W)},p:function(W){return{M:l,y:f,w:c,d:u,D:h,h:a,m:o,s:i,ms:n,Q:d}[W]||String(W||"").toLowerCase().replace(/s$/,"")},u:function(W){return W===void 0}},O="en",w={};w[O]=g;var T="$isDayjsObject",_=s(function(W){return W instanceof Y||!(!W||!W[T])},"S"),U=s(function W(F,N,G){var M;if(!F)return O;if(typeof F=="string"){var K=F.toLowerCase();w[K]&&(M=K),N&&(w[K]=N,M=K);var D=F.split("-");if(!M&&D.length>1)return W(D[0])}else{var J=F.name;w[J]=F,M=J}return!G&&M&&(O=M),M||!G&&O},"t"),R=s(function(W,F){if(_(W))return W.clone();var N=typeof F=="object"?F:{};return N.date=W,N.args=arguments,new Y(N)},"O"),k=I;k.l=U,k.i=_,k.w=function(W,F){return R(W,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var Y=function(){function W(N){this.$L=U(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[T]=!0}s(W,"M");var F=W.prototype;return F.parse=function(N){this.$d=function(G){var M=G.date,K=G.utc;if(M===null)return new Date(NaN);if(k.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var D=M.match(S);if(D){var J=D[2]-1||0,de=(D[7]||"0").substring(0,3);return K?new Date(Date.UTC(D[1],J,D[3]||1,D[4]||0,D[5]||0,D[6]||0,de)):new Date(D[1],J,D[3]||1,D[4]||0,D[5]||0,D[6]||0,de)}}return new Date(M)}(N),this.init()},F.init=function(){var N=this.$d;this.$y=N.getFullYear(),this.$M=N.getMonth(),this.$D=N.getDate(),this.$W=N.getDay(),this.$H=N.getHours(),this.$m=N.getMinutes(),this.$s=N.getSeconds(),this.$ms=N.getMilliseconds()},F.$utils=function(){return k},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(N,G){var M=R(N);return this.startOf(G)<=M&&M<=this.endOf(G)},F.isAfter=function(N,G){return R(N)<this.startOf(G)},F.isBefore=function(N,G){return this.endOf(G)<R(N)},F.$g=function(N,G,M){return k.u(N)?this[G]:this.set(M,N)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(N,G){var M=this,K=!!k.u(G)||G,D=k.p(N),J=s(function(Lr,Pe){var nr=k.w(M.$u?Date.UTC(M.$y,Pe,Lr):new Date(M.$y,Pe,Lr),M);return K?nr:nr.endOf(u)},"l"),de=s(function(Lr,Pe){return k.w(M.toDate()[Lr].apply(M.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Pe)),M)},"$"),Te=this.$W,De=this.$M,ze=this.$D,Dn="set"+(this.$u?"UTC":"");switch(D){case f:return K?J(1,0):J(31,11);case l:return K?J(1,De):J(0,De+1);case c:var Ur=this.$locale().weekStart||0,Ii=(Te<Ur?Te+7:Te)-Ur;return J(K?ze-Ii:ze+(6-Ii),De);case u:case h:return de(Dn+"Hours",0);case a:return de(Dn+"Minutes",1);case o:return de(Dn+"Seconds",2);case i:return de(Dn+"Milliseconds",3);default:return this.clone()}},F.endOf=function(N){return this.startOf(N,!1)},F.$set=function(N,G){var M,K=k.p(N),D="set"+(this.$u?"UTC":""),J=(M={},M[u]=D+"Date",M[h]=D+"Date",M[l]=D+"Month",M[f]=D+"FullYear",M[a]=D+"Hours",M[o]=D+"Minutes",M[i]=D+"Seconds",M[n]=D+"Milliseconds",M)[K],de=K===u?this.$D+(G-this.$W):G;if(K===l||K===f){var Te=this.clone().set(h,1);Te.$d[J](de),Te.init(),this.$d=Te.set(h,Math.min(this.$D,Te.daysInMonth())).$d}else J&&this.$d[J](de);return this.init(),this},F.set=function(N,G){return this.clone().$set(N,G)},F.get=function(N){return this[k.p(N)]()},F.add=function(N,G){var M,K=this;N=Number(N);var D=k.p(G),J=s(function(De){var ze=R(K);return k.w(ze.date(ze.date()+Math.round(De*N)),K)},"y");if(D===l)return this.set(l,this.$M+N);if(D===f)return this.set(f,this.$y+N);if(D===u)return J(1);if(D===c)return J(7);var de=(M={},M[o]=e,M[a]=r,M[i]=t,M)[D]||1,Te=this.$d.getTime()+N*de;return k.w(Te,this)},F.subtract=function(N,G){return this.add(-1*N,G)},F.format=function(N){var G=this,M=this.$locale();if(!this.isValid())return M.invalidDate||p;var K=N||"YYYY-MM-DDTHH:mm:ssZ",D=k.z(this),J=this.$H,de=this.$m,Te=this.$M,De=M.weekdays,ze=M.months,Dn=M.meridiem,Ur=s(function(Pe,nr,V,Bo){return Pe&&(Pe[nr]||Pe(G,K))||V[nr].slice(0,Bo)},"h"),Ii=s(function(Pe){return k.s(J%12||12,Pe,"0")},"d"),Lr=Dn||function(Pe,nr,V){var Bo=Pe<12?"AM":"PM";return V?Bo.toLowerCase():Bo};return K.replace(m,function(Pe,nr){return nr||function(V){switch(V){case"YY":return String(G.$y).slice(-2);case"YYYY":return k.s(G.$y,4,"0");case"M":return Te+1;case"MM":return k.s(Te+1,2,"0");case"MMM":return Ur(M.monthsShort,Te,ze,3);case"MMMM":return Ur(ze,Te);case"D":return G.$D;case"DD":return k.s(G.$D,2,"0");case"d":return String(G.$W);case"dd":return Ur(M.weekdaysMin,G.$W,De,2);case"ddd":return Ur(M.weekdaysShort,G.$W,De,3);case"dddd":return De[G.$W];case"H":return String(J);case"HH":return k.s(J,2,"0");case"h":return Ii(1);case"hh":return Ii(2);case"a":return Lr(J,de,!0);case"A":return Lr(J,de,!1);case"m":return String(de);case"mm":return k.s(de,2,"0");case"s":return String(G.$s);case"ss":return k.s(G.$s,2,"0");case"SSS":return k.s(G.$ms,3,"0");case"Z":return D}return null}(Pe)||D.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(N,G,M){var K,D=this,J=k.p(G),de=R(N),Te=(de.utcOffset()-this.utcOffset())*e,De=this-de,ze=s(function(){return k.m(D,de)},"D");switch(J){case f:K=ze()/12;break;case l:K=ze();break;case d:K=ze()/3;break;case c:K=(De-Te)/6048e5;break;case u:K=(De-Te)/864e5;break;case a:K=De/r;break;case o:K=De/e;break;case i:K=De/t;break;default:K=De}return M?K:k.a(K)},F.daysInMonth=function(){return this.endOf(l).$D},F.$locale=function(){return w[this.$L]},F.locale=function(N,G){if(!N)return this.$L;var M=this.clone(),K=U(N,G,!0);return K&&(M.$L=K),M},F.clone=function(){return k.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},W}(),we=Y.prototype;return R.prototype=we,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",h]].forEach(function(W){we[W[1]]=function(F){return this.$g(F,W[0],W[1])}}),R.extend=function(W,F){return W.$i||(W(F,Y,R),W.$i=!0),R},R.locale=U,R.isDayjs=_,R.unix=function(W){return R(1e3*W)},R.en=w[O],R.Ls=w,R.p={},R})});var at=q(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.Err=Ue.Valid=Ue.err=Ue.valid=void 0;var FO=s(t=>new zo(t),"valid");Ue.valid=FO;var BO=s(t=>new Jo(t),"err");Ue.err=BO;var zo=class{static{s(this,"Valid")}constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Ue.valid)(e(this.value))}mapErr(e){return(0,Ue.valid)(this.value)}};Ue.Valid=zo;var Jo=class{static{s(this,"Err")}constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Ue.err)(this.error)}mapErr(e){return(0,Ue.err)(e(this.error))}};Ue.Err=Jo});var ut=q(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0})});var or=q(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Ot();var z=at();ut();var WO=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],$O=["sun","mon","tue","wed","thu","fri","sat"],GO=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),bi=s((t,e,r)=>{if(e==="months"&&r.useAliases&&WO.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&$O.indexOf(t.toLowerCase())!==-1)return(0,z.valid)(!0);let n=Number(t);if(isNaN(n))return(0,z.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,z.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,z.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,z.valid)(!0)},"checkSingleElementWithinLimits"),VO=s((t,e,r)=>{if(t==="*")return GO(e,r)?(0,z.valid)(!0):(0,z.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,z.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,z.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,z.valid)(!0):bi(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,z.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,z.valid)(!0):bi(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,z.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,z.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,z.err)("Number of occurrence of the day of the week cannot be greater than 5."):bi(n,e,r)}return bi(t,e,r)},"checkSingleElement"),ah=s((t,e,r,n)=>t==="*"?(0,z.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,z.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,z.valid)(!0):bi(t,e,r),"checkRangeElement"),qO=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return VO(n[0],e,r);if(n.length===2){let i=ah(n[0],e,r,0),o=ah(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,z.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,z.valid)(!0)}return(0,z.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),KO=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '/')`);let i=qO(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,z.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,z.valid)(!0)},"checkListElement"),QO=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,z.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,z.valid)(!0):(0,z.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,z.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(KO(a,e,r))}),i.every(a=>a.isValid()))return(0,z.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,z.err)(o)},"checkField");Xc.default=QO});var uh=q(xi=>{"use strict";var jO=xi&&xi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xi,"__esModule",{value:!0});Ot();var YO=at(),HO=jO(or());ut();var zO=s((t,e)=>{if(!t.seconds)return(0,YO.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,HO.default)(r,"seconds",e)},"checkSeconds");xi.default=zO});var ch=q(vi=>{"use strict";var JO=vi&&vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vi,"__esModule",{value:!0});Ot();var ZO=at(),XO=JO(or());ut();var eI=s((t,e)=>{if(!t.minutes)return(0,ZO.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,XO.default)(r,"minutes",e)},"checkMinutes");vi.default=eI});var lh=q(Pi=>{"use strict";var tI=Pi&&Pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pi,"__esModule",{value:!0});Ot();var rI=at(),nI=tI(or());ut();var iI=s((t,e)=>{if(!t.hours)return(0,rI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,nI.default)(r,"hours",e)},"checkHours");Pi.default=iI});var dh=q(Ui=>{"use strict";var sI=Ui&&Ui.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ui,"__esModule",{value:!0});Ot();var Ni=at(),oI=sI(or());ut();var aI=s((t,e)=>{if(!t.daysOfMonth)return(0,Ni.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ni.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ni.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ni.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ni.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,oI.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");Ui.default=aI});var fh=q(Li=>{"use strict";var uI=Li&&Li.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Li,"__esModule",{value:!0});Ot();var cI=at(),lI=uI(or());ut();var dI=s((t,e)=>{if(!t.months)return(0,cI.err)(["months field is undefined."]);let{months:r}=t;return(0,lI.default)(r,"months",e)},"checkMonths");Li.default=dI});var ph=q(ki=>{"use strict";var fI=ki&&ki.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ki,"__esModule",{value:!0});Ot();var Mi=at(),pI=fI(or());ut();var mI=s((t,e)=>{if(!t.daysOfWeek)return(0,Mi.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Mi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Mi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Mi.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Mi.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,pI.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");ki.default=mI});var mh=q(Fi=>{"use strict";var hI=Fi&&Fi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fi,"__esModule",{value:!0});Ot();var EI=at(),gI=hI(or());ut();var yI=s((t,e)=>{if(!t.years)return(0,EI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,gI.default)(r,"years",e)},"checkYears");Fi.default=yI});var yh=q((_F,gh)=>{"use strict";var el;try{el=Map}catch{}var tl;try{tl=Set}catch{}function hh(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(Eh);if(el&&t instanceof el)return new Map(Array.from(t.entries()));if(tl&&t instanceof tl)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var o=e.findIndex(function(a){return a===t[i]});n[i]=o>-1?r[o]:hh(t[i],e,r)}return n}return t}s(hh,"baseClone");function Eh(t){return hh(t,[],[])}s(Eh,"clone");gh.exports=Eh});var Bi=q(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});rl.default=wI;var TI=Object.prototype.toString,SI=Error.prototype.toString,AI=RegExp.prototype.toString,_I=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",OI=/^Symbol\((.*)\)(.*)$/;function II(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(II,"printNumber");function Th(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return II(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return _I.call(t).replace(OI,"Symbol($1)");let n=TI.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+SI.call(t)+"]":n==="RegExp"?AI.call(t):null}s(Th,"printSimpleValue");function wI(t,e){let r=Th(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=Th(this[n],e);return o!==null?o:i},2)}s(wI,"printValue")});var Nt=q(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.default=Se.array=Se.object=Se.boolean=Se.date=Se.number=Se.string=Se.mixed=void 0;var Sh=DI(Bi());function DI(t){return t&&t.__esModule?t:{default:t}}s(DI,"_interopRequireDefault");var Ah={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,o=`${t} must be a \`${e}\` type, but the final value was: \`${(0,Sh.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Sh.default)(n,!0)}\`).`:".");return r===null&&(o+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),o},defined:"${path} must be defined"};Se.mixed=Ah;var _h={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=_h;var Oh={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=Oh;var Ih={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=Ih;var wh={isValue:"${path} field must be ${value}"};Se.boolean=wh;var Dh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=Dh;var Rh={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=Rh;var RI=Object.assign(Object.create(null),{mixed:Ah,string:_h,number:Oh,date:Ih,object:Dh,array:Rh,boolean:wh});Se.default=RI});var xn=q(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var CI=s(t=>t&&t.__isYupSchema__,"_default");Zo.default=CI});var bh=q(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.default=void 0;var bI=Ch(require("lodash/has")),xI=Ch(xn());function Ch(t){return t&&t.__esModule?t:{default:t}}s(Ch,"_interopRequireDefault");var nl=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,bI.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,xI.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},vI=nl;Xo.default=vI});var sl=q(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.default=PI;function PI(t){return t==null?[]:[].concat(t)}s(PI,"toArray")});var kr=q(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.default=void 0;var NI=xh(Bi()),UI=xh(sl());function xh(t){return t&&t.__esModule?t:{default:t}}s(xh,"_interopRequireDefault");function ol(){return ol=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ol.apply(this,arguments)}s(ol,"_extends");var LI=/\$\{\s*(\w+)\s*\}/g,al=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ol({},r,{path:n})),typeof e=="string"?e.replace(LI,(i,o)=>(0,NI.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,UI.default)(e).forEach(o=>{t.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};ea.default=al});var ta=q(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.default=FI;var ul=MI(kr());function MI(t){return t&&t.__esModule?t:{default:t}}s(MI,"_interopRequireDefault");var kI=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function FI(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=kI(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new ul.default(a,o,c)):l(null,o);for(let h=0;h<n.length;h++){let p=n[h];p(i,s(function(m){if(m){if(!ul.default.isError(m))return l(m,o);if(r)return m.value=o,l(m,o);f.push(m)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new ul.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s(FI,"runTests")});var Wi=q((FF,Lh)=>{"use strict";function Fr(t){this._maxSize=t,this.clear()}s(Fr,"Cache");Fr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Fr.prototype.get=function(t){return this._values[t]};Fr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var BI=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Uh=/^\d+$/,WI=/^\d/,$I=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,GI=/^\s*(['"]?)(.*?)(\1)\s*$/,fl=512,vh=new Fr(fl),Ph=new Fr(fl),Nh=new Fr(fl);Lh.exports={Cache:Fr,split:dl,normalizePath:ll,setter:function(t){var e=ll(t);return Ph.get(t)||Ph.set(t,s(function(n,i){for(var o=0,a=e.length,u=n;o<a-1;){var c=e[o];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;u=u[e[o++]]}u[e[o]]=i},"setter"))},getter:function(t,e){var r=ll(t);return Nh.get(t)||Nh.set(t,s(function(i){for(var o=0,a=r.length;o<a;)if(i!=null||!e)i=i[r[o++]];else return;return i},"getter"))},join:function(t){return t.reduce(function(e,r){return e+(pl(r)||Uh.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){VI(Array.isArray(t)?t:dl(t),e,r)}};function ll(t){return vh.get(t)||vh.set(t,dl(t).map(function(e){return e.replace(GI,"$2")}))}s(ll,"normalizePath");function dl(t){return t.match(BI)||[""]}s(dl,"split");function VI(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(QI(i)&&(i='"'+i+'"'),u=pl(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(VI,"forEach");function pl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(pl,"isQuoted");function qI(t){return t.match(WI)&&!t.match(Uh)}s(qI,"hasLeadingNumber");function KI(t){return $I.test(t)}s(KI,"hasSpecialChars");function QI(t){return!pl(t)&&(qI(t)||KI(t))}s(QI,"shouldBeQuoted")});var Br=q(Gi=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.create=YI;Gi.default=void 0;var jI=Wi(),ra={context:"$",value:"."};function YI(t,e){return new $i(t,e)}s(YI,"create");var $i=class{static{s(this,"Reference")}constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===ra.context,this.isValue=this.key[0]===ra.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?ra.context:this.isValue?ra.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,jI.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}};Gi.default=$i;$i.prototype.__isYupRef=!0});var Mh=q(hl=>{"use strict";Object.defineProperty(hl,"__esModule",{value:!0});hl.default=ZI;var HI=ml(require("lodash/mapValues")),na=ml(kr()),zI=ml(Br());function ml(t){return t&&t.__esModule?t:{default:t}}s(ml,"_interopRequireDefault");function ia(){return ia=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ia.apply(this,arguments)}s(ia,"_extends");function JI(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(JI,"_objectWithoutPropertiesLoose");function ZI(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=JI(r,["value","path","label","options","originalValue","sync"]),{name:f,test:h,params:p,message:S}=t,{parent:m,context:g}=u;function y(_){return zI.default.isRef(_)?_.getValue(i,m,g):_}s(y,"resolve");function I(_={}){let U=(0,HI.default)(ia({value:i,originalValue:c,label:a,path:_.path||o},p,_.params),y),R=new na.default(na.default.formatError(_.message||S,U),i,U.path,_.type||f);return R.params=U,R}s(I,"createError");let O=ia({path:o,parent:m,type:f,createError:I,resolve:y,options:u,originalValue:c},d);if(!l){try{Promise.resolve(h.call(O,i,O)).then(_=>{na.default.isError(_)?n(_):_?n(null,_):n(I())})}catch(_){n(_)}return}let w;try{var T;if(w=h.call(O,i,O),typeof((T=w)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${O.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}na.default.isError(w)?n(w):w?n(null,w):n(I())}return s(e,"validate"),e.OPTIONS=t,e}s(ZI,"createValidation")});var El=q(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.getIn=kh;Vi.default=void 0;var XI=Wi(),ew=s(t=>t.substr(0,t.length-1).substr(1),"trim");function kh(t,e,r,n=r){let i,o,a;return e?((0,XI.forEach)(e,(u,c,l)=>{let d=c?ew(u):u;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=l?parseInt(d,10):0;if(r&&f>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${u}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[f],t=t.innerType}if(!l){if(!t.fields||!t.fields[d])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${a} which is a type: "${t._type}")`);i=r,r=r&&r[d],t=t.fields[d]}o=d,a=c?"["+u+"]":"."+u}),{schema:t,parent:i,parentPath:o}):{parent:i,parentPath:e,schema:t}}s(kh,"getIn");var tw=s((t,e,r,n)=>kh(t,e,r,n).schema,"reach"),rw=tw;Vi.default=rw});var Bh=q(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.default=void 0;var Fh=nw(Br());function nw(t){return t&&t.__esModule?t:{default:t}}s(nw,"_interopRequireDefault");var gl=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){Fh.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Fh.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};sa.default=gl});var Lt=q(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.default=void 0;var Wh=Ut(yh()),vn=Nt(),iw=Ut(bh()),$h=Ut(ta()),oa=Ut(Mh()),Gh=Ut(Bi()),sw=Ut(Br()),ow=El(),aw=Ut(sl()),Vh=Ut(kr()),qh=Ut(Bh());function Ut(t){return t&&t.__esModule?t:{default:t}}s(Ut,"_interopRequireDefault");function Je(){return Je=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},Je.apply(this,arguments)}s(Je,"_extends");var ct=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new qh.default,this._blacklist=new qh.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(vn.mixed.notType)}),this.type=e?.type||"mixed",this.spec=Je({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=Je({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Wh.default)(Je({},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=Je({},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(Je({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,Gh.default)(e),a=(0,Gh.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 aO=Object.create;var Ii=Object.defineProperty;var uO=Object.getOwnPropertyDescriptor;var cO=Object.getOwnPropertyNames;var lO=Object.getPrototypeOf,dO=Object.prototype.hasOwnProperty;var s=(t,e)=>Ii(t,"name",{value:e,configurable:!0});var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)Ii(t,r,{get:e[r],enumerable:!0})},Gm=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of cO(e))!dO.call(t,i)&&i!==r&&Ii(t,i,{get:()=>e[i],enumerable:!(n=uO(e,i))||n.enumerable});return t};var B=(t,e,r)=>(r=t!=null?aO(lO(t)):{},Gm(e||!t||!t.__esModule?Ii(r,"default",{value:t,enumerable:!0}):r,t)),fO=t=>Gm(Ii({},"__esModule",{value:!0}),t);var Zm=q((Qc,jc)=>{"use strict";(function(t,e){typeof Qc=="object"&&typeof jc<"u"?jc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Qc,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",o="minute",a="hour",u="day",c="week",l="month",d="quarter",f="year",h="date",p="Invalid Date",S=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(W){var F=["th","st","nd","rd"],N=W%100;return"["+W+(F[(N-20)%10]||F[N]||F[0])+"]"}},y=s(function(W,F,N){var G=String(W);return!G||G.length>=F?W:""+Array(F+1-G.length).join(N)+W},"m"),I={s:y,z:function(W){var F=-W.utcOffset(),N=Math.abs(F),G=Math.floor(N/60),M=N%60;return(F<=0?"+":"-")+y(G,2,"0")+":"+y(M,2,"0")},m:s(function W(F,N){if(F.date()<N.date())return-W(N,F);var G=12*(N.year()-F.year())+(N.month()-F.month()),M=F.clone().add(G,l),K=N-M<0,w=F.clone().add(G+(K?-1:1),l);return+(-(G+(N-M)/(K?M-w:w-M))||0)},"t"),a:function(W){return W<0?Math.ceil(W)||0:Math.floor(W)},p:function(W){return{M:l,y:f,w:c,d:u,D:h,h:a,m:o,s:i,ms:n,Q:d}[W]||String(W||"").toLowerCase().replace(/s$/,"")},u:function(W){return W===void 0}},_="en",D={};D[_]=g;var T="$isDayjsObject",O=s(function(W){return W instanceof Y||!(!W||!W[T])},"S"),U=s(function W(F,N,G){var M;if(!F)return _;if(typeof F=="string"){var K=F.toLowerCase();D[K]&&(M=K),N&&(D[K]=N,M=K);var w=F.split("-");if(!M&&w.length>1)return W(w[0])}else{var J=F.name;D[J]=F,M=J}return!G&&M&&(_=M),M||!G&&_},"t"),R=s(function(W,F){if(O(W))return W.clone();var N=typeof F=="object"?F:{};return N.date=W,N.args=arguments,new Y(N)},"O"),k=I;k.l=U,k.i=O,k.w=function(W,F){return R(W,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var Y=function(){function W(N){this.$L=U(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[T]=!0}s(W,"M");var F=W.prototype;return F.parse=function(N){this.$d=function(G){var M=G.date,K=G.utc;if(M===null)return new Date(NaN);if(k.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var w=M.match(S);if(w){var J=w[2]-1||0,de=(w[7]||"0").substring(0,3);return K?new Date(Date.UTC(w[1],J,w[3]||1,w[4]||0,w[5]||0,w[6]||0,de)):new Date(w[1],J,w[3]||1,w[4]||0,w[5]||0,w[6]||0,de)}}return new Date(M)}(N),this.init()},F.init=function(){var N=this.$d;this.$y=N.getFullYear(),this.$M=N.getMonth(),this.$D=N.getDate(),this.$W=N.getDay(),this.$H=N.getHours(),this.$m=N.getMinutes(),this.$s=N.getSeconds(),this.$ms=N.getMilliseconds()},F.$utils=function(){return k},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(N,G){var M=R(N);return this.startOf(G)<=M&&M<=this.endOf(G)},F.isAfter=function(N,G){return R(N)<this.startOf(G)},F.isBefore=function(N,G){return this.endOf(G)<R(N)},F.$g=function(N,G,M){return k.u(N)?this[G]:this.set(M,N)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(N,G){var M=this,K=!!k.u(G)||G,w=k.p(N),J=s(function(Lr,Pe){var nr=k.w(M.$u?Date.UTC(M.$y,Pe,Lr):new Date(M.$y,Pe,Lr),M);return K?nr:nr.endOf(u)},"l"),de=s(function(Lr,Pe){return k.w(M.toDate()[Lr].apply(M.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Pe)),M)},"$"),Te=this.$W,we=this.$M,He=this.$D,Dn="set"+(this.$u?"UTC":"");switch(w){case f:return K?J(1,0):J(31,11);case l:return K?J(1,we):J(0,we+1);case c:var Ur=this.$locale().weekStart||0,Oi=(Te<Ur?Te+7:Te)-Ur;return J(K?He-Oi:He+(6-Oi),we);case u:case h:return de(Dn+"Hours",0);case a:return de(Dn+"Minutes",1);case o:return de(Dn+"Seconds",2);case i:return de(Dn+"Milliseconds",3);default:return this.clone()}},F.endOf=function(N){return this.startOf(N,!1)},F.$set=function(N,G){var M,K=k.p(N),w="set"+(this.$u?"UTC":""),J=(M={},M[u]=w+"Date",M[h]=w+"Date",M[l]=w+"Month",M[f]=w+"FullYear",M[a]=w+"Hours",M[o]=w+"Minutes",M[i]=w+"Seconds",M[n]=w+"Milliseconds",M)[K],de=K===u?this.$D+(G-this.$W):G;if(K===l||K===f){var Te=this.clone().set(h,1);Te.$d[J](de),Te.init(),this.$d=Te.set(h,Math.min(this.$D,Te.daysInMonth())).$d}else J&&this.$d[J](de);return this.init(),this},F.set=function(N,G){return this.clone().$set(N,G)},F.get=function(N){return this[k.p(N)]()},F.add=function(N,G){var M,K=this;N=Number(N);var w=k.p(G),J=s(function(we){var He=R(K);return k.w(He.date(He.date()+Math.round(we*N)),K)},"y");if(w===l)return this.set(l,this.$M+N);if(w===f)return this.set(f,this.$y+N);if(w===u)return J(1);if(w===c)return J(7);var de=(M={},M[o]=e,M[a]=r,M[i]=t,M)[w]||1,Te=this.$d.getTime()+N*de;return k.w(Te,this)},F.subtract=function(N,G){return this.add(-1*N,G)},F.format=function(N){var G=this,M=this.$locale();if(!this.isValid())return M.invalidDate||p;var K=N||"YYYY-MM-DDTHH:mm:ssZ",w=k.z(this),J=this.$H,de=this.$m,Te=this.$M,we=M.weekdays,He=M.months,Dn=M.meridiem,Ur=s(function(Pe,nr,V,Fo){return Pe&&(Pe[nr]||Pe(G,K))||V[nr].slice(0,Fo)},"h"),Oi=s(function(Pe){return k.s(J%12||12,Pe,"0")},"d"),Lr=Dn||function(Pe,nr,V){var Fo=Pe<12?"AM":"PM";return V?Fo.toLowerCase():Fo};return K.replace(m,function(Pe,nr){return nr||function(V){switch(V){case"YY":return String(G.$y).slice(-2);case"YYYY":return k.s(G.$y,4,"0");case"M":return Te+1;case"MM":return k.s(Te+1,2,"0");case"MMM":return Ur(M.monthsShort,Te,He,3);case"MMMM":return Ur(He,Te);case"D":return G.$D;case"DD":return k.s(G.$D,2,"0");case"d":return String(G.$W);case"dd":return Ur(M.weekdaysMin,G.$W,we,2);case"ddd":return Ur(M.weekdaysShort,G.$W,we,3);case"dddd":return we[G.$W];case"H":return String(J);case"HH":return k.s(J,2,"0");case"h":return Oi(1);case"hh":return Oi(2);case"a":return Lr(J,de,!0);case"A":return Lr(J,de,!1);case"m":return String(de);case"mm":return k.s(de,2,"0");case"s":return String(G.$s);case"ss":return k.s(G.$s,2,"0");case"SSS":return k.s(G.$ms,3,"0");case"Z":return w}return null}(Pe)||w.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(N,G,M){var K,w=this,J=k.p(G),de=R(N),Te=(de.utcOffset()-this.utcOffset())*e,we=this-de,He=s(function(){return k.m(w,de)},"D");switch(J){case f:K=He()/12;break;case l:K=He();break;case d:K=He()/3;break;case c:K=(we-Te)/6048e5;break;case u:K=(we-Te)/864e5;break;case a:K=we/r;break;case o:K=we/e;break;case i:K=we/t;break;default:K=we}return M?K:k.a(K)},F.daysInMonth=function(){return this.endOf(l).$D},F.$locale=function(){return D[this.$L]},F.locale=function(N,G){if(!N)return this.$L;var M=this.clone(),K=U(N,G,!0);return K&&(M.$L=K),M},F.clone=function(){return k.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},W}(),Ie=Y.prototype;return R.prototype=Ie,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",h]].forEach(function(W){Ie[W[1]]=function(F){return this.$g(F,W[0],W[1])}}),R.extend=function(W,F){return W.$i||(W(F,Y,R),W.$i=!0),R},R.locale=U,R.isDayjs=O,R.unix=function(W){return R(1e3*W)},R.en=D[_],R.Ls=D,R.p={},R})});var at=q(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.Err=Ue.Valid=Ue.err=Ue.valid=void 0;var kO=s(t=>new Ho(t),"valid");Ue.valid=kO;var FO=s(t=>new zo(t),"err");Ue.err=FO;var Ho=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=Ho;var zo=class{static{s(this,"Err")}constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Ue.err)(this.error)}mapErr(e){return(0,Ue.err)(e(this.error))}};Ue.Err=zo});var ut=q(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0})});var or=q(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});Ot();var z=at();ut();var BO=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],WO=["sun","mon","tue","wed","thu","fri","sat"],$O=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),Ci=s((t,e,r)=>{if(e==="months"&&r.useAliases&&BO.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&WO.indexOf(t.toLowerCase())!==-1)return(0,z.valid)(!0);let n=Number(t);if(isNaN(n))return(0,z.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,z.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,z.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,z.valid)(!0)},"checkSingleElementWithinLimits"),GO=s((t,e,r)=>{if(t==="*")return $O(e,r)?(0,z.valid)(!0):(0,z.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,z.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,z.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,z.valid)(!0):Ci(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,z.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,z.valid)(!0):Ci(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,z.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,z.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,z.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ci(n,e,r)}return Ci(t,e,r)},"checkSingleElement"),ih=s((t,e,r,n)=>t==="*"?(0,z.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,z.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,z.valid)(!0):Ci(t,e,r),"checkRangeElement"),VO=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return GO(n[0],e,r);if(n.length===2){let i=ih(n[0],e,r,0),o=ih(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,z.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,z.valid)(!0)}return(0,z.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),qO=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '/')`);let i=VO(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,z.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,z.valid)(!0)},"checkListElement"),KO=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,z.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,z.valid)(!0):(0,z.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,z.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(qO(a,e,r))}),i.every(a=>a.isValid()))return(0,z.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,z.err)(o)},"checkField");Jc.default=KO});var sh=q(bi=>{"use strict";var QO=bi&&bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bi,"__esModule",{value:!0});Ot();var jO=at(),YO=QO(or());ut();var HO=s((t,e)=>{if(!t.seconds)return(0,jO.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,YO.default)(r,"seconds",e)},"checkSeconds");bi.default=HO});var oh=q(xi=>{"use strict";var zO=xi&&xi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xi,"__esModule",{value:!0});Ot();var JO=at(),ZO=zO(or());ut();var XO=s((t,e)=>{if(!t.minutes)return(0,JO.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ZO.default)(r,"minutes",e)},"checkMinutes");xi.default=XO});var ah=q(vi=>{"use strict";var eI=vi&&vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vi,"__esModule",{value:!0});Ot();var tI=at(),rI=eI(or());ut();var nI=s((t,e)=>{if(!t.hours)return(0,tI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,rI.default)(r,"hours",e)},"checkHours");vi.default=nI});var uh=q(Ni=>{"use strict";var iI=Ni&&Ni.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ni,"__esModule",{value:!0});Ot();var Pi=at(),sI=iI(or());ut();var oI=s((t,e)=>{if(!t.daysOfMonth)return(0,Pi.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Pi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Pi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Pi.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Pi.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,sI.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");Ni.default=oI});var ch=q(Ui=>{"use strict";var aI=Ui&&Ui.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ui,"__esModule",{value:!0});Ot();var uI=at(),cI=aI(or());ut();var lI=s((t,e)=>{if(!t.months)return(0,uI.err)(["months field is undefined."]);let{months:r}=t;return(0,cI.default)(r,"months",e)},"checkMonths");Ui.default=lI});var lh=q(Mi=>{"use strict";var dI=Mi&&Mi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Mi,"__esModule",{value:!0});Ot();var Li=at(),fI=dI(or());ut();var pI=s((t,e)=>{if(!t.daysOfWeek)return(0,Li.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Li.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Li.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Li.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Li.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,fI.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");Mi.default=pI});var dh=q(ki=>{"use strict";var mI=ki&&ki.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ki,"__esModule",{value:!0});Ot();var hI=at(),EI=mI(or());ut();var gI=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,EI.default)(r,"years",e)},"checkYears");ki.default=gI});var hh=q((AF,mh)=>{"use strict";var Zc;try{Zc=Map}catch{}var Xc;try{Xc=Set}catch{}function fh(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(ph);if(Zc&&t instanceof Zc)return new Map(Array.from(t.entries()));if(Xc&&t instanceof Xc)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]:fh(t[i],e,r)}return n}return t}s(fh,"baseClone");function ph(t){return fh(t,[],[])}s(ph,"clone");mh.exports=ph});var Fi=q(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});el.default=II;var yI=Object.prototype.toString,TI=Error.prototype.toString,SI=RegExp.prototype.toString,AI=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",_I=/^Symbol\((.*)\)(.*)$/;function OI(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(OI,"printNumber");function Eh(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return OI(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return AI.call(t).replace(_I,"Symbol($1)");let n=yI.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+TI.call(t)+"]":n==="RegExp"?SI.call(t):null}s(Eh,"printSimpleValue");function II(t,e){let r=Eh(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=Eh(this[n],e);return o!==null?o:i},2)}s(II,"printValue")});var Nt=q(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.default=Se.array=Se.object=Se.boolean=Se.date=Se.number=Se.string=Se.mixed=void 0;var gh=wI(Fi());function wI(t){return t&&t.__esModule?t:{default:t}}s(wI,"_interopRequireDefault");var yh={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,o=`${t} must be a \`${e}\` type, but the final value was: \`${(0,gh.default)(r,!0)}\``+(i?` (cast from the value \`${(0,gh.default)(n,!0)}\`).`:".");return r===null&&(o+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),o},defined:"${path} must be defined"};Se.mixed=yh;var Th={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=Th;var Sh={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=Sh;var Ah={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=Ah;var _h={isValue:"${path} field must be ${value}"};Se.boolean=_h;var Oh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=Oh;var Ih={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=Ih;var DI=Object.assign(Object.create(null),{mixed:yh,string:Th,number:Sh,date:Ah,object:Oh,array:Ih,boolean:_h});Se.default=DI});var xn=q(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.default=void 0;var RI=s(t=>t&&t.__isYupSchema__,"_default");Jo.default=RI});var Dh=q(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var CI=wh(require("lodash/has")),bI=wh(xn());function wh(t){return t&&t.__esModule?t:{default:t}}s(wh,"_interopRequireDefault");var tl=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,CI.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,bI.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},xI=tl;Zo.default=xI});var nl=q(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});rl.default=vI;function vI(t){return t==null?[]:[].concat(t)}s(vI,"toArray")});var kr=q(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.default=void 0;var PI=Rh(Fi()),NI=Rh(nl());function Rh(t){return t&&t.__esModule?t:{default:t}}s(Rh,"_interopRequireDefault");function il(){return il=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},il.apply(this,arguments)}s(il,"_extends");var UI=/\$\{\s*(\w+)\s*\}/g,sl=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=il({},r,{path:n})),typeof e=="string"?e.replace(UI,(i,o)=>(0,PI.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,NI.default)(e).forEach(o=>{t.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};Xo.default=sl});var ea=q(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});al.default=kI;var ol=LI(kr());function LI(t){return t&&t.__esModule?t:{default:t}}s(LI,"_interopRequireDefault");var MI=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function kI(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=MI(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new ol.default(a,o,c)):l(null,o);for(let h=0;h<n.length;h++){let p=n[h];p(i,s(function(m){if(m){if(!ol.default.isError(m))return l(m,o);if(r)return m.value=o,l(m,o);f.push(m)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new ol.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s(kI,"runTests")});var Bi=q((kF,Ph)=>{"use strict";function Fr(t){this._maxSize=t,this.clear()}s(Fr,"Cache");Fr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Fr.prototype.get=function(t){return this._values[t]};Fr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var FI=/[^.^\]^[]+|(?=\[\]|\.\.)/g,vh=/^\d+$/,BI=/^\d/,WI=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,$I=/^\s*(['"]?)(.*?)(\1)\s*$/,ll=512,Ch=new Fr(ll),bh=new Fr(ll),xh=new Fr(ll);Ph.exports={Cache:Fr,split:cl,normalizePath:ul,setter:function(t){var e=ul(t);return bh.get(t)||bh.set(t,s(function(n,i){for(var o=0,a=e.length,u=n;o<a-1;){var c=e[o];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;u=u[e[o++]]}u[e[o]]=i},"setter"))},getter:function(t,e){var r=ul(t);return xh.get(t)||xh.set(t,s(function(i){for(var o=0,a=r.length;o<a;)if(i!=null||!e)i=i[r[o++]];else return;return i},"getter"))},join:function(t){return t.reduce(function(e,r){return e+(dl(r)||vh.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){GI(Array.isArray(t)?t:cl(t),e,r)}};function ul(t){return Ch.get(t)||Ch.set(t,cl(t).map(function(e){return e.replace($I,"$2")}))}s(ul,"normalizePath");function cl(t){return t.match(FI)||[""]}s(cl,"split");function GI(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(KI(i)&&(i='"'+i+'"'),u=dl(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(GI,"forEach");function dl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(dl,"isQuoted");function VI(t){return t.match(BI)&&!t.match(vh)}s(VI,"hasLeadingNumber");function qI(t){return WI.test(t)}s(qI,"hasSpecialChars");function KI(t){return!dl(t)&&(VI(t)||qI(t))}s(KI,"shouldBeQuoted")});var Br=q($i=>{"use strict";Object.defineProperty($i,"__esModule",{value:!0});$i.create=jI;$i.default=void 0;var QI=Bi(),ta={context:"$",value:"."};function jI(t,e){return new Wi(t,e)}s(jI,"create");var Wi=class{static{s(this,"Reference")}constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===ta.context,this.isValue=this.key[0]===ta.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?ta.context:this.isValue?ta.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,QI.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};$i.default=Wi;Wi.prototype.__isYupRef=!0});var Nh=q(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});pl.default=JI;var YI=fl(require("lodash/mapValues")),ra=fl(kr()),HI=fl(Br());function fl(t){return t&&t.__esModule?t:{default:t}}s(fl,"_interopRequireDefault");function na(){return na=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},na.apply(this,arguments)}s(na,"_extends");function zI(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(zI,"_objectWithoutPropertiesLoose");function JI(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=zI(r,["value","path","label","options","originalValue","sync"]),{name:f,test:h,params:p,message:S}=t,{parent:m,context:g}=u;function y(O){return HI.default.isRef(O)?O.getValue(i,m,g):O}s(y,"resolve");function I(O={}){let U=(0,YI.default)(na({value:i,originalValue:c,label:a,path:O.path||o},p,O.params),y),R=new ra.default(ra.default.formatError(O.message||S,U),i,U.path,O.type||f);return R.params=U,R}s(I,"createError");let _=na({path:o,parent:m,type:f,createError:I,resolve:y,options:u,originalValue:c},d);if(!l){try{Promise.resolve(h.call(_,i,_)).then(O=>{ra.default.isError(O)?n(O):O?n(null,O):n(I())})}catch(O){n(O)}return}let D;try{var T;if(D=h.call(_,i,_),typeof((T=D)==null?void 0:T.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(O){n(O);return}ra.default.isError(D)?n(D):D?n(null,D):n(I())}return s(e,"validate"),e.OPTIONS=t,e}s(JI,"createValidation")});var ml=q(Gi=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.getIn=Uh;Gi.default=void 0;var ZI=Bi(),XI=s(t=>t.substr(0,t.length-1).substr(1),"trim");function Uh(t,e,r,n=r){let i,o,a;return e?((0,ZI.forEach)(e,(u,c,l)=>{let d=c?XI(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(Uh,"getIn");var ew=s((t,e,r,n)=>Uh(t,e,r,n).schema,"reach"),tw=ew;Gi.default=tw});var Mh=q(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.default=void 0;var Lh=rw(Br());function rw(t){return t&&t.__esModule?t:{default:t}}s(rw,"_interopRequireDefault");var hl=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){Lh.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Lh.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};ia.default=hl});var Lt=q(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.default=void 0;var kh=Ut(hh()),vn=Nt(),nw=Ut(Dh()),Fh=Ut(ea()),sa=Ut(Nh()),Bh=Ut(Fi()),iw=Ut(Br()),sw=ml(),ow=Ut(nl()),Wh=Ut(kr()),$h=Ut(Mh());function Ut(t){return t&&t.__esModule?t:{default:t}}s(Ut,"_interopRequireDefault");function ze(){return ze=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ze.apply(this,arguments)}s(ze,"_extends");var ct=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new $h.default,this._blacklist=new $h.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(vn.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ze({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=ze({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,kh.default)(ze({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=ze({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(o=>{e.tests.forEach(a=>{o.test(a.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,o)=>o.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ze({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,Bh.default)(e),a=(0,Bh.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,Je({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,$h.default)({args:f,value:d,path:o,sync:i,tests:h,endEarly:l},p=>{if(p)return void n(p,d);(0,$h.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(Je({},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(Je({},r,{value:e})),i;return n._validate(e,Je({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Vh.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Vh.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Wh.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=vn.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=vn.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=vn.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,oa.default)(r),o=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(a=>!(a.OPTIONS.name===r.name&&(o||a.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,aw.default)(e).map(o=>new sw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new iw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,oa.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=vn.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,oa.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let o=this.schema._whitelist;return o.has(i,this.resolve)?!0:this.createError({params:{values:o.toArray().join(", ")}})}}),n}notOneOf(e,r=vn.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,oa.default)({message:r,name:"notOneOf",test(i){let o=this.schema._blacklist;return o.has(i,this.resolve)?this.createError({params:{values:o.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(o=>({name:o.OPTIONS.name,params:o.OPTIONS.params})).filter((o,a,u)=>u.findIndex(c=>c.name===o.name)===a)}}};aa.default=ct;ct.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])ct.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,ow.getIn)(this,e,r,n.context);return a[t](i&&i[o],Je({},n,{parent:i,path:e}))};for(let t of["equals","is"])ct.prototype[t]=ct.prototype.oneOf;for(let t of["not","nope"])ct.prototype[t]=ct.prototype.notOneOf;ct.prototype.optional=ct.prototype.notRequired});var Qh=q(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});qi.create=Kh;qi.default=void 0;var uw=cw(Lt());function cw(t){return t&&t.__esModule?t:{default:t}}s(cw,"_interopRequireDefault");var yl=uw.default,lw=yl;qi.default=lw;function Kh(){return new yl}s(Kh,"create");Kh.prototype=yl.prototype});var Pn=q(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.default=void 0;var dw=s(t=>t==null,"_default");ua.default=dw});var Jh=q(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.create=zh;Qi.default=void 0;var fw=Hh(Lt()),jh=Nt(),Yh=Hh(Pn());function Hh(t){return t&&t.__esModule?t:{default:t}}s(Hh,"_interopRequireDefault");function zh(){return new Ki}s(zh,"create");var Ki=class extends fw.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=jh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Yh.default)(r)||r===!0}})}isFalse(e=jh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Yh.default)(r)||r===!1}})}};Qi.default=Ki;zh.prototype=Ki.prototype});var eE=q(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.create=Xh;Yi.default=void 0;var It=Nt(),Mt=Zh(Pn()),pw=Zh(Lt());function Zh(t){return t&&t.__esModule?t:{default:t}}s(Zh,"_interopRequireDefault");var mw=/^((([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,hw=/^((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,Ew=/^(?:[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,gw=s(t=>(0,Mt.default)(t)||t===t.trim(),"isTrimmed"),yw={}.toString();function Xh(){return new ji}s(Xh,"create");var ji=class extends pw.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=It.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Mt.default)(n)||n.length===this.resolve(e)}})}min(e,r=It.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Mt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=It.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,Mt.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,o;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:o}=r:i=r),this.test({name:o||"matches",message:i||It.string.matches,params:{regex:e},test:a=>(0,Mt.default)(a)||a===""&&n||a.search(e)!==-1})}email(e=It.string.email){return this.matches(mw,{name:"email",message:e,excludeEmptyString:!0})}url(e=It.string.url){return this.matches(hw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=It.string.uuid){return this.matches(Ew,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=It.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:gw})}lowercase(e=It.string.lowercase){return this.transform(r=>(0,Mt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Mt.default)(r)||r===r.toLowerCase()})}uppercase(e=It.string.uppercase){return this.transform(r=>(0,Mt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Mt.default)(r)||r===r.toUpperCase()})}};Yi.default=ji;Xh.prototype=ji.prototype});var nE=q(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.create=rE;zi.default=void 0;var Wr=Nt(),$r=tE(Pn()),Tw=tE(Lt());function tE(t){return t&&t.__esModule?t:{default:t}}s(tE,"_interopRequireDefault");var Sw=s(t=>t!=+t,"isNaN");function rE(){return new Hi}s(rE,"create");var Hi=class extends Tw.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"&&!Sw(e)}min(e,r=Wr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,$r.default)(n)||n>=this.resolve(e)}})}max(e,r=Wr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,$r.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Wr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,$r.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Wr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,$r.default)(n)||n>this.resolve(e)}})}positive(e=Wr.number.positive){return this.moreThan(0,e)}negative(e=Wr.number.negative){return this.lessThan(0,e)}integer(e=Wr.number.integer){return this.test({name:"integer",message:e,test:r=>(0,$r.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,$r.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,$r.default)(i)?i:Math[e](i))}};zi.default=Hi;rE.prototype=Hi.prototype});var iE=q(Tl=>{"use strict";Object.defineProperty(Tl,"__esModule",{value:!0});Tl.default=_w;var Aw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function _w(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Aw.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(_w,"parseIsoDate")});var aE=q(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=Al;Ji.default=void 0;var Ow=ca(iE()),sE=Nt(),oE=ca(Pn()),Iw=ca(Br()),ww=ca(Lt());function ca(t){return t&&t.__esModule?t:{default:t}}s(ca,"_interopRequireDefault");var Sl=new Date(""),Dw=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function Al(){return new Nn}s(Al,"create");var Nn=class extends ww.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Ow.default)(e),isNaN(e)?Sl:new Date(e))})})}_typeCheck(e){return Dw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Iw.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=sE.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,oE.default)(i)||i>=this.resolve(n)}})}max(e,r=sE.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,oE.default)(i)||i<=this.resolve(n)}})}};Ji.default=Nn;Nn.INVALID_DATE=Sl;Al.prototype=Nn.prototype;Al.INVALID_DATE=Sl});var cE=q((lB,_l)=>{"use strict";_l.exports=function(t){return uE(Rw(t),t)};_l.exports.array=uE;function uE(t,e){var r=t.length,n=new Array(r),i={},o=r,a=Cw(e),u=bw(t);for(e.forEach(function(l){if(!u.has(l[0])||!u.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||c(t[o],o,new Set);return n;function c(l,d,f){if(f.has(l)){var h;try{h=", node was:"+JSON.stringify(l)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var p=a.get(l)||new Set;if(p=Array.from(p),d=p.length){f.add(l);do{var S=p[--d];c(S,u.get(S),f)}while(d);f.delete(l)}n[--r]=l}}}s(uE,"toposort");function Rw(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(Rw,"uniqueNodes");function Cw(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(Cw,"makeOutgoingEdges");function bw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(bw,"makeNodesHash")});var lE=q(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});Ol.default=Lw;var xw=la(require("lodash/has")),vw=la(cE()),Pw=Wi(),Nw=la(Br()),Uw=la(xn());function la(t){return t&&t.__esModule?t:{default:t}}s(la,"_interopRequireDefault");function Lw(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,Pw.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,xw.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),Nw.default.isRef(a)&&a.isSibling?i(a.path,o):(0,Uw.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return vw.default.array(n,r).reverse()}s(Lw,"sortFields")});var fE=q(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});Il.default=Mw;function dE(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(dE,"findIndex");function Mw(t){return(e,r)=>dE(t,e)-dE(t,r)}s(Mw,"sortByKeyOrder")});var TE=q(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.create=yE;Xi.default=void 0;var pE=wt(require("lodash/has")),mE=wt(require("lodash/snakeCase")),kw=wt(require("lodash/camelCase")),Fw=wt(require("lodash/mapKeys")),Bw=wt(require("lodash/mapValues")),Ww=Wi(),hE=Nt(),$w=wt(lE()),gE=wt(fE()),Gw=wt(ta()),Vw=wt(kr()),wl=wt(Lt());function wt(t){return t&&t.__esModule?t:{default:t}}s(wt,"_interopRequireDefault");function Un(){return Un=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Un.apply(this,arguments)}s(Un,"_extends");var EE=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function qw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(qw,"unknown");var Kw=(0,gE.default)([]),Zi=class extends wl.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Kw,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 EE(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let o=this.fields,a=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,u=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),c={},l=Un({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let h=o[f],p=(0,pE.default)(i,f);if(h){let S,m=i[f];l.path=(r.path?`${r.path}.`:"")+f,h=h.resolve({value:m,context:r.context,parent:c});let g="spec"in h?h.spec:void 0,y=g?.strict;if(g?.strip){d=d||f in i;continue}S=!r.__validating||!y?h.cast(i[f],l):i[f],S!==void 0&&(c[f]=S)}else p&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!Vw.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!EE(f)){n(i[0]||null,f);return}u=u||f;let h=this._nodes.map(p=>(S,m)=>{let g=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(f[p],Un({},r,{path:g,from:a,strict:!0,parent:f,originalValue:u[p]}),m);return}m(null)});(0,Gw.default)({sync:o,tests:h,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Un({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,o]of Object.entries(this.fields)){let a=n[i];a===void 0?n[i]=o:a instanceof wl.default&&o instanceof wl.default&&(n[i]=o.concat(a))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,gE.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,$w.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,Ww.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,pE.default)(o,e)&&(a=Un({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=hE.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=qw(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=hE.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Fw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(kw.default)}snakeCase(){return this.transformKeys(mE.default)}constantCase(){return this.transformKeys(e=>(0,mE.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Bw.default)(this.fields,r=>r.describe()),e}};Xi.default=Zi;function yE(t){return new Zi(t)}s(yE,"create");yE.prototype=Zi.prototype});var AE=q(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.create=SE;ts.default=void 0;var Dl=Ln(Pn()),Qw=Ln(xn()),jw=Ln(Bi()),Rl=Nt(),Yw=Ln(ta()),Hw=Ln(kr()),zw=Ln(Lt());function Ln(t){return t&&t.__esModule?t:{default:t}}s(Ln,"_interopRequireDefault");function da(){return da=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},da.apply(this,arguments)}s(da,"_extends");function SE(t){return new es(t)}s(SE,"create");var es=class extends zw.default{static{s(this,"ArraySchema")}constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,o=n.map((a,u)=>{let c=this.innerType.cast(a,da({},r,{path:`${r.path||""}[${u}]`}));return c!==a&&(i=!0),c});return i?o:n}_validate(e,r={},n){var i,o;let a=[],u=r.sync,c=r.path,l=this.innerType,d=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(o=r.recursive)!=null?o:this.spec.recursive,h=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,S)=>{if(p){if(!Hw.default.isError(p)||d)return void n(p,S);a.push(p)}if(!f||!l||!this._typeCheck(S)){n(a[0]||null,S);return}h=h||S;let m=new Array(S.length);for(let g=0;g<S.length;g++){let y=S[g],I=`${r.path||""}[${g}]`,O=da({},r,{path:I,strict:!0,parent:S,index:g,originalValue:h[g]});m[g]=(w,T)=>l.validate(y,O,T)}(0,Yw.default)({sync:u,path:c,value:S,errors:a,endEarly:d,tests:m},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Qw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,jw.default)(e));return r.innerType=e,r}length(e,r=Rl.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Dl.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Rl.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Dl.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Rl.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Dl.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,o)=>!e(n,i,o):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};ts.default=es;SE.prototype=es.prototype});var _E=q(rs=>{"use strict";Object.defineProperty(rs,"__esModule",{value:!0});rs.create=Xw;rs.default=void 0;var Jw=Zw(xn());function Zw(t){return t&&t.__esModule?t:{default:t}}s(Zw,"_interopRequireDefault");function Xw(t){return new fa(t)}s(Xw,"create");var fa=class{static{s(this,"Lazy")}constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Jw.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)}},eD=fa;rs.default=eD});var OE=q(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});Cl.default=nD;var tD=rD(Nt());function rD(t){return t&&t.__esModule?t:{default:t}}s(rD,"_interopRequireDefault");function nD(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{tD.default[e][r]=t[e][r]})})}s(nD,"setLocale")});var xl=q(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.addMethod=lD;Object.defineProperty(re,"MixedSchema",{enumerable:!0,get:function(){return IE.default}});Object.defineProperty(re,"mixed",{enumerable:!0,get:function(){return IE.create}});Object.defineProperty(re,"BooleanSchema",{enumerable:!0,get:function(){return bl.default}});Object.defineProperty(re,"bool",{enumerable:!0,get:function(){return bl.create}});Object.defineProperty(re,"boolean",{enumerable:!0,get:function(){return bl.create}});Object.defineProperty(re,"StringSchema",{enumerable:!0,get:function(){return wE.default}});Object.defineProperty(re,"string",{enumerable:!0,get:function(){return wE.create}});Object.defineProperty(re,"NumberSchema",{enumerable:!0,get:function(){return DE.default}});Object.defineProperty(re,"number",{enumerable:!0,get:function(){return DE.create}});Object.defineProperty(re,"DateSchema",{enumerable:!0,get:function(){return RE.default}});Object.defineProperty(re,"date",{enumerable:!0,get:function(){return RE.create}});Object.defineProperty(re,"ObjectSchema",{enumerable:!0,get:function(){return CE.default}});Object.defineProperty(re,"object",{enumerable:!0,get:function(){return CE.create}});Object.defineProperty(re,"ArraySchema",{enumerable:!0,get:function(){return bE.default}});Object.defineProperty(re,"array",{enumerable:!0,get:function(){return bE.create}});Object.defineProperty(re,"ref",{enumerable:!0,get:function(){return iD.create}});Object.defineProperty(re,"lazy",{enumerable:!0,get:function(){return sD.create}});Object.defineProperty(re,"ValidationError",{enumerable:!0,get:function(){return oD.default}});Object.defineProperty(re,"reach",{enumerable:!0,get:function(){return aD.default}});Object.defineProperty(re,"isSchema",{enumerable:!0,get:function(){return xE.default}});Object.defineProperty(re,"setLocale",{enumerable:!0,get:function(){return uD.default}});Object.defineProperty(re,"BaseSchema",{enumerable:!0,get:function(){return cD.default}});var IE=Gr(Qh()),bl=Gr(Jh()),wE=Gr(eE()),DE=Gr(nE()),RE=Gr(aE()),CE=Gr(TE()),bE=Gr(AE()),iD=Br(),sD=_E(),oD=ns(kr()),aD=ns(El()),xE=ns(xn()),uD=ns(OE()),cD=ns(Lt());function ns(t){return t&&t.__esModule?t:{default:t}}s(ns,"_interopRequireDefault");function vE(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return vE=s(function(){return t},"_getRequireWildcardCache"),t}s(vE,"_getRequireWildcardCache");function Gr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=vE();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=n?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}s(Gr,"_interopRequireWildcard");function lD(t,e,r){if(!t||!(0,xE.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(lD,"addMethod")});var PE=q(Pl=>{"use strict";Object.defineProperty(Pl,"__esModule",{value:!0});var vl=Nl();Pl.default=()=>{(0,vl.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,vl.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,vl.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var Nl=q(Ae=>{"use strict";var dD=Ae&&Ae.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),fD=Ae&&Ae.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),pD=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)&&dD(e,t,r);return fD(e,t),e},mD=Ae&&Ae.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.validateOptions=Ae.registerOptionPreset=Ae.getOptionPresets=Ae.getOptionPreset=void 0;var b=pD(xl());xl();var is=at(),hD=mD(PE());ut();var Vr={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},NE=b.object({presetId:b.string().required(),useSeconds:b.boolean().required(),useYears:b.boolean().required(),useAliases:b.boolean(),useBlankDay:b.boolean().required(),allowOnlyOneBlankDayField:b.boolean().required(),mustHaveBlankDayField:b.boolean(),useLastDayOfMonth:b.boolean(),useLastDayOfWeek:b.boolean(),useNearestWeekday:b.boolean(),useNthWeekdayOfMonth:b.boolean(),seconds:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),minutes:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),hours:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),daysOfMonth:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),months:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),daysOfWeek:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),years:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required()}).required(),ED=s(t=>Vr[t]?(0,is.valid)(Vr[t]):(0,is.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=ED;var gD=s(()=>Vr,"getOptionPresets");Ae.getOptionPresets=gD;var yD=s((t,e)=>{Vr[t]=NE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=yD;var TD=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,h,p,S,m,g,y,I,O,w;try{(0,hD.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Vr[t.preset])return(0,is.err)([`Option preset ${t.preset} does not exist.`]);T=Vr[t.preset]}else T=t.preset;else T=Vr.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=T.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=T.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=T.seconds.lowerLimit)!==null&&u!==void 0?u:T.seconds.minValue,upperLimit:(c=T.seconds.upperLimit)!==null&&c!==void 0?c:T.seconds.maxValue},minutes:{lowerLimit:(l=T.minutes.lowerLimit)!==null&&l!==void 0?l:T.minutes.minValue,upperLimit:(d=T.minutes.upperLimit)!==null&&d!==void 0?d:T.minutes.maxValue},hours:{lowerLimit:(f=T.hours.lowerLimit)!==null&&f!==void 0?f:T.hours.minValue,upperLimit:(h=T.hours.upperLimit)!==null&&h!==void 0?h:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(S=T.daysOfMonth.upperLimit)!==null&&S!==void 0?S:T.daysOfMonth.maxValue},months:{lowerLimit:(m=T.months.lowerLimit)!==null&&m!==void 0?m:T.months.minValue,upperLimit:(g=T.months.upperLimit)!==null&&g!==void 0?g:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(I=T.daysOfWeek.upperLimit)!==null&&I!==void 0?I:T.daysOfWeek.maxValue},years:{lowerLimit:(O=T.years.lowerLimit)!==null&&O!==void 0?O:T.years.minValue,upperLimit:(w=T.years.upperLimit)!==null&&w!==void 0?w:T.years.maxValue}}),t.override),R=b.object({presetId:b.string().required(),preset:NE.required(),useSeconds:b.boolean().required(),useYears:b.boolean().required(),useAliases:b.boolean(),useBlankDay:b.boolean().required(),allowOnlyOneBlankDayField:b.boolean().required(),mustHaveBlankDayField:b.boolean(),useLastDayOfMonth:b.boolean(),useLastDayOfWeek:b.boolean(),useNearestWeekday:b.boolean(),useNthWeekdayOfMonth:b.boolean(),seconds:b.object({lowerLimit:b.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:b.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:b.object({lowerLimit:b.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:b.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:b.object({lowerLimit:b.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:b.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:b.object({lowerLimit:b.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:b.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:b.object({lowerLimit:b.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:b.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:b.object({lowerLimit:b.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:b.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:b.object({lowerLimit:b.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:b.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,is.valid)(R)}catch(T){return(0,is.err)(T.errors)}},"validateOptions");Ae.validateOptions=TD});var Ot=q((ss,Ll)=>{"use strict";var Kr=ss&&ss.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ss,"__esModule",{value:!0});var qr=at(),SD=Kr(uh()),AD=Kr(ch()),_D=Kr(lh()),OD=Kr(dh()),ID=Kr(fh()),wD=Kr(ph()),DD=Kr(mh()),RD=Nl();ut();var CD=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,qr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,qr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,qr.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,qr.valid)(n)},"splitCronString"),Ul=s((t,e={})=>{let r=(0,RD.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=CD(t,n);if(i.isError())return(0,qr.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,SD.default)(o,n)),a.push((0,AD.default)(o,n)),a.push((0,_D.default)(o,n)),a.push((0,OD.default)(o,n)),a.push((0,ID.default)(o,n)),a.push((0,wD.default)(o,n)),n.useYears&&a.push((0,DD.default)(o,n)),a.every(c=>c.isValid()))return(0,qr.valid)(o);let u=[];return a.forEach(c=>{c.isError()&&c.getError().forEach(l=>{u.push(l)})}),u.forEach((c,l)=>{u[l]=`${c} (Input cron: '${t}')`}),(0,qr.err)(u)},"cron");ss.default=Ul;Ll.exports=Ul;Ll.exports.default=Ul});var cy=q(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var Ft=class extends Error{static{s(this,"LuxonError")}},Kl=class extends Ft{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ql=class extends Ft{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},jl=class extends Ft{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},cr=class extends Ft{static{s(this,"ConflictingSpecificationError")}},Sa=class extends Ft{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends Ft{static{s(this,"InvalidArgumentError")}},Dt=class extends Ft{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},v="numeric",ft="short",qe="long",Aa={year:v,month:v,day:v},lg={year:v,month:ft,day:v},bD={year:v,month:ft,day:v,weekday:ft},dg={year:v,month:qe,day:v},fg={year:v,month:qe,day:v,weekday:qe},pg={hour:v,minute:v},mg={hour:v,minute:v,second:v},hg={hour:v,minute:v,second:v,timeZoneName:ft},Eg={hour:v,minute:v,second:v,timeZoneName:qe},gg={hour:v,minute:v,hourCycle:"h23"},yg={hour:v,minute:v,second:v,hourCycle:"h23"},Tg={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:ft},Sg={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:qe},Ag={year:v,month:v,day:v,hour:v,minute:v},_g={year:v,month:v,day:v,hour:v,minute:v,second:v},Og={year:v,month:ft,day:v,hour:v,minute:v},Ig={year:v,month:ft,day:v,hour:v,minute:v,second:v},xD={year:v,month:ft,day:v,weekday:ft,hour:v,minute:v},wg={year:v,month:qe,day:v,hour:v,minute:v,timeZoneName:ft},Dg={year:v,month:qe,day:v,hour:v,minute:v,second:v,timeZoneName:ft},Rg={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,timeZoneName:qe},Cg={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,second:v,timeZoneName:qe},dr=class{static{s(this,"Zone")}get type(){throw new Dt}get name(){throw new Dt}get ianaName(){return this.name}get isUniversal(){throw new Dt}offsetName(e,r){throw new Dt}formatOffset(e,r){throw new Dt}offset(e){throw new Dt}equals(e){throw new Dt}get isValid(){throw new Dt}},Ml=null,ds=class t extends dr{static{s(this,"SystemZone")}static get instance(){return Ml===null&&(Ml=new t),Ml}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return Bg(e,r,n)}formatOffset(e,r){return ls(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Yl=new Map;function vD(t){let e=Yl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),Yl.set(t,e)),e}s(vD,"makeDTF");var PD={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ND(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(ND,"hackyOffset");function UD(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=PD[o];o==="era"?n[u]=a:Q(u)||(n[u]=parseInt(a,10))}return n}s(UD,"partsOffset");var kl=new Map,Bt=class t extends dr{static{s(this,"IANAZone")}static create(e){let r=kl.get(e);return r===void 0&&kl.set(e,r=new t(e)),r}static resetCache(){kl.clear(),Yl.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return Bg(e,r,n,this.name)}formatOffset(e,r){return ls(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=vD(this.name),[i,o,a,u,c,l,d]=n.formatToParts?UD(n,r):ND(n,r);u==="BC"&&(i=-Math.abs(i)+1);let h=Ca({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),p=+r,S=p%1e3;return p-=S>=0?S:1e3+S,(h-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},UE={};function LD(t,e={}){let r=JSON.stringify([t,e]),n=UE[r];return n||(n=new Intl.ListFormat(t,e),UE[r]=n),n}s(LD,"getCachedLF");var Hl=new Map;function zl(t,e={}){let r=JSON.stringify([t,e]),n=Hl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Hl.set(r,n)),n}s(zl,"getCachedDTF");var Jl=new Map;function MD(t,e={}){let r=JSON.stringify([t,e]),n=Jl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Jl.set(r,n)),n}s(MD,"getCachedINF");var Zl=new Map;function kD(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=Zl.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),Zl.set(i,o)),o}s(kD,"getCachedRTF");var as=null;function FD(){return as||(as=new Intl.DateTimeFormat().resolvedOptions().locale,as)}s(FD,"systemLocale");var Xl=new Map;function bg(t){let e=Xl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Xl.set(t,e)),e}s(bg,"getCachedIntResolvedOptions");var ed=new Map;function BD(t){let e=ed.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...xg,...e}),ed.set(t,e)}return e}s(BD,"getCachedWeekInfo");function WD(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=zl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=zl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(WD,"parseLocaleString");function $D(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s($D,"intlConfigString");function GD(t){let e=[];for(let r=1;r<=12;r++){let n=oe.utc(2009,r,1);e.push(t(n))}return e}s(GD,"mapMonths");function VD(t){let e=[];for(let r=1;r<=7;r++){let n=oe.utc(2016,11,13+r);e.push(t(n))}return e}s(VD,"mapWeekdays");function pa(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(pa,"listStuff");function qD(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||bg(t.locale).numberingSystem==="latn"}s(qD,"supportsFastNumbers");var td=class{static{s(this,"PolyNumberFormatter")}constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:o,...a}=n;if(!r||Object.keys(a).length>0){let u={useGrouping:!1,...n};n.padTo>0&&(u.minimumIntegerDigits=n.padTo),this.inf=MD(e,u)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):fd(e,3);return me(r,this.padTo)}}},rd=class{static{s(this,"PolyDateFormatter")}constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),u=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&Bt.create(u).valid?(i=u,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=zl(r,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},nd=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&kg()&&(this.rtf=kD(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):dR(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},xg={firstDay:1,minimalDays:4,weekend:[6,7]},te=class t{static{s(this,"Locale")}static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,o=!1){let a=e||ne.defaultLocale,u=a||(o?"en-US":FD()),c=r||ne.defaultNumberingSystem,l=n||ne.defaultOutputCalendar,d=sd(i)||ne.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){as=null,Hl.clear(),Jl.clear(),Zl.clear(),Xl.clear(),ed.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,o){let[a,u,c]=WD(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=$D(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=qD(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,sd(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return pa(this,e,Gg,()=>{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]=GD(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return pa(this,e,Kg,()=>{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]=VD(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return pa(this,void 0,()=>Qg,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[oe.utc(2016,11,13,9),oe.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return pa(this,e,jg,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[oe.utc(-40,1,1),oe.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),o=i.formatToParts(),a=o.find(u=>u.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new td(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new rd(e,this.intl,r)}relFormatter(e={}){return new nd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return LD(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||bg(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Fg()?BD(this.locale):xg}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Fl=null,Ke=class t extends dr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Fl===null&&(Fl=new t(0)),Fl}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(ba(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ls(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ls(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ls(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},_a=class extends dr{static{s(this,"InvalidZone")}constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function ur(t,e){if(Q(t)||t===null)return e;if(t instanceof dr)return t;if(zD(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?ds.instance:r==="utc"||r==="gmt"?Ke.utcInstance:Ke.parseSpecifier(r)||Bt.create(t)}else return lr(t)?Ke.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new _a(t)}s(ur,"normalizeZone");var ud={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},LE={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]},KD=ud.hanidec.replace(/[\[|\]]/g,"").split("");function QD(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(ud.hanidec)!==-1)e+=KD.indexOf(t[r]);else for(let i in LE){let[o,a]=LE[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(QD,"parseDigits");var id=new Map;function jD(){id.clear()}s(jD,"resetDigitRegexCache");function lt({numberingSystem:t},e=""){let r=t||"latn",n=id.get(r);n===void 0&&(n=new Map,id.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${ud[r]}${e}`),n.set(e,i)),i}s(lt,"digitRegex");var ME=s(()=>Date.now(),"now"),kE="system",FE=null,BE=null,WE=null,$E=60,GE,VE=null,ne=class{static{s(this,"Settings")}static get now(){return ME}static set now(e){ME=e}static set defaultZone(e){kE=e}static get defaultZone(){return ur(kE,ds.instance)}static get defaultLocale(){return FE}static set defaultLocale(e){FE=e}static get defaultNumberingSystem(){return BE}static set defaultNumberingSystem(e){BE=e}static get defaultOutputCalendar(){return WE}static set defaultOutputCalendar(e){WE=e}static get defaultWeekSettings(){return VE}static set defaultWeekSettings(e){VE=sd(e)}static get twoDigitCutoffYear(){return $E}static set twoDigitCutoffYear(e){$E=e%100}static get throwOnInvalid(){return GE}static set throwOnInvalid(e){GE=e}static resetCaches(){te.resetCache(),Bt.resetCache(),oe.resetCache(),jD()}},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}},vg=[0,31,59,90,120,151,181,212,243,273,304,334],Pg=[0,31,60,91,121,152,182,213,244,274,305,335];function Xe(t,e){return new Ve("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(Xe,"unitOutOfRange");function cd(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}s(cd,"dayOfWeek");function Ng(t,e,r){return r+(ps(t)?Pg:vg)[e-1]}s(Ng,"computeOrdinal");function Ug(t,e){let r=ps(t)?Pg:vg,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(Ug,"uncomputeOrdinal");function ld(t,e){return(t-e+7)%7+1}s(ld,"isoWeekdayToLocal");function Oa(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=Ng(n,i,o),u=ld(cd(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=fs(l,e,r)):c>fs(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...xa(t)}}s(Oa,"gregorianToWeek");function qE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=ld(cd(n,1,e),r),u=Bn(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Bn(l)):c>u?(l=n+1,c-=Bn(n)):l=n;let{month:d,day:f}=Ug(l,c);return{year:l,month:d,day:f,...xa(t)}}s(qE,"weekToGregorian");function Bl(t){let{year:e,month:r,day:n}=t,i=Ng(e,r,n);return{year:e,ordinal:i,...xa(t)}}s(Bl,"gregorianToOrdinal");function KE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=Ug(e,r);return{year:e,month:n,day:i,...xa(t)}}s(KE,"ordinalToGregorian");function QE(t,e){if(!Q(t.localWeekday)||!Q(t.localWeekNumber)||!Q(t.localWeekYear)){if(!Q(t.weekday)||!Q(t.weekNumber)||!Q(t.weekYear))throw new cr("Cannot mix locale-based week fields with ISO-based week fields");return Q(t.localWeekday)||(t.weekday=t.localWeekday),Q(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Q(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}s(QE,"usesLocalWeekValues");function YD(t,e=4,r=1){let n=Ra(t.weekYear),i=et(t.weekNumber,1,fs(t.weekYear,e,r)),o=et(t.weekday,1,7);return n?i?o?!1:Xe("weekday",t.weekday):Xe("week",t.weekNumber):Xe("weekYear",t.weekYear)}s(YD,"hasInvalidWeekData");function HD(t){let e=Ra(t.year),r=et(t.ordinal,1,Bn(t.year));return e?r?!1:Xe("ordinal",t.ordinal):Xe("year",t.year)}s(HD,"hasInvalidOrdinalData");function Lg(t){let e=Ra(t.year),r=et(t.month,1,12),n=et(t.day,1,Ia(t.year,t.month));return e?r?n?!1:Xe("day",t.day):Xe("month",t.month):Xe("year",t.year)}s(Lg,"hasInvalidGregorianData");function Mg(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=et(e,0,23)||e===24&&r===0&&n===0&&i===0,a=et(r,0,59),u=et(n,0,59),c=et(i,0,999);return o?a?u?c?!1:Xe("millisecond",i):Xe("second",n):Xe("minute",r):Xe("hour",e)}s(Mg,"hasInvalidTimeData");function Q(t){return typeof t>"u"}s(Q,"isUndefined");function lr(t){return typeof t=="number"}s(lr,"isNumber");function Ra(t){return typeof t=="number"&&t%1===0}s(Ra,"isInteger");function zD(t){return typeof t=="string"}s(zD,"isString");function JD(t){return Object.prototype.toString.call(t)==="[object Date]"}s(JD,"isDate");function kg(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(kg,"hasRelative");function Fg(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(Fg,"hasLocaleWeekInfo");function ZD(t){return Array.isArray(t)?t:[t]}s(ZD,"maybeArray");function jE(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(jE,"bestBy");function XD(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(XD,"pick");function $n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s($n,"hasOwnProperty");function sd(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!et(t.firstDay,1,7)||!et(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!et(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(sd,"validateWeekSettings");function et(t,e,r){return Ra(t)&&t>=e&&t<=r}s(et,"integerBetween");function eR(t,e){return t-e*Math.floor(t/e)}s(eR,"floorMod");function me(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(me,"padStart");function ar(t){if(!(Q(t)||t===null||t===""))return parseInt(t,10)}s(ar,"parseInteger");function Qr(t){if(!(Q(t)||t===null||t===""))return parseFloat(t)}s(Qr,"parseFloating");function dd(t){if(!(Q(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(dd,"parseMillis");function fd(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}s(fd,"roundTo");function ps(t){return t%4===0&&(t%100!==0||t%400===0)}s(ps,"isLeapYear");function Bn(t){return ps(t)?366:365}s(Bn,"daysInYear");function Ia(t,e){let r=eR(e-1,12)+1,n=t+(e-r)/12;return r===2?ps(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(Ia,"daysInMonth");function Ca(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}s(Ca,"objToLocalTS");function YE(t,e,r){return-ld(cd(t,1,e),r)+e-1}s(YE,"firstWeekOffset");function fs(t,e=4,r=1){let n=YE(t,e,r),i=YE(t+1,e,r);return(Bn(t)-n+i)/7}s(fs,"weeksInWeekYear");function od(t){return t>99?t:t>ne.twoDigitCutoffYear?1900+t:2e3+t}s(od,"untruncateYear");function Bg(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(Bg,"parseZoneInfo");function ba(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}s(ba,"signedOffset");function Wg(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(Wg,"asNumber");function wa(t,e){let r={};for(let n in t)if($n(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=Wg(i)}return r}s(wa,"normalizeObject");function ls(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${me(r,2)}:${me(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${me(r,2)}${me(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(ls,"formatOffset");function xa(t){return XD(t,["hour","minute","second","millisecond"])}s(xa,"timeObject");var tR=["January","February","March","April","May","June","July","August","September","October","November","December"],$g=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],rR=["J","F","M","A","M","J","J","A","S","O","N","D"];function Gg(t){switch(t){case"narrow":return[...rR];case"short":return[...$g];case"long":return[...tR];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(Gg,"months");var Vg=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],qg=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],nR=["M","T","W","T","F","S","S"];function Kg(t){switch(t){case"narrow":return[...nR];case"short":return[...qg];case"long":return[...Vg];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(Kg,"weekdays");var Qg=["AM","PM"],iR=["Before Christ","Anno Domini"],sR=["BC","AD"],oR=["B","A"];function jg(t){switch(t){case"narrow":return[...oR];case"short":return[...sR];case"long":return[...iR];default:return null}}s(jg,"eras");function aR(t){return Qg[t.hour<12?0:1]}s(aR,"meridiemForDateTime");function uR(t,e){return Kg(e)[t.weekday-1]}s(uR,"weekdayForDateTime");function cR(t,e){return Gg(e)[t.month-1]}s(cR,"monthForDateTime");function lR(t,e){return jg(e)[t.year<0?0:1]}s(lR,"eraForDateTime");function dR(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(dR,"formatRelativeTime");function HE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(HE,"stringifyTokens");var fR={D:Aa,DD:lg,DDD:dg,DDDD:fg,t:pg,tt:mg,ttt:hg,tttt:Eg,T:gg,TT:yg,TTT:Tg,TTTT:Sg,f:Ag,ff:Og,fff:wg,ffff:Rg,F:_g,FF:Ig,FFF:Dg,FFFF:Cg},Ge=class t{static{s(this,"Formatter")}static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,o=[];for(let a=0;a<e.length;a++){let u=e.charAt(a);u==="'"?((n.length>0||i)&&o.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||u===r?n+=u:(n.length>0&&o.push({literal:/^\s+$/.test(n),val:n}),n=u,r=u)}return n.length>0&&o.push({literal:i||/^\s+$/.test(n),val:n}),o}static macroTokenToFormatOpts(e){return fR[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return me(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=s((p,S)=>this.loc.extract(e,p,S),"string"),a=s(p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"","formatOffset"),u=s(()=>n?aR(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((p,S)=>n?cR(e,p):o(S?{month:p}:{month:p,day:"numeric"},"month"),"month"),l=s((p,S)=>n?uR(e,p):o(S?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(p=>{let S=t.macroTokenToFormatOpts(p);return S?this.formatWithSystemDefault(e,S):p},"maybeMacro"),f=s(p=>n?lR(e,p):o({era:p},"era"),"era"),h=s(p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return u();case"d":return i?o({day:"numeric"},"day"):this.num(e.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(e.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(e.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(p)}},"tokenToString");return HE(t.parseFormat(r),h)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>h=>{let p=i(h);if(p){let S=f.isNegativeDuration&&p!==f.largestUnit?n:1,m;return this.opts.signMode==="negativeLargestOnly"&&p!==f.largestUnit?m="never":this.opts.signMode==="all"?m="always":m="auto",this.num(d.get(p)*S,h.length,m)}else return h},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:h})=>f?d:d.concat(h),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return HE(a,o(c,l))}},Yg=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Gn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Gn,"combineRegexes");function Vn(...t){return e=>t.reduce(([r,n,i],o)=>{let[a,u,c]=o(e,i);return[{...r,...a},u||n,c]},[{},null,1]).slice(0,2)}s(Vn,"combineExtractors");function qn(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}s(qn,"parse");function Hg(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=ar(e[r+i]);return[n,null,r+i]}}s(Hg,"simpleParse");var zg=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,pR=`(?:${zg.source}?(?:\\[(${Yg.source})\\])?)?`,pd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Jg=RegExp(`${pd.source}${pR}`),md=RegExp(`(?:[Tt]${Jg.source})?`),mR=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,hR=/(\d{4})-?W(\d\d)(?:-?(\d))?/,ER=/(\d{4})-?(\d{3})/,gR=Hg("weekYear","weekNumber","weekDay"),yR=Hg("year","ordinal"),TR=/(\d{4})-(\d\d)-(\d\d)/,Zg=RegExp(`${pd.source} ?(?:${zg.source}|(${Yg.source}))?`),SR=RegExp(`(?: ${Zg.source})?`);function Wn(t,e,r){let n=t[e];return Q(n)?r:ar(n)}s(Wn,"int");function AR(t,e){return[{year:Wn(t,e),month:Wn(t,e+1,1),day:Wn(t,e+2,1)},null,e+3]}s(AR,"extractISOYmd");function Kn(t,e){return[{hours:Wn(t,e,0),minutes:Wn(t,e+1,0),seconds:Wn(t,e+2,0),milliseconds:dd(t[e+3])},null,e+4]}s(Kn,"extractISOTime");function ms(t,e){let r=!t[e]&&!t[e+1],n=ba(t[e+1],t[e+2]),i=r?null:Ke.instance(n);return[{},i,e+3]}s(ms,"extractISOOffset");function hs(t,e){let r=t[e]?Bt.create(t[e]):null;return[{},r,e+1]}s(hs,"extractIANAZone");var _R=RegExp(`^T?${pd.source}$`),OR=/^-?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 IR(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",h=s((p,S=!1)=>p!==void 0&&(S||p&&d)?-p:p,"maybeNegate");return[{years:h(Qr(r)),months:h(Qr(n)),weeks:h(Qr(i)),days:h(Qr(o)),hours:h(Qr(a)),minutes:h(Qr(u)),seconds:h(Qr(c),c==="-0"),milliseconds:h(dd(l),f)}]}s(IR,"extractISODuration");var wR={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function hd(t,e,r,n,i,o,a){let u={year:e.length===2?od(ar(e)):ar(e),month:$g.indexOf(r)+1,day:ar(n),hour:ar(i),minute:ar(o)};return a&&(u.second=ar(a)),t&&(u.weekday=t.length>3?Vg.indexOf(t)+1:qg.indexOf(t)+1),u}s(hd,"fromStrings");var DR=/^(?:(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 RR(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,h=hd(e,i,n,r,o,a,u),p;return c?p=wR[c]:l?p=0:p=ba(d,f),[h,new Ke(p)]}s(RR,"extractRFC2822");function CR(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(CR,"preprocessRFC2822");var bR=/^(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$/,xR=/^(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$/,vR=/^(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 zE(t){let[,e,r,n,i,o,a,u]=t;return[hd(e,i,n,r,o,a,u),Ke.utcInstance]}s(zE,"extractRFC1123Or850");function PR(t){let[,e,r,n,i,o,a,u]=t;return[hd(e,u,r,n,i,o,a),Ke.utcInstance]}s(PR,"extractASCII");var NR=Gn(mR,md),UR=Gn(hR,md),LR=Gn(ER,md),MR=Gn(Jg),Xg=Vn(AR,Kn,ms,hs),kR=Vn(gR,Kn,ms,hs),FR=Vn(yR,Kn,ms,hs),BR=Vn(Kn,ms,hs);function WR(t){return qn(t,[NR,Xg],[UR,kR],[LR,FR],[MR,BR])}s(WR,"parseISODate");function $R(t){return qn(CR(t),[DR,RR])}s($R,"parseRFC2822Date");function GR(t){return qn(t,[bR,zE],[xR,zE],[vR,PR])}s(GR,"parseHTTPDate");function VR(t){return qn(t,[OR,IR])}s(VR,"parseISODuration");var qR=Vn(Kn);function KR(t){return qn(t,[_R,qR])}s(KR,"parseISOTimeOnly");var QR=Gn(TR,SR),jR=Gn(Zg),YR=Vn(Kn,ms,hs);function HR(t){return qn(t,[QR,Xg],[jR,YR])}s(HR,"parseSQL");var JE="Invalid Duration",ey={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},zR={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...ey},Ze=146097/400,Mn=146097/4800,JR={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:Mn/7,days:Mn,hours:Mn*24,minutes:Mn*24*60,seconds:Mn*24*60*60,milliseconds:Mn*24*60*60*1e3},...ey},Yr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],ZR=Yr.slice(0).reverse();function kt(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new ge(n)}s(kt,"clone$1");function ty(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of ZR.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(ty,"durationToMillis");function ZE(t,e){let r=ty(t,e)<0?-1:1;Yr.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),Yr.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(ZE,"normalizeValues");function XE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(XE,"removeZeroes");var ge=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?JR:zR;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||te.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new _e(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:wa(e,t.normalizeUnit),loc:te.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(lr(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new _e(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=VR(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]=KR(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Duration is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new jl(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Sa(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?Ge.create(this.loc,n).formatDurationFromString(this,e):JE}toHuman(e={}){if(!this.isValid)return JE;let r=e.showZeros!==!1,n=Yr.map(i=>{let o=this.values[i];return Q(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=fd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},oe.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?ty(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 Yr)($n(r.values,i)||$n(this.values,i))&&(n[i]=r.get(i)+this.get(i));return kt(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=Wg(e(this.values[n],n));return kt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...wa(e,t.normalizeUnit)};return kt(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return kt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return ZE(this.matrix,e),kt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=XE(this.normalize().shiftToAll().toObject());return kt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of Yr)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;lr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else lr(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return ZE(this.matrix,r),kt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return kt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=XE(this.values);return kt(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}s(r,"eq");for(let n of Yr)if(!r(this.values[n],e.values[n]))return!1;return!0}},kn="Invalid Interval";function XR(t,e){return!t||!t.isValid?zr.invalid("missing or invalid start"):!e||!e.isValid?zr.invalid("missing or invalid end"):e<t?zr.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}s(XR,"validateStartEnd");var zr=class t{static{s(this,"Interval")}constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Interval is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new Ql(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=os(e),i=os(r),o=XR(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=ge.fromDurationLike(r),i=os(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=ge.fromDurationLike(r),i=os(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=oe.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=oe.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=ge.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=ge.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(os).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=ge.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:kn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Aa,r={}){return this.isValid?Ge.create(this.s.loc.clone(r),e).formatInterval(this):kn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:kn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:kn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:kn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:kn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):ge.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Hr=class{static{s(this,"Info")}static hasDST(e=ne.defaultZone){let r=oe.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Bt.isValidZone(e)}static normalizeZone(e){return ur(e,ne.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return te.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return te.create(r,null,"gregory").eras(e)}static features(){return{relative:kg(),localeWeek:Fg()}}};function eg(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(ge.fromMillis(n).as("days"))}s(eg,"dayDiff");function eC(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=eg(c,l);return(d-d%7)/7}],["days",eg]],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(eC,"highOrderDiffs");function tC(t,e,r,n){let[i,o,a,u]=eC(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=ge.fromObject(o,n);return l.length>0?ge.fromMillis(c,n).shiftTo(...l).plus(d):d}s(tC,"diff");var rC="missing Intl.DateTimeFormat.formatToParts support";function X(t,e=r=>r){return{regex:t,deser:([r])=>e(QD(r))}}s(X,"intUnit");var nC=String.fromCharCode(160),ry=`[ ${nC}]`,ny=new RegExp(ry,"g");function iC(t){return t.replace(/\./g,"\\.?").replace(ny,ry)}s(iC,"fixListRegex");function tg(t){return t.replace(/\./g,"").replace(ny," ").toLowerCase()}s(tg,"stripInsensitivities");function dt(t,e){return t===null?null:{regex:RegExp(t.map(iC).join("|")),deser:([r])=>t.findIndex(n=>tg(r)===tg(n))+e}}s(dt,"oneOf");function rg(t,e){return{regex:t,deser:([,r,n])=>ba(r,n),groups:e}}s(rg,"offset");function ma(t){return{regex:t,deser:([e])=>e}}s(ma,"simple");function sC(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(sC,"escapeToken");function oC(t,e){let r=lt(e),n=lt(e,"{2}"),i=lt(e,"{3}"),o=lt(e,"{4}"),a=lt(e,"{6}"),u=lt(e,"{1,2}"),c=lt(e,"{1,3}"),l=lt(e,"{1,6}"),d=lt(e,"{1,9}"),f=lt(e,"{2,4}"),h=lt(e,"{4,6}"),p=s(g=>({regex:RegExp(sC(g.val)),deser:([y])=>y,literal:!0}),"literal"),m=s(g=>{if(t.literal)return p(g);switch(g.val){case"G":return dt(e.eras("short"),0);case"GG":return dt(e.eras("long"),0);case"y":return X(l);case"yy":return X(f,od);case"yyyy":return X(o);case"yyyyy":return X(h);case"yyyyyy":return X(a);case"M":return X(u);case"MM":return X(n);case"MMM":return dt(e.months("short",!0),1);case"MMMM":return dt(e.months("long",!0),1);case"L":return X(u);case"LL":return X(n);case"LLL":return dt(e.months("short",!1),1);case"LLLL":return dt(e.months("long",!1),1);case"d":return X(u);case"dd":return X(n);case"o":return X(c);case"ooo":return X(i);case"HH":return X(n);case"H":return X(u);case"hh":return X(n);case"h":return X(u);case"mm":return X(n);case"m":return X(u);case"q":return X(u);case"qq":return X(n);case"s":return X(u);case"ss":return X(n);case"S":return X(c);case"SSS":return X(i);case"u":return ma(d);case"uu":return ma(u);case"uuu":return X(r);case"a":return dt(e.meridiems(),0);case"kkkk":return X(o);case"kk":return X(f,od);case"W":return X(u);case"WW":return X(n);case"E":case"c":return X(r);case"EEE":return dt(e.weekdays("short",!1),1);case"EEEE":return dt(e.weekdays("long",!1),1);case"ccc":return dt(e.weekdays("short",!0),1);case"cccc":return dt(e.weekdays("long",!0),1);case"Z":case"ZZ":return rg(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return rg(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return ma(/[a-z_+-/]{1,256}?/i);case" ":return ma(/[^\S\n\r]/);default:return p(g)}},"unitate")(t)||{invalidReason:rC};return m.token=t,m}s(oC,"unitForToken");var aC={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 uC(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=aC[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(uC,"tokenForPart");function cC(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(cC,"buildRegex");function lC(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if($n(r,a)){let u=r[a],c=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(n.slice(o,o+c))),o+=c}return[n,i]}else return[n,{}]}s(lC,"match");function dC(t){let e=s(o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},"toField"),r=null,n;return Q(t.z)||(r=Bt.create(t.z)),Q(t.Z)||(r||(r=new Ke(t.Z)),n=t.Z),Q(t.q)||(t.M=(t.q-1)*3+1),Q(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),Q(t.u)||(t.S=dd(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s(dC,"dateTimeFromMatches");var Wl=null;function fC(){return Wl||(Wl=oe.fromMillis(1555555555555)),Wl}s(fC,"getDummyDateTime");function pC(t,e){if(t.literal)return t;let r=Ge.macroTokenToFormatOpts(t.val),n=oy(r,e);return n==null||n.includes(void 0)?t:n}s(pC,"maybeExpandMacroToken");function iy(t,e){return Array.prototype.concat(...t.map(r=>pC(r,e)))}s(iy,"expandMacroTokens");var Da=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=iy(Ge.parseFormat(r),e),this.units=this.tokens.map(n=>oC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=cC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=lC(e,this.regex,this.handlers),[i,o,a]=n?dC(n):[null,null,void 0];if($n(n,"a")&&$n(n,"H"))throw new cr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function sy(t,e,r){return new Da(t,r).explainFromTokens(e)}s(sy,"explainFromTokens");function mC(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=sy(t,e,r);return[n,i,o,a]}s(mC,"parseFromTokens");function oy(t,e){if(!t)return null;let n=Ge.create(e,t).dtFormatter(fC()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>uC(a,t,o))}s(oy,"formatOptsToTokens");var $l="Invalid DateTime",ng=864e13;function us(t){return new Ve("unsupported zone",`the zone "${t.name}" is not supported`)}s(us,"unsupportedZone");function Gl(t){return t.weekData===null&&(t.weekData=Oa(t.c)),t.weekData}s(Gl,"possiblyCachedWeekData");function Vl(t){return t.localWeekData===null&&(t.localWeekData=Oa(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s(Vl,"possiblyCachedLocalWeekData");function jr(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new oe({...r,...e,old:r})}s(jr,"clone");function ay(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(ay,"fixOffset");function ha(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}s(ha,"tsToObj");function ga(t,e,r){return ay(Ca(t),e,r)}s(ga,"objToTS");function ig(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,Ia(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=ge.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),u=Ca(o),[c,l]=ay(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(ig,"adjustTime");function Fn(t,e,r,n,i,o){let{setZone:a,zone:u}=r;if(t&&Object.keys(t).length!==0||e){let c=e||u,l=oe.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return oe.invalid(new Ve("unparsable",`the input "${i}" can't be parsed as ${n}`))}s(Fn,"parseDataToDateTime");function Ea(t,e,r=!0){return t.isValid?Ge.create(te.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+=me(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=me(t.c.month),r==="month")return i;i+="-"}else if(i+=me(t.c.month),r==="month")return i;return i+=me(t.c.day),i}s(ql,"toISODate");function sg(t,e,r,n,i,o,a){let u=!r||t.c.millisecond!==0||t.c.second!==0,c="";switch(a){case"day":case"month":case"year":break;default:if(c+=me(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=me(t.c.minute),a==="minute")break;u&&(c+=":",c+=me(t.c.second))}else{if(c+=me(t.c.minute),a==="minute")break;u&&(c+=me(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=me(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=me(Math.trunc(-t.o/60)),c+=":",c+=me(Math.trunc(-t.o%60))):(c+="+",c+=me(Math.trunc(t.o/60)),c+=":",c+=me(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(sg,"toISOTime");var uy={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},hC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},EC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ya=["year","month","day","hour","minute","second","millisecond"],gC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],yC=["year","ordinal","hour","minute","second","millisecond"];function Ta(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Sa(t);return e}s(Ta,"normalizeUnit");function og(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Ta(t)}}s(og,"normalizeUnitWithLocalWeeks");function TC(t){if(cs===void 0&&(cs=ne.now()),t.type!=="iana")return t.offset(cs);let e=t.name,r=ad.get(e);return r===void 0&&(r=t.offset(cs),ad.set(e,r)),r}s(TC,"guessOffsetForZone");function ag(t,e){let r=ur(e.zone,ne.defaultZone);if(!r.isValid)return oe.invalid(us(r));let n=te.fromObject(e),i,o;if(Q(t.year))i=ne.now();else{for(let c of ya)Q(t[c])&&(t[c]=uy[c]);let a=Lg(t)||Mg(t);if(a)return oe.invalid(a);let u=TC(r);[i,o]=ga(t,u,r)}return new oe({ts:i,zone:r,loc:n,o})}s(ag,"quickDT");function ug(t,e,r){let n=Q(r.round)?!0:r.round,i=Q(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=fd(u,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(u,c)),"format"),a=s(u=>r.calendary?e.hasSame(t,u)?0:e.startOf(u).diff(t.startOf(u),u).get(u):e.diff(t,u).get(u),"differ");if(r.unit)return o(a(r.unit),r.unit);for(let u of r.units){let c=a(u);if(Math.abs(c)>=1)return o(c,u)}return o(t>e?-0:0,r.units[r.units.length-1])}s(ug,"diffRelative");function cg(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(cg,"lastOpts");var cs,ad=new Map,oe=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||ne.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ve("invalid input"):null)||(r.isValid?null:us(r));this.ts=Q(e.ts)?ne.now():e.ts;let i=null,o=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,o]=[e.old.c,e.old.o];else{let u=lr(e.o)&&!e.old?e.o:r.offset(this.ts);i=ha(this.ts,u),n=Number.isNaN(i.year)?new Ve("invalid input"):null,i=n?null:i,o=n?null:u}this._zone=r,this.loc=e.loc||te.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=cg(arguments),[n,i,o,a,u,c,l]=r;return ag({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=cg(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,ag({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=JD(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=ur(r.zone,ne.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:te.fromObject(r)}):t.invalid(us(i))}static fromMillis(e,r={}){if(lr(e))return e<-ng||e>ng?t.invalid("Timestamp out of range"):new t({ts:e,zone:ur(r.zone,ne.defaultZone),loc:te.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(lr(e))return new t({ts:e*1e3,zone:ur(r.zone,ne.defaultZone),loc:te.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=ur(r.zone,ne.defaultZone);if(!n.isValid)return t.invalid(us(n));let i=te.fromObject(r),o=wa(e,og),{minDaysInFirstWeek:a,startOfWeek:u}=QE(o,i),c=ne.now(),l=Q(r.specificOffset)?n.offset(c):r.specificOffset,d=!Q(o.ordinal),f=!Q(o.year),h=!Q(o.month)||!Q(o.day),p=f||h,S=o.weekYear||o.weekNumber;if((p||d)&&S)throw new cr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&d)throw new cr("Can't mix ordinal dates with month/day");let m=S||o.weekday&&!p,g,y,I=ha(c,l);m?(g=gC,y=hC,I=Oa(I,a,u)):d?(g=yC,y=EC,I=Bl(I)):(g=ya,y=uy);let O=!1;for(let Y of g){let we=o[Y];Q(we)?O?o[Y]=y[Y]:o[Y]=I[Y]:O=!0}let w=m?YD(o,a,u):d?HD(o):Lg(o),T=w||Mg(o);if(T)return t.invalid(T);let _=m?qE(o,a,u):d?KE(o):o,[U,R]=ga(_,l,n),k=new t({ts:U,zone:n,o:R,loc:i});return o.weekday&&p&&e.weekday!==k.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${k.toISO()}`):k.isValid?k:t.invalid(k.invalid)}static fromISO(e,r={}){let[n,i]=WR(e);return Fn(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=$R(e);return Fn(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=GR(e);return Fn(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=mC(a,e,r);return d?t.invalid(d):Fn(u,c,n,`format ${r}`,e,l)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=HR(e);return Fn(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the DateTime is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new Kl(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=oy(e,te.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return iy(Ge.parseFormat(e),te.fromObject(r)).map(i=>i.val).join("")}static resetCache(){cs=void 0,ad.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Gl(this).weekYear:NaN}get weekNumber(){return this.isValid?Gl(this).weekNumber:NaN}get weekday(){return this.isValid?Gl(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Vl(this).weekday:NaN}get localWeekNumber(){return this.isValid?Vl(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Vl(this).weekYear:NaN}get ordinal(){return this.isValid?Bl(this.c).ordinal:NaN}get monthShort(){return this.isValid?Hr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Hr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Hr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Hr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=Ca(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ha(c,a),f=ha(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[jr(this,{ts:c}),jr(this,{ts:l})]:[this]}get isInLeapYear(){return ps(this.year)}get daysInMonth(){return Ia(this.year,this.month)}get daysInYear(){return this.isValid?Bn(this.year):NaN}get weeksInWeekYear(){return this.isValid?fs(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?fs(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=Ge.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ke.instance(e),r)}toLocal(){return this.setZone(ne.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=ur(e,ne.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=ga(a,o,e)}return jr(this,{ts:i,zone:e})}else return t.invalid(us(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return jr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=wa(e,og),{minDaysInFirstWeek:n,startOfWeek:i}=QE(r,this.loc),o=!Q(r.weekYear)||!Q(r.weekNumber)||!Q(r.weekday),a=!Q(r.ordinal),u=!Q(r.year),c=!Q(r.month)||!Q(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new cr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new cr("Can't mix ordinal dates with month/day");let f;o?f=qE({...Oa(this.c,n,i),...r},n,i):Q(r.ordinal)?(f={...this.toObject(),...r},Q(r.day)&&(f.day=Math.min(Ia(f.year,f.month),f.day))):f=KE({...Bl(this.c),...r});let[h,p]=ga(f,this.o,this.zone);return jr(this,{ts:h,o:p})}plus(e){if(!this.isValid)return this;let r=ge.fromDurationLike(e);return jr(this,ig(this,r))}minus(e){if(!this.isValid)return this;let r=ge.fromDurationLike(e).negate();return jr(this,ig(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=ge.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?Ge.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):$l}toLocaleString(e=Aa,r={}){return this.isValid?Ge.create(this.loc.clone(r),e).formatDateTime(this):$l}toLocaleParts(e={}){return this.isValid?Ge.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:o=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=Ta(a);let u=e==="extended",c=ql(this,u,a);return ya.indexOf(a)>=3&&(c+="T"),c+=sg(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?ql(this,e==="extended",Ta(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=Ta(u),(i&&ya.indexOf(u)>=3?"T":"")+sg(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():$l}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return ge.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=ZD(r).map(ge.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=tC(u,c,o,i);return a?l.negate():l}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?zr.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(r,n)<=i&&i<=o.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],o=e.unit;return Array.isArray(e.unit)&&(i=e.unit,o=void 0),ug(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?ug(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 jE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return jE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return sy(a,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,o=te.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Da(o,e)}static fromFormatParser(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(r.locale))throw new _e(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${r.locale}`);let{result:u,zone:c,specificOffset:l,invalidReason:d}=r.explainFromTokens(e);return d?t.invalid(d):Fn(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return Aa}static get DATE_MED(){return lg}static get DATE_MED_WITH_WEEKDAY(){return bD}static get DATE_FULL(){return dg}static get DATE_HUGE(){return fg}static get TIME_SIMPLE(){return pg}static get TIME_WITH_SECONDS(){return mg}static get TIME_WITH_SHORT_OFFSET(){return hg}static get TIME_WITH_LONG_OFFSET(){return Eg}static get TIME_24_SIMPLE(){return gg}static get TIME_24_WITH_SECONDS(){return yg}static get TIME_24_WITH_SHORT_OFFSET(){return Tg}static get TIME_24_WITH_LONG_OFFSET(){return Sg}static get DATETIME_SHORT(){return Ag}static get DATETIME_SHORT_WITH_SECONDS(){return _g}static get DATETIME_MED(){return Og}static get DATETIME_MED_WITH_SECONDS(){return Ig}static get DATETIME_MED_WITH_WEEKDAY(){return xD}static get DATETIME_FULL(){return wg}static get DATETIME_FULL_WITH_SECONDS(){return Dg}static get DATETIME_HUGE(){return Rg}static get DATETIME_HUGE_WITH_SECONDS(){return Cg}};function os(t){if(oe.isDateTime(t))return t;if(t&&t.valueOf&&lr(t.valueOf()))return oe.fromJSDate(t);if(t&&typeof t=="object")return oe.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(os,"friendlyDateTime");var SC="3.7.1";Qe.DateTime=oe;Qe.Duration=ge;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Bt;Qe.Info=Hr;Qe.Interval=zr;Qe.InvalidZone=_a;Qe.Settings=ne;Qe.SystemZone=ds;Qe.VERSION=SC;Qe.Zone=dr});var dy=q((PB,ly)=>{"use strict";var Jr=cy();j.prototype.addYear=function(){this._date=this._date.plus({years:1})};j.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};j.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};j.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};j.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};j.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};j.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};j.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};j.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};j.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};j.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};j.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};j.prototype.getDate=function(){return this._date.day};j.prototype.getFullYear=function(){return this._date.year};j.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};j.prototype.getMonth=function(){return this._date.month-1};j.prototype.getHours=function(){return this._date.hour};j.prototype.getMinutes=function(){return this._date.minute};j.prototype.getSeconds=function(){return this._date.second};j.prototype.getMilliseconds=function(){return this._date.millisecond};j.prototype.getTime=function(){return this._date.valueOf()};j.prototype.getUTCDate=function(){return this._getUTC().day};j.prototype.getUTCFullYear=function(){return this._getUTC().year};j.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};j.prototype.getUTCMonth=function(){return this._getUTC().month-1};j.prototype.getUTCHours=function(){return this._getUTC().hour};j.prototype.getUTCMinutes=function(){return this._getUTC().minute};j.prototype.getUTCSeconds=function(){return this._getUTC().second};j.prototype.toISOString=function(){return this._date.toUTC().toISO()};j.prototype.toJSON=function(){return this._date.toJSON()};j.prototype.setDate=function(t){this._date=this._date.set({day:t})};j.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};j.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};j.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};j.prototype.setHours=function(t){this._date=this._date.set({hour:t})};j.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};j.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};j.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};j.prototype._getUTC=function(){return this._date.toUTC()};j.prototype.toString=function(){return this.toDate().toString()};j.prototype.toDate=function(){return this._date.toJSDate()};j.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};j.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function j(t,e){var r={zone:e};if(t?t instanceof j?this._date=t._date:t instanceof Date?this._date=Jr.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Jr.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Jr.DateTime.fromISO(t,r),this._date.isValid||(this._date=Jr.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Jr.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Jr.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Jr.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}s(j,"CronDate");ly.exports=j});var my=q((UB,py)=>{"use strict";function Zr(t){return{start:t,count:1}}s(Zr,"buildRange");function fy(t,e){t.end=e,t.step=e-t.start,t.count=2}s(fy,"completeRangeWithItem");function Ed(t,e,r){e&&(e.count===2?(t.push(Zr(e.start)),t.push(Zr(e.end))):t.push(e)),r&&t.push(r)}s(Ed,"finalizeCurrentRange");function AC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Ed(e,r,Zr(i)),r=void 0):r?r.count===1?fy(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Zr(r.start)),r=Zr(r.end),fy(r,i)):(Ed(e,r),r=Zr(i)):r=Zr(i)}return Ed(e,r),e}s(AC,"compactField");py.exports=AC});var Ey=q((MB,hy)=>{"use strict";var _C=my();function OC(t,e,r){var n=_C(t);if(n.length===1){var i=n[0],o=i.step;if(o===1&&i.start===e&&i.end===r)return"*";if(o!==1&&i.start===e&&i.end===r-o+1)return"*/"+o}for(var a=[],u=0,c=n.length;u<c;++u){var l=n[u];if(l.count===1){a.push(l.start);continue}var o=l.step;if(l.step===1){a.push(l.start+"-"+l.end);continue}var d=l.start==0?l.count-1:l.count;l.step*d>l.end?a=a.concat(Array.from({length:l.end-l.start+1}).map(function(h,p){var S=l.start+p;return(S-l.start)%l.step===0?S:null}).filter(function(h){return h!=null})):l.end===r-l.step+1?a.push(l.start+"/"+l.step):a.push(l.start+"-"+l.end+"/"+l.step)}return a.join(",")}s(OC,"stringifyField");hy.exports=OC});var Ty=q((FB,yy)=>{"use strict";var Xr=dy(),IC=Ey(),gy=1e4;function L(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Xr(e.currentDate,this._tz),this._startDate=e.startDate?new Xr(e.startDate,this._tz):null,this._endDate=e.endDate?new Xr(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=L._freezeFields(t)}s(L,"CronExpression");L.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];L.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};L.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];L.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];L.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};L.parseDefaults=["0","*","*","*","*","*"];L.standardValidCharacters=/^[,*\d/-]+$/;L.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;L.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;L.validCharacters={second:L.standardValidCharacters,minute:L.standardValidCharacters,hour:L.standardValidCharacters,dayOfMonth:L.dayOfMonthValidCharacters,month:L.standardValidCharacters,dayOfWeek:L.dayOfWeekValidCharacters};L._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");L._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=L.aliases[e];r=r.replace(/[a-z]{3}/gi,function(c){if(c=c.toLowerCase(),typeof i[c]<"u")return i[c];throw new Error('Validation error, cannot resolve alias "'+c+'"')});break}if(!L.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function o(c){var l=[];function d(S){if(S instanceof Array)for(var m=0,g=S.length;m<g;m++){var y=S[m];if(L._isValidConstraintChar(n,y)){l.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);l.push(y)}else{if(L._isValidConstraintChar(n,S)){l.push(S);return}var I=+S;if(Number.isNaN(I)||I<n.min||I>n.max)throw new Error("Constraint error, got value "+S+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(I=I%7),l.push(I)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(S){return S.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var h=0,p=f.length;h<p;h++)d(a(f[h]));else d(a(c));return l.sort(L._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var h=+f[0],p=+f[1];if(Number.isNaN(h)||Number.isNaN(p)||h<n.min||p>n.max)throw new Error("Constraint error, got range "+h+"-"+p+" expected range "+n.min+"-"+n.max);if(h>p)throw new Error("Invalid range: "+c);var S=+l;if(Number.isNaN(S)||S<=0)throw new Error("Constraint error, cannot repeat at every "+S+" time.");e==="dayOfWeek"&&p%7===0&&d.push(0);for(var m=h,g=p;m<=g;m++){var y=d.indexOf(m)!==-1;!y&&S>0&&S%l===0?(S=1,d.push(m)):S++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");L._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};L._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=L.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(L._sortCompareFn)}};L._freezeFields=function(t){for(var e=0,r=L.map.length;e<r;++e){var n=L.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};L.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};L.prototype._findSchedule=s(function(e){function r(y,I){for(var O=0,w=I.length;O<w;O++)if(I[O]>=y)return I[O]===y;return I[0]===y}s(r,"matchSchedule");function n(y,I){if(I<6){if(y.getDate()<8&&I===1)return!0;var O=y.getDate()%7?1:0,w=y.getDate()-y.getDate()%7,T=Math.floor(w/7)+O;return T===I}return!1}s(n,"isNthDayMatch");function i(y){return y.length>0&&y.some(function(I){return typeof I=="string"&&I.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new Xr(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(y){return y.some(function(I){if(!i([I]))return!1;var O=Number.parseInt(I[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+I);return a.getDay()===O&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<gy;){if(d++,e){if(u&&a.getTime()-u.getTime()<0)throw new Error("Out of the timespan range")}else if(c&&c.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var h=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(h=h||a.isLastDayOfMonth());var p=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||f(this.fields.dayOfWeek));var S=this.fields.dayOfMonth.length>=L.daysInMonth[a.getMonth()],m=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,g=a.getHours();if(!h&&(!p||m)){this._applyTimezoneShift(a,o,"Day");continue}if(!S&&m&&!h){this._applyTimezoneShift(a,o,"Day");continue}if(S&&!m&&!p){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(g,this.fields.hour)){if(this._dstEnd===g&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==g){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(g-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>=gy)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Xr(a,this._tz),this._hasIterated=!0,a},"_findSchedule");L.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");L.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");L.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};L.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};L.prototype.iterate=s(function(e,r){var n=[];if(e>=0)for(var i=0,o=e;i<o;i++)try{var a=this.next();n.push(a),r&&r(a,i)}catch{break}else for(var i=0,o=e;i>o;i--)try{var a=this.prev();n.push(a),r&&r(a,i)}catch{break}return n},"iterate");L.prototype.reset=s(function(e){this._currentDate=new Xr(e||this._options.currentDate)},"reset");L.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=L.map.length;n<i;++n){var o=L.map[n],a=this.fields[o],u=L.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:L.daysInMonth[this.fields.month[0]-1]}:o==="dayOfWeek"&&(u={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),r.push(IC(a,u.min,u.max))}return r.join(" ")},"stringify");L.parse=s(function(e,r){var n=this;typeof r=="function"&&(r={});function i(o,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new Xr(void 0,n._tz)),L.predefined[o]&&(o=L.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=L.map.length-c.length,d=0,f=L.map.length;d<f;++d){var h=L.map[d],p=c[c.length>f?d:d-l];if(d<l||!p)u.push(L._parseField(h,L.parseDefaults[d],L.constraints[d]));else{var S=h==="dayOfWeek"?I(p):p;u.push(L._parseField(h,S,L.constraints[d]))}}for(var m={},d=0,f=L.map.length;d<f;d++){var g=L.map[d];m[g]=u[d]}var y=L._handleMaxDaysInMonth(m);return m.dayOfMonth=y||m.dayOfMonth,new L(m,a);function I(O){var w=O.split("#");if(w.length>1){var T=+w[w.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(w.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=T,w[0]}return O}s(I,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");L.fieldsToExpression=s(function(e,r){function n(h,p,S){if(!p)throw new Error("Validation error, Field "+h+" is missing");if(p.length===0)throw new Error("Validation error, Field "+h+" contains no values");for(var m=0,g=p.length;m<g;m++){var y=p[m];if(!L._isValidConstraintChar(S,y)&&(typeof y!="number"||Number.isNaN(y)||y<S.min||y>S.max))throw new Error("Constraint error, got value "+y+" expected range "+S.min+"-"+S.max)}}s(n,"validateConstraints");for(var i={},o=0,a=L.map.length;o<a;++o){var u=L.map[o],c=e[u];n(u,c,L.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(L._sortCompareFn).filter(function(h,p,S){return!p||h!==S[p-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=L._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new L(i,r||{})},"fieldsToExpression");yy.exports=L});var Ay=q((WB,Sy)=>{"use strict";var va=Ty();function fr(){}s(fr,"CronParser");fr._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:va.parse(e)};if(r.length>6)return{interval:va.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");fr.parseExpression=s(function(e,r){return va.parse(e,r)},"parseExpression");fr.fieldsToExpression=s(function(e,r){return va.fieldsToExpression(e,r)},"fieldsToExpression");fr.parseString=s(function(e){for(var r=e.split(`
|
|
5
|
-
`),n={variables:{},expressions:[],errors:{}},i=0,o=r.length;i<o;i++){var a=r[i],u=null,c=a.trim();if(c.length>0){if(c.match(/^#/))continue;if(u=c.match(/^(.*)=(.*)$/))n.variables[u[1]]=u[2];else{var l=null;try{l=fr._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");fr.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,fr.parseString(i.toString()))})},"parseFile");Sy.exports=fr});var XM={};P(XM,{APIWarning:()=>In,ActiveContentFileError:()=>Bu,AutomationViewMode:()=>Fa,BUDIBASE_DATASOURCE_TYPE:()=>Fd,BadRequestError:()=>lo,BudibaseError:()=>co,Config:()=>qd,Cookie:()=>en,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Gd,DEFAULT_EXPENSES_TABLE_ID:()=>$d,DEFAULT_INVENTORY_TABLE_ID:()=>Wd,DEFAULT_JOBS_TABLE_ID:()=>Bd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>jn,DesignDocuments:()=>_s,DocumentType:()=>ce,Duration:()=>pe,DurationType:()=>Kf,EmailUnavailableError:()=>zt,Endpoint:()=>Bc,EndpointGroup:()=>wn,EndpointGroupList:()=>Fo,FeatureDisabledError:()=>Gu,FeatureDisabledWarning:()=>wc,ForbiddenError:()=>Wu,GlobalRole:()=>Vd,HTTPError:()=>ke,Header:()=>We,InternalTable:()=>Pt,InvalidAPIKeyWarning:()=>_i,MAX_VALID_DATE:()=>$a,MIN_VALID_DATE:()=>qy,NotFoundError:()=>Fu,NotImplementedError:()=>$u,RedisClient:()=>Oe,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>kd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>As,UnexpectedError:()=>ku,UsageLimitError:()=>Vu,UsageLimitWarning:()=>Ic,UserStatus:()=>Wa,ViewName:()=>Wt,WORKSPACE_DEV:()=>Ba,WORKSPACE_DEV_PREFIX:()=>rt,WORKSPACE_PREFIX:()=>tt,accounts:()=>yn,auth:()=>Rm,blacklist:()=>vm,cache:()=>Do,configs:()=>Jt,constants:()=>Kd,context:()=>ue,csv:()=>Vm,db:()=>Sr,docIds:()=>Uf,docUpdates:()=>Nm,encryption:()=>Sm,env:()=>E,errors:()=>Ku,events:()=>Ei,features:()=>hm,getErrorMessage:()=>nA,getPublicError:()=>qu,init:()=>ZM,installation:()=>Zu,locks:()=>gn,logging:()=>eo,middleware:()=>Dm,objectStore:()=>cp,permissions:()=>fm,platform:()=>ao,plugins:()=>bm,queue:()=>hp,redis:()=>xm,roles:()=>dm,security:()=>bp,sessions:()=>Qu,setEnv:()=>Is,sql:()=>Gm,tenancy:()=>JM,timers:()=>Ou,userUtils:()=>Vp,users:()=>yi,utils:()=>oi,warnings:()=>Am,withEnv:()=>Hy});module.exports=pO(XM);var Jt={};P(Jt,{analyticsEnabled:()=>Hu,generateConfigID:()=>vo,getAIConfig:()=>c0,getConfig:()=>ve,getDefaultGoogleConfig:()=>Zp,getGoogleConfig:()=>lc,getGoogleDatasourceConfig:()=>em,getOIDCConfig:()=>o0,getOIDCConfigById:()=>tm,getOIDCLogosDoc:()=>i0,getPlatformUrl:()=>Po,getRecaptchaConfig:()=>l0,getSCIMConfig:()=>u0,getSMTPConfig:()=>a0,getSMTPConfigDoc:()=>n_,getSettingsConfig:()=>Xp,getSettingsConfigDoc:()=>Ti,getTranslationsConfig:()=>r0,getTranslationsConfigDoc:()=>r_,save:()=>t0});var mO=["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"],hO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Qm=[...mO,...hO],jm={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0,"resource:copied_to_workspace":"{{ resource.type }} copied to workspace"};var Wc=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Wc||{}),$c=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.SENSITIVE_LONGFORM="sensitiveLongForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))($c||{}),Wo=(y=>(y.AIRTABLE="AIRTABLE",y.ARANGODB="ARANGODB",y.BUDIBASE="BUDIBASE",y.COUCHDB="COUCHDB",y.DYNAMODB="DYNAMODB",y.ELASTICSEARCH="ELASTICSEARCH",y.FIRESTORE="FIRESTORE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.MONGODB="MONGODB",y.MYSQL="MYSQL",y.ORACLE="ORACLE",y.POSTGRES="POSTGRES",y.REDIS="REDIS",y.REST="REST",y.S3="S3",y.SNOWFLAKE="SNOWFLAKE",y.SQL_SERVER="SQL_SERVER",y))(Wo||{});var Gc=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(Gc||{});var EO=B(require("lodash/isPlainObject"));var Mr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Mr||{}),ir=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(ir||{}),Rn=(e=>(e.RANGE="range",e))(Rn||{}),Di=(r=>(r.AND="$and",r.OR="$or",r))(Di||{});function $o(t){return Object.values(Di).includes(t)}s($o,"isLogicalSearchOperator");function Ym(t){return Object.values(Mr).includes(t)}s(Ym,"isBasicSearchOperator");function Hm(t){return Object.values(ir).includes(t)}s(Hm,"isArraySearchOperator");function Go(t){return Object.values(Rn).includes(t)}s(Go,"isRangeSearchOperator");var zm=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Ri=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Ri||{});var Ci=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ci||{});var Vo=(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))(Vo||{});var qo=s(t=>t.hosting==="cloud","isCloudAccount");var Ko=s(t=>t.authType==="sso","isSSOAccount");var C="_",Ne="\uFFF0",sr=s(t=>`${t}${C}`,"prefixed"),ce=(V=>(V.USER="us",V.GROUP="gr",V.CONFIG="config",V.TEMPLATE="template",V.WORKSPACE="app",V.DEV="dev",V.WORKSPACE_DEV="app_dev",V.WORKSPACE_METADATA="app_metadata",V.ROLE="role",V.DEV_INFO="devinfo",V.AUTOMATION_LOG="log_au",V.ACCOUNT_METADATA="acc_metadata",V.PLUGIN="plg",V.DATASOURCE="datasource",V.DATASOURCE_PLUS="datasource_plus",V.APP_BACKUP="backup",V.TABLE="ta",V.ROW="ro",V.AUTOMATION="au",V.LINK="li",V.WEBHOOK="wh",V.INSTANCE="inst",V.LAYOUT="layout",V.SCREEN="screen",V.QUERY="query",V.DEPLOYMENTS="deployments",V.METADATA="metadata",V.MEM_VIEW="view",V.USER_FLAG="flag",V.AUTOMATION_METADATA="meta_au",V.AUDIT_LOG="al",V.SCIM_LOG="scimlog",V.ROW_ACTIONS="ra",V.OAUTH2_CONFIG="oauth2",V.OAUTH2_CONFIG_LOG="oauth2log",V.AGENT="agent",V.CHAT_APP="chatapp",V.CHAT_CONVERSATION="chatconvo",V.AGENT_TOOL_SOURCE="agenttoolsource",V.AGENT_FILE="agentfile",V.AI_CONFIG="aiconfig",V.LITELLM_KEY="litellmkey",V.VECTOR_STORE="vectordb",V.WORKSPACE_APP="workspace_app",V.WORKSPACE_FAVOURITE="workspace_favourite",V.AUTO_COLUMN_STATE="autocolumn_state",V))(ce||{});var Pt=(e=>(e.USER_METADATA="ta_users",e))(Pt||{});function Qo(t){return!!t.providerType}s(Qo,"isSSOUser");var Vc=(d=>(d.OBJECT="object",d.STRING="string",d.BOOLEAN="boolean",d.NUMBER="number",d.ARRAY="array",d.JSON="json",d.DATE="date",d.DATETIME="datetime",d.ATTACHMENT="attachment",d.LONGFORM="longform",d))(Vc||{}),qc=(_=>(_.TABLE="table",_.ROW="row",_.ROWS="rows",_.WIDE="wide",_.QUERY="query",_.QUERY_PARAMS="queryParams",_.QUERY_LIMIT="queryLimit",_.LOOP_OPTION="loopOption",_.ITEM="item",_.CODE="code",_.FILTERS="filters",_.COLUMN="column",_.TRIGGER_SCHEMA="triggerSchema",_.CRON="cron",_.WEBHOOK_URL="webhookUrl",_.AUTOMATION="automation",_.AUTOMATION_FIELDS="automationFields",_.MULTI_ATTACHMENTS="multi_attachments",_.TRIGGER_FILTER="trigger_filter",_.CATEGORIES="categories",_.AGENT="agent",_.OUTPUT_SCHEMA="outputSchema",_))(qc||{}),Kc=(c=>(c.ROW_SAVED="ROW_SAVED",c.ROW_UPDATED="ROW_UPDATED",c.ROW_DELETED="ROW_DELETED",c.WEBHOOK="WEBHOOK",c.APP="APP",c.CRON="CRON",c.ROW_ACTION="ROW_ACTION",c.EMAIL="EMAIL",c))(Kc||{});var Qc=(D=>(D.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",D.CREATE_ROW="CREATE_ROW",D.GET_ROW="GET_ROW",D.UPDATE_ROW="UPDATE_ROW",D.DELETE_ROW="DELETE_ROW",D.QUERY_ROWS="QUERY_ROWS",D.EXECUTE_BASH="EXECUTE_BASH",D.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",D.EXECUTE_SCRIPT="EXECUTE_SCRIPT",D.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",D.EXECUTE_QUERY="EXECUTE_QUERY",D.SERVER_LOG="SERVER_LOG",D.DELAY="DELAY",D.FILTER="FILTER",D.API_REQUEST="API_REQUEST",D.LOOP="LOOP",D.COLLECT="COLLECT",D.OPENAI="OPENAI",D.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",D.BRANCH="BRANCH",D.CLASSIFY_CONTENT="CLASSIFY_CONTENT",D.PROMPT_LLM="PROMPT_LLM",D.TRANSLATE="TRANSLATE",D.SUMMARISE="SUMMARISE",D.GENERATE_TEXT="GENERATE_TEXT",D.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",D.EXTRACT_STATE="EXTRACT_STATE",D.LOOP_V2="LOOP_V2",D.AGENT="AGENT",D.discord="discord",D.slack="slack",D.zapier="zapier",D.integromat="integromat",D.n8n="n8n",D))(Qc||{}),Jm=[...Object.values(Qc),...Object.values(Kc)];function Zm(t){return t.stepId==="BRANCH"}s(Zm,"isBranchStep");var jc="bb_internal";var Xm=["attachment_single","attachment","signature_single","bb_reference","json","array"];var Kd={};P(Kd,{AutomationViewMode:()=>Fa,BUDIBASE_DATASOURCE_TYPE:()=>Fd,Config:()=>qd,Cookie:()=>en,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Gd,DEFAULT_EXPENSES_TABLE_ID:()=>$d,DEFAULT_INVENTORY_TABLE_ID:()=>Wd,DEFAULT_JOBS_TABLE_ID:()=>Bd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>jn,DesignDocuments:()=>_s,DocumentType:()=>ce,GlobalRole:()=>Vd,Header:()=>We,InternalTable:()=>Pt,MAX_VALID_DATE:()=>$a,MIN_VALID_DATE:()=>qy,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>kd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>As,UserStatus:()=>Wa,ViewName:()=>Wt,WORKSPACE_DEV:()=>Ba,WORKSPACE_DEV_PREFIX:()=>rt,WORKSPACE_PREFIX:()=>tt});var We=(O=>(O.API_KEY="x-budibase-api-key",O.LICENSE_KEY="x-budibase-license-key",O.API_VER="x-budibase-api-version",O.APP_ID="x-budibase-app-id",O.SESSION_ID="x-budibase-session-id",O.CLIENT="x-budibase-client",O.TYPE="x-budibase-type",O.PREVIEW_ROLE="x-budibase-role",O.TENANT_ID="x-budibase-tenant-id",O.VERIFICATION_CODE="x-budibase-verification-code",O.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",O.RESET_PASSWORD_CODE="x-budibase-reset-password-code",O.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",O.TOKEN="x-budibase-token",O.CSRF_TOKEN="x-csrf-token",O.CORRELATION_ID="x-budibase-correlation-id",O.AUTHORIZATION="authorization",O.MIGRATING_APP="x-budibase-migrating-app",O.COOKIE="cookie",O))(We||{});var Cn={WORKSPACES:"/builder/workspaces",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},jo={ACCOUNT:"/portal/account",BILLING:"/portal/billing",UPGRADE:"/portal/upgrade"};var $e={Equals:{value:"equal",label:"Equals"},NotEquals:{value:"notEqual",label:"Not equals"},Empty:{value:"empty",label:"Is empty"},NotEmpty:{value:"notEmpty",label:"Is not empty"},StartsWith:{value:"string",label:"Starts with"},Like:{value:"fuzzy",label:"Like"},MoreThan:{value:"rangeLow",label:"More than or equal to"},LessThan:{value:"rangeHigh",label:"Less than or equal to"},Contains:{value:"contains",label:"Contains"},NotContains:{value:"notContains",label:"Does not contain"},In:{value:"oneOf",label:"Is in"},ContainsAny:{value:"containsAny",label:"Has any"}},eh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var bn="datasource_internal_bb_default";var mr={};P(mr,{ColumnSplitter:()=>Id,NoEmptyFilterStrings:()=>Fy,buildQuery:()=>By,cleanupQuery:()=>Rd,fixupFilterArrays:()=>bd,getKeyNumbering:()=>Cd,getValidOperatorsForType:()=>JC,hasFilters:()=>wd,limit:()=>$y,recurseLogicalOperators:()=>Dd,removeKeyNumbering:()=>Yo,runQuery:()=>Ua,search:()=>eb,sort:()=>Wy,splitFiltersArray:()=>Ho});var Qn=B(th());var _t={};P(_t,{filterValueToLabel:()=>_O,hasSchema:()=>OO,isSupportedUserSearch:()=>ih,nameToUrl:()=>CO,parallelForeach:()=>AO,processSearchFilters:()=>zc,toMap:()=>wO,trimOtherProps:()=>IO,unreachable:()=>SO});var nh=B(require("lodash/pick"));var TO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function SO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(SO,"unreachable");async function AO(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(AO,"parallelForeach");function _O(){return Object.keys($e).reduce((t,e)=>{let n=$e[e];return t[n.value]=n.label,t},{})}s(_O,"filterValueToLabel");function OO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(OO,"hasSchema");function IO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(IO,"trimOtherProps");function ih(t){let e=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if($o(o)){for(let l of t[o].conditions)if(!ih(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(ih,"isSupportedUserSearch");function zc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Ho(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,nh.default)(i,TO);return o.field=Yo(o.field),o})}]}}s(zc,"processSearchFilters");function wO(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(wO,"toMap");var DO=s(t=>t?t.trim():null,"resolveWorkspaceName"),RO=s(t=>{let e,r=DO(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),CO=s(t=>{let e=RO(t);return bO(e)},"nameToUrl"),bO=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var Le={};P(Le,{accountPortalAccountUrl:()=>Cy,accountPortalBillingUrl:()=>by,accountPortalUpgradeUrl:()=>xy,builderAppsUrl:()=>Ly,builderSettingsAuthUrl:()=>Ny,builderSettingsEmailUrl:()=>Py,builderSettingsPeopleUsersUrl:()=>Uy,builderWorkspacesUrl:()=>vy,cancelableTimeout:()=>sh,cron:()=>jC,deepGet:()=>Jc,duplicateName:()=>$C,escapeHtml:()=>UO,formatBytes:()=>QC,getSequentialName:()=>GC,getUserColor:()=>vO,getUserInitials:()=>xO,getUserLabel:()=>PO,isGoogleSheets:()=>LO,isSQL:()=>MO,lists:()=>_d,retry:()=>kO,roles:()=>Ad,schema:()=>Es,structuredOutput:()=>yd,urlHelpers:()=>KC,views:()=>Sd,wait:()=>Zc,withTimeout:()=>NO});var Jc=s((t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},"deepGet"),xO=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"),vO=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"),PO=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function sh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(sh,"cancelableTimeout");async function NO(t,e){let[r,n]=sh(t),i=await Promise.race([e(),r]);return n(),i}s(NO,"withTimeout");var UO=s(t=>t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeHtml");function LO(t){return t==="GOOGLE_SHEETS"}s(LO,"isGoogleSheets");function MO(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(MO,"isSQL");async function Zc(t){return new Promise(e=>setTimeout(e,t))}s(Zc,"wait");async function kO(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let o=1.5**i*1e3*(Math.random()+.5);await Zc(o);try{return await t()}catch(a){n=a}}throw n}s(kO,"retry");var Oy=B(Ot()),Iy=B(Ay());var _y="(Input cron: ",wC={"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 DC(t){let e=[];for(let r of t){r.includes(_y)&&(r=r.split(_y)[0].trim());for(let[n,i]of Object.entries(wC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(DC,"improveErrors");function wy(t,e=4){let r=Iy.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}s(wy,"getNextExecutionDates");function Dy(t){let e=(0,Oy.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:DC(e.getError())}}s(Dy,"validate");var Es={};P(Es,{decodeNonAscii:()=>gd,encodeNonAscii:()=>bC,isDeprecatedSingleUserColumn:()=>RC,isNumeric:()=>xC,isRequired:()=>CC});function RC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(RC,"isDeprecatedSingleUserColumn");function CC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(CC,"isRequired");function bC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(bC,"encodeNonAscii");function gd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(gd,"decodeNonAscii");function xC(t){return t.type==="number"||t.type==="bigint"}s(xC,"isNumeric");var yd={};P(yd,{normalizeSchemaForStructuredOutput:()=>vC});function vC(t){function e(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let o=i.properties,a=[],u={};for(let[d,f]of Object.entries(o))if(typeof f=="object"&&f!==null){let h=f;if(h.required===!0){a.push(d);let{required:p,...S}=h;u[d]=e(S)}else u[d]=e(h)}else u[d]=f;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=e(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>e(a)));return i}s(e,"processSchema");let r=e(t);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}s(vC,"normalizeSchemaForStructuredOutput");var Sd={};P(Sd,{basicFields:()=>MC,calculationFields:()=>LC,hasCalculationFields:()=>UC,isBasicViewField:()=>PC,isCalculationField:()=>gs,isCalculationView:()=>NC,isV2:()=>kC,isVisible:()=>Ry});var Td=B(require("lodash/pickBy"));function gs(t){return"calculationType"in t}s(gs,"isCalculationField");function PC(t){return!gs(t)}s(PC,"isBasicViewField");function NC(t){return t.type==="calculation"}s(NC,"isCalculationView");function UC(t){return Object.values(t.schema||{}).some(gs)}s(UC,"hasCalculationFields");function LC(t){return(0,Td.default)(t.schema||{},gs)}s(LC,"calculationFields");function Ry(t){return t.visible!==!1}s(Ry,"isVisible");function MC(t,e){let{visible:r=!0}=e||{};return(0,Td.default)(t.schema||{},n=>!gs(n)&&(!r||Ry(n)))}s(MC,"basicFields");function kC(t){return t.version===2}s(kC,"isV2");var Ad={};P(Ad,{checkForRoleInheritanceLoops:()=>BC});function FC(t){return`role${C}${t}`}s(FC,"prefixForCheck");function BC(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=FC(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(BC,"checkForRoleInheritanceLoops");var _d={};P(_d,{punctuateList:()=>WC});function WC(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(WC,"punctuateList");var $C=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"),GC=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 VC=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),qC=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),pr=s((t,e)=>{let r=VC(e);if(!t)return r;let n=qC(t);return r?`${n}${r}`:n},"joinBaseAndPath"),Cy=s(t=>pr(t,jo.ACCOUNT),"accountPortalAccountUrl"),by=s(t=>pr(t,jo.BILLING),"accountPortalBillingUrl"),xy=s(t=>pr(t,jo.UPGRADE),"accountPortalUpgradeUrl"),vy=s(t=>pr(t,Cn.WORKSPACES),"builderWorkspacesUrl"),Py=s(t=>pr(t,Cn.SETTINGS_EMAIL),"builderSettingsEmailUrl"),Ny=s(t=>pr(t,Cn.SETTINGS_AUTH),"builderSettingsAuthUrl"),Uy=s(t=>pr(t,Cn.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Ly=s(t=>pr(t,Cn.APPS),"builderAppsUrl"),KC={accountPortalAccountUrl:Cy,accountPortalBillingUrl:by,accountPortalUpgradeUrl:xy,builderWorkspacesUrl:vy,builderSettingsEmailUrl:Py,builderSettingsAuthUrl:Ny,builderSettingsPeopleUsersUrl:Uy,builderAppsUrl:Ly};function QC(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(QC,"formatBytes");var jC={getNextExecutionDates:wy,validate:Dy};var Na=B(require("lodash/isPlainObject")),Od=B(require("lodash/isEmpty"));var HC=/{{([^{].*?)}}/g,ky=Object.values(Di),zC=[...Object.values(Mr),...Object.values(ir),...Object.values(Rn)],JC=s((t,e,r)=>{let n=$e,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:d}=t;c==="string"?d==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||Es.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let f=r?.tableId?.includes("datasource_plus");return e==="_id"&&f&&(u=[n.Equals,n.NotEquals,n.In]),u},"getValidOperatorsForType"),Fy=[$e.StartsWith.value,$e.Like.value,$e.Equals.value,$e.NotEquals.value,$e.Contains.value,$e.NotContains.value,$e.ContainsAny.value,$e.In.value];function Dd(t,e){for(let r of ky)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Dd,"recurseLogicalOperators");var Rd=s(t=>{for(let e of Fy)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===""||ZC(o))&&delete t[e][i]}return t=Dd(t,Rd),t},"cleanupQuery");function ZC(t){return Array.isArray(t)&&t.length===0}s(ZC,"isEmptyArray");var Yo=s(t=>Cd(t).key,"removeKeyNumbering"),Cd=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"),Id=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}=Cd(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=gd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function XC(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(HC)||[]).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(Go(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(Go(r)){let l=eh[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(Ym(r)||Hm(r)||Go(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(XC,"buildCondition");function Ho(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}s(Ho,"splitFiltersArray");function By(t){if(!t)return{};if(Array.isArray(t)&&(t=zc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=My(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=By(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=Ho(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=My(n.logicalOperator)),{[u]:{conditions:a.map(XC).filter(c=>c)}}})},e}s(By,"buildQuery");function My(t){return t==="all"?"$and":"$or"}s(My,"logicalOperatorFromUI");function bd(t){if(!t)return t;for(let e of Object.values(ir)){let r=t[e];if(!(r==null||!(0,Na.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 Dd(t,bd),t}s(bd,"fixupFilterArrays");function eb(t,e){let r=Ua(t,e.query);e.sort&&(r=Wy(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=$y(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(eb,"search");function Ua(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Rd(e),e=bd(e),!wd(e)&&e.onEmptyFilter==="none")return[];let r=s((T,_)=>U=>{for(let[R,k]of Object.entries(e[T]||{})){let Y=$o(T)?U:Jc(U,Yo(R)),we=_(Y,k);if(e.allOr&&we)return!0;if(!e.allOr&&!we)return!1}return!e.allOr},"match"),n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),o=r("range",(T,_)=>{if(T==null||T===""||((0,Na.default)(_.low)&&(0,Od.default)(_.low)&&(_.low=void 0),(0,Na.default)(_.high)&&(0,Od.default)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let U=+T;if(!isNaN(U)){let k=+_.low,Y=+_.high;if(!isNaN(k)&&!isNaN(Y))return U>=k&&U<=Y;if(isNaN(k)){if(!isNaN(Y))return U<=Y}else return U>=k}let R=(0,Qn.default)(T);if(R.isValid()){let k=(0,Qn.default)(_.low||"0000-00-00T00:00:00.000Z"),Y=(0,Qn.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&Y.isValid())return R.isAfter(k)&&R.isBefore(Y)||R.isSame(k)||R.isSame(Y);if(k.isValid())return R.isAfter(k)||R.isSame(k);if(Y.isValid())return R.isBefore(Y)||R.isSame(Y)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),a=s((T,_)=>{if(Array.isArray(T)){for(let R of T)if(a(R,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let U=(0,Qn.default)(T);if(U.isValid()){let R=(0,Qn.default)(_);if(R.isValid())return U.isSame(R)}return!1},"_valueMatches"),u=s(T=>(..._)=>!T(..._),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),f=r("empty",d),h=r("notEmpty",u(d)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(U=>parseFloat(U))),Array.isArray(_)?_.some(U=>a(T,U)):!1)),S=s(T=>(_,U)=>!Array.isArray(_)||(typeof U=="string"&&(U=U.split(","),typeof _[0]=="number"&&(U=U.map(R=>parseFloat(R)))),!Array.isArray(U))?!1:U.length===0?!0:U[T](R=>a(_,R)),"_contains"),m=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:S("every")(T,_)),g=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:u(S("every"))(T,_)),y=r("containsAny",S("some")),I=r("$and",(T,_)=>{if(!_.length)return!1;for(let U of _)if(!Ua([T],U).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let U of _)if(Ua([T],{...U,allOr:!0}).length)return!0;return!1}),w=s(T=>{let _={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:h,oneOf:p,contains:m,containsAny:y,notContains:g,$and:I,$or:O},U=Object.entries(e||{}).filter(([R,k])=>!["allOr","onEmptyFilter"].includes(R)&&k&&Object.keys(k).length>0).map(([R])=>_[R]?.(T)??!1);return wd(e)?e.allOr?U.some(R=>R===!0):U.every(R=>R===!0):!0},"docMatch");return t.filter(w)}s(Ua,"runQuery");function Wy(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(Wy,"sort");function $y(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s($y,"limit");var wd=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of ky)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of zC){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,{applications:()=>vd,automations:()=>Pd,screens:()=>Md,users:()=>Ld});var vd={};P(vd,{getDevAppID:()=>tb,getProdAppID:()=>Ts});var xd=sr("app"),ys=sr("app_dev");function tb(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(ys))return t;let e=t.split(xd);e.shift();let r=e.join(xd);return`${ys}${r}`}s(tb,"getDevAppID");function Ts(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(ys))return t;let e=t.split(ys);e.shift();let r=e.join(ys);return`${xd}${r}`}s(Ts,"getProdAppID");var Pd={};P(Pd,{checkForCollectStep:()=>sb,isAppAction:()=>ib,isRowAction:()=>rb,isWebhookAction:()=>nb});function rb(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(rb,"isRowAction");function nb(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(nb,"isWebhookAction");function ib(t){return t.definition.trigger?.stepId==="APP"}s(ib,"isAppAction");function Gy(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Zm(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(Gy(r))return!0}}return!1}s(Gy,"hasCollectBlockRecursive");function sb(t){return Gy(t.definition.steps)}s(sb,"checkForCollectStep");var Ld={};P(Ld,{canCreateApps:()=>ob,containsUserID:()=>mb,getGlobalUserID:()=>pb,getUserAppGroups:()=>hb,hasAdminPermissions:()=>Ud,hasAppBuilderPermissions:()=>Ma,hasBuilderPermissions:()=>db,hasCreatorPermissions:()=>ka,isAdmin:()=>Ss,isAdminOrBuilder:()=>ub,isAdminOrGlobalBuilder:()=>cb,isAdminOrWorkspaceBuilder:()=>ab,isBuilder:()=>Nd,isCreator:()=>fb,isGlobalBuilder:()=>La,userAppAccessList:()=>Eb});function Nd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Ts(e))):!1}s(Nd,"isBuilder");function La(t){return Nd(t)&&!Ma(t)||Ss(t)}s(La,"isGlobalBuilder");function ob(t){return La(t)||ka(t)}s(ob,"canCreateApps");function Ss(t){return t?Ud(t):!1}s(Ss,"isAdmin");function ab(t,e){return t?!!(Ss(t)||e&&t.builder?.apps?.includes(Ts(e))):!1}s(ab,"isAdminOrWorkspaceBuilder");function ub(t,e){return Nd(t,e)||Ss(t)}s(ub,"isAdminOrBuilder");function cb(t){return La(t)||Ss(t)}s(cb,"isAdminOrGlobalBuilder");function Ma(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Ma,"hasAppBuilderPermissions");function lb(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(lb,"hasAppCreatorPermissions");function db(t){return t?t.builder?.global||Ma(t)||ka(t):!1}s(db,"hasBuilderPermissions");function Ud(t){return t?!!t.admin?.global:!1}s(Ud,"hasAdminPermissions");function ka(t){return t?!!t.builder?.creator:!1}s(ka,"hasCreatorPermissions");function fb(t){return t?La(t)||Ud(t)||ka(t)||Ma(t)||lb(t):!1}s(fb,"isCreator");function pb(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}s(pb,"getGlobalUserID");function mb(t){return typeof t!="string"?!1:t.includes(`us${C}`)}s(mb,"containsUserID");function Vy(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(Vy,"getUserGroups");function hb(t,e,r){let n=Ts(t);return Vy(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(hb,"getUserAppGroups");function Eb(t,e){let n=Vy(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Eb,"userAppAccessList");var Md={};P(Md,{findInSettings:()=>gb});function gb(t,e){let r=[];function n(i,o=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(e)?r.push({setting:o?`${o}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return s(n,"recurse"),n(t.props),r}s(gb,"findInSettings");var Fa=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Fa||{}),Wt=(d=>(d.USER_BY_WORKSPACE="by_app",d.USER_BY_EMAIL="by_email2",d.BY_API_KEY="by_api_key",d.LINK="by_link",d.ROUTING="screen_routes_2",d.AUTOMATION_LOGS="automation_logs",d.ACCOUNT_BY_EMAIL="account_by_email",d.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",d.USER_BY_GROUP="user_by_group",d.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",d))(Wt||{}),jn={by_email2:["by_email"]},fe={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},tt=sr("app"),Ba=sr("app_dev"),rt=Ba,kd="internal",Fd="budibase",Rt="_design/sqlite",Bd="ta_bb_jobs",Wd="ta_bb_inventory",$d="ta_bb_expenses",Gd="ta_bb_employee",As=`ro${C}ta_users${C}`,_s=(r=>(r[r.SQLITE=Rt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(_s||{});var Wa=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Wa||{}),en=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(en||{}),Vd=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Vd||{}),qd=(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))(qd||{}),qy=new Date(-2147483647e3),$a=new Date(2147483647e3),ae="default";var Do={};P(Do,{CacheKey:()=>ye,TTL:()=>mn,bustCache:()=>di,destroy:()=>ro,docWritethrough:()=>gp,generic:()=>no,get:()=>hn,invite:()=>Ap,keys:()=>Lu,passwordReset:()=>_p,store:()=>Ht,user:()=>br,withCache:()=>wr,withCacheWithDynamicTTL:()=>jS,workspace:()=>Ls,writethrough:()=>Jp});var gp={};P(gp,{DocWritethrough:()=>Ep,DocWritethroughProcessor:()=>to,getProcessor:()=>sP,init:()=>QS});var hp={};P(hp,{BudibaseQueue:()=>gt,InMemoryQueue:()=>_u,JobQueue:()=>ai,QueuedProcessor:()=>mp,UnretriableError:()=>Nu,shutdown:()=>Tv});var Qd=require("crypto"),Va=require("fs"),jy=require("lodash"),Os=require("path");var yb=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Os.resolve)((0,Os.join)(__dirname,"..","..","..")),Ky=!1;!Ky&&Ga()&&!jd()&&(require("dotenv").config({path:(0,Os.join)(yb,".env")}),Ky=!0);function jd(){return Yy()}s(jd,"isTest");function Yy(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(Yy,"isJest");function Ga(){return process.env.NODE_ENV!=="production"}s(Ga,"isDev");function Tb(t){if(t)return parseInt(t)}s(Tb,"parseIntSafe");var Yn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},Qy=!!parseInt(process.env.SELF_HOSTED||"");function Sb(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(Sb,"getAPIEncryptionKey");function Ab(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(Ab,"httpLogging");function _b(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Va.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,Va.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(Ga()&&!jd())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(_b,"getPackageJsonFields");function Ob(){return pt.SERVICE_TYPE==="worker"}s(Ob,"isWorker");function Ib(){return pt.SERVICE_TYPE==="apps"}s(Ib,"isApps");function wb(){return pt.BUDIBASE_ENVIRONMENT==="QA"}s(wb,"isQA");function Db(){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(Db,"getServiceName");var pt={isTest:jd,isJest:Yy,isDev:Ga,isWorker:Ob,isApps:Ib,isQA:wb,isProd:()=>!Ga(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,Qd.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Qd.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Sb(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_USERNAME:process.env.REDIS_USERNAME,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:Qy,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Yn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Db(),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:Ab(),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:Qy?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,..._b(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,pt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Tb(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,BBAI_OPENAI_API_KEY:process.env.BBAI_OPENAI_API_KEY,BBAI_OPENROUTER_API_KEY:process.env.BBAI_OPENROUTER_API_KEY,OPENROUTER_BASE_URL:process.env.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1"};function Is(t){let e=(0,jy.cloneDeep)(pt),r;for(r in t)pt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))pt._set(n,i)}}s(Is,"setEnv");function Hy(t,e){let r=Is(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}s(Hy,"withEnv");var zy=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD","REDIS_USERNAME","BBAI_OPENAI_API_KEY","BBAI_OPENROUTER_API_KEY"];for(let[t,e]of Object.entries(pt))e==="0"&&(pt[t]=0),e==="false"&&(pt[t]=0);var E=pt;var Qa={};P(Qa,{Databases:()=>Yd,SEPARATOR:()=>Hn,SelectableDatabase:()=>qa,getRedisClusterOptions:()=>Hd,getRedisConnectionDetails:()=>Ka,getRedisOptions:()=>tn,removeDbPrefix:()=>zd});var Hn="-",Yd=(w=>(w.PW_RESETS="pwReset",w.VERIFICATIONS="verification",w.INVITATIONS="invitation",w.INVITATIONS_LIST="invitationList",w.DEV_LOCKS="devLocks",w.DEBOUNCE="debounce",w.SESSIONS="session",w.USER_CACHE="users",w.FLAGS="flags",w.WORKSPACE_METADATA="appMetadata",w.QUERY_VARS="queryVars",w.LICENSES="license",w.GENERIC_CACHE="data_cache",w.WRITE_THROUGH="writeThrough",w.LOCKS="locks",w.SOCKET_IO="socket_io",w.BPM_EVENTS="bpmEvents",w.DOC_WRITE_THROUGH="docWriteThrough",w.RECAPTCHA_SESSION="recaptchaSession",w.OPENAPI_IMPORT_SPECS="openapiImportSpecs",w))(Yd||{}),qa=(g=>(g[g.DEFAULT=0]="DEFAULT",g[g.SOCKET_IO=1]="SOCKET_IO",g[g.RATE_LIMITING=2]="RATE_LIMITING",g[g.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",g[g.UNUSED_3=4]="UNUSED_3",g[g.UNUSED_4=5]="UNUSED_4",g[g.UNUSED_5=6]="UNUSED_5",g[g.UNUSED_6=7]="UNUSED_6",g[g.UNUSED_7=8]="UNUSED_7",g[g.UNUSED_8=9]="UNUSED_8",g[g.UNUSED_9=10]="UNUSED_9",g[g.UNUSED_10=11]="UNUSED_10",g[g.UNUSED_11=12]="UNUSED_11",g[g.UNUSED_12=13]="UNUSED_12",g[g.UNUSED_13=14]="UNUSED_13",g[g.UNUSED_14=15]="UNUSED_14",g))(qa||{});function Ka(){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(Ka,"getRedisConnectionDetails");function Hd(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...tn(),tls:{}}}}s(Hd,"getRedisClusterOptions");function tn(){let{host:t,password:e,port:r,username:n}=Ka();return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n}}}s(tn,"getRedisOptions");function zd(t){let e=t.split(Hn);return e.length>=2?(e.shift(),e.join(Hn)):e[0]}s(zd,"removeDbPrefix");var cS=B(require("events"));var oi={};P(oi,{Duration:()=>pe,DurationType:()=>Kf,GZIP_PREFIX:()=>Au,clearCookie:()=>Ar,compare:()=>Xd,getBearerToken:()=>cv,getCookie:()=>Qt,getDispatcher:()=>iv,getWorkspaceIdFromCtx:()=>un,gunzipFromBase64:()=>uv,gzipToBase64:()=>av,hasCircularStructure:()=>zx,hash:()=>Zd,isAudited:()=>Vf,isClient:()=>Hx,isPublicApiRequest:()=>jx,isServingApp:()=>qx,isServingBuilder:()=>Kx,isServingBuilderPreview:()=>Qx,isValidInternalAPIKey:()=>qs,newid:()=>ee,openJwt:()=>yu,setCookie:()=>uS,time:()=>Zx,timeout:()=>Gf,urlHasProtocol:()=>Jx,validEmail:()=>qf});var Jy=require("uuid");function ee(){return(0,Jy.v4)().replace(/-/g,"")}s(ee,"newid");var Jd=require("bcrypt"),Rb=E.SALT_ROUNDS||10;async function Zd(t){let e=await Jd.genSalt(Rb);return Jd.hash(t,e)}s(Zd,"hash");async function Xd(t,e){return Jd.compare(t,e)}s(Xd,"compare");var gu=B(require("jsonwebtoken"));var ue={};P(ue,{DEFAULT_TENANT_ID:()=>ae,baseGlobalDBName:()=>vs,doInAutomationContext:()=>Jb,doInContext:()=>yf,doInEnvironmentContext:()=>ux,doInFeatureFlagOverrideContext:()=>wf,doInIPContext:()=>Af,doInIdentityContext:()=>Ds,doInLicenseContext:()=>Xb,doInScimContext:()=>cx,doInSelfHostTenantUsingCloud:()=>Zb,doInTenant:()=>Ce,doInWorkspaceContext:()=>rx,doInWorkspaceMigrationContext:()=>ix,ensureSnippetContext:()=>pT,getAuditLogDBName:()=>dT,getAuditLogsDB:()=>dx,getAutomationId:()=>Tf,getCurrentContext:()=>sn,getDevWorkspaceDB:()=>px,getDevWorkspaceId:()=>ox,getEnvironmentVariables:()=>lx,getFeatureFlagOverrides:()=>If,getFeatureFlags:()=>_f,getGlobalDB:()=>H,getGlobalDBName:()=>nn,getIP:()=>Sf,getIdentity:()=>$t,getLicense:()=>ex,getOrThrowWorkspaceId:()=>sx,getPlatformURL:()=>gf,getProdWorkspaceDB:()=>fx,getProdWorkspaceId:()=>ax,getScimDBName:()=>jb,getSelfHostCloudDB:()=>tx,getTableForView:()=>mx,getTenantIDFromWorkspaceID:()=>Xn,getTenantId:()=>$,getWorkspaceDB:()=>ei,getWorkspaceId:()=>be,identity:()=>ws,isMultiTenant:()=>gr,isScim:()=>Et,isSelfHostUsingCloud:()=>eu,isTenancyEnabled:()=>Hb,isTenantIdSet:()=>Yb,setFeatureFlags:()=>Of,setTableForView:()=>hx});var ws={};P(ws,{doInAccountContext:()=>Cb,doInIdentityContext:()=>tf,doInUserContext:()=>rf,getAccountUserId:()=>Zy,getIdentity:()=>ef});function ef(){return $t()}s(ef,"getIdentity");function tf(t,e){return Ds(t,e)}s(tf,"doInIdentityContext");function rf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return tf(n,r)}s(rf,"doInUserContext");function Cb(t,e){let r=Zy(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return tf(i,e)}s(Cb,"doInAccountContext");function Zy(t){let e;return qo(t)?e=t.budibaseUserId:e=t.accountId,e}s(Zy,"getAccountUserId");var mt=s(t=>{let e=nf(t),r,n;if(e.auth?.username)r=e.auth.username;else if(E.COUCH_DB_USERNAME)r=E.COUCH_DB_USERNAME;else if(!E.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(E.COUCH_DB_PASSWORD)n=E.COUCH_DB_PASSWORD;else if(!E.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=E.COUCH_DB_SQL_URL;if(E.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:nf(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),nf=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 uT=B(require("@budibase/nano"));var Xy=B(require("node-fetch"));function Ya(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(Ya,"checkSlashesInUrl");async function eT(t,e="GET",r){let{url:n,cookie:i}=mt(),o=`${n}/${t}`;return await Rs({url:o,cookie:i,method:e,body:r})}s(eT,"directCouchCall");async function Rs({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,Xy.default)(Ya(encodeURI(t)),i)}s(Rs,"directCouchUrlCall");async function sf(t,e="GET",r){let n=await eT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(sf,"directCouchQuery");var rn=B(require("pouchdb"));var tT,rT=!1,of=s((t={})=>{let{url:e,cookie:r}=mt(),n={prefix:e,fetch:(i,o)=>(o.headers.set("Authorization",r),rn.default.fetch(i,o))};if(t.inMemory){let i=require("pouchdb-adapter-memory");rn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");rn.default.plugin(i.plugin),rn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");rn.default.plugin(i)}return rn.default.defaults(n)},"getPouch");function Ha(t){tT=of(t),rT=!0}s(Ha,"init");var bb=s(()=>{if(!rT)throw new Error("init has not been called")},"checkInitialised");function nt(t,e){bb();let r=new tT(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(nt,"getPouchDB");async function Cs(t){if(!(!t||E.isTest()))try{return await t.close()}catch{}}s(Cs,"closePouchDB");var le=B(require("dd-trace"));var zn=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return le.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return le.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return le.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return le.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return le.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return le.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return le.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return le.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return le.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return le.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return le.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return le.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return le.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return le.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return le.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return le.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return le.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return le.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return le.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return le.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return le.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var mf={};P(mf,{breakExternalTableId:()=>cf,breakRowIdField:()=>Gb,buildExternalTableId:()=>Mb,convertRowId:()=>$b,encodeTableId:()=>kb,encodeViewId:()=>Fb,extractDate:()=>df,generateRowIdField:()=>Bb,getNativeSql:()=>Jn,isExternalTable:()=>uf,isExternalTableID:()=>za,isInternalTableID:()=>Lb,isRowId:()=>Wb,isValidFilter:()=>Za,isValidISODateString:()=>Ja,isValidISODateStringWithoutTimezone:()=>lf,isValidTime:()=>ff,sqlLog:()=>bs,validateManyToMany:()=>pf});var af=`${C}${C}`,iT=/^\[.*]$/g,xb=encodeURIComponent(" "),vb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Pb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Nb=/(\d{4}-\d{2}-\d{2})/,Ub=/^\d{1,2}:\d{2}(?:\.\d{1,6}|:\d{2}(?:\.\d{1,6})?)?$/;function za(t){return t.startsWith("datasource"+C)}s(za,"isExternalTableID");function Lb(t){return!za(t)}s(Lb,"isInternalTableID");function Jn(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}s(Jn,"getNativeSql");function uf(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==bn||t?.sourceType==="external"?!0:!!(t?._id&&za(t._id))}s(uf,"isExternalTable");function Mb(t,e){return`${t}${af}${encodeURIComponent(e)}`}s(Mb,"buildExternalTableId");function kb(t){return za(t)?encodeURIComponent(t):t}s(kb,"encodeTableId");function Fb(t){return encodeURIComponent(t)}s(Fb,"encodeViewId");function cf(t){let e=t.split(af),r=e.shift(),n=e.join(af);if(n.includes(xb)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(cf,"breakExternalTableId");function Bb(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(Bb,"generateRowIdField");function Wb(t){return Array.isArray(t)||typeof t=="string"&&t.match(iT)!=null}s(Wb,"isRowId");function $b(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(iT)!=null?t.substring(1,t.length-1):t}s($b,"convertRowId");function Gb(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(Gb,"breakRowIdField");function Ja(t){let e=t.trim();if(!vb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(Ja,"isValidISODateString");function lf(t){let e=t.trim();if(!Pb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(lf,"isValidISODateStringWithoutTimezone");function df(t){let e=t.match(Nb);if(e)return e[0]}s(df,"extractDate");function Za(t){return t!=null&&t!==""}s(Za,"isValidFilter");function ff(t){return Ub.test(t)}s(ff,"isValidTime");function bs(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(bs,"sqlLog");function Vb(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(Vb,"isValidManyToManyRelationship");function pf(t){if(Vb(t))return t}s(pf,"validateManyToMany");var sT="Database does not exist.";function oT(t){return(0,uT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(oT,"buildNano");var hr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}static{s(this,"CouchDBError")}};function qb(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zn(t,r,e);return new zn(n)}s(qb,"DatabaseWithConnection");var Zn=class t{constructor(e,r,n){this.couchInfo=mt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=mt(n),this.instanceNano=oT(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=mt();t.nano=oT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Rs({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new hr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===sT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new hr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new hr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(zm(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new hr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ee()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===sT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ya(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await Rs(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new hr("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${Rt}`;return bs("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(Rt)){let e=await this.get(Rt);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new hr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return nt(this.name).dump(e,r)}async load(e){return nt(this.name).load(e)}async createIndex(e){return nt(this.name).createIndex(e)}async deleteIndex(e){return nt(this.name).deleteIndex(e)}async getIndexes(){return nt(this.name).getIndexes()}};function Re(t,e){return new zn(new Zn(t,e))}s(Re,"getDB");async function je(t,e,r){let n=Re(t,r);return await e(n)}s(je,"doWithDB");async function hf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await sf(e)}s(hf,"directCouchAllDbs");var Ef="No app provided";function Er(t){if(!t)throw Ef;return t.startsWith(rt)}s(Er,"isDevWorkspaceID");function Kb(t){if(!t)throw Ef;return t.startsWith(tt)&&!Er(t)}s(Kb,"isProdWorkspaceID");function xs(t){if(!t)throw Ef;return Er(t.appId)}s(xs,"isDevWorkspace");function Xa(t){if(!t||t.startsWith(rt))return t;let e=t.split(tt);e.shift();let r=e.join(tt);return`${rt}${r}`}s(Xa,"getDevWorkspaceID");function Ye(t){if(!t||!t.startsWith(rt))return t;let e=t.split(rt);e.shift();let r=e.join(rt);return`${tt}${r}`}s(Ye,"getProdWorkspaceID");var cT=require("async_hooks");var he=class t{static{s(this,"Context")}static{this.storage=new cT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var lT=null;function nn(t){return t||(t=$()),vs(t)}s(nn,"getGlobalDBName");function dT(t){return t||(t=$()),t===ae?fe.AUDIT_LOGS.name:`${t}${C}${fe.AUDIT_LOGS.name}`}s(dT,"getAuditLogDBName");function jb(t){return t||(t=$()),t===ae?fe.SCIM_LOGS.name:`${t}${C}${fe.SCIM_LOGS.name}`}s(jb,"getScimDBName");function vs(t){return!t||t===ae?fe.GLOBAL.name:`${t}${C}${fe.GLOBAL.name}`}s(vs,"baseGlobalDBName");function gf(){return E.PLATFORM_URL}s(gf,"getPlatformURL");function gr(){return!!E.MULTI_TENANCY}s(gr,"isMultiTenant");function Yb(){return!!he.get()?.tenantId}s(Yb,"isTenantIdSet");function Hb(){return E.MULTI_TENANCY}s(Hb,"isTenancyEnabled");function Xn(t){if(!t)return;if(!gr())return ae;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(Xn,"getTenantIDFromWorkspaceID");function zb(t){let e;try{e=he.get()}catch{e={}}return e={...e,...t},e}s(zb,"updateContext");async function ht(t,e){nx();let r=zb(t);return he.run(r,e)}s(ht,"newContext");async function Jb(t){return await pT(),await ht({tenantId:Xn(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(Jb,"doInAutomationContext");async function yf(t,e){let r=Xn(t);return ht({tenantId:r,appId:t},e)}s(yf,"doInContext");async function Ce(t,e){return E.MULTI_TENANCY||(t=t||ae),ht(t?{tenantId:t}:{},e)}s(Ce,"doInTenant");async function Zb(t,e){return ht({tenantId:t,isSelfHostUsingCloud:!0},e)}s(Zb,"doInSelfHostTenantUsingCloud");async function Xb(t,e){return ht({license:t},e)}s(Xb,"doInLicenseContext");function ex(){return he.get()?.license}s(ex,"getLicense");function eu(){return!!he.get()?.isSelfHostUsingCloud}s(eu,"isSelfHostUsingCloud");function tx(){let t=he.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Re(fe.SELF_HOST_CLOUD.name)}s(tx,"getSelfHostCloudDB");async function rx(t,e){return fT(t,e)}s(rx,"doInWorkspaceContext");async function fT(t,e,r){if(!t)throw new Error("workspaceId is required");let n=Xn(t),i={appId:t,...r};return n&&(i.tenantId=n),ht(i,e)}s(fT,"_doInWorkspaceContext");async function Ds(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),ht(r,e)}s(Ds,"doInIdentityContext");function nx(){if(he.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(nx,"guardMigration");async function ix(t,e){return fT(t,e,{isMigrating:!0})}s(ix,"doInWorkspaceMigrationContext");function $t(){try{return he.get()?.identity}catch{}}s($t,"getIdentity");function $(){if(!gr())return ae;let e=he.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s($,"getTenantId");function Tf(){return he.get()?.automationId}s(Tf,"getAutomationId");function be(){let e=he.get()?.appId;return!e&&E.isTest()&&lT?lT:e}s(be,"getWorkspaceId");function sx(){let t=be();if(!t)throw new Error("Workspace id not set");return t}s(sx,"getOrThrowWorkspaceId");function Sf(){return he.get()?.ip}s(Sf,"getIP");var ox=s(()=>{let t=be();if(!t)throw new Error("Could not get workspaceId");return Xa(t)},"getDevWorkspaceId"),ax=s(()=>{let t=be();if(!t)throw new Error("Could not get workspaceId");return Ye(t)},"getProdWorkspaceId");function ux(t,e){if(!t)throw new Error("Must supply environment variables.");return ht({environmentVariables:t},e)}s(ux,"doInEnvironmentContext");function cx(t){return ht({isScim:!0},t)}s(cx,"doInScimContext");function Af(t,e){return ht({ip:t},e)}s(Af,"doInIPContext");async function pT(){let t=sn();if(!t||t.snippets)return;let e,r=ei();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(pT,"ensureSnippetContext");function lx(){let t=he.get();return t.environmentVariables?t.environmentVariables:null}s(lx,"getEnvironmentVariables");function H(){let t=he.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 Re(vs(t?.tenantId))}s(H,"getGlobalDB");function dx(){if(!$())throw new Error("No tenant ID found - cannot open audit log DB");return Re(dT())}s(dx,"getAuditLogsDB");function ei(t){let e=be();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(eu())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return Re(e,t)}s(ei,"getWorkspaceDB");function fx(t){let e=be();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return Re(Ye(e),t)}s(fx,"getProdWorkspaceDB");function px(t){let e=be();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return Re(Xa(e),t)}s(px,"getDevWorkspaceDB");function Et(){return!!he.get()?.isScim}s(Et,"isScim");function sn(){try{return he.get()}catch{return}}s(sn,"getCurrentContext");function _f(t){let e=sn();if(e)return e.featureFlagCache?.[t]}s(_f,"getFeatureFlags");function Of(t,e){let r=sn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(Of,"setFeatureFlags");function If(){return sn()?.featureFlagOverrides||{}}s(If,"getFeatureFlagOverrides");async function wf(t,e){return await ht({featureFlagOverrides:t},e)}s(wf,"doInFeatureFlagOverrideContext");function mx(t){let e=sn();if(e)return e.viewToTableCache?.[t]}s(mx,"getTableForView");function hx(t,e){let r=sn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(hx,"setTableForView");var Sr={};P(Sr,{AutomationViewMode:()=>Fa,BUDIBASE_DATASOURCE_TYPE:()=>Fd,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Gd,DEFAULT_EXPENSES_TABLE_ID:()=>$d,DEFAULT_INVENTORY_TABLE_ID:()=>Wd,DEFAULT_JOBS_TABLE_ID:()=>Bd,DatabaseImpl:()=>Zn,DatabaseWithConnection:()=>qb,DeprecatedViews:()=>jn,DesignDocuments:()=>_s,DocumentType:()=>ce,InternalTable:()=>Pt,QueryBuilder:()=>Kt,Replication:()=>tS,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>kd,StaticDatabases:()=>fe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>As,ViewName:()=>Wt,WORKSPACE_DEV:()=>Ba,WORKSPACE_DEV_PREFIX:()=>rt,WORKSPACE_PREFIX:()=>tt,baseGlobalDBName:()=>vs,checkErrorCode:()=>sS,closePouchDB:()=>Cs,createApiKeyView:()=>HT,createNewUserEmailView:()=>jT,createPlatformAccountEmailView:()=>JT,createPlatformUserView:()=>ZT,createUserAppView:()=>YT,createView:()=>si,dbExists:()=>Px,directCouchAllDbs:()=>hf,directCouchCall:()=>eT,directCouchQuery:()=>sf,directCouchUrlCall:()=>Rs,doWithDB:()=>je,fullSearch:()=>kx,generateAIConfigID:()=>UT,generateAgentFileID:()=>PT,generateAgentID:()=>CT,generateAgentToolSourceID:()=>vT,generateAppUserID:()=>hu,generateChatAppID:()=>bT,generateChatConversationID:()=>xT,generateDevInfoID:()=>wT,generateGlobalUserID:()=>ni,generateOAuth2LogID:()=>RT,generatePluginID:()=>DT,generateRoleID:()=>Pf,generateRowID:()=>vf,generateTableID:()=>ST,generateTemplateID:()=>IT,generateUserMetadataID:()=>_T,generateVectorDbID:()=>FT,generateWorkspaceAppID:()=>MT,generateWorkspaceFavouriteID:()=>kT,generateWorkspaceID:()=>TT,getAllDbs:()=>QT,getAllWorkspaces:()=>ks,getCouchInfo:()=>mt,getDB:()=>Re,getDevWorkspaceID:()=>Xa,getDevWorkspaceIDs:()=>xx,getDocParams:()=>Vt,getGlobalDBName:()=>nn,getGlobalIDFromUserMetadataID:()=>OT,getGlobalUserParams:()=>on,getLiteLLMKeyID:()=>LT,getOAuth2ConfigParams:()=>VT,getPluginParams:()=>GT,getPouch:()=>of,getPouchDB:()=>nt,getProdWorkpaceIDs:()=>bx,getProdWorkspaceID:()=>Ye,getQueryIndex:()=>BT,getRoleParams:()=>Eu,getRowParams:()=>Nf,getStartEndKeyURL:()=>Ms,getTemplateParams:()=>$T,getUrlInfo:()=>nf,getUserMetadataParams:()=>WT,getUsersByWorkspaceParams:()=>ii,getWorkspaceAppParams:()=>qT,getWorkspaceFavouriteParams:()=>KT,getWorkspacesByIDs:()=>Cx,init:()=>Ha,isAgentFileID:()=>NT,isDevWorkspace:()=>xs,isDevWorkspaceID:()=>Er,isDocumentConflictError:()=>Bx,isGlobalUserID:()=>AT,isProdWorkspaceID:()=>Kb,isSameWorkspaceID:()=>vx,paginatedSearch:()=>Mx,pagination:()=>Lf,prefixRoleID:()=>Gt,queryGlobalView:()=>qt,queryGlobalViewRaw:()=>Ws,queryPlatformView:()=>Bs,queryView:()=>kf,queryViewRaw:()=>Fs,removeKeyNumbering:()=>$s,searchIndexes:()=>Bf});var Ls={};P(Ls,{WorkspaceState:()=>xf,getWorkspaceMetadata:()=>mu,invalidateWorkspaceMetadata:()=>wx});var Tr={};P(Tr,{getCacheClient:()=>Rf,getDocWritethroughClient:()=>Ax,getInviteClient:()=>ri,getInviteListClient:()=>Ns,getLockClient:()=>bf,getOpenapiImportSpecsClient:()=>Tx,getPasswordResetClient:()=>Us,getSessionClient:()=>yr,getSocketClient:()=>Sx,getUserClient:()=>Ps,getWorkspaceClient:()=>pu,getWritethroughClient:()=>Cf,init:()=>He,shutdown:()=>gT});var ru=B(require("ioredis"));var tu=require("dd-trace"),hT=require("lodash");var mT;if(E.MOCK_REDIS)try{mT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function Ex(t=0){return await tu.tracer.trace("Redis.init",async e=>{if(E.MOCK_REDIS)return e.addTags({mock:!0}),new mT(tn());let r;if(E.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=Ka();r=new ru.Cluster([{host:n,port:i}],Hd())}else r=new ru.default(tn());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}s(Ex,"init");function gx(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:zd(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(gx,"promisifyStream");function yx(t){return t.isCluster}s(yx,"isCluster");var Df=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await tu.tracer.trace("RedisWrapper.init",async n=>{let i=await Ex(r);return r&&!E.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return tu.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Hn}${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}${Hn}${e}`;let n;yx(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await gx(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,hT.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e});let i=`
|
|
4
|
+
`+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,o)=>o.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:o,from:a=[],originalValue:u=e,strict:c=this.spec.strict,abortEarly:l=this.spec.abortEarly}=r,d=e;c||(d=this._cast(d,ze({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,Fh.default)({args:f,value:d,path:o,sync:i,tests:h,endEarly:l},p=>{if(p)return void n(p,d);(0,Fh.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(ze({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((o,a)=>i._validate(e,r,(u,c)=>{u?a(u):o(c)}))}validateSync(e,r){let n=this.resolve(ze({},r,{value:e})),i;return n._validate(e,ze({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Wh.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Wh.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,kh.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=vn.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=vn.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=vn.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,sa.default)(r),o=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(a=>!(a.OPTIONS.name===r.name&&(o||a.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,ow.default)(e).map(o=>new iw.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new nw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,sa.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=vn.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,sa.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let o=this.schema._whitelist;return o.has(i,this.resolve)?!0:this.createError({params:{values:o.toArray().join(", ")}})}}),n}notOneOf(e,r=vn.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,sa.default)({message:r,name:"notOneOf",test(i){let o=this.schema._blacklist;return o.has(i,this.resolve)?this.createError({params:{values:o.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(o=>({name:o.OPTIONS.name,params:o.OPTIONS.params})).filter((o,a,u)=>u.findIndex(c=>c.name===o.name)===a)}}};oa.default=ct;ct.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])ct.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,sw.getIn)(this,e,r,n.context);return a[t](i&&i[o],ze({},n,{parent:i,path:e}))};for(let t of["equals","is"])ct.prototype[t]=ct.prototype.oneOf;for(let t of["not","nope"])ct.prototype[t]=ct.prototype.notOneOf;ct.prototype.optional=ct.prototype.notRequired});var Vh=q(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.create=Gh;Vi.default=void 0;var aw=uw(Lt());function uw(t){return t&&t.__esModule?t:{default:t}}s(uw,"_interopRequireDefault");var El=aw.default,cw=El;Vi.default=cw;function Gh(){return new El}s(Gh,"create");Gh.prototype=El.prototype});var Pn=q(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.default=void 0;var lw=s(t=>t==null,"_default");aa.default=lw});var Yh=q(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.create=jh;Ki.default=void 0;var dw=Qh(Lt()),qh=Nt(),Kh=Qh(Pn());function Qh(t){return t&&t.__esModule?t:{default:t}}s(Qh,"_interopRequireDefault");function jh(){return new qi}s(jh,"create");var qi=class extends dw.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=qh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Kh.default)(r)||r===!0}})}isFalse(e=qh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Kh.default)(r)||r===!1}})}};Ki.default=qi;jh.prototype=qi.prototype});var Jh=q(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.create=zh;ji.default=void 0;var It=Nt(),Mt=Hh(Pn()),fw=Hh(Lt());function Hh(t){return t&&t.__esModule?t:{default:t}}s(Hh,"_interopRequireDefault");var pw=/^((([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,mw=/^((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,Ew=s(t=>(0,Mt.default)(t)||t===t.trim(),"isTrimmed"),gw={}.toString();function zh(){return new Qi}s(zh,"create");var Qi=class extends fw.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===gw?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=It.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Mt.default)(n)||n.length===this.resolve(e)}})}min(e,r=It.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Mt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=It.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,Mt.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,o;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:o}=r:i=r),this.test({name:o||"matches",message:i||It.string.matches,params:{regex:e},test:a=>(0,Mt.default)(a)||a===""&&n||a.search(e)!==-1})}email(e=It.string.email){return this.matches(pw,{name:"email",message:e,excludeEmptyString:!0})}url(e=It.string.url){return this.matches(mw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=It.string.uuid){return this.matches(hw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=It.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:Ew})}lowercase(e=It.string.lowercase){return this.transform(r=>(0,Mt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Mt.default)(r)||r===r.toLowerCase()})}uppercase(e=It.string.uppercase){return this.transform(r=>(0,Mt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Mt.default)(r)||r===r.toUpperCase()})}};ji.default=Qi;zh.prototype=Qi.prototype});var eE=q(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.create=Xh;Hi.default=void 0;var Wr=Nt(),$r=Zh(Pn()),yw=Zh(Lt());function Zh(t){return t&&t.__esModule?t:{default:t}}s(Zh,"_interopRequireDefault");var Tw=s(t=>t!=+t,"isNaN");function Xh(){return new Yi}s(Xh,"create");var Yi=class extends yw.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"&&!Tw(e)}min(e,r=Wr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,$r.default)(n)||n>=this.resolve(e)}})}max(e,r=Wr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,$r.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Wr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,$r.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Wr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,$r.default)(n)||n>this.resolve(e)}})}positive(e=Wr.number.positive){return this.moreThan(0,e)}negative(e=Wr.number.negative){return this.lessThan(0,e)}integer(e=Wr.number.integer){return this.test({name:"integer",message:e,test:r=>(0,$r.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,$r.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,$r.default)(i)?i:Math[e](i))}};Hi.default=Yi;Xh.prototype=Yi.prototype});var tE=q(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});gl.default=Aw;var Sw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Aw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Sw.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(Aw,"parseIsoDate")});var iE=q(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.create=Tl;zi.default=void 0;var _w=ua(tE()),rE=Nt(),nE=ua(Pn()),Ow=ua(Br()),Iw=ua(Lt());function ua(t){return t&&t.__esModule?t:{default:t}}s(ua,"_interopRequireDefault");var yl=new Date(""),ww=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function Tl(){return new Nn}s(Tl,"create");var Nn=class extends Iw.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,_w.default)(e),isNaN(e)?yl:new Date(e))})})}_typeCheck(e){return ww(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Ow.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=rE.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,nE.default)(i)||i>=this.resolve(n)}})}max(e,r=rE.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,nE.default)(i)||i<=this.resolve(n)}})}};zi.default=Nn;Nn.INVALID_DATE=yl;Tl.prototype=Nn.prototype;Tl.INVALID_DATE=yl});var oE=q((cB,Sl)=>{"use strict";Sl.exports=function(t){return sE(Dw(t),t)};Sl.exports.array=sE;function sE(t,e){var r=t.length,n=new Array(r),i={},o=r,a=Rw(e),u=Cw(t);for(e.forEach(function(l){if(!u.has(l[0])||!u.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||c(t[o],o,new Set);return n;function c(l,d,f){if(f.has(l)){var h;try{h=", node was:"+JSON.stringify(l)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var p=a.get(l)||new Set;if(p=Array.from(p),d=p.length){f.add(l);do{var S=p[--d];c(S,u.get(S),f)}while(d);f.delete(l)}n[--r]=l}}}s(sE,"toposort");function Dw(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(Dw,"uniqueNodes");function Rw(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(Rw,"makeOutgoingEdges");function Cw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(Cw,"makeNodesHash")});var aE=q(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});Al.default=Uw;var bw=ca(require("lodash/has")),xw=ca(oE()),vw=Bi(),Pw=ca(Br()),Nw=ca(xn());function ca(t){return t&&t.__esModule?t:{default:t}}s(ca,"_interopRequireDefault");function Uw(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,vw.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,bw.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),Pw.default.isRef(a)&&a.isSibling?i(a.path,o):(0,Nw.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return xw.default.array(n,r).reverse()}s(Uw,"sortFields")});var cE=q(_l=>{"use strict";Object.defineProperty(_l,"__esModule",{value:!0});_l.default=Lw;function uE(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(uE,"findIndex");function Lw(t){return(e,r)=>uE(t,e)-uE(t,r)}s(Lw,"sortByKeyOrder")});var EE=q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=hE;Zi.default=void 0;var lE=wt(require("lodash/has")),dE=wt(require("lodash/snakeCase")),Mw=wt(require("lodash/camelCase")),kw=wt(require("lodash/mapKeys")),Fw=wt(require("lodash/mapValues")),Bw=Bi(),fE=Nt(),Ww=wt(aE()),mE=wt(cE()),$w=wt(ea()),Gw=wt(kr()),Ol=wt(Lt());function wt(t){return t&&t.__esModule?t:{default:t}}s(wt,"_interopRequireDefault");function Un(){return Un=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Un.apply(this,arguments)}s(Un,"_extends");var pE=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function Vw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(Vw,"unknown");var qw=(0,mE.default)([]),Ji=class extends Ol.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=qw,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 pE(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let o=this.fields,a=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,u=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),c={},l=Un({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let h=o[f],p=(0,lE.default)(i,f);if(h){let S,m=i[f];l.path=(r.path?`${r.path}.`:"")+f,h=h.resolve({value:m,context:r.context,parent:c});let g="spec"in h?h.spec:void 0,y=g?.strict;if(g?.strip){d=d||f in i;continue}S=!r.__validating||!y?h.cast(i[f],l):i[f],S!==void 0&&(c[f]=S)}else p&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!Gw.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!pE(f)){n(i[0]||null,f);return}u=u||f;let h=this._nodes.map(p=>(S,m)=>{let g=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(f[p],Un({},r,{path:g,from:a,strict:!0,parent:f,originalValue:u[p]}),m);return}m(null)});(0,$w.default)({sync:o,tests:h,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Un({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,o]of Object.entries(this.fields)){let a=n[i];a===void 0?n[i]=o:a instanceof Ol.default&&o instanceof Ol.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,mE.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,Ww.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,Bw.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,lE.default)(o,e)&&(a=Un({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=fE.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=Vw(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=fE.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,kw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Mw.default)}snakeCase(){return this.transformKeys(dE.default)}constantCase(){return this.transformKeys(e=>(0,dE.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Fw.default)(this.fields,r=>r.describe()),e}};Zi.default=Ji;function hE(t){return new Ji(t)}s(hE,"create");hE.prototype=Ji.prototype});var yE=q(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.create=gE;es.default=void 0;var Il=Ln(Pn()),Kw=Ln(xn()),Qw=Ln(Fi()),wl=Nt(),jw=Ln(ea()),Yw=Ln(kr()),Hw=Ln(Lt());function Ln(t){return t&&t.__esModule?t:{default:t}}s(Ln,"_interopRequireDefault");function la(){return la=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},la.apply(this,arguments)}s(la,"_extends");function gE(t){return new Xi(t)}s(gE,"create");var Xi=class extends Hw.default{static{s(this,"ArraySchema")}constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,o=n.map((a,u)=>{let c=this.innerType.cast(a,la({},r,{path:`${r.path||""}[${u}]`}));return c!==a&&(i=!0),c});return i?o:n}_validate(e,r={},n){var i,o;let a=[],u=r.sync,c=r.path,l=this.innerType,d=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(o=r.recursive)!=null?o:this.spec.recursive,h=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,S)=>{if(p){if(!Yw.default.isError(p)||d)return void n(p,S);a.push(p)}if(!f||!l||!this._typeCheck(S)){n(a[0]||null,S);return}h=h||S;let m=new Array(S.length);for(let g=0;g<S.length;g++){let y=S[g],I=`${r.path||""}[${g}]`,_=la({},r,{path:I,strict:!0,parent:S,index:g,originalValue:h[g]});m[g]=(D,T)=>l.validate(y,_,T)}(0,jw.default)({sync:u,path:c,value:S,errors:a,endEarly:d,tests:m},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Kw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Qw.default)(e));return r.innerType=e,r}length(e,r=wl.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Il.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||wl.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Il.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||wl.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Il.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,o)=>!e(n,i,o):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};es.default=Xi;gE.prototype=Xi.prototype});var TE=q(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.create=Zw;ts.default=void 0;var zw=Jw(xn());function Jw(t){return t&&t.__esModule?t:{default:t}}s(Jw,"_interopRequireDefault");function Zw(t){return new da(t)}s(Zw,"create");var da=class{static{s(this,"Lazy")}constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,zw.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)}},Xw=da;ts.default=Xw});var SE=q(Dl=>{"use strict";Object.defineProperty(Dl,"__esModule",{value:!0});Dl.default=rD;var eD=tD(Nt());function tD(t){return t&&t.__esModule?t:{default:t}}s(tD,"_interopRequireDefault");function rD(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{eD.default[e][r]=t[e][r]})})}s(rD,"setLocale")});var Cl=q(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.addMethod=cD;Object.defineProperty(re,"MixedSchema",{enumerable:!0,get:function(){return AE.default}});Object.defineProperty(re,"mixed",{enumerable:!0,get:function(){return AE.create}});Object.defineProperty(re,"BooleanSchema",{enumerable:!0,get:function(){return Rl.default}});Object.defineProperty(re,"bool",{enumerable:!0,get:function(){return Rl.create}});Object.defineProperty(re,"boolean",{enumerable:!0,get:function(){return Rl.create}});Object.defineProperty(re,"StringSchema",{enumerable:!0,get:function(){return _E.default}});Object.defineProperty(re,"string",{enumerable:!0,get:function(){return _E.create}});Object.defineProperty(re,"NumberSchema",{enumerable:!0,get:function(){return OE.default}});Object.defineProperty(re,"number",{enumerable:!0,get:function(){return OE.create}});Object.defineProperty(re,"DateSchema",{enumerable:!0,get:function(){return IE.default}});Object.defineProperty(re,"date",{enumerable:!0,get:function(){return IE.create}});Object.defineProperty(re,"ObjectSchema",{enumerable:!0,get:function(){return wE.default}});Object.defineProperty(re,"object",{enumerable:!0,get:function(){return wE.create}});Object.defineProperty(re,"ArraySchema",{enumerable:!0,get:function(){return DE.default}});Object.defineProperty(re,"array",{enumerable:!0,get:function(){return DE.create}});Object.defineProperty(re,"ref",{enumerable:!0,get:function(){return nD.create}});Object.defineProperty(re,"lazy",{enumerable:!0,get:function(){return iD.create}});Object.defineProperty(re,"ValidationError",{enumerable:!0,get:function(){return sD.default}});Object.defineProperty(re,"reach",{enumerable:!0,get:function(){return oD.default}});Object.defineProperty(re,"isSchema",{enumerable:!0,get:function(){return RE.default}});Object.defineProperty(re,"setLocale",{enumerable:!0,get:function(){return aD.default}});Object.defineProperty(re,"BaseSchema",{enumerable:!0,get:function(){return uD.default}});var AE=Gr(Vh()),Rl=Gr(Yh()),_E=Gr(Jh()),OE=Gr(eE()),IE=Gr(iE()),wE=Gr(EE()),DE=Gr(yE()),nD=Br(),iD=TE(),sD=rs(kr()),oD=rs(ml()),RE=rs(xn()),aD=rs(SE()),uD=rs(Lt());function rs(t){return t&&t.__esModule?t:{default:t}}s(rs,"_interopRequireDefault");function CE(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return CE=s(function(){return t},"_getRequireWildcardCache"),t}s(CE,"_getRequireWildcardCache");function Gr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=CE();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=n?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}s(Gr,"_interopRequireWildcard");function cD(t,e,r){if(!t||!(0,RE.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(cD,"addMethod")});var bE=q(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});var bl=vl();xl.default=()=>{(0,bl.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,bl.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,bl.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 vl=q(Ae=>{"use strict";var lD=Ae&&Ae.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),dD=Ae&&Ae.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),fD=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)&&lD(e,t,r);return dD(e,t),e},pD=Ae&&Ae.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.validateOptions=Ae.registerOptionPreset=Ae.getOptionPresets=Ae.getOptionPreset=void 0;var b=fD(Cl());Cl();var ns=at(),mD=pD(bE());ut();var Vr={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},xE=b.object({presetId:b.string().required(),useSeconds:b.boolean().required(),useYears:b.boolean().required(),useAliases:b.boolean(),useBlankDay:b.boolean().required(),allowOnlyOneBlankDayField:b.boolean().required(),mustHaveBlankDayField:b.boolean(),useLastDayOfMonth:b.boolean(),useLastDayOfWeek:b.boolean(),useNearestWeekday:b.boolean(),useNthWeekdayOfMonth:b.boolean(),seconds:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),minutes:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),hours:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),daysOfMonth:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),months:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),daysOfWeek:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),years:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required()}).required(),hD=s(t=>Vr[t]?(0,ns.valid)(Vr[t]):(0,ns.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=hD;var ED=s(()=>Vr,"getOptionPresets");Ae.getOptionPresets=ED;var gD=s((t,e)=>{Vr[t]=xE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=gD;var yD=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,h,p,S,m,g,y,I,_,D;try{(0,mD.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Vr[t.preset])return(0,ns.err)([`Option preset ${t.preset} does not exist.`]);T=Vr[t.preset]}else T=t.preset;else T=Vr.default;let O=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=T.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=T.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=T.seconds.lowerLimit)!==null&&u!==void 0?u:T.seconds.minValue,upperLimit:(c=T.seconds.upperLimit)!==null&&c!==void 0?c:T.seconds.maxValue},minutes:{lowerLimit:(l=T.minutes.lowerLimit)!==null&&l!==void 0?l:T.minutes.minValue,upperLimit:(d=T.minutes.upperLimit)!==null&&d!==void 0?d:T.minutes.maxValue},hours:{lowerLimit:(f=T.hours.lowerLimit)!==null&&f!==void 0?f:T.hours.minValue,upperLimit:(h=T.hours.upperLimit)!==null&&h!==void 0?h:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(S=T.daysOfMonth.upperLimit)!==null&&S!==void 0?S:T.daysOfMonth.maxValue},months:{lowerLimit:(m=T.months.lowerLimit)!==null&&m!==void 0?m:T.months.minValue,upperLimit:(g=T.months.upperLimit)!==null&&g!==void 0?g:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(I=T.daysOfWeek.upperLimit)!==null&&I!==void 0?I:T.daysOfWeek.maxValue},years:{lowerLimit:(_=T.years.lowerLimit)!==null&&_!==void 0?_:T.years.minValue,upperLimit:(D=T.years.upperLimit)!==null&&D!==void 0?D:T.years.maxValue}}),t.override),R=b.object({presetId:b.string().required(),preset:xE.required(),useSeconds:b.boolean().required(),useYears:b.boolean().required(),useAliases:b.boolean(),useBlankDay:b.boolean().required(),allowOnlyOneBlankDayField:b.boolean().required(),mustHaveBlankDayField:b.boolean(),useLastDayOfMonth:b.boolean(),useLastDayOfWeek:b.boolean(),useNearestWeekday:b.boolean(),useNthWeekdayOfMonth:b.boolean(),seconds:b.object({lowerLimit:b.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:b.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:b.object({lowerLimit:b.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:b.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:b.object({lowerLimit:b.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:b.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:b.object({lowerLimit:b.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:b.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:b.object({lowerLimit:b.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:b.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:b.object({lowerLimit:b.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:b.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:b.object({lowerLimit:b.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:b.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(O,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ns.valid)(R)}catch(T){return(0,ns.err)(T.errors)}},"validateOptions");Ae.validateOptions=yD});var Ot=q((is,Nl)=>{"use strict";var Kr=is&&is.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(is,"__esModule",{value:!0});var qr=at(),TD=Kr(sh()),SD=Kr(oh()),AD=Kr(ah()),_D=Kr(uh()),OD=Kr(ch()),ID=Kr(lh()),wD=Kr(dh()),DD=vl();ut();var RD=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,qr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,qr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,qr.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,qr.valid)(n)},"splitCronString"),Pl=s((t,e={})=>{let r=(0,DD.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=RD(t,n);if(i.isError())return(0,qr.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,TD.default)(o,n)),a.push((0,SD.default)(o,n)),a.push((0,AD.default)(o,n)),a.push((0,_D.default)(o,n)),a.push((0,OD.default)(o,n)),a.push((0,ID.default)(o,n)),n.useYears&&a.push((0,wD.default)(o,n)),a.every(c=>c.isValid()))return(0,qr.valid)(o);let u=[];return a.forEach(c=>{c.isError()&&c.getError().forEach(l=>{u.push(l)})}),u.forEach((c,l)=>{u[l]=`${c} (Input cron: '${t}')`}),(0,qr.err)(u)},"cron");is.default=Pl;Nl.exports=Pl;Nl.exports.default=Pl});var oy=q(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var Ft=class extends Error{static{s(this,"LuxonError")}},Vl=class extends Ft{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},ql=class extends Ft{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Kl=class extends Ft{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},cr=class extends Ft{static{s(this,"ConflictingSpecificationError")}},Ta=class extends Ft{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends Ft{static{s(this,"InvalidArgumentError")}},Dt=class extends Ft{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},v="numeric",ft="short",qe="long",Sa={year:v,month:v,day:v},ag={year:v,month:ft,day:v},CD={year:v,month:ft,day:v,weekday:ft},ug={year:v,month:qe,day:v},cg={year:v,month:qe,day:v,weekday:qe},lg={hour:v,minute:v},dg={hour:v,minute:v,second:v},fg={hour:v,minute:v,second:v,timeZoneName:ft},pg={hour:v,minute:v,second:v,timeZoneName:qe},mg={hour:v,minute:v,hourCycle:"h23"},hg={hour:v,minute:v,second:v,hourCycle:"h23"},Eg={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:ft},gg={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:qe},yg={year:v,month:v,day:v,hour:v,minute:v},Tg={year:v,month:v,day:v,hour:v,minute:v,second:v},Sg={year:v,month:ft,day:v,hour:v,minute:v},Ag={year:v,month:ft,day:v,hour:v,minute:v,second:v},bD={year:v,month:ft,day:v,weekday:ft,hour:v,minute:v},_g={year:v,month:qe,day:v,hour:v,minute:v,timeZoneName:ft},Og={year:v,month:qe,day:v,hour:v,minute:v,second:v,timeZoneName:ft},Ig={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,timeZoneName:qe},wg={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,second:v,timeZoneName:qe},dr=class{static{s(this,"Zone")}get type(){throw new Dt}get name(){throw new Dt}get ianaName(){return this.name}get isUniversal(){throw new Dt}offsetName(e,r){throw new Dt}formatOffset(e,r){throw new Dt}offset(e){throw new Dt}equals(e){throw new Dt}get isValid(){throw new Dt}},Ul=null,ls=class t extends dr{static{s(this,"SystemZone")}static get instance(){return Ul===null&&(Ul=new t),Ul}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return Mg(e,r,n)}formatOffset(e,r){return cs(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Ql=new Map;function xD(t){let e=Ql.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"}),Ql.set(t,e)),e}s(xD,"makeDTF");var vD={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function PD(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(PD,"hackyOffset");function ND(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=vD[o];o==="era"?n[u]=a:Q(u)||(n[u]=parseInt(a,10))}return n}s(ND,"partsOffset");var Ll=new Map,Bt=class t extends dr{static{s(this,"IANAZone")}static create(e){let r=Ll.get(e);return r===void 0&&Ll.set(e,r=new t(e)),r}static resetCache(){Ll.clear(),Ql.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 Mg(e,r,n,this.name)}formatOffset(e,r){return cs(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=xD(this.name),[i,o,a,u,c,l,d]=n.formatToParts?ND(n,r):PD(n,r);u==="BC"&&(i=-Math.abs(i)+1);let h=Ra({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),p=+r,S=p%1e3;return p-=S>=0?S:1e3+S,(h-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},vE={};function UD(t,e={}){let r=JSON.stringify([t,e]),n=vE[r];return n||(n=new Intl.ListFormat(t,e),vE[r]=n),n}s(UD,"getCachedLF");var jl=new Map;function Yl(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(Yl,"getCachedDTF");var Hl=new Map;function LD(t,e={}){let r=JSON.stringify([t,e]),n=Hl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Hl.set(r,n)),n}s(LD,"getCachedINF");var zl=new Map;function MD(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=zl.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),zl.set(i,o)),o}s(MD,"getCachedRTF");var os=null;function kD(){return os||(os=new Intl.DateTimeFormat().resolvedOptions().locale,os)}s(kD,"systemLocale");var Jl=new Map;function Dg(t){let e=Jl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Jl.set(t,e)),e}s(Dg,"getCachedIntResolvedOptions");var Zl=new Map;function FD(t){let e=Zl.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...Rg,...e}),Zl.set(t,e)}return e}s(FD,"getCachedWeekInfo");function BD(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=Yl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=Yl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(BD,"parseLocaleString");function WD(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(WD,"intlConfigString");function $D(t){let e=[];for(let r=1;r<=12;r++){let n=oe.utc(2009,r,1);e.push(t(n))}return e}s($D,"mapMonths");function GD(t){let e=[];for(let r=1;r<=7;r++){let n=oe.utc(2016,11,13+r);e.push(t(n))}return e}s(GD,"mapWeekdays");function fa(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(fa,"listStuff");function VD(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||Dg(t.locale).numberingSystem==="latn"}s(VD,"supportsFastNumbers");var Xl=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=LD(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):ld(e,3);return me(r,this.padTo)}}},ed=class{static{s(this,"PolyDateFormatter")}constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),u=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&Bt.create(u).valid?(i=u,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=Yl(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()}},td=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&Ug()&&(this.rtf=MD(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):lR(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Rg={firstDay:1,minimalDays:4,weekend:[6,7]},te=class t{static{s(this,"Locale")}static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,o=!1){let a=e||ne.defaultLocale,u=a||(o?"en-US":kD()),c=r||ne.defaultNumberingSystem,l=n||ne.defaultOutputCalendar,d=nd(i)||ne.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){os=null,jl.clear(),Hl.clear(),zl.clear(),Jl.clear(),Zl.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]=BD(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=WD(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=VD(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,nd(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return fa(this,e,Bg,()=>{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]=$D(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return fa(this,e,Gg,()=>{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]=GD(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return fa(this,void 0,()=>Vg,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[oe.utc(2016,11,13,9),oe.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return fa(this,e,qg,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[oe.utc(-40,1,1),oe.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),o=i.formatToParts(),a=o.find(u=>u.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new Xl(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new ed(e,this.intl,r)}relFormatter(e={}){return new td(this.intl,this.isEnglish(),e)}listFormatter(e={}){return UD(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Dg(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Lg()?FD(this.locale):Rg}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})`}},Ml=null,Ke=class t extends dr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Ml===null&&(Ml=new t(0)),Ml}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Ca(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${cs(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${cs(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return cs(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Aa=class extends dr{static{s(this,"InvalidZone")}constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function ur(t,e){if(Q(t)||t===null)return e;if(t instanceof dr)return t;if(HD(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?ls.instance:r==="utc"||r==="gmt"?Ke.utcInstance:Ke.parseSpecifier(r)||Bt.create(t)}else return lr(t)?Ke.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Aa(t)}s(ur,"normalizeZone");var od={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"},PE={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]},qD=od.hanidec.replace(/[\[|\]]/g,"").split("");function KD(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(od.hanidec)!==-1)e+=qD.indexOf(t[r]);else for(let i in PE){let[o,a]=PE[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(KD,"parseDigits");var rd=new Map;function QD(){rd.clear()}s(QD,"resetDigitRegexCache");function lt({numberingSystem:t},e=""){let r=t||"latn",n=rd.get(r);n===void 0&&(n=new Map,rd.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${od[r]}${e}`),n.set(e,i)),i}s(lt,"digitRegex");var NE=s(()=>Date.now(),"now"),UE="system",LE=null,ME=null,kE=null,FE=60,BE,WE=null,ne=class{static{s(this,"Settings")}static get now(){return NE}static set now(e){NE=e}static set defaultZone(e){UE=e}static get defaultZone(){return ur(UE,ls.instance)}static get defaultLocale(){return LE}static set defaultLocale(e){LE=e}static get defaultNumberingSystem(){return ME}static set defaultNumberingSystem(e){ME=e}static get defaultOutputCalendar(){return kE}static set defaultOutputCalendar(e){kE=e}static get defaultWeekSettings(){return WE}static set defaultWeekSettings(e){WE=nd(e)}static get twoDigitCutoffYear(){return FE}static set twoDigitCutoffYear(e){FE=e%100}static get throwOnInvalid(){return BE}static set throwOnInvalid(e){BE=e}static resetCaches(){te.resetCache(),Bt.resetCache(),oe.resetCache(),QD()}},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}},Cg=[0,31,59,90,120,151,181,212,243,273,304,334],bg=[0,31,60,91,121,152,182,213,244,274,305,335];function Ze(t,e){return new Ve("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(Ze,"unitOutOfRange");function ad(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(ad,"dayOfWeek");function xg(t,e,r){return r+(fs(t)?bg:Cg)[e-1]}s(xg,"computeOrdinal");function vg(t,e){let r=fs(t)?bg:Cg,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(vg,"uncomputeOrdinal");function ud(t,e){return(t-e+7)%7+1}s(ud,"isoWeekdayToLocal");function _a(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=xg(n,i,o),u=ud(ad(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=ds(l,e,r)):c>ds(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...ba(t)}}s(_a,"gregorianToWeek");function $E(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=ud(ad(n,1,e),r),u=Bn(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Bn(l)):c>u?(l=n+1,c-=Bn(n)):l=n;let{month:d,day:f}=vg(l,c);return{year:l,month:d,day:f,...ba(t)}}s($E,"weekToGregorian");function kl(t){let{year:e,month:r,day:n}=t,i=xg(e,r,n);return{year:e,ordinal:i,...ba(t)}}s(kl,"gregorianToOrdinal");function GE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=vg(e,r);return{year:e,month:n,day:i,...ba(t)}}s(GE,"ordinalToGregorian");function VE(t,e){if(!Q(t.localWeekday)||!Q(t.localWeekNumber)||!Q(t.localWeekYear)){if(!Q(t.weekday)||!Q(t.weekNumber)||!Q(t.weekYear))throw new cr("Cannot mix locale-based week fields with ISO-based week fields");return Q(t.localWeekday)||(t.weekday=t.localWeekday),Q(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Q(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}s(VE,"usesLocalWeekValues");function jD(t,e=4,r=1){let n=Da(t.weekYear),i=Xe(t.weekNumber,1,ds(t.weekYear,e,r)),o=Xe(t.weekday,1,7);return n?i?o?!1:Ze("weekday",t.weekday):Ze("week",t.weekNumber):Ze("weekYear",t.weekYear)}s(jD,"hasInvalidWeekData");function YD(t){let e=Da(t.year),r=Xe(t.ordinal,1,Bn(t.year));return e?r?!1:Ze("ordinal",t.ordinal):Ze("year",t.year)}s(YD,"hasInvalidOrdinalData");function Pg(t){let e=Da(t.year),r=Xe(t.month,1,12),n=Xe(t.day,1,Oa(t.year,t.month));return e?r?n?!1:Ze("day",t.day):Ze("month",t.month):Ze("year",t.year)}s(Pg,"hasInvalidGregorianData");function Ng(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=Xe(e,0,23)||e===24&&r===0&&n===0&&i===0,a=Xe(r,0,59),u=Xe(n,0,59),c=Xe(i,0,999);return o?a?u?c?!1:Ze("millisecond",i):Ze("second",n):Ze("minute",r):Ze("hour",e)}s(Ng,"hasInvalidTimeData");function Q(t){return typeof t>"u"}s(Q,"isUndefined");function lr(t){return typeof t=="number"}s(lr,"isNumber");function Da(t){return typeof t=="number"&&t%1===0}s(Da,"isInteger");function HD(t){return typeof t=="string"}s(HD,"isString");function zD(t){return Object.prototype.toString.call(t)==="[object Date]"}s(zD,"isDate");function Ug(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(Ug,"hasRelative");function Lg(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(Lg,"hasLocaleWeekInfo");function JD(t){return Array.isArray(t)?t:[t]}s(JD,"maybeArray");function qE(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(qE,"bestBy");function ZD(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(ZD,"pick");function $n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s($n,"hasOwnProperty");function nd(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!Xe(t.firstDay,1,7)||!Xe(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!Xe(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(nd,"validateWeekSettings");function Xe(t,e,r){return Da(t)&&t>=e&&t<=r}s(Xe,"integerBetween");function XD(t,e){return t-e*Math.floor(t/e)}s(XD,"floorMod");function me(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(me,"padStart");function ar(t){if(!(Q(t)||t===null||t===""))return parseInt(t,10)}s(ar,"parseInteger");function Qr(t){if(!(Q(t)||t===null||t===""))return parseFloat(t)}s(Qr,"parseFloating");function cd(t){if(!(Q(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(cd,"parseMillis");function ld(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(ld,"roundTo");function fs(t){return t%4===0&&(t%100!==0||t%400===0)}s(fs,"isLeapYear");function Bn(t){return fs(t)?366:365}s(Bn,"daysInYear");function Oa(t,e){let r=XD(e-1,12)+1,n=t+(e-r)/12;return r===2?fs(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(Oa,"daysInMonth");function Ra(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}s(Ra,"objToLocalTS");function KE(t,e,r){return-ud(ad(t,1,e),r)+e-1}s(KE,"firstWeekOffset");function ds(t,e=4,r=1){let n=KE(t,e,r),i=KE(t+1,e,r);return(Bn(t)-n+i)/7}s(ds,"weeksInWeekYear");function id(t){return t>99?t:t>ne.twoDigitCutoffYear?1900+t:2e3+t}s(id,"untruncateYear");function Mg(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(Mg,"parseZoneInfo");function Ca(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}s(Ca,"signedOffset");function kg(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(kg,"asNumber");function Ia(t,e){let r={};for(let n in t)if($n(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=kg(i)}return r}s(Ia,"normalizeObject");function cs(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${me(r,2)}:${me(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${me(r,2)}${me(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(cs,"formatOffset");function ba(t){return ZD(t,["hour","minute","second","millisecond"])}s(ba,"timeObject");var eR=["January","February","March","April","May","June","July","August","September","October","November","December"],Fg=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tR=["J","F","M","A","M","J","J","A","S","O","N","D"];function Bg(t){switch(t){case"narrow":return[...tR];case"short":return[...Fg];case"long":return[...eR];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(Bg,"months");var Wg=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],$g=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],rR=["M","T","W","T","F","S","S"];function Gg(t){switch(t){case"narrow":return[...rR];case"short":return[...$g];case"long":return[...Wg];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(Gg,"weekdays");var Vg=["AM","PM"],nR=["Before Christ","Anno Domini"],iR=["BC","AD"],sR=["B","A"];function qg(t){switch(t){case"narrow":return[...sR];case"short":return[...iR];case"long":return[...nR];default:return null}}s(qg,"eras");function oR(t){return Vg[t.hour<12?0:1]}s(oR,"meridiemForDateTime");function aR(t,e){return Gg(e)[t.weekday-1]}s(aR,"weekdayForDateTime");function uR(t,e){return Bg(e)[t.month-1]}s(uR,"monthForDateTime");function cR(t,e){return qg(e)[t.year<0?0:1]}s(cR,"eraForDateTime");function lR(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(lR,"formatRelativeTime");function QE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(QE,"stringifyTokens");var dR={D:Sa,DD:ag,DDD:ug,DDDD:cg,t:lg,tt:dg,ttt:fg,tttt:pg,T:mg,TT:hg,TTT:Eg,TTTT:gg,f:yg,ff:Sg,fff:_g,ffff:Ig,F:Tg,FF:Ag,FFF:Og,FFFF:wg},Ge=class t{static{s(this,"Formatter")}static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,o=[];for(let a=0;a<e.length;a++){let u=e.charAt(a);u==="'"?((n.length>0||i)&&o.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||u===r?n+=u:(n.length>0&&o.push({literal:/^\s+$/.test(n),val:n}),n=u,r=u)}return n.length>0&&o.push({literal:i||/^\s+$/.test(n),val:n}),o}static macroTokenToFormatOpts(e){return dR[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return me(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=s((p,S)=>this.loc.extract(e,p,S),"string"),a=s(p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"","formatOffset"),u=s(()=>n?oR(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((p,S)=>n?uR(e,p):o(S?{month:p}:{month:p,day:"numeric"},"month"),"month"),l=s((p,S)=>n?aR(e,p):o(S?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(p=>{let S=t.macroTokenToFormatOpts(p);return S?this.formatWithSystemDefault(e,S):p},"maybeMacro"),f=s(p=>n?cR(e,p):o({era:p},"era"),"era"),h=s(p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return u();case"d":return i?o({day:"numeric"},"day"):this.num(e.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(e.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(e.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(p)}},"tokenToString");return QE(t.parseFormat(r),h)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>h=>{let p=i(h);if(p){let S=f.isNegativeDuration&&p!==f.largestUnit?n:1,m;return this.opts.signMode==="negativeLargestOnly"&&p!==f.largestUnit?m="never":this.opts.signMode==="all"?m="always":m="auto",this.num(d.get(p)*S,h.length,m)}else return h},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:h})=>f?d:d.concat(h),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return QE(a,o(c,l))}},Kg=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Gn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Gn,"combineRegexes");function Vn(...t){return e=>t.reduce(([r,n,i],o)=>{let[a,u,c]=o(e,i);return[{...r,...a},u||n,c]},[{},null,1]).slice(0,2)}s(Vn,"combineExtractors");function qn(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}s(qn,"parse");function Qg(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=ar(e[r+i]);return[n,null,r+i]}}s(Qg,"simpleParse");var jg=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,fR=`(?:${jg.source}?(?:\\[(${Kg.source})\\])?)?`,dd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Yg=RegExp(`${dd.source}${fR}`),fd=RegExp(`(?:[Tt]${Yg.source})?`),pR=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,mR=/(\d{4})-?W(\d\d)(?:-?(\d))?/,hR=/(\d{4})-?(\d{3})/,ER=Qg("weekYear","weekNumber","weekDay"),gR=Qg("year","ordinal"),yR=/(\d{4})-(\d\d)-(\d\d)/,Hg=RegExp(`${dd.source} ?(?:${jg.source}|(${Kg.source}))?`),TR=RegExp(`(?: ${Hg.source})?`);function Wn(t,e,r){let n=t[e];return Q(n)?r:ar(n)}s(Wn,"int");function SR(t,e){return[{year:Wn(t,e),month:Wn(t,e+1,1),day:Wn(t,e+2,1)},null,e+3]}s(SR,"extractISOYmd");function Kn(t,e){return[{hours:Wn(t,e,0),minutes:Wn(t,e+1,0),seconds:Wn(t,e+2,0),milliseconds:cd(t[e+3])},null,e+4]}s(Kn,"extractISOTime");function ps(t,e){let r=!t[e]&&!t[e+1],n=Ca(t[e+1],t[e+2]),i=r?null:Ke.instance(n);return[{},i,e+3]}s(ps,"extractISOOffset");function ms(t,e){let r=t[e]?Bt.create(t[e]):null;return[{},r,e+1]}s(ms,"extractIANAZone");var AR=RegExp(`^T?${dd.source}$`),_R=/^-?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 OR(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",h=s((p,S=!1)=>p!==void 0&&(S||p&&d)?-p:p,"maybeNegate");return[{years:h(Qr(r)),months:h(Qr(n)),weeks:h(Qr(i)),days:h(Qr(o)),hours:h(Qr(a)),minutes:h(Qr(u)),seconds:h(Qr(c),c==="-0"),milliseconds:h(cd(l),f)}]}s(OR,"extractISODuration");var IR={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function pd(t,e,r,n,i,o,a){let u={year:e.length===2?id(ar(e)):ar(e),month:Fg.indexOf(r)+1,day:ar(n),hour:ar(i),minute:ar(o)};return a&&(u.second=ar(a)),t&&(u.weekday=t.length>3?Wg.indexOf(t)+1:$g.indexOf(t)+1),u}s(pd,"fromStrings");var wR=/^(?:(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 DR(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,h=pd(e,i,n,r,o,a,u),p;return c?p=IR[c]:l?p=0:p=Ca(d,f),[h,new Ke(p)]}s(DR,"extractRFC2822");function RR(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(RR,"preprocessRFC2822");var CR=/^(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$/,bR=/^(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$/,xR=/^(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 jE(t){let[,e,r,n,i,o,a,u]=t;return[pd(e,i,n,r,o,a,u),Ke.utcInstance]}s(jE,"extractRFC1123Or850");function vR(t){let[,e,r,n,i,o,a,u]=t;return[pd(e,u,r,n,i,o,a),Ke.utcInstance]}s(vR,"extractASCII");var PR=Gn(pR,fd),NR=Gn(mR,fd),UR=Gn(hR,fd),LR=Gn(Yg),zg=Vn(SR,Kn,ps,ms),MR=Vn(ER,Kn,ps,ms),kR=Vn(gR,Kn,ps,ms),FR=Vn(Kn,ps,ms);function BR(t){return qn(t,[PR,zg],[NR,MR],[UR,kR],[LR,FR])}s(BR,"parseISODate");function WR(t){return qn(RR(t),[wR,DR])}s(WR,"parseRFC2822Date");function $R(t){return qn(t,[CR,jE],[bR,jE],[xR,vR])}s($R,"parseHTTPDate");function GR(t){return qn(t,[_R,OR])}s(GR,"parseISODuration");var VR=Vn(Kn);function qR(t){return qn(t,[AR,VR])}s(qR,"parseISOTimeOnly");var KR=Gn(yR,TR),QR=Gn(Hg),jR=Vn(Kn,ps,ms);function YR(t){return qn(t,[KR,zg],[QR,jR])}s(YR,"parseSQL");var YE="Invalid Duration",Jg={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},HR={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...Jg},Je=146097/400,Mn=146097/4800,zR={years:{quarters:4,months:12,weeks:Je/7,days:Je,hours:Je*24,minutes:Je*24*60,seconds:Je*24*60*60,milliseconds:Je*24*60*60*1e3},quarters:{months:3,weeks:Je/28,days:Je/4,hours:Je*24/4,minutes:Je*24*60/4,seconds:Je*24*60*60/4,milliseconds:Je*24*60*60*1e3/4},months:{weeks:Mn/7,days:Mn,hours:Mn*24,minutes:Mn*24*60,seconds:Mn*24*60*60,milliseconds:Mn*24*60*60*1e3},...Jg},Yr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],JR=Yr.slice(0).reverse();function kt(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new ge(n)}s(kt,"clone$1");function Zg(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of JR.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(Zg,"durationToMillis");function HE(t,e){let r=Zg(t,e)<0?-1:1;Yr.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),Yr.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(HE,"normalizeValues");function zE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(zE,"removeZeroes");var ge=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?zR:HR;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||te.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new _e(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Ia(e,t.normalizeUnit),loc:te.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(lr(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new _e(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=GR(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]=qR(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Duration is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new Kl(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Ta(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?Ge.create(this.loc,n).formatDurationFromString(this,e):YE}toHuman(e={}){if(!this.isValid)return YE;let r=e.showZeros!==!1,n=Yr.map(i=>{let o=this.values[i];return Q(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=ld(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},oe.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Zg(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 Yr)($n(r.values,i)||$n(this.values,i))&&(n[i]=r.get(i)+this.get(i));return kt(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=kg(e(this.values[n],n));return kt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Ia(e,t.normalizeUnit)};return kt(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return kt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return HE(this.matrix,e),kt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=zE(this.normalize().shiftToAll().toObject());return kt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of Yr)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;lr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else lr(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return HE(this.matrix,r),kt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return kt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=zE(this.values);return kt(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}s(r,"eq");for(let n of Yr)if(!r(this.values[n],e.values[n]))return!1;return!0}},kn="Invalid Interval";function ZR(t,e){return!t||!t.isValid?zr.invalid("missing or invalid start"):!e||!e.isValid?zr.invalid("missing or invalid end"):e<t?zr.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}s(ZR,"validateStartEnd");var zr=class t{static{s(this,"Interval")}constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Interval is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new ql(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ss(e),i=ss(r),o=ZR(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=ge.fromDurationLike(r),i=ss(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=ge.fromDurationLike(r),i=ss(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=oe.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=oe.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=ge.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=ge.fromISO(n,r);if(l.isValid)return t.before(u,l)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(ss).filter(a=>this.contains(a)).sort((a,u)=>a.toMillis()-u.toMillis()),n=[],{s:i}=this,o=0;for(;i<this.e;){let a=r[o]||this.e,u=+a>+this.e?this.e:a;n.push(t.fromDateTimes(i,u)),i=u,o+=1}return n}splitBy(e){let r=ge.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:kn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Sa,r={}){return this.isValid?Ge.create(this.s.loc.clone(r),e).formatInterval(this):kn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:kn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:kn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:kn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:kn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):ge.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Hr=class{static{s(this,"Info")}static hasDST(e=ne.defaultZone){let r=oe.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Bt.isValidZone(e)}static normalizeZone(e){return ur(e,ne.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return te.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return te.create(r,null,"gregory").eras(e)}static features(){return{relative:Ug(),localeWeek:Lg()}}};function JE(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(ge.fromMillis(n).as("days"))}s(JE,"dayDiff");function XR(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=JE(c,l);return(d-d%7)/7}],["days",JE]],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(XR,"highOrderDiffs");function eC(t,e,r,n){let[i,o,a,u]=XR(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=ge.fromObject(o,n);return l.length>0?ge.fromMillis(c,n).shiftTo(...l).plus(d):d}s(eC,"diff");var tC="missing Intl.DateTimeFormat.formatToParts support";function X(t,e=r=>r){return{regex:t,deser:([r])=>e(KD(r))}}s(X,"intUnit");var rC=String.fromCharCode(160),Xg=`[ ${rC}]`,ey=new RegExp(Xg,"g");function nC(t){return t.replace(/\./g,"\\.?").replace(ey,Xg)}s(nC,"fixListRegex");function ZE(t){return t.replace(/\./g,"").replace(ey," ").toLowerCase()}s(ZE,"stripInsensitivities");function dt(t,e){return t===null?null:{regex:RegExp(t.map(nC).join("|")),deser:([r])=>t.findIndex(n=>ZE(r)===ZE(n))+e}}s(dt,"oneOf");function XE(t,e){return{regex:t,deser:([,r,n])=>Ca(r,n),groups:e}}s(XE,"offset");function pa(t){return{regex:t,deser:([e])=>e}}s(pa,"simple");function iC(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(iC,"escapeToken");function sC(t,e){let r=lt(e),n=lt(e,"{2}"),i=lt(e,"{3}"),o=lt(e,"{4}"),a=lt(e,"{6}"),u=lt(e,"{1,2}"),c=lt(e,"{1,3}"),l=lt(e,"{1,6}"),d=lt(e,"{1,9}"),f=lt(e,"{2,4}"),h=lt(e,"{4,6}"),p=s(g=>({regex:RegExp(iC(g.val)),deser:([y])=>y,literal:!0}),"literal"),m=s(g=>{if(t.literal)return p(g);switch(g.val){case"G":return dt(e.eras("short"),0);case"GG":return dt(e.eras("long"),0);case"y":return X(l);case"yy":return X(f,id);case"yyyy":return X(o);case"yyyyy":return X(h);case"yyyyyy":return X(a);case"M":return X(u);case"MM":return X(n);case"MMM":return dt(e.months("short",!0),1);case"MMMM":return dt(e.months("long",!0),1);case"L":return X(u);case"LL":return X(n);case"LLL":return dt(e.months("short",!1),1);case"LLLL":return dt(e.months("long",!1),1);case"d":return X(u);case"dd":return X(n);case"o":return X(c);case"ooo":return X(i);case"HH":return X(n);case"H":return X(u);case"hh":return X(n);case"h":return X(u);case"mm":return X(n);case"m":return X(u);case"q":return X(u);case"qq":return X(n);case"s":return X(u);case"ss":return X(n);case"S":return X(c);case"SSS":return X(i);case"u":return pa(d);case"uu":return pa(u);case"uuu":return X(r);case"a":return dt(e.meridiems(),0);case"kkkk":return X(o);case"kk":return X(f,id);case"W":return X(u);case"WW":return X(n);case"E":case"c":return X(r);case"EEE":return dt(e.weekdays("short",!1),1);case"EEEE":return dt(e.weekdays("long",!1),1);case"ccc":return dt(e.weekdays("short",!0),1);case"cccc":return dt(e.weekdays("long",!0),1);case"Z":case"ZZ":return XE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return XE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return pa(/[a-z_+-/]{1,256}?/i);case" ":return pa(/[^\S\n\r]/);default:return p(g)}},"unitate")(t)||{invalidReason:tC};return m.token=t,m}s(sC,"unitForToken");var oC={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 aC(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=oC[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(aC,"tokenForPart");function uC(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(uC,"buildRegex");function cC(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if($n(r,a)){let u=r[a],c=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(n.slice(o,o+c))),o+=c}return[n,i]}else return[n,{}]}s(cC,"match");function lC(t){let e=s(o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},"toField"),r=null,n;return Q(t.z)||(r=Bt.create(t.z)),Q(t.Z)||(r||(r=new Ke(t.Z)),n=t.Z),Q(t.q)||(t.M=(t.q-1)*3+1),Q(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),Q(t.u)||(t.S=cd(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s(lC,"dateTimeFromMatches");var Fl=null;function dC(){return Fl||(Fl=oe.fromMillis(1555555555555)),Fl}s(dC,"getDummyDateTime");function fC(t,e){if(t.literal)return t;let r=Ge.macroTokenToFormatOpts(t.val),n=ny(r,e);return n==null||n.includes(void 0)?t:n}s(fC,"maybeExpandMacroToken");function ty(t,e){return Array.prototype.concat(...t.map(r=>fC(r,e)))}s(ty,"expandMacroTokens");var wa=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=ty(Ge.parseFormat(r),e),this.units=this.tokens.map(n=>sC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=uC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=cC(e,this.regex,this.handlers),[i,o,a]=n?lC(n):[null,null,void 0];if($n(n,"a")&&$n(n,"H"))throw new cr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function ry(t,e,r){return new wa(t,r).explainFromTokens(e)}s(ry,"explainFromTokens");function pC(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=ry(t,e,r);return[n,i,o,a]}s(pC,"parseFromTokens");function ny(t,e){if(!t)return null;let n=Ge.create(e,t).dtFormatter(dC()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>aC(a,t,o))}s(ny,"formatOptsToTokens");var Bl="Invalid DateTime",eg=864e13;function as(t){return new Ve("unsupported zone",`the zone "${t.name}" is not supported`)}s(as,"unsupportedZone");function Wl(t){return t.weekData===null&&(t.weekData=_a(t.c)),t.weekData}s(Wl,"possiblyCachedWeekData");function $l(t){return t.localWeekData===null&&(t.localWeekData=_a(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s($l,"possiblyCachedLocalWeekData");function jr(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new oe({...r,...e,old:r})}s(jr,"clone");function iy(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(iy,"fixOffset");function ma(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}s(ma,"tsToObj");function Ea(t,e,r){return iy(Ra(t),e,r)}s(Ea,"objToTS");function tg(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,Oa(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=ge.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),u=Ra(o),[c,l]=iy(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(tg,"adjustTime");function Fn(t,e,r,n,i,o){let{setZone:a,zone:u}=r;if(t&&Object.keys(t).length!==0||e){let c=e||u,l=oe.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return oe.invalid(new Ve("unparsable",`the input "${i}" can't be parsed as ${n}`))}s(Fn,"parseDataToDateTime");function ha(t,e,r=!0){return t.isValid?Ge.create(te.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}s(ha,"toTechFormat");function Gl(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=me(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=me(t.c.month),r==="month")return i;i+="-"}else if(i+=me(t.c.month),r==="month")return i;return i+=me(t.c.day),i}s(Gl,"toISODate");function rg(t,e,r,n,i,o,a){let u=!r||t.c.millisecond!==0||t.c.second!==0,c="";switch(a){case"day":case"month":case"year":break;default:if(c+=me(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=me(t.c.minute),a==="minute")break;u&&(c+=":",c+=me(t.c.second))}else{if(c+=me(t.c.minute),a==="minute")break;u&&(c+=me(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=me(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=me(Math.trunc(-t.o/60)),c+=":",c+=me(Math.trunc(-t.o%60))):(c+="+",c+=me(Math.trunc(t.o/60)),c+=":",c+=me(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(rg,"toISOTime");var sy={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},mC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},hC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ga=["year","month","day","hour","minute","second","millisecond"],EC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],gC=["year","ordinal","hour","minute","second","millisecond"];function ya(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Ta(t);return e}s(ya,"normalizeUnit");function ng(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return ya(t)}}s(ng,"normalizeUnitWithLocalWeeks");function yC(t){if(us===void 0&&(us=ne.now()),t.type!=="iana")return t.offset(us);let e=t.name,r=sd.get(e);return r===void 0&&(r=t.offset(us),sd.set(e,r)),r}s(yC,"guessOffsetForZone");function ig(t,e){let r=ur(e.zone,ne.defaultZone);if(!r.isValid)return oe.invalid(as(r));let n=te.fromObject(e),i,o;if(Q(t.year))i=ne.now();else{for(let c of ga)Q(t[c])&&(t[c]=sy[c]);let a=Pg(t)||Ng(t);if(a)return oe.invalid(a);let u=yC(r);[i,o]=Ea(t,u,r)}return new oe({ts:i,zone:r,loc:n,o})}s(ig,"quickDT");function sg(t,e,r){let n=Q(r.round)?!0:r.round,i=Q(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=ld(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(sg,"diffRelative");function og(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(og,"lastOpts");var us,sd=new Map,oe=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||ne.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Ve("invalid input"):null)||(r.isValid?null:as(r));this.ts=Q(e.ts)?ne.now():e.ts;let i=null,o=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,o]=[e.old.c,e.old.o];else{let u=lr(e.o)&&!e.old?e.o:r.offset(this.ts);i=ma(this.ts,u),n=Number.isNaN(i.year)?new Ve("invalid input"):null,i=n?null:i,o=n?null:u}this._zone=r,this.loc=e.loc||te.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=og(arguments),[n,i,o,a,u,c,l]=r;return ig({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=og(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,ig({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=zD(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=ur(r.zone,ne.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:te.fromObject(r)}):t.invalid(as(i))}static fromMillis(e,r={}){if(lr(e))return e<-eg||e>eg?t.invalid("Timestamp out of range"):new t({ts:e,zone:ur(r.zone,ne.defaultZone),loc:te.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(lr(e))return new t({ts:e*1e3,zone:ur(r.zone,ne.defaultZone),loc:te.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=ur(r.zone,ne.defaultZone);if(!n.isValid)return t.invalid(as(n));let i=te.fromObject(r),o=Ia(e,ng),{minDaysInFirstWeek:a,startOfWeek:u}=VE(o,i),c=ne.now(),l=Q(r.specificOffset)?n.offset(c):r.specificOffset,d=!Q(o.ordinal),f=!Q(o.year),h=!Q(o.month)||!Q(o.day),p=f||h,S=o.weekYear||o.weekNumber;if((p||d)&&S)throw new cr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&d)throw new cr("Can't mix ordinal dates with month/day");let m=S||o.weekday&&!p,g,y,I=ma(c,l);m?(g=EC,y=mC,I=_a(I,a,u)):d?(g=gC,y=hC,I=kl(I)):(g=ga,y=sy);let _=!1;for(let Y of g){let Ie=o[Y];Q(Ie)?_?o[Y]=y[Y]:o[Y]=I[Y]:_=!0}let D=m?jD(o,a,u):d?YD(o):Pg(o),T=D||Ng(o);if(T)return t.invalid(T);let O=m?$E(o,a,u):d?GE(o):o,[U,R]=Ea(O,l,n),k=new t({ts:U,zone:n,o:R,loc:i});return o.weekday&&p&&e.weekday!==k.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${k.toISO()}`):k.isValid?k:t.invalid(k.invalid)}static fromISO(e,r={}){let[n,i]=BR(e);return Fn(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=WR(e);return Fn(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=$R(e);return Fn(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=pC(a,e,r);return d?t.invalid(d):Fn(u,c,n,`format ${r}`,e,l)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=YR(e);return Fn(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the DateTime is invalid");let n=e instanceof Ve?e:new Ve(e,r);if(ne.throwOnInvalid)throw new Vl(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=ny(e,te.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return ty(Ge.parseFormat(e),te.fromObject(r)).map(i=>i.val).join("")}static resetCache(){us=void 0,sd.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?Wl(this).weekYear:NaN}get weekNumber(){return this.isValid?Wl(this).weekNumber:NaN}get weekday(){return this.isValid?Wl(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?$l(this).weekday:NaN}get localWeekNumber(){return this.isValid?$l(this).weekNumber:NaN}get localWeekYear(){return this.isValid?$l(this).weekYear:NaN}get ordinal(){return this.isValid?kl(this.c).ordinal:NaN}get monthShort(){return this.isValid?Hr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Hr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Hr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Hr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=Ra(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ma(c,a),f=ma(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[jr(this,{ts:c}),jr(this,{ts:l})]:[this]}get isInLeapYear(){return fs(this.year)}get daysInMonth(){return Oa(this.year,this.month)}get daysInYear(){return this.isValid?Bn(this.year):NaN}get weeksInWeekYear(){return this.isValid?ds(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?ds(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=Ge.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ke.instance(e),r)}toLocal(){return this.setZone(ne.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=ur(e,ne.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=Ea(a,o,e)}return jr(this,{ts:i,zone:e})}else return t.invalid(as(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return jr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Ia(e,ng),{minDaysInFirstWeek:n,startOfWeek:i}=VE(r,this.loc),o=!Q(r.weekYear)||!Q(r.weekNumber)||!Q(r.weekday),a=!Q(r.ordinal),u=!Q(r.year),c=!Q(r.month)||!Q(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new cr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new cr("Can't mix ordinal dates with month/day");let f;o?f=$E({..._a(this.c,n,i),...r},n,i):Q(r.ordinal)?(f={...this.toObject(),...r},Q(r.day)&&(f.day=Math.min(Oa(f.year,f.month),f.day))):f=GE({...kl(this.c),...r});let[h,p]=Ea(f,this.o,this.zone);return jr(this,{ts:h,o:p})}plus(e){if(!this.isValid)return this;let r=ge.fromDurationLike(e);return jr(this,tg(this,r))}minus(e){if(!this.isValid)return this;let r=ge.fromDurationLike(e).negate();return jr(this,tg(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=ge.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?Ge.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Bl}toLocaleString(e=Sa,r={}){return this.isValid?Ge.create(this.loc.clone(r),e).formatDateTime(this):Bl}toLocaleParts(e={}){return this.isValid?Ge.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:o=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=ya(a);let u=e==="extended",c=Gl(this,u,a);return ga.indexOf(a)>=3&&(c+="T"),c+=rg(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?Gl(this,e==="extended",ya(r)):null}toISOWeekDate(){return ha(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:u="milliseconds"}={}){return this.isValid?(u=ya(u),(i&&ga.indexOf(u)>=3?"T":"")+rg(this,a==="extended",r,e,n,o,u)):null}toRFC2822(){return ha(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ha(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Gl(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),ha(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Bl}[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 ge.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=JD(r).map(ge.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=eC(u,c,o,i);return a?l.negate():l}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?zr.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(r,n)<=i&&i<=o.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],o=e.unit;return Array.isArray(e.unit)&&(i=e.unit,o=void 0),sg(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?sg(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 qE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return qE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return ry(a,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,o=te.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new wa(o,e)}static fromFormatParser(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=te.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(r.locale))throw new _e(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${r.locale}`);let{result:u,zone:c,specificOffset:l,invalidReason:d}=r.explainFromTokens(e);return d?t.invalid(d):Fn(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return Sa}static get DATE_MED(){return ag}static get DATE_MED_WITH_WEEKDAY(){return CD}static get DATE_FULL(){return ug}static get DATE_HUGE(){return cg}static get TIME_SIMPLE(){return lg}static get TIME_WITH_SECONDS(){return dg}static get TIME_WITH_SHORT_OFFSET(){return fg}static get TIME_WITH_LONG_OFFSET(){return pg}static get TIME_24_SIMPLE(){return mg}static get TIME_24_WITH_SECONDS(){return hg}static get TIME_24_WITH_SHORT_OFFSET(){return Eg}static get TIME_24_WITH_LONG_OFFSET(){return gg}static get DATETIME_SHORT(){return yg}static get DATETIME_SHORT_WITH_SECONDS(){return Tg}static get DATETIME_MED(){return Sg}static get DATETIME_MED_WITH_SECONDS(){return Ag}static get DATETIME_MED_WITH_WEEKDAY(){return bD}static get DATETIME_FULL(){return _g}static get DATETIME_FULL_WITH_SECONDS(){return Og}static get DATETIME_HUGE(){return Ig}static get DATETIME_HUGE_WITH_SECONDS(){return wg}};function ss(t){if(oe.isDateTime(t))return t;if(t&&t.valueOf&&lr(t.valueOf()))return oe.fromJSDate(t);if(t&&typeof t=="object")return oe.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(ss,"friendlyDateTime");var TC="3.7.1";Qe.DateTime=oe;Qe.Duration=ge;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Bt;Qe.Info=Hr;Qe.Interval=zr;Qe.InvalidZone=Aa;Qe.Settings=ne;Qe.SystemZone=ls;Qe.VERSION=TC;Qe.Zone=dr});var uy=q((vB,ay)=>{"use strict";var Jr=oy();j.prototype.addYear=function(){this._date=this._date.plus({years:1})};j.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};j.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};j.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};j.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};j.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};j.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};j.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};j.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};j.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};j.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};j.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};j.prototype.getDate=function(){return this._date.day};j.prototype.getFullYear=function(){return this._date.year};j.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};j.prototype.getMonth=function(){return this._date.month-1};j.prototype.getHours=function(){return this._date.hour};j.prototype.getMinutes=function(){return this._date.minute};j.prototype.getSeconds=function(){return this._date.second};j.prototype.getMilliseconds=function(){return this._date.millisecond};j.prototype.getTime=function(){return this._date.valueOf()};j.prototype.getUTCDate=function(){return this._getUTC().day};j.prototype.getUTCFullYear=function(){return this._getUTC().year};j.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};j.prototype.getUTCMonth=function(){return this._getUTC().month-1};j.prototype.getUTCHours=function(){return this._getUTC().hour};j.prototype.getUTCMinutes=function(){return this._getUTC().minute};j.prototype.getUTCSeconds=function(){return this._getUTC().second};j.prototype.toISOString=function(){return this._date.toUTC().toISO()};j.prototype.toJSON=function(){return this._date.toJSON()};j.prototype.setDate=function(t){this._date=this._date.set({day:t})};j.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};j.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};j.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};j.prototype.setHours=function(t){this._date=this._date.set({hour:t})};j.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};j.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};j.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};j.prototype._getUTC=function(){return this._date.toUTC()};j.prototype.toString=function(){return this.toDate().toString()};j.prototype.toDate=function(){return this._date.toJSDate()};j.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};j.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function j(t,e){var r={zone:e};if(t?t instanceof j?this._date=t._date:t instanceof Date?this._date=Jr.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Jr.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Jr.DateTime.fromISO(t,r),this._date.isValid||(this._date=Jr.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Jr.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Jr.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Jr.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}s(j,"CronDate");ay.exports=j});var dy=q((NB,ly)=>{"use strict";function Zr(t){return{start:t,count:1}}s(Zr,"buildRange");function cy(t,e){t.end=e,t.step=e-t.start,t.count=2}s(cy,"completeRangeWithItem");function md(t,e,r){e&&(e.count===2?(t.push(Zr(e.start)),t.push(Zr(e.end))):t.push(e)),r&&t.push(r)}s(md,"finalizeCurrentRange");function SC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(md(e,r,Zr(i)),r=void 0):r?r.count===1?cy(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Zr(r.start)),r=Zr(r.end),cy(r,i)):(md(e,r),r=Zr(i)):r=Zr(i)}return md(e,r),e}s(SC,"compactField");ly.exports=SC});var py=q((LB,fy)=>{"use strict";var AC=dy();function _C(t,e,r){var n=AC(t);if(n.length===1){var i=n[0],o=i.step;if(o===1&&i.start===e&&i.end===r)return"*";if(o!==1&&i.start===e&&i.end===r-o+1)return"*/"+o}for(var a=[],u=0,c=n.length;u<c;++u){var l=n[u];if(l.count===1){a.push(l.start);continue}var o=l.step;if(l.step===1){a.push(l.start+"-"+l.end);continue}var d=l.start==0?l.count-1:l.count;l.step*d>l.end?a=a.concat(Array.from({length:l.end-l.start+1}).map(function(h,p){var S=l.start+p;return(S-l.start)%l.step===0?S:null}).filter(function(h){return h!=null})):l.end===r-l.step+1?a.push(l.start+"/"+l.step):a.push(l.start+"-"+l.end+"/"+l.step)}return a.join(",")}s(_C,"stringifyField");fy.exports=_C});var Ey=q((kB,hy)=>{"use strict";var Xr=uy(),OC=py(),my=1e4;function L(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Xr(e.currentDate,this._tz),this._startDate=e.startDate?new Xr(e.startDate,this._tz):null,this._endDate=e.endDate?new Xr(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=L._freezeFields(t)}s(L,"CronExpression");L.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];L.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};L.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];L.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];L.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};L.parseDefaults=["0","*","*","*","*","*"];L.standardValidCharacters=/^[,*\d/-]+$/;L.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;L.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;L.validCharacters={second:L.standardValidCharacters,minute:L.standardValidCharacters,hour:L.standardValidCharacters,dayOfMonth:L.dayOfMonthValidCharacters,month:L.standardValidCharacters,dayOfWeek:L.dayOfWeekValidCharacters};L._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");L._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=L.aliases[e];r=r.replace(/[a-z]{3}/gi,function(c){if(c=c.toLowerCase(),typeof i[c]<"u")return i[c];throw new Error('Validation error, cannot resolve alias "'+c+'"')});break}if(!L.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function o(c){var l=[];function d(S){if(S instanceof Array)for(var m=0,g=S.length;m<g;m++){var y=S[m];if(L._isValidConstraintChar(n,y)){l.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);l.push(y)}else{if(L._isValidConstraintChar(n,S)){l.push(S);return}var I=+S;if(Number.isNaN(I)||I<n.min||I>n.max)throw new Error("Constraint error, got value "+S+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(I=I%7),l.push(I)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(S){return S.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var h=0,p=f.length;h<p;h++)d(a(f[h]));else d(a(c));return l.sort(L._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var h=+f[0],p=+f[1];if(Number.isNaN(h)||Number.isNaN(p)||h<n.min||p>n.max)throw new Error("Constraint error, got range "+h+"-"+p+" expected range "+n.min+"-"+n.max);if(h>p)throw new Error("Invalid range: "+c);var S=+l;if(Number.isNaN(S)||S<=0)throw new Error("Constraint error, cannot repeat at every "+S+" time.");e==="dayOfWeek"&&p%7===0&&d.push(0);for(var m=h,g=p;m<=g;m++){var y=d.indexOf(m)!==-1;!y&&S>0&&S%l===0?(S=1,d.push(m)):S++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");L._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};L._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=L.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(L._sortCompareFn)}};L._freezeFields=function(t){for(var e=0,r=L.map.length;e<r;++e){var n=L.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};L.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};L.prototype._findSchedule=s(function(e){function r(y,I){for(var _=0,D=I.length;_<D;_++)if(I[_]>=y)return I[_]===y;return I[0]===y}s(r,"matchSchedule");function n(y,I){if(I<6){if(y.getDate()<8&&I===1)return!0;var _=y.getDate()%7?1:0,D=y.getDate()-y.getDate()%7,T=Math.floor(D/7)+_;return T===I}return!1}s(n,"isNthDayMatch");function i(y){return y.length>0&&y.some(function(I){return typeof I=="string"&&I.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new Xr(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(y){return y.some(function(I){if(!i([I]))return!1;var _=Number.parseInt(I[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+I);return a.getDay()===_&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<my;){if(d++,e){if(u&&a.getTime()-u.getTime()<0)throw new Error("Out of the timespan range")}else if(c&&c.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var h=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(h=h||a.isLastDayOfMonth());var p=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||f(this.fields.dayOfWeek));var S=this.fields.dayOfMonth.length>=L.daysInMonth[a.getMonth()],m=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,g=a.getHours();if(!h&&(!p||m)){this._applyTimezoneShift(a,o,"Day");continue}if(!S&&m&&!h){this._applyTimezoneShift(a,o,"Day");continue}if(S&&!m&&!p){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(g,this.fields.hour)){if(this._dstEnd===g&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==g){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(g-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>=my)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Xr(a,this._tz),this._hasIterated=!0,a},"_findSchedule");L.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");L.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");L.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};L.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};L.prototype.iterate=s(function(e,r){var n=[];if(e>=0)for(var i=0,o=e;i<o;i++)try{var a=this.next();n.push(a),r&&r(a,i)}catch{break}else for(var i=0,o=e;i>o;i--)try{var a=this.prev();n.push(a),r&&r(a,i)}catch{break}return n},"iterate");L.prototype.reset=s(function(e){this._currentDate=new Xr(e||this._options.currentDate)},"reset");L.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=L.map.length;n<i;++n){var o=L.map[n],a=this.fields[o],u=L.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:L.daysInMonth[this.fields.month[0]-1]}:o==="dayOfWeek"&&(u={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),r.push(OC(a,u.min,u.max))}return r.join(" ")},"stringify");L.parse=s(function(e,r){var n=this;typeof r=="function"&&(r={});function i(o,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new Xr(void 0,n._tz)),L.predefined[o]&&(o=L.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=L.map.length-c.length,d=0,f=L.map.length;d<f;++d){var h=L.map[d],p=c[c.length>f?d:d-l];if(d<l||!p)u.push(L._parseField(h,L.parseDefaults[d],L.constraints[d]));else{var S=h==="dayOfWeek"?I(p):p;u.push(L._parseField(h,S,L.constraints[d]))}}for(var m={},d=0,f=L.map.length;d<f;d++){var g=L.map[d];m[g]=u[d]}var y=L._handleMaxDaysInMonth(m);return m.dayOfMonth=y||m.dayOfMonth,new L(m,a);function I(_){var D=_.split("#");if(D.length>1){var T=+D[D.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(D.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=T,D[0]}return _}s(I,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");L.fieldsToExpression=s(function(e,r){function n(h,p,S){if(!p)throw new Error("Validation error, Field "+h+" is missing");if(p.length===0)throw new Error("Validation error, Field "+h+" contains no values");for(var m=0,g=p.length;m<g;m++){var y=p[m];if(!L._isValidConstraintChar(S,y)&&(typeof y!="number"||Number.isNaN(y)||y<S.min||y>S.max))throw new Error("Constraint error, got value "+y+" expected range "+S.min+"-"+S.max)}}s(n,"validateConstraints");for(var i={},o=0,a=L.map.length;o<a;++o){var u=L.map[o],c=e[u];n(u,c,L.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(L._sortCompareFn).filter(function(h,p,S){return!p||h!==S[p-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=L._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new L(i,r||{})},"fieldsToExpression");hy.exports=L});var yy=q((BB,gy)=>{"use strict";var xa=Ey();function fr(){}s(fr,"CronParser");fr._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:xa.parse(e)};if(r.length>6)return{interval:xa.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");fr.parseExpression=s(function(e,r){return xa.parse(e,r)},"parseExpression");fr.fieldsToExpression=s(function(e,r){return xa.fieldsToExpression(e,r)},"fieldsToExpression");fr.parseString=s(function(e){for(var r=e.split(`
|
|
5
|
+
`),n={variables:{},expressions:[],errors:{}},i=0,o=r.length;i<o;i++){var a=r[i],u=null,c=a.trim();if(c.length>0){if(c.match(/^#/))continue;if(u=c.match(/^(.*)=(.*)$/))n.variables[u[1]]=u[2];else{var l=null;try{l=fr._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");fr.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,fr.parseString(i.toString()))})},"parseFile");gy.exports=fr});var ZM={};P(ZM,{APIWarning:()=>In,ActiveContentFileError:()=>ku,AutomationViewMode:()=>ka,BUDIBASE_DATASOURCE_TYPE:()=>Md,BadRequestError:()=>co,BudibaseError:()=>uo,Config:()=>Gd,Cookie:()=>en,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Wd,DEFAULT_EXPENSES_TABLE_ID:()=>Bd,DEFAULT_INVENTORY_TABLE_ID:()=>Fd,DEFAULT_JOBS_TABLE_ID:()=>kd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>jn,DesignDocuments:()=>As,DocumentType:()=>ce,Duration:()=>pe,DurationType:()=>Vf,EmailUnavailableError:()=>zt,Endpoint:()=>kc,EndpointGroup:()=>wn,EndpointGroupList:()=>ko,FeatureDisabledError:()=>Wu,FeatureDisabledWarning:()=>Oc,ForbiddenError:()=>Fu,GlobalRole:()=>$d,HTTPError:()=>ke,Header:()=>We,InternalTable:()=>Pt,InvalidAPIKeyWarning:()=>Ai,MAX_VALID_DATE:()=>Wa,MIN_VALID_DATE:()=>$y,NotFoundError:()=>Mu,NotImplementedError:()=>Bu,RedisClient:()=>De,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>Ld,StaticDatabases:()=>fe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>Ss,UnexpectedError:()=>Lu,UsageLimitError:()=>$u,UsageLimitWarning:()=>_c,UserStatus:()=>Ba,ViewName:()=>Wt,WORKSPACE_DEV:()=>Fa,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et,accounts:()=>yn,auth:()=>Im,blacklist:()=>Cm,cache:()=>wo,configs:()=>Jt,constants:()=>Vd,context:()=>ue,csv:()=>Wm,db:()=>Sr,docIds:()=>Pf,docUpdates:()=>xm,encryption:()=>gm,env:()=>E,errors:()=>Vu,events:()=>hi,features:()=>fm,getErrorMessage:()=>rA,getPublicError:()=>Gu,init:()=>JM,installation:()=>zu,locks:()=>gn,logging:()=>Xs,middleware:()=>Om,objectStore:()=>ap,permissions:()=>cm,platform:()=>oo,plugins:()=>Dm,queue:()=>pp,redis:()=>Rm,roles:()=>um,security:()=>Dp,sessions:()=>qu,setEnv:()=>Os,sql:()=>Bm,tenancy:()=>zM,timers:()=>Au,userUtils:()=>Wp,users:()=>gi,utils:()=>si,warnings:()=>ym,withEnv:()=>Qy});module.exports=fO(ZM);var Jt={};P(Jt,{analyticsEnabled:()=>ju,generateConfigID:()=>xo,getAIConfig:()=>u0,getConfig:()=>ve,getDefaultGoogleConfig:()=>Hp,getGoogleConfig:()=>uc,getGoogleDatasourceConfig:()=>Jp,getOIDCConfig:()=>s0,getOIDCConfigById:()=>Zp,getOIDCLogosDoc:()=>n0,getPlatformUrl:()=>vo,getRecaptchaConfig:()=>c0,getSCIMConfig:()=>a0,getSMTPConfig:()=>o0,getSMTPConfigDoc:()=>r_,getSettingsConfig:()=>zp,getSettingsConfigDoc:()=>yi,getTranslationsConfig:()=>t0,getTranslationsConfigDoc:()=>t_,save:()=>e0});var pO=["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"],mO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Vm=[...pO,...mO],qm={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0,"resource:copied_to_workspace":"{{ resource.type }} copied to workspace"};var Fc=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Fc||{}),Bc=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.SENSITIVE_LONGFORM="sensitiveLongForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(Bc||{}),Bo=(y=>(y.AIRTABLE="AIRTABLE",y.ARANGODB="ARANGODB",y.BUDIBASE="BUDIBASE",y.COUCHDB="COUCHDB",y.DYNAMODB="DYNAMODB",y.ELASTICSEARCH="ELASTICSEARCH",y.FIRESTORE="FIRESTORE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.MONGODB="MONGODB",y.MYSQL="MYSQL",y.ORACLE="ORACLE",y.POSTGRES="POSTGRES",y.REDIS="REDIS",y.REST="REST",y.S3="S3",y.SNOWFLAKE="SNOWFLAKE",y.SQL_SERVER="SQL_SERVER",y))(Bo||{});var Wc=(r=>(r.CONNECTION_CHECKING="connection",r.FETCH_TABLE_NAMES="fetch_table_names",r))(Wc||{});var hO=B(require("lodash/isPlainObject"));var Mr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Mr||{}),ir=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(ir||{}),Rn=(e=>(e.RANGE="range",e))(Rn||{}),wi=(r=>(r.AND="$and",r.OR="$or",r))(wi||{});function Wo(t){return Object.values(wi).includes(t)}s(Wo,"isLogicalSearchOperator");function Km(t){return Object.values(Mr).includes(t)}s(Km,"isBasicSearchOperator");function Qm(t){return Object.values(ir).includes(t)}s(Qm,"isArraySearchOperator");function $o(t){return Object.values(Rn).includes(t)}s($o,"isRangeSearchOperator");var jm=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Di=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Di||{});var Ri=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ri||{});var Go=(f=>(f.WORKSPACE="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(Go||{});var Vo=s(t=>t.hosting==="cloud","isCloudAccount");var qo=s(t=>t.authType==="sso","isSSOAccount");var C="_",Ne="\uFFF0",sr=s(t=>`${t}${C}`,"prefixed"),ce=(V=>(V.USER="us",V.GROUP="gr",V.CONFIG="config",V.TEMPLATE="template",V.WORKSPACE="app",V.DEV="dev",V.WORKSPACE_DEV="app_dev",V.WORKSPACE_METADATA="app_metadata",V.ROLE="role",V.DEV_INFO="devinfo",V.AUTOMATION_LOG="log_au",V.ACCOUNT_METADATA="acc_metadata",V.PLUGIN="plg",V.DATASOURCE="datasource",V.DATASOURCE_PLUS="datasource_plus",V.APP_BACKUP="backup",V.TABLE="ta",V.ROW="ro",V.AUTOMATION="au",V.LINK="li",V.WEBHOOK="wh",V.INSTANCE="inst",V.LAYOUT="layout",V.SCREEN="screen",V.QUERY="query",V.DEPLOYMENTS="deployments",V.METADATA="metadata",V.MEM_VIEW="view",V.USER_FLAG="flag",V.AUTOMATION_METADATA="meta_au",V.AUDIT_LOG="al",V.SCIM_LOG="scimlog",V.ROW_ACTIONS="ra",V.OAUTH2_CONFIG="oauth2",V.OAUTH2_CONFIG_LOG="oauth2log",V.AGENT="agent",V.CHAT_APP="chatapp",V.CHAT_CONVERSATION="chatconvo",V.AGENT_TOOL_SOURCE="agenttoolsource",V.AGENT_FILE="agentfile",V.AI_CONFIG="aiconfig",V.LITELLM_KEY="litellmkey",V.VECTOR_STORE="vectordb",V.WORKSPACE_APP="workspace_app",V.WORKSPACE_FAVOURITE="workspace_favourite",V.AUTO_COLUMN_STATE="autocolumn_state",V))(ce||{});var Pt=(e=>(e.USER_METADATA="ta_users",e))(Pt||{});function Ko(t){return!!t.providerType}s(Ko,"isSSOUser");var $c=(d=>(d.OBJECT="object",d.STRING="string",d.BOOLEAN="boolean",d.NUMBER="number",d.ARRAY="array",d.JSON="json",d.DATE="date",d.DATETIME="datetime",d.ATTACHMENT="attachment",d.LONGFORM="longform",d))($c||{}),Gc=(O=>(O.TABLE="table",O.ROW="row",O.ROWS="rows",O.WIDE="wide",O.QUERY="query",O.QUERY_PARAMS="queryParams",O.QUERY_LIMIT="queryLimit",O.LOOP_OPTION="loopOption",O.ITEM="item",O.CODE="code",O.FILTERS="filters",O.COLUMN="column",O.TRIGGER_SCHEMA="triggerSchema",O.CRON="cron",O.WEBHOOK_URL="webhookUrl",O.AUTOMATION="automation",O.AUTOMATION_FIELDS="automationFields",O.MULTI_ATTACHMENTS="multi_attachments",O.TRIGGER_FILTER="trigger_filter",O.CATEGORIES="categories",O.AGENT="agent",O.OUTPUT_SCHEMA="outputSchema",O))(Gc||{}),Vc=(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))(Vc||{});var qc=(w=>(w.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",w.CREATE_ROW="CREATE_ROW",w.GET_ROW="GET_ROW",w.UPDATE_ROW="UPDATE_ROW",w.DELETE_ROW="DELETE_ROW",w.QUERY_ROWS="QUERY_ROWS",w.EXECUTE_BASH="EXECUTE_BASH",w.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",w.EXECUTE_SCRIPT="EXECUTE_SCRIPT",w.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",w.EXECUTE_QUERY="EXECUTE_QUERY",w.SERVER_LOG="SERVER_LOG",w.DELAY="DELAY",w.FILTER="FILTER",w.API_REQUEST="API_REQUEST",w.LOOP="LOOP",w.COLLECT="COLLECT",w.OPENAI="OPENAI",w.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",w.BRANCH="BRANCH",w.CLASSIFY_CONTENT="CLASSIFY_CONTENT",w.PROMPT_LLM="PROMPT_LLM",w.TRANSLATE="TRANSLATE",w.SUMMARISE="SUMMARISE",w.GENERATE_TEXT="GENERATE_TEXT",w.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",w.EXTRACT_STATE="EXTRACT_STATE",w.LOOP_V2="LOOP_V2",w.AGENT="AGENT",w.discord="discord",w.slack="slack",w.zapier="zapier",w.integromat="integromat",w.n8n="n8n",w))(qc||{}),Ym=[...Object.values(qc),...Object.values(Vc)];function Hm(t){return t.stepId==="BRANCH"}s(Hm,"isBranchStep");var Kc="bb_internal";var zm=["attachment_single","attachment","signature_single","bb_reference","json","array"];var Vd={};P(Vd,{AutomationViewMode:()=>ka,BUDIBASE_DATASOURCE_TYPE:()=>Md,Config:()=>Gd,Cookie:()=>en,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Wd,DEFAULT_EXPENSES_TABLE_ID:()=>Bd,DEFAULT_INVENTORY_TABLE_ID:()=>Fd,DEFAULT_JOBS_TABLE_ID:()=>kd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>jn,DesignDocuments:()=>As,DocumentType:()=>ce,GlobalRole:()=>$d,Header:()=>We,InternalTable:()=>Pt,MAX_VALID_DATE:()=>Wa,MIN_VALID_DATE:()=>$y,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>Ld,StaticDatabases:()=>fe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>Ss,UserStatus:()=>Ba,ViewName:()=>Wt,WORKSPACE_DEV:()=>Fa,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et});var We=(_=>(_.API_KEY="x-budibase-api-key",_.LICENSE_KEY="x-budibase-license-key",_.API_VER="x-budibase-api-version",_.APP_ID="x-budibase-app-id",_.SESSION_ID="x-budibase-session-id",_.CLIENT="x-budibase-client",_.TYPE="x-budibase-type",_.PREVIEW_ROLE="x-budibase-role",_.TENANT_ID="x-budibase-tenant-id",_.VERIFICATION_CODE="x-budibase-verification-code",_.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",_.RESET_PASSWORD_CODE="x-budibase-reset-password-code",_.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",_.TOKEN="x-budibase-token",_.CSRF_TOKEN="x-csrf-token",_.CORRELATION_ID="x-budibase-correlation-id",_.AUTHORIZATION="authorization",_.MIGRATING_APP="x-budibase-migrating-app",_.COOKIE="cookie",_))(We||{});var Cn={WORKSPACES:"/builder/workspaces",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Qo={ACCOUNT:"/portal/account",BILLING:"/portal/billing",UPGRADE:"/portal/upgrade"};var $e={Equals:{value:"equal",label:"Equals"},NotEquals:{value:"notEqual",label:"Not equals"},Empty:{value:"empty",label:"Is empty"},NotEmpty:{value:"notEmpty",label:"Is not empty"},StartsWith:{value:"string",label:"Starts with"},Like:{value:"fuzzy",label:"Like"},MoreThan:{value:"rangeLow",label:"More than or equal to"},LessThan:{value:"rangeHigh",label:"Less than or equal to"},Contains:{value:"contains",label:"Contains"},NotContains:{value:"notContains",label:"Does not contain"},In:{value:"oneOf",label:"Is in"},ContainsAny:{value:"containsAny",label:"Has any"}},Jm={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var bn="datasource_internal_bb_default";var mr={};P(mr,{ColumnSplitter:()=>_d,NoEmptyFilterStrings:()=>Ly,buildQuery:()=>My,cleanupQuery:()=>wd,fixupFilterArrays:()=>Rd,getKeyNumbering:()=>Dd,getValidOperatorsForType:()=>zC,hasFilters:()=>Od,limit:()=>Fy,recurseLogicalOperators:()=>Id,removeKeyNumbering:()=>jo,runQuery:()=>Na,search:()=>XC,sort:()=>ky,splitFiltersArray:()=>Yo});var Qn=B(Zm());var _t={};P(_t,{filterValueToLabel:()=>AO,hasSchema:()=>_O,isSupportedUserSearch:()=>th,nameToUrl:()=>RO,parallelForeach:()=>SO,processSearchFilters:()=>Yc,toMap:()=>IO,trimOtherProps:()=>OO,unreachable:()=>TO});var eh=B(require("lodash/pick"));var yO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function TO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(TO,"unreachable");async function SO(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(SO,"parallelForeach");function AO(){return Object.keys($e).reduce((t,e)=>{let n=$e[e];return t[n.value]=n.label,t},{})}s(AO,"filterValueToLabel");function _O(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(_O,"hasSchema");function OO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(OO,"trimOtherProps");function th(t){let e=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(Wo(o)){for(let l of t[o].conditions)if(!th(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(th,"isSupportedUserSearch");function Yc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Yo(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,eh.default)(i,yO);return o.field=jo(o.field),o})}]}}s(Yc,"processSearchFilters");function IO(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(IO,"toMap");var wO=s(t=>t?t.trim():null,"resolveWorkspaceName"),DO=s(t=>{let e,r=wO(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),RO=s(t=>{let e=DO(t);return CO(e)},"nameToUrl"),CO=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var Le={};P(Le,{accountPortalAccountUrl:()=>wy,accountPortalBillingUrl:()=>Dy,accountPortalUpgradeUrl:()=>Ry,builderAppsUrl:()=>Py,builderSettingsAuthUrl:()=>xy,builderSettingsEmailUrl:()=>by,builderSettingsPeopleUsersUrl:()=>vy,builderWorkspacesUrl:()=>Cy,cancelableTimeout:()=>rh,cron:()=>QC,deepGet:()=>Hc,duplicateName:()=>WC,escapeHtml:()=>NO,formatBytes:()=>KC,getSequentialName:()=>$C,getUserColor:()=>xO,getUserInitials:()=>bO,getUserLabel:()=>vO,isGoogleSheets:()=>UO,isSQL:()=>LO,lists:()=>Sd,retry:()=>MO,roles:()=>Td,schema:()=>hs,structuredOutput:()=>Ed,urlHelpers:()=>qC,views:()=>yd,wait:()=>zc,withTimeout:()=>PO});var Hc=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"),bO=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"),xO=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"),vO=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function rh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(rh,"cancelableTimeout");async function PO(t,e){let[r,n]=rh(t),i=await Promise.race([e(),r]);return n(),i}s(PO,"withTimeout");var NO=s(t=>t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeHtml");function UO(t){return t==="GOOGLE_SHEETS"}s(UO,"isGoogleSheets");function LO(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(LO,"isSQL");async function zc(t){return new Promise(e=>setTimeout(e,t))}s(zc,"wait");async function MO(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let o=1.5**i*1e3*(Math.random()+.5);await zc(o);try{return await t()}catch(a){n=a}}throw n}s(MO,"retry");var Sy=B(Ot()),Ay=B(yy());var Ty="(Input cron: ",IC={"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 wC(t){let e=[];for(let r of t){r.includes(Ty)&&(r=r.split(Ty)[0].trim());for(let[n,i]of Object.entries(IC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(wC,"improveErrors");function _y(t,e=4){let r=Ay.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}s(_y,"getNextExecutionDates");function Oy(t){let e=(0,Sy.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:wC(e.getError())}}s(Oy,"validate");var hs={};P(hs,{decodeNonAscii:()=>hd,encodeNonAscii:()=>CC,isDeprecatedSingleUserColumn:()=>DC,isNumeric:()=>bC,isRequired:()=>RC});function DC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(DC,"isDeprecatedSingleUserColumn");function RC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(RC,"isRequired");function CC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(CC,"encodeNonAscii");function hd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(hd,"decodeNonAscii");function bC(t){return t.type==="number"||t.type==="bigint"}s(bC,"isNumeric");var Ed={};P(Ed,{normalizeSchemaForStructuredOutput:()=>xC});function xC(t){function e(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let o=i.properties,a=[],u={};for(let[d,f]of Object.entries(o))if(typeof f=="object"&&f!==null){let h=f;if(h.required===!0){a.push(d);let{required:p,...S}=h;u[d]=e(S)}else u[d]=e(h)}else u[d]=f;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=e(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>e(a)));return i}s(e,"processSchema");let r=e(t);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}s(xC,"normalizeSchemaForStructuredOutput");var yd={};P(yd,{basicFields:()=>LC,calculationFields:()=>UC,hasCalculationFields:()=>NC,isBasicViewField:()=>vC,isCalculationField:()=>Es,isCalculationView:()=>PC,isV2:()=>MC,isVisible:()=>Iy});var gd=B(require("lodash/pickBy"));function Es(t){return"calculationType"in t}s(Es,"isCalculationField");function vC(t){return!Es(t)}s(vC,"isBasicViewField");function PC(t){return t.type==="calculation"}s(PC,"isCalculationView");function NC(t){return Object.values(t.schema||{}).some(Es)}s(NC,"hasCalculationFields");function UC(t){return(0,gd.default)(t.schema||{},Es)}s(UC,"calculationFields");function Iy(t){return t.visible!==!1}s(Iy,"isVisible");function LC(t,e){let{visible:r=!0}=e||{};return(0,gd.default)(t.schema||{},n=>!Es(n)&&(!r||Iy(n)))}s(LC,"basicFields");function MC(t){return t.version===2}s(MC,"isV2");var Td={};P(Td,{checkForRoleInheritanceLoops:()=>FC});function kC(t){return`role${C}${t}`}s(kC,"prefixForCheck");function FC(t){let e=new Map;t.forEach(o=>{e.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=kC(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let u=e.get(a)||e.get(o);if(!u)return n.delete(o),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!t.find(o=>i(o._id))}s(FC,"checkForRoleInheritanceLoops");var Sd={};P(Sd,{punctuateList:()=>BC});function BC(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(BC,"punctuateList");var WC=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"),$C=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 GC=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),VC=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),pr=s((t,e)=>{let r=GC(e);if(!t)return r;let n=VC(t);return r?`${n}${r}`:n},"joinBaseAndPath"),wy=s(t=>pr(t,Qo.ACCOUNT),"accountPortalAccountUrl"),Dy=s(t=>pr(t,Qo.BILLING),"accountPortalBillingUrl"),Ry=s(t=>pr(t,Qo.UPGRADE),"accountPortalUpgradeUrl"),Cy=s(t=>pr(t,Cn.WORKSPACES),"builderWorkspacesUrl"),by=s(t=>pr(t,Cn.SETTINGS_EMAIL),"builderSettingsEmailUrl"),xy=s(t=>pr(t,Cn.SETTINGS_AUTH),"builderSettingsAuthUrl"),vy=s(t=>pr(t,Cn.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Py=s(t=>pr(t,Cn.APPS),"builderAppsUrl"),qC={accountPortalAccountUrl:wy,accountPortalBillingUrl:Dy,accountPortalUpgradeUrl:Ry,builderWorkspacesUrl:Cy,builderSettingsEmailUrl:by,builderSettingsAuthUrl:xy,builderSettingsPeopleUsersUrl:vy,builderAppsUrl:Py};function KC(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(KC,"formatBytes");var QC={getNextExecutionDates:_y,validate:Oy};var Pa=B(require("lodash/isPlainObject")),Ad=B(require("lodash/isEmpty"));var YC=/{{([^{].*?)}}/g,Uy=Object.values(wi),HC=[...Object.values(Mr),...Object.values(ir),...Object.values(Rn)],zC=s((t,e,r)=>{let n=$e,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:d}=t;c==="string"?d==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||hs.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let f=r?.tableId?.includes("datasource_plus");return e==="_id"&&f&&(u=[n.Equals,n.NotEquals,n.In]),u},"getValidOperatorsForType"),Ly=[$e.StartsWith.value,$e.Like.value,$e.Equals.value,$e.NotEquals.value,$e.Contains.value,$e.NotContains.value,$e.ContainsAny.value,$e.In.value];function Id(t,e){for(let r of Uy)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Id,"recurseLogicalOperators");var wd=s(t=>{for(let e of Ly)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===""||JC(o))&&delete t[e][i]}return t=Id(t,wd),t},"cleanupQuery");function JC(t){return Array.isArray(t)&&t.length===0}s(JC,"isEmptyArray");var jo=s(t=>Dd(t).key,"removeKeyNumbering"),Dd=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"),_d=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}=Dd(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=hd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function ZC(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(YC)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if($o(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if($o(r)){let l=Jm[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(Km(r)||Qm(r)||$o(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(ZC,"buildCondition");function Yo(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}s(Yo,"splitFiltersArray");function My(t){if(!t)return{};if(Array.isArray(t)&&(t=Yc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=Ny(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=My(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=Yo(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=Ny(n.logicalOperator)),{[u]:{conditions:a.map(ZC).filter(c=>c)}}})},e}s(My,"buildQuery");function Ny(t){return t==="all"?"$and":"$or"}s(Ny,"logicalOperatorFromUI");function Rd(t){if(!t)return t;for(let e of Object.values(ir)){let r=t[e];if(!(r==null||!(0,Pa.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 Id(t,Rd),t}s(Rd,"fixupFilterArrays");function XC(t,e){let r=Na(t,e.query);e.sort&&(r=ky(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=Fy(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(XC,"search");function Na(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=wd(e),e=Rd(e),!Od(e)&&e.onEmptyFilter==="none")return[];let r=s((T,O)=>U=>{for(let[R,k]of Object.entries(e[T]||{})){let Y=Wo(T)?U:Hc(U,jo(R)),Ie=O(Y,k);if(e.allOr&&Ie)return!0;if(!e.allOr&&!Ie)return!1}return!e.allOr},"match"),n=r("string",(T,O)=>typeof T!="string"||typeof O!="string"?!1:T.toLowerCase().startsWith(O.toLowerCase())),i=r("fuzzy",(T,O)=>typeof T!="string"||typeof O!="string"?!1:T.toLowerCase().includes(O.toLowerCase())),o=r("range",(T,O)=>{if(T==null||T===""||((0,Pa.default)(O.low)&&(0,Ad.default)(O.low)&&(O.low=void 0),(0,Pa.default)(O.high)&&(0,Ad.default)(O.high)&&(O.high=void 0),O.low==null&&O.high==null))return!1;let U=+T;if(!isNaN(U)){let k=+O.low,Y=+O.high;if(!isNaN(k)&&!isNaN(Y))return U>=k&&U<=Y;if(isNaN(k)){if(!isNaN(Y))return U<=Y}else return U>=k}let R=(0,Qn.default)(T);if(R.isValid()){let k=(0,Qn.default)(O.low||"0000-00-00T00:00:00.000Z"),Y=(0,Qn.default)(O.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&Y.isValid())return R.isAfter(k)&&R.isBefore(Y)||R.isSame(k)||R.isSame(Y);if(k.isValid())return R.isAfter(k)||R.isSame(k);if(Y.isValid())return R.isBefore(Y)||R.isSame(Y)}return O.low!=null&&O.high!=null?T>=O.low&&T<=O.high:O.low!=null?T>=O.low:O.high!=null?T<=O.high:!1}),a=s((T,O)=>{if(Array.isArray(T)){for(let R of T)if(a(R,O))return!0;return!1}if(T&&typeof T=="object"&&typeof O=="string")return T._id===O;if(T===O)return!0;if(T==null&&O!=null||T!=null&&O==null)return!1;let U=(0,Qn.default)(T);if(U.isValid()){let R=(0,Qn.default)(O);if(R.isValid())return U.isSame(R)}return!1},"_valueMatches"),u=s(T=>(...O)=>!T(...O),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),f=r("empty",d),h=r("notEmpty",u(d)),p=r("oneOf",(T,O)=>(typeof O=="string"&&(O=O.split(",")),typeof T=="number"&&(O=O.map(U=>parseFloat(U))),Array.isArray(O)?O.some(U=>a(T,U)):!1)),S=s(T=>(O,U)=>!Array.isArray(O)||(typeof U=="string"&&(U=U.split(","),typeof O[0]=="number"&&(U=U.map(R=>parseFloat(R)))),!Array.isArray(U))?!1:U.length===0?!0:U[T](R=>a(O,R)),"_contains"),m=r("contains",(T,O)=>Array.isArray(O)&&O.length===0?!0:S("every")(T,O)),g=r("notContains",(T,O)=>Array.isArray(O)&&O.length===0?!0:u(S("every"))(T,O)),y=r("containsAny",S("some")),I=r("$and",(T,O)=>{if(!O.length)return!1;for(let U of O)if(!Na([T],U).length)return!1;return!0}),_=r("$or",(T,O)=>{if(!O.length)return!1;for(let U of O)if(Na([T],{...U,allOr:!0}).length)return!0;return!1}),D=s(T=>{let O={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:h,oneOf:p,contains:m,containsAny:y,notContains:g,$and:I,$or:_},U=Object.entries(e||{}).filter(([R,k])=>!["allOr","onEmptyFilter"].includes(R)&&k&&Object.keys(k).length>0).map(([R])=>O[R]?.(T)??!1);return Od(e)?e.allOr?U.some(R=>R===!0):U.every(R=>R===!0):!0},"docMatch");return t.filter(D)}s(Na,"runQuery");function ky(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(ky,"sort");function Fy(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(Fy,"limit");var Od=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of Uy)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of HC){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,{applications:()=>bd,automations:()=>xd,screens:()=>Ud,users:()=>Nd});var bd={};P(bd,{getDevAppID:()=>eb,getProdAppID:()=>ys});var Cd=sr("app"),gs=sr("app_dev");function eb(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(gs))return t;let e=t.split(Cd);e.shift();let r=e.join(Cd);return`${gs}${r}`}s(eb,"getDevAppID");function ys(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(gs))return t;let e=t.split(gs);e.shift();let r=e.join(gs);return`${Cd}${r}`}s(ys,"getProdAppID");var xd={};P(xd,{checkForCollectStep:()=>ib,isAppAction:()=>nb,isRowAction:()=>tb,isWebhookAction:()=>rb});function tb(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(tb,"isRowAction");function rb(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(rb,"isWebhookAction");function nb(t){return t.definition.trigger?.stepId==="APP"}s(nb,"isAppAction");function By(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Hm(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(By(r))return!0}}return!1}s(By,"hasCollectBlockRecursive");function ib(t){return By(t.definition.steps)}s(ib,"checkForCollectStep");var Nd={};P(Nd,{canCreateApps:()=>sb,containsUserID:()=>pb,getGlobalUserID:()=>fb,getUserAppGroups:()=>mb,hasAdminPermissions:()=>Pd,hasAppBuilderPermissions:()=>La,hasBuilderPermissions:()=>lb,hasCreatorPermissions:()=>Ma,isAdmin:()=>Ts,isAdminOrBuilder:()=>ab,isAdminOrGlobalBuilder:()=>ub,isAdminOrWorkspaceBuilder:()=>ob,isBuilder:()=>vd,isCreator:()=>db,isGlobalBuilder:()=>Ua,userAppAccessList:()=>hb});function vd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ys(e))):!1}s(vd,"isBuilder");function Ua(t){return vd(t)&&!La(t)||Ts(t)}s(Ua,"isGlobalBuilder");function sb(t){return Ua(t)||Ma(t)}s(sb,"canCreateApps");function Ts(t){return t?Pd(t):!1}s(Ts,"isAdmin");function ob(t,e){return t?!!(Ts(t)||e&&t.builder?.apps?.includes(ys(e))):!1}s(ob,"isAdminOrWorkspaceBuilder");function ab(t,e){return vd(t,e)||Ts(t)}s(ab,"isAdminOrBuilder");function ub(t){return Ua(t)||Ts(t)}s(ub,"isAdminOrGlobalBuilder");function La(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(La,"hasAppBuilderPermissions");function cb(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(cb,"hasAppCreatorPermissions");function lb(t){return t?t.builder?.global||La(t)||Ma(t):!1}s(lb,"hasBuilderPermissions");function Pd(t){return t?!!t.admin?.global:!1}s(Pd,"hasAdminPermissions");function Ma(t){return t?!!t.builder?.creator:!1}s(Ma,"hasCreatorPermissions");function db(t){return t?Ua(t)||Pd(t)||Ma(t)||La(t)||cb(t):!1}s(db,"isCreator");function fb(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}s(fb,"getGlobalUserID");function pb(t){return typeof t!="string"?!1:t.includes(`us${C}`)}s(pb,"containsUserID");function Wy(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(Wy,"getUserGroups");function mb(t,e,r){let n=ys(t);return Wy(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(mb,"getUserAppGroups");function hb(t,e){let n=Wy(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(hb,"userAppAccessList");var Ud={};P(Ud,{findInSettings:()=>Eb});function Eb(t,e){let r=[];function n(i,o=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(e)?r.push({setting:o?`${o}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return s(n,"recurse"),n(t.props),r}s(Eb,"findInSettings");var ka=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(ka||{}),Wt=(d=>(d.USER_BY_WORKSPACE="by_app",d.USER_BY_EMAIL="by_email2",d.BY_API_KEY="by_api_key",d.LINK="by_link",d.ROUTING="screen_routes_2",d.AUTOMATION_LOGS="automation_logs",d.ACCOUNT_BY_EMAIL="account_by_email",d.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",d.USER_BY_GROUP="user_by_group",d.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",d))(Wt||{}),jn={by_email2:["by_email"]},fe={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},et=sr("app"),Fa=sr("app_dev"),tt=Fa,Ld="internal",Md="budibase",Rt="_design/sqlite",kd="ta_bb_jobs",Fd="ta_bb_inventory",Bd="ta_bb_expenses",Wd="ta_bb_employee",Ss=`ro${C}ta_users${C}`,As=(r=>(r[r.SQLITE=Rt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(As||{});var Ba=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Ba||{}),en=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(en||{}),$d=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))($d||{}),Gd=(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))(Gd||{}),$y=new Date(-2147483647e3),Wa=new Date(2147483647e3),ae="default";var wo={};P(wo,{CacheKey:()=>ye,TTL:()=>mn,bustCache:()=>li,destroy:()=>to,docWritethrough:()=>hp,generic:()=>ro,get:()=>hn,invite:()=>yp,keys:()=>Nu,passwordReset:()=>Tp,store:()=>Ht,user:()=>br,withCache:()=>wr,withCacheWithDynamicTTL:()=>KS,workspace:()=>Us,writethrough:()=>Yp});var hp={};P(hp,{DocWritethrough:()=>mp,DocWritethroughProcessor:()=>eo,getProcessor:()=>iP,init:()=>qS});var pp={};P(pp,{BudibaseQueue:()=>gt,InMemoryQueue:()=>Su,JobQueue:()=>oi,QueuedProcessor:()=>fp,UnretriableError:()=>vu,shutdown:()=>yv});var qd=require("crypto"),Ga=require("fs"),qy=require("lodash"),_s=require("path");var gb=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,_s.resolve)((0,_s.join)(__dirname,"..","..","..")),Gy=!1;!Gy&&$a()&&!Kd()&&(require("dotenv").config({path:(0,_s.join)(gb,".env")}),Gy=!0);function Kd(){return Ky()}s(Kd,"isTest");function Ky(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(Ky,"isJest");function $a(){return process.env.NODE_ENV!=="production"}s($a,"isDev");function yb(t){if(t)return parseInt(t)}s(yb,"parseIntSafe");var Yn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},Vy=!!parseInt(process.env.SELF_HOSTED||"");function Tb(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(Tb,"getAPIEncryptionKey");function Sb(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(Sb,"httpLogging");function Ab(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Ga.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,Ga.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if($a()&&!Kd())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(Ab,"getPackageJsonFields");function _b(){return pt.SERVICE_TYPE==="worker"}s(_b,"isWorker");function Ob(){return pt.SERVICE_TYPE==="apps"}s(Ob,"isApps");function Ib(){return pt.BUDIBASE_ENVIRONMENT==="QA"}s(Ib,"isQA");function wb(){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(wb,"getServiceName");var pt={isTest:Kd,isJest:Ky,isDev:$a,isWorker:_b,isApps:Ob,isQA:Ib,isProd:()=>!$a(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,qd.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,qd.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Tb(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_USERNAME:process.env.REDIS_USERNAME,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:Vy,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Yn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:wb(),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:Sb(),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:Vy?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Ab(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,pt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:yb(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,BBAI_OPENAI_API_KEY:process.env.BBAI_OPENAI_API_KEY,BBAI_OPENROUTER_API_KEY:process.env.BBAI_OPENROUTER_API_KEY,OPENROUTER_BASE_URL:process.env.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1"};function Os(t){let e=(0,qy.cloneDeep)(pt),r;for(r in t)pt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))pt._set(n,i)}}s(Os,"setEnv");function Qy(t,e){let r=Os(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}s(Qy,"withEnv");var jy=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD","REDIS_USERNAME","BBAI_OPENAI_API_KEY","BBAI_OPENROUTER_API_KEY"];for(let[t,e]of Object.entries(pt))e==="0"&&(pt[t]=0),e==="false"&&(pt[t]=0);var E=pt;var Ka={};P(Ka,{Databases:()=>Qd,SEPARATOR:()=>Hn,SelectableDatabase:()=>Va,getRedisClusterOptions:()=>jd,getRedisConnectionDetails:()=>qa,getRedisOptions:()=>tn,removeDbPrefix:()=>Yd});var Hn="-",Qd=(_=>(_.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",_))(Qd||{}),Va=(g=>(g[g.DEFAULT=0]="DEFAULT",g[g.SOCKET_IO=1]="SOCKET_IO",g[g.RATE_LIMITING=2]="RATE_LIMITING",g[g.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",g[g.UNUSED_3=4]="UNUSED_3",g[g.UNUSED_4=5]="UNUSED_4",g[g.UNUSED_5=6]="UNUSED_5",g[g.UNUSED_6=7]="UNUSED_6",g[g.UNUSED_7=8]="UNUSED_7",g[g.UNUSED_8=9]="UNUSED_8",g[g.UNUSED_9=10]="UNUSED_9",g[g.UNUSED_10=11]="UNUSED_10",g[g.UNUSED_11=12]="UNUSED_11",g[g.UNUSED_12=13]="UNUSED_12",g[g.UNUSED_13=14]="UNUSED_13",g[g.UNUSED_14=15]="UNUSED_14",g))(Va||{});function qa(){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(qa,"getRedisConnectionDetails");function jd(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...tn(),tls:{}}}}s(jd,"getRedisClusterOptions");function tn(){let{host:t,password:e,port:r,username:n}=qa();return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n}}}s(tn,"getRedisOptions");function Yd(t){let e=t.split(Hn);return e.length>=2?(e.shift(),e.join(Hn)):e[0]}s(Yd,"removeDbPrefix");var aS=B(require("events"));var si={};P(si,{Duration:()=>pe,DurationType:()=>Vf,GZIP_PREFIX:()=>Tu,clearCookie:()=>Ar,compare:()=>Jd,getBearerToken:()=>uv,getCookie:()=>Qt,getDispatcher:()=>nv,getWorkspaceIdFromCtx:()=>un,gunzipFromBase64:()=>av,gzipToBase64:()=>ov,hasCircularStructure:()=>Hx,hash:()=>zd,isAudited:()=>$f,isClient:()=>Yx,isPublicApiRequest:()=>Qx,isServingApp:()=>Vx,isServingBuilder:()=>qx,isServingBuilderPreview:()=>Kx,isValidInternalAPIKey:()=>Vs,newid:()=>ee,openJwt:()=>Eu,setCookie:()=>oS,time:()=>Jx,timeout:()=>Wf,urlHasProtocol:()=>zx,validEmail:()=>Gf});var Yy=require("uuid");function ee(){return(0,Yy.v4)().replace(/-/g,"")}s(ee,"newid");var Hd=require("bcrypt"),Db=E.SALT_ROUNDS||10;async function zd(t){let e=await Hd.genSalt(Db);return Hd.hash(t,e)}s(zd,"hash");async function Jd(t,e){return Hd.compare(t,e)}s(Jd,"compare");var hu=B(require("jsonwebtoken"));var ue={};P(ue,{DEFAULT_TENANT_ID:()=>ae,baseGlobalDBName:()=>xs,doInAutomationContext:()=>zb,doInContext:()=>Ef,doInEnvironmentContext:()=>ax,doInFeatureFlagOverrideContext:()=>Of,doInIPContext:()=>Tf,doInIdentityContext:()=>ws,doInLicenseContext:()=>Zb,doInScimContext:()=>ux,doInSelfHostTenantUsingCloud:()=>Jb,doInTenant:()=>Ce,doInWorkspaceContext:()=>tx,doInWorkspaceMigrationContext:()=>nx,ensureSnippetContext:()=>lT,getAuditLogDBName:()=>uT,getAuditLogsDB:()=>lx,getAutomationId:()=>gf,getCurrentContext:()=>sn,getDevWorkspaceDB:()=>fx,getDevWorkspaceId:()=>sx,getEnvironmentVariables:()=>cx,getFeatureFlagOverrides:()=>_f,getFeatureFlags:()=>Sf,getGlobalDB:()=>H,getGlobalDBName:()=>nn,getIP:()=>yf,getIdentity:()=>$t,getLicense:()=>Xb,getOrThrowWorkspaceId:()=>ix,getPlatformURL:()=>hf,getProdWorkspaceDB:()=>dx,getProdWorkspaceId:()=>ox,getScimDBName:()=>Qb,getSelfHostCloudDB:()=>ex,getTableForView:()=>px,getTenantIDFromWorkspaceID:()=>Xn,getTenantId:()=>$,getWorkspaceDB:()=>ei,getWorkspaceId:()=>be,identity:()=>Is,isMultiTenant:()=>gr,isScim:()=>Et,isSelfHostUsingCloud:()=>Xa,isTenancyEnabled:()=>Yb,isTenantIdSet:()=>jb,setFeatureFlags:()=>Af,setTableForView:()=>mx});var Is={};P(Is,{doInAccountContext:()=>Rb,doInIdentityContext:()=>Xd,doInUserContext:()=>ef,getAccountUserId:()=>Hy,getIdentity:()=>Zd});function Zd(){return $t()}s(Zd,"getIdentity");function Xd(t,e){return ws(t,e)}s(Xd,"doInIdentityContext");function ef(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Xd(n,r)}s(ef,"doInUserContext");function Rb(t,e){let r=Hy(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Xd(i,e)}s(Rb,"doInAccountContext");function Hy(t){let e;return Vo(t)?e=t.budibaseUserId:e=t.accountId,e}s(Hy,"getAccountUserId");var mt=s(t=>{let e=tf(t),r,n;if(e.auth?.username)r=e.auth.username;else if(E.COUCH_DB_USERNAME)r=E.COUCH_DB_USERNAME;else if(!E.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(E.COUCH_DB_PASSWORD)n=E.COUCH_DB_PASSWORD;else if(!E.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=E.COUCH_DB_SQL_URL;if(E.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:tf(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),tf=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 sT=B(require("@budibase/nano"));var zy=B(require("node-fetch"));function ja(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(ja,"checkSlashesInUrl");async function Jy(t,e="GET",r){let{url:n,cookie:i}=mt(),o=`${n}/${t}`;return await Ds({url:o,cookie:i,method:e,body:r})}s(Jy,"directCouchCall");async function Ds({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,zy.default)(ja(encodeURI(t)),i)}s(Ds,"directCouchUrlCall");async function rf(t,e="GET",r){let n=await Jy(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(rf,"directCouchQuery");var rn=B(require("pouchdb"));var Zy,Xy=!1,nf=s((t={})=>{let{url:e,cookie:r}=mt(),n={prefix:e,fetch:(i,o)=>(o.headers.set("Authorization",r),rn.default.fetch(i,o))};if(t.inMemory){let i=require("pouchdb-adapter-memory");rn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");rn.default.plugin(i.plugin),rn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");rn.default.plugin(i)}return rn.default.defaults(n)},"getPouch");function Ya(t){Zy=nf(t),Xy=!0}s(Ya,"init");var Cb=s(()=>{if(!Xy)throw new Error("init has not been called")},"checkInitialised");function rt(t,e){Cb();let r=new Zy(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(rt,"getPouchDB");async function Rs(t){if(!(!t||E.isTest()))try{return await t.close()}catch{}}s(Rs,"closePouchDB");var le=B(require("dd-trace"));var zn=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return le.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return le.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return le.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return le.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return le.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return le.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return le.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return le.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return le.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return le.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return le.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return le.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return le.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return le.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return le.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return le.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return le.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return le.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return le.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return le.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return le.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var ff={};P(ff,{breakExternalTableId:()=>af,breakRowIdField:()=>$b,buildExternalTableId:()=>Lb,convertRowId:()=>Wb,encodeTableId:()=>Mb,encodeViewId:()=>kb,extractDate:()=>cf,generateRowIdField:()=>Fb,getNativeSql:()=>Jn,isExternalTable:()=>of,isExternalTableID:()=>Ha,isInternalTableID:()=>Ub,isRowId:()=>Bb,isValidFilter:()=>Ja,isValidISODateString:()=>za,isValidISODateStringWithoutTimezone:()=>uf,isValidTime:()=>lf,sqlLog:()=>Cs,validateManyToMany:()=>df});var sf=`${C}${C}`,tT=/^\[.*]$/g,bb=encodeURIComponent(" "),xb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,vb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Pb=/(\d{4}-\d{2}-\d{2})/,Nb=/^\d{1,2}:\d{2}(?:\.\d{1,6}|:\d{2}(?:\.\d{1,6})?)?$/;function Ha(t){return t.startsWith("datasource"+C)}s(Ha,"isExternalTableID");function Ub(t){return!Ha(t)}s(Ub,"isInternalTableID");function Jn(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}s(Jn,"getNativeSql");function of(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==bn||t?.sourceType==="external"?!0:!!(t?._id&&Ha(t._id))}s(of,"isExternalTable");function Lb(t,e){return`${t}${sf}${encodeURIComponent(e)}`}s(Lb,"buildExternalTableId");function Mb(t){return Ha(t)?encodeURIComponent(t):t}s(Mb,"encodeTableId");function kb(t){return encodeURIComponent(t)}s(kb,"encodeViewId");function af(t){let e=t.split(sf),r=e.shift(),n=e.join(sf);if(n.includes(bb)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(af,"breakExternalTableId");function Fb(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(Fb,"generateRowIdField");function Bb(t){return Array.isArray(t)||typeof t=="string"&&t.match(tT)!=null}s(Bb,"isRowId");function Wb(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(tT)!=null?t.substring(1,t.length-1):t}s(Wb,"convertRowId");function $b(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($b,"breakRowIdField");function za(t){let e=t.trim();if(!xb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(za,"isValidISODateString");function uf(t){let e=t.trim();if(!vb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(uf,"isValidISODateStringWithoutTimezone");function cf(t){let e=t.match(Pb);if(e)return e[0]}s(cf,"extractDate");function Ja(t){return t!=null&&t!==""}s(Ja,"isValidFilter");function lf(t){return Nb.test(t)}s(lf,"isValidTime");function Cs(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(Cs,"sqlLog");function Gb(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(Gb,"isValidManyToManyRelationship");function df(t){if(Gb(t))return t}s(df,"validateManyToMany");var rT="Database does not exist.";function nT(t){return(0,sT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(nT,"buildNano");var hr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}static{s(this,"CouchDBError")}};function Vb(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zn(t,r,e);return new zn(n)}s(Vb,"DatabaseWithConnection");var Zn=class t{constructor(e,r,n){this.couchInfo=mt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=mt(n),this.instanceNano=nT(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=mt();t.nano=nT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Ds({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new hr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===rT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new hr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new hr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(jm(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new hr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ee()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===rT)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 Ds(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new hr("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${Rt}`;return Cs("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(Rt)){let e=await this.get(Rt);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new hr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return rt(this.name).dump(e,r)}async load(e){return rt(this.name).load(e)}async createIndex(e){return rt(this.name).createIndex(e)}async deleteIndex(e){return rt(this.name).deleteIndex(e)}async getIndexes(){return rt(this.name).getIndexes()}};function Re(t,e){return new zn(new Zn(t,e))}s(Re,"getDB");async function je(t,e,r){let n=Re(t,r);return await e(n)}s(je,"doWithDB");async function pf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await rf(e)}s(pf,"directCouchAllDbs");var mf="No app provided";function Er(t){if(!t)throw mf;return t.startsWith(tt)}s(Er,"isDevWorkspaceID");function qb(t){if(!t)throw mf;return t.startsWith(et)&&!Er(t)}s(qb,"isProdWorkspaceID");function bs(t){if(!t)throw mf;return Er(t.appId)}s(bs,"isDevWorkspace");function Za(t){if(!t||t.startsWith(tt))return t;let e=t.split(et);e.shift();let r=e.join(et);return`${tt}${r}`}s(Za,"getDevWorkspaceID");function Ye(t){if(!t||!t.startsWith(tt))return t;let e=t.split(tt);e.shift();let r=e.join(tt);return`${et}${r}`}s(Ye,"getProdWorkspaceID");var oT=require("async_hooks");var he=class t{static{s(this,"Context")}static{this.storage=new oT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var aT=null;function nn(t){return t||(t=$()),xs(t)}s(nn,"getGlobalDBName");function uT(t){return t||(t=$()),t===ae?fe.AUDIT_LOGS.name:`${t}${C}${fe.AUDIT_LOGS.name}`}s(uT,"getAuditLogDBName");function Qb(t){return t||(t=$()),t===ae?fe.SCIM_LOGS.name:`${t}${C}${fe.SCIM_LOGS.name}`}s(Qb,"getScimDBName");function xs(t){return!t||t===ae?fe.GLOBAL.name:`${t}${C}${fe.GLOBAL.name}`}s(xs,"baseGlobalDBName");function hf(){return E.PLATFORM_URL}s(hf,"getPlatformURL");function gr(){return!!E.MULTI_TENANCY}s(gr,"isMultiTenant");function jb(){return!!he.get()?.tenantId}s(jb,"isTenantIdSet");function Yb(){return E.MULTI_TENANCY}s(Yb,"isTenancyEnabled");function Xn(t){if(!t)return;if(!gr())return ae;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(Xn,"getTenantIDFromWorkspaceID");function Hb(t){let e;try{e=he.get()}catch{e={}}return e={...e,...t},e}s(Hb,"updateContext");async function ht(t,e){rx();let r=Hb(t);return he.run(r,e)}s(ht,"newContext");async function zb(t){return await lT(),await ht({tenantId:Xn(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(zb,"doInAutomationContext");async function Ef(t,e){let r=Xn(t);return ht({tenantId:r,appId:t},e)}s(Ef,"doInContext");async function Ce(t,e){return E.MULTI_TENANCY||(t=t||ae),ht(t?{tenantId:t}:{},e)}s(Ce,"doInTenant");async function Jb(t,e){return ht({tenantId:t,isSelfHostUsingCloud:!0},e)}s(Jb,"doInSelfHostTenantUsingCloud");async function Zb(t,e){return ht({license:t},e)}s(Zb,"doInLicenseContext");function Xb(){return he.get()?.license}s(Xb,"getLicense");function Xa(){return!!he.get()?.isSelfHostUsingCloud}s(Xa,"isSelfHostUsingCloud");function ex(){let t=he.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Re(fe.SELF_HOST_CLOUD.name)}s(ex,"getSelfHostCloudDB");async function tx(t,e){return cT(t,e)}s(tx,"doInWorkspaceContext");async function cT(t,e,r){if(!t)throw new Error("workspaceId is required");let n=Xn(t),i={appId:t,...r};return n&&(i.tenantId=n),ht(i,e)}s(cT,"_doInWorkspaceContext");async function ws(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),ht(r,e)}s(ws,"doInIdentityContext");function rx(){if(he.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(rx,"guardMigration");async function nx(t,e){return cT(t,e,{isMigrating:!0})}s(nx,"doInWorkspaceMigrationContext");function $t(){try{return he.get()?.identity}catch{}}s($t,"getIdentity");function $(){if(!gr())return ae;let e=he.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s($,"getTenantId");function gf(){return he.get()?.automationId}s(gf,"getAutomationId");function be(){let e=he.get()?.appId;return!e&&E.isTest()&&aT?aT:e}s(be,"getWorkspaceId");function ix(){let t=be();if(!t)throw new Error("Workspace id not set");return t}s(ix,"getOrThrowWorkspaceId");function yf(){return he.get()?.ip}s(yf,"getIP");var sx=s(()=>{let t=be();if(!t)throw new Error("Could not get workspaceId");return Za(t)},"getDevWorkspaceId"),ox=s(()=>{let t=be();if(!t)throw new Error("Could not get workspaceId");return Ye(t)},"getProdWorkspaceId");function ax(t,e){if(!t)throw new Error("Must supply environment variables.");return ht({environmentVariables:t},e)}s(ax,"doInEnvironmentContext");function ux(t){return ht({isScim:!0},t)}s(ux,"doInScimContext");function Tf(t,e){return ht({ip:t},e)}s(Tf,"doInIPContext");async function lT(){let t=sn();if(!t||t.snippets)return;let e,r=ei();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(lT,"ensureSnippetContext");function cx(){let t=he.get();return t.environmentVariables?t.environmentVariables:null}s(cx,"getEnvironmentVariables");function H(){let t=he.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 Re(xs(t?.tenantId))}s(H,"getGlobalDB");function lx(){if(!$())throw new Error("No tenant ID found - cannot open audit log DB");return Re(uT())}s(lx,"getAuditLogsDB");function ei(t){let e=be();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(Xa())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return Re(e,t)}s(ei,"getWorkspaceDB");function dx(t){let e=be();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return Re(Ye(e),t)}s(dx,"getProdWorkspaceDB");function fx(t){let e=be();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return Re(Za(e),t)}s(fx,"getDevWorkspaceDB");function Et(){return!!he.get()?.isScim}s(Et,"isScim");function sn(){try{return he.get()}catch{return}}s(sn,"getCurrentContext");function Sf(t){let e=sn();if(e)return e.featureFlagCache?.[t]}s(Sf,"getFeatureFlags");function Af(t,e){let r=sn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(Af,"setFeatureFlags");function _f(){return sn()?.featureFlagOverrides||{}}s(_f,"getFeatureFlagOverrides");async function Of(t,e){return await ht({featureFlagOverrides:t},e)}s(Of,"doInFeatureFlagOverrideContext");function px(t){let e=sn();if(e)return e.viewToTableCache?.[t]}s(px,"getTableForView");function mx(t,e){let r=sn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(mx,"setTableForView");var Sr={};P(Sr,{AutomationViewMode:()=>ka,BUDIBASE_DATASOURCE_TYPE:()=>Md,DEFAULT_BB_DATASOURCE_ID:()=>bn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Wd,DEFAULT_EXPENSES_TABLE_ID:()=>Bd,DEFAULT_INVENTORY_TABLE_ID:()=>Fd,DEFAULT_JOBS_TABLE_ID:()=>kd,DatabaseImpl:()=>Zn,DatabaseWithConnection:()=>Vb,DeprecatedViews:()=>jn,DesignDocuments:()=>As,DocumentType:()=>ce,InternalTable:()=>Pt,QueryBuilder:()=>Kt,Replication:()=>ZT,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>Rt,SQS_DATASOURCE_INTERNAL:()=>Ld,StaticDatabases:()=>fe,UNICODE_MAX:()=>Ne,USER_METADATA_PREFIX:()=>Ss,ViewName:()=>Wt,WORKSPACE_DEV:()=>Fa,WORKSPACE_DEV_PREFIX:()=>tt,WORKSPACE_PREFIX:()=>et,baseGlobalDBName:()=>xs,checkErrorCode:()=>rS,closePouchDB:()=>Rs,createApiKeyView:()=>QT,createNewUserEmailView:()=>qT,createPlatformAccountEmailView:()=>YT,createPlatformUserView:()=>HT,createUserAppView:()=>KT,createView:()=>ii,dbExists:()=>vx,directCouchAllDbs:()=>pf,directCouchCall:()=>Jy,directCouchQuery:()=>rf,directCouchUrlCall:()=>Ds,doWithDB:()=>je,fullSearch:()=>Mx,generateAIConfigID:()=>vT,generateAgentFileID:()=>bT,generateAgentID:()=>wT,generateAgentToolSourceID:()=>CT,generateAppUserID:()=>pu,generateChatAppID:()=>DT,generateChatConversationID:()=>RT,generateDevInfoID:()=>_T,generateGlobalUserID:()=>ri,generateOAuth2LogID:()=>IT,generatePluginID:()=>OT,generateRoleID:()=>xf,generateRowID:()=>bf,generateTableID:()=>gT,generateTemplateID:()=>AT,generateUserMetadataID:()=>TT,generateVectorDbID:()=>LT,generateWorkspaceAppID:()=>NT,generateWorkspaceFavouriteID:()=>UT,generateWorkspaceID:()=>ET,getAllDbs:()=>VT,getAllWorkspaces:()=>Ms,getCouchInfo:()=>mt,getDB:()=>Re,getDevWorkspaceID:()=>Za,getDevWorkspaceIDs:()=>bx,getDocParams:()=>Vt,getGlobalDBName:()=>nn,getGlobalIDFromUserMetadataID:()=>ST,getGlobalUserParams:()=>on,getLiteLLMKeyID:()=>PT,getOAuth2ConfigParams:()=>WT,getPluginParams:()=>BT,getPouch:()=>nf,getPouchDB:()=>rt,getProdWorkpaceIDs:()=>Cx,getProdWorkspaceID:()=>Ye,getQueryIndex:()=>MT,getRoleParams:()=>mu,getRowParams:()=>vf,getStartEndKeyURL:()=>Ls,getTemplateParams:()=>FT,getUrlInfo:()=>tf,getUserMetadataParams:()=>kT,getUsersByWorkspaceParams:()=>ni,getWorkspaceAppParams:()=>$T,getWorkspaceFavouriteParams:()=>GT,getWorkspacesByIDs:()=>Rx,init:()=>Ya,isAgentFileID:()=>xT,isDevWorkspace:()=>bs,isDevWorkspaceID:()=>Er,isDocumentConflictError:()=>Fx,isGlobalUserID:()=>yT,isProdWorkspaceID:()=>qb,isSameWorkspaceID:()=>xx,paginatedSearch:()=>Lx,pagination:()=>Nf,prefixRoleID:()=>Gt,queryGlobalView:()=>qt,queryGlobalViewRaw:()=>Bs,queryPlatformView:()=>Fs,queryView:()=>Lf,queryViewRaw:()=>ks,removeKeyNumbering:()=>Ws,searchIndexes:()=>kf});var Us={};P(Us,{WorkspaceState:()=>Cf,getWorkspaceMetadata:()=>fu,invalidateWorkspaceMetadata:()=>Ix});var Tr={};P(Tr,{getCacheClient:()=>wf,getDocWritethroughClient:()=>Sx,getInviteListClient:()=>Ps,getLockClient:()=>Rf,getOpenapiImportSpecsClient:()=>yx,getPasswordResetClient:()=>Ns,getSessionClient:()=>yr,getSocketClient:()=>Tx,getUserClient:()=>vs,getWorkspaceClient:()=>du,getWritethroughClient:()=>Df,init:()=>nt,shutdown:()=>mT});var tu=B(require("ioredis"));var eu=require("dd-trace"),fT=require("lodash");var dT;if(E.MOCK_REDIS)try{dT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function hx(t=0){return await eu.tracer.trace("Redis.init",async e=>{if(E.MOCK_REDIS)return e.addTags({mock:!0}),new dT(tn());let r;if(E.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=qa();r=new tu.Cluster([{host:n,port:i}],jd())}else r=new tu.default(tn());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}s(hx,"init");function Ex(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:Yd(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(Ex,"promisifyStream");function gx(t){return t.isCluster}s(gx,"isCluster");var If=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await eu.tracer.trace("RedisWrapper.init",async n=>{let i=await hx(r);return r&&!E.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return eu.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Hn}${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}${Hn}${e}`;let n;gx(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await Ex(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,fT.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e});let i=`
|
|
6
6
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
7
7
|
redis.call('DEL', KEYS[1])
|
|
8
8
|
end
|
|
9
|
-
`;await this.client.eval(i,1,this.prefixed(e),r)})}},
|
|
9
|
+
`;await this.client.eval(i,1,this.prefixed(e),r)})}},De=If;var ru,nu,iu,su,ou,ti,au,uu,cu,lu,pT;async function nt(){ru=await De.init("users"),nu=await De.init("session"),iu=await De.init("appMetadata"),su=await De.init("data_cache"),ou=await De.init("openapiImportSpecs",3),au=await De.init("locks"),ti=await De.init("writeThrough"),cu=await De.init("invitationList"),lu=await De.init("pwReset"),uu=await De.init("socket_io",1),pT=await De.init("docWriteThrough")}s(nt,"init");async function mT(){await ru?.finish(),await nu?.finish(),await iu?.finish(),await su?.finish(),await ou?.finish(),await ti?.finish(),await au?.finish(),await cu?.finish(),await lu?.finish(),await uu?.finish(),await pT?.finish()}s(mT,"shutdown");process.on("exit",async()=>{await mT()});async function vs(){return ru||await nt(),ru}s(vs,"getUserClient");async function yr(){return nu||await nt(),nu}s(yr,"getSessionClient");async function du(){return iu||await nt(),iu}s(du,"getWorkspaceClient");async function wf(){return su||await nt(),su}s(wf,"getCacheClient");async function yx(){return ou||await nt(),ou}s(yx,"getOpenapiImportSpecsClient");async function Df(){return ti||await nt(),ti}s(Df,"getWritethroughClient");async function Rf(){return au||await nt(),au}s(Rf,"getLockClient");async function Tx(){return uu||await nt(),uu}s(Tx,"getSocketClient");async function Ps(){return cu||await nt(),cu}s(Ps,"getInviteListClient");async function Ns(){return lu||await nt(),lu}s(Ns,"getPasswordResetClient");async function Sx(){return ti||await nt(),ti}s(Sx,"getDocWritethroughClient");var Cf=(e=>(e.INVALID="invalid",e))(Cf||{}),hT=3600,Ax=60;async function _x(t){return je(t,e=>e.get("app_metadata"),{skip_setup:!0})}s(_x,"populateFromDB");function Ox(t){return!t||t.state==="invalid"}s(Ox,"isInvalid");async function fu(t){let e=await du(),r=await e.get(t);if(!r){let n=hT;try{r=await _x(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=Ax;else throw i}if(Ox(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}s(fu,"getWorkspaceMetadata");async function Ix(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await du();await r.delete(t),e&&await r.store(t,e,hT)}s(Ix,"invalidateWorkspaceMetadata");var Pf={};P(Pf,{generateAIConfigID:()=>vT,generateAgentFileID:()=>bT,generateAgentID:()=>wT,generateAgentToolSourceID:()=>CT,generateAppUserID:()=>pu,generateChatAppID:()=>DT,generateChatConversationID:()=>RT,generateDevInfoID:()=>_T,generateGlobalUserID:()=>ri,generateOAuth2LogID:()=>IT,generatePluginID:()=>OT,generateRoleID:()=>xf,generateRowID:()=>bf,generateTableID:()=>gT,generateTemplateID:()=>AT,generateUserMetadataID:()=>TT,generateVectorDbID:()=>LT,generateWorkspaceAppID:()=>NT,generateWorkspaceFavouriteID:()=>UT,generateWorkspaceID:()=>ET,getDocParams:()=>Vt,getGlobalIDFromUserMetadataID:()=>ST,getGlobalUserParams:()=>on,getLiteLLMKeyID:()=>PT,getOAuth2ConfigParams:()=>WT,getPluginParams:()=>BT,getQueryIndex:()=>MT,getRoleParams:()=>mu,getRowParams:()=>vf,getStartEndKeyURL:()=>Ls,getTemplateParams:()=>FT,getUserMetadataParams:()=>kT,getUsersByWorkspaceParams:()=>ni,getWorkspaceAppParams:()=>$T,getWorkspaceFavouriteParams:()=>GT,isAgentFileID:()=>xT,isGlobalUserID:()=>yT,prefixRoleID:()=>Gt});var ET=s(t=>{let e=et;return t&&(e+=`${t}${C}`),`${e}${ee()}`},"generateWorkspaceID");function gT(){return`ta${C}${ee()}`}s(gT,"generateTableID");function bf(t,e){return e=e||ee(),`ro${C}${t}${C}${e}`}s(bf,"generateRowID");function ri(t){return`us${C}${t||ee()}`}s(ri,"generateGlobalUserID");var wx=new RegExp(`^us${C}.+`);function yT(t){return wx.test(t)}s(yT,"isGlobalUserID");function TT(t){return bf("ta_users",t)}s(TT,"generateUserMetadataID");function ST(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}s(ST,"getGlobalIDFromUserMetadataID");function AT(t){return`template${C}${t}${C}${ee()}`}s(AT,"generateTemplateID");function pu(t,e){return`${t}${C}${e}`}s(pu,"generateAppUserID");function xf(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}s(xf,"generateRoleID");function Gt(t){return xf(t)}s(Gt,"prefixRoleID");var _T=s(t=>`devinfo${C}${t}`,"generateDevInfoID"),OT=s(t=>`plg${C}${t}`,"generatePluginID"),IT=s(t=>`oauth2log${C}${t}`,"generateOAuth2LogID"),wT=s(()=>`agent${C}${ee()}`,"generateAgentID"),DT=s(()=>`chatapp${C}${ee()}`,"generateChatAppID"),RT=s(()=>`chatconvo${C}${ee()}`,"generateChatConversationID"),CT=s(()=>`agenttoolsource${C}${ee()}`,"generateAgentToolSourceID"),bT=s(t=>`agentfile${C}${t}${C}${ee()}`,"generateAgentFileID"),Dx=new RegExp(`^agentfile${C}.+`),xT=s(t=>Dx.test(t),"isAgentFileID"),vT=s((t=ee())=>`aiconfig${C}${t}`,"generateAIConfigID"),PT=s(()=>`litellmkey${C}config`,"getLiteLLMKeyID"),NT=s(()=>`workspace_app${C}${ee()}`,"generateWorkspaceAppID"),UT=s(()=>`workspace_favourite${C}${ee()}`,"generateWorkspaceFavouriteID"),LT=s(()=>`vectordb${C}${ee()}`,"generateVectorDbID");function Vt(t,e,r={}){e==null&&(e="");let n=`${t}${C}${e}`,i=`${t}${C}${e}${Ne}`;return{startkey:n,endkey:i,...r}}s(Vt,"getDocParams");function vf(t,e,r={}){if(t==null)return Vt("ro",null,r);let n=e??`${t}${C}`;return Vt("ro",n,r)}s(vf,"getRowParams");function MT(t){return`database/${t}`}s(MT,"getQueryIndex");function on(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${Ne}`}}s(on,"getGlobalUserParams");function kT(t,e={}){return vf("ta_users",t,e)}s(kT,"getUserMetadataParams");function ni(t,e={}){let r=Ye(t);return{...e,startkey:r,endkey:`${r}${Ne}`}}s(ni,"getUsersByWorkspaceParams");function FT(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${Ne}`}}s(FT,"getTemplateParams");function mu(t,e={}){return Vt("role",t,e)}s(mu,"getRoleParams");function Ls(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ne}"`}s(Ls,"getStartEndKeyURL");var BT=s((t,e={})=>Vt("plg",t,e),"getPluginParams"),WT=s((t,e={})=>Vt("oauth2",t,e),"getOAuth2ConfigParams"),$T=s((t,e={})=>Vt("workspace_app",t,e),"getWorkspaceAppParams"),GT=s((t,e={})=>Vt("workspace_favourite",t,e),"getWorkspaceFavouriteParams");async function VT(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(o){let a=await pf(o);r=r.concat(a)}s(n,"addDbs");let i=$();return!E.MULTI_TENANCY||!e&&i===ae?await n():(await n(Ls("app",i)),await n(Ls("app_dev",i)),r.push(nn(i))),r}s(VT,"getAllDbs");async function Ms({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=$();!E.MULTI_TENANCY&&!i&&(i=ae);let a=(await VT({efficient:n||!1})).filter(c=>{if(E.isTest()&&!c)return!1;let l=c.split(C);if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ae&&f||d===i}return!1});if(r){let c=a.filter(d=>Er(d)),l=a.filter(d=>!Er(d));switch(t){case!0:return c;case!1:return l;default:return a}}let u=a.map(c=>fu(c));if(u.length===0)return[];{let l=(await Promise.allSettled(u)).filter(d=>d.status==="fulfilled"&&d.value?.state!=="invalid").map(({value:d})=>d);return e?l.map(d=>({...d,status:bs(d)?"development":"published"})):l.filter(d=>t?bs(d):!bs(d))}}s(Ms,"getAllWorkspaces");async function Rx(t){return(await Promise.allSettled(t.map(r=>fu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}s(Rx,"getWorkspacesByIDs");async function Cx(){return(await Ms({idsOnly:!0})).filter(e=>!Er(e))}s(Cx,"getProdWorkpaceIDs");async function bx(){return(await Ms({idsOnly:!0})).filter(e=>Er(e))}s(bx,"getDevWorkspaceIDs");function xx(t,e){return t==null||e==null?!1:Ye(t)===Ye(e)}s(xx,"isSameWorkspaceID");async function vx(t){return je(t,async e=>await e.exists(),{skip_setup:!0})}s(vx,"dbExists");function Nf(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(Nf,"pagination");var Uf="_design/database";function Px(){return{_id:Uf,views:{}}}s(Px,"DesignDoc");async function Nx(t,e){if(jn[e])try{let r=await t.get(Uf);for(let n of jn[e])delete r.views?.[n];await t.put(r)}catch{}}s(Nx,"removeDeprecated");async function ii(t,e,r){let n;try{n=await t.get(Uf)}catch{n=Px()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(o){if(o.status===409)return await ii(t,e,r);throw o}}s(ii,"createView");var qT=s(async()=>{let t=H(),e=`function(doc) {
|
|
10
10
|
if (doc._id.startsWith("us${C}")) {
|
|
11
11
|
emit(doc.email.toLowerCase(), doc._id)
|
|
12
12
|
}
|
|
13
|
-
}`;await
|
|
13
|
+
}`;await ii(t,e,"by_email2")},"createNewUserEmailView"),KT=s(async()=>{let t=H(),e=`function(doc) {
|
|
14
14
|
if (doc._id.startsWith("us${C}") && doc.roles) {
|
|
15
15
|
for (let prodWorkspaceId of Object.keys(doc.roles)) {
|
|
16
16
|
let emitted = prodWorkspaceId + "${C}" + doc._id
|
|
17
17
|
emit(emitted, null)
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
}`;await
|
|
20
|
+
}`;await ii(t,e,"by_app")},"createUserAppView"),QT=s(async()=>{let t=H(),e=`function(doc) {
|
|
21
21
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
22
22
|
emit(doc.apiKey, doc.userId)
|
|
23
23
|
}
|
|
24
|
-
}`;await
|
|
24
|
+
}`;await ii(t,e,"by_api_key")},"createApiKeyView");async function ks(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await Nx(r,t),await n(),ks(t,e,r,n,i);if(o.status===409)return ks(t,e,r,n,i);throw o}}s(ks,"queryViewRaw");var Lf=s(async(t,e,r,n,i)=>{let u=(await ks(t,e,r,n,i)).rows.map(c=>e.include_docs?c.doc:c.value);return i?.arrayResponse?u:u.length<=1?u[0]:u},"queryView");async function jT(t,e){try{await je(fe.PLATFORM_INFO.name,async r=>{await ii(r,t,e)})}catch(r){if(r.status===409&&E.isTest())return;throw r}}s(jT,"createPlatformView");var YT=s(async()=>{let t=`function(doc) {
|
|
25
25
|
if (doc._id.startsWith("acc_metadata${C}")) {
|
|
26
26
|
emit(doc.email.toLowerCase(), doc._id)
|
|
27
27
|
}
|
|
28
|
-
}`;await
|
|
28
|
+
}`;await jT(t,"account_by_email")},"createPlatformAccountEmailView"),HT=s(async()=>{await jT(`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"),Bs=s(async(t,e)=>{let r={account_by_email:JT,platform_users_lowercase_2:ZT};return je(fe.PLATFORM_INFO.name,async n=>{let i=r[t];return kf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),XT={by_email2:jT,by_api_key:HT,by_app:YT},qt=s(async(t,e,r,n)=>{r||(r=H());let i=XT[t];return kf(t,e,r,i,n)},"queryGlobalView");async function Ws(t,e,r){let n=H(),i=XT[t];return Fs(t,e,n,i,r)}s(Ws,"queryGlobalViewRaw");var Lx=B(require("pouchdb"));var eS=require("dd-trace");var Ff=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=nt(e),this.target=nt(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([Cs(this.source),Cs(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 eS.tracer.trace("Replication.resolveInconsistencies",async u=>{u.addTags({versionsToJump:a,toFix:!0,id:r,sourceRev:n._rev,targetRev:i._rev});for(let c=0;c<a;c++){let l=await this.source.get(i._id);await this.source.put(l)}})}catch{console.warn("Cannot resolve inconsistencies for document",r)}}replicationDelta(e,r){let n=this.getRevisionNumber(e);return this.getRevisionNumber(r)-n}getRevisionNumber(e){return parseInt(e._rev?.split("-")[0]||"0")}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,n=this.direction,i=n==="toDev";delete e.filter;let o=e.isCreation,a=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let u=!1,c;typeof a=="string"&&a==="all"?u=!0:a&&(c=a);let l=s((f,h)=>f?.startsWith(h+C),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:(f,h)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,As)?!0:n==="toProduction"&&!o&&l(f._id,"autocolumn_state")?!1:d(f._id)?!!c?.find(p=>f._id.includes(p))||u:l(f._id,"log_au")||f._id==="app_metadata"?!1:r?r(f,h):!0}}async rollback(){await this.target.destroy(),this.target=nt(this.target.name),await this.replicate()}},tS=Ff;var nS=B(require("node-fetch"));var $s=mr.removeKeyNumbering;function an(t){return t==null||t===""}s(an,"isEmpty");var Kt=class t{static{s(this,"QueryBuilder")}#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:o}={}){let a=!!this.#f,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let o of Object.keys(e)){let a=$s(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#e.equal.tableId&&(a=this.#e.equal.tableId,delete this.#e.equal.tableId);let u=s((S,m)=>an(m)?null:`${S}:${e.preprocess(m,o)}`,"equal"),c=s((S,m,g="AND")=>{if(an(m))return null;if(!Array.isArray(m))return`${S}:${m}`;let y=`${e.preprocess(m[0],{escape:!0})}`;for(let I=1;I<m.length;I++)y+=` ${g} ${e.preprocess(m[I],{escape:!0})}`;return`${S}:(${y})`},"contains"),l=s((S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"fuzzy"}),`${S}:/.*${m}.*/`),"fuzzy"),d=s((S,m)=>{let g=r?"*:* AND ":"",y=r?"AND":void 0;return g+"NOT "+c(S,m,y)},"notContains"),f=s((S,m)=>c(S,m,"OR"),"containsAny"),h=s((S,m)=>{if(an(m))return"*:*";if(!Array.isArray(m))if(typeof m=="string")m=m.split(",");else return"";let g=`${e.preprocess(m[0],o)}`;for(let y=1;y<m.length;y++)g+=` OR ${e.preprocess(m[y],o)}`;return`${S}:(${g})`},"oneOf");function p(S,m,g){let y="";for(let[I,O]of Object.entries(S)){I=$s(I),I=e.preprocess(e.handleSpaces(I),{escape:!0});let w=m(I,O);if(w!=null){if(y.length>0||n.length>0){let T=g?.mode?g.mode:r?"OR":"AND";y+=` ${T} `}y+=w,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==a&&O!=="")&&(i=!1)}}if(g?.returnBuilt)return y;n+=y}if(s(p,"build"),this.#e.string&&p(this.#e.string,(S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"string"}),`${S}:${m}*`)),this.#e.range&&p(this.#e.range,(S,m)=>{if(an(m)||m.low==null||m.low===""||m.high==null||m.high==="")return null;let g=e.preprocess(m.low,o),y=e.preprocess(m.high,o);return`${S}:[${g} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,l),this.#e.equal&&p(this.#e.equal,u),this.#e.notEqual&&p(this.#e.notEqual,(S,m)=>an(m)?null:typeof m=="boolean"?`(*:* AND !${S}:${m})`:`!${S}:${e.preprocess(m,o)}`),this.#e.empty&&p(this.#e.empty,S=>(i=!1,`(*:* -${S}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,S=>(i=!1,`${S}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,h),this.#e.contains&&p(this.#e.contains,c),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&p(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:a},u)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=mt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await rS(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await rS(n,i,r);throw o}}};async function rS(t,e,r){let n=await(0,nS.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),o={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(o.rows=i.rows.map(a=>a.doc)),i.bookmark&&(o.bookmark=i.bookmark),i.total_rows&&(o.totalRows=i.total_rows),o}s(rS,"runQuery");async function iS(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Kt.maxLimit;n.limit&&o.length>n.limit-Kt.maxLimit&&(a=n.limit-o.length);let u=new Kt(t,e,r);u.setVersion(n.version).setBookmark(i).setLimit(a).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&u.setTable(n.tableId);let c=await u.run();if(!c.rows.length)return o;if(c.rows.length<Kt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await iS(t,e,r,l)}s(iS,"recursiveSearch");async function Mx(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Kt.maxLimit);let o=new Kt(t,e,r);n.version&&o.setVersion(n.version),n.tableId&&o.setTable(n.tableId),n.sort&&o.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&o.setIndexBuilder(n.indexer),n.disableEscaping&&o.disableEscaping();let a=await o.setBookmark(n.bookmark).setLimit(i).run();o.setBookmark(a.bookmark).setLimit(1),n.tableId&&o.setTable(n.tableId);let u=await o.run();return{...a,hasNextPage:u.rows&&u.rows.length>0}}s(Mx,"paginatedSearch");async function kx(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 iS(t,e,r,n)}}s(kx,"fullSearch");var Bf={};P(Bf,{createUserIndex:()=>Fx});async function Fx(){let t=H(),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(Fx,"createUserIndex");function sS(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(sS,"checkErrorCode");function Bx(t){return sS(t,409)}s(Bx,"isDocumentConflictError");var Vs={};P(Vs,{addTenantToUrl:()=>Wx,getTenantDB:()=>Wf,getTenantIDFromCtx:()=>Gs,isUserInWorkspaceTenant:()=>$x});function Wf(t){return Re(nn(t))}s(Wf,"getTenantDB");function Wx(t){let e=$();if(gr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(Wx,"addTenantToUrl");var $x=s((t,e)=>{let r;return e?r=e.tenantId||ae:r=$(),(Xn(t)||ae)===r},"isUserInWorkspaceTenant"),Gx=Object.values(Ri),Gs=s((t,e)=>{if(!gr())return ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=Gx),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(gf()).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 $f="app"+C,oS="/app/";async function Vx(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=$();!E.isDev()&&E.MULTI_TENANCY&&(n=Gs(t,{includeStrategies:["subdomain"]}));let o=(await Ce(n,()=>ks({dev:!1}))).filter(a=>a.url&&a.url.toLowerCase()===r)[0];return o&&o.appId?o.appId:void 0}s(Vx,"resolveAppUrl");function qx(t){return t.path.startsWith(`/${$f}`)?!0:t.path.startsWith(oS)}s(qx,"isServingApp");function Kx(t){return t.path.startsWith("/builder/workspace/")}s(Kx,"isServingBuilder");function Qx(t){return aS(t.path)}s(Qx,"isServingBuilderPreview");function aS(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(aS,"isBuilderPreviewUrl");function jx(t){return t.path.startsWith("/api/public/v")}s(jx,"isPublicApiRequest");async function un(t){let e;function r(u){u&&u.startsWith($f)&&(e&&e!==u&&t.throw("App id conflict",403),e=u)}s(r,"setWorkspaceIdIfValid");function n(u){if(u){typeof u=="string"&&(u=[u]);for(let c of u)r(c)}}s(n,"checkPossibleValues"),n(t.request.headers["x-budibase-app-id"]),r(t.request.body?.appId);let i=Yx(t.path);r(i),n(t.query?.appId);let o=aS(t.path);return t.path.startsWith(oS)&&!o&&r(await Vx(t)),e}s(un,"getWorkspaceIdFromCtx");function Yx(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith($f))}s(Yx,"parseWorkspaceIdFromUrlPath");function yu(t){if(t)try{return gu.default.verify(t,E.JWT_SECRET)}catch(e){if(E.JWT_SECRET_FALLBACK)return gu.default.verify(t,E.JWT_SECRET_FALLBACK);throw e}}s(yu,"openJwt");function qs(t){return E.INTERNAL_API_KEY&&E.INTERNAL_API_KEY===t?!0:!!(E.INTERNAL_API_KEY_FALLBACK&&E.INTERNAL_API_KEY_FALLBACK===t)}s(qs,"isValidInternalAPIKey");function Qt(t,e){let r=t.cookies.get(e);if(r)return yu(r)}s(Qt,"getCookie");function uS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=gu.default.sign(e,E.JWT_SECRET));let i={expires:$a,path:"/",httpOnly:!1,overwrite:!0};E.COOKIE_DOMAIN&&(i.domain=E.COOKIE_DOMAIN),t.cookies.set(r,e,i)}s(uS,"setCookie");function Ar(t,e){uS(t,null,e)}s(Ar,"clearCookie");function Hx(t){return t.headers["x-budibase-type"]==="client"}s(Hx,"isClient");function Gf(t){return new Promise(e=>setTimeout(e,t))}s(Gf,"timeout");function Vf(t){return!!jm[t]}s(Vf,"isAudited");function zx(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(zx,"hasCircularStructure");function Jx(t){return!!t.match(/^.+:\/\/.+$/)}s(Jx,"urlHasProtocol");function qf(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(qf,"validEmail");var Kf=(o=>(o.MILLISECONDS="milliseconds",o.SECONDS="seconds",o.MINUTES="minutes",o.HOURS="hours",o.DAYS="days",o))(Kf||{}),Tu={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},pe=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/Tu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Tu[e]/Tu[r]}static from(e,r){return new t(r*Tu[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function Zx(t){let e=performance.now();return[await t(),pe.fromMilliseconds(performance.now()-e)]}s(Zx,"time");var Su=require("undici");function Xx(t,e){let r,n=null;try{let o=new URL(t);r=o.hostname,n=o.port||null}catch{return!1}let i=e.split(/[\s,]+/).filter(o=>o.length>0);for(let o of i){let u=o.replace(/^\./,"*").match(/^(.+?)(?::(\d+))?$/);if(!u||!u[1])continue;let c=u[1].toLowerCase(),l=u[2]||null,d=!1;if(c==="*")d=!0;else if(c.startsWith("*")){let h=c.slice(1);d=r===h.slice(1)||r.endsWith(h)}else d=r===c;if(d&&(!l||n===l))return!0}return!1}s(Xx,"isUrlMatchingNoProxy");function ev(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&&Xx(t,i))return console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy",{url:t,noProxy:i}),!0}return!1}s(ev,"shouldBypassProxy");function tv(t){return new Su.Agent({connect:{rejectUnauthorized:t}})}s(tv,"createDirectAgent");function rv(t){let e=process.env.GLOBAL_AGENT_HTTP_PROXY||process.env.HTTP_PROXY,n=(process.env.GLOBAL_AGENT_HTTPS_PROXY||process.env.HTTPS_PROXY||e).trim();console.log("[fetch] Creating ProxyAgent",{proxyUrl:n,rejectUnauthorized:t});let i={uri:n,requestTls:{rejectUnauthorized:t}};return n.startsWith("https://")&&(i.proxyTls={rejectUnauthorized:t}),new Su.ProxyAgent(i)}s(rv,"createProxyAgent");function nv(t){let e=t?.rejectUnauthorized??!0;return ev(t?.url)?tv(e):rv(e)}s(nv,"createDispatcher");function iv(t){return nv(t)}s(iv,"getDispatcher");var Qf=require("util"),jf=B(require("zlib"));var sv=(0,Qf.promisify)(jf.default.gzip),ov=(0,Qf.promisify)(jf.default.gunzip),Au="gzip:",av=s(async t=>{let e=await sv(t);return`${Au}${e.toString("base64")}`},"gzipToBase64"),uv=s(async t=>{let e=t.startsWith(Au)?t.slice(Au.length):t,r=Buffer.from(e,"base64");return(await ov(new Uint8Array(r))).toString("utf8")},"gunzipFromBase64");function cv(t){let e=t.get("authorization");if(!e)return null;let r=e.match(/^Bearer\s+(.+)$/i);return r?r[1]:null}s(cv,"getBearerToken");function lv(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(lv,"jobToJobInformation");var _u=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new cS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((f,h)=>{f?l(f):c(h)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await Le.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=ee(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{c._isDiscarded=!0}};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:()=>new Promise((c,l)=>{let d=s((h,p)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(p))},"errorHandler"),f=s((h,p)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(p))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)})}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>lv(e))}async whenCurrentJobsFinished(){do await Gf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},lS=_u;var zf=B(require("bull"));var ai=(l=>(l.AUTOMATION="automationQueue",l.APP_BACKUP="appBackupQueue",l.AUDIT_LOG="auditLogQueue",l.SYSTEM_EVENT_QUEUE="systemEventQueue",l.APP_MIGRATION="appMigration",l.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",l.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",l.BATCH_USER_SYNC_PROCESSOR="batchUserSyncProcessorQueue",l.RAG_INGESTION="ragIngestionQueue",l))(ai||{});function dS(t,e,r){pv(t,e),r&&dv(t,r)}s(dS,"addListeners");function dv(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(dv,"handleStalled");function it(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(it,"getLogParams");var fv={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event",batchUserSyncProcessorQueue:"batch-user-sync-processor",ragIngestionQueue:"rag-ingestion-processor"};function pv(t,e){let r=fv[e];function n(i,o){let a=i.data.event?.appId;if(a)return yf(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...it(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...it(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...it(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...it(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...it(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...it(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...it(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...it(r,"paused"))}).on("resumed",()=>{console.info(...it(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...it(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...it(r,"drained"))}).on("removed",i=>{console.info(...it(r,"removed",{job:i}))})}s(pv,"logging");var Ou={};P(Ou,{cleanup:()=>mv,clear:()=>Hf,set:()=>Yf});var Ks=[];function Yf(t,e){let r=setInterval(t,e);return Ks.push(r),r}s(Yf,"set");function Hf(t){let e=Ks.indexOf(t);e!==-1&&Ks.splice(e,1),clearInterval(t)}s(Hf,"clear");function mv(){for(let t of Ks)clearInterval(t);Ks=[]}s(mv,"cleanup");var jt=B(require("dd-trace")),Qs=B(require("object-sizeof"));var hv=pe.fromMinutes(5).toMs(),Ev=pe.fromSeconds(30).toMs(),Jf=pe.fromSeconds(60).toMs(),js=[],Iu;async function fS(){for(let t of js)await t.clean(Jf,"completed"),await t.clean(Jf,"failed")}s(fS,"cleanup");async function gv(t,e,r){let n=performance.now();try{let i=await e();return jt.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw jt.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;jt.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),jt.default.dogstatsd.increment(t,1,r)}}s(gv,"withMetrics");function pS(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(pS,"jobOptsTags");function yv(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Qs.default)(t.data),...pS(t.opts||{})}}s(yv,"jobTags");var gt=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:tn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:hv,lockRenewTime:Ev}};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 zf.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new lS(this.jobQueue,r):n=new zf.default(this.jobQueue,r),dS(n,this.jobQueue,this.opts.removeStalledCb),js.push(n),!Iu&&!E.isTest()&&(Iu=Yf(fS,Jf),fS().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=s(async(a,u)=>{await jt.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:()=>l.traceId,toSpanId:()=>l.spanId,toTraceparent:()=>""};c.addLink(d)}c.addTags({"queue.name":this.jobQueue,...yv(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),jt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Qs.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await jt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Qs.default)(e),...pS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},jt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Qs.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return gv(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function Tv(){Iu&&Hf(Iu),console.log("Waiting for current queue jobs to finish...");for(let t of js)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of js)await t.close();js=[],console.log("Queues shutdown")}s(Tv,"shutdown");var eo={};P(eo,{correlation:()=>Ys,logAlert:()=>dn,logAlertWithInfo:()=>nP,logWarn:()=>li,logger:()=>Pu,system:()=>fp});var Ys={};P(Ys,{getId:()=>Zf,setHeader:()=>Sv});var mS=require("correlation-id"),Sv=s(t=>{let e=mS.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function Zf(){return mS.getId()}s(Zf,"getId");var vu=B(require("pino")),qS=B(require("pino-pretty")),pp=B(require("dd-trace")),KS=require("dd-trace/ext");var fp={};P(fp,{getLogReadStream:()=>Jv,getSingleFileMaxSizeInfo:()=>VS,localFileDestination:()=>dp});var Xs=B(require("fs")),lp=B(require("path")),BS=B(require("rotating-file-stream"));var cp={};P(cp,{ObjectStore:()=>st,ObjectStoreBuckets:()=>_v,SIGNED_FILE_PREFIX:()=>sp,bucketTTLConfig:()=>wu,budibaseTempDir:()=>cn,client3rdPartyLibrary:()=>qv,clientLibraryPath:()=>Vv,clientLibraryUrl:()=>Kv,createBucketIfNotExists:()=>Zs,deleteFile:()=>Uv,deleteFiles:()=>Lv,deleteFolder:()=>RS,downloadTarball:()=>kv,downloadTarballDirect:()=>Mv,enrichPWAImages:()=>Qv,enrichPluginURLs:()=>Yv,extractBucketAndPath:()=>Xf,getAllFiles:()=>vv,getAppFileUrl:()=>vS,getClientCacheKey:()=>xS,getGlobalFileS3Key:()=>PS,getGlobalFileUrl:()=>jv,getObjectMetadata:()=>Fv,getPluginIconKey:()=>LS,getPluginJSKey:()=>US,getPluginS3Dir:()=>kS,getPresignedUrl:()=>ln,getReadStream:()=>Du,listAllObjects:()=>op,objectExists:()=>Bv,processAutomationAttachment:()=>Iv,processObjectStoreAttachment:()=>TS,retrieve:()=>DS,retrieveDirectory:()=>Nv,retrieveToTmp:()=>Pv,sanitizeBucket:()=>xe,sanitizeKey:()=>Ee,streamUpload:()=>wS,streamUploadMany:()=>xv,upload:()=>bv,uploadDirectory:()=>ap});var Cu=require("@aws-sdk/client-s3"),ep=require("@aws-sdk/lib-storage"),SS=require("@aws-sdk/s3-request-presigner"),AS=require("@smithy/node-http-handler");var Yt=B(require("dd-trace")),ui=B(require("fs")),zs=B(require("fs/promises")),_S=B(require("https")),tp=B(require("node-fetch")),Or=require("path"),bu=B(require("stream")),Js=require("stream/promises"),rp=B(require("tar-fs")),np=require("uuid"),ip=B(require("zlib"));var hS=B(require("fs")),ES=require("os"),Hs=B(require("path")),gS=B(require("stream"));var _v={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},yS=(0,Hs.join)((0,ES.tmpdir)(),".budibase");try{hS.default.mkdirSync(yS)}catch(t){if(t.code!=="EEXIST")throw t}function cn(){return yS}s(cn,"budibaseTempDir");var wu=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function Ov(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Hs.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:gS.default.Readable.fromWeb(e.body)}}s(Ov,"processUrlAttachment");async function TS(t){let e=Xf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await Du(r,n),o=Hs.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(TS,"processObjectStoreAttachment");async function Iv(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await Ov(t):await TS(t)}s(Iv,"processAutomationAttachment");var wv=require("sanitize-s3-objectkey"),Dv={bucketCreationPromises:{}},sp="/files/signed",_r={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},Rv=[_r.html,_r.css,_r.js,_r.json];function Ee(t){return wv(xe(t)).replace(/\\/g,"/")}s(Ee,"sanitizeKey");function xe(t){return t.replace(new RegExp(rt,"g"),tt)}s(xe,"sanitizeBucket");function st(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 _S.default.Agent({rejectUnauthorized:!1});e.requestHandler=new AS.NodeHttpHandler({httpsAgent:r})}return new Cu.S3(e)}s(st,"ObjectStore");async function Zs(t,e){e=xe(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=Dv.bucketCreationPromises,o=n===404,a=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(o||a){if(o)return i[e]=t.createBucket({Bucket:e}).catch(u=>{if(u.Code!=="BucketAlreadyOwnedByYou")throw u}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}s(Zs,"createBucketIfNotExists");var Cv=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?_r[r.toLowerCase()]:_r.txt},"resolveContentType"),OS=s(async(t,e,r)=>{let n=xe(t),i=st(),o=await Zs(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=wu(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),IS=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=Cv(r,i),u=Ee(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new ep.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function bv({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await zs.default.open(r)).createReadStream():o,l=st(),d=await Zs(l,t);if(a&&d.created){let m=wu(t,a);await l.putBucketLifecycleConfiguration(m)}let f=n,h=f||(u?_r[u.toLowerCase()]:_r.txt),p={Bucket:xe(t),Key:Ee(e),Body:c,ContentType:h};if(i&&typeof i=="object"){for(let m of Object.keys(i))(!i[m]||typeof i[m]!="string")&&delete i[m];p.Metadata=i}return new ep.Upload({client:l,params:p}).done()}s(bv,"upload");async function wS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await Yt.default.trace("streamUpload",async a=>{a.addTags({bucketName:t,filename:r,type:n,ttl:o});let u=r.split(".").pop();a.addTags({extension:u});let{bucket:c,client:l}=await OS(t,o,a),{details:d,contentType:f}=await IS({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),h=await l.headObject({Bucket:c,Key:Ee(r)});return a.addTags({contentType:f,contentLength:h.ContentLength}),{...d,ContentLength:h.ContentLength}})}s(wS,"streamUpload");async function xv({bucket:t,files:e,ttl:r}){return await Yt.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await OS(t,r,i),u=e.map((l,d)=>({...l,index:d})),c=new Array(e.length);return await _t.parallelForeach(u,async l=>{let{details:d}=await IS({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=d},10),c})}s(xv,"streamUploadMany");async function DS(t,e){return await Yt.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=st(),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}),Rv.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return bu.default.Readable.fromWeb(a)}})}s(DS,"retrieve");async function*op(t,e){let r=st(),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(op,"listAllObjects");async function vv(t,e){let r={};return await _t.parallelForeach(op(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(vv,"getAllFiles");async function ln(t,e,r=3600){let n=st({presigning:!0}),i={Bucket:xe(t),Key:Ee(e)},o=await(0,SS.getSignedUrl)(n,new Cu.GetObjectCommand(i),{expiresIn:r});if(E.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${sp}${u}${c}`}else return o}s(ln,"getPresignedUrl");async function Pv(t,e){return await Yt.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=xe(t),e=Ee(e);let n=await DS(t,e),i=(0,Or.join)(cn(),(0,np.v4)());return r.addTags({outputPath:i}),n instanceof bu.default.Readable?(r.addTags({stream:!0}),await(0,Js.pipeline)(n,ui.default.createWriteStream(i))):(r.addTags({stream:!1}),ui.default.writeFileSync(i,n)),i})}s(Pv,"retrieveToTmp");async function Nv(t,e,r){return await Yt.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Or.join)(cn(),(0,np.v4)());await zs.default.mkdir(i,{recursive:!0});let o=0;return await _t.parallelForeach(op(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await Yt.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let{stream:d}=await Du(t,l),f=l.split("/"),h=f.slice(0,f.length-1),p=(0,Or.join)(i,...h);f.length>1&&!ui.default.existsSync(p)&&await zs.default.mkdir(p,{recursive:!0}),await(0,Js.pipeline)(d,ui.default.createWriteStream((0,Or.join)(i,...f),{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(Nv,"retrieveDirectory");async function Uv(t,e){let r=st();await Zs(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(Uv,"deleteFile");async function Lv(t,e){let r=st();await Zs(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ee(i)}))}};return r.deleteObjects(n)}s(Lv,"deleteFiles");async function RS(t,e){t=xe(t),e=Ee(e);let r=st(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return RS(t,e)}s(RS,"deleteFolder");async function ap(t,e,r){return await Yt.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=xe(t);let i=await zs.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=Ee((0,Or.join)(r,o.name)),u=(0,Or.join)(e,o.name);o.isDirectory()?await ap(t,u,a):await wS({bucket:t,filename:a,stream:ui.default.createReadStream(u)})}return i})}s(ap,"uploadDirectory");async function Mv(t,e,r={}){e=Ee(e);let n=await(0,tp.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,Js.pipeline)(n.body,ip.default.createUnzip(),rp.default.extract(e))}s(Mv,"downloadTarballDirect");async function kv(t,e,r){e=xe(e),r=Ee(r);let n=await(0,tp.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Or.join)(cn(),r);return await(0,Js.pipeline)(n.body,ip.default.createUnzip(),rp.default.extract(i)),!E.isTest()&&E.SELF_HOSTED&&await ap(e,i,r),i}s(kv,"downloadTarball");async function Du(t,e){return await Yt.default.trace("getReadStream",async r=>{t=xe(t),e=Ee(e),r.addTags({bucketName:t,path:e});let n=st(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof bu.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(Du,"getReadStream");async function Fv(t,e){t=xe(t),e=Ee(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(Fv,"getObjectMetadata");async function Bv(t,e){t=xe(t),e=Ee(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode)===404)return!1;throw i}}s(Bv,"objectExists");function Xf(t){let e=t.split("?")[0],r=new RegExp(`^${sp}/(?<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(Xf,"extractBucketAndPath");var bS=B(require("querystring"));var CS=B(require("aws-cloudfront-sign"));var xu;function Wv(){if(!E.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return xu||(xu=Buffer.from(E.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),xu)}s(Wv,"getPrivateKey");var $v=s(()=>({keypairId:E.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:Wv(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),ci=s(t=>{let e=Gv(t);return CS.getSignedUrl(e,$v())},"getPresignedUrl"),Gv=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${E.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function Vv(t){return`${Ee(t)}/budibase-client.js`}s(Vv,"clientLibraryPath");function qv(t,e){return`${Ee(t)}/${e}`}s(qv,"client3rdPartyLibrary");async function Kv(t,e){return`/api/assets/${t}/client?${await xS(e)}`}s(Kv,"clientLibraryUrl");async function xS(t){let e,r;try{e=$()}finally{r={version:t}}return e&&e!==ae&&(r.tenantId=e),bS.default.encode(r)}s(xS,"getClientCacheKey");async function vS(t){return E.CLOUDFRONT_CDN?ci(t):await ln(E.APPS_BUCKET_NAME,t)}s(vS,"getAppFileUrl");async function Qv(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await vS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(Qv,"enrichPWAImages");var jv=s(async(t,e,r)=>{let n=PS(t,e);return E.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ci(n)):await ln(E.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),PS=s((t,e)=>{let r=`${t}/${e}`;return E.MULTI_TENANCY&&(r=`${$()}/${r}`),r},"getGlobalFileS3Key");async function Yv(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await Hv(e),n=await zv(e);return{...e,jsUrl:r,iconUrl:n}}))}s(Yv,"enrichPluginURLs");async function Hv(t){let e=US(t);return NS(e)}s(Hv,"getPluginJSUrl");async function zv(t){let e=LS(t);if(e)return NS(e)}s(zv,"getPluginIconUrl");async function NS(t){return E.CLOUDFRONT_CDN?ci(t):await ln(E.PLUGIN_BUCKET_NAME,t)}s(NS,"getPluginUrl");function US(t){return MS(t,"plugin.min.js")}s(US,"getPluginJSKey");function LS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return MS(t,e)}s(LS,"getPluginIconKey");function MS(t,e){return`${kS(t.name)}/${e}`}s(MS,"getPluginS3Key");function kS(t){let e=`${t}`;return E.MULTI_TENANCY&&(e=`${$()}/${e}`),E.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(kS,"getPluginS3Dir");var WS="budibase.log",$S="budibase-logs-history.txt",GS=lp.default.join(cn(),"systemlogs");function FS(t){return lp.default.join(GS,t)}s(FS,"getFullPath");function VS(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(VS,"getSingleFileMaxSizeInfo");function dp(){let t=VS(E.ROLLING_LOG_MAX_SIZE);return BS.createStream(WS,{size:t?.size,path:GS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:$S,initialRotation:!1})}s(dp,"localFileDestination");function Jv(){let t=[],e=FS($S);if(Xs.default.existsSync(e)){let i=Xs.default.readFileSync(e,"utf-8").split(`
|
|
37
|
-
`);for(let o of i.filter(a=>a))t.push(Xs.default.readFileSync(o))}return t.push(Xs.default.readFileSync(FS(WS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(Jv,"getLogReadStream");function Zv(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(Zv,"isPlainObject");function Xv(t){return t instanceof Error}s(Xv,"isError");function eP(t){return typeof t=="string"}s(eP,"isMessage");var Ir;if(!E.DISABLE_PINO_LOGGER){let t=E.LOG_LEVEL,e={level:t,formatters:{level:c=>({level:c.toUpperCase()}),bindings:()=>E.SELF_HOSTED?{service:E.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(E.isDev()?{stream:(0,qS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),E.SELF_HOSTED&&r.push({stream:dp(),level:t}),Ir=r.length?(0,vu.default)(e,vu.default.multistream(r)):(0,vu.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(g=>{eP(g)&&(f=`${f} ${g}`.trimStart()),Zv(g)&&d.push(g),Xv(g)&&(l=g)});let h=u(),p={};p={tenantId:i(),appId:o(),automationId:a(),identityId:h?._id,identityType:h?.type,correlationId:Zf()};let S=pp.default.scope().active();S&&pp.default.inject(S.context(),KS.formats.LOG,p);let m={err:l,pid:process.pid,...p};if(d.length){let g={},y=0;for(let I=0;I<d.length;I++){let O=d[I],w=O._logKey;w?(delete O._logKey,m[w]=O):(g[y]=O,y++)}Object.keys(g).length&&(m.data=g)}return[m,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Ir?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Ir?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Ir?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Ir?.debug(l,d)};let i=s(()=>{let c;try{c=$()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=be()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=Tf()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=$t()}catch{}return c},"getIdentity")}var Pu=Ir;var tP=["AccountError"];function rP(t){return t&&t.suppressAlert}s(rP,"isSuppressed");function dn(t,e){e&&tP.includes(e.name)&&rP(e)||console.error(`bb-alert: ${t}`,e)}s(dn,"logAlert");function nP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,dn(t,n)}s(nP,"logAlertWithInfo");function li(t,e){console.warn(`bb-warn: ${t}`,e)}s(li,"logWarn");var Nu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},mp=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 gt(e,{maxStalledCount:a,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:o}}),this._queue.process(async(u,c)=>{try{let l=await this.processFn(u.data);c?.(null,l)}catch(l){l instanceof Nu&&await u.discard(),dn(`Failed to process job in ${this._queue.name}`,l),c?.(l)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await Le.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var iP=100,Uu,to=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new gt("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=Re(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},Ep=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await to.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function QS(){return Uu=new to().init(),Uu}s(QS,"init");function sP(){return Uu||QS()}s(sP,"getProcessor");var no={};P(no,{CacheKey:()=>ye,TTL:()=>mn,bustCache:()=>di,destroy:()=>ro,get:()=>hn,keys:()=>Lu,store:()=>Ht,withCache:()=>wr,withCacheWithDynamicTTL:()=>jS});function Ct(t){let e=$();return`${t}:${e}`}s(Ct,"generateTenantKey");var fn=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Rf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ct(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Ct(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[Ct(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ct(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(Ct(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Ct(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var pn=new fn,ye={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:t=>`oauth2Token_${t}`},mn=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(mn||{}),Lu=s((...t)=>pn.keys(...t),"keys"),hn=s((...t)=>pn.get(...t),"get"),Ht=s((...t)=>pn.store(...t),"store"),ro=s((...t)=>pn.delete(...t),"destroy"),wr=s((...t)=>pn.withCache(...t),"withCache"),jS=s((...t)=>pn.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),di=s((...t)=>pn.bustCache(...t),"bustCache");var Ap={};P(Ap,{createCode:()=>pP,deleteCode:()=>hP,getCode:()=>mP,getExistingInvites:()=>Sp,getInviteCodes:()=>XS,updateCode:()=>fP});var gn={};P(gn,{AUTO_EXTEND_POLLING_MS:()=>zS,doWithLock:()=>io,newRedlock:()=>En});var HS=B(require("redlock"));async function oP(t,e){if(t==="custom")return En(e);switch(t){case"try_once":return En(fi.TRY_ONCE);case"try_twice":return En(fi.TRY_TWICE);case"default":return En(fi.DEFAULT);case"delay_500":return En(fi.DELAY_500);case"auto_extend":return En(fi.AUTO_EXTEND);default:throw _t.unreachable(t)}}s(oP,"getClient");var fi={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function En(t={}){let e={...fi.DEFAULT,...t},n=(await bf()).client;return new HS.default([n],e)}s(En,"newRedlock");function aP(t){let r=`lock:${t.systemLock?"system":$()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(aP,"getLockName");var zS=pe.fromSeconds(10).toMs();async function io(t,e){let r=await oP(t.type,t.customOptions),n,i;try{let o=aP(t),a=t.type==="auto_extend"?zS:t.ttl;if(n=await r.lock(o,a),t.type==="auto_extend"){let c=s(()=>{i=setTimeout(async()=>{n=await n.extend(a,()=>t.onExtend&&t.onExtend()),c()},a/2)},"extendInIntervals");c()}return{executed:!0,result:await e()}}catch(o){if(o.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw o}else throw o}finally{clearTimeout(i),await n?.unlock()}}s(io,"doWithLock");var yp=pe.fromDays(7).toSeconds(),cP=pe.fromSeconds(10).toMs(),Mu="Invitation is not valid or has expired, please request a new one.";function JS(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(JS,"normaliseInviteList");function lP(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(lP,"pruneExpiredInvites");async function Tp(t){let r=await(await Ns()).get(t);return JS(r,t)}s(Tp,"loadInviteList");async function so(t,e){await(await Ns()).store(t,e)}s(so,"saveInviteList");async function oo(t,e){let{result:r}=await io({type:"default",name:"process_user_invite",systemLock:!0,resource:t,ttl:cP},e);return r}s(oo,"withInviteListLock");function dP(t,e){return{code:t,email:e.email,info:e.info}}s(dP,"toInviteWithCode");async function ZS(t,e){let r=await Ns(),n=JS(await r.get(e),e);if(!n)throw new Error(Mu);if(!Object.keys(n.invites).includes(t))throw new Error(Mu);return{list:n,invite:n.invites[t]}}s(ZS,"findInviteInList");async function fP(t,e){let r=await ri();await r.exists(t)&&await r.store(t,e,yp);let i={...e.info},o=i.tenantId||$();i.tenantId=o,await oo(o,async()=>{let a=await Tp(o)||{tenantId:o,invites:{}};a.invites[t]={email:e.email,info:i,expiresAt:Date.now()+yp*1e3},await so(o,a)})}s(fP,"updateCode");async function pP(t,e){let r=ee(),n={...e||{}},i=n.tenantId||$();return n.tenantId=i,await oo(i,async()=>{let o=await Tp(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+yp*1e3},await so(i,o)}),r}s(pP,"createCode");async function mP(t,e){let n=await(await ri()).get(t);if(n)return n;let i=e||$();return await oo(i,async()=>{let o=await ZS(t,i),{list:a,invite:u}=o;if(u.expiresAt<=Date.now())throw delete a.invites[t],await so(a.tenantId,a),new Error(Mu);return{email:u.email,info:u.info}})}s(mP,"getCode");async function hP(t,e){await(await ri()).delete(t);let n=e||$();try{await oo(n,async()=>{let i=await ZS(t,n);delete i.list.invites[t],await so(i.list.tenantId,i.list)})}catch(i){if(i instanceof Error&&i.message===Mu)return;throw i}}s(hP,"deleteCode");async function XS(){let t=$(),e=await oo(t,async()=>{let o=await Tp(t)||{tenantId:t,invites:{}},a=lP(o);return o=a.list,a.changed&&await so(t,o),o}),r=new Map;for(let[o,a]of Object.entries(e.invites))r.set(o,dP(o,a));let i=await(await ri()).scan();for(let o of i)o?.value?.info&&(E.MULTI_TENANCY&&o.value.info.tenantId!==t||r.has(o.key)||r.set(o.key,{...o.value,code:o.key}));return Array.from(r.values())}s(XS,"getInviteCodes");async function Sp(t){return(await XS()).filter(e=>t.includes(e.email))}s(Sp,"getExistingInvites");var _p={};P(_p,{createCode:()=>gP,getCode:()=>yP,invalidateCode:()=>TP});var EP=pe.fromHours(1).toSeconds();async function gP(t,e){let r=ee();return await(await Us()).store(r,{userId:t,info:e},EP),r}s(gP,"createCode");async function yP(t){let r=await(await Us()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(yP,"getCode");async function TP(t){await(await Us()).delete(t)}s(TP,"invalidateCode");var br={};P(br,{getUser:()=>Co,getUsers:()=>YL,invalidateUser:()=>bo});var ao={};P(ao,{getPlatformDB:()=>Dr,users:()=>yt});var yt={};P(yt,{addSsoUser:()=>tA,addUser:()=>wP,getUserDoc:()=>eA,lookupTenantId:()=>SP,removeUser:()=>DP,updateUserDoc:()=>AP});function Dr(){return Re(fe.PLATFORM_INFO.name)}s(Dr,"getPlatformDB");async function SP(t){return E.MULTI_TENANCY?(await eA(t)).tenantId:ae}s(SP,"lookupTenantId");async function eA(t){return Dr().get(t)}s(eA,"getUserDoc");async function AP(t){await Dr().put(t)}s(AP,"updateUserDoc");function _P(t,e){return{_id:t,tenantId:e}}s(_P,"newUserIdDoc");function OP(t,e,r){return{_id:e,userId:t,tenantId:r}}s(OP,"newUserEmailDoc");function IP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(IP,"newUserSsoIdDoc");async function Op(t,e){let r=Dr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s(Op,"addUserDoc");async function tA(t,e,r,n){return Op(t,()=>IP(t,e,r,n))}s(tA,"addSsoUser");async function wP(t,e,r,n){let i=[Op(e,()=>_P(e,t)),Op(r,()=>OP(e,r,t))];n&&i.push(tA(n,r,e,t)),await Promise.all(i)}s(wP,"addUser");async function DP(t){let e=Dr(),r=[t._id,t.email],n=await e.allDocs({keys:r,include_docs:!0});await e.bulkRemove(n.rows.map(i=>i.doc),{silenceErrors:!0})}s(DP,"removeUser");var yn={};P(yn,{getAccount:()=>Rr,getAccountByTenantId:()=>pi,getStatus:()=>RP});var rA=B(require("node-fetch"));var uo=class{static{s(this,"API")}constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Ys.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,rA.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 Ip=new uo(E.INTERNAL_ACCOUNT_PORTAL_URL),wp=E.SELF_HOSTED||E.DISABLE_ACCOUNT_PORTAL,Rr=s(async t=>{if(wp)return;let e={email:t},r=await Ip.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"),pi=s(async t=>{if(wp)return;let e={tenantId:t},r=await Ip.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(wp)return;let t=await Ip.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 yi={};P(yi,{UserDB:()=>xt,addAppBuilder:()=>qL,bulkGetGlobalUsersById:()=>oc,bulkUpdateGlobalUsers:()=>wo,cleanseUserObject:()=>jp,creatorsInList:()=>An,doesUserExist:()=>BL,getAccountHolderFromUsers:()=>sc,getAllUserIds:()=>kL,getAllUsers:()=>FL,getById:()=>_n,getCreatorCount:()=>GL,getExistingAccounts:()=>gi,getExistingPlatformUsers:()=>qA,getExistingTenantUsers:()=>VA,getFirstPlatformUser:()=>Oo,getGlobalUserByAppPage:()=>JA,getGlobalUserByEmail:()=>At,getPlatformUsers:()=>tc,getUserCount:()=>$L,hasAdminPermissions:()=>Cr,hasAppBuilderPermissions:()=>jA,hasBuilderPermissions:()=>Fe,isAdmin:()=>bt,isAdminOrBuilder:()=>QA,isAdminOrWorkspaceBuilder:()=>rc,isBuilder:()=>Ai,isCreatorAsync:()=>Io,isCreatorSync:()=>nc,isGlobalBuilder:()=>KA,paginatedUsers:()=>XA,removeAppBuilder:()=>KL,removePortalUserPermissions:()=>VL,searchExistingEmails:()=>Gp,searchGlobalUsersByApp:()=>zA,searchGlobalUsersByAppAccess:()=>Qp,searchGlobalUsersByEmail:()=>ZA,validateUniqueUser:()=>ic});var Ku={};P(Ku,{ActiveContentFileError:()=>Bu,BadRequestError:()=>lo,BudibaseError:()=>co,EmailUnavailableError:()=>zt,FeatureDisabledError:()=>Gu,ForbiddenError:()=>Wu,HTTPError:()=>ke,NotFoundError:()=>Fu,NotImplementedError:()=>$u,UnexpectedError:()=>ku,UsageLimitError:()=>Vu,getErrorMessage:()=>nA,getPublicError:()=>qu});var co=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"BudibaseError")}};function nA(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(nA,"getErrorMessage");var qu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),ke=class t extends co{constructor(r,n,i="http"){super(r,i);this.status=n}static{s(this,"HTTPError")}static async fromResponse(r){let n=await r.text(),i=n,o=r.status,a="http";try{let u=JSON.parse(n);i=u.message,o=u.status,a=u.error?.code}catch{}return new t(i,o,a)}},ku=class extends ke{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},Fu=class extends ke{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},lo=class extends ke{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},Bu=class extends lo{static{s(this,"ActiveContentFileError")}constructor(e){super(`File "${e}" contains active content which is not permitted`)}},Wu=class extends ke{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},$u=class extends ke{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},Gu=class extends Error{static{s(this,"FeatureDisabledError")}constructor(e){super(`Feature disabled: '${e}'`)}},Vu=class extends Error{static{s(this,"UsageLimitError")}constructor(e){super(`Usage limit exceeded: '${e}'`)}},zt=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var bp={};P(bp,{PASSWORD_MAX_LENGTH:()=>Rp,PASSWORD_MIN_LENGTH:()=>Dp,validatePassword:()=>Cp});var Dp=+(E.PASSWORD_MIN_LENGTH||12),Rp=+(E.PASSWORD_MAX_LENGTH||512);function Cp(t){return!t||t.length<Dp?{valid:!1,error:`Password invalid. Minimum ${Dp} characters.`}:t.length>Rp?{valid:!1,error:`Password invalid. Maximum ${Rp} characters.`}:{valid:!0}}s(Cp,"validatePassword");var Qu={};P(Qu,{createASession:()=>CP,endSession:()=>bP,getSession:()=>vp,getSessionsForUser:()=>fo,invalidateSessions:()=>Tn,updateSessionTTL:()=>xp});var sA=require("uuid");var oA=E.SESSION_EXPIRY_SECONDS?parseInt(E.SESSION_EXPIRY_SECONDS):pe.fromDays(7).toSeconds();function mi(t,e){return`${t}/${e}`}s(mi,"makeSessionID");async function fo(t){return t?(await(await yr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(fo,"getSessionsForUser");async function Tn(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await fo(t)).map(a=>({key:mi(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:mi(t,o)}))),i&&i.length>0){let o=await yr(),a=[];for(let u of i)a.push(o.delete(u.key));E.isTest()||li(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(Tn,"invalidateSessions");async function CP(t,e){let r=await fo(t),n=0;if(r.length>=3){let l=r.sort((h,p)=>new Date(h.createdAt).getTime()-new Date(p.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(h=>h.sessionId);n=f.length,await Tn(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await yr(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,sA.v4)(),u=mi(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,oA),{session:c,invalidatedSessionCount:n}}s(CP,"createASession");async function xp(t){let e=await yr(),r=mi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,oA)}s(xp,"updateSessionTTL");async function bP(t,e){await(await yr()).delete(mi(t,e))}s(bP,"endSession");async function vp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await yr()).get(mi(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(vp,"getSession");var Ei={};P(Ei,{account:()=>yA,action:()=>TA,ai:()=>SA,analytics:()=>Yu,app:()=>AA,asyncEventQueue:()=>Tt,auditLog:()=>_A,auth:()=>ec,automation:()=>OA,backfill:()=>IA,backfillCache:()=>Ju,backup:()=>wA,datasource:()=>DA,email:()=>RA,environmentVariable:()=>CA,group:()=>bA,identification:()=>St,initAsyncEvents:()=>IL,installation:()=>go,layout:()=>xA,license:()=>vA,org:()=>PA,plugin:()=>NA,processors:()=>kp,publishEvent:()=>A,query:()=>UA,resource:()=>LA,role:()=>_o,rowAction:()=>MA,rows:()=>kA,screen:()=>FA,serve:()=>BA,shutdown:()=>wL,table:()=>WA,user:()=>Be,view:()=>$A,workspace:()=>GA});var Yu={};P(Yu,{enabled:()=>ju});var ju=s(async()=>Hu(),"enabled");var Tt;function zu(){Tt=new gt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}s(zu,"init");async function aA(){Tt&&await Tt.close()}s(aA,"shutdown");async function uA(t){Tt||zu();let{event:e,identity:r}=t;Qm.indexOf(e)!==-1&&r.tenantId&&await Tt.add(t)}s(uA,"publishAsyncEvent");var Ju={};P(Ju,{end:()=>vP,isAlreadySent:()=>Up,isBackfillingEvent:()=>Np,recordEvent:()=>Pp,start:()=>xP});var xP=s(async t=>NP({eventWhitelist:t}),"start"),Pp=s(async(t,e)=>{let r=Lp(t,e);await Ht(r,e,void 0,{useTenancy:!1})},"recordEvent"),vP=s(async()=>{await UP(),await LP()},"end"),PP=s(async()=>hn(ye.BACKFILL_METADATA),"getBackfillMetadata"),NP=s(async t=>Ht(ye.BACKFILL_METADATA,t),"saveBackfillMetadata"),UP=s(async()=>{await ro(ye.BACKFILL_METADATA)},"deleteBackfillMetadata"),LP=s(async()=>{let t=Lp(),e=await Lu(t);for(let r of e)await ro(r,{useTenancy:!1})},"clearEvents"),Np=s(async t=>{let r=(await PP())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),Up=s(async(t,e)=>{let r=Lp(t,e);return!!await hn(r,{useTenancy:!1})},"isAlreadySent"),MP={"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}`},Lp=s((t,e)=>{let r,n=$();if(t){r=`${ye.EVENTS}:${n}:${t}`;let i=MP[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${ye.EVENTS}:${n}:*`;return r},"getEventKey");var kp={};P(kp,{analyticsProcessor:()=>hA,init:()=>QP,processors:()=>Zt});var pA=require("posthog-node");var kP=s(t=>t==="served:builder"||t==="served:app:preview"||t==="served:app","isRateLimited"),FP=s(t=>t==="served:app:preview"||t==="served:app","isPerApp");var lA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},dA=s(async t=>{if(!kP(t))return!1;let e=await BP(t);if(e){let r=new Date(e.timestamp);switch(lA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await cA(t,{timestamp:Date.now()}),!1):!0}}else return await cA(t,{timestamp:Date.now()}),!1},"limited"),fA=s(t=>{let e=`${ye.EVENTS_RATE_LIMIT}:${t}`;return FP(t)&&(e=e+":"+be()),e},"eventKey"),BP=s(async t=>{let e=fA(t);return await hn(e)},"readEvent"),cA=s(async(t,e)=>{let r=fA(t),n=lA[t],i;switch(n){case"calendarDay":i=86400}await Ht(r,e,i)},"recordEvent");var $P=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],po=class{static{s(this,"PosthogProcessor")}constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new pA.PostHog(e)}async processEvent(e,r,n,i){if($P.includes(e)||await dA(e))return;n=this.clearPIIProperties(n),n.version=E.VERSION,n.service=E.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let o=be();o&&(n.appId=o);let a={distinctId:r.id,event:e,properties:n};i&&(a.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(a.groups={},r.installationId&&(a.groups.installation=r.installationId,a.properties.installationId=r.installationId),r.tenantId&&(a.groups.tenant=r.tenantId,a.properties.tenantId=r.tenantId)),this.posthog.capture(a)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}async shutdown(){await this.posthog.shutdown()}};var mA=po;var GP=["installation:version:upgraded","installation:version:downgraded"],VP=["installation","tenant"],mo=class{static{s(this,"AnalyticsProcessor")}constructor(){E.POSTHOG_TOKEN&&!E.isTest()&&(this.posthog=new mA(E.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!GP.includes(e)&&!await ju()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!VP.includes(e.type)&&!await ju()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}async shutdown(){this.posthog&&await this.posthog.shutdown()}};var Mp=E.SELF_HOSTED&&!E.isDev(),ho=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){Mp||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Mp||console.log("[audit] identified",e)}async identifyGroup(e){Mp||console.log("[audit] group identified",e)}async shutdown(){}};var hi=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new gt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Ce(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};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&&Vf(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:be(),hostInfo:r.hostInfo},tenantId:$()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var Eo=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var hA=new mo,qP=new ho,KP=new hi;function QP(t){return hi.init(t)}s(QP,"init");var Zt=new Eo([hA,qP,KP]);var Zu={};P(Zu,{checkInstallVersion:()=>HP,getInstall:()=>yo,getInstallFromDB:()=>Bp});var Fp=B(require("semver"));var yo=s(async()=>wr(ye.INSTALLATION,86400,Bp,{useTenancy:!1}),"getInstall");async function jP(t){let e={_id:fe.PLATFORM_INFO.docs.install,installId:ee(),version:E.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Bp();throw r}}s(jP,"createInstallDoc");var Bp=s(async()=>je(fe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(fe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await jP(t);else throw r}return e}),"getInstallFromDB"),YP=s(async t=>{try{await je(fe.PLATFORM_INFO.name,async e=>{let r=await yo();r.version=t,await e.put(r),await di(ye.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),HP=s(async()=>{let t=await yo(),e=t.version,r=E.VERSION;try{if(e!==r){let n=Fp.default.gt(r,e),i=Fp.default.lt(r,e);await YP(r)&&(await Ds({_id:t.installId,type:"installation"},async()=>{n?await go.upgraded(e,r):i&&await go.downgraded(e,r)}),await St.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?dn(`Invalid version "${r}" - is it semver?`):dn("Failed to retrieve version",n)}},"checkInstallVersion");var zP=s(async()=>{let t=ef(),e=Ao(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await Sn(),i=To();return{id:EA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await Sn(),i=await Xu($()),o=To();return{id:EA(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:$(),environment:e}}else if(r==="user"){let n=t,i=await Xu($()),o=await Sn(),a=n.account,u;return a?u=a.hosting:u=To(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:$(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),JP=s(async(t,e)=>{let r=t,n="installation",i=To(),o=E.VERSION,a=Ao(),u={id:r,type:n,hosting:i,version:o,environment:a};await Wp(u,e),await So({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),ZP=s(async(t,e,r,n=E.VERSION)=>{let i=await Xu(t),o="tenant",a=await Sn(),u=Ao(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await Wp(c,r),await So({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),XP=s(async(t,e,r)=>{let n=t._id,i=await Xu(t.tenantId),o="user",a=Fe(t),u=Cr(t),c;Qo(t)&&(c=t.providerType);let d=(await gi([t.email])).length>0,f=!!e&&d&&e.verified,h=await Sn(),p=e?e.hosting:To(),S=Ao();await So({id:n,type:o,hosting:p,installationId:h,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:S},r)},"identifyUser"),eN=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ko(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await Sn(),l=Ao();if(qo(t)){let f=await At(t.email);f?._id&&(e=f._id)}await So({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),So=s(async(t,e)=>{await Zt.identify(t,e)},"identify"),Wp=s(async(t,e)=>{await Zt.identifyGroup(t,e)},"identifyGroup"),Ao=s(()=>E.isDev()?"development":E.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),To=s(()=>E.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),Sn=s(async()=>tN()?"account-portal":(await yo()).installId,"getInstallationId"),Xu=s(async t=>E.SELF_HOSTED?gA(t):t,"getEventTenantId"),gA=s(async t=>Ce(t,()=>wr(ye.UNIQUE_TENANT_ID,86400,async()=>{let e=H(),r=await Ti(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ee()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=E.VERSION,await e.put(r),n)})),"getUniqueTenantId"),tN=s(()=>E.SERVICE==="account-portal","isAccountPortal"),EA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),St={getCurrentIdentity:zP,identifyInstallationGroup:JP,identifyTenantGroup:ZP,identifyUser:XP,identifyAccount:eN,identify:So,identifyGroup:Wp,getInstallationId:Sn,getUniqueTenantId:gA};var A=s(async(t,e,r,n)=>{let i=n||await St.getCurrentIdentity();if(!(n?!1:await Np(t))){await uA({event:t,identity:i,properties:e,timestamp:r}),await Zt.processEvent(t,i,e,r);return}await Up(t,e)||(await Zt.processEvent(t,i,e,r),await Pp(t,e))},"publishEvent");async function rN(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}s(rN,"created");async function nN(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}s(nN,"deleted");async function iN(t){let e={tenantId:t.tenantId};await A("account:verified",e)}s(iN,"verified");var yA={created:rN,deleted:nN,verified:iN};async function sN(t,e){console.info("action:automation_step:executed",`disabled. Action step ${t.stepId} not published at ${e}`)}s(sN,"automationStepExecuted");async function oN(t,e){console.info("action:automation_step:executed",`disabled. Action type ${t.type} not published at ${e}`)}s(oN,"crudExecuted");async function aN(t,e){console.info("action:automation_step:executed",`disabled. Execution for ai agent ${t.agentId} not published at ${e}`)}s(aN,"aiAgentExecuted");var TA={aiAgentExecuted:aN,automationStepExecuted:sN,crudExecuted:oN};async function uN(t){let e={};await A("ai:config:created",e,t)}s(uN,"AIConfigCreated");async function cN(){let t={};await A("ai:config:updated",t)}s(cN,"AIConfigUpdated");var SA={AIConfigCreated:uN,AIConfigUpdated:cN};var lN=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)},"created");async function dN(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}s(dN,"updated");async function fN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}s(fN,"deleted");async function pN(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}s(pN,"published");async function mN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}s(mN,"unpublished");async function hN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}s(hN,"fileImported");async function EN(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}s(EN,"duplicated");async function gN(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}s(gN,"templateImported");async function yN(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}s(yN,"versionUpdated");async function TN(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}s(TN,"versionReverted");async function SN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}s(SN,"reverted");async function AN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}s(AN,"exported");var AA={created:lN,updated:dN,deleted:fN,published:pN,unpublished:mN,fileImported:hN,duplicated:EN,templateImported:gN,versionUpdated:yN,versionReverted:TN,reverted:SN,exported:AN};async function _N(t){let e={filters:t};await A("audit_log:filtered",e)}s(_N,"filtered");async function ON(t){let e={filters:t};await A("audit_log:downloaded",e)}s(ON,"downloaded");var _A={filtered:_N,downloaded:ON};async function IN(t,e){let n={userId:(await St.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}s(IN,"login");async function wN(t){let r={userId:(await St.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}s(wN,"logout");async function DN(t,e){let r={type:t};await A("auth:sso:created",r,e)}s(DN,"SSOCreated");async function RN(t){let e={type:t};await A("auth:sso:updated",e)}s(RN,"SSOUpdated");async function CN(t,e){let r={type:t};await A("auth:sso:activated",r,e)}s(CN,"SSOActivated");async function bN(t){let e={type:t};await A("auth:sso:deactivated",e)}s(bN,"SSODeactivated");var ec={login:IN,logout:wN,SSOCreated:DN,SSOUpdated:RN,SSOActivated:CN,SSODeactivated:bN};async function xN(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}s(xN,"created");async function vN(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}s(vN,"triggerUpdated");async function PN(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}s(PN,"deleted");async function NN(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}s(NN,"tested");var UN=s(async(t,e)=>{let r={count:t};await A("automations:run",r,e)},"run");async function LN(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}s(LN,"stepCreated");async function MN(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}s(MN,"stepDeleted");var OA={created:xN,triggerUpdated:vN,deleted:PN,tested:NN,run:UN,stepCreated:LN,stepDeleted:MN};var Si=!E.SELF_HOSTED&&!E.isDev();async function kN(t){Si||await A("app:backfill:succeeded",t)}s(kN,"appSucceeded");async function FN(t){if(Si)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}s(FN,"appFailed");async function BN(t){Si||await A("tenant:backfill:succeeded",t)}s(BN,"tenantSucceeded");async function WN(t){if(Si)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}s(WN,"tenantFailed");async function $N(){if(Si)return;let t={};await A("installation:backfill:succeeded",t)}s($N,"installationSucceeded");async function GN(t){if(Si)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}s(GN,"installationFailed");var IA={appSucceeded:kN,appFailed:FN,tenantSucceeded:BN,tenantFailed:WN,installationSucceeded:$N,installationFailed:GN};async function VN(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}s(VN,"appBackupRestored");async function qN(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",o)}s(qN,"appBackupTriggered");var wA={appBackupRestored:VN,appBackupTriggered:qN};function $p(t){return!Object.values(Wo).includes(t.source)}s($p,"isCustom");async function KN(t,e){let r={datasourceId:t._id,source:t.source,custom:$p(t)};await A("datasource:created",r,e)}s(KN,"created");async function QN(t){let e={datasourceId:t._id,source:t.source,custom:$p(t)};await A("datasource:updated",e)}s(QN,"updated");async function jN(t){let e={datasourceId:t._id,source:t.source,custom:$p(t)};await A("datasource:deleted",e)}s(jN,"deleted");var DA={created:KN,updated:QN,deleted:jN};async function YN(t){let e={};await A("email:smtp:created",e,t)}s(YN,"SMTPCreated");async function HN(){let t={};await A("email:smtp:updated",t)}s(HN,"SMTPUpdated");var RA={SMTPCreated:YN,SMTPUpdated:HN};async function zN(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}s(zN,"created");async function JN(t){let e={name:t};await A("environment_variable:deleted",e)}s(JN,"deleted");async function ZN(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}s(ZN,"upgradePanelOpened");var CA={created:zN,deleted:JN,upgradePanelOpened:ZN};async function XN(t,e){let r={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await A("user_group:created",r,e)}s(XN,"created");async function eU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await A("user_group:updated",e)}s(eU,"updated");async function tU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await A("user_group:deleted",e)}s(tU,"deleted");async function rU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await A("user_group:user_added",n)}s(rU,"usersAdded");async function nU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await A("user_group:users_deleted",n)}s(nU,"usersDeleted");async function iU(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}s(iU,"createdOnboarding");async function sU(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}s(sU,"permissionsEdited");var bA={created:XN,updated:eU,deleted:tU,usersAdded:rU,usersDeleted:nU,createdOnboarding:iU,permissionsEdited:sU};async function oU(t){let e={currentVersion:t};await A("installation:version:checked",e)}s(oU,"versionChecked");async function aU(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}s(aU,"upgraded");async function uU(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}s(uU,"downgraded");async function cU(){let t={};await A("installation:firstStartup",t)}s(cU,"firstStartup");var go={versionChecked:oU,upgraded:aU,downgraded:uU,firstStartup:cU};async function lU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}s(lU,"created");async function dU(t){let e={layoutId:t};await A("layout:deleted",e)}s(dU,"deleted");var xA={created:lU,deleted:dU};async function fU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}s(fU,"planChanged");async function pU(t){let e={accountId:t.accountId};await A("license:activated",e)}s(pU,"activated");async function mU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}s(mU,"checkoutOpened");async function hU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}s(hU,"checkoutSuccess");async function EU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}s(EU,"portalOpened");async function gU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}s(gU,"paymentFailed");async function yU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}s(yU,"paymentRecovered");var vA={planChanged:fU,activated:pU,checkoutOpened:mU,checkoutSuccess:hU,portalOpened:EU,paymentFailed:gU,paymentRecovered:yU};async function TU(t){let e={};await A("org:info:name:updated",e,t)}s(TU,"nameUpdated");async function SU(t){let e={};await A("org:info:logo:updated",e,t)}s(SU,"logoUpdated");async function AU(t){let e={};await A("org:platformurl:updated",e,t)}s(AU,"platformURLUpdated");async function _U(){let t={};await A("analytics:opt:out",t)}s(_U,"analyticsOptOut");async function OU(){let t={};await A("analytics:opt:out",t)}s(OU,"analyticsOptIn");var PA={nameUpdated:TU,logoUpdated:SU,platformURLUpdated:AU,analyticsOptOut:_U,analyticsOptIn:OU};async function IU(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}s(IU,"init");async function wU(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}s(wU,"imported");async function DU(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}s(DU,"deleted");var NA={init:IU,imported:wU,deleted:DU};var RU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},"created"),CU=s(async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},"updated"),bU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await A("query:deleted",n)},"deleted"),xU=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},"imported"),vU=s(async(t,e)=>{let r={count:t};await A("queries:run",r,e)},"run"),PU=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},"previewed"),UA={created:RU,updated:CU,deleted:bU,imported:xU,run:vU,previewed:PU};async function NU({resource:t,fromWorkspace:e,toWorkspace:r},n){let i={resource:t,fromWorkspace:e,toWorkspace:r};await A("resource:copied_to_workspace",i,n)}s(NU,"duplicatedToWorkspace");var LA={duplicatedToWorkspace:NU};async function UU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}s(UU,"created");async function LU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}s(LU,"updated");async function MU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}s(MU,"deleted");async function kU(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}s(kU,"assigned");async function FU(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}s(FU,"unassigned");var _o={created:UU,updated:LU,deleted:MU,assigned:kU,unassigned:FU};async function BU(t,e){await A("row_action:created",t,e)}s(BU,"created");var MA={created:BU};var WU=s(async(t,e)=>{let r={count:t};await A("rows:created",r,e)},"created"),$U=s(async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},"imported"),kA={created:WU,imported:$U};async function GU(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}s(GU,"created");async function VU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}s(VU,"deleted");var FA={created:GU,deleted:VU};async function qU(t){let e={timezone:t};await A("served:builder",e)}s(qU,"servedBuilder");async function KU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}s(KU,"servedApp");async function QU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}s(QU,"servedAppPreview");var BA={servedBuilder:qU,servedApp:KU,servedAppPreview:QU};async function jU(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}s(jU,"created");async function YU(t,e){let r,n;for(let o in e.schema)if(!t.schema[o]){let a=e.schema[o];"default"in a&&a.default!=null&&(r=!0),a.type==="ai"&&(n=a.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}s(YU,"updated");async function HU(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}s(HU,"deleted");async function zU(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}s(zU,"exported");async function JU(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}s(JU,"imported");var WA={created:jU,updated:YU,deleted:HU,exported:zU,imported:JU};async function ZU(t,e){let r={userId:t._id,viaScim:Et(),audited:{email:t.email}};await A("user:created",r,e)}s(ZU,"created");async function XU(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await A("user:updated",e)}s(XU,"updated");async function eL(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await A("user:deleted",e)}s(eL,"deleted");async function tL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}s(tL,"permissionAdminAssigned");async function rL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}s(rL,"permissionAdminRemoved");async function nL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}s(nL,"permissionBuilderAssigned");async function iL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}s(iL,"permissionBuilderRemoved");async function sL(t){let e={audited:{email:t}};await A("user:invited",e)}s(sL,"invited");async function oL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}s(oL,"inviteAccepted");async function aL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}s(aL,"passwordForceReset");async function uL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}s(uL,"passwordUpdated");async function cL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}s(cL,"passwordResetRequested");async function lL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}s(lL,"passwordReset");async function dL(t){let e={users:t};await A("user:data:collaboration",e)}s(dL,"dataCollaboration");var Be={created:ZU,updated:XU,deleted:eL,permissionAdminAssigned:tL,permissionAdminRemoved:rL,permissionBuilderAssigned:nL,permissionBuilderRemoved:iL,invited:sL,inviteAccepted:oL,passwordForceReset:aL,passwordUpdated:uL,passwordResetRequested:cL,passwordReset:lL,dataCollaboration:dL};async function fL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}s(fL,"created");async function pL(t){let e={tableId:t.tableId};await A("view:updated",e)}s(pL,"updated");async function mL(t,e){let r={...Le.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}s(mL,"deleted");async function hL(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}s(hL,"exported");async function EL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}s(EL,"filterCreated");async function gL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}s(gL,"filterUpdated");async function yL(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}s(yL,"filterDeleted");async function TL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}s(TL,"calculationCreated");async function SL(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}s(SL,"calculationUpdated");async function AL(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}s(AL,"calculationDeleted");async function _L(t,e){let r={tableId:t};await A("view:join:created",r,e)}s(_L,"viewJoinCreated");var $A={created:fL,updated:pL,deleted:mL,exported:hL,filterCreated:EL,filterUpdated:gL,filterDeleted:yL,calculationCreated:TL,calculationUpdated:SL,calculationDeleted:AL,viewJoinCreated:_L};async function OL(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}s(OL,"deleted");var GA={deleted:OL};function IL(){}s(IL,"initAsyncEvents");var wL=s(async()=>{await Zt.shutdown(),console.log("Events shutdown")},"shutdown");var Vp={};P(Vp,{creatorsInList:()=>An,getAccountHolderFromUsers:()=>sc,hasAdminPermissions:()=>Cr,hasAppBuilderPermissions:()=>jA,hasBuilderPermissions:()=>Fe,isAdmin:()=>bt,isAdminOrBuilder:()=>QA,isAdminOrWorkspaceBuilder:()=>rc,isBuilder:()=>Ai,isCreatorAsync:()=>Io,isCreatorSync:()=>nc,isGlobalBuilder:()=>KA,validateUniqueUser:()=>ic});async function Gp(t){let e=[],r=await VA(t);e.push(...r.map(a=>a.email));let n=await qA(t);e.push(...n.map(a=>a._id));let i=await gi(t);e.push(...i.map(a=>a.email));let o=await Sp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(Gp,"searchExistingEmails");async function tc(t){return await Bs("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(tc,"getPlatformUsers");async function Oo(t){return(await tc(t))[0]??null}s(Oo,"getFirstPlatformUser");async function VA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await qt("by_email2",r,void 0,n)}s(VA,"getExistingTenantUsers");async function qA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Bs("platform_users_lowercase_2",r)}s(qA,"getExistingPlatformUsers");async function gi(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Bs("account_by_email",r)}s(gi,"getExistingAccounts");var Ai=Me.users.isBuilder,bt=Me.users.isAdmin,KA=Me.users.isGlobalBuilder,QA=Me.users.isAdminOrBuilder,Cr=Me.users.hasAdminPermissions,Fe=Me.users.hasBuilderPermissions,jA=Me.users.hasAppBuilderPermissions,rc=Me.users.isAdminOrWorkspaceBuilder;async function An(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await H().getMultiple(r,{allowMissing:!0}),t.map(i=>nc(i,e))}s(An,"creatorsInList");async function Io(t){let e=[];return t.userGroups&&(e=await H().getMultiple(t.userGroups)),nc(t,e)}s(Io,"isCreatorAsync");function nc(t,e){let r=Me.users.isCreator(t);return!r&&t?DL(t,e):r}s(nc,"isCreatorSync");function DL(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(DL,"isCreatorByGroupMembership");async function ic(t,e){if(E.MULTI_TENANCY){let r=await Oo(t);if(r!=null&&r.tenantId!==e)throw new zt(t)}if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let r=await Rr(t);if(r&&r.verified&&r.tenantId!==e)throw new zt(t)}}s(ic,"validateUniqueUser");async function sc(t){if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let e=await gi(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(sc,"getAccountHolderFromUsers");var qp=s(async t=>{await Be.deleted(t),Fe(t)&&await Be.permissionBuilderRemoved(t),Cr(t)&&await Be.permissionAdminRemoved(t)},"handleDeleteEvents"),RL=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await _o.assigned(t,i)},"assignAppRoleEvents"),CL=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await _o.unassigned(t,i)},"unassignAppRoleEvents"),bL=s(async(t,e)=>{let r=t.roles,n=e?.roles;await RL(t,r,n),await CL(t,r,n)},"handleAppRoleEvents"),Kp=s(async(t,e)=>{let r=$(),n;!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL&&(n=await pi(r)),await St.identifyUser(t,n),e?(await Be.updated(t),vL(t,e)&&await Be.permissionBuilderRemoved(t),NL(t,e)&&await Be.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Be.passwordForceReset(t),t.password!==e.password&&await Be.passwordUpdated(t)):await Be.created(t),xL(t,e)&&await Be.permissionBuilderAssigned(t),PL(t,e)&&await Be.permissionAdminAssigned(t),await bL(t,e)},"handleSaveEvents"),xL=s((t,e)=>YA(t,e,Fe),"isAddingBuilder"),vL=s((t,e)=>HA(t,e,Fe),"isRemovingBuilder"),PL=s((t,e)=>YA(t,e,Cr),"isAddingAdmin"),NL=s((t,e)=>HA(t,e,Cr),"isRemovingAdmin"),YA=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),HA=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var LL=s(async t=>{let e=t._id;await yt.removeUser(t),await qp(t),await br.invalidateUser(e),await Tn(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),xt=class t{static{s(this,"UserDB")}static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return E.ENABLE_SSO_MAINTENANCE_MODE&&bt(e)?!1:await t.features.isSSOEnforced()||Qo(e)?!0:(r||(r=await pi($())),!!(r&&r.email===e.email&&Ko(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 ke("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=Cp(a);if(!f.valid)throw new ke(f.error,400)}c=r.hashPassword?await Zd(a):a}else i&&(c=i.password);let l=r.requirePassword&&!await t.features.isSSOEnforced();if(!c&&l)throw"Password must be specified.";u=u||ni();let d={createdAt:Date.now(),...i,...e,_id:u,password:c,tenantId:n};return d.roles||(d.roles={}),d.status==null&&(d.status="active"),d}static async allUsers(){return(await H().allDocs(on(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByWorkspace(e){if(typeof e!="string"||!e)throw new Error("Must provide a string based workspace ID");return{userCount:(await Ws("by_app",ii(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await Qp(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return At(e)}static async getUser(e){let r=await _n(e);return r&&delete r.password,r}static async bulkGet(e){return await oc(e)}static async bulkUpdate(e){return await wo(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=$(),i=H(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await _n(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!l&&o&&(l=await At(o),l&&l._id!==a))throw new zt(o);let d=1,f=0;if((r.isAccountHolder||l)&&(d=0,f=1),l){let[m,g]=await An([l,e]);f=m!==g?1:0}let h=!l,p=!!l&&!!o&&l.email!==o,S=!r.isAccountHolder&&!!o&&(h||p);return t.quotas.addUsers(d,f,async()=>{S&&await ic(o,n);let m=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(m=jp(m,l)),!l&&c?.length&&(m.roles={...c});let g=[];if(!a&&u.length>0)for(let y of u)g.push(t.groups.addUsers(y,[m._id]));try{let y=await i.put(m);return m._rev=y.rev,await Kp(m,l),l&&m.email!==l.email&&await yt.removeUser({email:l.email}),await yt.addUser(n,m._id,m.email,m.ssoId),await br.invalidateUser(y.id),await Promise.all(g),i.get(m._id)}catch(y){throw y.status===409?"User exists already":y}})}static async bulkCreate(e,r){let n=$(),i=[],o=[],a=[],u=e.map(h=>h.email),c=await Gp(u),l=[];for(let h of e){let p=o.find(m=>m.email.toLowerCase()===h.email.toLowerCase()),S=c.includes(h.email.toLowerCase());if(p||S){l.push({email:h.email,reason:"Unavailable"});continue}h.userGroups=r||[],o.push(h),await Io(h)&&a.push(h)}let d=await pi(n),f=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let S of o)f&&delete S.password,i.push(t.buildUser(S,{hashPassword:!0,requirePassword:!f},n,void 0,d));let h=await Promise.all(i);await wo(h);for(let S of h)await yt.addUser(n,S._id,S.email),await Kp(S,void 0);let p=h.map(S=>({_id:S._id,email:S.email}));if(Array.isArray(p)&&r){let S=[],m=p.map(g=>g._id);for(let g of r)S.push(t.groups.addUsers(g,m));await Promise.all(S)}return{successful:p,unsuccessful:l}})}static async bulkDelete(e){let r=H(),n={successful:[],unsuccessful:[]},i=await sc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),u=a.map(p=>({...p,_deleted:!0})),c=await wo(u),d=(await An(a)).filter(p=>p).length,f=[];for(let p of a){let m=(await Oo(p._id)).ssoId;m&&(await tc(m)).filter(y=>y.ssoId==null).forEach(y=>{f.push({...y,_deleted:!0})}),await LL(p)}await Dr().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let h={};return a.reduce((p,S)=>(p[S._id]=S,p),h),c.forEach(p=>{let S=h[p.id].email;p.ok?n.successful.push({_id:p.id,email:S}):n.unsuccessful.push({_id:p.id,email:S,reason:"Database error"})}),n}static async destroy(e){let r=H(),n=await r.get(e),i=n._id;if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Rr(a))throw n.userId===$t()._id?new ke('Please visit "Account" to delete this user',400):new ke("Account holder cannot be deleted",400)}await yt.removeUser(n),await r.remove(i,n._rev);let o=await Io(n)?1:0;await t.quotas.removeUsers(1,o),await qp(n),await br.invalidateUser(i),await Tn(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,o={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(o.ssoId=n.ssoId),await di(ye.CHECKLIST),await t.save(o,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function Ro(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(Ro,"removeUserPassword");async function oc(t,e){let n=(await H().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Ro(n)),n}s(oc,"bulkGetGlobalUsersById");async function kL(){let t=H(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ne}`})).rows.map(n=>n.id)}s(kL,"getAllUserIds");async function FL(){let t=H(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ne}`,include_docs:!0})).rows.map(n=>n.doc)}s(FL,"getAllUsers");async function wo(t){return await H().bulkDocs(t)}s(wo,"bulkUpdateGlobalUsers");async function _n(t,e){let n=await H().get(t);return e?.cleanup&&(n=Ro(n)),n}s(_n,"getById");async function At(t,e){if(t==null)throw"Must supply an email address to view";let r=await qt("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Ro(n)),n}s(At,"getGlobalUserByEmail");async function BL(t){try{let e=await At(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(BL,"doesUserExist");async function zA(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ii(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await qt("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=Ro(o)),o}s(zA,"searchGlobalUsersByApp");async function Qp(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 H().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(Qp,"searchGlobalUsersByAppAccess");function JA(t,e){if(e)return hu(Ye(t),e._id)}s(JA,"getGlobalUserByAppPage");async function ZA(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,o=await qt("by_email2",{...e,startkey:i,endkey:`${n}${Ne}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=Ro(a)),a}s(ZA,"searchGlobalUsersByEmail");var WL=8;async function XA({bookmark:t,query:e,appId:r,limit:n}={}){let i=H(),o=n??WL,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await _n(e.equal._id)]:r?(c=await zA(r,u),d=s(f=>JA(r,f),"getKey")):e?.string?.email?(c=await ZA(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await oc(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(on(null,{...u,limit:void 0}))).rows.map(h=>h.doc),c=mr.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(on(null,u))).rows.map(h=>h.doc),Lf(c,o,{paginate:!0,property:l,getKey:d})}s(XA,"paginatedUsers");async function $L(){return(await Ws("by_email2",{limit:0,include_docs:!1})).total_rows}s($L,"getUserCount");async function GL(){let t=0;async function e(r){let n=await XA({bookmark:r}),i=await An(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(GL,"getCreatorCount");function VL(t){return delete t.admin,delete t.builder,t}s(VL,"removePortalUserPermissions");function jp(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(jp,"cleanseUserObject");async function qL(t,e){let r=Ye(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await xt.save(t,{hashPassword:!1})}s(qL,"addAppBuilder");async function KL(t,e){let r=Ye(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await xt.save(t,{hashPassword:!1})}s(KL,"removeAppBuilder");var e_=3600;async function QL(t,e){let n=await Wf(e).get(t);if(n.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let i=await Rr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(QL,"populateFromDB");async function jL(t){let e=await xt.bulkGet(t),r=t.filter((i,o)=>!e[o]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let o=await Rr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(jL,"populateUsersFromDB");async function Co({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=QL),!e)try{e=$()}catch{e=await yt.lookupTenantId(t)}let i=await Ps(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,e_)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Me.users.isGlobalBuilder(o)&&await Ce(e,async()=>{let a=await xt.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(Co,"getUser");async function YL(t){let e=await Ps(),r=await e.bulkGet(t),n=t.filter(a=>!r[a]),i=Object.values(r).filter(a=>!!a),o;if(n.length){let a=await jL(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,e_);i.push(...a.users)}return{users:i,notFoundIds:o}}s(YL,"getUsers");async function bo(t){await(await Ps()).delete(t)}s(bo,"invalidateUser");var Jp={};P(Jp,{Writethrough:()=>Hp});var t_=1e4,Yp=null;async function ac(){if(!Yp){let t=await Cf();Yp=new fn(t)}return Yp}s(ac,"getCache");function xo(t,e){return t.name+e}s(xo,"makeCacheKey");function zp(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(zp,"makeCacheItem");async function HL(t,e,r=t_){let n=await ac(),i=e._id,o;i&&(o=await n.get(xo(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await io({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;li("Ignoring conflict in write-through cache")}})).executed||li("Ignoring redlock conflict in write-through cache")),o=zp(u,a?null:o?.lastWrite),u._id&&await n.store(xo(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(HL,"put");async function zL(t,e){let r=await ac(),n=xo(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=zp(o),await r.store(n,i)}return i.doc}s(zL,"get");async function JL(t,e){let r=await ac(),n=xo(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=zp(o),await r.store(n,i)}return i.doc}s(JL,"tryGet");async function ZL(t,e,r){let n=await ac();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(xo(t,i))}finally{await t.remove(i,r)}}s(ZL,"remove");var Hp=class{static{s(this,"Writethrough")}constructor(e,r=t_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return HL(this.db,e,r)}async get(e){return zL(this.db,e)}async tryGet(e){return JL(this.db,e)}async remove(e,r){return ZL(this.db,e,r)}};function vo(t){return`config${C}${t}`}s(vo,"generateConfigID");var uc="en";function XL(){return{_id:vo("translations"),type:"translations",config:{defaultLocale:uc,locales:{[uc]:{label:"English",overrides:{}}}}}}s(XL,"createDefaultTranslationsConfig");function e0(t){let e=t?.defaultLocale||uc,r={...t?.locales??{}};r[e]||(r[e]={label:e===uc?"English":e,overrides:{}});for(let n of Object.keys(r))r[n].overrides||(r[n]={...r[n],overrides:{}});return{defaultLocale:e,locales:r}}s(e0,"prepareTranslationsConfig");async function ve(t){let e=H();try{return await e.get(vo(t))}catch(r){if(r.status===404)return;throw r}}s(ve,"getConfig");async function t0(t){return t._id||(t._id=vo(t.type)),H().put(t)}s(t0,"save");async function r_(){let t=await ve("translations");return t?(t.config=e0(t.config),t):XL()}s(r_,"getTranslationsConfigDoc");async function r0(){return(await r_()).config}s(r0,"getTranslationsConfig");async function Ti(){let t=await ve("settings");return t||(t={_id:vo("settings"),type:"settings",config:{}}),t.config.platformUrl=await Po({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Hu({config:t.config}),t}s(Ti,"getSettingsConfigDoc");async function Xp(){return(await Ti()).config}s(Xp,"getSettingsConfig");async function Po(t={tenantAware:!0}){let e=E.PLATFORM_URL||"http://localhost:10000";if(!E.SELF_HOSTED&&E.MULTI_TENANCY&&t.tenantAware){let r=$();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(E.SELF_HOSTED){let r=t?.config?t.config:(await ve("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(Po,"getPlatformUrl");var Hu=s(async t=>{if(!E.SELF_HOSTED)return!!E.ENABLE_ANALYTICS;let e=await wr(ye.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await ve("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 n0(){return await ve("google")}s(n0,"getGoogleConfigDoc");async function lc(){return(await n0())?.config}s(lc,"getGoogleConfig");async function em(){if(!E.SELF_HOSTED)return Zp();let t=await lc();return(!t||!t.activated)&&(t=Zp()),t}s(em,"getGoogleDatasourceConfig");function Zp(){if(E.GOOGLE_CLIENT_ID&&E.GOOGLE_CLIENT_SECRET)return{clientID:E.GOOGLE_CLIENT_ID,clientSecret:E.GOOGLE_CLIENT_SECRET,activated:!0}}s(Zp,"getDefaultGoogleConfig");async function i0(){return ve("logos_oidc")}s(i0,"getOIDCLogosDoc");async function s0(){return ve("oidc")}s(s0,"getOIDCConfigDoc");async function o0(){let t=(await s0())?.config;return t?.configs&&t.configs[0]}s(o0,"getOIDCConfig");async function tm(t){let e=(await ve("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(tm,"getOIDCConfigById");async function n_(){return ve("smtp")}s(n_,"getSMTPConfigDoc");async function a0(t){let e=await n_();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(a0,"getSMTPConfig");async function u0(){return(await ve("scim"))?.config}s(u0,"getSCIMConfig");async function c0(){return ve("ai")}s(c0,"getAIConfig");async function l0(){return ve("recaptcha")}s(l0,"getRecaptchaConfig");var dm={};P(dm,{AccessController:()=>im,BUILTIN_ROLE_IDS:()=>sm,Role:()=>xr,RoleHierarchyTraversal:()=>dc,RoleIDVersion:()=>om,builtinRoleToNumber:()=>No,checkForRoleResourceArray:()=>a_,externalRole:()=>E0,findRole:()=>Uo,getAllRoleIds:()=>S0,getAllRoles:()=>lm,getBuiltinRole:()=>s_,getBuiltinRoles:()=>um,getDBRoleID:()=>u_,getExternalRoleID:()=>vr,getExternalRoleIDs:()=>c_,getRole:()=>g0,getUserRoleHierarchy:()=>cm,getUserRoleIdHierarchy:()=>o_,isBuiltin:()=>On,lowerBuiltinRoleID:()=>h0,prefixRoleIDNoBuiltin:()=>nm,roleIDsAreEqual:()=>ot,roleToNumber:()=>m0,saveRoles:()=>y0,validInherits:()=>p0});var i_=require("lodash"),fc=B(require("lodash/fp/cloneDeep")),rm=B(require("semver"));var sm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ie={...sm,BUILDER:"BUILDER"},om={UUID:void 0,NAME:"name"};function f0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(f0,"rolesInList");var xr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=om.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=nm(e):e&&Array.isArray(e)&&(e=e.map(nm)),this.inherits=e,this}},dc=class{static{s(this,"RoleHierarchyTraversal")}constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let o of e.inherits){let a=Uo(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!f0(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=Uo(a.inherits,n,r),a&&i.push(a),Le.roles.checkForRoleInheritanceLoops(i))break}}return(0,i_.uniqBy)(i,o=>o._id)}},am={ADMIN:new xr(ie.ADMIN,ie.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ie.POWER),POWER:new xr(ie.POWER,ie.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ie.BASIC),BASIC:new xr(ie.BASIC,ie.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ie.PUBLIC),PUBLIC:new xr(ie.PUBLIC,ie.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new xr(ie.BUILDER,ie.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function um(){return(0,fc.default)(am)}s(um,"getBuiltinRoles");function On(t){return Object.values(sm).includes(t)}s(On,"isBuiltin");function nm(t){return On(t)?t:Gt(t)}s(nm,"prefixRoleIDNoBuiltin");function s_(t){let e=Object.values(am).find(r=>t.includes(r._id));if(e)return(0,fc.default)(e)}s(s_,"getBuiltinRole");function p0(t,e){if(!e)return!1;let r=s(n=>t.find(i=>ot(i._id,n)),"find");if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}s(p0,"validInherits");function No(t){let e=um(),r=Object.values(e).length+1;if(ot(t,ie.ADMIN)||ot(t,ie.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}s(No,"builtinRoleToNumber");async function m0(t){if(On(t))return No(t);let e=await cm(t,{defaultPublic:!0}),r=s(n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(o=>{let a=e.find(u=>ot(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(On(n.inherits))return No(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(m0,"roleToNumber");function h0(t,e){return t?e&&No(t)>No(e)?e:t:e}s(h0,"lowerBuiltinRoleID");function ot(t,e){return Gt(t)===Gt(e)}s(ot,"roleIDsAreEqual");function E0(t){let e;return t._id&&(e=vr(t._id)),{...t,_id:e,inherits:c_(t.inherits,t.version)}}s(E0,"externalRole");function Uo(t,e,r){let n=s_(t);n||(t=Gt(t));let i=e.find(o=>o._id&&ot(o._id,t));return!i&&!On(t)&&r?.defaultPublic?(0,fc.default)(am.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=vr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(Uo,"findRole");async function g0(t,e){let r=ei(),n=[];if(!On(t)){let i=await r.tryGet(u_(t));i&&n.push(i)}return Uo(t,n,e)}s(g0,"getRole");async function y0(t){await ei().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:Gt(r._id)})))}s(y0,"saveRoles");async function T0(t,e){let r=await lm();if(ot(t,ie.ADMIN))return r;let n=Uo(t,r,e),i=[];return n&&(i=new dc(r,e).walk(n)),i}s(T0,"getAllUserRoles");async function o_(t){return(await cm(t)).map(r=>r._id)}s(o_,"getUserRoleIdHierarchy");async function cm(t,e){return T0(t,e)}s(cm,"getUserRoleHierarchy");function a_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(a_,"checkForRoleResourceArray");async function S0(t){return(await lm(t)).map(r=>r._id)}s(S0,"getAllRoleIds");async function lm(t){if(t)return je(t,e);{let r;try{r=ei()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(Eu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=vr(u._id,u.version)));let i=um(),o=[];!r||await A0(r)?o=[ie.ADMIN,ie.POWER,ie.BASIC,ie.PUBLIC]:o=[ie.ADMIN,ie.BASIC,ie.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>ot(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=vr(u._id,c.version),n.push({...u,...c,name:u.name,_id:vr(u._id,u.version),uiMetadata:{...c.uiMetadata,...u.uiMetadata}}))}for(let a of n)if(a.permissions)for(let u of Object.keys(a.permissions))a.permissions=a_(a.permissions,u);return n}s(e,"internal")}s(lm,"getAllRoles");async function A0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!rm.default.valid(r)?!0:!rm.default.gte(r,E.MIN_VERSION_WITHOUT_POWER_ROLE)}s(A0,"shouldIncludePowerRole");var im=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||ot(e,ie.BUILDER)||ot(r,e)||ot(r,ie.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await o_(r),this.userHierarchies[r]=n),n?.find(i=>ot(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let o=await this.checkScreenAccess(i,r);o&&n.push(o)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function u_(t){return t?.startsWith("role")?t:Gt(t)}s(u_,"getDBRoleID");function vr(t,e){if(t.startsWith(`role${C}`)&&(On(t)||e===om.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}s(vr,"getExternalRoleID");function c_(t,e){return t&&(typeof t=="string"?vr(t,e):t.map(r=>vr(r,e)))}s(c_,"getExternalRoleIDs");var fm={};P(fm,{BUILDER:()=>D0,BUILTIN_PERMISSIONS:()=>pc,CREATOR:()=>R0,GLOBAL_BUILDER:()=>C0,PermissionImpl:()=>se,PermissionLevel:()=>Ci,PermissionType:()=>Vo,doesHaveBasePermission:()=>I0,getAllowedLevels:()=>p_,getBuiltinPermissionByID:()=>O0,getBuiltinPermissions:()=>_0,isPermissionLevelHigherThanRead:()=>w0,levelToNumber:()=>f_});var l_=B(require("lodash/flatten")),d_=B(require("lodash/fp/cloneDeep"));var se=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function f_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(f_,"levelToNumber");function p_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(p_,"getAllowedLevels");var pc={PUBLIC:{_id:"public",name:"Public",permissions:[new se("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new se("query","read"),new se("table","read"),new se("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new se("query","write"),new se("table","write"),new se("automation","execute"),new se("legacy_view","read"),new se("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new se("table","write"),new se("user","read"),new se("automation","execute"),new se("webhook","read"),new se("legacy_view","read"),new se("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new se("table","admin"),new se("user","admin"),new se("automation","admin"),new se("webhook","read"),new se("query","admin"),new se("legacy_view","read"),new se("app","read")]}};function _0(){return(0,d_.default)(pc)}s(_0,"getBuiltinPermissions");function O0(t){return Object.values(pc).find(r=>r._id===t)}s(O0,"getBuiltinPermissionByID");function I0(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(pc),o=(0,l_.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&p_(a.level).indexOf(e)!==-1)return!0;return!1}s(I0,"doesHaveBasePermission");function w0(t){return f_(t)>1}s(w0,"isPermissionLevelHigherThanRead");var D0="builder",R0="creator",C0="globalBuilder";var hm={};P(hm,{FlagSet:()=>hc,all:()=>N0,flags:()=>pm,getEnvFlags:()=>g_,init:()=>b0,isEnabled:()=>P0,parseEnvFlags:()=>gc,shutdown:()=>x0,testutils:()=>mm});var Ec=B(require("crypto")),m_=B(require("dd-trace")),h_=require("lodash"),E_=require("posthog-node");var mc;function b0(t){E.POSTHOG_TOKEN&&E.POSTHOG_API_HOST&&!E.SELF_HOSTED&&E.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),mc=new E_.PostHog(E.POSTHOG_TOKEN,{host:E.POSTHOG_API_HOST,personalApiKey:E.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:pe.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}s(b0,"init");function x0(){mc?.shutdown()}s(x0,"shutdown");function gc(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(gc,"parseEnvFlags");function g_(){return gc(E.TENANT_FEATURE_FLAGS||"")}s(g_,"getEnvFlags");var hc=class{constructor(e){this.flagSchema=e;this.setId=Ec.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 m_.default.trace("features.fetch",async e=>{let r=_f(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=$(),a=new Set;if(eu())return i;for(let{tenantId:f,key:h,value:p}of g_())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,p===!1&&a.add(h),!!this.isFlagName(h))){if(typeof i[h]!="boolean")throw new Error(`Feature: ${h} is not a boolean`);i[h]=p,n[`flags.${h}.source`]="environment"}let u=$t(),c=u?._id;if(!c){let f=Sf();f&&(c=Ec.createHash("sha512").update(f).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,mc&&c){n.readFromPostHog=!0;let f=await Ti(),h={tenantId:l},p={tenant:{id:l}};f.config.createdVersion&&(p.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(p.tenant.createdAt=`${f.createdAt}`);let S=await mc.getAllFlags(c,{personProperties:h,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:p});for(let[m,g]of Object.entries(S))if(this.isFlagName(m)){if(typeof g!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${g}`);continue}if(!(i[m]===!0||a.has(m)))try{i[m]=g,n[`flags.${m}.source`]="posthog"}catch(y){console.warn(`Error parsing posthog flag "${m}": ${g}`,y)}}}let d=If();for(let[f,h]of Object.entries(d))this.isFlagName(f)&&typeof h=="boolean"&&(i[f]=h,n[`flags.${f}.source`]="override");Of(this.setId,i);for(let[f,h]of Object.entries(i))n[`flags.${f}.value`]=h;return e?.addTags(n),i})}},v0={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,AI_CHAT:!1,WORKSPACE_HOME:!1,DEBUG_UI:E.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1},pm=new hc(v0);async function P0(t){return await pm.isEnabled(t)}s(P0,"isEnabled");async function N0(){return await pm.fetch()}s(N0,"all");var mm={};P(mm,{setFeatureFlags:()=>y_,withFeatureFlags:()=>M0});function U0(){let t={};for(let{tenantId:e,key:r,value:n}of gc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(U0,"getCurrentFlags");function L0(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(L0,"buildFlagString");function y_(t,e){let r=U0();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=L0(r);return Is({TENANT_FEATURE_FLAGS:n})}s(y_,"setFeatureFlags");function M0(t,e,r){let n=y_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(M0,"withFeatureFlags");var Rm={};P(Rm,{adminOnly:()=>yc,auditLog:()=>Tc,authError:()=>Ie,buildAuthMiddleware:()=>AM,buildCsrfMiddleware:()=>OM,buildTenancyMiddleware:()=>_M,builderOnly:()=>Cc,builderOrAdmin:()=>bc,google:()=>tr,internalApi:()=>vc,joiValidator:()=>Lo,oidc:()=>rr,passport:()=>IM,platformLogout:()=>bM,refreshOAuthToken:()=>RM,ssoCallbackUrl:()=>Nr,updateUserOAuth:()=>CM,workspaceBuilderOrAdmin:()=>Uc});var Dm={};P(Dm,{activeTenant:()=>V_,adminOnly:()=>yc,auditLog:()=>Tc,authError:()=>Ie,authenticated:()=>Rc,builderOnly:()=>Cc,builderOrAdmin:()=>bc,correlation:()=>S_,csp:()=>x_,csrf:()=>xc,datasource:()=>TM,errorHandling:()=>P_,featureFlagCookie:()=>N_,google:()=>tr,internalApi:()=>vc,ip:()=>U_,joiValidator:()=>Lo,local:()=>Oi,oidc:()=>rr,pino:()=>A_,querystringToBody:()=>G_,ssoCallbackUrl:()=>Nr,tenancy:()=>Nc,workspaceBuilderOrAdmin:()=>Uc});var T_=require("uuid");var k0=require("correlation-id"),S_=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,T_.v4)()),k0.withId(r,()=>e())},"correlationMiddleware");var F0=require("koa-pino-logger"),B0=require("correlation-id");function W0(){return{logger:Pu,genReqId:B0.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}s(W0,"pinoSettings");function $0(){return E.HTTP_LOGGING?F0(W0()):(t,e)=>e()}s($0,"getMiddleware");var A_=$0();var yc=s(async(t,e)=>(!t.internal&&!bt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var Tc=s(async(t,e)=>e(),"auditLog");var G0=/\/:(.*?)(\/.*)?$/g,Xt=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(G0);if(i)for(let o of i){let u="/.*"+(o.endsWith("/")?"/":"");r=r.replace(o,u)}return{regex:new RegExp(r),method:n,route:r}}):[],"buildMatcherRegex"),er=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var Sm={};P(Sm,{SecretOption:()=>I_,compare:()=>Q0,decrypt:()=>Oc,decryptFile:()=>H0,encrypt:()=>K0,encryptFile:()=>j0,getSecret:()=>Tm});var vt=B(require("crypto")),Pr=B(require("fs")),Em=require("path"),gm=B(require("zlib"));var Sc="aes-256-ctr",O_="-",V0=1e4,q0=32,Ac=16,ym=16,I_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(I_||{});function Tm(t){let e,r;switch(t){case"encryption":e=E.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=E.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(Tm,"getSecret");function _c(t,e){return vt.default.pbkdf2Sync(t,new Uint8Array(e),V0,q0,"sha512")}s(_c,"stretchString");function K0(t,e="api"){let r=vt.default.randomBytes(Ac),n=_c(Tm(e),r),i=vt.default.createCipheriv(Sc,new Uint8Array(n),new Uint8Array(r)),o=i.update(t,"utf8"),a=i.final(),u=Buffer.concat([new Uint8Array(o),new Uint8Array(a)]).toString("hex");return`${r.toString("hex")}${O_}${u}`}s(K0,"encrypt");function Oc(t,e="api"){let[r,n]=t.split(O_),i=Buffer.from(r,"hex"),o=_c(Tm(e),i),a=vt.default.createDecipheriv(Sc,new Uint8Array(o),new Uint8Array(i)),u=a.update(n,"hex"),c=a.final();return Buffer.concat([new Uint8Array(u),new Uint8Array(c)]).toString()}s(Oc,"decrypt");function Q0(t,e,r="api"){try{let n=new TextEncoder,i=n.encode(Oc(e,r)),o=n.encode(t);return i.length!==o.length?!1:vt.default.timingSafeEqual(i,o)}catch{return!1}}s(Q0,"compare");async function j0({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Em.join)(t,e);if(Pr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=Pr.default.createReadStream(i),a=Pr.default.createWriteStream((0,Em.join)(t,n)),u=vt.default.randomBytes(Ac),c=vt.default.randomBytes(ym),l=_c(r,u),d=vt.default.createCipheriv(Sc,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(gm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(j0,"encryptFile");async function Y0(t){let e=Pr.default.createReadStream(t),r=await __(e,Ac),n=await __(e,ym);return e.close(),{salt:r,iv:n}}s(Y0,"getSaltAndIV");async function H0(t,e,r){if(Pr.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await Y0(t),o=Pr.default.createReadStream(t,{start:Ac+ym}),a=Pr.default.createWriteStream(e),u=_c(r,n),c=vt.default.createDecipheriv(Sc,new Uint8Array(u),new Uint8Array(i)),l=gm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",h=>{a.close(),f(h)}),c.on("error",h=>{a.close(),f(h)}),l.on("error",h=>{a.close(),f(h)}),a.on("error",h=>{a.close(),f(h)})})}s(H0,"decryptFile");function __(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(__,"readBytes");var Am={};P(Am,{APIWarning:()=>In,FeatureDisabledWarning:()=>wc,InvalidAPIKeyWarning:()=>_i,UsageLimitWarning:()=>Ic});var In=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"APIWarning")}},_i=class extends In{static{s(this,"InvalidAPIKeyWarning")}constructor(){super("Invalid API key","invalid_api_key")}},Ic=class extends In{constructor(r){super(`Usage limit exceeded: '${r}'`,"usage_limit_exceeded");this.limitName=r}static{s(this,"UsageLimitWarning")}getPublicWarning(){return{limitName:this.limitName}}},wc=class extends In{constructor(r){super(`Feature disabled: '${r}'`,"feature_disabled");this.featureName=r,this.status=400}static{s(this,"FeatureDisabledWarning")}getPublicWarning(){return{featureName:this.featureName}}getPublicError(){return{featureName:this.featureName}}};var D_=B(require("dd-trace"));var J0=E.SESSION_UPDATE_PERIOD?parseInt(E.SESSION_UPDATE_PERIOD):60*1e3;function Z0(){return new Date(Date.now()-J0).toISOString()}s(Z0,"timeMinusOneMinute");function w_(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(w_,"finalise");async function X0(t,e){if(qs(t))return{valid:!0,user:void 0};let n=Oc(t).split(C)[0];return Ce(n,async()=>{let i;try{let o=H();i=await qt("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await Co({userId:i,tenantId:n,populateUser:e})};throw new _i})}s(X0,"checkApiKey");function Dc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(Dc,"getHeader");function Rc(t=[],e={publicAllowed:!1}){let r=t?Xt(t):[];return async(n,i)=>{let o=!1,a=Dc(n,"x-budibase-api-version");er(n,r)&&(o=!0);try{let c=Dc(n,"x-budibase-token"),l=Qt(n,"budibase:auth")||yu(c),d=Dc(n,"x-budibase-api-key");!d&&n.request.headers.authorization&&(d=n.request.headers.authorization.split(" ")[1]);let f=Dc(n,"x-budibase-tenant-id"),h=!1,p,S=!1,m;if(l&&!d){let y=l.sessionId,I=l.userId,O;try{O=await vp(I,y),e&&e.populateUser?p=await Co({userId:I,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):p=await Co({userId:I,tenantId:O.tenantId,email:O.email}),p.csrfToken=O.csrfToken,m="cookie",O?.lastAccessedAt<Z0()&&await xp(O),h=!0}catch(w){h=!1,console.warn(`Auth Error: ${w.message}`),Ar(n,"budibase:auth")}}if(!h&&d){let y=e.populateUser?e.populateUser(n):null,{valid:I,user:O}=await X0(d,y);I&&(h=!0,m="api_key",p=O,S=!O)}!p&&f?p={tenantId:f}:p&&"password"in p&&delete p.password,h||(h=!1);let g=s(y=>y&&y.email,"isUser");return g(p)&&D_.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),w_(n,{authenticated:h,user:p,internal:S,version:a,publicEndpoint:o,loginMethod:m}),g(p)?rf(p,n,i):i()}catch(c){if(console.warn(`Auth Error: ${c.message}`),c?.name==="JsonWebTokenError"?Ar(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return w_(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c)}}}s(Rc,"authenticated");async function Cc(t,e){if(t.internal)return e();let r=await un(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!Fe(t.user)?t.throw(403,"Builder user only endpoint."):r&&!Ai(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(Cc,"builderOnly");async function bc(t,e){if(t.internal||bt(t.user))return e();let r=await un(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!Fe(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!Ai(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(bc,"builderOrAdmin");var b_=B(require("crypto"));var R_={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","https://www.google.com/recaptcha/api.js"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com","https://d2l5prqdbvm3op.cloudfront.net"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},C_=/^[A-Za-z0-9-*:/.]+$/,x_=s(async(t,e)=>{let r=b_.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...R_};n["script-src"]=[...R_["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[u,c]of Object.entries(i))if(c){let l=c.split(",").map(d=>d.trim()).filter(d=>C_.test(d));n[u]=[...n[u]||[],...l]}if(t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let u=await Ls.getWorkspaceMetadata(t.appId);if("name"in u)for(let c of u.scripts||[]){let l=(c.cspWhitelist||"").split(`
|
|
38
|
-
`).filter(f=>C_.test(f)),d=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let f of d)n[f]=[...n[f]||[],...l]}}catch(u){console.error(`Error occurred in Content-Security-Policy middleware: ${u}`)}let a=Object.entries(n).map(([u,c])=>`${u} ${c.join(" ")}`).join("; ");t.set("Content-Security-Policy",a),await e()},"contentSecurityPolicy");var eM=["GET","HEAD","OPTIONS"],tM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function xc(t={noCsrfPatterns:[]}){let e=Xt(t.noCsrfPatterns);return async(r,n)=>{if(er(r,e)||eM.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!tM.filter(c=>o.includes(c)).length||r.internal)return n();let a=r.user?.csrfToken;if(!a)return n();let u=r.get("x-csrf-token");return(!u||u!==a)&&r.throw(403,"Invalid CSRF token"),n()}}s(xc,"csrf");function v_(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of zy){let r=E[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(v_,"stringContainsSecret");async function P_(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:qu(r)};if(v_(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(P_,"errorHandling");var N_=s(async(t,e)=>{let n=Qt(t,"budibase:featureflags")?.flags||{};await wf(n,async()=>{await e()})},"featureFlagCookie");async function vc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),qs(r)||t.throw(403,"Unauthorized"),e()}s(vc,"internalApi");async function U_(t,e){return t.ip?await Af(t.ip,()=>e()):e()}s(U_,"ip");var Lo={};P(Lo,{body:()=>rM,params:()=>nM});var _m=B(require("joi"));function L_(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,o)=>{if(!t)return o();let a=null,u=i.request?.[e];i[e]!=null?a=i[e]:u!=null&&(a=u),t.append&&(t=t.append({createdAt:_m.default.any().optional(),updatedAt:_m.default.any().optional()}));let{error:c}=t.validate(a,{allowUnknown:r?.allowUnknown});if(c){let l=c.message;n&&(l=`Invalid ${e} - ${l}`),i.throw(400,l)}return o()}}s(L_,"validate");function rM(t,e){return L_(t,"body",e)}s(rM,"body");function nM(t,e){return L_(t,"params",e)}s(nM,"params");var Oi={};P(Oi,{authenticate:()=>oM,options:()=>sM});function Ie(t,e,r){return t(r,null,{message:e})}s(Ie,"authError");async function Nr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Xp(),n="/api/global/auth";return gr()&&(n+=`/${$()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(Nr,"ssoCallbackUrl");var Om="Invalid credentials",iM="This account has expired. Please reset your password",sM={passReqToCallback:!0};async function oM(t,e,r,n){if(!e)return Ie(n,"Email Required");if(!r)return Ie(n,"Password Required");let i=await At(e);return i==null?(console.info(`user=${e} could not be found`),Ie(n,Om)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ie(n,Om)):i.password?await Xd(r,i.password)?(delete i.password,n(null,i)):Ie(n,Om):(console.info(`user=${e} has no password set`,i),Ie(n,iM))}s(oM,"authenticate");var tr={};P(tr,{buildVerifyFn:()=>F_,getCallbackUrl:()=>cM,strategyFactory:()=>Im});var Mo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function Pc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ie(r,"sso user id required");if(!t.email)return Ie(r,"sso user email required");let i=ni(t.userId),o;try{o=await _n(i)}catch(u){if(!u.status||u.status!==404)return Ie(r,"Unexpected error when retrieving existing user",u)}if(o||(o=await At(t.email)),!o&&e)return Ie(r,"Email does not yet exist. You must set up your local budibase account first.");o||(o={_id:i,email:t.email,roles:{},tenantId:$()});let a=await aM(o,t);a.forceResetPassword=!1;try{delete a.password,a=await n(a,{hashPassword:!1,requirePassword:!1})}catch(u){return Ie(r,"Error saving user",u)}return r(null,a)}s(Pc,"authenticate");async function aM(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(aM,"syncUser");var uM=require("passport-google-oauth").OAuth2Strategy;function F_(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return Pc(o,!0,i,t)}}s(F_,"buildVerifyFn");async function Im(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=F_(r);return new uM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(Im,"strategyFactory");async function cM(t){return Nr("google",t)}s(cM,"getCallbackUrl");var rr={};P(rr,{buildVerifyFn:()=>$_,fetchStrategyConfig:()=>mM,getCallbackUrl:()=>hM,strategyFactory:()=>pM});var B_=B(require("node-fetch"));var W_=require("@govtechsg/passport-openidconnect");function $_(t){return async(e,r,n,i,o,a,u,c,l)=>{let d=lM(r,n),f=dM(r,n),h={provider:e,providerType:"oidc",userId:d.id,profile:d,email:fM(d,f),oauth2:{accessToken:a,refreshToken:u}};return Pc(h,!1,l,t)}}s($_,"buildVerifyFn");function lM(t,e){let r={...t?._json||{}};!r.email&&e.emails?.length&&(r.email=e.emails[0].value);let n=t?.displayName||e.displayName;return{id:t?.id||e.id,name:t?.name||e.name||!!n&&{givenName:n,familyName:""}||void 0,_json:r,provider:t?.provider}}s(lM,"normalizeProfile");function dM(t,e){return{email:t?._json?.email||e.emails?.[0]?.value,preferred_username:e.username}}s(dM,"buildJwtClaims");function fM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&qf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(fM,"getEmail");async function pM(t,e){try{let r=$_(e),n=new W_.Strategy(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(pM,"strategyFactory");async function mM(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let a=await(0,B_.default)(i);if(!a.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${a.statusText}`);let u=await a.json();return{issuer:u.issuer,authorizationURL:u.authorization_endpoint,tokenURL:u.token_endpoint,userInfoURL:u.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(mM,"fetchStrategyConfig");async function hM(){return Nr("oidc")}s(hM,"getCallbackUrl");function G_(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(G_,"querystringToBody");function Nc(t,e,r={noTenancyRequired:!1}){let n=Xt(t),i=Xt(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!er(o,i)};!!er(o,n)||(c.excludeStrategies=["query"]);let d=Gs(o,c);return o.set("x-budibase-tenant-id",d),Ce(d,a)}}s(Nc,"tenancy");function V_(t=[]){let e=Xt(t);return async function(r,n){if(er(r,e))return n();try{if((await ve("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(V_,"activeTenant");async function Uc(t,e){if(t.internal||bt(t.user))return e();let r=await un(t);return r&&!rc(t.user,r)?t.throw(403,"Workspace Admin/Builder user only endpoint."):!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!Fe(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}s(Uc,"workspaceBuilderOrAdmin");var wm={};P(wm,{postAuth:()=>yM,preAuth:()=>gM});var EM=require("passport-google-oauth").OAuth2Strategy;async function q_(){let t=await em();if(!t)throw new Error("No google configuration found");return t}s(q_,"fetchGoogleCreds");async function gM(t,e,r){let n=await q_(),o=`${await Po({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await Im(n,o,Mo);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(a,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}s(gM,"preAuth");async function yM(t,e,r){let n=await q_(),o=`${await Po({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=Qt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new EM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{Ar(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=ee();await Ht(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(yM,"postAuth");var TM={google:wm};var K_=require("koa-passport"),SM=require("passport-local").Strategy,Lc=require("passport-oauth2-refresh"),AM=Rc,_M=Nc,OM=xc,IM=K_;K_.use(new SM(Oi.options,Oi.authenticate));async function wM(t,e){let r=await rr.getCallbackUrl(),n,i;try{if(n=await rr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await rr.strategyFactory(n,Mo)}catch{throw new Error("Could not refresh OAuth Token")}return Lc.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(o=>{Lc.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s(wM,"refreshOIDCAccessToken");async function DM(t,e){let r=await tr.getCallbackUrl(t),n;try{n=await tr.strategyFactory(t,r,Mo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Lc.use(n),new Promise(i=>{Lc.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(DM,"refreshGoogleAccessToken");async function RM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await tm(r);return n?wM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await lc();return n?DM(n,t):{err:{data:"Google configuration not found"}}}}}s(RM,"refreshOAuthToken");async function CM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=H(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await bo(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(CM,"updateUserOAuth");async function bM(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=Qt(e,"budibase:auth"),o=await fo(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):Ar(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await Tn(r,{sessionIds:a,reason:"logout"}),await ec.logout(e.user?.email),await bo(r)}s(bM,"platformLogout");var bm={};P(bm,{validate:()=>UM});var x=B(require("joi"));var xM=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Cm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(Cm,"runJoi");function vM(t){let e=x.default.object({type:x.default.string().allow("component").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({name:x.default.string().required(),settings:x.default.array().items(x.default.object().unknown(!0)).required()}).unknown(!0)});Cm(e,t)}s(vM,"validateComponent");function PM(t){let e=x.default.object({type:x.default.string().allow(...Object.values($c)).required(),required:x.default.boolean().required(),default:x.default.any(),display:x.default.string()}),r=x.default.object({type:x.default.string().allow(...Object.values(Wc)),readable:x.default.boolean(),displayName:x.default.string(),fields:x.default.object().pattern(x.default.string(),e)}).required(),n=x.default.object({type:x.default.string().allow("datasource").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({docs:x.default.string(),plus:x.default.boolean().optional(),isSQL:x.default.boolean().optional(),auth:x.default.object({type:x.default.string().required()}).optional(),features:x.default.object(Object.fromEntries(Object.values(Gc).map(i=>[i,x.default.boolean().optional()]))).optional(),relationships:x.default.boolean().optional(),description:x.default.string().required(),friendlyName:x.default.string().required(),type:x.default.string().allow(...xM),datasource:x.default.object().pattern(x.default.string(),e).required(),query:x.default.object().pattern(x.default.string(),r).unknown(!0).required(),extra:x.default.object().pattern(x.default.string(),x.default.object({type:x.default.string().required(),displayName:x.default.string().required(),required:x.default.boolean(),data:x.default.object()}))})});Cm(n,t)}s(PM,"validateDatasource");function NM(t){let e=x.default.object().pattern(x.default.string(),{type:x.default.string().allow(...Object.values(Vc)).required(),customType:x.default.string().allow(...Object.values(qc)),title:x.default.string(),description:x.default.string(),enum:x.default.array().items(x.default.string()),pretty:x.default.array().items(x.default.string())}),r=x.default.object({properties:e,required:x.default.array().items(x.default.string())}).concat(e).required(),n=x.default.object({type:x.default.string().allow("automation").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({name:x.default.string().required(),tagline:x.default.string().required(),icon:x.default.string().required(),description:x.default.string().required(),type:x.default.string().allow("ACTION","LOGIC").required(),stepId:x.default.string().disallow(...Jm).required(),inputs:x.default.object().optional(),schema:x.default.object({inputs:r,outputs:r}).required()})});Cm(n,t)}s(NM,"validateAutomation");function UM(t){switch(t?.type){case"component":vM(t);break;case"datasource":PM(t);break;case"automation":NM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(UM,"validate");var xm={};P(xm,{Client:()=>Oe,clients:()=>Tr,locks:()=>gn,utils:()=>Qa});var vm={};P(vm,{isBlacklisted:()=>MM,refreshBlacklist:()=>H_});var Q_=B(require("dns")),kc=B(require("net"));var j_=require("util");var Mc,LM=(0,j_.promisify)(Q_.default.lookup);async function Y_(t){return kc.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await LM(t,{all:!0})).map(r=>r.address)}s(Y_,"lookup");async function H_(){let e=E.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(kc.default.isIP(i))r.push(i);else{let o=await Y_(i);r=r.concat(o)}}Mc=r}s(H_,"refreshBlacklist");async function MM(t){if(Mc||await H_(),Mc?.length===0)return!1;let e;return kc.default.isIP(t)?e=[t]:e=await Y_(t),!!Mc?.find(r=>e.includes(r))}s(MM,"isBlacklisted");var Nm={};P(Nm,{init:()=>FM});var kM={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};function z_(t,e){let r=kM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(z_,"getDocumentId");var ko=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=z_(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await Ce(i,async()=>{await u({id:o,tenantId:i,appId:n.appId,properties:n})})}shutdown(){return aA()}};var J_,Pm;function FM(t){Tt||zu(),Pm||(Pm=new ko(t)),J_||(J_=Tt.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Pm.processEvent(r,n,i)}))}s(FM,"init");var Gm={};P(Gm,{COUNT_FIELD_NAME:()=>Wm,Sql:()=>sO,SqlTable:()=>Fc,designDoc:()=>$m,utils:()=>mf});var tO=require("knex");var BM=require("knex");function Um(t){return["link","formula","ai"].indexOf(t)!==-1}s(Um,"isIgnoredType");function Z_(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(h=>h.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(h=>h.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(h=>h.foreignKey);for(let[h,p]of Object.entries(e.schema)){let S=n?.schema[h];if(S&&S.type||l.includes(h)||i?.updated===h)continue;let m=p.type;switch(m){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(h)?t.string(h,255):t.text(h);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:g,toTable:y}=p.meta;t.integer(h).unsigned(),t.foreign(h).references(`${y}.${g}`)}else d.indexOf(h)===-1&&t.float(h);break;case"bigint":t.bigint(h);break;case"boolean":t.boolean(h);break;case"datetime":p.timeOnly?t.time(h):t.datetime(h,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":Le.schema.isDeprecatedSingleUserColumn(p)?t.text(h):t.json(h);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:g}=cf(p.tableId),y=r[g];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let I=y.primary[0],O=y.schema[I].externalType;O?t.specificType(p.foreignKey,O):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${g}.${I}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(h);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:_t.unreachable(m)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!Um(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,S])=>!Um(S.type)&&e.schema[p]==null).forEach(([p,S])=>{i?.old===p||Um(S.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}s(Z_,"generateSchema");function $M(t,e,r){return t.createTable(e.name,n=>{Z_(n,e,r)})}s($M,"buildCreateTable");function GM(t,e,r,n,i){return t.alterTable(e.name,o=>{Z_(o,e,r,n,i)})}s(GM,"buildUpdateTable");function VM(t,e){return t.dropTable(e.name)}s(VM,"buildDeleteTable");var Lm=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,BM.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=$M(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=GM(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,o=e.meta.renamed.updated,a=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,u=Jn(n);if(Array.isArray(u))for(let c of u)c.sql.startsWith("exec sp_rename")&&(c.sql=`exec sp_rename '${a}.${i}', '${o}', 'COLUMN'`,c.bindings=[]);return u}break;case"DELETE_TABLE":n=VM(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Jn(n)}},Fc=Lm;var rO=require("lodash");var Wm="__bb_total";function X_(){return(E.SQL_MAX_ROWS?parseInt(E.SQL_MAX_ROWS):null)||5e3}s(X_,"getBaseLimit");function Mm(){return(E.SQL_MAX_RELATED_ROWS?parseInt(E.SQL_MAX_RELATED_ROWS):null)||500}s(Mm,"getRelationshipLimit");function qM(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(qM,"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 eO(t){return t.sourceType==="internal"||t.sourceId===jc}s(eO,"isSqs");function KM(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(KM,"escapeQuotes");function QM(t,e='"'){return`${e}${KM(t,e)}${e}`}s(QM,"wrap");function jM(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=QM(t[r],e));return`[${t.join(",")}]`}s(jM,"stringifyArray");function km(t){return`{${(Array.isArray(t)?t:t==null?[]:[t]).map(n=>{if(typeof n=="string"&&n.length>1){let i=n[0],o=n[n.length-1];if(i==='"'&&o==='"'||i==="'"&&o==="'")return n.substring(1,n.length-1)}return`${n}`}).join(",")}}`}s(km,"toPgArrayLiteral");function iO(t){return Xm.includes(t.type)&&!Le.schema.isDeprecatedSingleUserColumn(t)}s(iO,"isJsonColumn");var YM={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},Fm=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array",POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new mr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}static{s(this,"InternalBuilder")}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(a=>{let u=a.split(/\./g),c,l=u[0];return u.length>1&&(c=u[0],l=u.slice(1).join(".")),{table:c,column:l,field:a}}).filter(({table:a})=>!a||a===n).map(({table:a,column:u,field:c})=>{let l=i[u];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(l)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([a,u].join(".")),this.knex.raw(this.quote(c))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(l)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(c),this.knex.raw(this.quote(c))]):a?this.rawQuotedIdentifier(`${a}.${u}`):this.rawQuotedIdentifier(c)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),o=this.table.schema[i],a=this.rawQuotedIdentifier(e);return(o.type==="string"||o.type==="longform"||o.type==="bb_reference_single"||o.type==="bb_reference"||o.type==="options"||o.type==="barcodeqr")&&(r?.forSelect?a=this.knex.raw("to_char(??) as ??",[a,this.rawQuotedIdentifier(i)]):a=this.knex.raw("to_char(??)",[a])),a}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&iO(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(!ff(e))return null}else if(r.dateOnly){let n=df(e);return n?new Date(n):null}else return r.ignoreTimezones?Ja(e)?new Date(e):lf(e)?new Date(e+"Z"):null:Ja(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,rO.cloneDeep)(e);for(let r of Object.values(Mr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=this.parse(n[i],a))}}for(let r of Object.values(ir)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=n[i].map(u=>this.parse(u,a)))}}for(let r of Object.values(Rn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];if(!a)continue;let u=n[i];"low"in u&&(u.low=this.parse(u.low,a)),"high"in u&&(u.high=this.parse(u.high,a))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i,o){let{relationships:a,schema:u,tableAliases:c,table:l}=this.query,d=c?.[l.name]||l.name,f=s(h=>n.match(new RegExp(`^${h}\\.`)),"matches");if(!a)return e;for(let h of a){let p=h.tableName,S=c?.[p]||p,m=f(p)||f(S),g=f(h.column),y=h.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((m||g||y)&&h.to&&h.tableName){let I=this.knex.select(this.knex.raw(1)).from({[S]:p}),O=I.clone(),w=pf(h),T;if(m?T=n:T=n.replace(new RegExp(`^${h.column}.`),`${c?.[h.tableName]||h.tableName}.`),w){let _=c?.[w.through]||h.through,U=this.tableNameWithSchema(w.through,{alias:_,schema:u});O=O.innerJoin(U,function(){this.on(`${S}.${w.toPrimary}`,"=",`${_}.${w.to}`)}).where(`${_}.${w.from}`,"=",this.rawQuotedIdentifier(`${d}.${w.fromPrimary}`)),this.client==="sqlite3"&&(O=this.addJoinFieldCheck(O,w)),y&&i==="empty"?e=e.whereNotExists(O):y&&i==="notEmpty"?e=e.whereExists(O):e=e.where(R=>{R.whereExists(o(T,O)),r&&R.orWhereNotExists(I.clone().innerJoin(U,function(){this.on(`${d}.${w.fromPrimary}`,"=",`${_}.${w.from}`)}))})}else{let _=`${S}.${h.to}`,U=`${d}.${h.from}`;O=O.where(_,"=",this.rawQuotedIdentifier(U)),y&&i==="empty"?e=e.whereNotExists(O):y&&i==="notEmpty"?e=e.whereExists(O):e=e.where(R=>{R.whereExists(o(T,O.clone())),r&&R.orWhereNotExists(O)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let o=this.query.tableAliases,a=r.allOr,c=this.client==="sqlite3"?this.table._id:this.table.name;function l(m){return o?.[m]||m}s(l,"getTableAlias");function d(m,g,y,I){let O=s((w,T,_)=>{let[U,...R]=T.split("."),k=R.join("."),Y=l(U);return w.andWhere(we=>y(we,Y?`${Y}.${k}`:k,_))},"handleRelationship");for(let w in m){let T=m[w],_=$s(w),U=_.includes(".")||i.getFieldSchema(_)?.type==="link",R=n?.relationship&&U,k;if(w==="_complexIdOperator"&&(k=m[w])&&I){let Y=l(c);e=I(e,k.id.map(we=>Y?`${Y}.${we}`:we),k.values)}else if(U)R&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,YM[g],_,g,(Y,we)=>O(we,Y,T)));else{let Y=l(c);e=y(e,Y?`${Y}.${_}`:_,T)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,h=s((m,g,y)=>((r?.fuzzyOr||a)&&(m=m.or),f?m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(g),`%${y}%`]):this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):m.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),"like"),p=s((m,g=!1)=>{function y(I){return(a||m===r?.containsAny)&&(I=I.or),m===r?.notContains&&(I=I.not),I}s(y,"addModifiers"),this.client==="pg"?d(m,"contains",(I,O,w)=>{I=y(I);let T=this.getFieldSchema(O),_=this.rawQuotedIdentifier(O),U=Array.isArray(w)?[...w]:[w],R=this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(T);return g?R?I.whereRaw("COALESCE(?? && ?::text[], FALSE)",[_,km(U)]):I.whereRaw("COALESCE(??::jsonb \\?| ?::text[], FALSE)",[_,km(U)]):R?I.whereRaw("COALESCE(?? @> ?::text[], FALSE)",[_,km(U)]):I.whereRaw("COALESCE(??::jsonb @> ?::jsonb, FALSE)",[_,jM(U)])}):this.client==="mysql2"||this.client==="mariadb"?d(m,"contains",(I,O,w)=>{let T=Array.isArray(w)?w:[w];return y(I).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),JSON.stringify(T)])}):d(m,"contains",(I,O,w)=>(w.length===0||(I=I.where(T=>(m===r?.notContains&&(T=T.not),T=T.where(_=>{for(let U of w){m===r?.containsAny?_=_.or:_=_.and;let R=!f,k=typeof U=="string"?`"${R?U.toLowerCase():U}"`:U,Y=R?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";_=_.whereLike(this.knex.raw(Y,[this.rawQuotedIdentifier(O)]),`%${k}%`)}}),m===r?.notContains&&(T=T.or.whereNull(this.rawQuotedIdentifier(O))),T))),I))},"contains");if(r.$and){let{$and:m}=r;for(let g of m.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:m}=r;e=e.where(g=>{for(let y of m.conditions)g.orWhere(I=>this.addFilters(I,{...y,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(m,g,y)=>{let I=this.getFieldSchema(g),O=Array.isArray(y)?y:[y];if(a&&(m=m.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly){for(let w of O)w!=null?m=m.or.whereLike(g,`${w.toISOString().slice(0,10)}%`):m=m.or.whereNull(g);return m}return m.whereIn(g,O)},(m,g,y)=>(a&&(m=m.or),this.client==="oracledb"&&(g=g.map(I=>this.convertClobs(I))),m.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&d(r.string,"string",(m,g,y)=>{if(a&&(m=m.or),f)return m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(g),`${y}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let I=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(I)?m.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(I.name)),`${y}%`]):m.whereILike(g,`${y}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",h),r.range&&d(r.range,"range",(m,g,y)=>{let I=s(k=>k&&Object.keys(k).length===0&&Object.getPrototypeOf(k)===Object.prototype,"isEmptyObject");I(y.low)&&(y.low=""),I(y.high)&&(y.high="");let O=Za(y.low),w=Za(y.high),T=this.getFieldSchema(g),_=g,U=y.high,R=y.low;return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly&&(U!=null&&(U=`${U.toISOString().slice(0,10)}T23:59:59.999Z`),R!=null&&(R=R.toISOString().slice(0,10))),this.client==="oracledb"?_=this.convertClobs(g):this.client==="sqlite3"&&T?.type==="bigint"&&(_=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),U=this.knex.raw("CAST(? AS INTEGER)",[y.high]),R=this.knex.raw("CAST(? AS INTEGER)",[y.low])),a&&(m=m.or),O&&w?m.whereBetween(_,[R,U]):O?m.where(_,">=",R):w?m.where(_,"<=",U):m}),r.equal&&d(r.equal,"equal",(m,g,y)=>{let I=this.getFieldSchema(g);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let O=this.convertClobs(g);return m.where(w=>w.whereNotNull(O).andWhere(O,y))}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.whereLike(g,`${y.toISOString().slice(0,10)}%`):m.whereNull(g):m.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&d(r.notEqual,"notEqual",(m,g,y)=>{let I=this.getFieldSchema(g);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let O=this.convertClobs(g);return m.where(w=>w.not.whereNull(O).and.where(O,"!=",y)).or.whereNull(O)}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):m.not.whereNull(g):m.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&d(r.empty,"empty",(m,g)=>(a&&(m=m.or),m.whereNull(g))),r.notEmpty&&d(r.notEmpty,"notEmpty",(m,g)=>(a&&(m=m.or),m.whereNotNull(g))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let S=o?.[this.table._id]||this.table._id;return r.documentType&&!uf(this.table)&&S&&e.andWhereLike(`${S}._id`,`${sr(r.documentType)}%`),e}isSqs(){return eO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;eO(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 ${Wm}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let o=n.map(a=>this.qualifyIdentifier(a));if(this.client==="oracledb"){let a=o.map(c=>this.convertClobs(c)),u=o.map(c=>this.convertClobs(c,{forSelect:!0}));e=e.groupBy(a).select(u)}else e=e.groupBy(o).select(o)}for(let o of r){let a=o.calculationType;if(a==="count")if("distinct"in o&&o.distinct)if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[u,o.name]))}else e=e.countDistinct(`${i}.${o.field} as ${o.name}`);else if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[u,o.name]))}else e=e.count(`${o.field} as ${o.name}`);else{let u=this.getFieldSchema(o.field);if(!u)throw new Error(`field schema missing for aggregation target: ${o.field}`);let c=this.knex.raw("??(??)",[this.knex.raw(a),this.rawQuotedIdentifier(`${i}.${o.field}`)]);u.type==="bigint"&&(c=this.castIntToString(c)),e=e.select(this.knex.raw("?? as ??",[c,o.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,o=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[u,c]of Object.entries(r)){let l=this.getFieldSchema(u);if(this.isUnsortableField(l))continue;let d=c.direction==="ascending"?"asc":"desc",f;(this.client==="pg"||this.client==="oracledb")&&(f=c.direction==="ascending"?"first":"last");let h=`${o}.${u}`,p;this.isAggregateField(u)?p=this.rawQuotedIdentifier(u):this.client==="oracledb"?p=this.convertClobs(h):p=this.rawQuotedIdentifier(h),e=e.orderByRaw(`?? ?? ${f?"nulls ??":""}`,[p,this.knex.raw(d),...f?[this.knex.raw(f)]:[]])}if(!((n?.aggregations?.length??0)>0)){let u=this.findSortablePrimaryKey(i);if(u&&(!r||r[u]===void 0))e=e.orderBy(`${o}.${u}`);else if(!u&&(!r||Object.keys(r).length===0))throw new Error(`Primary key not found for table ${this.table.name}`)}return e}isUnsortableField(e){return e?.type==="json"}findSortablePrimaryKey(e){return e.find(r=>{if(r==null)return!1;let n=this.getFieldSchema(r);return!this.isUnsortableField(n)})}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],o,a;if(n.length>1){let l=n.shift();o=n.join("."),a=`${l}.${o}`}else o=n.join("."),a=o;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let u=this.rawQuotedIdentifier(a),c=e.schema[i];return c&&c.type==="bigint"&&(u=this.castIntToString(u)),[o,u]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,o=this.knex,{resource:a,tableAliases:u,schema:c,tables:l}=this.query,d=a?.fields||[];for(let f of n){let{tableName:h,through:p,to:S,from:m,fromPrimary:g,toPrimary:y}=f;if(!h||!r)continue;let I=l[h];if(!I)throw new Error(`related table "${h}" not found in datasource`);let O=u?.[h]||h,w=u?.[r]||r,T=p&&u?.[p]||p,_=this.tableNameWithSchema(h,{alias:O,schema:c}),U=[...I?.primary||[],I?.primaryDisplay].filter(D=>D),R=qM(d.filter(D=>D.split(".")[0]===O),U);R=R.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=R.map(D=>this.buildJsonField(I,D));if(!k.length)continue;let Y=k.map(D=>{let J=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${J}??`,[D[0],D[1]]).toString()}).join(","),we=`${O}.${y||S}`,W=o.from(_).orderBy(we),F=p&&y&&g,N=F?`${T}.${m}`:`${O}.${S}`,G=F?`${w}.${g}`:`${w}.${m}`;if(F){let D=this.tableNameWithSchema(p,{alias:T,schema:c});W=W.join(D,function(){this.on(`${O}.${y}`,"=",`${T}.${S}`)})}W=W.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(G));let M=s(D=>(W=W.select(R.map(J=>this.rawQuotedIdentifier(J))).limit(Mm()),o.select(D).from({[O]:W})),"standardWrap"),K;switch(i){case"sqlite3":W=this.addJoinFieldCheck(W,f),K=M(this.knex.raw(`json_group_array(json_object(${Y}))`));break;case"pg":K=M(this.knex.raw(`json_agg(json_build_object(${Y}))`));break;case"mariadb":K=W.select(o.raw(`json_arrayagg(json_object(${Y}) LIMIT ${Mm()})`));break;case"mysql2":case"oracledb":K=M(this.knex.raw(`json_arrayagg(json_object(${Y}))`));break;case"mssql":{let D=o.select("*").from({[w]:W.select(k.map(J=>o.ref(J[1]).as(J[0]))).limit(Mm())});K=o.raw(`(SELECT ?? = (${D} FOR JSON PATH))`,[this.rawQuotedIdentifier(O)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:o}=this.query,a=r.to,u=r.from,c=r.through,l=i?.[a]||a,d=c&&i?.[c]||c,f=i?.[u]||u,h=this.tableNameWithSchema(a,{alias:l,schema:o}),p=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(p,function(){for(let S of n){let m=S.fromPrimary,g=S.from;this.orOn(`${f}.${m}`,"=",`${d}.${g}`)}}).leftJoin(h,function(){for(let S of n){let m=S.toPrimary,g=S.to;this.orOn(`${l}.${m}`,`${d}.${g}`)}}):e=e.leftJoin(h,function(){for(let S of n){let m=S.from,g=S.to;this.orOn(`${f}.${m}`,"=",`${l}.${g}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=p}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let h=this.query.tableAliases?.[a.name]||a.name,p=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[h]:"paginated"}));return this.addJsonRelationships(p,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n,{relationship:!0}),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r,{relationship:!0}),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Bm=class extends Fc{constructor(r,n=X_()){super(r);this.limit=n}static{s(this,"SqlQueryBuilder")}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let o=Jn(r);return i==="sqlite3"&&(o=nO(o)),o}}_query(r,n={}){let i=this.getSqlClient(),o={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(o.useNullAsDefault=!0);let a=(0,tO.knex)(o),u,c=new Fm(i,a,r);switch(this._operation(r)){case"CREATE":u=c.create(n);break;case"READ":u=c.read({limits:{query:this.limit,base:X_()}});break;case"COUNT":u=c.read();break;case"UPDATE":u=c.update(n);break;case"DELETE":u=c.delete(n);break;case"BULK_CREATE":u=c.bulkCreate();break;case"BULK_UPSERT":u=c.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(u,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=o=>o){let o=this.getSqlClient(),a=this._operation(r),u=this._query(r,{disableReturning:!0});if(Array.isArray(u)){let f=[];for(let h of u)f.push(await n(h,a));return f}let c;a==="DELETE"&&(c=i(await this.getReturningRow(n,r)));let l=await n(u,a),d=i(l);if(a==="CREATE"||a==="UPDATE"){let f;o==="mssql"?f=d?.[0].id:(o==="mysql2"||o==="mariadb")&&(f=d?.insertId),c=i(await this.getReturningRow(n,this.checkLookupKeys(f,r)))}return a==="COUNT"?d:a!=="READ"?c:d.length?d:[{[a.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===jc){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let o=this.getTableName(r,i);for(let[a,u]of Object.entries(r.schema)){if(!iO(u))continue;let c=`${o}.${a}`;for(let l of n)typeof l[c]=="string"&&(l[c]=JSON.parse(l[c])),typeof l[a]=="string"&&(l[a]=JSON.parse(l[a]))}return n}log(r,n){bs(this.getSqlClient(),r,n)}},sO=Bm;var $m={};P($m,{base:()=>HM});function HM(t){return{_id:Rt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(HM,"base");var Vm={};P(Vm,{jsonFromCsvString:()=>zM});var oO=B(require("csvtojson"));async function zM(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,oO.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(zM,"jsonFromCsvString");var qm=class{static{s(this,"Endpoint")}constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,o=this.controller,a=this.outputMiddlewares,u=s(()=>{},"complete"),c=[n,...i,o,...a,u];e[r](...c)}},Bc=qm;var aO=B(require("@koa/router"));var wn=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}static{s(this,"EndpointGroup")}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),o=new Bc(e,r,i);if(n.length!==0)for(let a of n)o.addMiddleware(a);return this.endpoints.push(o),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new aO.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 Fo=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new wn;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var JM={...Vs,...ue},ZM=s((t={})=>{Ha(t.db)},"init");0&&(module.exports={APIWarning,ActiveContentFileError,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DesignDocuments,DocumentType,Duration,DurationType,EmailUnavailableError,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,FeatureDisabledWarning,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyWarning,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,USER_METADATA_PREFIX,UnexpectedError,UsageLimitError,UsageLimitWarning,UserStatus,ViewName,WORKSPACE_DEV,WORKSPACE_DEV_PREFIX,WORKSPACE_PREFIX,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getErrorMessage,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,warnings,withEnv});
|
|
36
|
+
}`,"platform_users_lowercase_2")},"createPlatformUserView"),Fs=s(async(t,e)=>{let r={account_by_email:YT,platform_users_lowercase_2:HT};return je(fe.PLATFORM_INFO.name,async n=>{let i=r[t];return Lf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),zT={by_email2:qT,by_api_key:QT,by_app:KT},qt=s(async(t,e,r,n)=>{r||(r=H());let i=zT[t];return Lf(t,e,r,i,n)},"queryGlobalView");async function Bs(t,e,r){let n=H(),i=zT[t];return ks(t,e,n,i,r)}s(Bs,"queryGlobalViewRaw");var Ux=B(require("pouchdb"));var JT=require("dd-trace");var Mf=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=rt(e),this.target=rt(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([Rs(this.source),Rs(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}async resolveInconsistencies(e){for(let r of e)try{let[n,i]=await Promise.all([this.source.get(r),this.target.get(r)]),o=this.replicationDelta(n,i);if(o<0||o===0&&n._rev===i._rev)continue;let a=o+1;await JT.tracer.trace("Replication.resolveInconsistencies",async u=>{u.addTags({versionsToJump:a,toFix:!0,id:r,sourceRev:n._rev,targetRev:i._rev});for(let c=0;c<a;c++){let l=await this.source.get(i._id);await this.source.put(l)}})}catch{console.warn("Cannot resolve inconsistencies for document",r)}}replicationDelta(e,r){let n=this.getRevisionNumber(e);return this.getRevisionNumber(r)-n}getRevisionNumber(e){return parseInt(e._rev?.split("-")[0]||"0")}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,n=this.direction,i=n==="toDev";delete e.filter;let o=e.isCreation,a=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let u=!1,c;typeof a=="string"&&a==="all"?u=!0:a&&(c=a);let l=s((f,h)=>f?.startsWith(h+C),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:(f,h)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,Ss)?!0:n==="toProduction"&&!o&&l(f._id,"autocolumn_state")?!1:d(f._id)?!!c?.find(p=>f._id.includes(p))||u:l(f._id,"log_au")||f._id==="app_metadata"?!1:r?r(f,h):!0}}async rollback(){await this.target.destroy(),this.target=rt(this.target.name),await this.replicate()}},ZT=Mf;var eS=B(require("node-fetch"));var Ws=mr.removeKeyNumbering;function an(t){return t==null||t===""}s(an,"isEmpty");var Kt=class t{static{s(this,"QueryBuilder")}#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:o}={}){let a=!!this.#f,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let o of Object.keys(e)){let a=Ws(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#e.equal.tableId&&(a=this.#e.equal.tableId,delete this.#e.equal.tableId);let u=s((S,m)=>an(m)?null:`${S}:${e.preprocess(m,o)}`,"equal"),c=s((S,m,g="AND")=>{if(an(m))return null;if(!Array.isArray(m))return`${S}:${m}`;let y=`${e.preprocess(m[0],{escape:!0})}`;for(let I=1;I<m.length;I++)y+=` ${g} ${e.preprocess(m[I],{escape:!0})}`;return`${S}:(${y})`},"contains"),l=s((S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"fuzzy"}),`${S}:/.*${m}.*/`),"fuzzy"),d=s((S,m)=>{let g=r?"*:* AND ":"",y=r?"AND":void 0;return g+"NOT "+c(S,m,y)},"notContains"),f=s((S,m)=>c(S,m,"OR"),"containsAny"),h=s((S,m)=>{if(an(m))return"*:*";if(!Array.isArray(m))if(typeof m=="string")m=m.split(",");else return"";let g=`${e.preprocess(m[0],o)}`;for(let y=1;y<m.length;y++)g+=` OR ${e.preprocess(m[y],o)}`;return`${S}:(${g})`},"oneOf");function p(S,m,g){let y="";for(let[I,_]of Object.entries(S)){I=Ws(I),I=e.preprocess(e.handleSpaces(I),{escape:!0});let D=m(I,_);if(D!=null){if(y.length>0||n.length>0){let T=g?.mode?g.mode:r?"OR":"AND";y+=` ${T} `}y+=D,(typeof _!="string"&&_!=null||typeof _=="string"&&_!==a&&_!=="")&&(i=!1)}}if(g?.returnBuilt)return y;n+=y}if(s(p,"build"),this.#e.string&&p(this.#e.string,(S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"string"}),`${S}:${m}*`)),this.#e.range&&p(this.#e.range,(S,m)=>{if(an(m)||m.low==null||m.low===""||m.high==null||m.high==="")return null;let g=e.preprocess(m.low,o),y=e.preprocess(m.high,o);return`${S}:[${g} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,l),this.#e.equal&&p(this.#e.equal,u),this.#e.notEqual&&p(this.#e.notEqual,(S,m)=>an(m)?null:typeof m=="boolean"?`(*:* AND !${S}:${m})`:`!${S}:${e.preprocess(m,o)}`),this.#e.empty&&p(this.#e.empty,S=>(i=!1,`(*:* -${S}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,S=>(i=!1,`${S}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,h),this.#e.contains&&p(this.#e.contains,c),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&p(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:a},u)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=mt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await XT(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await XT(n,i,r);throw o}}};async function XT(t,e,r){let n=await(0,eS.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(XT,"runQuery");async function tS(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Kt.maxLimit;n.limit&&o.length>n.limit-Kt.maxLimit&&(a=n.limit-o.length);let u=new Kt(t,e,r);u.setVersion(n.version).setBookmark(i).setLimit(a).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&u.setTable(n.tableId);let c=await u.run();if(!c.rows.length)return o;if(c.rows.length<Kt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await tS(t,e,r,l)}s(tS,"recursiveSearch");async function Lx(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Kt.maxLimit);let o=new Kt(t,e,r);n.version&&o.setVersion(n.version),n.tableId&&o.setTable(n.tableId),n.sort&&o.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&o.setIndexBuilder(n.indexer),n.disableEscaping&&o.disableEscaping();let a=await o.setBookmark(n.bookmark).setLimit(i).run();o.setBookmark(a.bookmark).setLimit(1),n.tableId&&o.setTable(n.tableId);let u=await o.run();return{...a,hasNextPage:u.rows&&u.rows.length>0}}s(Lx,"paginatedSearch");async function Mx(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 tS(t,e,r,n)}}s(Mx,"fullSearch");var kf={};P(kf,{createUserIndex:()=>kx});async function kx(){let t=H(),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(kx,"createUserIndex");function rS(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(rS,"checkErrorCode");function Fx(t){return rS(t,409)}s(Fx,"isDocumentConflictError");var Gs={};P(Gs,{addTenantToUrl:()=>Bx,getTenantDB:()=>Ff,getTenantIDFromCtx:()=>$s,isUserInWorkspaceTenant:()=>Wx});function Ff(t){return Re(nn(t))}s(Ff,"getTenantDB");function Bx(t){let e=$();if(gr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(Bx,"addTenantToUrl");var Wx=s((t,e)=>{let r;return e?r=e.tenantId||ae:r=$(),(Xn(t)||ae)===r},"isUserInWorkspaceTenant"),$x=Object.values(Di),$s=s((t,e)=>{if(!gr())return ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=$x),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(hf()).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 Bf="app"+C,nS="/app/",iS="/app-chat/";async function Gx(t){let r=t.path.split("/")[2];if(!r)return;let n=`/${r.toLowerCase()}`,i=$();!E.isDev()&&E.MULTI_TENANCY&&(i=$s(t,{includeStrategies:["subdomain"]}));let a=(await Ce(i,()=>Ms({dev:!1}))).filter(u=>u.url&&u.url.toLowerCase()===n)[0];return a&&a.appId?a.appId:void 0}s(Gx,"resolveAppUrl");function Vx(t){return t.path.startsWith(`/${Bf}`)?!0:t.path.startsWith(nS)||t.path.startsWith(iS)}s(Vx,"isServingApp");function qx(t){return t.path.startsWith("/builder/workspace/")}s(qx,"isServingBuilder");function Kx(t){return sS(t.path)}s(Kx,"isServingBuilderPreview");function sS(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(sS,"isBuilderPreviewUrl");function Qx(t){return t.path.startsWith("/api/public/v")}s(Qx,"isPublicApiRequest");async function un(t){let e;function r(u){u&&u.startsWith(Bf)&&(e&&e!==u&&t.throw("App id conflict",403),e=u)}s(r,"setWorkspaceIdIfValid");function n(u){if(u){typeof u=="string"&&(u=[u]);for(let c of u)r(c)}}s(n,"checkPossibleValues"),n(t.request.headers["x-budibase-app-id"]),r(t.request.body?.appId);let i=jx(t.path);r(i),n(t.query?.appId);let o=sS(t.path);return(t.path.startsWith(nS)||t.path.startsWith(iS))&&!o&&r(await Gx(t)),e}s(un,"getWorkspaceIdFromCtx");function jx(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Bf))}s(jx,"parseWorkspaceIdFromUrlPath");function Eu(t){if(t)try{return hu.default.verify(t,E.JWT_SECRET)}catch(e){if(E.JWT_SECRET_FALLBACK)return hu.default.verify(t,E.JWT_SECRET_FALLBACK);throw e}}s(Eu,"openJwt");function Vs(t){return E.INTERNAL_API_KEY&&E.INTERNAL_API_KEY===t?!0:!!(E.INTERNAL_API_KEY_FALLBACK&&E.INTERNAL_API_KEY_FALLBACK===t)}s(Vs,"isValidInternalAPIKey");function Qt(t,e){let r=t.cookies.get(e);if(r)return Eu(r)}s(Qt,"getCookie");function oS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=hu.default.sign(e,E.JWT_SECRET));let i={expires:Wa,path:"/",httpOnly:!1,overwrite:!0};E.COOKIE_DOMAIN&&(i.domain=E.COOKIE_DOMAIN),t.cookies.set(r,e,i)}s(oS,"setCookie");function Ar(t,e){oS(t,null,e)}s(Ar,"clearCookie");function Yx(t){return t.headers["x-budibase-type"]==="client"}s(Yx,"isClient");function Wf(t){return new Promise(e=>setTimeout(e,t))}s(Wf,"timeout");function $f(t){return!!qm[t]}s($f,"isAudited");function Hx(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(Hx,"hasCircularStructure");function zx(t){return!!t.match(/^.+:\/\/.+$/)}s(zx,"urlHasProtocol");function Gf(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(Gf,"validEmail");var Vf=(o=>(o.MILLISECONDS="milliseconds",o.SECONDS="seconds",o.MINUTES="minutes",o.HOURS="hours",o.DAYS="days",o))(Vf||{}),gu={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},pe=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/gu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*gu[e]/gu[r]}static from(e,r){return new t(r*gu[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function Jx(t){let e=performance.now();return[await t(),pe.fromMilliseconds(performance.now()-e)]}s(Jx,"time");var yu=require("undici");function Zx(t,e){let r,n=null;try{let o=new URL(t);r=o.hostname,n=o.port||null}catch{return!1}let i=e.split(/[\s,]+/).filter(o=>o.length>0);for(let o of i){let u=o.replace(/^\./,"*").match(/^(.+?)(?::(\d+))?$/);if(!u||!u[1])continue;let c=u[1].toLowerCase(),l=u[2]||null,d=!1;if(c==="*")d=!0;else if(c.startsWith("*")){let h=c.slice(1);d=r===h.slice(1)||r.endsWith(h)}else d=r===c;if(d&&(!l||n===l))return!0}return!1}s(Zx,"isUrlMatchingNoProxy");function Xx(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&&Zx(t,i))return console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy",{url:t,noProxy:i}),!0}return!1}s(Xx,"shouldBypassProxy");function ev(t){return new yu.Agent({connect:{rejectUnauthorized:t}})}s(ev,"createDirectAgent");function tv(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 yu.ProxyAgent(i)}s(tv,"createProxyAgent");function rv(t){let e=t?.rejectUnauthorized??!0;return Xx(t?.url)?ev(e):tv(e)}s(rv,"createDispatcher");function nv(t){return rv(t)}s(nv,"getDispatcher");var qf=require("util"),Kf=B(require("zlib"));var iv=(0,qf.promisify)(Kf.default.gzip),sv=(0,qf.promisify)(Kf.default.gunzip),Tu="gzip:",ov=s(async t=>{let e=await iv(t);return`${Tu}${e.toString("base64")}`},"gzipToBase64"),av=s(async t=>{let e=t.startsWith(Tu)?t.slice(Tu.length):t,r=Buffer.from(e,"base64");return(await sv(new Uint8Array(r))).toString("utf8")},"gunzipFromBase64");function uv(t){let e=t.get("authorization");if(!e)return null;let r=e.match(/^Bearer\s+(.+)$/i);return r?r[1]:null}s(uv,"getBearerToken");function cv(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(cv,"jobToJobInformation");var Su=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new aS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((f,h)=>{f?l(f):c(h)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await Le.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=ee(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{c._isDiscarded=!0}};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:()=>new Promise((c,l)=>{let d=s((h,p)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(p))},"errorHandler"),f=s((h,p)=>{h.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(p))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)})}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>cv(e))}async whenCurrentJobsFinished(){do await Wf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},uS=Su;var Yf=B(require("bull"));var oi=(l=>(l.AUTOMATION="automationQueue",l.APP_BACKUP="appBackupQueue",l.AUDIT_LOG="auditLogQueue",l.SYSTEM_EVENT_QUEUE="systemEventQueue",l.APP_MIGRATION="appMigration",l.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",l.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",l.BATCH_USER_SYNC_PROCESSOR="batchUserSyncProcessorQueue",l.RAG_INGESTION="ragIngestionQueue",l))(oi||{});function cS(t,e,r){fv(t,e),r&&lv(t,r)}s(cS,"addListeners");function lv(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(lv,"handleStalled");function it(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(it,"getLogParams");var dv={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event",batchUserSyncProcessorQueue:"batch-user-sync-processor",ragIngestionQueue:"rag-ingestion-processor"};function fv(t,e){let r=dv[e];function n(i,o){let a=i.data.event?.appId;if(a)return Ef(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...it(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...it(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...it(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...it(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...it(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...it(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...it(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...it(r,"paused"))}).on("resumed",()=>{console.info(...it(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...it(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...it(r,"drained"))}).on("removed",i=>{console.info(...it(r,"removed",{job:i}))})}s(fv,"logging");var Au={};P(Au,{cleanup:()=>pv,clear:()=>jf,set:()=>Qf});var qs=[];function Qf(t,e){let r=setInterval(t,e);return qs.push(r),r}s(Qf,"set");function jf(t){let e=qs.indexOf(t);e!==-1&&qs.splice(e,1),clearInterval(t)}s(jf,"clear");function pv(){for(let t of qs)clearInterval(t);qs=[]}s(pv,"cleanup");var jt=B(require("dd-trace")),Ks=B(require("object-sizeof"));var mv=pe.fromMinutes(5).toMs(),hv=pe.fromSeconds(30).toMs(),Hf=pe.fromSeconds(60).toMs(),Qs=[],_u;async function lS(){for(let t of Qs)await t.clean(Hf,"completed"),await t.clean(Hf,"failed")}s(lS,"cleanup");async function Ev(t,e,r){let n=performance.now();try{let i=await e();return jt.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw jt.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;jt.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),jt.default.dogstatsd.increment(t,1,r)}}s(Ev,"withMetrics");function dS(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(dS,"jobOptsTags");function gv(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Ks.default)(t.data),...dS(t.opts||{})}}s(gv,"jobTags");var gt=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:tn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:mv,lockRenewTime:hv}};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 Yf.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new uS(this.jobQueue,r):n=new Yf.default(this.jobQueue,r),cS(n,this.jobQueue,this.opts.removeStalledCb),Qs.push(n),!_u&&!E.isTest()&&(_u=Qf(lS,Hf),lS().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=s(async(a,u)=>{await jt.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:()=>l.traceId,toSpanId:()=>l.spanId,toTraceparent:()=>""};c.addLink(d)}c.addTags({"queue.name":this.jobQueue,...gv(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),jt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Ks.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await jt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Ks.default)(e),...dS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},jt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Ks.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return Ev(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function yv(){_u&&jf(_u),console.log("Waiting for current queue jobs to finish...");for(let t of Qs)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Qs)await t.close();Qs=[],console.log("Queues shutdown")}s(yv,"shutdown");var Xs={};P(Xs,{correlation:()=>js,logAlert:()=>dn,logAlertWithInfo:()=>rP,logWarn:()=>ci,logger:()=>xu,system:()=>lp});var js={};P(js,{getId:()=>zf,setHeader:()=>Tv});var fS=require("correlation-id"),Tv=s(t=>{let e=fS.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function zf(){return fS.getId()}s(zf,"getId");var bu=B(require("pino")),GS=B(require("pino-pretty")),dp=B(require("dd-trace")),VS=require("dd-trace/ext");var lp={};P(lp,{getLogReadStream:()=>zv,getSingleFileMaxSizeInfo:()=>$S,localFileDestination:()=>cp});var Zs=B(require("fs")),up=B(require("path")),kS=B(require("rotating-file-stream"));var ap={};P(ap,{ObjectStore:()=>st,ObjectStoreBuckets:()=>Av,SIGNED_FILE_PREFIX:()=>np,bucketTTLConfig:()=>Ou,budibaseTempDir:()=>cn,client3rdPartyLibrary:()=>Vv,clientLibraryPath:()=>Gv,clientLibraryUrl:()=>qv,createBucketIfNotExists:()=>Js,deleteFile:()=>Nv,deleteFiles:()=>Uv,deleteFolder:()=>wS,downloadTarball:()=>Mv,downloadTarballDirect:()=>Lv,enrichPWAImages:()=>Kv,enrichPluginURLs:()=>jv,extractBucketAndPath:()=>Jf,getAllFiles:()=>xv,getAppFileUrl:()=>bS,getClientCacheKey:()=>CS,getGlobalFileS3Key:()=>xS,getGlobalFileUrl:()=>Qv,getObjectMetadata:()=>kv,getPluginIconKey:()=>NS,getPluginJSKey:()=>PS,getPluginS3Dir:()=>LS,getPresignedUrl:()=>ln,getReadStream:()=>Iu,listAllObjects:()=>ip,objectExists:()=>Fv,processAutomationAttachment:()=>Ov,processObjectStoreAttachment:()=>gS,retrieve:()=>IS,retrieveDirectory:()=>Pv,retrieveToTmp:()=>vv,sanitizeBucket:()=>xe,sanitizeKey:()=>Ee,streamUpload:()=>OS,streamUploadMany:()=>bv,upload:()=>Cv,uploadDirectory:()=>sp});var Du=require("@aws-sdk/client-s3"),Zf=require("@aws-sdk/lib-storage"),yS=require("@aws-sdk/s3-request-presigner"),TS=require("@smithy/node-http-handler");var Yt=B(require("dd-trace")),ai=B(require("fs")),Hs=B(require("fs/promises")),SS=B(require("https")),Xf=B(require("node-fetch")),Or=require("path"),Ru=B(require("stream")),zs=require("stream/promises"),ep=B(require("tar-fs")),tp=require("uuid"),rp=B(require("zlib"));var pS=B(require("fs")),mS=require("os"),Ys=B(require("path")),hS=B(require("stream"));var Av={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},ES=(0,Ys.join)((0,mS.tmpdir)(),".budibase");try{pS.default.mkdirSync(ES)}catch(t){if(t.code!=="EEXIST")throw t}function cn(){return ES}s(cn,"budibaseTempDir");var Ou=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 _v(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Ys.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:hS.default.Readable.fromWeb(e.body)}}s(_v,"processUrlAttachment");async function gS(t){let e=Jf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await Iu(r,n),o=Ys.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(gS,"processObjectStoreAttachment");async function Ov(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await _v(t):await gS(t)}s(Ov,"processAutomationAttachment");var Iv=require("sanitize-s3-objectkey"),wv={bucketCreationPromises:{}},np="/files/signed",_r={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},Dv=[_r.html,_r.css,_r.js,_r.json];function Ee(t){return Iv(xe(t)).replace(/\\/g,"/")}s(Ee,"sanitizeKey");function xe(t){return t.replace(new RegExp(tt,"g"),et)}s(xe,"sanitizeBucket");function st(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId: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 SS.default.Agent({rejectUnauthorized:!1});e.requestHandler=new TS.NodeHttpHandler({httpsAgent:r})}return new Du.S3(e)}s(st,"ObjectStore");async function Js(t,e){e=xe(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=wv.bucketCreationPromises,o=n===404,a=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(o||a){if(o)return i[e]=t.createBucket({Bucket:e}).catch(u=>{if(u.Code!=="BucketAlreadyOwnedByYou")throw u}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}s(Js,"createBucketIfNotExists");var Rv=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?_r[r.toLowerCase()]:_r.txt},"resolveContentType"),AS=s(async(t,e,r)=>{let n=xe(t),i=st(),o=await Js(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=Ou(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),_S=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=Rv(r,i),u=Ee(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new Zf.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function Cv({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await Hs.default.open(r)).createReadStream():o,l=st(),d=await Js(l,t);if(a&&d.created){let m=Ou(t,a);await l.putBucketLifecycleConfiguration(m)}let f=n,h=f||(u?_r[u.toLowerCase()]:_r.txt),p={Bucket:xe(t),Key:Ee(e),Body:c,ContentType:h};if(i&&typeof i=="object"){for(let m of Object.keys(i))(!i[m]||typeof i[m]!="string")&&delete i[m];p.Metadata=i}return new Zf.Upload({client:l,params:p}).done()}s(Cv,"upload");async function OS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await Yt.default.trace("streamUpload",async a=>{a.addTags({bucketName:t,filename:r,type:n,ttl:o});let u=r.split(".").pop();a.addTags({extension:u});let{bucket:c,client:l}=await AS(t,o,a),{details:d,contentType:f}=await _S({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),h=await l.headObject({Bucket:c,Key:Ee(r)});return a.addTags({contentType:f,contentLength:h.ContentLength}),{...d,ContentLength:h.ContentLength}})}s(OS,"streamUpload");async function bv({bucket:t,files:e,ttl:r}){return await Yt.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await AS(t,r,i),u=e.map((l,d)=>({...l,index:d})),c=new Array(e.length);return await _t.parallelForeach(u,async l=>{let{details:d}=await _S({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=d},10),c})}s(bv,"streamUploadMany");async function IS(t,e){return await Yt.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=st(),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}),Dv.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return Ru.default.Readable.fromWeb(a)}})}s(IS,"retrieve");async function*ip(t,e){let r=st(),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(ip,"listAllObjects");async function xv(t,e){let r={};return await _t.parallelForeach(ip(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(xv,"getAllFiles");async function ln(t,e,r=3600){let n=st({presigning:!0}),i={Bucket:xe(t),Key:Ee(e)},o=await(0,yS.getSignedUrl)(n,new Du.GetObjectCommand(i),{expiresIn:r});if(E.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${np}${u}${c}`}else return o}s(ln,"getPresignedUrl");async function vv(t,e){return await Yt.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=xe(t),e=Ee(e);let n=await IS(t,e),i=(0,Or.join)(cn(),(0,tp.v4)());return r.addTags({outputPath:i}),n instanceof Ru.default.Readable?(r.addTags({stream:!0}),await(0,zs.pipeline)(n,ai.default.createWriteStream(i))):(r.addTags({stream:!1}),ai.default.writeFileSync(i,n)),i})}s(vv,"retrieveToTmp");async function Pv(t,e,r){return await Yt.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Or.join)(cn(),(0,tp.v4)());await Hs.default.mkdir(i,{recursive:!0});let o=0;return await _t.parallelForeach(ip(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await Yt.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let{stream:d}=await Iu(t,l),f=l.split("/"),h=f.slice(0,f.length-1),p=(0,Or.join)(i,...h);f.length>1&&!ai.default.existsSync(p)&&await Hs.default.mkdir(p,{recursive:!0}),await(0,zs.pipeline)(d,ai.default.createWriteStream((0,Or.join)(i,...f),{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(Pv,"retrieveDirectory");async function Nv(t,e){let r=st();await Js(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(Nv,"deleteFile");async function Uv(t,e){let r=st();await Js(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ee(i)}))}};return r.deleteObjects(n)}s(Uv,"deleteFiles");async function wS(t,e){t=xe(t),e=Ee(e);let r=st(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return wS(t,e)}s(wS,"deleteFolder");async function sp(t,e,r){return await Yt.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=xe(t);let i=await Hs.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=Ee((0,Or.join)(r,o.name)),u=(0,Or.join)(e,o.name);o.isDirectory()?await sp(t,u,a):await OS({bucket:t,filename:a,stream:ai.default.createReadStream(u)})}return i})}s(sp,"uploadDirectory");async function Lv(t,e,r={}){e=Ee(e);let n=await(0,Xf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,zs.pipeline)(n.body,rp.default.createUnzip(),ep.default.extract(e))}s(Lv,"downloadTarballDirect");async function Mv(t,e,r){e=xe(e),r=Ee(r);let n=await(0,Xf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Or.join)(cn(),r);return await(0,zs.pipeline)(n.body,rp.default.createUnzip(),ep.default.extract(i)),!E.isTest()&&E.SELF_HOSTED&&await sp(e,i,r),i}s(Mv,"downloadTarball");async function Iu(t,e){return await Yt.default.trace("getReadStream",async r=>{t=xe(t),e=Ee(e),r.addTags({bucketName:t,path:e});let n=st(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof Ru.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(Iu,"getReadStream");async function kv(t,e){t=xe(t),e=Ee(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(kv,"getObjectMetadata");async function Fv(t,e){t=xe(t),e=Ee(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode)===404)return!1;throw i}}s(Fv,"objectExists");function Jf(t){let e=t.split("?")[0],r=new RegExp(`^${np}/(?<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(Jf,"extractBucketAndPath");var RS=B(require("querystring"));var DS=B(require("aws-cloudfront-sign"));var Cu;function Bv(){if(!E.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Cu||(Cu=Buffer.from(E.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Cu)}s(Bv,"getPrivateKey");var Wv=s(()=>({keypairId:E.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:Bv(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),ui=s(t=>{let e=$v(t);return DS.getSignedUrl(e,Wv())},"getPresignedUrl"),$v=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${E.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function Gv(t){return`${Ee(t)}/budibase-client.js`}s(Gv,"clientLibraryPath");function Vv(t,e){return`${Ee(t)}/${e}`}s(Vv,"client3rdPartyLibrary");async function qv(t,e){return`/api/assets/${t}/client?${await CS(e)}`}s(qv,"clientLibraryUrl");async function CS(t){let e,r;try{e=$()}finally{r={version:t}}return e&&e!==ae&&(r.tenantId=e),RS.default.encode(r)}s(CS,"getClientCacheKey");async function bS(t){return E.CLOUDFRONT_CDN?ui(t):await ln(E.APPS_BUCKET_NAME,t)}s(bS,"getAppFileUrl");async function Kv(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await bS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(Kv,"enrichPWAImages");var Qv=s(async(t,e,r)=>{let n=xS(t,e);return E.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ui(n)):await ln(E.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),xS=s((t,e)=>{let r=`${t}/${e}`;return E.MULTI_TENANCY&&(r=`${$()}/${r}`),r},"getGlobalFileS3Key");async function jv(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await Yv(e),n=await Hv(e);return{...e,jsUrl:r,iconUrl:n}}))}s(jv,"enrichPluginURLs");async function Yv(t){let e=PS(t);return vS(e)}s(Yv,"getPluginJSUrl");async function Hv(t){let e=NS(t);if(e)return vS(e)}s(Hv,"getPluginIconUrl");async function vS(t){return E.CLOUDFRONT_CDN?ui(t):await ln(E.PLUGIN_BUCKET_NAME,t)}s(vS,"getPluginUrl");function PS(t){return US(t,"plugin.min.js")}s(PS,"getPluginJSKey");function NS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return US(t,e)}s(NS,"getPluginIconKey");function US(t,e){return`${LS(t.name)}/${e}`}s(US,"getPluginS3Key");function LS(t){let e=`${t}`;return E.MULTI_TENANCY&&(e=`${$()}/${e}`),E.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(LS,"getPluginS3Dir");var FS="budibase.log",BS="budibase-logs-history.txt",WS=up.default.join(cn(),"systemlogs");function MS(t){return up.default.join(WS,t)}s(MS,"getFullPath");function $S(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($S,"getSingleFileMaxSizeInfo");function cp(){let t=$S(E.ROLLING_LOG_MAX_SIZE);return kS.createStream(FS,{size:t?.size,path:WS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:BS,initialRotation:!1})}s(cp,"localFileDestination");function zv(){let t=[],e=MS(BS);if(Zs.default.existsSync(e)){let i=Zs.default.readFileSync(e,"utf-8").split(`
|
|
37
|
+
`);for(let o of i.filter(a=>a))t.push(Zs.default.readFileSync(o))}return t.push(Zs.default.readFileSync(MS(FS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(zv,"getLogReadStream");function Jv(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(Jv,"isPlainObject");function Zv(t){return t instanceof Error}s(Zv,"isError");function Xv(t){return typeof t=="string"}s(Xv,"isMessage");var Ir;if(!E.DISABLE_PINO_LOGGER){let t=E.LOG_LEVEL,e={level:t,formatters:{level:c=>({level:c.toUpperCase()}),bindings:()=>E.SELF_HOSTED?{service:E.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(E.isDev()?{stream:(0,GS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),E.SELF_HOSTED&&r.push({stream:cp(),level:t}),Ir=r.length?(0,bu.default)(e,bu.default.multistream(r)):(0,bu.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(g=>{Xv(g)&&(f=`${f} ${g}`.trimStart()),Jv(g)&&d.push(g),Zv(g)&&(l=g)});let h=u(),p={};p={tenantId:i(),appId:o(),automationId:a(),identityId:h?._id,identityType:h?.type,correlationId:zf()};let S=dp.default.scope().active();S&&dp.default.inject(S.context(),VS.formats.LOG,p);let m={err:l,pid:process.pid,...p};if(d.length){let g={},y=0;for(let I=0;I<d.length;I++){let _=d[I],D=_._logKey;D?(delete _._logKey,m[D]=_):(g[y]=_,y++)}Object.keys(g).length&&(m.data=g)}return[m,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Ir?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Ir?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Ir?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Ir?.debug(l,d)};let i=s(()=>{let c;try{c=$()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=be()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=gf()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=$t()}catch{}return c},"getIdentity")}var xu=Ir;var eP=["AccountError"];function tP(t){return t&&t.suppressAlert}s(tP,"isSuppressed");function dn(t,e){e&&eP.includes(e.name)&&tP(e)||console.error(`bb-alert: ${t}`,e)}s(dn,"logAlert");function rP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,dn(t,n)}s(rP,"logAlertWithInfo");function ci(t,e){console.warn(`bb-warn: ${t}`,e)}s(ci,"logWarn");var vu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},fp=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 gt(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 vu&&await u.discard(),dn(`Failed to process job in ${this._queue.name}`,l),c?.(l)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await Le.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var nP=100,Pu,eo=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new gt("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=Re(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},mp=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await eo.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function qS(){return Pu=new eo().init(),Pu}s(qS,"init");function iP(){return Pu||qS()}s(iP,"getProcessor");var ro={};P(ro,{CacheKey:()=>ye,TTL:()=>mn,bustCache:()=>li,destroy:()=>to,get:()=>hn,keys:()=>Nu,store:()=>Ht,withCache:()=>wr,withCacheWithDynamicTTL:()=>KS});function Ct(t){let e=$();return`${t}:${e}`}s(Ct,"generateTenantKey");var fn=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await wf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ct(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Ct(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[Ct(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Ct(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ct(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(Ct(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Ct(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var pn=new fn,ye={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:t=>`oauth2Token_${t}`},mn=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(mn||{}),Nu=s((...t)=>pn.keys(...t),"keys"),hn=s((...t)=>pn.get(...t),"get"),Ht=s((...t)=>pn.store(...t),"store"),to=s((...t)=>pn.delete(...t),"destroy"),wr=s((...t)=>pn.withCache(...t),"withCache"),KS=s((...t)=>pn.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),li=s((...t)=>pn.bustCache(...t),"bustCache");var yp={};P(yp,{createCode:()=>fP,deleteCode:()=>mP,getCode:()=>pP,getExistingInvites:()=>gp,getInviteCodes:()=>ZS,updateCode:()=>dP});var gn={};P(gn,{AUTO_EXTEND_POLLING_MS:()=>YS,doWithLock:()=>no,newRedlock:()=>En});var jS=B(require("redlock"));async function sP(t,e){if(t==="custom")return En(e);switch(t){case"try_once":return En(di.TRY_ONCE);case"try_twice":return En(di.TRY_TWICE);case"default":return En(di.DEFAULT);case"delay_500":return En(di.DELAY_500);case"auto_extend":return En(di.AUTO_EXTEND);default:throw _t.unreachable(t)}}s(sP,"getClient");var di={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function En(t={}){let e={...di.DEFAULT,...t},n=(await Rf()).client;return new jS.default([n],e)}s(En,"newRedlock");function oP(t){let r=`lock:${t.systemLock?"system":$()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(oP,"getLockName");var YS=pe.fromSeconds(10).toMs();async function no(t,e){let r=await sP(t.type,t.customOptions),n,i;try{let o=oP(t),a=t.type==="auto_extend"?YS:t.ttl;if(n=await r.lock(o,a),t.type==="auto_extend"){let c=s(()=>{i=setTimeout(async()=>{n=await n.extend(a,()=>t.onExtend&&t.onExtend()),c()},a/2)},"extendInIntervals");c()}return{executed:!0,result:await e()}}catch(o){if(o.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw o}else throw o}finally{clearTimeout(i),await n?.unlock()}}s(no,"doWithLock");var HS=pe.fromDays(7).toSeconds(),uP=pe.fromSeconds(10).toMs(),Uu="Invitation is not valid or has expired, please request a new one.";function zS(t,e){if(!t)return null;let r=t.tenantId||e;return r?{tenantId:r,invites:t.invites||{}}:null}s(zS,"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 Ep(t){let r=await(await Ps()).get(t);return zS(r,t)}s(Ep,"loadInviteList");async function io(t,e){await(await Ps()).store(t,e)}s(io,"saveInviteList");async function so(t,e){let{result:r}=await no({type:"default",name:"process_user_invite",systemLock:!0,resource:t,ttl:uP},e);return r}s(so,"withInviteListLock");function lP(t,e){return{code:t,email:e.email,info:e.info}}s(lP,"toInviteWithCode");async function JS(t,e){let r=await Ps(),n=zS(await r.get(e),e);if(!n)throw new Error(Uu);if(!Object.keys(n.invites).includes(t))throw new Error(Uu);return{list:n,invite:n.invites[t]}}s(JS,"findInviteInList");async function dP(t,e){let r={...e.info},n=r.tenantId||$();r.tenantId=n,await so(n,async()=>{let i=await Ep(n)||{tenantId:n,invites:{}};i.invites[t]={email:e.email,info:r,expiresAt:Date.now()+HS*1e3},await io(n,i)})}s(dP,"updateCode");async function fP(t,e){let r=ee(),n={...e||{}},i=n.tenantId||$();return n.tenantId=i,await so(i,async()=>{let o=await Ep(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+HS*1e3},await io(i,o)}),r}s(fP,"createCode");async function pP(t,e){let r=e||$();return await so(r,async()=>{let n=await JS(t,r),{list:i,invite:o}=n;if(o.expiresAt<=Date.now())throw delete i.invites[t],await io(i.tenantId,i),new Error(Uu);return{email:o.email,info:o.info}})}s(pP,"getCode");async function mP(t,e){let r=e||$();try{await so(r,async()=>{let n=await JS(t,r);delete n.list.invites[t],await io(n.list.tenantId,n.list)})}catch(n){if(n instanceof Error&&n.message===Uu)return;throw n}}s(mP,"deleteCode");async function ZS(){let t=$(),e=await so(t,async()=>{let n=await Ep(t)||{tenantId:t,invites:{}},i=cP(n);return n=i.list,i.changed&&await io(t,n),n}),r=new Map;for(let[n,i]of Object.entries(e.invites))r.set(n,lP(n,i));return Array.from(r.values())}s(ZS,"getInviteCodes");async function gp(t){let e=new Set(t.map(r=>r.toLowerCase()));return(await ZS()).filter(r=>e.has(r.email.toLowerCase()))}s(gp,"getExistingInvites");var Tp={};P(Tp,{createCode:()=>EP,getCode:()=>gP,invalidateCode:()=>yP});var hP=pe.fromHours(1).toSeconds();async function EP(t,e){let r=ee();return await(await Ns()).store(r,{userId:t,info:e},hP),r}s(EP,"createCode");async function gP(t){let r=await(await Ns()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(gP,"getCode");async function yP(t){await(await Ns()).delete(t)}s(yP,"invalidateCode");var br={};P(br,{getUser:()=>Ro,getUsers:()=>jL,invalidateUser:()=>Co});var oo={};P(oo,{getPlatformDB:()=>Dr,users:()=>yt});var yt={};P(yt,{addSsoUser:()=>eA,addUser:()=>IP,getUserDoc:()=>XS,lookupTenantId:()=>TP,removeUser:()=>wP,updateUserDoc:()=>SP});function Dr(){return Re(fe.PLATFORM_INFO.name)}s(Dr,"getPlatformDB");async function TP(t){return E.MULTI_TENANCY?(await XS(t)).tenantId:ae}s(TP,"lookupTenantId");async function XS(t){return Dr().get(t)}s(XS,"getUserDoc");async function SP(t){await Dr().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 Sp(t,e){let r=Dr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s(Sp,"addUserDoc");async function eA(t,e,r,n){return Sp(t,()=>OP(t,e,r,n))}s(eA,"addSsoUser");async function IP(t,e,r,n){let i=[Sp(e,()=>AP(e,t)),Sp(r,()=>_P(e,r,t))];n&&i.push(eA(n,r,e,t)),await Promise.all(i)}s(IP,"addUser");async function wP(t){let e=Dr(),r=[t._id,t.email],n=await e.allDocs({keys:r,include_docs:!0});await e.bulkRemove(n.rows.map(i=>i.doc),{silenceErrors:!0})}s(wP,"removeUser");var yn={};P(yn,{getAccount:()=>Rr,getAccountByTenantId:()=>fi,getStatus:()=>DP});var tA=B(require("node-fetch"));var ao=class{static{s(this,"API")}constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";js.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,tA.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 Ap=new ao(E.INTERNAL_ACCOUNT_PORTAL_URL),_p=E.SELF_HOSTED||E.DISABLE_ACCOUNT_PORTAL,Rr=s(async t=>{if(_p)return;let e={email:t},r=await Ap.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"),fi=s(async t=>{if(_p)return;let e={tenantId:t},r=await Ap.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"),DP=s(async()=>{if(_p)return;let t=await Ap.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 gi={};P(gi,{UserDB:()=>xt,addAppBuilder:()=>VL,bulkGetGlobalUsersById:()=>ic,bulkUpdateGlobalUsers:()=>Io,cleanseUserObject:()=>qp,creatorsInList:()=>An,doesUserExist:()=>FL,getAccountHolderFromUsers:()=>nc,getAllUserIds:()=>ML,getAllUsers:()=>kL,getById:()=>_n,getCreatorCount:()=>$L,getExistingAccounts:()=>Ei,getExistingPlatformUsers:()=>VA,getExistingTenantUsers:()=>GA,getFirstPlatformUser:()=>_o,getGlobalUserByAppPage:()=>zA,getGlobalUserByEmail:()=>At,getPlatformUsers:()=>Xu,getUserCount:()=>WL,hasAdminPermissions:()=>Cr,hasAppBuilderPermissions:()=>QA,hasBuilderPermissions:()=>Fe,isAdmin:()=>bt,isAdminOrBuilder:()=>KA,isAdminOrWorkspaceBuilder:()=>ec,isBuilder:()=>Si,isCreatorAsync:()=>Oo,isCreatorSync:()=>tc,isGlobalBuilder:()=>qA,paginatedUsers:()=>ZA,removeAppBuilder:()=>qL,removePortalUserPermissions:()=>GL,searchExistingEmails:()=>Bp,searchGlobalUsersByApp:()=>HA,searchGlobalUsersByAppAccess:()=>Vp,searchGlobalUsersByEmail:()=>JA,validateUniqueUser:()=>rc});var Vu={};P(Vu,{ActiveContentFileError:()=>ku,BadRequestError:()=>co,BudibaseError:()=>uo,EmailUnavailableError:()=>zt,FeatureDisabledError:()=>Wu,ForbiddenError:()=>Fu,HTTPError:()=>ke,NotFoundError:()=>Mu,NotImplementedError:()=>Bu,UnexpectedError:()=>Lu,UsageLimitError:()=>$u,getErrorMessage:()=>rA,getPublicError:()=>Gu});var uo=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"BudibaseError")}};function rA(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(rA,"getErrorMessage");var Gu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),ke=class t extends uo{constructor(r,n,i="http"){super(r,i);this.status=n}static{s(this,"HTTPError")}static async fromResponse(r){let n=await r.text(),i=n,o=r.status,a="http";try{let u=JSON.parse(n);i=u.message,o=u.status,a=u.error?.code}catch{}return new t(i,o,a)}},Lu=class extends ke{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},Mu=class extends ke{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},co=class extends ke{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},ku=class extends co{static{s(this,"ActiveContentFileError")}constructor(e){super(`File "${e}" contains active content which is not permitted`)}},Fu=class extends ke{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},Bu=class extends ke{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},Wu=class extends Error{static{s(this,"FeatureDisabledError")}constructor(e){super(`Feature disabled: '${e}'`)}},$u=class extends Error{static{s(this,"UsageLimitError")}constructor(e){super(`Usage limit exceeded: '${e}'`)}},zt=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var Dp={};P(Dp,{PASSWORD_MAX_LENGTH:()=>Ip,PASSWORD_MIN_LENGTH:()=>Op,validatePassword:()=>wp});var Op=+(E.PASSWORD_MIN_LENGTH||12),Ip=+(E.PASSWORD_MAX_LENGTH||512);function wp(t){return!t||t.length<Op?{valid:!1,error:`Password invalid. Minimum ${Op} characters.`}:t.length>Ip?{valid:!1,error:`Password invalid. Maximum ${Ip} characters.`}:{valid:!0}}s(wp,"validatePassword");var qu={};P(qu,{createASession:()=>RP,endSession:()=>CP,getSession:()=>Cp,getSessionsForUser:()=>lo,invalidateSessions:()=>Tn,updateSessionTTL:()=>Rp});var iA=require("uuid");var sA=E.SESSION_EXPIRY_SECONDS?parseInt(E.SESSION_EXPIRY_SECONDS):pe.fromDays(7).toSeconds();function pi(t,e){return`${t}/${e}`}s(pi,"makeSessionID");async function lo(t){return t?(await(await yr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(lo,"getSessionsForUser");async function Tn(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await lo(t)).map(a=>({key:pi(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:pi(t,o)}))),i&&i.length>0){let o=await yr(),a=[];for(let u of i)a.push(o.delete(u.key));E.isTest()||ci(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(Tn,"invalidateSessions");async function RP(t,e){let r=await lo(t),n=0;if(r.length>=3){let l=r.sort((h,p)=>new Date(h.createdAt).getTime()-new Date(p.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(h=>h.sessionId);n=f.length,await Tn(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await yr(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,iA.v4)(),u=pi(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,sA),{session:c,invalidatedSessionCount:n}}s(RP,"createASession");async function Rp(t){let e=await yr(),r=pi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,sA)}s(Rp,"updateSessionTTL");async function CP(t,e){await(await yr()).delete(pi(t,e))}s(CP,"endSession");async function Cp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await yr()).get(pi(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(Cp,"getSession");var hi={};P(hi,{account:()=>gA,action:()=>yA,ai:()=>TA,analytics:()=>Qu,app:()=>SA,asyncEventQueue:()=>Tt,auditLog:()=>AA,auth:()=>Zu,automation:()=>_A,backfill:()=>OA,backfillCache:()=>Hu,backup:()=>IA,datasource:()=>wA,email:()=>DA,environmentVariable:()=>RA,group:()=>CA,identification:()=>St,initAsyncEvents:()=>OL,installation:()=>Eo,layout:()=>bA,license:()=>xA,org:()=>vA,plugin:()=>PA,processors:()=>Up,publishEvent:()=>A,query:()=>NA,resource:()=>UA,role:()=>Ao,rowAction:()=>LA,rows:()=>MA,screen:()=>kA,serve:()=>FA,shutdown:()=>IL,table:()=>BA,user:()=>Be,view:()=>WA,workspace:()=>$A});var Qu={};P(Qu,{enabled:()=>Ku});var Ku=s(async()=>ju(),"enabled");var Tt;function Yu(){Tt=new gt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}s(Yu,"init");async function oA(){Tt&&await Tt.close()}s(oA,"shutdown");async function aA(t){Tt||Yu();let{event:e,identity:r}=t;Vm.indexOf(e)!==-1&&r.tenantId&&await Tt.add(t)}s(aA,"publishAsyncEvent");var Hu={};P(Hu,{end:()=>xP,isAlreadySent:()=>vp,isBackfillingEvent:()=>xp,recordEvent:()=>bp,start:()=>bP});var bP=s(async t=>PP({eventWhitelist:t}),"start"),bp=s(async(t,e)=>{let r=Pp(t,e);await Ht(r,e,void 0,{useTenancy:!1})},"recordEvent"),xP=s(async()=>{await NP(),await UP()},"end"),vP=s(async()=>hn(ye.BACKFILL_METADATA),"getBackfillMetadata"),PP=s(async t=>Ht(ye.BACKFILL_METADATA,t),"saveBackfillMetadata"),NP=s(async()=>{await to(ye.BACKFILL_METADATA)},"deleteBackfillMetadata"),UP=s(async()=>{let t=Pp(),e=await Nu(t);for(let r of e)await to(r,{useTenancy:!1})},"clearEvents"),xp=s(async t=>{let r=(await vP())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),vp=s(async(t,e)=>{let r=Pp(t,e);return!!await hn(r,{useTenancy:!1})},"isAlreadySent"),LP={"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}`},Pp=s((t,e)=>{let r,n=$();if(t){r=`${ye.EVENTS}:${n}:${t}`;let i=LP[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${ye.EVENTS}:${n}:*`;return r},"getEventKey");var Up={};P(Up,{analyticsProcessor:()=>mA,init:()=>KP,processors:()=>Zt});var fA=require("posthog-node");var MP=s(t=>t==="served:builder"||t==="served:app:preview"||t==="served:app","isRateLimited"),kP=s(t=>t==="served:app:preview"||t==="served:app","isPerApp");var cA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},lA=s(async t=>{if(!MP(t))return!1;let e=await FP(t);if(e){let r=new Date(e.timestamp);switch(cA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await uA(t,{timestamp:Date.now()}),!1):!0}}else return await uA(t,{timestamp:Date.now()}),!1},"limited"),dA=s(t=>{let e=`${ye.EVENTS_RATE_LIMIT}:${t}`;return kP(t)&&(e=e+":"+be()),e},"eventKey"),FP=s(async t=>{let e=dA(t);return await hn(e)},"readEvent"),uA=s(async(t,e)=>{let r=dA(t),n=cA[t],i;switch(n){case"calendarDay":i=86400}await Ht(r,e,i)},"recordEvent");var WP=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],fo=class{static{s(this,"PosthogProcessor")}constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new fA.PostHog(e)}async processEvent(e,r,n,i){if(WP.includes(e)||await lA(e))return;n=this.clearPIIProperties(n),n.version=E.VERSION,n.service=E.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let o=be();o&&(n.appId=o);let a={distinctId:r.id,event:e,properties:n};i&&(a.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(a.groups={},r.installationId&&(a.groups.installation=r.installationId,a.properties.installationId=r.installationId),r.tenantId&&(a.groups.tenant=r.tenantId,a.properties.tenantId=r.tenantId)),this.posthog.capture(a)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}async shutdown(){await this.posthog.shutdown()}};var pA=fo;var $P=["installation:version:upgraded","installation:version:downgraded"],GP=["installation","tenant"],po=class{static{s(this,"AnalyticsProcessor")}constructor(){E.POSTHOG_TOKEN&&!E.isTest()&&(this.posthog=new pA(E.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!$P.includes(e)&&!await Ku()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!GP.includes(e.type)&&!await Ku()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}async shutdown(){this.posthog&&await this.posthog.shutdown()}};var Np=E.SELF_HOSTED&&!E.isDev(),mo=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){Np||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Np||console.log("[audit] identified",e)}async identifyGroup(e){Np||console.log("[audit] group identified",e)}async shutdown(){}};var mi=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new gt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Ce(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};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&&$f(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:be(),hostInfo:r.hostInfo},tenantId:$()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var ho=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var mA=new po,VP=new mo,qP=new mi;function KP(t){return mi.init(t)}s(KP,"init");var Zt=new ho([mA,VP,qP]);var zu={};P(zu,{checkInstallVersion:()=>YP,getInstall:()=>go,getInstallFromDB:()=>Mp});var Lp=B(require("semver"));var go=s(async()=>wr(ye.INSTALLATION,86400,Mp,{useTenancy:!1}),"getInstall");async function QP(t){let e={_id:fe.PLATFORM_INFO.docs.install,installId:ee(),version:E.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Mp();throw r}}s(QP,"createInstallDoc");var Mp=s(async()=>je(fe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(fe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await QP(t);else throw r}return e}),"getInstallFromDB"),jP=s(async t=>{try{await je(fe.PLATFORM_INFO.name,async e=>{let r=await go();r.version=t,await e.put(r),await li(ye.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),YP=s(async()=>{let t=await go(),e=t.version,r=E.VERSION;try{if(e!==r){let n=Lp.default.gt(r,e),i=Lp.default.lt(r,e);await jP(r)&&(await ws({_id:t.installId,type:"installation"},async()=>{n?await Eo.upgraded(e,r):i&&await Eo.downgraded(e,r)}),await St.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?dn(`Invalid version "${r}" - is it semver?`):dn("Failed to retrieve version",n)}},"checkInstallVersion");var HP=s(async()=>{let t=Zd(),e=So(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await Sn(),i=yo();return{id:hA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await Sn(),i=await Ju($()),o=yo();return{id:hA(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:$(),environment:e}}else if(r==="user"){let n=t,i=await Ju($()),o=await Sn(),a=n.account,u;return a?u=a.hosting:u=yo(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:$(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),zP=s(async(t,e)=>{let r=t,n="installation",i=yo(),o=E.VERSION,a=So(),u={id:r,type:n,hosting:i,version:o,environment:a};await kp(u,e),await To({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),JP=s(async(t,e,r,n=E.VERSION)=>{let i=await Ju(t),o="tenant",a=await Sn(),u=So(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await kp(c,r),await To({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),ZP=s(async(t,e,r)=>{let n=t._id,i=await Ju(t.tenantId),o="user",a=Fe(t),u=Cr(t),c;Ko(t)&&(c=t.providerType);let d=(await Ei([t.email])).length>0,f=!!e&&d&&e.verified,h=await Sn(),p=e?e.hosting:yo(),S=So();await To({id:n,type:o,hosting:p,installationId:h,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:S},r)},"identifyUser"),XP=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=qo(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await Sn(),l=So();if(Vo(t)){let f=await At(t.email);f?._id&&(e=f._id)}await To({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),To=s(async(t,e)=>{await Zt.identify(t,e)},"identify"),kp=s(async(t,e)=>{await Zt.identifyGroup(t,e)},"identifyGroup"),So=s(()=>E.isDev()?"development":E.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),yo=s(()=>E.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),Sn=s(async()=>eN()?"account-portal":(await go()).installId,"getInstallationId"),Ju=s(async t=>E.SELF_HOSTED?EA(t):t,"getEventTenantId"),EA=s(async t=>Ce(t,()=>wr(ye.UNIQUE_TENANT_ID,86400,async()=>{let e=H(),r=await yi(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ee()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=E.VERSION,await e.put(r),n)})),"getUniqueTenantId"),eN=s(()=>E.SERVICE==="account-portal","isAccountPortal"),hA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),St={getCurrentIdentity:HP,identifyInstallationGroup:zP,identifyTenantGroup:JP,identifyUser:ZP,identifyAccount:XP,identify:To,identifyGroup:kp,getInstallationId:Sn,getUniqueTenantId:EA};var A=s(async(t,e,r,n)=>{let i=n||await St.getCurrentIdentity();if(!(n?!1:await xp(t))){await aA({event:t,identity:i,properties:e,timestamp:r}),await Zt.processEvent(t,i,e,r);return}await vp(t,e)||(await Zt.processEvent(t,i,e,r),await bp(t,e))},"publishEvent");async function tN(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}s(tN,"created");async function rN(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}s(rN,"deleted");async function nN(t){let e={tenantId:t.tenantId};await A("account:verified",e)}s(nN,"verified");var gA={created:tN,deleted:rN,verified:nN};async function iN(t,e){console.info("action:automation_step:executed",`disabled. Action step ${t.stepId} not published at ${e}`)}s(iN,"automationStepExecuted");async function sN(t,e){console.info("action:automation_step:executed",`disabled. Action type ${t.type} not published at ${e}`)}s(sN,"crudExecuted");async function oN(t,e){console.info("action:automation_step:executed",`disabled. Execution for ai agent ${t.agentId} not published at ${e}`)}s(oN,"aiAgentExecuted");var yA={aiAgentExecuted:oN,automationStepExecuted:iN,crudExecuted:sN};async function aN(t){let e={};await A("ai:config:created",e,t)}s(aN,"AIConfigCreated");async function uN(){let t={};await A("ai:config:updated",t)}s(uN,"AIConfigUpdated");var TA={AIConfigCreated:aN,AIConfigUpdated:uN};var cN=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)},"created");async function lN(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}s(lN,"updated");async function dN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}s(dN,"deleted");async function fN(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}s(fN,"published");async function pN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}s(pN,"unpublished");async function mN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}s(mN,"fileImported");async function hN(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}s(hN,"duplicated");async function EN(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}s(EN,"templateImported");async function gN(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}s(gN,"versionUpdated");async function yN(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}s(yN,"versionReverted");async function TN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}s(TN,"reverted");async function SN(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}s(SN,"exported");var SA={created:cN,updated:lN,deleted:dN,published:fN,unpublished:pN,fileImported:mN,duplicated:hN,templateImported:EN,versionUpdated:gN,versionReverted:yN,reverted:TN,exported:SN};async function AN(t){let e={filters:t};await A("audit_log:filtered",e)}s(AN,"filtered");async function _N(t){let e={filters:t};await A("audit_log:downloaded",e)}s(_N,"downloaded");var AA={filtered:AN,downloaded:_N};async function ON(t,e){let n={userId:(await St.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}s(ON,"login");async function IN(t){let r={userId:(await St.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}s(IN,"logout");async function wN(t,e){let r={type:t};await A("auth:sso:created",r,e)}s(wN,"SSOCreated");async function DN(t){let e={type:t};await A("auth:sso:updated",e)}s(DN,"SSOUpdated");async function RN(t,e){let r={type:t};await A("auth:sso:activated",r,e)}s(RN,"SSOActivated");async function CN(t){let e={type:t};await A("auth:sso:deactivated",e)}s(CN,"SSODeactivated");var Zu={login:ON,logout:IN,SSOCreated:wN,SSOUpdated:DN,SSOActivated:RN,SSODeactivated:CN};async function bN(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}s(bN,"created");async function xN(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}s(xN,"triggerUpdated");async function vN(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}s(vN,"deleted");async function PN(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}s(PN,"tested");var NN=s(async(t,e)=>{let r={count:t};await A("automations:run",r,e)},"run");async function UN(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}s(UN,"stepCreated");async function LN(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}s(LN,"stepDeleted");var _A={created:bN,triggerUpdated:xN,deleted:vN,tested:PN,run:NN,stepCreated:UN,stepDeleted:LN};var Ti=!E.SELF_HOSTED&&!E.isDev();async function MN(t){Ti||await A("app:backfill:succeeded",t)}s(MN,"appSucceeded");async function kN(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}s(kN,"appFailed");async function FN(t){Ti||await A("tenant:backfill:succeeded",t)}s(FN,"tenantSucceeded");async function BN(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}s(BN,"tenantFailed");async function WN(){if(Ti)return;let t={};await A("installation:backfill:succeeded",t)}s(WN,"installationSucceeded");async function $N(t){if(Ti)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}s($N,"installationFailed");var OA={appSucceeded:MN,appFailed:kN,tenantSucceeded:FN,tenantFailed:BN,installationSucceeded:WN,installationFailed:$N};async function GN(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}s(GN,"appBackupRestored");async function VN(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",o)}s(VN,"appBackupTriggered");var IA={appBackupRestored:GN,appBackupTriggered:VN};function Fp(t){return!Object.values(Bo).includes(t.source)}s(Fp,"isCustom");async function qN(t,e){let r={datasourceId:t._id,source:t.source,custom:Fp(t)};await A("datasource:created",r,e)}s(qN,"created");async function KN(t){let e={datasourceId:t._id,source:t.source,custom:Fp(t)};await A("datasource:updated",e)}s(KN,"updated");async function QN(t){let e={datasourceId:t._id,source:t.source,custom:Fp(t)};await A("datasource:deleted",e)}s(QN,"deleted");var wA={created:qN,updated:KN,deleted:QN};async function jN(t){let e={};await A("email:smtp:created",e,t)}s(jN,"SMTPCreated");async function YN(){let t={};await A("email:smtp:updated",t)}s(YN,"SMTPUpdated");var DA={SMTPCreated:jN,SMTPUpdated:YN};async function HN(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}s(HN,"created");async function zN(t){let e={name:t};await A("environment_variable:deleted",e)}s(zN,"deleted");async function JN(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}s(JN,"upgradePanelOpened");var RA={created:HN,deleted:zN,upgradePanelOpened:JN};async function ZN(t,e){let r={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await A("user_group:created",r,e)}s(ZN,"created");async function XN(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await A("user_group:updated",e)}s(XN,"updated");async function eU(t){let e={groupId:t._id,viaScim:Et(),audited:{name:t.name}};await A("user_group:deleted",e)}s(eU,"deleted");async function tU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await A("user_group:user_added",n)}s(tU,"usersAdded");async function rU(t,e,r){let n={count:t,groupId:e._id,userIds:r,viaScim:Et(),audited:{name:e.name}};await A("user_group:users_deleted",n)}s(rU,"usersDeleted");async function nU(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}s(nU,"createdOnboarding");async function iU(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}s(iU,"permissionsEdited");var CA={created:ZN,updated:XN,deleted:eU,usersAdded:tU,usersDeleted:rU,createdOnboarding:nU,permissionsEdited:iU};async function sU(t){let e={currentVersion:t};await A("installation:version:checked",e)}s(sU,"versionChecked");async function oU(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}s(oU,"upgraded");async function aU(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}s(aU,"downgraded");async function uU(){let t={};await A("installation:firstStartup",t)}s(uU,"firstStartup");var Eo={versionChecked:sU,upgraded:oU,downgraded:aU,firstStartup:uU};async function cU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}s(cU,"created");async function lU(t){let e={layoutId:t};await A("layout:deleted",e)}s(lU,"deleted");var bA={created:cU,deleted:lU};async function dU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}s(dU,"planChanged");async function fU(t){let e={accountId:t.accountId};await A("license:activated",e)}s(fU,"activated");async function pU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}s(pU,"checkoutOpened");async function mU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}s(mU,"checkoutSuccess");async function hU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}s(hU,"portalOpened");async function EU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}s(EU,"paymentFailed");async function gU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}s(gU,"paymentRecovered");var xA={planChanged:dU,activated:fU,checkoutOpened:pU,checkoutSuccess:mU,portalOpened:hU,paymentFailed:EU,paymentRecovered:gU};async function yU(t){let e={};await A("org:info:name:updated",e,t)}s(yU,"nameUpdated");async function TU(t){let e={};await A("org:info:logo:updated",e,t)}s(TU,"logoUpdated");async function SU(t){let e={};await A("org:platformurl:updated",e,t)}s(SU,"platformURLUpdated");async function AU(){let t={};await A("analytics:opt:out",t)}s(AU,"analyticsOptOut");async function _U(){let t={};await A("analytics:opt:out",t)}s(_U,"analyticsOptIn");var vA={nameUpdated:yU,logoUpdated:TU,platformURLUpdated:SU,analyticsOptOut:AU,analyticsOptIn:_U};async function OU(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}s(OU,"init");async function IU(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}s(IU,"imported");async function wU(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}s(wU,"deleted");var PA={init:OU,imported:IU,deleted:wU};var DU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},"created"),RU=s(async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},"updated"),CU=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await A("query:deleted",n)},"deleted"),bU=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},"imported"),xU=s(async(t,e)=>{let r={count:t};await A("queries:run",r,e)},"run"),vU=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},"previewed"),NA={created:DU,updated:RU,deleted:CU,imported:bU,run:xU,previewed:vU};async function PU({resource:t,fromWorkspace:e,toWorkspace:r},n){let i={resource:t,fromWorkspace:e,toWorkspace:r};await A("resource:copied_to_workspace",i,n)}s(PU,"duplicatedToWorkspace");var UA={duplicatedToWorkspace:PU};async function NU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}s(NU,"created");async function UU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}s(UU,"updated");async function LU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}s(LU,"deleted");async function MU(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}s(MU,"assigned");async function kU(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}s(kU,"unassigned");var Ao={created:NU,updated:UU,deleted:LU,assigned:MU,unassigned:kU};async function FU(t,e){await A("row_action:created",t,e)}s(FU,"created");var LA={created:FU};var BU=s(async(t,e)=>{let r={count:t};await A("rows:created",r,e)},"created"),WU=s(async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},"imported"),MA={created:BU,imported:WU};async function $U(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}s($U,"created");async function GU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}s(GU,"deleted");var kA={created:$U,deleted:GU};async function VU(t){let e={timezone:t};await A("served:builder",e)}s(VU,"servedBuilder");async function qU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}s(qU,"servedApp");async function KU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}s(KU,"servedAppPreview");var FA={servedBuilder:VU,servedApp:qU,servedAppPreview:KU};async function QU(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}s(QU,"created");async function jU(t,e){let r,n;for(let o in e.schema)if(!t.schema[o]){let a=e.schema[o];"default"in a&&a.default!=null&&(r=!0),a.type==="ai"&&(n=a.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}s(jU,"updated");async function YU(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}s(YU,"deleted");async function HU(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}s(HU,"exported");async function zU(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}s(zU,"imported");var BA={created:QU,updated:jU,deleted:YU,exported:HU,imported:zU};async function JU(t,e){let r={userId:t._id,viaScim:Et(),audited:{email:t.email}};await A("user:created",r,e)}s(JU,"created");async function ZU(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await A("user:updated",e)}s(ZU,"updated");async function XU(t){let e={userId:t._id,viaScim:Et(),audited:{email:t.email}};await A("user:deleted",e)}s(XU,"deleted");async function eL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}s(eL,"permissionAdminAssigned");async function tL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}s(tL,"permissionAdminRemoved");async function rL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}s(rL,"permissionBuilderAssigned");async function nL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}s(nL,"permissionBuilderRemoved");async function iL(t){let e={audited:{email:t}};await A("user:invited",e)}s(iL,"invited");async function sL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}s(sL,"inviteAccepted");async function oL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}s(oL,"passwordForceReset");async function aL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}s(aL,"passwordUpdated");async function uL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}s(uL,"passwordResetRequested");async function cL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}s(cL,"passwordReset");async function lL(t){let e={users:t};await A("user:data:collaboration",e)}s(lL,"dataCollaboration");var Be={created:JU,updated:ZU,deleted:XU,permissionAdminAssigned:eL,permissionAdminRemoved:tL,permissionBuilderAssigned:rL,permissionBuilderRemoved:nL,invited:iL,inviteAccepted:sL,passwordForceReset:oL,passwordUpdated:aL,passwordResetRequested:uL,passwordReset:cL,dataCollaboration:lL};async function dL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}s(dL,"created");async function fL(t){let e={tableId:t.tableId};await A("view:updated",e)}s(fL,"updated");async function pL(t,e){let r={...Le.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}s(pL,"deleted");async function mL(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}s(mL,"exported");async function hL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}s(hL,"filterCreated");async function EL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}s(EL,"filterUpdated");async function gL(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}s(gL,"filterDeleted");async function yL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}s(yL,"calculationCreated");async function TL(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}s(TL,"calculationUpdated");async function SL(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}s(SL,"calculationDeleted");async function AL(t,e){let r={tableId:t};await A("view:join:created",r,e)}s(AL,"viewJoinCreated");var WA={created:dL,updated:fL,deleted:pL,exported:mL,filterCreated:hL,filterUpdated:EL,filterDeleted:gL,calculationCreated:yL,calculationUpdated:TL,calculationDeleted:SL,viewJoinCreated:AL};async function _L(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}s(_L,"deleted");var $A={deleted:_L};function OL(){}s(OL,"initAsyncEvents");var IL=s(async()=>{await Zt.shutdown(),console.log("Events shutdown")},"shutdown");var Wp={};P(Wp,{creatorsInList:()=>An,getAccountHolderFromUsers:()=>nc,hasAdminPermissions:()=>Cr,hasAppBuilderPermissions:()=>QA,hasBuilderPermissions:()=>Fe,isAdmin:()=>bt,isAdminOrBuilder:()=>KA,isAdminOrWorkspaceBuilder:()=>ec,isBuilder:()=>Si,isCreatorAsync:()=>Oo,isCreatorSync:()=>tc,isGlobalBuilder:()=>qA,validateUniqueUser:()=>rc});async function Bp(t){let e=[],r=await GA(t);e.push(...r.map(a=>a.email));let n=await VA(t);e.push(...n.map(a=>a._id));let i=await Ei(t);e.push(...i.map(a=>a.email));let o=await gp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(Bp,"searchExistingEmails");async function Xu(t){return await Fs("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(Xu,"getPlatformUsers");async function _o(t){return(await Xu(t))[0]??null}s(_o,"getFirstPlatformUser");async function GA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await qt("by_email2",r,void 0,n)}s(GA,"getExistingTenantUsers");async function VA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fs("platform_users_lowercase_2",r)}s(VA,"getExistingPlatformUsers");async function Ei(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fs("account_by_email",r)}s(Ei,"getExistingAccounts");var Si=Me.users.isBuilder,bt=Me.users.isAdmin,qA=Me.users.isGlobalBuilder,KA=Me.users.isAdminOrBuilder,Cr=Me.users.hasAdminPermissions,Fe=Me.users.hasBuilderPermissions,QA=Me.users.hasAppBuilderPermissions,ec=Me.users.isAdminOrWorkspaceBuilder;async function An(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await H().getMultiple(r,{allowMissing:!0}),t.map(i=>tc(i,e))}s(An,"creatorsInList");async function Oo(t){let e=[];return t.userGroups&&(e=await H().getMultiple(t.userGroups)),tc(t,e)}s(Oo,"isCreatorAsync");function tc(t,e){let r=Me.users.isCreator(t);return!r&&t?wL(t,e):r}s(tc,"isCreatorSync");function wL(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(wL,"isCreatorByGroupMembership");async function rc(t,e){if(E.MULTI_TENANCY){let r=await _o(t);if(r!=null&&r.tenantId!==e)throw new zt(t)}if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let r=await Rr(t);if(r&&r.verified&&r.tenantId!==e)throw new zt(t)}}s(rc,"validateUniqueUser");async function nc(t){if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let e=await Ei(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(nc,"getAccountHolderFromUsers");var $p=s(async t=>{await Be.deleted(t),Fe(t)&&await Be.permissionBuilderRemoved(t),Cr(t)&&await Be.permissionAdminRemoved(t)},"handleDeleteEvents"),DL=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ao.assigned(t,i)},"assignAppRoleEvents"),RL=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ao.unassigned(t,i)},"unassignAppRoleEvents"),CL=s(async(t,e)=>{let r=t.roles,n=e?.roles;await DL(t,r,n),await RL(t,r,n)},"handleAppRoleEvents"),Gp=s(async(t,e)=>{let r=$(),n;!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL&&(n=await fi(r)),await St.identifyUser(t,n),e?(await Be.updated(t),xL(t,e)&&await Be.permissionBuilderRemoved(t),PL(t,e)&&await Be.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Be.passwordForceReset(t),t.password!==e.password&&await Be.passwordUpdated(t)):await Be.created(t),bL(t,e)&&await Be.permissionBuilderAssigned(t),vL(t,e)&&await Be.permissionAdminAssigned(t),await CL(t,e)},"handleSaveEvents"),bL=s((t,e)=>jA(t,e,Fe),"isAddingBuilder"),xL=s((t,e)=>YA(t,e,Fe),"isRemovingBuilder"),vL=s((t,e)=>jA(t,e,Cr),"isAddingAdmin"),PL=s((t,e)=>YA(t,e,Cr),"isRemovingAdmin"),jA=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),YA=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var UL=s(async t=>{let e=t._id;await yt.removeUser(t),await $p(t),await br.invalidateUser(e),await Tn(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),xt=class t{static{s(this,"UserDB")}static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return E.ENABLE_SSO_MAINTENANCE_MODE&&bt(e)?!1:await t.features.isSSOEnforced()||Ko(e)?!0:(r||(r=await fi($())),!!(r&&r.email===e.email&&qo(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,o){let{password:a,_id:u}=e;i&&!i.password&&(r.requirePassword=!1);let c;if(a&&a!==i?.password){if(await t.isPreventPasswordActions(e,o))throw new ke("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=wp(a);if(!f.valid)throw new ke(f.error,400)}c=r.hashPassword?await zd(a):a}else i&&(c=i.password);let l=r.requirePassword&&!await t.features.isSSOEnforced();if(!c&&l)throw"Password must be specified.";u=u||ri();let d={createdAt:Date.now(),...i,...e,_id:u,password:c,tenantId:n};return d.roles||(d.roles={}),d.status==null&&(d.status="active"),d}static async allUsers(){return(await H().allDocs(on(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByWorkspace(e){if(typeof e!="string"||!e)throw new Error("Must provide a string based workspace ID");return{userCount:(await Bs("by_app",ni(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await Vp(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return At(e)}static async getUser(e){let r=await _n(e);return r&&delete r.password,r}static async bulkGet(e){return await ic(e)}static async bulkUpdate(e){return await Io(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=$(),i=H(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await _n(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!l&&o&&(l=await At(o),l&&l._id!==a))throw new zt(o);let d=1,f=0;if((r.isAccountHolder||l)&&(d=0,f=1),l){let[m,g]=await An([l,e]);f=m!==g?1:0}let h=!l,p=!!l&&!!o&&l.email!==o,S=!r.isAccountHolder&&!!o&&(h||p);return t.quotas.addUsers(d,f,async()=>{S&&await rc(o,n);let m=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(m=qp(m,l)),!l&&c?.length&&(m.roles={...c});let g=[];if(!a&&u.length>0)for(let y of u)g.push(t.groups.addUsers(y,[m._id]));try{let y=await i.put(m);return m._rev=y.rev,await Gp(m,l),l&&m.email!==l.email&&await yt.removeUser({email:l.email}),await yt.addUser(n,m._id,m.email,m.ssoId),await br.invalidateUser(y.id),await Promise.all(g),i.get(m._id)}catch(y){throw y.status===409?"User exists already":y}})}static async bulkCreate(e,r){let n=$(),i=[],o=[],a=[],u=e.map(h=>h.email),c=await Bp(u),l=[];for(let h of e){let p=o.find(m=>m.email.toLowerCase()===h.email.toLowerCase()),S=c.includes(h.email.toLowerCase());if(p||S){l.push({email:h.email,reason:"Unavailable"});continue}h.userGroups=r||[],o.push(h),await Oo(h)&&a.push(h)}let d=await fi(n),f=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let S of o)f&&delete S.password,i.push(t.buildUser(S,{hashPassword:!0,requirePassword:!f},n,void 0,d));let h=await Promise.all(i);await Io(h);for(let S of h)await yt.addUser(n,S._id,S.email),await Gp(S,void 0);let p=h.map(S=>({_id:S._id,email:S.email}));if(Array.isArray(p)&&r){let S=[],m=p.map(g=>g._id);for(let g of r)S.push(t.groups.addUsers(g,m));await Promise.all(S)}return{successful:p,unsuccessful:l}})}static async bulkDelete(e){let r=H(),n={successful:[],unsuccessful:[]},i=await nc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),u=a.map(p=>({...p,_deleted:!0})),c=await Io(u),d=(await An(a)).filter(p=>p).length,f=[];for(let p of a){let m=(await _o(p._id)).ssoId;m&&(await Xu(m)).filter(y=>y.ssoId==null).forEach(y=>{f.push({...y,_deleted:!0})}),await UL(p)}await Dr().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let h={};return a.reduce((p,S)=>(p[S._id]=S,p),h),c.forEach(p=>{let S=h[p.id].email;p.ok?n.successful.push({_id:p.id,email:S}):n.unsuccessful.push({_id:p.id,email:S,reason:"Database error"})}),n}static async destroy(e){let r=H(),n=await r.get(e),i=n._id;if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Rr(a))throw n.userId===$t()._id?new ke('Please visit "Account" to delete this user',400):new ke("Account holder cannot be deleted",400)}await yt.removeUser(n),await r.remove(i,n._rev);let o=await Oo(n)?1:0;await t.quotas.removeUsers(1,o),await $p(n),await br.invalidateUser(i),await Tn(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,o={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(o.ssoId=n.ssoId),await li(ye.CHECKLIST),await t.save(o,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function Do(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(Do,"removeUserPassword");async function ic(t,e){let n=(await H().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Do(n)),n}s(ic,"bulkGetGlobalUsersById");async function ML(){let t=H(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ne}`})).rows.map(n=>n.id)}s(ML,"getAllUserIds");async function kL(){let t=H(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ne}`,include_docs:!0})).rows.map(n=>n.doc)}s(kL,"getAllUsers");async function Io(t){return await H().bulkDocs(t)}s(Io,"bulkUpdateGlobalUsers");async function _n(t,e){let n=await H().get(t);return e?.cleanup&&(n=Do(n)),n}s(_n,"getById");async function At(t,e){if(t==null)throw"Must supply an email address to view";let r=await qt("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Do(n)),n}s(At,"getGlobalUserByEmail");async function FL(t){try{let e=await At(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(FL,"doesUserExist");async function HA(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ni(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await qt("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=Do(o)),o}s(HA,"searchGlobalUsersByApp");async function Vp(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 H().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(Vp,"searchGlobalUsersByAppAccess");function zA(t,e){if(e)return pu(Ye(t),e._id)}s(zA,"getGlobalUserByAppPage");async function JA(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,o=await qt("by_email2",{...e,startkey:i,endkey:`${n}${Ne}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=Do(a)),a}s(JA,"searchGlobalUsersByEmail");var BL=8;async function ZA({bookmark:t,query:e,appId:r,limit:n}={}){let i=H(),o=n??BL,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await _n(e.equal._id)]:r?(c=await HA(r,u),d=s(f=>zA(r,f),"getKey")):e?.string?.email?(c=await JA(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await ic(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(on(null,{...u,limit:void 0}))).rows.map(h=>h.doc),c=mr.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(on(null,u))).rows.map(h=>h.doc),Nf(c,o,{paginate:!0,property:l,getKey:d})}s(ZA,"paginatedUsers");async function WL(){return(await Bs("by_email2",{limit:0,include_docs:!1})).total_rows}s(WL,"getUserCount");async function $L(){let t=0;async function e(r){let n=await ZA({bookmark:r}),i=await An(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s($L,"getCreatorCount");function GL(t){return delete t.admin,delete t.builder,t}s(GL,"removePortalUserPermissions");function qp(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(qp,"cleanseUserObject");async function VL(t,e){let r=Ye(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await xt.save(t,{hashPassword:!1})}s(VL,"addAppBuilder");async function qL(t,e){let r=Ye(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await xt.save(t,{hashPassword:!1})}s(qL,"removeAppBuilder");var XA=3600;async function KL(t,e){let n=await Ff(e).get(t);if(n.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let i=await Rr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(KL,"populateFromDB");async function QL(t){let e=await xt.bulkGet(t),r=t.filter((i,o)=>!e[o]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let o=await Rr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(QL,"populateUsersFromDB");async function Ro({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=KL),!e)try{e=$()}catch{e=await yt.lookupTenantId(t)}let i=await vs(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,XA)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Me.users.isGlobalBuilder(o)&&await Ce(e,async()=>{let a=await xt.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(Ro,"getUser");async function jL(t){let e=await vs(),r=await e.bulkGet(t),n=t.filter(a=>!r[a]),i=Object.values(r).filter(a=>!!a),o;if(n.length){let a=await QL(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,XA);i.push(...a.users)}return{users:i,notFoundIds:o}}s(jL,"getUsers");async function Co(t){await(await vs()).delete(t)}s(Co,"invalidateUser");var Yp={};P(Yp,{Writethrough:()=>Qp});var e_=1e4,Kp=null;async function sc(){if(!Kp){let t=await Df();Kp=new fn(t)}return Kp}s(sc,"getCache");function bo(t,e){return t.name+e}s(bo,"makeCacheKey");function jp(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(jp,"makeCacheItem");async function YL(t,e,r=e_){let n=await sc(),i=e._id,o;i&&(o=await n.get(bo(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await no({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let l=s(async d=>{let f=await t.put(d,{force:!0});u._id=f.id,u._rev=f.rev},"writeDb");try{await l(e)}catch(d){if(d.status!==409)throw d;ci("Ignoring conflict in write-through cache")}})).executed||ci("Ignoring redlock conflict in write-through cache")),o=jp(u,a?null:o?.lastWrite),u._id&&await n.store(bo(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(YL,"put");async function HL(t,e){let r=await sc(),n=bo(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=jp(o),await r.store(n,i)}return i.doc}s(HL,"get");async function zL(t,e){let r=await sc(),n=bo(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=jp(o),await r.store(n,i)}return i.doc}s(zL,"tryGet");async function JL(t,e,r){let n=await sc();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(bo(t,i))}finally{await t.remove(i,r)}}s(JL,"remove");var Qp=class{static{s(this,"Writethrough")}constructor(e,r=e_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return YL(this.db,e,r)}async get(e){return HL(this.db,e)}async tryGet(e){return zL(this.db,e)}async remove(e,r){return JL(this.db,e,r)}};function xo(t){return`config${C}${t}`}s(xo,"generateConfigID");var oc="en";function ZL(){return{_id:xo("translations"),type:"translations",config:{defaultLocale:oc,locales:{[oc]:{label:"English",overrides:{}}}}}}s(ZL,"createDefaultTranslationsConfig");function XL(t){let e=t?.defaultLocale||oc,r={...t?.locales??{}};r[e]||(r[e]={label:e===oc?"English":e,overrides:{}});for(let n of Object.keys(r))r[n].overrides||(r[n]={...r[n],overrides:{}});return{defaultLocale:e,locales:r}}s(XL,"prepareTranslationsConfig");async function ve(t){let e=H();try{return await e.get(xo(t))}catch(r){if(r.status===404)return;throw r}}s(ve,"getConfig");async function e0(t){return t._id||(t._id=xo(t.type)),H().put(t)}s(e0,"save");async function t_(){let t=await ve("translations");return t?(t.config=XL(t.config),t):ZL()}s(t_,"getTranslationsConfigDoc");async function t0(){return(await t_()).config}s(t0,"getTranslationsConfig");async function yi(){let t=await ve("settings");return t||(t={_id:xo("settings"),type:"settings",config:{}}),t.config.platformUrl=await vo({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await ju({config:t.config}),t}s(yi,"getSettingsConfigDoc");async function zp(){return(await yi()).config}s(zp,"getSettingsConfig");async function vo(t={tenantAware:!0}){let e=E.PLATFORM_URL||"http://localhost:10000";if(!E.SELF_HOSTED&&E.MULTI_TENANCY&&t.tenantAware){let r=$();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(E.SELF_HOSTED){let r=t?.config?t.config:(await ve("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(vo,"getPlatformUrl");var ju=s(async t=>{if(!E.SELF_HOSTED)return!!E.ENABLE_ANALYTICS;let e=await wr(ye.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await ve("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 r0(){return await ve("google")}s(r0,"getGoogleConfigDoc");async function uc(){return(await r0())?.config}s(uc,"getGoogleConfig");async function Jp(){if(!E.SELF_HOSTED)return Hp();let t=await uc();return(!t||!t.activated)&&(t=Hp()),t}s(Jp,"getGoogleDatasourceConfig");function Hp(){if(E.GOOGLE_CLIENT_ID&&E.GOOGLE_CLIENT_SECRET)return{clientID:E.GOOGLE_CLIENT_ID,clientSecret:E.GOOGLE_CLIENT_SECRET,activated:!0}}s(Hp,"getDefaultGoogleConfig");async function n0(){return ve("logos_oidc")}s(n0,"getOIDCLogosDoc");async function i0(){return ve("oidc")}s(i0,"getOIDCConfigDoc");async function s0(){let t=(await i0())?.config;return t?.configs&&t.configs[0]}s(s0,"getOIDCConfig");async function Zp(t){let e=(await ve("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(Zp,"getOIDCConfigById");async function r_(){return ve("smtp")}s(r_,"getSMTPConfigDoc");async function o0(t){let e=await r_();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(o0,"getSMTPConfig");async function a0(){return(await ve("scim"))?.config}s(a0,"getSCIMConfig");async function u0(){return ve("ai")}s(u0,"getAIConfig");async function c0(){return ve("recaptcha")}s(c0,"getRecaptchaConfig");var um={};P(um,{AccessController:()=>tm,BUILTIN_ROLE_IDS:()=>rm,Role:()=>xr,RoleHierarchyTraversal:()=>cc,RoleIDVersion:()=>nm,builtinRoleToNumber:()=>Po,checkForRoleResourceArray:()=>o_,externalRole:()=>h0,findRole:()=>No,getAllRoleIds:()=>T0,getAllRoles:()=>am,getBuiltinRole:()=>i_,getBuiltinRoles:()=>sm,getDBRoleID:()=>a_,getExternalRoleID:()=>vr,getExternalRoleIDs:()=>u_,getRole:()=>E0,getUserRoleHierarchy:()=>om,getUserRoleIdHierarchy:()=>s_,isBuiltin:()=>On,lowerBuiltinRoleID:()=>m0,prefixRoleIDNoBuiltin:()=>em,roleIDsAreEqual:()=>ot,roleToNumber:()=>p0,saveRoles:()=>g0,validInherits:()=>f0});var n_=require("lodash"),lc=B(require("lodash/fp/cloneDeep")),Xp=B(require("semver"));var rm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ie={...rm,BUILDER:"BUILDER"},nm={UUID:void 0,NAME:"name"};function d0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(d0,"rolesInList");var xr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=nm.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=em(e):e&&Array.isArray(e)&&(e=e.map(em)),this.inherits=e,this}},cc=class{static{s(this,"RoleHierarchyTraversal")}constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let o of e.inherits){let a=No(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!d0(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=No(a.inherits,n,r),a&&i.push(a),Le.roles.checkForRoleInheritanceLoops(i))break}}return(0,n_.uniqBy)(i,o=>o._id)}},im={ADMIN:new xr(ie.ADMIN,ie.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ie.POWER),POWER:new xr(ie.POWER,ie.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ie.BASIC),BASIC:new xr(ie.BASIC,ie.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ie.PUBLIC),PUBLIC:new xr(ie.PUBLIC,ie.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new xr(ie.BUILDER,ie.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function sm(){return(0,lc.default)(im)}s(sm,"getBuiltinRoles");function On(t){return Object.values(rm).includes(t)}s(On,"isBuiltin");function em(t){return On(t)?t:Gt(t)}s(em,"prefixRoleIDNoBuiltin");function i_(t){let e=Object.values(im).find(r=>t.includes(r._id));if(e)return(0,lc.default)(e)}s(i_,"getBuiltinRole");function f0(t,e){if(!e)return!1;let r=s(n=>t.find(i=>ot(i._id,n)),"find");if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}s(f0,"validInherits");function Po(t){let e=sm(),r=Object.values(e).length+1;if(ot(t,ie.ADMIN)||ot(t,ie.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}s(Po,"builtinRoleToNumber");async function p0(t){if(On(t))return Po(t);let e=await om(t,{defaultPublic:!0}),r=s(n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(o=>{let a=e.find(u=>ot(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(On(n.inherits))return Po(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(p0,"roleToNumber");function m0(t,e){return t?e&&Po(t)>Po(e)?e:t:e}s(m0,"lowerBuiltinRoleID");function ot(t,e){return Gt(t)===Gt(e)}s(ot,"roleIDsAreEqual");function h0(t){let e;return t._id&&(e=vr(t._id)),{...t,_id:e,inherits:u_(t.inherits,t.version)}}s(h0,"externalRole");function No(t,e,r){let n=i_(t);n||(t=Gt(t));let i=e.find(o=>o._id&&ot(o._id,t));return!i&&!On(t)&&r?.defaultPublic?(0,lc.default)(im.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=vr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(No,"findRole");async function E0(t,e){let r=ei(),n=[];if(!On(t)){let i=await r.tryGet(a_(t));i&&n.push(i)}return No(t,n,e)}s(E0,"getRole");async function g0(t){await ei().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:Gt(r._id)})))}s(g0,"saveRoles");async function y0(t,e){let r=await am();if(ot(t,ie.ADMIN))return r;let n=No(t,r,e),i=[];return n&&(i=new cc(r,e).walk(n)),i}s(y0,"getAllUserRoles");async function s_(t){return(await om(t)).map(r=>r._id)}s(s_,"getUserRoleIdHierarchy");async function om(t,e){return y0(t,e)}s(om,"getUserRoleHierarchy");function o_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(o_,"checkForRoleResourceArray");async function T0(t){return(await am(t)).map(r=>r._id)}s(T0,"getAllRoleIds");async function am(t){if(t)return je(t,e);{let r;try{r=ei()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(mu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=vr(u._id,u.version)));let i=sm(),o=[];!r||await S0(r)?o=[ie.ADMIN,ie.POWER,ie.BASIC,ie.PUBLIC]:o=[ie.ADMIN,ie.BASIC,ie.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>ot(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=vr(u._id,c.version),n.push({...u,...c,name:u.name,_id:vr(u._id,u.version),uiMetadata:{...c.uiMetadata,...u.uiMetadata}}))}for(let a of n)if(a.permissions)for(let u of Object.keys(a.permissions))a.permissions=o_(a.permissions,u);return n}s(e,"internal")}s(am,"getAllRoles");async function S0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Xp.default.valid(r)?!0:!Xp.default.gte(r,E.MIN_VERSION_WITHOUT_POWER_ROLE)}s(S0,"shouldIncludePowerRole");var tm=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||ot(e,ie.BUILDER)||ot(r,e)||ot(r,ie.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await s_(r),this.userHierarchies[r]=n),n?.find(i=>ot(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let o=await this.checkScreenAccess(i,r);o&&n.push(o)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function a_(t){return t?.startsWith("role")?t:Gt(t)}s(a_,"getDBRoleID");function vr(t,e){if(t.startsWith(`role${C}`)&&(On(t)||e===nm.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}s(vr,"getExternalRoleID");function u_(t,e){return t&&(typeof t=="string"?vr(t,e):t.map(r=>vr(r,e)))}s(u_,"getExternalRoleIDs");var cm={};P(cm,{BUILDER:()=>w0,BUILTIN_PERMISSIONS:()=>dc,CREATOR:()=>D0,GLOBAL_BUILDER:()=>R0,PermissionImpl:()=>se,PermissionLevel:()=>Ri,PermissionType:()=>Go,doesHaveBasePermission:()=>O0,getAllowedLevels:()=>f_,getBuiltinPermissionByID:()=>_0,getBuiltinPermissions:()=>A0,isPermissionLevelHigherThanRead:()=>I0,levelToNumber:()=>d_});var c_=B(require("lodash/flatten")),l_=B(require("lodash/fp/cloneDeep"));var se=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function d_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(d_,"levelToNumber");function f_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(f_,"getAllowedLevels");var dc={PUBLIC:{_id:"public",name:"Public",permissions:[new se("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new se("query","read"),new se("table","read"),new se("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new se("query","write"),new se("table","write"),new se("automation","execute"),new se("legacy_view","read"),new se("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new se("table","write"),new se("user","read"),new se("automation","execute"),new se("webhook","read"),new se("legacy_view","read"),new se("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new se("table","admin"),new se("user","admin"),new se("automation","admin"),new se("webhook","read"),new se("query","admin"),new se("legacy_view","read"),new se("app","read")]}};function A0(){return(0,l_.default)(dc)}s(A0,"getBuiltinPermissions");function _0(t){return Object.values(dc).find(r=>r._id===t)}s(_0,"getBuiltinPermissionByID");function O0(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(dc),o=(0,c_.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&f_(a.level).indexOf(e)!==-1)return!0;return!1}s(O0,"doesHaveBasePermission");function I0(t){return d_(t)>1}s(I0,"isPermissionLevelHigherThanRead");var w0="builder",D0="creator",R0="globalBuilder";var fm={};P(fm,{FlagSet:()=>pc,all:()=>P0,flags:()=>lm,getEnvFlags:()=>E_,init:()=>C0,isEnabled:()=>v0,parseEnvFlags:()=>hc,shutdown:()=>b0,testutils:()=>dm});var mc=B(require("crypto")),p_=B(require("dd-trace")),m_=require("lodash"),h_=require("posthog-node");var fc;function C0(t){E.POSTHOG_TOKEN&&E.POSTHOG_API_HOST&&!E.SELF_HOSTED&&E.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),fc=new h_.PostHog(E.POSTHOG_TOKEN,{host:E.POSTHOG_API_HOST,personalApiKey:E.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:pe.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}s(C0,"init");function b0(){fc?.shutdown()}s(b0,"shutdown");function hc(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(hc,"parseEnvFlags");function E_(){return hc(E.TENANT_FEATURE_FLAGS||"")}s(E_,"getEnvFlags");var pc=class{constructor(e){this.flagSchema=e;this.setId=mc.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,m_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await p_.default.trace("features.fetch",async e=>{let r=Sf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=$(),a=new Set;if(Xa())return i;for(let{tenantId:f,key:h,value:p}of E_())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,p===!1&&a.add(h),!!this.isFlagName(h))){if(typeof i[h]!="boolean")throw new Error(`Feature: ${h} is not a boolean`);i[h]=p,n[`flags.${h}.source`]="environment"}let u=$t(),c=u?._id;if(!c){let f=yf();f&&(c=mc.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,fc&&c){n.readFromPostHog=!0;let f=await yi(),h={tenantId:l},p={tenant:{id:l}};f.config.createdVersion&&(p.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(p.tenant.createdAt=`${f.createdAt}`);let S=await fc.getAllFlags(c,{personProperties:h,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:p});for(let[m,g]of Object.entries(S))if(this.isFlagName(m)){if(typeof g!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${g}`);continue}if(!(i[m]===!0||a.has(m)))try{i[m]=g,n[`flags.${m}.source`]="posthog"}catch(y){console.warn(`Error parsing posthog flag "${m}": ${g}`,y)}}}let d=_f();for(let[f,h]of Object.entries(d))this.isFlagName(f)&&typeof h=="boolean"&&(i[f]=h,n[`flags.${f}.source`]="override");Af(this.setId,i);for(let[f,h]of Object.entries(i))n[`flags.${f}.value`]=h;return e?.addTags(n),i})}},x0={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,AI_CHAT:!1,AI_RAG:!1,WORKSPACE_HOME:!1,DEBUG_UI:E.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1,USE_NEW_AICONFIGS:!1},lm=new pc(x0);async function v0(t){return await lm.isEnabled(t)}s(v0,"isEnabled");async function P0(){return await lm.fetch()}s(P0,"all");var dm={};P(dm,{setFeatureFlags:()=>g_,withFeatureFlags:()=>L0});function N0(){let t={};for(let{tenantId:e,key:r,value:n}of hc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(N0,"getCurrentFlags");function U0(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(U0,"buildFlagString");function g_(t,e){let r=N0();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=U0(r);return Os({TENANT_FEATURE_FLAGS:n})}s(g_,"setFeatureFlags");function L0(t,e,r){let n=g_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(L0,"withFeatureFlags");var Im={};P(Im,{adminOnly:()=>Ec,auditLog:()=>gc,authError:()=>Oe,buildAuthMiddleware:()=>SM,buildCsrfMiddleware:()=>_M,buildTenancyMiddleware:()=>AM,builderOnly:()=>Dc,builderOrAdmin:()=>Rc,google:()=>tr,internalApi:()=>bc,joiValidator:()=>Uo,oidc:()=>rr,passport:()=>OM,platformLogout:()=>CM,refreshOAuthToken:()=>DM,ssoCallbackUrl:()=>Nr,updateUserOAuth:()=>RM,workspaceBuilderOrAdmin:()=>Pc});var Om={};P(Om,{activeTenant:()=>G_,adminOnly:()=>Ec,auditLog:()=>gc,authError:()=>Oe,authenticated:()=>wc,builderOnly:()=>Dc,builderOrAdmin:()=>Rc,correlation:()=>T_,csp:()=>b_,csrf:()=>Cc,datasource:()=>yM,errorHandling:()=>v_,featureFlagCookie:()=>P_,google:()=>tr,internalApi:()=>bc,ip:()=>N_,joiValidator:()=>Uo,local:()=>_i,oidc:()=>rr,pino:()=>S_,querystringToBody:()=>$_,ssoCallbackUrl:()=>Nr,tenancy:()=>vc,workspaceBuilderOrAdmin:()=>Pc});var y_=require("uuid");var M0=require("correlation-id"),T_=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,y_.v4)()),M0.withId(r,()=>e())},"correlationMiddleware");var k0=require("koa-pino-logger"),F0=require("correlation-id");function B0(){return{logger:xu,genReqId:F0.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}s(B0,"pinoSettings");function W0(){return E.HTTP_LOGGING?k0(B0()):(t,e)=>e()}s(W0,"getMiddleware");var S_=W0();var Ec=s(async(t,e)=>(!t.internal&&!bt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var gc=s(async(t,e)=>e(),"auditLog");var $0=/\/:(.*?)(\/.*)?$/g,Xt=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match($0);if(i)for(let o of i){let u="/.*"+(o.endsWith("/")?"/":"");r=r.replace(o,u)}return{regex:new RegExp(r),method:n,route:r}}):[],"buildMatcherRegex"),er=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var gm={};P(gm,{SecretOption:()=>O_,compare:()=>K0,decrypt:()=>Ac,decryptFile:()=>Y0,encrypt:()=>q0,encryptFile:()=>Q0,getSecret:()=>Em});var vt=B(require("crypto")),Pr=B(require("fs")),pm=require("path"),mm=B(require("zlib"));var yc="aes-256-ctr",__="-",G0=1e4,V0=32,Tc=16,hm=16,O_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(O_||{});function Em(t){let e,r;switch(t){case"encryption":e=E.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=E.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(Em,"getSecret");function Sc(t,e){return vt.default.pbkdf2Sync(t,new Uint8Array(e),G0,V0,"sha512")}s(Sc,"stretchString");function q0(t,e="api"){let r=vt.default.randomBytes(Tc),n=Sc(Em(e),r),i=vt.default.createCipheriv(yc,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")}${__}${u}`}s(q0,"encrypt");function Ac(t,e="api"){let[r,n]=t.split(__),i=Buffer.from(r,"hex"),o=Sc(Em(e),i),a=vt.default.createDecipheriv(yc,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(Ac,"decrypt");function K0(t,e,r="api"){try{let n=new TextEncoder,i=n.encode(Ac(e,r)),o=n.encode(t);return i.length!==o.length?!1:vt.default.timingSafeEqual(i,o)}catch{return!1}}s(K0,"compare");async function Q0({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,pm.join)(t,e);if(Pr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=Pr.default.createReadStream(i),a=Pr.default.createWriteStream((0,pm.join)(t,n)),u=vt.default.randomBytes(Tc),c=vt.default.randomBytes(hm),l=Sc(r,u),d=vt.default.createCipheriv(yc,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(mm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(Q0,"encryptFile");async function j0(t){let e=Pr.default.createReadStream(t),r=await A_(e,Tc),n=await A_(e,hm);return e.close(),{salt:r,iv:n}}s(j0,"getSaltAndIV");async function Y0(t,e,r){if(Pr.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await j0(t),o=Pr.default.createReadStream(t,{start:Tc+hm}),a=Pr.default.createWriteStream(e),u=Sc(r,n),c=vt.default.createDecipheriv(yc,new Uint8Array(u),new Uint8Array(i)),l=mm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",h=>{a.close(),f(h)}),c.on("error",h=>{a.close(),f(h)}),l.on("error",h=>{a.close(),f(h)}),a.on("error",h=>{a.close(),f(h)})})}s(Y0,"decryptFile");function A_(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(A_,"readBytes");var ym={};P(ym,{APIWarning:()=>In,FeatureDisabledWarning:()=>Oc,InvalidAPIKeyWarning:()=>Ai,UsageLimitWarning:()=>_c});var In=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"APIWarning")}},Ai=class extends In{static{s(this,"InvalidAPIKeyWarning")}constructor(){super("Invalid API key","invalid_api_key")}},_c=class extends In{constructor(r){super(`Usage limit exceeded: '${r}'`,"usage_limit_exceeded");this.limitName=r}static{s(this,"UsageLimitWarning")}getPublicWarning(){return{limitName:this.limitName}}},Oc=class extends In{constructor(r){super(`Feature disabled: '${r}'`,"feature_disabled");this.featureName=r,this.status=400}static{s(this,"FeatureDisabledWarning")}getPublicWarning(){return{featureName:this.featureName}}getPublicError(){return{featureName:this.featureName}}};var w_=B(require("dd-trace"));var z0=E.SESSION_UPDATE_PERIOD?parseInt(E.SESSION_UPDATE_PERIOD):60*1e3;function J0(){return new Date(Date.now()-z0).toISOString()}s(J0,"timeMinusOneMinute");function I_(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(I_,"finalise");async function Z0(t,e){if(Vs(t))return{valid:!0,user:void 0};let n=Ac(t).split(C)[0];return Ce(n,async()=>{let i;try{let o=H();i=await qt("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await Ro({userId:i,tenantId:n,populateUser:e})};throw new Ai})}s(Z0,"checkApiKey");function Ic(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(Ic,"getHeader");function wc(t=[],e={publicAllowed:!1}){let r=t?Xt(t):[];return async(n,i)=>{let o=!1,a=Ic(n,"x-budibase-api-version");er(n,r)&&(o=!0);try{let c=Ic(n,"x-budibase-token"),l=Qt(n,"budibase:auth")||Eu(c),d=Ic(n,"x-budibase-api-key");!d&&n.request.headers.authorization&&(d=n.request.headers.authorization.split(" ")[1]);let f=Ic(n,"x-budibase-tenant-id"),h=!1,p,S=!1,m;if(l&&!d){let y=l.sessionId,I=l.userId,_;try{_=await Cp(I,y),e&&e.populateUser?p=await Ro({userId:I,tenantId:_.tenantId,email:_.email,populateUser:e.populateUser(n)}):p=await Ro({userId:I,tenantId:_.tenantId,email:_.email}),p.csrfToken=_.csrfToken,m="cookie",_?.lastAccessedAt<J0()&&await Rp(_),h=!0}catch(D){h=!1,console.warn(`Auth Error: ${D.message}`),Ar(n,"budibase:auth")}}if(!h&&d){let y=e.populateUser?e.populateUser(n):null,{valid:I,user:_}=await Z0(d,y);I&&(h=!0,m="api_key",p=_,S=!_)}!p&&f?p={tenantId:f}:p&&"password"in p&&delete p.password,h||(h=!1);let g=s(y=>y&&y.email,"isUser");return g(p)&&w_.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),I_(n,{authenticated:h,user:p,internal:S,version:a,publicEndpoint:o,loginMethod:m}),g(p)?ef(p,n,i):i()}catch(c){if(console.warn(`Auth Error: ${c.message}`),c?.name==="JsonWebTokenError"?Ar(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return I_(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c)}}}s(wc,"authenticated");async function Dc(t,e){if(t.internal)return e();let r=await un(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!Fe(t.user)?t.throw(403,"Builder user only endpoint."):r&&!Si(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(Dc,"builderOnly");async function Rc(t,e){if(t.internal||bt(t.user))return e();let r=await un(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!Fe(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!Si(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(Rc,"builderOrAdmin");var C_=B(require("crypto"));var D_={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","https://www.google.com/recaptcha/api.js"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com","https://d2l5prqdbvm3op.cloudfront.net"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},R_=/^[A-Za-z0-9-*:/.]+$/,b_=s(async(t,e)=>{let r=C_.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...D_};n["script-src"]=[...D_["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[u,c]of Object.entries(i))if(c){let l=c.split(",").map(d=>d.trim()).filter(d=>R_.test(d));n[u]=[...n[u]||[],...l]}if(t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let u=await Us.getWorkspaceMetadata(t.appId);if("name"in u)for(let c of u.scripts||[]){let l=(c.cspWhitelist||"").split(`
|
|
38
|
+
`).filter(f=>R_.test(f)),d=["default-src","script-src","connect-src","media-src","img-src","font-src","frame-src"];for(let f of d)n[f]=[...n[f]||[],...l]}}catch(u){console.error(`Error occurred in Content-Security-Policy middleware: ${u}`)}let a=Object.entries(n).map(([u,c])=>`${u} ${c.join(" ")}`).join("; ");t.set("Content-Security-Policy",a),await e()},"contentSecurityPolicy");var X0=["GET","HEAD","OPTIONS"],eM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Cc(t={noCsrfPatterns:[]}){let e=Xt(t.noCsrfPatterns);return async(r,n)=>{if(er(r,e)||X0.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!eM.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(Cc,"csrf");function x_(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of jy){let r=E[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(x_,"stringContainsSecret");async function v_(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Gu(r)};if(x_(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(v_,"errorHandling");var P_=s(async(t,e)=>{let n=Qt(t,"budibase:featureflags")?.flags||{};await Of(n,async()=>{await e()})},"featureFlagCookie");async function bc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Vs(r)||t.throw(403,"Unauthorized"),e()}s(bc,"internalApi");async function N_(t,e){return t.ip?await Tf(t.ip,()=>e()):e()}s(N_,"ip");var Uo={};P(Uo,{body:()=>tM,params:()=>rM});var Tm=B(require("joi"));function U_(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:Tm.default.any().optional(),updatedAt:Tm.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(U_,"validate");function tM(t,e){return U_(t,"body",e)}s(tM,"body");function rM(t,e){return U_(t,"params",e)}s(rM,"params");var _i={};P(_i,{authenticate:()=>sM,options:()=>iM});function Oe(t,e,r){return t(r,null,{message:e})}s(Oe,"authError");async function Nr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await zp(),n="/api/global/auth";return gr()&&(n+=`/${$()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(Nr,"ssoCallbackUrl");var Sm="Invalid credentials",nM="This account has expired. Please reset your password",iM={passReqToCallback:!0};async function sM(t,e,r,n){if(!e)return Oe(n,"Email Required");if(!r)return Oe(n,"Password Required");let i=await At(e);return i==null?(console.info(`user=${e} could not be found`),Oe(n,Sm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Oe(n,Sm)):i.password?await Jd(r,i.password)?(delete i.password,n(null,i)):Oe(n,Sm):(console.info(`user=${e} has no password set`,i),Oe(n,nM))}s(sM,"authenticate");var tr={};P(tr,{buildVerifyFn:()=>k_,getCallbackUrl:()=>uM,strategyFactory:()=>Am});var Lo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function xc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Oe(r,"sso user id required");if(!t.email)return Oe(r,"sso user email required");let i=ri(t.userId),o;try{o=await _n(i)}catch(u){if(!u.status||u.status!==404)return Oe(r,"Unexpected error when retrieving existing user",u)}if(o||(o=await At(t.email)),!o&&e)return Oe(r,"Email does not yet exist. You must set up your local budibase account first.");o||(o={_id:i,email:t.email,roles:{},tenantId:$()});let a=await oM(o,t);a.forceResetPassword=!1;try{delete a.password,a=await n(a,{hashPassword:!1,requirePassword:!1})}catch(u){return Oe(r,"Error saving user",u)}return r(null,a)}s(xc,"authenticate");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 aM=require("passport-google-oauth").OAuth2Strategy;function k_(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return xc(o,!0,i,t)}}s(k_,"buildVerifyFn");async function Am(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let o=k_(r);return new aM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(Am,"strategyFactory");async function uM(t){return Nr("google",t)}s(uM,"getCallbackUrl");var rr={};P(rr,{buildVerifyFn:()=>W_,fetchStrategyConfig:()=>pM,getCallbackUrl:()=>mM,strategyFactory:()=>fM});var F_=B(require("node-fetch"));var B_=require("@govtechsg/passport-openidconnect");function W_(t){return async(e,r,n,i,o,a,u,c,l)=>{let d=cM(r,n),f=lM(r,n),h={provider:e,providerType:"oidc",userId:d.id,profile:d,email:dM(d,f),oauth2:{accessToken:a,refreshToken:u}};return xc(h,!1,l,t)}}s(W_,"buildVerifyFn");function cM(t,e){let r={...t?._json||{}};!r.email&&e.emails?.length&&(r.email=e.emails[0].value);let n=t?.displayName||e.displayName;return{id:t?.id||e.id,name:t?.name||e.name||!!n&&{givenName:n,familyName:""}||void 0,_json:r,provider:t?.provider}}s(cM,"normalizeProfile");function lM(t,e){return{email:t?._json?.email||e.emails?.[0]?.value,preferred_username:e.username}}s(lM,"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&&Gf(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");async function fM(t,e){try{let r=W_(e),n=new B_.Strategy(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(fM,"strategyFactory");async function pM(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let a=await(0,F_.default)(i);if(!a.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${a.statusText}`);let u=await a.json();return{issuer:u.issuer,authorizationURL:u.authorization_endpoint,tokenURL:u.token_endpoint,userInfoURL:u.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(pM,"fetchStrategyConfig");async function mM(){return Nr("oidc")}s(mM,"getCallbackUrl");function $_(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($_,"querystringToBody");function vc(t,e,r={noTenancyRequired:!1}){let n=Xt(t),i=Xt(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!er(o,i)};!!er(o,n)||(c.excludeStrategies=["query"]);let d=$s(o,c);return o.set("x-budibase-tenant-id",d),Ce(d,a)}}s(vc,"tenancy");function G_(t=[]){let e=Xt(t);return async function(r,n){if(er(r,e))return n();try{if((await ve("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(G_,"activeTenant");async function Pc(t,e){if(t.internal||bt(t.user))return e();let r=await un(t);return r&&!ec(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&&!Fe(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}s(Pc,"workspaceBuilderOrAdmin");var _m={};P(_m,{postAuth:()=>gM,preAuth:()=>EM});var hM=require("passport-google-oauth").OAuth2Strategy;async function V_(){let t=await Jp();if(!t)throw new Error("No google configuration found");return t}s(V_,"fetchGoogleCreds");async function EM(t,e,r){let n=await V_(),o=`${await vo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await Am(n,o,Lo);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(a,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}s(EM,"preAuth");async function gM(t,e,r){let n=await V_(),o=`${await vo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=Qt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new hM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{Ar(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=ee();await Ht(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(gM,"postAuth");var yM={google:_m};var q_=require("koa-passport"),TM=require("passport-local").Strategy,Nc=require("passport-oauth2-refresh"),SM=wc,AM=vc,_M=Cc,OM=q_;q_.use(new TM(_i.options,_i.authenticate));async function IM(t,e){let r=await rr.getCallbackUrl(),n,i;try{if(n=await rr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await rr.strategyFactory(n,Lo)}catch{throw new Error("Could not refresh OAuth Token")}return Nc.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(o=>{Nc.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s(IM,"refreshOIDCAccessToken");async function wM(t,e){let r=await tr.getCallbackUrl(t),n;try{n=await tr.strategyFactory(t,r,Lo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Nc.use(n),new Promise(i=>{Nc.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(wM,"refreshGoogleAccessToken");async function DM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Zp(r);return n?IM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await uc();return n?wM(n,t):{err:{data:"Google configuration not found"}}}}}s(DM,"refreshOAuthToken");async function RM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=H(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Co(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(RM,"updateUserOAuth");async function CM(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=Qt(e,"budibase:auth"),o=await lo(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):Ar(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await Tn(r,{sessionIds:a,reason:"logout"}),await Zu.logout(e.user?.email),await Co(r)}s(CM,"platformLogout");var Dm={};P(Dm,{validate:()=>NM});var x=B(require("joi"));var bM=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function wm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(wm,"runJoi");function xM(t){let e=x.default.object({type:x.default.string().allow("component").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({name:x.default.string().required(),settings:x.default.array().items(x.default.object().unknown(!0)).required()}).unknown(!0)});wm(e,t)}s(xM,"validateComponent");function vM(t){let e=x.default.object({type:x.default.string().allow(...Object.values(Bc)).required(),required:x.default.boolean().required(),default:x.default.any(),display:x.default.string()}),r=x.default.object({type:x.default.string().allow(...Object.values(Fc)),readable:x.default.boolean(),displayName:x.default.string(),fields:x.default.object().pattern(x.default.string(),e)}).required(),n=x.default.object({type:x.default.string().allow("datasource").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({docs:x.default.string(),plus:x.default.boolean().optional(),isSQL:x.default.boolean().optional(),auth:x.default.object({type:x.default.string().required()}).optional(),features:x.default.object(Object.fromEntries(Object.values(Wc).map(i=>[i,x.default.boolean().optional()]))).optional(),relationships:x.default.boolean().optional(),description:x.default.string().required(),friendlyName:x.default.string().required(),type:x.default.string().allow(...bM),datasource:x.default.object().pattern(x.default.string(),e).required(),query:x.default.object().pattern(x.default.string(),r).unknown(!0).required(),extra:x.default.object().pattern(x.default.string(),x.default.object({type:x.default.string().required(),displayName:x.default.string().required(),required:x.default.boolean(),data:x.default.object()}))})});wm(n,t)}s(vM,"validateDatasource");function PM(t){let e=x.default.object().pattern(x.default.string(),{type:x.default.string().allow(...Object.values($c)).required(),customType:x.default.string().allow(...Object.values(Gc)),title:x.default.string(),description:x.default.string(),enum:x.default.array().items(x.default.string()),pretty:x.default.array().items(x.default.string())}),r=x.default.object({properties:e,required:x.default.array().items(x.default.string())}).concat(e).required(),n=x.default.object({type:x.default.string().allow("automation").required(),metadata:x.default.object().unknown(!0).required(),hash:x.default.string().optional(),version:x.default.string().optional(),schema:x.default.object({name:x.default.string().required(),tagline:x.default.string().required(),icon:x.default.string().required(),description:x.default.string().required(),type:x.default.string().allow("ACTION","LOGIC").required(),stepId:x.default.string().disallow(...Ym).required(),inputs:x.default.object().optional(),schema:x.default.object({inputs:r,outputs:r}).required()})});wm(n,t)}s(PM,"validateAutomation");function NM(t){switch(t?.type){case"component":xM(t);break;case"datasource":vM(t);break;case"automation":PM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(NM,"validate");var Rm={};P(Rm,{Client:()=>De,clients:()=>Tr,locks:()=>gn,utils:()=>Ka});var Cm={};P(Cm,{isBlacklisted:()=>LM,refreshBlacklist:()=>Y_});var K_=B(require("dns")),Lc=B(require("net"));var Q_=require("util");var Uc,UM=(0,Q_.promisify)(K_.default.lookup);async function j_(t){return Lc.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await UM(t,{all:!0})).map(r=>r.address)}s(j_,"lookup");async function Y_(){let e=E.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Lc.default.isIP(i))r.push(i);else{let o=await j_(i);r=r.concat(o)}}Uc=r}s(Y_,"refreshBlacklist");async function LM(t){if(Uc||await Y_(),Uc?.length===0)return!1;let e;return Lc.default.isIP(t)?e=[t]:e=await j_(t),!!Uc?.find(r=>e.includes(r))}s(LM,"isBlacklisted");var xm={};P(xm,{init:()=>kM});var MM={"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 H_(t,e){let r=MM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(H_,"getDocumentId");var Mo=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=H_(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await Ce(i,async()=>{await u({id:o,tenantId:i,appId:n.appId,properties:n})})}shutdown(){return oA()}};var z_,bm;function kM(t){Tt||Yu(),bm||(bm=new Mo(t)),z_||(z_=Tt.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await bm.processEvent(r,n,i)}))}s(kM,"init");var Bm={};P(Bm,{COUNT_FIELD_NAME:()=>km,Sql:()=>iO,SqlTable:()=>Mc,designDoc:()=>Fm,utils:()=>ff});var eO=require("knex");var FM=require("knex");function vm(t){return["link","formula","ai"].indexOf(t)!==-1}s(vm,"isIgnoredType");function J_(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(h=>h.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(h=>h.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(h=>h.foreignKey);for(let[h,p]of Object.entries(e.schema)){let S=n?.schema[h];if(S&&S.type||l.includes(h)||i?.updated===h)continue;let m=p.type;switch(m){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(h)?t.string(h,255):t.text(h);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:g,toTable:y}=p.meta;t.integer(h).unsigned(),t.foreign(h).references(`${y}.${g}`)}else d.indexOf(h)===-1&&t.float(h);break;case"bigint":t.bigint(h);break;case"boolean":t.boolean(h);break;case"datetime":p.timeOnly?t.time(h):t.datetime(h,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":Le.schema.isDeprecatedSingleUserColumn(p)?t.text(h):t.json(h);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:g}=af(p.tableId),y=r[g];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let I=y.primary[0],_=y.schema[I].externalType;_?t.specificType(p.foreignKey,_):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${g}.${I}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(h);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:_t.unreachable(m)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!vm(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,S])=>!vm(S.type)&&e.schema[p]==null).forEach(([p,S])=>{i?.old===p||vm(S.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}s(J_,"generateSchema");function WM(t,e,r){return t.createTable(e.name,n=>{J_(n,e,r)})}s(WM,"buildCreateTable");function $M(t,e,r,n,i){return t.alterTable(e.name,o=>{J_(o,e,r,n,i)})}s($M,"buildUpdateTable");function GM(t,e){return t.dropTable(e.name)}s(GM,"buildDeleteTable");var Pm=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,FM.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=WM(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=$M(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,o=e.meta.renamed.updated,a=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,u=Jn(n);if(Array.isArray(u))for(let c of u)c.sql.startsWith("exec sp_rename")&&(c.sql=`exec sp_rename '${a}.${i}', '${o}', 'COLUMN'`,c.bindings=[]);return u}break;case"DELETE_TABLE":n=GM(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Jn(n)}},Mc=Pm;var tO=require("lodash");var km="__bb_total";function Z_(){return(E.SQL_MAX_ROWS?parseInt(E.SQL_MAX_ROWS):null)||5e3}s(Z_,"getBaseLimit");function Nm(){return(E.SQL_MAX_RELATED_ROWS?parseInt(E.SQL_MAX_RELATED_ROWS):null)||500}s(Nm,"getRelationshipLimit");function VM(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(VM,"prioritisedArraySort");function rO(t){return Array.isArray(t)?t.map(e=>rO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(rO,"convertBooleans");function X_(t){return t.sourceType==="internal"||t.sourceId===Kc}s(X_,"isSqs");function qM(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(qM,"escapeQuotes");function KM(t,e='"'){return`${e}${qM(t,e)}${e}`}s(KM,"wrap");function QM(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=KM(t[r],e));return`[${t.join(",")}]`}s(QM,"stringifyArray");function Um(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(Um,"toPgArrayLiteral");function nO(t){return zm.includes(t.type)&&!Le.schema.isDeprecatedSingleUserColumn(t)}s(nO,"isJsonColumn");var jM={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},Lm=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array",POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new mr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}static{s(this,"InternalBuilder")}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(a=>{let u=a.split(/\./g),c,l=u[0];return u.length>1&&(c=u[0],l=u.slice(1).join(".")),{table:c,column:l,field:a}}).filter(({table:a})=>!a||a===n).map(({table:a,column:u,field:c})=>{let l=i[u];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(l)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([a,u].join(".")),this.knex.raw(this.quote(c))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(l)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(c),this.knex.raw(this.quote(c))]):a?this.rawQuotedIdentifier(`${a}.${u}`):this.rawQuotedIdentifier(c)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),o=this.table.schema[i],a=this.rawQuotedIdentifier(e);return(o.type==="string"||o.type==="longform"||o.type==="bb_reference_single"||o.type==="bb_reference"||o.type==="options"||o.type==="barcodeqr")&&(r?.forSelect?a=this.knex.raw("to_char(??) as ??",[a,this.rawQuotedIdentifier(i)]):a=this.knex.raw("to_char(??)",[a])),a}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&nO(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(!lf(e))return null}else if(r.dateOnly){let n=cf(e);return n?new Date(n):null}else return r.ignoreTimezones?za(e)?new Date(e):uf(e)?new Date(e+"Z"):null:za(e)?new Date(e.trim()):null;return e}parseBody(e){for(let[r,n]of Object.entries(e)){let{column:i}=this.splitter.run(r),o=this.table.schema[i];o&&(e[r]=this.parse(n,o))}return e}parseFilters(e){e=(0,tO.cloneDeep)(e);for(let r of Object.values(Mr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=this.parse(n[i],a))}}for(let r of Object.values(ir)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=n[i].map(u=>this.parse(u,a)))}}for(let r of Object.values(Rn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];if(!a)continue;let u=n[i];"low"in u&&(u.low=this.parse(u.low,a)),"high"in u&&(u.high=this.parse(u.high,a))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i,o){let{relationships:a,schema:u,tableAliases:c,table:l}=this.query,d=c?.[l.name]||l.name,f=s(h=>n.match(new RegExp(`^${h}\\.`)),"matches");if(!a)return e;for(let h of a){let p=h.tableName,S=c?.[p]||p,m=f(p)||f(S),g=f(h.column),y=h.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((m||g||y)&&h.to&&h.tableName){let I=this.knex.select(this.knex.raw(1)).from({[S]:p}),_=I.clone(),D=df(h),T;if(m?T=n:T=n.replace(new RegExp(`^${h.column}.`),`${c?.[h.tableName]||h.tableName}.`),D){let O=c?.[D.through]||h.through,U=this.tableNameWithSchema(D.through,{alias:O,schema:u});_=_.innerJoin(U,function(){this.on(`${S}.${D.toPrimary}`,"=",`${O}.${D.to}`)}).where(`${O}.${D.from}`,"=",this.rawQuotedIdentifier(`${d}.${D.fromPrimary}`)),this.client==="sqlite3"&&(_=this.addJoinFieldCheck(_,D)),y&&i==="empty"?e=e.whereNotExists(_):y&&i==="notEmpty"?e=e.whereExists(_):e=e.where(R=>{R.whereExists(o(T,_)),r&&R.orWhereNotExists(I.clone().innerJoin(U,function(){this.on(`${d}.${D.fromPrimary}`,"=",`${O}.${D.from}`)}))})}else{let O=`${S}.${h.to}`,U=`${d}.${h.from}`;_=_.where(O,"=",this.rawQuotedIdentifier(U)),y&&i==="empty"?e=e.whereNotExists(_):y&&i==="notEmpty"?e=e.whereExists(_):e=e.where(R=>{R.whereExists(o(T,_.clone())),r&&R.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(m){return o?.[m]||m}s(l,"getTableAlias");function d(m,g,y,I){let _=s((D,T,O)=>{let[U,...R]=T.split("."),k=R.join("."),Y=l(U);return D.andWhere(Ie=>y(Ie,Y?`${Y}.${k}`:k,O))},"handleRelationship");for(let D in m){let T=m[D],O=Ws(D),U=O.includes(".")||i.getFieldSchema(O)?.type==="link",R=n?.relationship&&U,k;if(D==="_complexIdOperator"&&(k=m[D])&&I){let Y=l(c);e=I(e,k.id.map(Ie=>Y?`${Y}.${Ie}`:Ie),k.values)}else if(U)R&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,jM[g],O,g,(Y,Ie)=>_(Ie,Y,T)));else{let Y=l(c);e=y(e,Y?`${Y}.${O}`:O,T)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,h=s((m,g,y)=>((r?.fuzzyOr||a)&&(m=m.or),f?m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(g),`%${y}%`]):this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):m.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),"like"),p=s((m,g=!1)=>{function y(I){return(a||m===r?.containsAny)&&(I=I.or),m===r?.notContains&&(I=I.not),I}s(y,"addModifiers"),this.client==="pg"?d(m,"contains",(I,_,D)=>{I=y(I);let T=this.getFieldSchema(_),O=this.rawQuotedIdentifier(_),U=Array.isArray(D)?[...D]:[D],R=this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(T);return g?R?I.whereRaw("COALESCE(?? && ?::text[], FALSE)",[O,Um(U)]):I.whereRaw("COALESCE(??::jsonb \\?| ?::text[], FALSE)",[O,Um(U)]):R?I.whereRaw("COALESCE(?? @> ?::text[], FALSE)",[O,Um(U)]):I.whereRaw("COALESCE(??::jsonb @> ?::jsonb, FALSE)",[O,QM(U)])}):this.client==="mysql2"||this.client==="mariadb"?d(m,"contains",(I,_,D)=>{let T=Array.isArray(D)?D:[D];return y(I).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),JSON.stringify(T)])}):d(m,"contains",(I,_,D)=>(D.length===0||(I=I.where(T=>(m===r?.notContains&&(T=T.not),T=T.where(O=>{for(let U of D){m===r?.containsAny?O=O.or:O=O.and;let R=!f,k=typeof U=="string"?`"${R?U.toLowerCase():U}"`:U,Y=R?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";O=O.whereLike(this.knex.raw(Y,[this.rawQuotedIdentifier(_)]),`%${k}%`)}}),m===r?.notContains&&(T=T.or.whereNull(this.rawQuotedIdentifier(_))),T))),I))},"contains");if(r.$and){let{$and:m}=r;for(let g of m.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:m}=r;e=e.where(g=>{for(let y of m.conditions)g.orWhere(I=>this.addFilters(I,{...y,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(m,g,y)=>{let I=this.getFieldSchema(g),_=Array.isArray(y)?y:[y];if(a&&(m=m.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly){for(let D of _)D!=null?m=m.or.whereLike(g,`${D.toISOString().slice(0,10)}%`):m=m.or.whereNull(g);return m}return m.whereIn(g,_)},(m,g,y)=>(a&&(m=m.or),this.client==="oracledb"&&(g=g.map(I=>this.convertClobs(I))),m.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&d(r.string,"string",(m,g,y)=>{if(a&&(m=m.or),f)return m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(g),`${y}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let I=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(I)?m.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(I.name)),`${y}%`]):m.whereILike(g,`${y}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",h),r.range&&d(r.range,"range",(m,g,y)=>{let I=s(k=>k&&Object.keys(k).length===0&&Object.getPrototypeOf(k)===Object.prototype,"isEmptyObject");I(y.low)&&(y.low=""),I(y.high)&&(y.high="");let _=Ja(y.low),D=Ja(y.high),T=this.getFieldSchema(g),O=g,U=y.high,R=y.low;return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly&&(U!=null&&(U=`${U.toISOString().slice(0,10)}T23:59:59.999Z`),R!=null&&(R=R.toISOString().slice(0,10))),this.client==="oracledb"?O=this.convertClobs(g):this.client==="sqlite3"&&T?.type==="bigint"&&(O=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),U=this.knex.raw("CAST(? AS INTEGER)",[y.high]),R=this.knex.raw("CAST(? AS INTEGER)",[y.low])),a&&(m=m.or),_&&D?m.whereBetween(O,[R,U]):_?m.where(O,">=",R):D?m.where(O,"<=",U):m}),r.equal&&d(r.equal,"equal",(m,g,y)=>{let I=this.getFieldSchema(g);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return m.where(D=>D.whereNotNull(_).andWhere(_,y))}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.whereLike(g,`${y.toISOString().slice(0,10)}%`):m.whereNull(g):m.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&d(r.notEqual,"notEqual",(m,g,y)=>{let I=this.getFieldSchema(g);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return m.where(D=>D.not.whereNull(_).and.where(_,"!=",y)).or.whereNull(_)}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):m.not.whereNull(g):m.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&d(r.empty,"empty",(m,g)=>(a&&(m=m.or),m.whereNull(g))),r.notEmpty&&d(r.notEmpty,"notEmpty",(m,g)=>(a&&(m=m.or),m.whereNotNull(g))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let S=o?.[this.table._id]||this.table._id;return r.documentType&&!of(this.table)&&S&&e.andWhereLike(`${S}._id`,`${sr(r.documentType)}%`),e}isSqs(){return X_(this.table)}getTableName(e){e||(e=this.table);let r=e.name;X_(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 ${km}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let o=n.map(a=>this.qualifyIdentifier(a));if(this.client==="oracledb"){let a=o.map(c=>this.convertClobs(c)),u=o.map(c=>this.convertClobs(c,{forSelect:!0}));e=e.groupBy(a).select(u)}else e=e.groupBy(o).select(o)}for(let o of r){let a=o.calculationType;if(a==="count")if("distinct"in o&&o.distinct)if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[u,o.name]))}else e=e.countDistinct(`${i}.${o.field} as ${o.name}`);else if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[u,o.name]))}else e=e.count(`${o.field} as ${o.name}`);else{let u=this.getFieldSchema(o.field);if(!u)throw new Error(`field schema missing for aggregation target: ${o.field}`);let c=this.knex.raw("??(??)",[this.knex.raw(a),this.rawQuotedIdentifier(`${i}.${o.field}`)]);u.type==="bigint"&&(c=this.castIntToString(c)),e=e.select(this.knex.raw("?? as ??",[c,o.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,o=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[u,c]of Object.entries(r)){let l=this.getFieldSchema(u);if(this.isUnsortableField(l))continue;let d=c.direction==="ascending"?"asc":"desc",f;(this.client==="pg"||this.client==="oracledb")&&(f=c.direction==="ascending"?"first":"last");let h=`${o}.${u}`,p;this.isAggregateField(u)?p=this.rawQuotedIdentifier(u):this.client==="oracledb"?p=this.convertClobs(h):p=this.rawQuotedIdentifier(h),e=e.orderByRaw(`?? ?? ${f?"nulls ??":""}`,[p,this.knex.raw(d),...f?[this.knex.raw(f)]:[]])}if(!((n?.aggregations?.length??0)>0)){let u=this.findSortablePrimaryKey(i);if(u&&(!r||r[u]===void 0))e=e.orderBy(`${o}.${u}`);else if(!u&&(!r||Object.keys(r).length===0))throw new Error(`Primary key not found for table ${this.table.name}`)}return e}isUnsortableField(e){return e?.type==="json"}findSortablePrimaryKey(e){return e.find(r=>{if(r==null)return!1;let n=this.getFieldSchema(r);return!this.isUnsortableField(n)})}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],o,a;if(n.length>1){let l=n.shift();o=n.join("."),a=`${l}.${o}`}else o=n.join("."),a=o;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let u=this.rawQuotedIdentifier(a),c=e.schema[i];return c&&c.type==="bigint"&&(u=this.castIntToString(u)),[o,u]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,o=this.knex,{resource:a,tableAliases:u,schema:c,tables:l}=this.query,d=a?.fields||[];for(let f of n){let{tableName:h,through:p,to:S,from:m,fromPrimary:g,toPrimary:y}=f;if(!h||!r)continue;let I=l[h];if(!I)throw new Error(`related table "${h}" not found in datasource`);let _=u?.[h]||h,D=u?.[r]||r,T=p&&u?.[p]||p,O=this.tableNameWithSchema(h,{alias:_,schema:c}),U=[...I?.primary||[],I?.primaryDisplay].filter(w=>w),R=VM(d.filter(w=>w.split(".")[0]===_),U);R=R.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=R.map(w=>this.buildJsonField(I,w));if(!k.length)continue;let Y=k.map(w=>{let J=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${J}??`,[w[0],w[1]]).toString()}).join(","),Ie=`${_}.${y||S}`,W=o.from(O).orderBy(Ie),F=p&&y&&g,N=F?`${T}.${m}`:`${_}.${S}`,G=F?`${D}.${g}`:`${D}.${m}`;if(F){let w=this.tableNameWithSchema(p,{alias:T,schema:c});W=W.join(w,function(){this.on(`${_}.${y}`,"=",`${T}.${S}`)})}W=W.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(G));let M=s(w=>(W=W.select(R.map(J=>this.rawQuotedIdentifier(J))).limit(Nm()),o.select(w).from({[_]:W})),"standardWrap"),K;switch(i){case"sqlite3":W=this.addJoinFieldCheck(W,f),K=M(this.knex.raw(`json_group_array(json_object(${Y}))`));break;case"pg":K=M(this.knex.raw(`json_agg(json_build_object(${Y}))`));break;case"mariadb":K=W.select(o.raw(`json_arrayagg(json_object(${Y}) LIMIT ${Nm()})`));break;case"mysql2":case"oracledb":K=M(this.knex.raw(`json_arrayagg(json_object(${Y}))`));break;case"mssql":{let w=o.select("*").from({[D]:W.select(k.map(J=>o.ref(J[1]).as(J[0]))).limit(Nm())});K=o.raw(`(SELECT ?? = (${w} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:o}=this.query,a=r.to,u=r.from,c=r.through,l=i?.[a]||a,d=c&&i?.[c]||c,f=i?.[u]||u,h=this.tableNameWithSchema(a,{alias:l,schema:o}),p=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(p,function(){for(let S of n){let m=S.fromPrimary,g=S.from;this.orOn(`${f}.${m}`,"=",`${d}.${g}`)}}).leftJoin(h,function(){for(let S of n){let m=S.toPrimary,g=S.to;this.orOn(`${l}.${m}`,`${d}.${g}`)}}):e=e.leftJoin(h,function(){for(let S of n){let m=S.from,g=S.to;this.orOn(`${f}.${m}`,"=",`${l}.${g}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=p}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let h=this.query.tableAliases?.[a.name]||a.name,p=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[h]:"paginated"}));return this.addJsonRelationships(p,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n,{relationship:!0}),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r,{relationship:!0}),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Mm=class extends Mc{constructor(r,n=Z_()){super(r);this.limit=n}static{s(this,"SqlQueryBuilder")}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let o=Jn(r);return i==="sqlite3"&&(o=rO(o)),o}}_query(r,n={}){let i=this.getSqlClient(),o={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(o.useNullAsDefault=!0);let a=(0,eO.knex)(o),u,c=new Lm(i,a,r);switch(this._operation(r)){case"CREATE":u=c.create(n);break;case"READ":u=c.read({limits:{query:this.limit,base:Z_()}});break;case"COUNT":u=c.read();break;case"UPDATE":u=c.update(n);break;case"DELETE":u=c.delete(n);break;case"BULK_CREATE":u=c.bulkCreate();break;case"BULK_UPSERT":u=c.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(u,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=o=>o){let o=this.getSqlClient(),a=this._operation(r),u=this._query(r,{disableReturning:!0});if(Array.isArray(u)){let f=[];for(let h of u)f.push(await n(h,a));return f}let c;a==="DELETE"&&(c=i(await this.getReturningRow(n,r)));let l=await n(u,a),d=i(l);if(a==="CREATE"||a==="UPDATE"){let f;o==="mssql"?f=d?.[0].id:(o==="mysql2"||o==="mariadb")&&(f=d?.insertId),c=i(await this.getReturningRow(n,this.checkLookupKeys(f,r)))}return a==="COUNT"?d:a!=="READ"?c:d.length?d:[{[a.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Kc){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let o=this.getTableName(r,i);for(let[a,u]of Object.entries(r.schema)){if(!nO(u))continue;let c=`${o}.${a}`;for(let l of n)typeof l[c]=="string"&&(l[c]=JSON.parse(l[c])),typeof l[a]=="string"&&(l[a]=JSON.parse(l[a]))}return n}log(r,n){Cs(this.getSqlClient(),r,n)}},iO=Mm;var Fm={};P(Fm,{base:()=>YM});function YM(t){return{_id:Rt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(YM,"base");var Wm={};P(Wm,{jsonFromCsvString:()=>HM});var sO=B(require("csvtojson"));async function HM(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,sO.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(HM,"jsonFromCsvString");var $m=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)}},kc=$m;var oO=B(require("@koa/router"));var wn=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}static{s(this,"EndpointGroup")}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),o=new kc(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 oO.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var ko=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new wn;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var zM={...Gs,...ue},JM=s((t={})=>{Ya(t.db)},"init");0&&(module.exports={APIWarning,ActiveContentFileError,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DesignDocuments,DocumentType,Duration,DurationType,EmailUnavailableError,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,FeatureDisabledWarning,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyWarning,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,USER_METADATA_PREFIX,UnexpectedError,UsageLimitError,UsageLimitWarning,UserStatus,ViewName,WORKSPACE_DEV,WORKSPACE_DEV_PREFIX,WORKSPACE_PREFIX,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getErrorMessage,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,warnings,withEnv});
|
|
39
39
|
//# sourceMappingURL=index.js.map
|