@budibase/backend-core 3.30.1 → 3.30.3
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 +1 -1
- package/dist/package.json +2 -2
- package/dist/src/environment.d.ts +0 -2
- package/dist/src/environment.js +1 -3
- package/dist/src/environment.js.map +1 -1
- package/dist/src/users/db.d.ts +0 -1
- package/dist/tests/core/utilities/mocks/licenses.d.ts +0 -1
- package/dist/tests/core/utilities/mocks/licenses.js +1 -5
- package/dist/tests/core/utilities/mocks/licenses.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
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}".
|
|
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,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(W){var F=["th","st","nd","rd"],N=W%100;return"["+W+(F[(N-20)%10]||F[N]||F[0])+"]"}},y=s(function(W,F,N){var G=String(W);return!G||G.length>=F?W:""+Array(F+1-G.length).join(N)+W},"m"),I={s:y,z:function(W){var F=-W.utcOffset(),N=Math.abs(F),G=Math.floor(N/60),M=N%60;return(F<=0?"+":"-")+y(G,2,"0")+":"+y(M,2,"0")},m:s(function W(F,N){if(F.date()<N.date())return-W(N,F);var G=12*(N.year()-F.year())+(N.month()-F.month()),M=F.clone().add(G,l),K=N-M<0,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[_]=E;var T="$isDayjsObject",O=s(function(W){return W instanceof H||!(!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 H(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 H=function(){function W(N){this.$L=U(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[T]=!0}s(W,"M");var F=W.prototype;return F.parse=function(N){this.$d=function(G){var M=G.date,K=G.utc;if(M===null)return new Date(NaN);if(k.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var 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,Ye=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?Ye-Oi:Ye+(6-Oi),we);case u:case h:return de(Dn+"Hours",0);case a:return de(Dn+"Minutes",1);case o:return de(Dn+"Seconds",2);case i:return de(Dn+"Milliseconds",3);default:return this.clone()}},F.endOf=function(N){return this.startOf(N,!1)},F.$set=function(N,G){var M,K=k.p(N),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 Ye=R(K);return k.w(Ye.date(Ye.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,Ye=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,Ye,3);case"MMMM":return Ur(Ye,Te);case"D":return G.$D;case"DD":return k.s(G.$D,2,"0");case"d":return String(G.$W);case"dd":return Ur(M.weekdaysMin,G.$W,we,2);case"ddd":return Ur(M.weekdaysShort,G.$W,we,3);case"dddd":return we[G.$W];case"H":return String(J);case"HH":return k.s(J,2,"0");case"h":return Oi(1);case"hh":return Oi(2);case"a":return Lr(J,de,!0);case"A":return Lr(J,de,!1);case"m":return String(de);case"mm":return k.s(de,2,"0");case"s":return String(G.$s);case"ss":return k.s(G.$s,2,"0");case"SSS":return k.s(G.$ms,3,"0");case"Z":return 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,Ye=s(function(){return k.m(w,de)},"D");switch(J){case f:K=Ye()/12;break;case l:K=Ye();break;case d:K=Ye()/3;break;case c:K=(we-Te)/6048e5;break;case u:K=(we-Te)/864e5;break;case a:K=we/r;break;case o:K=we/e;break;case i:K=we/t;break;default:K=we}return M?K:k.a(K)},F.daysInMonth=function(){return this.endOf(l).$D},F.$locale=function(){return 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=H.prototype;return R.prototype=Ie,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",h]].forEach(function(W){Ie[W[1]]=function(F){return this.$g(F,W[0],W[1])}}),R.extend=function(W,F){return W.$i||(W(F,H,R),W.$i=!0),R},R.locale=U,R.isDayjs=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 Yo(t),"valid");Ue.valid=kO;var FO=s(t=>new zo(t),"err");Ue.err=FO;var Yo=class{static{s(this,"Valid")}constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Ue.valid)(e(this.value))}mapErr(e){return(0,Ue.valid)(this.value)}};Ue.Valid=Yo;var zo=class{static{s(this,"Err")}constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,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(),HO=QO(or());ut();var YO=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,HO.default)(r,"seconds",e)},"checkSeconds");bi.default=YO});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(),gI=mI(or());ut();var EI=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,gI.default)(r,"years",e)},"checkYears");ki.default=EI});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 gh(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(gh,"printSimpleValue");function II(t,e){let r=gh(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=gh(this[n],e);return o!==null?o:i},2)}s(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 Eh=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,Eh.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Eh.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 HI=fl(require("lodash/mapValues")),ra=fl(kr()),YI=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:E}=u;function y(O){return YI.default.isRef(O)?O.getValue(i,m,E):O}s(y,"resolve");function I(O={}){let U=(0,HI.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,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=`
|
|
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 gl=aw.default,cw=gl;Vi.default=cw;function Gh(){return new gl}s(Gh,"create");Gh.prototype=gl.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 Hh=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=Yh(Pn()),fw=Yh(Lt());function Yh(t){return t&&t.__esModule?t:{default:t}}s(Yh,"_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,gw=s(t=>(0,Mt.default)(t)||t===t.trim(),"isTrimmed"),Ew={}.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===Ew?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: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()})}};ji.default=Qi;zh.prototype=Qi.prototype});var eg=q(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.create=Xh;Yi.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 Hi}s(Xh,"create");var Hi=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))}};Yi.default=Hi;Xh.prototype=Hi.prototype});var tg=q(El=>{"use strict";Object.defineProperty(El,"__esModule",{value:!0});El.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 ig=q(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.create=Tl;zi.default=void 0;var _w=ua(tg()),rg=Nt(),ng=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=rg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,ng.default)(i)||i>=this.resolve(n)}})}max(e,r=rg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,ng.default)(i)||i<=this.resolve(n)}})}};zi.default=Nn;Nn.INVALID_DATE=yl;Tl.prototype=Nn.prototype;Tl.INVALID_DATE=yl});var og=q((cB,Sl)=>{"use strict";Sl.exports=function(t){return sg(Dw(t),t)};Sl.exports.array=sg;function sg(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(sg,"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 ag=q(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});Al.default=Uw;var bw=ca(require("lodash/has")),xw=ca(og()),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 cg=q(_l=>{"use strict";Object.defineProperty(_l,"__esModule",{value:!0});_l.default=Lw;function ug(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(ug,"findIndex");function Lw(t){return(e,r)=>ug(t,e)-ug(t,r)}s(Lw,"sortByKeyOrder")});var gg=q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=hg;Zi.default=void 0;var lg=wt(require("lodash/has")),dg=wt(require("lodash/snakeCase")),Mw=wt(require("lodash/camelCase")),kw=wt(require("lodash/mapKeys")),Fw=wt(require("lodash/mapValues")),Bw=Bi(),fg=Nt(),Ww=wt(ag()),mg=wt(cg()),$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 pg=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,mg.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 pg(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,lg.default)(i,f);if(h){let S,m=i[f];l.path=(r.path?`${r.path}.`:"")+f,h=h.resolve({value:m,context:r.context,parent:c});let E="spec"in h?h.spec:void 0,y=E?.strict;if(E?.strip){d=d||f in i;continue}S=!r.__validating||!y?h.cast(i[f],l):i[f],S!==void 0&&(c[f]=S)}else p&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!Gw.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!pg(f)){n(i[0]||null,f);return}u=u||f;let h=this._nodes.map(p=>(S,m)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(f[p],Un({},r,{path:E,from:a,strict:!0,parent:f,originalValue:u[p]}),m);return}m(null)});(0,$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,mg.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,lg.default)(o,e)&&(a=Un({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=fg.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=fg.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(dg.default)}constantCase(){return this.transformKeys(e=>(0,dg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Fw.default)(this.fields,r=>r.describe()),e}};Zi.default=Ji;function hg(t){return new Ji(t)}s(hg,"create");hg.prototype=Ji.prototype});var yg=q(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.create=Eg;es.default=void 0;var Il=Ln(Pn()),Kw=Ln(xn()),Qw=Ln(Fi()),wl=Nt(),jw=Ln(ea()),Hw=Ln(kr()),Yw=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 Eg(t){return new Xi(t)}s(Eg,"create");var Xi=class extends Yw.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(!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 E=0;E<S.length;E++){let y=S[E],I=`${r.path||""}[${E}]`,_=la({},r,{path:I,strict:!0,parent:S,index:E,originalValue:h[E]});m[E]=(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;Eg.prototype=Xi.prototype});var Tg=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 Sg=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 Ag.default}});Object.defineProperty(re,"mixed",{enumerable:!0,get:function(){return Ag.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 _g.default}});Object.defineProperty(re,"string",{enumerable:!0,get:function(){return _g.create}});Object.defineProperty(re,"NumberSchema",{enumerable:!0,get:function(){return Og.default}});Object.defineProperty(re,"number",{enumerable:!0,get:function(){return Og.create}});Object.defineProperty(re,"DateSchema",{enumerable:!0,get:function(){return Ig.default}});Object.defineProperty(re,"date",{enumerable:!0,get:function(){return Ig.create}});Object.defineProperty(re,"ObjectSchema",{enumerable:!0,get:function(){return wg.default}});Object.defineProperty(re,"object",{enumerable:!0,get:function(){return wg.create}});Object.defineProperty(re,"ArraySchema",{enumerable:!0,get:function(){return Dg.default}});Object.defineProperty(re,"array",{enumerable:!0,get:function(){return Dg.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 Rg.default}});Object.defineProperty(re,"setLocale",{enumerable:!0,get:function(){return aD.default}});Object.defineProperty(re,"BaseSchema",{enumerable:!0,get:function(){return uD.default}});var Ag=Gr(Vh()),Rl=Gr(Hh()),_g=Gr(Jh()),Og=Gr(eg()),Ig=Gr(ig()),wg=Gr(gg()),Dg=Gr(yg()),nD=Br(),iD=Tg(),sD=rs(kr()),oD=rs(ml()),Rg=rs(xn()),aD=rs(Sg()),uD=rs(Lt());function rs(t){return t&&t.__esModule?t:{default:t}}s(rs,"_interopRequireDefault");function Cg(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Cg=s(function(){return t},"_getRequireWildcardCache"),t}s(Cg,"_getRequireWildcardCache");function Gr(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Cg();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,Rg.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 bg=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(bg());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}}},xg=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 gD=s(()=>Vr,"getOptionPresets");Ae.getOptionPresets=gD;var ED=s((t,e)=>{Vr[t]=xg.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=ED;var yD=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,h,p,S,m,E,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:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(I=T.daysOfWeek.upperLimit)!==null&&I!==void 0?I:T.daysOfWeek.maxValue},years:{lowerLimit:(_=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:xg.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},aE={year:v,month:ft,day:v},CD={year:v,month:ft,day:v,weekday:ft},uE={year:v,month:qe,day:v},cE={year:v,month:qe,day:v,weekday:qe},lE={hour:v,minute:v},dE={hour:v,minute:v,second:v},fE={hour:v,minute:v,second:v,timeZoneName:ft},pE={hour:v,minute:v,second:v,timeZoneName:qe},mE={hour:v,minute:v,hourCycle:"h23"},hE={hour:v,minute:v,second:v,hourCycle:"h23"},gE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:ft},EE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:qe},yE={year:v,month:v,day:v,hour:v,minute:v},TE={year:v,month:v,day:v,hour:v,minute:v,second:v},SE={year:v,month:ft,day:v,hour:v,minute:v},AE={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},_E={year:v,month:qe,day:v,hour:v,minute:v,timeZoneName:ft},OE={year:v,month:qe,day:v,hour:v,minute:v,second:v,timeZoneName:ft},IE={year:v,month:qe,day:v,weekday:qe,hour:v,minute:v,timeZoneName:qe},wE={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 ME(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 ME(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}},vg={};function UD(t,e={}){let r=JSON.stringify([t,e]),n=vg[r];return n||(n=new Intl.ListFormat(t,e),vg[r]=n),n}s(UD,"getCachedLF");var jl=new Map;function Hl(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(Hl,"getCachedDTF");var Yl=new Map;function LD(t,e={}){let r=JSON.stringify([t,e]),n=Yl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Yl.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 DE(t){let e=Jl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Jl.set(t,e)),e}s(DE,"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={...RE,...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=Hl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=Hl(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")||DE(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=Hl(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&&UE()&&(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):[]}},RE={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(),Yl.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,BE,()=>{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,GE,()=>{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,()=>VE,()=>{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,qE,()=>{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"||DE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:LE()?FD(this.locale):RE}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(YD(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"},Pg={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 Pg){let[o,a]=Pg[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 Ng=s(()=>Date.now(),"now"),Ug="system",Lg=null,Mg=null,kg=null,Fg=60,Bg,Wg=null,ne=class{static{s(this,"Settings")}static get now(){return Ng}static set now(e){Ng=e}static set defaultZone(e){Ug=e}static get defaultZone(){return ur(Ug,ls.instance)}static get defaultLocale(){return Lg}static set defaultLocale(e){Lg=e}static get defaultNumberingSystem(){return Mg}static set defaultNumberingSystem(e){Mg=e}static get defaultOutputCalendar(){return kg}static set defaultOutputCalendar(e){kg=e}static get defaultWeekSettings(){return Wg}static set defaultWeekSettings(e){Wg=nd(e)}static get twoDigitCutoffYear(){return Fg}static set twoDigitCutoffYear(e){Fg=e%100}static get throwOnInvalid(){return Bg}static set throwOnInvalid(e){Bg=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}},CE=[0,31,59,90,120,151,181,212,243,273,304,334],bE=[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 xE(t,e,r){return r+(fs(t)?bE:CE)[e-1]}s(xE,"computeOrdinal");function vE(t,e){let r=fs(t)?bE:CE,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(vE,"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=xE(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 $g(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}=vE(l,c);return{year:l,month:d,day:f,...ba(t)}}s($g,"weekToGregorian");function kl(t){let{year:e,month:r,day:n}=t,i=xE(e,r,n);return{year:e,ordinal:i,...ba(t)}}s(kl,"gregorianToOrdinal");function Gg(t){let{year:e,ordinal:r}=t,{month:n,day:i}=vE(e,r);return{year:e,month:n,day:i,...ba(t)}}s(Gg,"ordinalToGregorian");function Vg(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(Vg,"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 HD(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(HD,"hasInvalidOrdinalData");function PE(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(PE,"hasInvalidGregorianData");function NE(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(NE,"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 YD(t){return typeof t=="string"}s(YD,"isString");function zD(t){return Object.prototype.toString.call(t)==="[object Date]"}s(zD,"isDate");function UE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(UE,"hasRelative");function LE(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(LE,"hasLocaleWeekInfo");function JD(t){return Array.isArray(t)?t:[t]}s(JD,"maybeArray");function qg(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(qg,"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 Kg(t,e,r){return-ud(ad(t,1,e),r)+e-1}s(Kg,"firstWeekOffset");function ds(t,e=4,r=1){let n=Kg(t,e,r),i=Kg(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 ME(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(ME,"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 kE(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(kE,"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)]=kE(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"],FE=["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 BE(t){switch(t){case"narrow":return[...tR];case"short":return[...FE];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(BE,"months");var WE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],$E=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],rR=["M","T","W","T","F","S","S"];function GE(t){switch(t){case"narrow":return[...rR];case"short":return[...$E];case"long":return[...WE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(GE,"weekdays");var VE=["AM","PM"],nR=["Before Christ","Anno Domini"],iR=["BC","AD"],sR=["B","A"];function qE(t){switch(t){case"narrow":return[...sR];case"short":return[...iR];case"long":return[...nR];default:return null}}s(qE,"eras");function oR(t){return VE[t.hour<12?0:1]}s(oR,"meridiemForDateTime");function aR(t,e){return GE(e)[t.weekday-1]}s(aR,"weekdayForDateTime");function uR(t,e){return BE(e)[t.month-1]}s(uR,"monthForDateTime");function cR(t,e){return qE(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 Qg(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(Qg,"stringifyTokens");var dR={D:Sa,DD:aE,DDD:uE,DDDD:cE,t:lE,tt:dE,ttt:fE,tttt:pE,T:mE,TT:hE,TTT:gE,TTTT:EE,f:yE,ff:SE,fff:_E,ffff:IE,F:TE,FF:AE,FFF:OE,FFFF:wE},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 Qg(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 Qg(a,o(c,l))}},KE=/[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 QE(...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(QE,"simpleParse");var jE=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,fR=`(?:${jE.source}?(?:\\[(${KE.source})\\])?)?`,dd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,HE=RegExp(`${dd.source}${fR}`),fd=RegExp(`(?:[Tt]${HE.source})?`),pR=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,mR=/(\d{4})-?W(\d\d)(?:-?(\d))?/,hR=/(\d{4})-?(\d{3})/,gR=QE("weekYear","weekNumber","weekDay"),ER=QE("year","ordinal"),yR=/(\d{4})-(\d\d)-(\d\d)/,YE=RegExp(`${dd.source} ?(?:${jE.source}|(${KE.source}))?`),TR=RegExp(`(?: ${YE.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:FE.indexOf(r)+1,day:ar(n),hour:ar(i),minute:ar(o)};return a&&(u.second=ar(a)),t&&(u.weekday=t.length>3?WE.indexOf(t)+1:$E.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 jg(t){let[,e,r,n,i,o,a,u]=t;return[pd(e,i,n,r,o,a,u),Ke.utcInstance]}s(jg,"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(HE),zE=Vn(SR,Kn,ps,ms),MR=Vn(gR,Kn,ps,ms),kR=Vn(ER,Kn,ps,ms),FR=Vn(Kn,ps,ms);function BR(t){return qn(t,[PR,zE],[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,jg],[bR,jg],[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(YE),jR=Vn(Kn,ps,ms);function HR(t){return qn(t,[KR,zE],[QR,jR])}s(HR,"parseSQL");var Hg="Invalid Duration",JE={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}},YR={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},...JE},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},...JE},Hr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],JR=Hr.slice(0).reverse();function kt(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new Ee(n)}s(kt,"clone$1");function ZE(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(ZE,"durationToMillis");function Yg(t,e){let r=ZE(t,e)<0?-1:1;Hr.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),Hr.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(Yg,"normalizeValues");function zg(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(zg,"removeZeroes");var Ee=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?zR:YR;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):Hg}toHuman(e={}){if(!this.isValid)return Hg;let r=e.showZeros!==!1,n=Hr.map(i=>{let o=this.values[i];return Q(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=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?ZE(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Hr)($n(r.values,i)||$n(this.values,i))&&(n[i]=r.get(i)+this.get(i));return kt(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=kE(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 Yg(this.matrix,e),kt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=zg(this.normalize().shiftToAll().toObject());return kt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of Hr)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;lr(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else lr(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return Yg(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=zg(this.values);return kt(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}s(r,"eq");for(let n of Hr)if(!r(this.values[n],e.values[n]))return!1;return!0}},kn="Invalid Interval";function 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=Ee.fromDurationLike(r),i=ss(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Ee.fromDurationLike(r),i=ss(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=oe.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=oe.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=Ee.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=Ee.fromISO(n,r);if(l.isValid)return t.before(u,l)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(ss).filter(a=>this.contains(a)).sort((a,u)=>a.toMillis()-u.toMillis()),n=[],{s:i}=this,o=0;for(;i<this.e;){let a=r[o]||this.e,u=+a>+this.e?this.e:a;n.push(t.fromDateTimes(i,u)),i=u,o+=1}return n}splitBy(e){let r=Ee.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:kn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Sa,r={}){return this.isValid?Ge.create(this.s.loc.clone(r),e).formatInterval(this):kn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:kn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:kn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:kn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:kn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):Ee.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Yr=class{static{s(this,"Info")}static hasDST(e=ne.defaultZone){let r=oe.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Bt.isValidZone(e)}static normalizeZone(e){return ur(e,ne.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||te.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||te.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||te.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return te.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return te.create(r,null,"gregory").eras(e)}static features(){return{relative:UE(),localeWeek:LE()}}};function Jg(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(Ee.fromMillis(n).as("days"))}s(Jg,"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=Jg(c,l);return(d-d%7)/7}],["days",Jg]],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=Ee.fromObject(o,n);return l.length>0?Ee.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),XE=`[ ${rC}]`,ey=new RegExp(XE,"g");function nC(t){return t.replace(/\./g,"\\.?").replace(ey,XE)}s(nC,"fixListRegex");function Zg(t){return t.replace(/\./g,"").replace(ey," ").toLowerCase()}s(Zg,"stripInsensitivities");function dt(t,e){return t===null?null:{regex:RegExp(t.map(nC).join("|")),deser:([r])=>t.findIndex(n=>Zg(r)===Zg(n))+e}}s(dt,"oneOf");function Xg(t,e){return{regex:t,deser:([,r,n])=>Ca(r,n),groups:e}}s(Xg,"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(E=>({regex:RegExp(iC(E.val)),deser:([y])=>y,literal:!0}),"literal"),m=s(E=>{if(t.literal)return p(E);switch(E.val){case"G":return dt(e.eras("short"),0);case"GG":return dt(e.eras("long"),0);case"y":return X(l);case"yy":return X(f,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 Xg(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return Xg(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return pa(/[a-z_+-/]{1,256}?/i);case" ":return pa(/[^\S\n\r]/);default:return p(E)}},"unitate")(t)||{invalidReason: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",eE=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 ga(t,e,r){return iy(Ra(t),e,r)}s(ga,"objToTS");function tE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,Oa(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=Ee.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),u=Ra(o),[c,l]=iy(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(tE,"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 rE(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(rE,"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},Ea=["year","month","day","hour","minute","second","millisecond"],gC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],EC=["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 nE(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(nE,"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 iE(t,e){let r=ur(e.zone,ne.defaultZone);if(!r.isValid)return oe.invalid(as(r));let n=te.fromObject(e),i,o;if(Q(t.year))i=ne.now();else{for(let c of Ea)Q(t[c])&&(t[c]=sy[c]);let a=PE(t)||NE(t);if(a)return oe.invalid(a);let u=yC(r);[i,o]=ga(t,u,r)}return new oe({ts:i,zone:r,loc:n,o})}s(iE,"quickDT");function sE(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(sE,"diffRelative");function oE(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(oE,"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]=oE(arguments),[n,i,o,a,u,c,l]=r;return iE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=oE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=Ke.utcInstance,iE({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<-eE||e>eE?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,nE),{minDaysInFirstWeek:a,startOfWeek:u}=Vg(o,i),c=ne.now(),l=Q(r.specificOffset)?n.offset(c):r.specificOffset,d=!Q(o.ordinal),f=!Q(o.year),h=!Q(o.month)||!Q(o.day),p=f||h,S=o.weekYear||o.weekNumber;if((p||d)&&S)throw new cr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&d)throw new cr("Can't mix ordinal dates with month/day");let m=S||o.weekday&&!p,E,y,I=ma(c,l);m?(E=gC,y=mC,I=_a(I,a,u)):d?(E=EC,y=hC,I=kl(I)):(E=Ea,y=sy);let _=!1;for(let H of E){let Ie=o[H];Q(Ie)?_?o[H]=y[H]:o[H]=I[H]:_=!0}let D=m?jD(o,a,u):d?HD(o):PE(o),T=D||NE(o);if(T)return t.invalid(T);let O=m?$g(o,a,u):d?Gg(o):o,[U,R]=ga(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]=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 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?Yr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Yr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Yr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Yr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=Ra(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ma(c,a),f=ma(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[jr(this,{ts:c}),jr(this,{ts:l})]:[this]}get isInLeapYear(){return fs(this.year)}get daysInMonth(){return Oa(this.year,this.month)}get daysInYear(){return this.isValid?Bn(this.year):NaN}get weeksInWeekYear(){return this.isValid?ds(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?ds(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=Ge.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ke.instance(e),r)}toLocal(){return this.setZone(ne.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=ur(e,ne.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=ga(a,o,e)}return jr(this,{ts:i,zone:e})}else return t.invalid(as(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return jr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Ia(e,nE),{minDaysInFirstWeek:n,startOfWeek:i}=Vg(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=$g({..._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=Gg({...kl(this.c),...r});let[h,p]=ga(f,this.o,this.zone);return jr(this,{ts:h,o:p})}plus(e){if(!this.isValid)return this;let r=Ee.fromDurationLike(e);return jr(this,tE(this,r))}minus(e){if(!this.isValid)return this;let r=Ee.fromDurationLike(e).negate();return jr(this,tE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=Ee.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?Ge.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):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 Ea.indexOf(a)>=3&&(c+="T"),c+=rE(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&&Ea.indexOf(u)>=3?"T":"")+rE(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 Ee.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=JD(r).map(Ee.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),sE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?sE(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 qg(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return qg(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 aE}static get DATE_MED_WITH_WEEKDAY(){return CD}static get DATE_FULL(){return uE}static get DATE_HUGE(){return cE}static get TIME_SIMPLE(){return lE}static get TIME_WITH_SECONDS(){return dE}static get TIME_WITH_SHORT_OFFSET(){return fE}static get TIME_WITH_LONG_OFFSET(){return pE}static get TIME_24_SIMPLE(){return mE}static get TIME_24_WITH_SECONDS(){return hE}static get TIME_24_WITH_SHORT_OFFSET(){return gE}static get TIME_24_WITH_LONG_OFFSET(){return EE}static get DATETIME_SHORT(){return yE}static get DATETIME_SHORT_WITH_SECONDS(){return TE}static get DATETIME_MED(){return SE}static get DATETIME_MED_WITH_SECONDS(){return AE}static get DATETIME_MED_WITH_WEEKDAY(){return bD}static get DATETIME_FULL(){return _E}static get DATETIME_FULL_WITH_SECONDS(){return OE}static get DATETIME_HUGE(){return IE}static get DATETIME_HUGE_WITH_SECONDS(){return wE}};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=Ee;Qe.FixedOffsetZone=Ke;Qe.IANAZone=Bt;Qe.Info=Yr;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 gy=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,E=S.length;m<E;m++){var y=S[m];if(L._isValidConstraintChar(n,y)){l.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);l.push(y)}else{if(L._isValidConstraintChar(n,S)){l.push(S);return}var I=+S;if(Number.isNaN(I)||I<n.min||I>n.max)throw new Error("Constraint error, got value "+S+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(I=I%7),l.push(I)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(S){return S.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var h=0,p=f.length;h<p;h++)d(a(f[h]));else d(a(c));return l.sort(L._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var h=+f[0],p=+f[1];if(Number.isNaN(h)||Number.isNaN(p)||h<n.min||p>n.max)throw new Error("Constraint error, got range "+h+"-"+p+" expected range "+n.min+"-"+n.max);if(h>p)throw new Error("Invalid range: "+c);var S=+l;if(Number.isNaN(S)||S<=0)throw new Error("Constraint error, cannot repeat at every "+S+" time.");e==="dayOfWeek"&&p%7===0&&d.push(0);for(var m=h,E=p;m<=E;m++){var y=d.indexOf(m)!==-1;!y&&S>0&&S%l===0?(S=1,d.push(m)):S++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");L._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};L._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=L.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(L._sortCompareFn)}};L._freezeFields=function(t){for(var e=0,r=L.map.length;e<r;++e){var n=L.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};L.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};L.prototype._findSchedule=s(function(e){function r(y,I){for(var _=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,E=a.getHours();if(!h&&(!p||m)){this._applyTimezoneShift(a,o,"Day");continue}if(!S&&m&&!h){this._applyTimezoneShift(a,o,"Day");continue}if(S&&!m&&!p){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(E-1,this.fields.hour)){a[o+"Hour"]();continue}if(!r(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,o,"Minute");continue}if(!r(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,o,"Second");continue}if(l===a.getTime()){o==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,o,"Second"):a.setMilliseconds(0);continue}break}if(d>=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 E=L.map[d];m[E]=u[d]}var y=L._handleMaxDaysInMonth(m);return m.dayOfMonth=y||m.dayOfMonth,new L(m,a);function I(_){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,E=p.length;m<E;m++){var y=p[m];if(!L._isValidConstraintChar(S,y)&&(typeof y!="number"||Number.isNaN(y)||y<S.min||y>S.max))throw new Error("Constraint error, got value "+y+" expected range "+S.min+"-"+S.max)}}s(n,"validateConstraints");for(var i={},o=0,a=L.map.length;o<a;++o){var u=L.map[o],c=e[u];n(u,c,L.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(L._sortCompareFn).filter(function(h,p,S){return!p||h!==S[p-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=L._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new L(i,r||{})},"fieldsToExpression");hy.exports=L});var yy=q((BB,Ey)=>{"use strict";var xa=gy();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");Ey.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:()=>Em,env:()=>g,errors:()=>Vu,events:()=>hi,features:()=>fm,getErrorMessage:()=>rA,getPublicError:()=>Gu,init:()=>JM,installation:()=>zu,locks:()=>En,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:()=>Ei,utils:()=>si,warnings:()=>ym,withEnv:()=>Qy});module.exports=fO(ZM);var Jt={};P(Jt,{analyticsEnabled:()=>ju,generateConfigID:()=>xo,getAIConfig:()=>u0,getConfig:()=>ve,getDefaultGoogleConfig:()=>Yp,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||{}),Hm=[...Object.values(qc),...Object.values(Vc)];function Ym(t){return t.stepId==="BRANCH"}s(Ym,"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:()=>Ho});var Qn=B(Zm());var _t={};P(_t,{filterValueToLabel:()=>AO,hasSchema:()=>_O,isSupportedUserSearch:()=>th,nameToUrl:()=>RO,parallelForeach:()=>SO,processSearchFilters:()=>Hc,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 Hc(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,eh.default)(i,yO);return o.field=jo(o.field),o})}]}}s(Hc,"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:()=>Yc,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:()=>gd,urlHelpers:()=>qC,views:()=>yd,wait:()=>zc,withTimeout:()=>PO});var Yc=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 gd={};P(gd,{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:()=>gs,isCalculationView:()=>PC,isV2:()=>MC,isVisible:()=>Iy});var Ed=B(require("lodash/pickBy"));function gs(t){return"calculationType"in t}s(gs,"isCalculationField");function vC(t){return!gs(t)}s(vC,"isBasicViewField");function PC(t){return t.type==="calculation"}s(PC,"isCalculationView");function NC(t){return Object.values(t.schema||{}).some(gs)}s(NC,"hasCalculationFields");function UC(t){return(0,Ed.default)(t.schema||{},gs)}s(UC,"calculationFields");function Iy(t){return t.visible!==!1}s(Iy,"isVisible");function LC(t,e){let{visible:r=!0}=e||{};return(0,Ed.default)(t.schema||{},n=>!gs(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 HC=/{{([^{].*?)}}/g,Uy=Object.values(wi),YC=[...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(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($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 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 My(t){if(!t)return{};if(Array.isArray(t)&&(t=Hc(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}=Ho(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 H=Wo(T)?U:Yc(U,jo(R)),Ie=O(H,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,H=+O.high;if(!isNaN(k)&&!isNaN(H))return U>=k&&U<=H;if(isNaN(k)){if(!isNaN(H))return U<=H}else return U>=k}let R=(0,Qn.default)(T);if(R.isValid()){let k=(0,Qn.default)(O.low||"0000-00-00T00:00:00.000Z"),H=(0,Qn.default)(O.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&H.isValid())return R.isAfter(k)&&R.isBefore(H)||R.isSame(k)||R.isSame(H);if(k.isValid())return R.isAfter(k)||R.isSame(k);if(H.isValid())return R.isBefore(H)||R.isSame(H)}return 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)),E=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:E,$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 YC){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"),Es=sr("app_dev");function eb(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Es))return t;let e=t.split(Cd);e.shift();let r=e.join(Cd);return`${Es}${r}`}s(eb,"getDevAppID");function ys(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Es))return t;let e=t.split(Es);e.shift();let r=e.join(Es);return`${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(Ym(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:()=>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 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:()=>Yt,user:()=>br,withCache:()=>wr,withCacheWithDynamicTTL:()=>KS,workspace:()=>Us,writethrough:()=>Hp});var hp={};P(hp,{DocWritethrough:()=>mp,DocWritethroughProcessor:()=>eo,getProcessor:()=>iP,init:()=>qS});var pp={};P(pp,{BudibaseQueue:()=>Et,InMemoryQueue:()=>Su,JobQueue:()=>oi,QueuedProcessor:()=>fp,UnretriableError:()=>vu,shutdown:()=>yv});var qd=require("crypto"),Ga=require("fs"),qy=require("lodash"),_s=require("path");var Eb=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)(Eb,".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 Hn={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||Hn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Hn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Hn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Hn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Hn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Hn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE: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,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"];for(let[t,e]of Object.entries(pt))e==="0"&&(pt[t]=0),e==="false"&&(pt[t]=0);var g=pt;var Ka={};P(Ka,{Databases:()=>Qd,SEPARATOR:()=>Yn,SelectableDatabase:()=>Va,getRedisClusterOptions:()=>jd,getRedisConnectionDetails:()=>qa,getRedisOptions:()=>tn,removeDbPrefix:()=>Hd});var Yn="-",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=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.OPENAPI_IMPORT_SPECS=3]="OPENAPI_IMPORT_SPECS",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(Va||{});function qa(){let t=g.REDIS_PASSWORD,e=g.REDIS_USERNAME,r=g.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");e=e||a[0]||void 0,t=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:t,username:e,port:isNaN(o)?6379:o}}s(qa,"getRedisConnectionDetails");function 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 Hd(t){let e=t.split(Yn);return e.length>=2?(e.shift(),e.join(Yn)):e[0]}s(Hd,"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:()=>Yx,hash:()=>zd,isAudited:()=>$f,isClient:()=>Hx,isPublicApiRequest:()=>Qx,isServingApp:()=>Vx,isServingBuilder:()=>qx,isServingBuilderPreview:()=>Kx,isValidInternalAPIKey:()=>Vs,newid:()=>ee,openJwt:()=>gu,setCookie:()=>oS,time:()=>Jx,timeout:()=>Wf,urlHasProtocol:()=>zx,validEmail:()=>Gf});var Hy=require("uuid");function ee(){return(0,Hy.v4)().replace(/-/g,"")}s(ee,"newid");var Yd=require("bcrypt"),Db=g.SALT_ROUNDS||10;async function zd(t){let e=await Yd.genSalt(Db);return Yd.hash(t,e)}s(zd,"hash");async function Jd(t,e){return Yd.compare(t,e)}s(Jd,"compare");var hu=B(require("jsonwebtoken"));var ue={};P(ue,{DEFAULT_TENANT_ID:()=>ae,baseGlobalDBName:()=>xs,doInAutomationContext:()=>zb,doInContext:()=>gf,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:()=>Ef,getCurrentContext:()=>sn,getDevWorkspaceDB:()=>fx,getDevWorkspaceId:()=>sx,getEnvironmentVariables:()=>cx,getFeatureFlagOverrides:()=>_f,getFeatureFlags:()=>Sf,getGlobalDB:()=>Y,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:()=>Er,isScim:()=>gt,isSelfHostUsingCloud:()=>Xa,isTenancyEnabled:()=>Hb,isTenantIdSet:()=>jb,setFeatureFlags:()=>Af,setTableForView:()=>mx});var Is={};P(Is,{doInAccountContext:()=>Rb,doInIdentityContext:()=>Xd,doInUserContext:()=>ef,getAccountUserId:()=>Yy,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=Yy(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Xd(i,e)}s(Rb,"doInAccountContext");function Yy(t){let e;return Vo(t)?e=t.budibaseUserId:e=t.accountId,e}s(Yy,"getAccountUserId");var mt=s(t=>{let e=tf(t),r,n;if(e.auth?.username)r=e.auth.username;else if(g.COUCH_DB_USERNAME)r=g.COUCH_DB_USERNAME;else if(!g.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(g.COUCH_DB_PASSWORD)n=g.COUCH_DB_PASSWORD;else if(!g.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=g.COUCH_DB_SQL_URL;if(g.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:tf(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),tf=s((t=g.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var 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 Ha(t){Zy=nf(t),Xy=!0}s(Ha,"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||g.isTest()))try{return await t.close()}catch{}}s(Rs,"closePouchDB");var le=B(require("dd-trace"));var zn=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return le.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return le.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return le.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return le.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return le.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return le.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return le.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return le.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return le.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return le.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return le.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return le.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return le.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return le.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return le.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return le.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return le.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return le.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return le.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return le.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return le.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var ff={};P(ff,{breakExternalTableId:()=>af,breakRowIdField:()=>$b,buildExternalTableId:()=>Lb,convertRowId:()=>Wb,encodeTableId:()=>Mb,encodeViewId:()=>kb,extractDate:()=>cf,generateRowIdField:()=>Fb,getNativeSql:()=>Jn,isExternalTable:()=>of,isExternalTableID:()=>Ya,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 Ya(t){return t.startsWith("datasource"+C)}s(Ya,"isExternalTableID");function Ub(t){return!Ya(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&&Ya(t._id))}s(of,"isExternalTable");function Lb(t,e){return`${t}${sf}${encodeURIComponent(e)}`}s(Lb,"buildExternalTableId");function Mb(t){return Ya(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(!g.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 gr(t){if(!t)throw mf;return t.startsWith(tt)}s(gr,"isDevWorkspaceID");function qb(t){if(!t)throw mf;return t.startsWith(et)&&!gr(t)}s(qb,"isProdWorkspaceID");function bs(t){if(!t)throw mf;return gr(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 He(t){if(!t||!t.startsWith(tt))return t;let e=t.split(tt);e.shift();let r=e.join(tt);return`${et}${r}`}s(He,"getProdWorkspaceID");var 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 g.PLATFORM_URL}s(hf,"getPlatformURL");function Er(){return!!g.MULTI_TENANCY}s(Er,"isMultiTenant");function jb(){return!!he.get()?.tenantId}s(jb,"isTenantIdSet");function Hb(){return g.MULTI_TENANCY}s(Hb,"isTenancyEnabled");function Xn(t){if(!t)return;if(!Er())return ae;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(Xn,"getTenantIDFromWorkspaceID");function Yb(t){let e;try{e=he.get()}catch{e={}}return e={...e,...t},e}s(Yb,"updateContext");async function ht(t,e){rx();let r=Yb(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 gf(t,e){let r=Xn(t);return ht({tenantId:r,appId:t},e)}s(gf,"doInContext");async function Ce(t,e){return g.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(!Er())return ae;let e=he.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s($,"getTenantId");function Ef(){return he.get()?.automationId}s(Ef,"getAutomationId");function be(){let e=he.get()?.appId;return!e&&g.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 He(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 Y(){let t=he.get();if(!t||g.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return Re(xs(t?.tenantId))}s(Y,"getGlobalDB");function 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(He(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 gt(){return!!he.get()?.isScim}s(gt,"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:()=>HT,createPlatformUserView:()=>YT,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:()=>ET,generateTemplateID:()=>AT,generateUserMetadataID:()=>TT,generateVectorDbID:()=>LT,generateWorkspaceAppID:()=>NT,generateWorkspaceFavouriteID:()=>UT,generateWorkspaceID:()=>gT,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:()=>He,getQueryIndex:()=>MT,getRoleParams:()=>mu,getRowParams:()=>vf,getStartEndKeyURL:()=>Ls,getTemplateParams:()=>FT,getUrlInfo:()=>tf,getUserMetadataParams:()=>kT,getUsersByWorkspaceParams:()=>ni,getWorkspaceAppParams:()=>$T,getWorkspaceFavouriteParams:()=>GT,getWorkspacesByIDs:()=>Rx,init:()=>Ha,isAgentFileID:()=>xT,isDevWorkspace:()=>bs,isDevWorkspaceID:()=>gr,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(g.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(g.MOCK_REDIS)return e.addTags({mock:!0}),new dT(tn());let r;if(g.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 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:Hd(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(gx,"promisifyStream");function Ex(t){return t.isCluster}s(Ex,"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&&!g.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}${Yn}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${Yn}${e}`;let n;Ex(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,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)})}},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:()=>
|
|
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:()=>ET,generateTemplateID:()=>AT,generateUserMetadataID:()=>TT,generateVectorDbID:()=>LT,generateWorkspaceAppID:()=>NT,generateWorkspaceFavouriteID:()=>UT,generateWorkspaceID:()=>gT,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 gT=s(t=>{let e=et;return t&&(e+=`${t}${C}`),`${e}${ee()}`},"generateWorkspaceID");function ET(){return`ta${C}${ee()}`}s(ET,"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=He(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!g.MULTI_TENANCY||!e&&i===ae?await n():(await n(Ls("app",i)),await n(Ls("app_dev",i)),r.push(nn(i))),r}s(VT,"getAllDbs");async function Ms({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=$();!g.MULTI_TENANCY&&!i&&(i=ae);let a=(await VT({efficient:n||!1})).filter(c=>{if(g.isTest()&&!c)return!1;let l=c.split(C);if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ae&&f||d===i}return!1});if(r){let c=a.filter(d=>gr(d)),l=a.filter(d=>!gr(d));switch(t){case!0:return c;case!1:return l;default:return a}}let u=a.map(c=>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=>!gr(e))}s(Cx,"getProdWorkpaceIDs");async function bx(){return(await Ms({idsOnly:!0})).filter(e=>gr(e))}s(bx,"getDevWorkspaceIDs");function xx(t,e){return t==null||e==null?!1:He(t)===He(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=Y(),e=`function(doc) {
|
|
10
10
|
if (doc._id.startsWith("us${C}")) {
|
|
11
11
|
emit(doc.email.toLowerCase(), doc._id)
|
|
12
12
|
}
|
|
13
|
-
}`;await ii(t,e,"by_email2")},"createNewUserEmailView"),KT=s(async()=>{let t=
|
|
13
|
+
}`;await ii(t,e,"by_email2")},"createNewUserEmailView"),KT=s(async()=>{let t=Y(),e=`function(doc) {
|
|
14
14
|
if (doc._id.startsWith("us${C}") && doc.roles) {
|
|
15
15
|
for (let prodWorkspaceId of Object.keys(doc.roles)) {
|
|
16
16
|
let emitted = prodWorkspaceId + "${C}" + doc._id
|
|
17
17
|
emit(emitted, null)
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
}`;await ii(t,e,"by_app")},"createUserAppView"),QT=s(async()=>{let t=
|
|
20
|
+
}`;await ii(t,e,"by_app")},"createUserAppView"),QT=s(async()=>{let t=Y(),e=`function(doc) {
|
|
21
21
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
22
22
|
emit(doc.apiKey, doc.userId)
|
|
23
23
|
}
|
|
24
|
-
}`;await ii(t,e,"by_api_key")},"createApiKeyView");async function ks(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await 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&&
|
|
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&&g.isTest())return;throw r}}s(jT,"createPlatformView");var HT=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 jT(t,"account_by_email")},"createPlatformAccountEmailView"),
|
|
28
|
+
}`;await jT(t,"account_by_email")},"createPlatformAccountEmailView"),YT=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"),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});
|
|
36
|
+
}`,"platform_users_lowercase_2")},"createPlatformUserView"),Fs=s(async(t,e)=>{let r={account_by_email:HT,platform_users_lowercase_2:YT};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=Y());let i=zT[t];return Lf(t,e,r,i,n)},"queryGlobalView");async function Bs(t,e,r){let n=Y(),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,E="AND")=>{if(an(m))return null;if(!Array.isArray(m))return`${S}:${m}`;let y=`${e.preprocess(m[0],{escape:!0})}`;for(let I=1;I<m.length;I++)y+=` ${E} ${e.preprocess(m[I],{escape:!0})}`;return`${S}:(${y})`},"contains"),l=s((S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"fuzzy"}),`${S}:/.*${m}.*/`),"fuzzy"),d=s((S,m)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+c(S,m,y)},"notContains"),f=s((S,m)=>c(S,m,"OR"),"containsAny"),h=s((S,m)=>{if(an(m))return"*:*";if(!Array.isArray(m))if(typeof m=="string")m=m.split(",");else return"";let E=`${e.preprocess(m[0],o)}`;for(let y=1;y<m.length;y++)E+=` OR ${e.preprocess(m[y],o)}`;return`${S}:(${E})`},"oneOf");function p(S,m,E){let y="";for(let[I,_]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=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=D,(typeof _!="string"&&_!=null||typeof _=="string"&&_!==a&&_!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(s(p,"build"),this.#e.string&&p(this.#e.string,(S,m)=>an(m)?null:(m=e.preprocess(m,{escape:!0,lowercase:!0,type:"string"}),`${S}:${m}*`)),this.#e.range&&p(this.#e.range,(S,m)=>{if(an(m)||m.low==null||m.low===""||m.high==null||m.high==="")return null;let E=e.preprocess(m.low,o),y=e.preprocess(m.high,o);return`${S}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,l),this.#e.equal&&p(this.#e.equal,u),this.#e.notEqual&&p(this.#e.notEqual,(S,m)=>an(m)?null:typeof m=="boolean"?`(*:* AND !${S}:${m})`:`!${S}:${e.preprocess(m,o)}`),this.#e.empty&&p(this.#e.empty,S=>(i=!1,`(*:* -${S}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,S=>(i=!1,`${S}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,h),this.#e.contains&&p(this.#e.contains,c),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&p(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:a},u)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=mt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await 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=Y(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=s(function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function o(a,u){for(let c of Object.keys(a)){if(i.includes(c))continue;let l=u!=null?`${u}.${c}`:c;typeof a[c]=="string"?index(l,a[c].toLowerCase(),{facet:!0}):typeof a[c]!="object"?index(l,a[c],{facet:!0}):o(a[c],l)}}s(o,"idx"),o(n)},"fn");e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}s(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(Er()){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(!Er())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=$();!g.isDev()&&g.MULTI_TENANCY&&(i=$s(t,{includeStrategies:["subdomain"]}));let a=(await Ce(i,()=>Ms({dev:!1}))).filter(u=>u.url&&u.url.toLowerCase()===n)[0];return a&&a.appId?a.appId:void 0}s(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 gu(t){if(t)try{return hu.default.verify(t,g.JWT_SECRET)}catch(e){if(g.JWT_SECRET_FALLBACK)return hu.default.verify(t,g.JWT_SECRET_FALLBACK);throw e}}s(gu,"openJwt");function Vs(t){return g.INTERNAL_API_KEY&&g.INTERNAL_API_KEY===t?!0:!!(g.INTERNAL_API_KEY_FALLBACK&&g.INTERNAL_API_KEY_FALLBACK===t)}s(Vs,"isValidInternalAPIKey");function Qt(t,e){let r=t.cookies.get(e);if(r)return gu(r)}s(Qt,"getCookie");function oS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=hu.default.sign(e,g.JWT_SECRET));let i={expires:Wa,path:"/",httpOnly:!1,overwrite:!0};g.COOKIE_DOMAIN&&(i.domain=g.COOKIE_DOMAIN),t.cookies.set(r,e,i)}s(oS,"setCookie");function Ar(t,e){oS(t,null,e)}s(Ar,"clearCookie");function Hx(t){return t.headers["x-budibase-type"]==="client"}s(Hx,"isClient");function Wf(t){return new Promise(e=>setTimeout(e,t))}s(Wf,"timeout");function $f(t){return!!qm[t]}s($f,"isAudited");function Yx(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(Yx,"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||{}),Eu={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/Eu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Eu[e]/Eu[r]}static from(e,r){return new t(r*Eu[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 Hf=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 gf(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(),Yf=pe.fromSeconds(60).toMs(),Qs=[],_u;async function lS(){for(let t of Qs)await t.clean(Yf,"completed"),await t.clean(Yf,"failed")}s(lS,"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 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 Ev(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(Ev,"jobTags");var Et=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:tn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:mv,lockRenewTime:hv}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return g.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new Hf.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new uS(this.jobQueue,r):n=new Hf.default(this.jobQueue,r),cS(n,this.jobQueue,this.opts.removeStalledCb),Qs.push(n),!_u&&!g.isTest()&&(_u=Qf(lS,Yf),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,...Ev(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 gv(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:()=>ES,retrieve:()=>IS,retrieveDirectory:()=>Pv,retrieveToTmp:()=>vv,sanitizeBucket:()=>xe,sanitizeKey:()=>ge,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 Ht=B(require("dd-trace")),ai=B(require("fs")),Ys=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"),Hs=B(require("path")),hS=B(require("stream"));var Av={BACKUPS:g.BACKUPS_BUCKET_NAME,APPS:g.APPS_BUCKET_NAME,TEMPLATES:g.TEMPLATES_BUCKET_NAME,GLOBAL:g.GLOBAL_BUCKET_NAME,PLUGINS:g.PLUGIN_BUCKET_NAME,TEMP:g.TEMP_BUCKET_NAME},gS=(0,Hs.join)((0,mS.tmpdir)(),".budibase");try{pS.default.mkdirSync(gS)}catch(t){if(t.code!=="EEXIST")throw t}function cn(){return gS}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=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:hS.default.Readable.fromWeb(e.body)}}s(_v,"processUrlAttachment");async function ES(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=Hs.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(ES,"processObjectStoreAttachment");async function Ov(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await _v(t):await ES(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 ge(t){return Iv(xe(t)).replace(/\\/g,"/")}s(ge,"sanitizeKey");function xe(t){return t.replace(new RegExp(tt,"g"),et)}s(xe,"sanitizeBucket");function st(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:g.MINIO_ACCESS_KEY,secretAccessKey:g.MINIO_SECRET_KEY},region:g.AWS_REGION};if(!g.MINIO_ENABLED&&g.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:g.MINIO_ACCESS_KEY,secretAccessKey:g.MINIO_SECRET_KEY,sessionToken:g.AWS_SESSION_TOKEN}),g.MINIO_URL&&(t.presigning&&g.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=g.MINIO_URL),g.S3_IGNORE_SELF_SIGNED==="true"){let r=new 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=ge(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 Ys.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:ge(e),Body:c,ContentType:h};if(i&&typeof i=="object"){for(let m of Object.keys(i))(!i[m]||typeof i[m]!="string")&&delete i[m];p.Metadata=i}return new 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 Ht.default.trace("streamUpload",async a=>{a.addTags({bucketName:t,filename:r,type:n,ttl:o});let u=r.split(".").pop();a.addTags({extension:u});let{bucket:c,client:l}=await 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:ge(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 Ht.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await 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 Ht.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=st(),i={Bucket:xe(t),Key:ge(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),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:ge(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s(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:ge(e)},o=await(0,yS.getSignedUrl)(n,new Du.GetObjectCommand(i),{expiresIn:r});if(g.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 Ht.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=xe(t),e=ge(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 Ht.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,Or.join)(cn(),(0,tp.v4)());await Ys.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 Ht.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 Ys.default.mkdir(p,{recursive:!0}),await(0,zs.pipeline)(d,ai.default.createWriteStream((0,Or.join)(i,...f),{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(Pv,"retrieveDirectory");async function Nv(t,e){let r=st();await Js(r,t);let n={Bucket:t,Key:ge(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:ge(i)}))}};return r.deleteObjects(n)}s(Uv,"deleteFiles");async function wS(t,e){t=xe(t),e=ge(e);let r=st(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return wS(t,e)}s(wS,"deleteFolder");async function sp(t,e,r){return await Ht.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=xe(t);let i=await Ys.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=ge((0,Or.join)(r,o.name)),u=(0,Or.join)(e,o.name);o.isDirectory()?await 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=ge(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=ge(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)),!g.isTest()&&g.SELF_HOSTED&&await sp(e,i,r),i}s(Mv,"downloadTarball");async function Iu(t,e){return await Ht.default.trace("getReadStream",async r=>{t=xe(t),e=ge(e),r.addTags({bucketName:t,path:e});let n=st(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof 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=ge(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(kv,"getObjectMetadata");async function Fv(t,e){t=xe(t),e=ge(e);let r=st(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode)===404)return!1;throw i}}s(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(!g.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Cu||(Cu=Buffer.from(g.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Cu)}s(Bv,"getPrivateKey");var Wv=s(()=>({keypairId:g.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=""),`${g.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function Gv(t){return`${ge(t)}/budibase-client.js`}s(Gv,"clientLibraryPath");function Vv(t,e){return`${ge(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 g.CLOUDFRONT_CDN?ui(t):await ln(g.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 g.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ui(n)):await ln(g.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),xS=s((t,e)=>{let r=`${t}/${e}`;return g.MULTI_TENANCY&&(r=`${$()}/${r}`),r},"getGlobalFileS3Key");async function jv(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await Hv(e),n=await Yv(e);return{...e,jsUrl:r,iconUrl:n}}))}s(jv,"enrichPluginURLs");async function Hv(t){let e=PS(t);return vS(e)}s(Hv,"getPluginJSUrl");async function Yv(t){let e=NS(t);if(e)return vS(e)}s(Yv,"getPluginIconUrl");async function vS(t){return g.CLOUDFRONT_CDN?ui(t):await ln(g.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 g.MULTI_TENANCY&&(e=`${$()}/${e}`),g.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(g.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(!g.DISABLE_PINO_LOGGER){let t=g.LOG_LEVEL,e={level:t,formatters:{level:c=>({level:c.toUpperCase()}),bindings:()=>g.SELF_HOSTED?{service:g.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(g.isDev()?{stream:(0,GS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),g.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(E=>{Xv(E)&&(f=`${f} ${E}`.trimStart()),Jv(E)&&d.push(E),Zv(E)&&(l=E)});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 E={},y=0;for(let I=0;I<d.length;I++){let _=d[I],D=_._logKey;D?(delete _._logKey,m[D]=_):(E[y]=_,y++)}Object.keys(E).length&&(m.data=E)}return[m,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Ir?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Ir?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Ir?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Ir?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Ir?.debug(l,d)};let i=s(()=>{let c;try{c=$()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=be()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=Ef()}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 Et(e,{maxStalledCount:a,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:o}}),this._queue.process(async(u,c)=>{try{let l=await this.processFn(u.data);c?.(null,l)}catch(l){l instanceof 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 Et("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:()=>Yt,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"),Yt=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:()=>Ep,getInviteCodes:()=>ZS,updateCode:()=>dP});var En={};P(En,{AUTO_EXTEND_POLLING_MS:()=>HS,doWithLock:()=>no,newRedlock:()=>gn});var jS=B(require("redlock"));async function sP(t,e){if(t==="custom")return gn(e);switch(t){case"try_once":return gn(di.TRY_ONCE);case"try_twice":return gn(di.TRY_TWICE);case"default":return gn(di.DEFAULT);case"delay_500":return gn(di.DELAY_500);case"auto_extend":return gn(di.AUTO_EXTEND);default:throw _t.unreachable(t)}}s(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 gn(t={}){let e={...di.DEFAULT,...t},n=(await Rf()).client;return new jS.default([n],e)}s(gn,"newRedlock");function oP(t){let r=`lock:${t.systemLock?"system":$()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(oP,"getLockName");var HS=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"?HS: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 YS=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 gp(t){let r=await(await Ps()).get(t);return zS(r,t)}s(gp,"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 gp(n)||{tenantId:n,invites:{}};i.invites[t]={email:e.email,info:r,expiresAt:Date.now()+YS*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 gp(i)||{tenantId:i,invites:{}};o.invites[r]={email:t,info:n,expiresAt:Date.now()+YS*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 gp(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 Ep(t){let e=new Set(t.map(r=>r.toLowerCase()));return(await ZS()).filter(r=>e.has(r.email.toLowerCase()))}s(Ep,"getExistingInvites");var Tp={};P(Tp,{createCode:()=>gP,getCode:()=>EP,invalidateCode:()=>yP});var hP=pe.fromHours(1).toSeconds();async function gP(t,e){let r=ee();return await(await Ns()).store(r,{userId:t,info:e},hP),r}s(gP,"createCode");async function EP(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(EP,"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 g.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(g.INTERNAL_ACCOUNT_PORTAL_URL),_p=g.SELF_HOSTED||g.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":g.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),fi=s(async t=>{if(_p)return;let e={tenantId:t},r=await Ap.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),DP=s(async()=>{if(_p)return;let t=await Ap.get("/api/status",{headers:{"x-budibase-api-key":g.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var Ei={};P(Ei,{UserDB:()=>xt,addAppBuilder:()=>VL,bulkGetGlobalUsersById:()=>ic,bulkUpdateGlobalUsers:()=>Io,cleanseUserObject:()=>qp,creatorsInList:()=>An,doesUserExist:()=>FL,getAccountHolderFromUsers:()=>nc,getAllUserIds:()=>ML,getAllUsers:()=>kL,getById:()=>_n,getCreatorCount:()=>$L,getExistingAccounts:()=>gi,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:()=>YA,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=+(g.PASSWORD_MIN_LENGTH||12),Ip=+(g.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=g.SESSION_EXPIRY_SECONDS?parseInt(g.SESSION_EXPIRY_SECONDS):pe.fromDays(7).toSeconds();function pi(t,e){return`${t}/${e}`}s(pi,"makeSessionID");async function lo(t){return t?(await(await yr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(lo,"getSessionsForUser");async function Tn(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await lo(t)).map(a=>({key:pi(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:pi(t,o)}))),i&&i.length>0){let o=await yr(),a=[];for(let u of i)a.push(o.delete(u.key));g.isTest()||ci(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(Tn,"invalidateSessions");async function 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:()=>EA,action:()=>yA,ai:()=>TA,analytics:()=>Qu,app:()=>SA,asyncEventQueue:()=>Tt,auditLog:()=>AA,auth:()=>Zu,automation:()=>_A,backfill:()=>OA,backfillCache:()=>Yu,backup:()=>IA,datasource:()=>wA,email:()=>DA,environmentVariable:()=>RA,group:()=>CA,identification:()=>St,initAsyncEvents:()=>OL,installation:()=>go,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 Hu(){Tt=new Et("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}s(Hu,"init");async function oA(){Tt&&await Tt.close()}s(oA,"shutdown");async function aA(t){Tt||Hu();let{event:e,identity:r}=t;Vm.indexOf(e)!==-1&&r.tenantId&&await Tt.add(t)}s(aA,"publishAsyncEvent");var Yu={};P(Yu,{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 Yt(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=>Yt(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 Yt(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=g.VERSION,n.service=g.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let o=be();o&&(n.appId=o);let a={distinctId:r.id,event:e,properties:n};i&&(a.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(a.groups={},r.installationId&&(a.groups.installation=r.installationId,a.properties.installationId=r.installationId),r.tenantId&&(a.groups.tenant=r.tenantId,a.properties.tenantId=r.tenantId)),this.posthog.capture(a)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}async shutdown(){await this.posthog.shutdown()}};var pA=fo;var $P=["installation:version:upgraded","installation:version:downgraded"],GP=["installation","tenant"],po=class{static{s(this,"AnalyticsProcessor")}constructor(){g.POSTHOG_TOKEN&&!g.isTest()&&(this.posthog=new pA(g.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=g.SELF_HOSTED&&!g.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 Et("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Ce(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};g.ENABLE_AUDIT_LOG_IP_ADDR&&(o=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&$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:()=>HP,getInstall:()=>Eo,getInstallFromDB:()=>Mp});var Lp=B(require("semver"));var Eo=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:g.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 Eo();r.version=t,await e.put(r),await li(ye.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),HP=s(async()=>{let t=await Eo(),e=t.version,r=g.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 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 YP=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=g.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=g.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 gi([t.email])).length>0,f=!!e&&d&&e.verified,h=await Sn(),p=e?e.hosting:yo(),S=So();await To({id:n,type:o,hosting:p,installationId:h,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:S},r)},"identifyUser"),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(()=>g.isDev()?"development":g.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),yo=s(()=>g.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),Sn=s(async()=>eN()?"account-portal":(await Eo()).installId,"getInstallationId"),Ju=s(async t=>g.SELF_HOSTED?gA(t):t,"getEventTenantId"),gA=s(async t=>Ce(t,()=>wr(ye.UNIQUE_TENANT_ID,86400,async()=>{let e=Y(),r=await yi(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ee()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=g.VERSION,await e.put(r),n)})),"getUniqueTenantId"),eN=s(()=>g.SERVICE==="account-portal","isAccountPortal"),hA=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),St={getCurrentIdentity:YP,identifyInstallationGroup:zP,identifyTenantGroup:JP,identifyUser:ZP,identifyAccount:XP,identify:To,identifyGroup:kp,getInstallationId:Sn,getUniqueTenantId:gA};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 EA={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 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 EN(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}s(EN,"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:gN,versionUpdated:EN,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=!g.SELF_HOSTED&&!g.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 HN(){let t={};await A("email:smtp:updated",t)}s(HN,"SMTPUpdated");var DA={SMTPCreated:jN,SMTPUpdated:HN};async function YN(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}s(YN,"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:YN,deleted:zN,upgradePanelOpened:JN};async function ZN(t,e){let r={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await A("user_group:created",r,e)}s(ZN,"created");async function XN(t){let e={groupId:t._id,viaScim:gt(),audited:{name:t.name}};await A("user_group:updated",e)}s(XN,"updated");async function eU(t){let e={groupId:t._id,viaScim:gt(),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:gt(),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:gt(),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 go={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 gU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}s(gU,"paymentFailed");async function EU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}s(EU,"paymentRecovered");var xA={planChanged:dU,activated:fU,checkoutOpened:pU,checkoutSuccess:mU,portalOpened:hU,paymentFailed:gU,paymentRecovered:EU};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 HU(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}s(HU,"deleted");async function YU(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}s(YU,"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:HU,exported:YU,imported:zU};async function JU(t,e){let r={userId:t._id,viaScim:gt(),audited:{email:t.email}};await A("user:created",r,e)}s(JU,"created");async function ZU(t){let e={userId:t._id,viaScim:gt(),audited:{email:t.email}};await A("user:updated",e)}s(ZU,"updated");async function XU(t){let e={userId:t._id,viaScim:gt(),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 gL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}s(gL,"filterUpdated");async function EL(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}s(EL,"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:gL,filterDeleted:EL,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 gi(t);e.push(...i.map(a=>a.email));let o=await Ep(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 gi(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fs("account_by_email",r)}s(gi,"getExistingAccounts");var Si=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 Y().getMultiple(r,{allowMissing:!0}),t.map(i=>tc(i,e))}s(An,"creatorsInList");async function Oo(t){let e=[];return t.userGroups&&(e=await Y().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(g.MULTI_TENANCY){let r=await _o(t);if(r!=null&&r.tenantId!==e)throw new zt(t)}if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let r=await Rr(t);if(r&&r.verified&&r.tenantId!==e)throw new zt(t)}}s(rc,"validateUniqueUser");async function nc(t){if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let e=await gi(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(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;!g.SELF_HOSTED&&!g.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)=>HA(t,e,Fe),"isRemovingBuilder"),vL=s((t,e)=>jA(t,e,Cr),"isAddingAdmin"),PL=s((t,e)=>HA(t,e,Cr),"isRemovingAdmin"),jA=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),HA=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 g.ENABLE_SSO_MAINTENANCE_MODE&&bt(e)?!1:await t.features.isSSOEnforced()||Ko(e)?!0:(r||(r=await fi($())),!!(r&&r.email===e.email&&qo(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,o){let{password:a,_id:u}=e;i&&!i.password&&(r.requirePassword=!1);let c;if(a&&a!==i?.password){if(await t.isPreventPasswordActions(e,o))throw new 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 Y().allDocs(on(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByWorkspace(e){if(typeof e!="string"||!e)throw new Error("Must provide a string based workspace ID");return{userCount:(await Bs("by_app",ni(e,{include_docs:!1}))).rows.length}}static async getUsersByAppAccess(e){return await 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=Y(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await _n(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!l&&o&&(l=await At(o),l&&l._id!==a))throw new zt(o);let d=1,f=0;if((r.isAccountHolder||l)&&(d=0,f=1),l){let[m,E]=await An([l,e]);f=m!==E?1:0}let h=!l,p=!!l&&!!o&&l.email!==o,S=!r.isAccountHolder&&!!o&&(h||p);return t.quotas.addUsers(d,f,async()=>{S&&await 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 E=[];if(!a&&u.length>0)for(let y of u)E.push(t.groups.addUsers(y,[m._id]));try{let y=await i.put(m);return m._rev=y.rev,await 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(E),i.get(m._id)}catch(y){throw y.status===409?"User exists already":y}})}static async bulkCreate(e,r){let n=$(),i=[],o=[],a=[],u=e.map(h=>h.email),c=await 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(E=>E._id);for(let E of r)S.push(t.groups.addUsers(E,m));await Promise.all(S)}return{successful:p,unsuccessful:l}})}static async bulkDelete(e){let r=Y(),n={successful:[],unsuccessful:[]},i=await 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=Y(),n=await r.get(e),i=n._id;if(!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Rr(a))throw n.userId===$t()._id?new 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 Y().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=Y(),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=Y(),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 Y().bulkDocs(t)}s(Io,"bulkUpdateGlobalUsers");async function _n(t,e){let n=await Y().get(t);return e?.cleanup&&(n=Do(n)),n}s(_n,"getById");async function At(t,e){if(t==null)throw"Must supply an email address to view";let r=await qt("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Do(n)),n}s(At,"getGlobalUserByEmail");async function 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 YA(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(YA,"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 Y().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(Vp,"searchGlobalUsersByAppAccess");function zA(t,e){if(e)return pu(He(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=Y(),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 YA(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=He(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=He(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await xt.save(t,{hashPassword:!1})}s(qL,"removeAppBuilder");var XA=3600;async function KL(t,e){let n=await Ff(e).get(t);if(n.budibaseAccess=!0,!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let i=await Rr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(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,!g.SELF_HOSTED&&!g.DISABLE_ACCOUNT_PORTAL){let o=await Rr(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(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 Hp={};P(Hp,{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 HL(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(HL,"put");async function YL(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(YL,"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 HL(this.db,e,r)}async get(e){return YL(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=Y();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)),Y().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=g.PLATFORM_URL||"http://localhost:10000";if(!g.SELF_HOSTED&&g.MULTI_TENANCY&&t.tenantAware){let r=$();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(g.SELF_HOSTED){let r=t?.config?t.config:(await ve("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(vo,"getPlatformUrl");var ju=s(async t=>{if(!g.SELF_HOSTED)return!!g.ENABLE_ANALYTICS;let e=await wr(ye.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await ve("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=g.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function r0(){return await ve("google")}s(r0,"getGoogleConfigDoc");async function uc(){return(await r0())?.config}s(uc,"getGoogleConfig");async function Jp(){if(!g.SELF_HOSTED)return Yp();let t=await uc();return(!t||!t.activated)&&(t=Yp()),t}s(Jp,"getGoogleDatasourceConfig");function Yp(){if(g.GOOGLE_CLIENT_ID&&g.GOOGLE_CLIENT_SECRET)return{clientID:g.GOOGLE_CLIENT_ID,clientSecret:g.GOOGLE_CLIENT_SECRET,activated:!0}}s(Yp,"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=g.SELF_HOSTED||!t;if(g.SMTP_FALLBACK_ENABLED&&r)return{port:g.SMTP_PORT,host:g.SMTP_HOST,secure:!1,from:g.SMTP_FROM_ADDRESS,auth:{user:g.SMTP_USER,pass:g.SMTP_PASSWORD},fallback:!0}}s(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:()=>g0,getUserRoleHierarchy:()=>om,getUserRoleIdHierarchy:()=>s_,isBuiltin:()=>On,lowerBuiltinRoleID:()=>m0,prefixRoleIDNoBuiltin:()=>em,roleIDsAreEqual:()=>ot,roleToNumber:()=>p0,saveRoles:()=>E0,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 g0(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(g0,"getRole");async function E0(t){await ei().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:Gt(r._id)})))}s(E0,"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,g.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:()=>g_,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){g.POSTHOG_TOKEN&&g.POSTHOG_API_HOST&&!g.SELF_HOSTED&&g.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),fc=new h_.PostHog(g.POSTHOG_TOKEN,{host:g.POSTHOG_API_HOST,personalApiKey:g.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:pe.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}s(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 g_(){return hc(g.TENANT_FEATURE_FLAGS||"")}s(g_,"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 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=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,E]of Object.entries(S))if(this.isFlagName(m)){if(typeof E!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${E}`);continue}if(!(i[m]===!0||a.has(m)))try{i[m]=E,n[`flags.${m}.source`]="posthog"}catch(y){console.warn(`Error parsing posthog flag "${m}": ${E}`,y)}}}let d=_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:g.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:()=>E_,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 E_(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(E_,"setFeatureFlags");function L0(t,e,r){let n=E_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(L0,"withFeatureFlags");var Im={};P(Im,{adminOnly:()=>gc,auditLog:()=>Ec,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:()=>gc,auditLog:()=>Ec,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 g.HTTP_LOGGING?k0(B0()):(t,e)=>e()}s(W0,"getMiddleware");var S_=W0();var gc=s(async(t,e)=>(!t.internal&&!bt(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");var Ec=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 Em={};P(Em,{SecretOption:()=>O_,compare:()=>K0,decrypt:()=>Ac,decryptFile:()=>H0,encrypt:()=>q0,encryptFile:()=>Q0,getSecret:()=>gm});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 gm(t){let e,r;switch(t){case"encryption":e=g.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=g.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(gm,"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(gm(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(gm(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 H0(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(H0,"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=g.SESSION_UPDATE_PERIOD?parseInt(g.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=Y();i=await qt("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await Ro({userId:i,tenantId:n,populateUser:e})};throw new Ai})}s(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")||gu(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 E=s(y=>y&&y.email,"isUser");return E(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}),E(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&&!g.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&&!g.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":g.CUSTOM_CSP_MEDIA_SRC,"script-src":g.CUSTOM_CSP_SCRIPT_SRC,"connect-src":g.CUSTOM_CSP_CONNECT_SRC,"img-src":g.CUSTOM_CSP_IMG_SRC,"font-src":g.CUSTOM_CSP_FONT_SRC,"frame-src":g.CUSTOM_CSP_FRAME_SRC};for(let[u,c]of Object.entries(i))if(c){let l=c.split(",").map(d=>d.trim()).filter(d=>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=g[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"}),g.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(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 Er()&&(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&&!g.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:()=>EM,preAuth:()=>gM});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 gM(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(gM,"preAuth");async function EM(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 Yt(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(EM,"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=Y(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Co(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(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(...Hm).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:()=>En,utils:()=>Ka});var Cm={};P(Cm,{isBlacklisted:()=>LM,refreshBlacklist:()=>H_});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 H_(){let e=g.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(H_,"refreshBlacklist");async function LM(t){if(Uc||await H_(),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 Y_(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(Y_,"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=Y_(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||Hu(),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:E,toTable:y}=p.meta;t.integer(h).unsigned(),t.foreign(h).references(`${y}.${E}`)}else d.indexOf(h)===-1&&t.float(h);break;case"bigint":t.bigint(h);break;case"boolean":t.boolean(h);break;case"datetime":p.timeOnly?t.time(h):t.datetime(h,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":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:E}=af(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let I=y.primary[0],_=y.schema[I].externalType;_?t.specificType(p.foreignKey,_):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${I}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(h);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:_t.unreachable(m)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!vm(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,S])=>!vm(S.type)&&e.schema[p]==null).forEach(([p,S])=>{i?.old===p||vm(S.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}s(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(g.SQL_MAX_ROWS?parseInt(g.SQL_MAX_ROWS):null)||5e3}s(Z_,"getBaseLimit");function Nm(){return(g.SQL_MAX_RELATED_ROWS?parseInt(g.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),E=f(h.column),y=h.column===this.splitter.run(n).column&&!this.splitter.run(n).tableName;if((m||E||y)&&h.to&&h.tableName){let I=this.knex.select(this.knex.raw(1)).from({[S]:p}),_=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,E,y,I){let _=s((D,T,O)=>{let[U,...R]=T.split("."),k=R.join("."),H=l(U);return D.andWhere(Ie=>y(Ie,H?`${H}.${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 H=l(c);e=I(e,k.id.map(Ie=>H?`${H}.${Ie}`:Ie),k.values)}else if(U)R&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,jM[E],O,E,(H,Ie)=>_(Ie,H,T)));else{let H=l(c);e=y(e,H?`${H}.${O}`:O,T)}}}s(d,"iterate");let f=this.client==="sqlite3"&&this.query.meta?.sqliteUseLikeWithoutLower,h=s((m,E,y)=>((r?.fuzzyOr||a)&&(m=m.or),f?m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(E),`%${y}%`]):this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(E),`%${y.toLowerCase()}%`]):m.whereILike(this.rawQuotedIdentifier(E),this.knex.raw("?",[`%${y}%`]))),"like"),p=s((m,E=!1)=>{function y(I){return(a||m===r?.containsAny)&&(I=I.or),m===r?.notContains&&(I=I.not),I}s(y,"addModifiers"),this.client==="pg"?d(m,"contains",(I,_,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 E?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(E?"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,H=R?"COALESCE(LOWER(??), '')":"COALESCE(??, '')";O=O.whereLike(this.knex.raw(H,[this.rawQuotedIdentifier(_)]),`%${k}%`)}}),m===r?.notContains&&(T=T.or.whereNull(this.rawQuotedIdentifier(_))),T))),I))},"contains");if(r.$and){let{$and:m}=r;for(let E of m.conditions)e=e.where(y=>{this.addFilters(y,E,n)})}if(r.$or){let{$or:m}=r;e=e.where(E=>{for(let y of m.conditions)E.orWhere(I=>this.addFilters(I,{...y,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(m,E,y)=>{let I=this.getFieldSchema(E),_=Array.isArray(y)?y:[y];if(a&&(m=m.or),this.client==="oracledb")E=this.convertClobs(E);else if(this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly){for(let D of _)D!=null?m=m.or.whereLike(E,`${D.toISOString().slice(0,10)}%`):m=m.or.whereNull(E);return m}return m.whereIn(E,_)},(m,E,y)=>(a&&(m=m.or),this.client==="oracledb"&&(E=E.map(I=>this.convertClobs(I))),m.whereIn(E,Array.isArray(y)?y:[y]))),r.string&&d(r.string,"string",(m,E,y)=>{if(a&&(m=m.or),f)return m.whereRaw("?? LIKE ?",[this.rawQuotedIdentifier(E),`${y}%`]);if(this.client==="oracledb"||this.client==="sqlite3")return m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(E),`${y.toLowerCase()}%`]);{let I=this.getFieldSchema(E);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(I)?m.whereRaw("??::text ilike ?",[this.knex.raw(this.quote(I.name)),`${y}%`]):m.whereILike(E,`${y}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",h),r.range&&d(r.range,"range",(m,E,y)=>{let I=s(k=>k&&Object.keys(k).length===0&&Object.getPrototypeOf(k)===Object.prototype,"isEmptyObject");I(y.low)&&(y.low=""),I(y.high)&&(y.high="");let _=Ja(y.low),D=Ja(y.high),T=this.getFieldSchema(E),O=E,U=y.high,R=y.low;return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly&&(U!=null&&(U=`${U.toISOString().slice(0,10)}T23:59:59.999Z`),R!=null&&(R=R.toISOString().slice(0,10))),this.client==="oracledb"?O=this.convertClobs(E):this.client==="sqlite3"&&T?.type==="bigint"&&(O=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(E)]),U=this.knex.raw("CAST(? AS INTEGER)",[y.high]),R=this.knex.raw("CAST(? AS INTEGER)",[y.low])),a&&(m=m.or),_&&D?m.whereBetween(O,[R,U]):_?m.where(O,">=",R):D?m.where(O,"<=",U):m}),r.equal&&d(r.equal,"equal",(m,E,y)=>{let I=this.getFieldSchema(E);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(E),y]);if(this.client==="oracledb"){let _=this.convertClobs(E);return m.where(D=>D.whereNotNull(_).andWhere(_,y))}else return this.client==="sqlite3"&&I?.type==="datetime"&&I.dateOnly?y!=null?m.whereLike(E,`${y.toISOString().slice(0,10)}%`):m.whereNull(E):m.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(E),y])}),r.notEqual&&d(r.notEqual,"notEqual",(m,E,y)=>{let I=this.getFieldSchema(E);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(E),y]);if(this.client==="oracledb"){let _=this.convertClobs(E);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(E,`${y.toISOString().slice(0,10)}%`).or.whereNull(E):m.not.whereNull(E):m.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(E),y])}),r.empty&&d(r.empty,"empty",(m,E)=>(a&&(m=m.or),m.whereNull(E))),r.notEmpty&&d(r.notEmpty,"notEmpty",(m,E)=>(a&&(m=m.or),m.whereNotNull(E))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let S=o?.[this.table._id]||this.table._id;return r.documentType&&!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:E,toPrimary:y}=f;if(!h||!r)continue;let I=l[h];if(!I)throw new Error(`related table "${h}" not found in datasource`);let _=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 H=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&&E,N=F?`${T}.${m}`:`${_}.${S}`,G=F?`${D}.${E}`:`${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(${H}))`));break;case"pg":K=M(this.knex.raw(`json_agg(json_build_object(${H}))`));break;case"mariadb":K=W.select(o.raw(`json_arrayagg(json_object(${H}) LIMIT ${Nm()})`));break;case"mysql2":case"oracledb":K=M(this.knex.raw(`json_arrayagg(json_object(${H}))`));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,E=S.from;this.orOn(`${f}.${m}`,"=",`${d}.${E}`)}}).leftJoin(h,function(){for(let S of n){let m=S.toPrimary,E=S.to;this.orOn(`${l}.${m}`,`${d}.${E}`)}}):e=e.leftJoin(h,function(){for(let S of n){let m=S.from,E=S.to;this.orOn(`${f}.${m}`,"=",`${l}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=p}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let h=this.query.tableAliases?.[a.name]||a.name,p=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[h]:"paginated"}));return this.addJsonRelationships(p,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n,{relationship:!0}),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r,{relationship:!0}),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},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:()=>HM});function HM(t){return{_id:Rt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(HM,"base");var Wm={};P(Wm,{jsonFromCsvString:()=>YM});var sO=B(require("csvtojson"));async function YM(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(YM,"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={})=>{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});
|
|
39
39
|
//# sourceMappingURL=index.js.map
|