@budibase/backend-core 3.12.8 → 3.12.10
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 +4 -4
- package/dist/package.json +2 -2
- package/dist/plugins.js +1 -1
- package/dist/plugins.js.map +2 -2
- package/dist/src/constants/db.d.ts +4 -0
- package/dist/src/constants/db.js +6 -1
- package/dist/src/constants/db.js.map +1 -1
- package/dist/src/docIds/ids.d.ts +1 -0
- package/dist/src/docIds/ids.js +5 -1
- package/dist/src/docIds/ids.js.map +1 -1
- package/dist/src/queue/queue.d.ts +1 -0
- package/dist/src/queue/queue.js +11 -5
- package/dist/src/queue/queue.js.map +1 -1
- package/dist/src/users/db.js +11 -14
- package/dist/src/users/db.js.map +1 -1
- package/dist/tests/core/utilities/structures/licenses.js +5 -0
- package/dist/tests/core/utilities/structures/licenses.js.map +1 -1
- package/dist/tests/core/utilities/structures/quotas.js +3 -0
- package/dist/tests/core/utilities/structures/quotas.js.map +1 -1
- package/dist/tests/core/utilities/structures/workspaceApp.d.ts +2 -1
- package/dist/tests/core/utilities/structures/workspaceApp.js +14 -1
- package/dist/tests/core/utilities/structures/workspaceApp.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
"use strict";var PI=Object.create;var Ma=Object.defineProperty;var LI=Object.getOwnPropertyDescriptor;var UI=Object.getOwnPropertyNames;var MI=Object.getPrototypeOf,FI=Object.prototype.hasOwnProperty;var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)Ma(t,r,{get:e[r],enumerable:!0})},Dh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of UI(e))!FI.call(t,i)&&i!==r&&Ma(t,i,{get:()=>e[i],enumerable:!(n=LI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?PI(MI(t)):{},Dh(e||!t||!t.__esModule?Ma(r,"default",{value:t,enumerable:!0}):r,t)),kI=t=>Dh(Ma({},"__esModule",{value:!0}),t);var tg=j((Bl,Gl)=>{"use strict";(function(t,e){typeof Bl=="object"&&typeof Gl<"u"?Gl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Bl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",m="date",p="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|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($){var O=["th","st","nd","rd"],N=$%100;return"["+$+(O[(N-20)%10]||O[N]||O[0])+"]"}},y=function($,O,N){var q=String($);return!q||q.length>=O?$:""+Array(O+1-q.length).join(N)+$},S={s:y,z:function($){var O=-$.utcOffset(),N=Math.abs(O),q=Math.floor(N/60),M=N%60;return(O<=0?"+":"-")+y(q,2,"0")+":"+y(M,2,"0")},m:function $(O,N){if(O.date()<N.date())return-$(N,O);var q=12*(N.year()-O.year())+(N.month()-O.month()),M=O.clone().add(q,c),Y=N-M<0,V=O.clone().add(q+(Y?-1:1),c);return+(-(q+(N-M)/(Y?M-V:V-M))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},I="en",R={};R[I]=E;var T="$isDayjsObject",_=function($){return $ instanceof de||!(!$||!$[T])},B=function $(O,N,q){var M;if(!O)return I;if(typeof O=="string"){var Y=O.toLowerCase();R[Y]&&(M=Y),N&&(R[Y]=N,M=Y);var V=O.split("-");if(!M&&V.length>1)return $(V[0])}else{var ae=O.name;R[ae]=O,M=ae}return!q&&M&&(I=M),M||!q&&I},b=function($,O){if(_($))return $.clone();var N=typeof O=="object"?O:{};return N.date=$,N.args=arguments,new de(N)},k=S;k.l=B,k.i=_,k.w=function($,O){return b($,{locale:O.$L,utc:O.$u,x:O.$x,$offset:O.$offset})};var de=function(){function $(N){this.$L=B(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[T]=!0}var O=$.prototype;return O.parse=function(N){this.$d=function(q){var M=q.date,Y=q.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 V=M.match(f);if(V){var ae=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return Y?new Date(Date.UTC(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(M)}(N),this.init()},O.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()},O.$utils=function(){return k},O.isValid=function(){return this.$d.toString()!==p},O.isSame=function(N,q){var M=b(N);return this.startOf(q)<=M&&M<=this.endOf(q)},O.isAfter=function(N,q){return b(N)<this.startOf(q)},O.isBefore=function(N,q){return this.endOf(q)<b(N)},O.$g=function(N,q,M){return k.u(N)?this[q]:this.set(M,N)},O.unix=function(){return Math.floor(this.valueOf()/1e3)},O.valueOf=function(){return this.$d.getTime()},O.startOf=function(N,q){var M=this,Y=!!k.u(q)||q,V=k.p(N),ae=function(pn,Qe){var Or=k.w(M.$u?Date.UTC(M.$y,Qe,pn):new Date(M.$y,Qe,pn),M);return Y?Or:Or.endOf(a)},Oe=function(pn,Qe){return k.w(M.toDate()[pn].apply(M.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(Qe)),M)},ve=this.$W,Fe=this.$M,dt=this.$D,J="set"+(this.$u?"UTC":"");switch(V){case d:return Y?ae(1,0):ae(31,11);case c:return Y?ae(1,Fe):ae(0,Fe+1);case u:var dn=this.$locale().weekStart||0,_s=(ve<dn?ve+7:ve)-dn;return ae(Y?dt-_s:dt+(6-_s),Fe);case a:case m:return Oe(J+"Hours",0);case o:return Oe(J+"Minutes",1);case s:return Oe(J+"Seconds",2);case i:return Oe(J+"Milliseconds",3);default:return this.clone()}},O.endOf=function(N){return this.startOf(N,!1)},O.$set=function(N,q){var M,Y=k.p(N),V="set"+(this.$u?"UTC":""),ae=(M={},M[a]=V+"Date",M[m]=V+"Date",M[c]=V+"Month",M[d]=V+"FullYear",M[o]=V+"Hours",M[s]=V+"Minutes",M[i]=V+"Seconds",M[n]=V+"Milliseconds",M)[Y],Oe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===d){var ve=this.clone().set(m,1);ve.$d[ae](Oe),ve.init(),this.$d=ve.set(m,Math.min(this.$D,ve.daysInMonth())).$d}else ae&&this.$d[ae](Oe);return this.init(),this},O.set=function(N,q){return this.clone().$set(N,q)},O.get=function(N){return this[k.p(N)]()},O.add=function(N,q){var M,Y=this;N=Number(N);var V=k.p(q),ae=function(Fe){var dt=b(Y);return k.w(dt.date(dt.date()+Math.round(Fe*N)),Y)};if(V===c)return this.set(c,this.$M+N);if(V===d)return this.set(d,this.$y+N);if(V===a)return ae(1);if(V===u)return ae(7);var Oe=(M={},M[s]=e,M[o]=r,M[i]=t,M)[V]||1,ve=this.$d.getTime()+N*Oe;return k.w(ve,this)},O.subtract=function(N,q){return this.add(-1*N,q)},O.format=function(N){var q=this,M=this.$locale();if(!this.isValid())return M.invalidDate||p;var Y=N||"YYYY-MM-DDTHH:mm:ssZ",V=k.z(this),ae=this.$H,Oe=this.$m,ve=this.$M,Fe=M.weekdays,dt=M.months,J=M.meridiem,dn=function(Qe,Or,Is,Ua){return Qe&&(Qe[Or]||Qe(q,Y))||Is[Or].slice(0,Ua)},_s=function(Qe){return k.s(ae%12||12,Qe,"0")},pn=J||function(Qe,Or,Is){var Ua=Qe<12?"AM":"PM";return Is?Ua.toLowerCase():Ua};return Y.replace(g,function(Qe,Or){return Or||function(Is){switch(Is){case"YY":return String(q.$y).slice(-2);case"YYYY":return k.s(q.$y,4,"0");case"M":return ve+1;case"MM":return k.s(ve+1,2,"0");case"MMM":return dn(M.monthsShort,ve,dt,3);case"MMMM":return dn(dt,ve);case"D":return q.$D;case"DD":return k.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return dn(M.weekdaysMin,q.$W,Fe,2);case"ddd":return dn(M.weekdaysShort,q.$W,Fe,3);case"dddd":return Fe[q.$W];case"H":return String(ae);case"HH":return k.s(ae,2,"0");case"h":return _s(1);case"hh":return _s(2);case"a":return pn(ae,Oe,!0);case"A":return pn(ae,Oe,!1);case"m":return String(Oe);case"mm":return k.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return k.s(q.$s,2,"0");case"SSS":return k.s(q.$ms,3,"0");case"Z":return V}return null}(Qe)||V.replace(":","")})},O.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},O.diff=function(N,q,M){var Y,V=this,ae=k.p(q),Oe=b(N),ve=(Oe.utcOffset()-this.utcOffset())*e,Fe=this-Oe,dt=function(){return k.m(V,Oe)};switch(ae){case d:Y=dt()/12;break;case c:Y=dt();break;case l:Y=dt()/3;break;case u:Y=(Fe-ve)/6048e5;break;case a:Y=(Fe-ve)/864e5;break;case o:Y=Fe/r;break;case s:Y=Fe/e;break;case i:Y=Fe/t;break;default:Y=Fe}return M?Y:k.a(Y)},O.daysInMonth=function(){return this.endOf(c).$D},O.$locale=function(){return R[this.$L]},O.locale=function(N,q){if(!N)return this.$L;var M=this.clone(),Y=B(N,q,!0);return Y&&(M.$L=Y),M},O.clone=function(){return k.w(this.$d,this)},O.toDate=function(){return new Date(this.valueOf())},O.toJSON=function(){return this.isValid()?this.toISOString():null},O.toISOString=function(){return this.$d.toISOString()},O.toString=function(){return this.$d.toUTCString()},$}(),ln=de.prototype;return b.prototype=ln,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){ln[$[1]]=function(O){return this.$g(O,$[0],$[1])}}),b.extend=function($,O){return $.$i||($(O,de,b),$.$i=!0),b},b.locale=B,b.isDayjs=_,b.unix=function($){return b(1e3*$)},b.en=R[I],b.Ls=R,b.p={},b})});var xt=j(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var dx=t=>new nu(t);He.valid=dx;var px=t=>new iu(t);He.err=px;var nu=class{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,He.valid)(e(this.value))}mapErr(e){return(0,He.valid)(this.value)}};He.Valid=nu;var iu=class{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,He.err)(this.error)}mapErr(e){return(0,He.err)(e(this.error))}};He.Err=iu});var Rt=j(sg=>{"use strict";Object.defineProperty(sg,"__esModule",{value:!0})});var Nr=j(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});qt();var ie=xt();Rt();var fx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],mx=["sun","mon","tue","wed","thu","fri","sat"],hx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ns=(t,e,r)=>{if(e==="months"&&r.useAliases&&fx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&mx.indexOf(t.toLowerCase())!==-1)return(0,ie.valid)(!0);let n=Number(t);if(isNaN(n))return(0,ie.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,ie.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,ie.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,ie.valid)(!0)},gx=(t,e,r)=>{if(t==="*")return hx(e,r)?(0,ie.valid)(!0):(0,ie.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,ie.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,ie.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,ie.valid)(!0):Ns(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,ie.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,ie.valid)(!0):Ns(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,ie.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,ie.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,ie.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ns(n,e,r)}return Ns(t,e,r)},og=(t,e,r,n)=>t==="*"?(0,ie.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,ie.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,ie.valid)(!0):Ns(t,e,r),yx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,ie.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return gx(n[0],e,r);if(n.length===2){let i=og(n[0],e,r,0),s=og(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,ie.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,ie.valid)(!0)}return(0,ie.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},Ex=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,ie.err)(`List element '${t}' is not valid. (More than one '/')`);let i=yx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,ie.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,ie.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,ie.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,ie.valid)(!0)},Tx=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,ie.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,ie.valid)(!0):(0,ie.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,ie.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(Ex(o,e,r))}),i.every(o=>o.isValid()))return(0,ie.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,ie.err)(s)};Wl.default=Tx});var ag=j(Ps=>{"use strict";var Ax=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});qt();var Sx=xt(),_x=Ax(Nr());Rt();var Ix=(t,e)=>{if(!t.seconds)return(0,Sx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,_x.default)(r,"seconds",e)};Ps.default=Ix});var ug=j(Ls=>{"use strict";var Ox=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});qt();var xx=xt(),Rx=Ox(Nr());Rt();var wx=(t,e)=>{if(!t.minutes)return(0,xx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Rx.default)(r,"minutes",e)};Ls.default=wx});var cg=j(Us=>{"use strict";var bx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});qt();var Dx=xt(),Cx=bx(Nr());Rt();var vx=(t,e)=>{if(!t.hours)return(0,Dx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Cx.default)(r,"hours",e)};Us.default=vx});var lg=j(Fs=>{"use strict";var Nx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var Ms=xt(),Px=Nx(Nr());Rt();var Lx=(t,e)=>{if(!t.daysOfMonth)return(0,Ms.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ms.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ms.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ms.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ms.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Px.default)(r,"daysOfMonth",e)};Fs.default=Lx});var dg=j(ks=>{"use strict";var Ux=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});qt();var Mx=xt(),Fx=Ux(Nr());Rt();var kx=(t,e)=>{if(!t.months)return(0,Mx.err)(["months field is undefined."]);let{months:r}=t;return(0,Fx.default)(r,"months",e)};ks.default=kx});var pg=j(Gs=>{"use strict";var Bx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});qt();var Bs=xt(),Gx=Bx(Nr());Rt();var $x=(t,e)=>{if(!t.daysOfWeek)return(0,Bs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Bs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Bs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Gx.default)(r,"daysOfWeek",e)};Gs.default=$x});var fg=j($s=>{"use strict";var Vx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});qt();var qx=xt(),Wx=Vx(Nr());Rt();var Qx=(t,e)=>{if(!t.years)return(0,qx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Wx.default)(r,"years",e)};$s.default=Qx});var yg=j((nQ,gg)=>{"use strict";var Ql;try{Ql=Map}catch{}var jl;try{jl=Set}catch{}function mg(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(hg);if(Ql&&t instanceof Ql)return new Map(Array.from(t.entries()));if(jl&&t instanceof jl)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 s=e.findIndex(function(o){return o===t[i]});n[i]=s>-1?r[s]:mg(t[i],e,r)}return n}return t}function hg(t){return mg(t,[],[])}gg.exports=hg});var Vs=j(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.default=Zx;var jx=Object.prototype.toString,Hx=Error.prototype.toString,Yx=RegExp.prototype.toString,Kx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Jx=/^Symbol\((.*)\)(.*)$/;function zx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Eg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return zx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Kx.call(t).replace(Jx,"Symbol($1)");let n=jx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Hx.call(t)+"]":n==="RegExp"?Yx.call(t):null}function Zx(t,e){let r=Eg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Eg(this[n],e);return s!==null?s:i},2)}});var er=j(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=Ne.array=Ne.object=Ne.boolean=Ne.date=Ne.number=Ne.string=Ne.mixed=void 0;var Tg=Xx(Vs());function Xx(t){return t&&t.__esModule?t:{default:t}}var Ag={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,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,Tg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Tg.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Ne.mixed=Ag;var Sg={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"};Ne.string=Sg;var _g={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"};Ne.number=_g;var Ig={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Ig;var Og={isValue:"${path} field must be ${value}"};Ne.boolean=Og;var xg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=xg;var Rg={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"};Ne.array=Rg;var eR=Object.assign(Object.create(null),{mixed:Ag,string:Sg,number:_g,date:Ig,object:xg,array:Rg,boolean:Og});Ne.default=eR});var vi=j(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var tR=t=>t&&t.__isYupSchema__;su.default=tR});var bg=j(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var rR=wg(require("lodash/has")),nR=wg(vi());function wg(t){return t&&t.__esModule?t:{default:t}}var Yl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,rR.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:s}=r,o=typeof n=="function"?n:(...a)=>a.every(u=>u===n);this.fn=function(...a){let u=a.pop(),c=a.pop(),l=o(...a)?i:s;if(l)return typeof l=="function"?l(c):c.concat(l.resolve(u))}}resolve(e,r){let n=this.refs.map(s=>s.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,nR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},iR=Yl;ou.default=iR});var Jl=j(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=sR;function sR(t){return t==null?[]:[].concat(t)}});var vn=j(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var oR=Dg(Vs()),aR=Dg(Jl());function Dg(t){return t&&t.__esModule?t:{default:t}}function zl(){return zl=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},zl.apply(this,arguments)}var uR=/\$\{\s*(\w+)\s*\}/g,Zl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=zl({},r,{path:n})),typeof e=="string"?e.replace(uR,(i,s)=>(0,oR.default)(r[s])):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,aR.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};au.default=Zl});var uu=j(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=dR;var Xl=cR(vn());function cR(t){return t&&t.__esModule?t:{default:t}}var lR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function dR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=lR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Xl.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let p=n[m];p(i,function(g){if(g){if(!Xl.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new Xl.default(o,s,u),s);return}c(null,s)}})}}});var qs=j((dQ,Lg)=>{"use strict";function Nn(t){this._maxSize=t,this.clear()}Nn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Nn.prototype.get=function(t){return this._values[t]};Nn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var pR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Pg=/^\d+$/,fR=/^\d/,mR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,hR=/^\s*(['"]?)(.*?)(\1)\s*$/,nd=512,Cg=new Nn(nd),vg=new Nn(nd),Ng=new Nn(nd);Lg.exports={Cache:Nn,split:rd,normalizePath:td,setter:function(t){var e=td(t);return vg.get(t)||vg.set(t,function(n,i){for(var s=0,o=e.length,a=n;s<o-1;){var u=e[s];if(u==="__proto__"||u==="constructor"||u==="prototype")return n;a=a[e[s++]]}a[e[s]]=i})},getter:function(t,e){var r=td(t);return Ng.get(t)||Ng.set(t,function(i){for(var s=0,o=r.length;s<o;)if(i!=null||!e)i=i[r[s++]];else return;return i})},join:function(t){return t.reduce(function(e,r){return e+(id(r)||Pg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){gR(Array.isArray(t)?t:rd(t),e,r)}};function td(t){return Cg.get(t)||Cg.set(t,rd(t).map(function(e){return e.replace(hR,"$2")}))}function rd(t){return t.match(pR)||[""]}function gR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(TR(i)&&(i='"'+i+'"'),a=id(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function id(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function yR(t){return t.match(fR)&&!t.match(Pg)}function ER(t){return mR.test(t)}function TR(t){return!id(t)&&(yR(t)||ER(t))}});var Pn=j(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=SR;Qs.default=void 0;var AR=qs(),cu={context:"$",value:"."};function SR(t,e){return new Ws(t,e)}var Ws=class{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]===cu.context,this.isValue=this.key[0]===cu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?cu.context:this.isValue?cu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,AR.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}};Qs.default=Ws;Ws.prototype.__isYupRef=!0});var Ug=j(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=xR;var _R=sd(require("lodash/mapValues")),lu=sd(vn()),IR=sd(Pn());function sd(t){return t&&t.__esModule?t:{default:t}}function du(){return du=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},du.apply(this,arguments)}function OR(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function xR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=OR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(_){return IR.default.isRef(_)?_.getValue(i,g,E):_}function S(_={}){let B=(0,_R.default)(du({value:i,originalValue:u,label:o,path:_.path||s},p,_.params),y),b=new lu.default(lu.default.formatError(_.message||f,B),i,B.path,_.type||d);return b.params=B,b}let I=du({path:s,parent:g,type:d,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(I,i,I)).then(_=>{lu.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var T;if(R=m.call(I,i,I),typeof((T=R)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${I.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}lu.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var ad=j(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Mg;js.default=void 0;var RR=qs(),wR=t=>t.substr(0,t.length-1).substr(1);function Mg(t,e,r,n=r){let i,s,o;return e?((0,RR.forEach)(e,(a,u,c)=>{let l=u?wR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var bR=(t,e,r,n)=>Mg(t,e,r,n).schema,DR=bR;js.default=DR});var kg=j(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Fg=CR(Pn());function CR(t){return t&&t.__esModule?t:{default:t}}var ud=class t{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){Fg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Fg.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}};pu.default=ud});var rr=j(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var Bg=tr(yg()),Ni=er(),vR=tr(bg()),Gg=tr(uu()),fu=tr(Ug()),$g=tr(Vs()),NR=tr(Pn()),PR=ad(),LR=tr(Jl()),Vg=tr(vn()),qg=tr(kg());function tr(t){return t&&t.__esModule?t:{default:t}}function mt(){return mt=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},mt.apply(this,arguments)}var wt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new qg.default,this._blacklist=new qg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ni.mixed.notType)}),this.type=e?.type||"mixed",this.spec=mt({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=mt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Bg.default)(mt({},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=mt({},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(s=>{e.tests.forEach(o=>{s.test(o.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,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(mt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,$g.default)(e),o=(0,$g.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 FI=Object.create;var Ma=Object.defineProperty;var kI=Object.getOwnPropertyDescriptor;var BI=Object.getOwnPropertyNames;var GI=Object.getPrototypeOf,$I=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Ma(t,r,{get:e[r],enumerable:!0})},Nh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of BI(e))!$I.call(t,i)&&i!==r&&Ma(t,i,{get:()=>e[i],enumerable:!(n=kI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?FI(GI(t)):{},Nh(e||!t||!t.__esModule?Ma(r,"default",{value:t,enumerable:!0}):r,t)),VI=t=>Nh(Ma({},"__esModule",{value:!0}),t);var ig=H((Vl,ql)=>{"use strict";(function(t,e){typeof Vl=="object"&&typeof ql<"u"?ql.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Vl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",f="year",m="date",p="Invalid Date",d=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|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($){var F=["th","st","nd","rd"],I=$%100;return"["+$+(F[(I-20)%10]||F[I]||F[0])+"]"}},y=function($,F,I){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(I)+$},S={s:y,z:function($){var F=-$.utcOffset(),I=Math.abs(F),q=Math.floor(I/60),U=I%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(U,2,"0")},m:function $(F,I){if(F.date()<I.date())return-$(I,F);var q=12*(I.year()-F.year())+(I.month()-F.month()),U=F.clone().add(q,c),Y=I-U<0,V=F.clone().add(q+(Y?-1:1),c);return+(-(q+(I-U)/(Y?U-V:V-U))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:f,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},O="en",R={};R[O]=E;var T="$isDayjsObject",_=function($){return $ instanceof de||!(!$||!$[T])},B=function $(F,I,q){var U;if(!F)return O;if(typeof F=="string"){var Y=F.toLowerCase();R[Y]&&(U=Y),I&&(R[Y]=I,U=Y);var V=F.split("-");if(!U&&V.length>1)return $(V[0])}else{var ae=F.name;R[ae]=F,U=ae}return!q&&U&&(O=U),U||!q&&O},b=function($,F){if(_($))return $.clone();var I=typeof F=="object"?F:{};return I.date=$,I.args=arguments,new de(I)},k=S;k.l=B,k.i=_,k.w=function($,F){return b($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var de=function(){function $(I){this.$L=B(I.locale,null,!0),this.parse(I),this.$x=this.$x||I.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(I){this.$d=function(q){var U=q.date,Y=q.utc;if(U===null)return new Date(NaN);if(k.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var V=U.match(d);if(V){var ae=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return Y?new Date(Date.UTC(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(U)}(I),this.init()},F.init=function(){var I=this.$d;this.$y=I.getFullYear(),this.$M=I.getMonth(),this.$D=I.getDate(),this.$W=I.getDay(),this.$H=I.getHours(),this.$m=I.getMinutes(),this.$s=I.getSeconds(),this.$ms=I.getMilliseconds()},F.$utils=function(){return k},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(I,q){var U=b(I);return this.startOf(q)<=U&&U<=this.endOf(q)},F.isAfter=function(I,q){return b(I)<this.startOf(q)},F.isBefore=function(I,q){return this.endOf(q)<b(I)},F.$g=function(I,q,U){return k.u(I)?this[q]:this.set(U,I)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(I,q){var U=this,Y=!!k.u(q)||q,V=k.p(I),ae=function(dn,Qe){var Ir=k.w(U.$u?Date.UTC(U.$y,Qe,dn):new Date(U.$y,Qe,dn),U);return Y?Ir:Ir.endOf(a)},Oe=function(dn,Qe){return k.w(U.toDate()[dn].apply(U.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(Qe)),U)},ve=this.$W,Fe=this.$M,Q=this.$D,Ei="set"+(this.$u?"UTC":"");switch(V){case f:return Y?ae(1,0):ae(31,11);case c:return Y?ae(1,Fe):ae(0,Fe+1);case u:var ln=this.$locale().weekStart||0,_s=(ve<ln?ve+7:ve)-ln;return ae(Y?Q-_s:Q+(6-_s),Fe);case a:case m:return Oe(Ei+"Hours",0);case o:return Oe(Ei+"Minutes",1);case s:return Oe(Ei+"Seconds",2);case i:return Oe(Ei+"Milliseconds",3);default:return this.clone()}},F.endOf=function(I){return this.startOf(I,!1)},F.$set=function(I,q){var U,Y=k.p(I),V="set"+(this.$u?"UTC":""),ae=(U={},U[a]=V+"Date",U[m]=V+"Date",U[c]=V+"Month",U[f]=V+"FullYear",U[o]=V+"Hours",U[s]=V+"Minutes",U[i]=V+"Seconds",U[n]=V+"Milliseconds",U)[Y],Oe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===f){var ve=this.clone().set(m,1);ve.$d[ae](Oe),ve.init(),this.$d=ve.set(m,Math.min(this.$D,ve.daysInMonth())).$d}else ae&&this.$d[ae](Oe);return this.init(),this},F.set=function(I,q){return this.clone().$set(I,q)},F.get=function(I){return this[k.p(I)]()},F.add=function(I,q){var U,Y=this;I=Number(I);var V=k.p(q),ae=function(Fe){var Q=b(Y);return k.w(Q.date(Q.date()+Math.round(Fe*I)),Y)};if(V===c)return this.set(c,this.$M+I);if(V===f)return this.set(f,this.$y+I);if(V===a)return ae(1);if(V===u)return ae(7);var Oe=(U={},U[s]=e,U[o]=r,U[i]=t,U)[V]||1,ve=this.$d.getTime()+I*Oe;return k.w(ve,this)},F.subtract=function(I,q){return this.add(-1*I,q)},F.format=function(I){var q=this,U=this.$locale();if(!this.isValid())return U.invalidDate||p;var Y=I||"YYYY-MM-DDTHH:mm:ssZ",V=k.z(this),ae=this.$H,Oe=this.$m,ve=this.$M,Fe=U.weekdays,Q=U.months,Ei=U.meridiem,ln=function(Qe,Ir,Is,Ua){return Qe&&(Qe[Ir]||Qe(q,Y))||Is[Ir].slice(0,Ua)},_s=function(Qe){return k.s(ae%12||12,Qe,"0")},dn=Ei||function(Qe,Ir,Is){var Ua=Qe<12?"AM":"PM";return Is?Ua.toLowerCase():Ua};return Y.replace(g,function(Qe,Ir){return Ir||function(Is){switch(Is){case"YY":return String(q.$y).slice(-2);case"YYYY":return k.s(q.$y,4,"0");case"M":return ve+1;case"MM":return k.s(ve+1,2,"0");case"MMM":return ln(U.monthsShort,ve,Q,3);case"MMMM":return ln(Q,ve);case"D":return q.$D;case"DD":return k.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return ln(U.weekdaysMin,q.$W,Fe,2);case"ddd":return ln(U.weekdaysShort,q.$W,Fe,3);case"dddd":return Fe[q.$W];case"H":return String(ae);case"HH":return k.s(ae,2,"0");case"h":return _s(1);case"hh":return _s(2);case"a":return dn(ae,Oe,!0);case"A":return dn(ae,Oe,!1);case"m":return String(Oe);case"mm":return k.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return k.s(q.$s,2,"0");case"SSS":return k.s(q.$ms,3,"0");case"Z":return V}return null}(Qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(I,q,U){var Y,V=this,ae=k.p(q),Oe=b(I),ve=(Oe.utcOffset()-this.utcOffset())*e,Fe=this-Oe,Q=function(){return k.m(V,Oe)};switch(ae){case f:Y=Q()/12;break;case c:Y=Q();break;case l:Y=Q()/3;break;case u:Y=(Fe-ve)/6048e5;break;case a:Y=(Fe-ve)/864e5;break;case o:Y=Fe/r;break;case s:Y=Fe/e;break;case i:Y=Fe/t;break;default:Y=Fe}return U?Y:k.a(Y)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return R[this.$L]},F.locale=function(I,q){if(!I)return this.$L;var U=this.clone(),Y=B(I,q,!0);return Y&&(U.$L=Y),U},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()},$}(),cn=de.prototype;return b.prototype=cn,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",f],["$D",m]].forEach(function($){cn[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),b.extend=function($,F){return $.$i||($(F,de,b),$.$i=!0),b},b.locale=B,b.isDayjs=_,b.unix=function($){return b(1e3*$)},b.en=R[O],b.Ls=R,b.p={},b})});var Ot=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var hx=t=>new nu(t);He.valid=hx;var gx=t=>new iu(t);He.err=gx;var nu=class{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,He.valid)(e(this.value))}mapErr(e){return(0,He.valid)(this.value)}};He.Valid=nu;var iu=class{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,He.err)(this.error)}mapErr(e){return(0,He.err)(e(this.error))}};He.Err=iu});var xt=H(ug=>{"use strict";Object.defineProperty(ug,"__esModule",{value:!0})});var vr=H(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Vt();var ie=Ot();xt();var yx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Ex=["sun","mon","tue","wed","thu","fri","sat"],Tx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ns=(t,e,r)=>{if(e==="months"&&r.useAliases&&yx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Ex.indexOf(t.toLowerCase())!==-1)return(0,ie.valid)(!0);let n=Number(t);if(isNaN(n))return(0,ie.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,ie.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,ie.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,ie.valid)(!0)},Ax=(t,e,r)=>{if(t==="*")return Tx(e,r)?(0,ie.valid)(!0):(0,ie.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,ie.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,ie.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,ie.valid)(!0):Ns(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,ie.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,ie.valid)(!0):Ns(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,ie.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,ie.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,ie.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ns(n,e,r)}return Ns(t,e,r)},cg=(t,e,r,n)=>t==="*"?(0,ie.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,ie.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,ie.valid)(!0):Ns(t,e,r),Sx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,ie.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Ax(n[0],e,r);if(n.length===2){let i=cg(n[0],e,r,0),s=cg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,ie.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,ie.valid)(!0)}return(0,ie.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},_x=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,ie.err)(`List element '${t}' is not valid. (More than one '/')`);let i=Sx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,ie.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,ie.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,ie.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,ie.valid)(!0)},Ix=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,ie.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,ie.valid)(!0):(0,ie.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,ie.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(_x(o,e,r))}),i.every(o=>o.isValid()))return(0,ie.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,ie.err)(s)};Hl.default=Ix});var lg=H(Ps=>{"use strict";var Ox=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Vt();var xx=Ot(),Rx=Ox(vr());xt();var wx=(t,e)=>{if(!t.seconds)return(0,xx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Rx.default)(r,"seconds",e)};Ps.default=wx});var dg=H(Ls=>{"use strict";var bx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Vt();var Dx=Ot(),Cx=bx(vr());xt();var vx=(t,e)=>{if(!t.minutes)return(0,Dx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Cx.default)(r,"minutes",e)};Ls.default=vx});var pg=H(Us=>{"use strict";var Nx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Vt();var Px=Ot(),Lx=Nx(vr());xt();var Ux=(t,e)=>{if(!t.hours)return(0,Px.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Lx.default)(r,"hours",e)};Us.default=Ux});var fg=H(Fs=>{"use strict";var Mx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var Ms=Ot(),Fx=Mx(vr());xt();var kx=(t,e)=>{if(!t.daysOfMonth)return(0,Ms.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ms.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ms.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ms.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ms.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Fx.default)(r,"daysOfMonth",e)};Fs.default=kx});var mg=H(ks=>{"use strict";var Bx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var Gx=Ot(),$x=Bx(vr());xt();var Vx=(t,e)=>{if(!t.months)return(0,Gx.err)(["months field is undefined."]);let{months:r}=t;return(0,$x.default)(r,"months",e)};ks.default=Vx});var hg=H(Gs=>{"use strict";var qx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=Ot(),Wx=qx(vr());xt();var Qx=(t,e)=>{if(!t.daysOfWeek)return(0,Bs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Bs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Bs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Wx.default)(r,"daysOfWeek",e)};Gs.default=Qx});var gg=H($s=>{"use strict";var jx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var Hx=Ot(),Kx=jx(vr());xt();var Yx=(t,e)=>{if(!t.years)return(0,Hx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Kx.default)(r,"years",e)};$s.default=Yx});var Ag=H((uQ,Tg)=>{"use strict";var Kl;try{Kl=Map}catch{}var Yl;try{Yl=Set}catch{}function yg(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(Eg);if(Kl&&t instanceof Kl)return new Map(Array.from(t.entries()));if(Yl&&t instanceof Yl)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 s=e.findIndex(function(o){return o===t[i]});n[i]=s>-1?r[s]:yg(t[i],e,r)}return n}return t}function Eg(t){return yg(t,[],[])}Tg.exports=Eg});var Vs=H(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.default=rR;var Jx=Object.prototype.toString,zx=Error.prototype.toString,Zx=RegExp.prototype.toString,Xx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",eR=/^Symbol\((.*)\)(.*)$/;function tR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Sg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return tR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Xx.call(t).replace(eR,"Symbol($1)");let n=Jx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+zx.call(t)+"]":n==="RegExp"?Zx.call(t):null}function rR(t,e){let r=Sg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Sg(this[n],e);return s!==null?s:i},2)}});var er=H(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=Ne.array=Ne.object=Ne.boolean=Ne.date=Ne.number=Ne.string=Ne.mixed=void 0;var _g=nR(Vs());function nR(t){return t&&t.__esModule?t:{default:t}}var Ig={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,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,_g.default)(r,!0)}\``+(i?` (cast from the value \`${(0,_g.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Ne.mixed=Ig;var Og={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"};Ne.string=Og;var xg={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"};Ne.number=xg;var Rg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Rg;var wg={isValue:"${path} field must be ${value}"};Ne.boolean=wg;var bg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=bg;var Dg={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"};Ne.array=Dg;var iR=Object.assign(Object.create(null),{mixed:Ig,string:Og,number:xg,date:Rg,object:bg,array:Dg,boolean:wg});Ne.default=iR});var vi=H(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var sR=t=>t&&t.__isYupSchema__;su.default=sR});var vg=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var oR=Cg(require("lodash/has")),aR=Cg(vi());function Cg(t){return t&&t.__esModule?t:{default:t}}var zl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,oR.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:s}=r,o=typeof n=="function"?n:(...a)=>a.every(u=>u===n);this.fn=function(...a){let u=a.pop(),c=a.pop(),l=o(...a)?i:s;if(l)return typeof l=="function"?l(c):c.concat(l.resolve(u))}}resolve(e,r){let n=this.refs.map(s=>s.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,aR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},uR=zl;ou.default=uR});var Xl=H(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=cR;function cR(t){return t==null?[]:[].concat(t)}});var Cn=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var lR=Ng(Vs()),dR=Ng(Xl());function Ng(t){return t&&t.__esModule?t:{default:t}}function ed(){return ed=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},ed.apply(this,arguments)}var pR=/\$\{\s*(\w+)\s*\}/g,td=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ed({},r,{path:n})),typeof e=="string"?e.replace(pR,(i,s)=>(0,lR.default)(r[s])):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,dR.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};au.default=td});var uu=H(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.default=hR;var rd=fR(Cn());function fR(t){return t&&t.__esModule?t:{default:t}}var mR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function hR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=mR(e),l=n.length,f=[];if(o=o||[],!l)return o.length?c(new rd.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let p=n[m];p(i,function(g){if(g){if(!rd.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);f.push(g)}if(--l<=0){if(f.length&&(a&&f.sort(a),o.length&&f.push(...o),o=f),o.length){c(new rd.default(o,s,u),s);return}c(null,s)}})}}});var qs=H((gQ,Fg)=>{"use strict";function vn(t){this._maxSize=t,this.clear()}vn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};vn.prototype.get=function(t){return this._values[t]};vn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var gR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Mg=/^\d+$/,yR=/^\d/,ER=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,TR=/^\s*(['"]?)(.*?)(\1)\s*$/,od=512,Pg=new vn(od),Lg=new vn(od),Ug=new vn(od);Fg.exports={Cache:vn,split:sd,normalizePath:id,setter:function(t){var e=id(t);return Lg.get(t)||Lg.set(t,function(n,i){for(var s=0,o=e.length,a=n;s<o-1;){var u=e[s];if(u==="__proto__"||u==="constructor"||u==="prototype")return n;a=a[e[s++]]}a[e[s]]=i})},getter:function(t,e){var r=id(t);return Ug.get(t)||Ug.set(t,function(i){for(var s=0,o=r.length;s<o;)if(i!=null||!e)i=i[r[s++]];else return;return i})},join:function(t){return t.reduce(function(e,r){return e+(ad(r)||Mg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){AR(Array.isArray(t)?t:sd(t),e,r)}};function id(t){return Pg.get(t)||Pg.set(t,sd(t).map(function(e){return e.replace(TR,"$2")}))}function sd(t){return t.match(gR)||[""]}function AR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(IR(i)&&(i='"'+i+'"'),a=ad(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ad(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function SR(t){return t.match(yR)&&!t.match(Mg)}function _R(t){return ER.test(t)}function IR(t){return!ad(t)&&(SR(t)||_R(t))}});var Nn=H(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=xR;Qs.default=void 0;var OR=qs(),cu={context:"$",value:"."};function xR(t,e){return new Ws(t,e)}var Ws=class{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]===cu.context,this.isValue=this.key[0]===cu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?cu.context:this.isValue?cu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,OR.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}};Qs.default=Ws;Ws.prototype.__isYupRef=!0});var kg=H(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=DR;var RR=ud(require("lodash/mapValues")),lu=ud(Cn()),wR=ud(Nn());function ud(t){return t&&t.__esModule?t:{default:t}}function du(){return du=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},du.apply(this,arguments)}function bR(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function DR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=bR(r,["value","path","label","options","originalValue","sync"]),{name:f,test:m,params:p,message:d}=t,{parent:g,context:E}=a;function y(_){return wR.default.isRef(_)?_.getValue(i,g,E):_}function S(_={}){let B=(0,RR.default)(du({value:i,originalValue:u,label:o,path:_.path||s},p,_.params),y),b=new lu.default(lu.default.formatError(_.message||d,B),i,B.path,_.type||f);return b.params=B,b}let O=du({path:s,parent:g,type:f,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(O,i,O)).then(_=>{lu.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var T;if(R=m.call(O,i,O),typeof((T=R)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${O.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}lu.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var ld=H(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Bg;js.default=void 0;var CR=qs(),vR=t=>t.substr(0,t.length-1).substr(1);function Bg(t,e,r,n=r){let i,s,o;return e?((0,CR.forEach)(e,(a,u,c)=>{let l=u?vR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=c?parseInt(l,10):0;if(r&&f>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[f],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var NR=(t,e,r,n)=>Bg(t,e,r,n).schema,PR=NR;js.default=PR});var $g=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Gg=LR(Nn());function LR(t){return t&&t.__esModule?t:{default:t}}var dd=class t{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){Gg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Gg.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}};pu.default=dd});var rr=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var Vg=tr(Ag()),Ni=er(),UR=tr(vg()),qg=tr(uu()),fu=tr(kg()),Wg=tr(Vs()),MR=tr(Nn()),FR=ld(),kR=tr(Xl()),Qg=tr(Cn()),jg=tr($g());function tr(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=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},ft.apply(this,arguments)}var Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new jg.default,this._blacklist=new jg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ni.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ft({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=ft({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Vg.default)(ft({},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=ft({},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(s=>{e.tests.forEach(o=>{s.test(o.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,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ft({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Wg.default)(e),o=(0,Wg.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: ${s}
|
|
4
|
-
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,mt({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,Gg.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Gg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(mt({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(mt({},r,{value:e})),i;return n._validate(e,mt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Vg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Vg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Bg.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=Ni.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ni.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=Ni.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,fu.default)(r),s=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(o=>!(o.OPTIONS.name===r.name&&(s||o.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,LR.default)(e).map(s=>new NR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new vR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,fu.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=Ni.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,fu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Ni.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,fu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.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(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};mu.default=wt;wt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])wt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,PR.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},n,{parent:i,path:e}))};for(let t of["equals","is"])wt.prototype[t]=wt.prototype.oneOf;for(let t of["not","nope"])wt.prototype[t]=wt.prototype.notOneOf;wt.prototype.optional=wt.prototype.notRequired});var Qg=j(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=Wg;Hs.default=void 0;var UR=MR(rr());function MR(t){return t&&t.__esModule?t:{default:t}}var cd=UR.default,FR=cd;Hs.default=FR;function Wg(){return new cd}Wg.prototype=cd.prototype});var Pi=j(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var kR=t=>t==null;hu.default=kR});var Jg=j(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Kg;Ks.default=void 0;var BR=Yg(rr()),jg=er(),Hg=Yg(Pi());function Yg(t){return t&&t.__esModule?t:{default:t}}function Kg(){return new Ys}var Ys=class extends BR.default{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=jg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Hg.default)(r)||r===!0}})}isFalse(e=jg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Hg.default)(r)||r===!1}})}};Ks.default=Ys;Kg.prototype=Ys.prototype});var Xg=j(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Zg;zs.default=void 0;var Wt=er(),nr=zg(Pi()),GR=zg(rr());function zg(t){return t&&t.__esModule?t:{default:t}}var $R=/^((([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,VR=/^((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,qR=/^(?:[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,WR=t=>(0,nr.default)(t)||t===t.trim(),QR={}.toString();function Zg(){return new Js}var Js=class extends GR.default{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===QR?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=Wt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,nr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Wt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,nr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Wt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,nr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Wt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Wt.string.email){return this.matches($R,{name:"email",message:e,excludeEmptyString:!0})}url(e=Wt.string.url){return this.matches(VR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Wt.string.uuid){return this.matches(qR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Wt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:WR})}lowercase(e=Wt.string.lowercase){return this.transform(r=>(0,nr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toLowerCase()})}uppercase(e=Wt.string.uppercase){return this.transform(r=>(0,nr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toUpperCase()})}};zs.default=Js;Zg.prototype=Js.prototype});var ry=j(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=ty;Xs.default=void 0;var Ln=er(),Un=ey(Pi()),jR=ey(rr());function ey(t){return t&&t.__esModule?t:{default:t}}var HR=t=>t!=+t;function ty(){return new Zs}var Zs=class extends jR.default{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"&&!HR(e)}min(e,r=Ln.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Un.default)(n)||n>=this.resolve(e)}})}max(e,r=Ln.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Un.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Ln.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Un.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Ln.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Un.default)(n)||n>this.resolve(e)}})}positive(e=Ln.number.positive){return this.moreThan(0,e)}negative(e=Ln.number.negative){return this.lessThan(0,e)}integer(e=Ln.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Un.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Un.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,Un.default)(i)?i:Math[e](i))}};Xs.default=Zs;ty.prototype=Zs.prototype});var ny=j(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=KR;var YR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function KR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=YR.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||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}});var oy=j(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=pd;eo.default=void 0;var JR=gu(ny()),iy=er(),sy=gu(Pi()),zR=gu(Pn()),ZR=gu(rr());function gu(t){return t&&t.__esModule?t:{default:t}}var dd=new Date(""),XR=t=>Object.prototype.toString.call(t)==="[object Date]";function pd(){return new Li}var Li=class extends ZR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,JR.default)(e),isNaN(e)?dd:new Date(e))})})}_typeCheck(e){return XR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(zR.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=iy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,sy.default)(i)||i>=this.resolve(n)}})}max(e,r=iy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,sy.default)(i)||i<=this.resolve(n)}})}};eo.default=Li;Li.INVALID_DATE=dd;pd.prototype=Li.prototype;pd.INVALID_DATE=dd});var uy=j((OQ,fd)=>{"use strict";fd.exports=function(t){return ay(ew(t),t)};fd.exports.array=ay;function ay(t,e){var r=t.length,n=new Array(r),i={},s=r,o=tw(e),a=rw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),l=p.length){d.add(c);do{var f=p[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function ew(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)}function tw(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}function rw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var cy=j(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.default=uw;var nw=yu(require("lodash/has")),iw=yu(uy()),sw=qs(),ow=yu(Pn()),aw=yu(vi());function yu(t){return t&&t.__esModule?t:{default:t}}function uw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,sw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,nw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),ow.default.isRef(o)&&o.isSibling?i(o.path,s):(0,aw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return iw.default.array(n,r).reverse()}});var dy=j(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=cw;function ly(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function cw(t){return(e,r)=>ly(t,e)-ly(t,r)}});var Ey=j(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=yy;ro.default=void 0;var py=Qt(require("lodash/has")),fy=Qt(require("lodash/snakeCase")),lw=Qt(require("lodash/camelCase")),dw=Qt(require("lodash/mapKeys")),pw=Qt(require("lodash/mapValues")),fw=qs(),my=er(),mw=Qt(cy()),gy=Qt(dy()),hw=Qt(uu()),gw=Qt(vn()),gd=Qt(rr());function Qt(t){return t&&t.__esModule?t:{default:t}}function Ui(){return Ui=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},Ui.apply(this,arguments)}var hy=t=>Object.prototype.toString.call(t)==="[object Object]";function yw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Ew=(0,gy.default)([]),to=class extends gd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Ew,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return hy(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 s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Ui({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,py.default)(i,d);if(m){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||d in i;continue}f=!r.__validating||!y?m.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}else p&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!gw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!hy(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(p=>(f,g)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(d[p],Ui({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,hw.default)({sync:s,tests:m,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ui({},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,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof gd.default&&s instanceof gd.default&&(n[i]=s.concat(o))}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,gy.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,mw.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,fw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,py.default)(s,e)&&(o=Ui({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=my.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 s=yw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=my.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,dw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(lw.default)}snakeCase(){return this.transformKeys(fy.default)}constantCase(){return this.transformKeys(e=>(0,fy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,pw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function yy(t){return new to(t)}yy.prototype=to.prototype});var Ay=j(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=Ty;io.default=void 0;var yd=Mi(Pi()),Tw=Mi(vi()),Aw=Mi(Vs()),Ed=er(),Sw=Mi(uu()),_w=Mi(vn()),Iw=Mi(rr());function Mi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=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},Eu.apply(this,arguments)}function Ty(t){return new no(t)}var no=class extends Iw.default{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,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!_w.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],S=`${r.path||""}[${E}]`,I=Eu({},r,{path:S,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(R,T)=>c.validate(y,I,T)}(0,Sw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},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,Tw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Aw.default)(e));return r.innerType=e,r}length(e,r=Ed.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,yd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Ed.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,yd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Ed.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,yd.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,s)=>!e(n,i,s):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)}};io.default=no;Ty.prototype=no.prototype});var Sy=j(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Rw;so.default=void 0;var Ow=xw(vi());function xw(t){return t&&t.__esModule?t:{default:t}}function Rw(t){return new Tu(t)}var Tu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Ow.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)}},ww=Tu;so.default=ww});var _y=j(Td=>{"use strict";Object.defineProperty(Td,"__esModule",{value:!0});Td.default=Cw;var bw=Dw(er());function Dw(t){return t&&t.__esModule?t:{default:t}}function Cw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{bw.default[e][r]=t[e][r]})})}});var Sd=j(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=Fw;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return Iy.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return Ad.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return Ad.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return Ad.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return vw.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return Nw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return Pw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return Lw.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Uw.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return Mw.default}});var Iy=Mn(Qg()),Ad=Mn(Jg()),Oy=Mn(Xg()),xy=Mn(ry()),Ry=Mn(oy()),wy=Mn(Ey()),by=Mn(Ay()),vw=Pn(),Nw=Sy(),Pw=oo(vn()),Lw=oo(ad()),Dy=oo(vi()),Uw=oo(_y()),Mw=oo(rr());function oo(t){return t&&t.__esModule?t:{default:t}}function Cy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Cy=function(){return t},t}function Mn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Cy();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 s=n?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}function Fw(t,e,r){if(!t||!(0,Dy.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}});var vy=j(Id=>{"use strict";Object.defineProperty(Id,"__esModule",{value:!0});var _d=Od();Id.default=()=>{(0,_d.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,_d.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,_d.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 Od=j(Pe=>{"use strict";var kw=Pe&&Pe.__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]}),Bw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Gw=Pe&&Pe.__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)&&kw(e,t,r);return Bw(e,t),e},$w=Pe&&Pe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.validateOptions=Pe.registerOptionPreset=Pe.getOptionPresets=Pe.getOptionPreset=void 0;var w=Gw(Sd());Sd();var ao=xt(),Vw=$w(vy());Rt();var Fn={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}}},Ny=w.object({presetId:w.string().required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),minutes:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),hours:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfMonth:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),months:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfWeek:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),years:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required()}).required(),qw=t=>Fn[t]?(0,ao.valid)(Fn[t]):(0,ao.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=qw;var Ww=()=>Fn;Pe.getOptionPresets=Ww;var Qw=(t,e)=>{Fn[t]=Ny.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=Qw;var jw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,S,I,R;try{(0,Vw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Fn[t.preset])return(0,ao.err)([`Option preset ${t.preset} does not exist.`]);T=Fn[t.preset]}else T=t.preset;else T=Fn.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(d=T.hours.lowerLimit)!==null&&d!==void 0?d:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g: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:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(I=T.years.lowerLimit)!==null&&I!==void 0?I:T.years.minValue,upperLimit:(R=T.years.upperLimit)!==null&&R!==void 0?R:T.years.maxValue}}),t.override),b=w.object({presetId:w.string().required(),preset:Ny.required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({lowerLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:w.object({lowerLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:w.object({lowerLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:w.object({lowerLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:w.object({lowerLimit:w.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:w.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:w.object({lowerLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:w.object({lowerLimit:w.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:w.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ao.valid)(b)}catch(T){return(0,ao.err)(T.errors)}};Pe.validateOptions=jw});var qt=j((uo,Rd)=>{"use strict";var Bn=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var kn=xt(),Hw=Bn(ag()),Yw=Bn(ug()),Kw=Bn(cg()),Jw=Bn(lg()),zw=Bn(dg()),Zw=Bn(pg()),Xw=Bn(fg()),eb=Od();Rt();var tb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,kn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,kn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,kn.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,kn.valid)(n)},xd=(t,e={})=>{let r=(0,eb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=tb(t,n);if(i.isError())return(0,kn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Hw.default)(s,n)),o.push((0,Yw.default)(s,n)),o.push((0,Kw.default)(s,n)),o.push((0,Jw.default)(s,n)),o.push((0,zw.default)(s,n)),o.push((0,Zw.default)(s,n)),n.useYears&&o.push((0,Xw.default)(s,n)),o.every(u=>u.isValid()))return(0,kn.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,kn.err)(a)};uo.default=xd;Rd.exports=xd;Rd.exports.default=xd});var rT=j(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},Ud=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Md=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Fd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Vn=class extends sr{},Ru=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends sr{},jt=class extends sr{constructor(){super("Zone is an abstract class")}},C="numeric",Ct="short",nt="long",wu={year:C,month:C,day:C},iE={year:C,month:Ct,day:C},rb={year:C,month:Ct,day:C,weekday:Ct},sE={year:C,month:nt,day:C},oE={year:C,month:nt,day:C,weekday:nt},aE={hour:C,minute:C},uE={hour:C,minute:C,second:C},cE={hour:C,minute:C,second:C,timeZoneName:Ct},lE={hour:C,minute:C,second:C,timeZoneName:nt},dE={hour:C,minute:C,hourCycle:"h23"},pE={hour:C,minute:C,second:C,hourCycle:"h23"},fE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Ct},mE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:nt},hE={year:C,month:C,day:C,hour:C,minute:C},gE={year:C,month:C,day:C,hour:C,minute:C,second:C},yE={year:C,month:Ct,day:C,hour:C,minute:C},EE={year:C,month:Ct,day:C,hour:C,minute:C,second:C},nb={year:C,month:Ct,day:C,weekday:Ct,hour:C,minute:C},TE={year:C,month:nt,day:C,hour:C,minute:C,timeZoneName:Ct},AE={year:C,month:nt,day:C,hour:C,minute:C,second:C,timeZoneName:Ct},SE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,timeZoneName:nt},_E={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,second:C,timeZoneName:nt},Mr=class{get type(){throw new jt}get name(){throw new jt}get ianaName(){return this.name}get isUniversal(){throw new jt}offsetName(e,r){throw new jt}formatOffset(e,r){throw new jt}offset(e){throw new jt}equals(e){throw new jt}get isValid(){throw new jt}},wd=null,go=class t extends Mr{static get instance(){return wd===null&&(wd=new t),wd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return OE(e,r,n)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Ou={};function ib(t){return Ou[t]||(Ou[t]=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"})),Ou[t]}var sb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ob(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,s,o,a,u,c,l]=n;return[o,i,s,a,u,c,l]}function ab(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=sb[s];s==="era"?n[a]=o:se(a)||(n[a]=parseInt(o,10))}return n}var Au={},or=class t extends Mr{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},Ou={}}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 OE(e,r,n,this.name)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=ib(this.name),[i,s,o,a,u,c,l]=n.formatToParts?ab(n,r):ob(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Kd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),p=+r,f=p%1e3;return p-=f>=0?f:1e3+f,(m-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Py={};function ub(t,e={}){let r=JSON.stringify([t,e]),n=Py[r];return n||(n=new Intl.ListFormat(t,e),Py[r]=n),n}var kd={};function Bd(t,e={}){let r=JSON.stringify([t,e]),n=kd[r];return n||(n=new Intl.DateTimeFormat(t,e),kd[r]=n),n}var Gd={};function cb(t,e={}){let r=JSON.stringify([t,e]),n=Gd[r];return n||(n=new Intl.NumberFormat(t,e),Gd[r]=n),n}var $d={};function lb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=$d[i];return s||(s=new Intl.RelativeTimeFormat(t,e),$d[i]=s),s}var fo=null;function db(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function pb(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=Bd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Bd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function fb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function mb(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function hb(t){let e=[];for(let r=1;r<=7;r++){let n=Ie.utc(2016,11,13+r);e.push(t(n))}return e}function Su(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function gb(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var Vd=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=cb(e,a)}}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):Yd(e,3);return Re(r,this.padTo)}}},qd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&or.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Ie.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Bd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Wd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&IE()&&(this.rtf=lb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Nb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||Ee.defaultLocale,o=s||(i?"en-US":db()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,kd={},Gd={},$d={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=pb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=fb(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=gb(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,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Su(this,e,n,wE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=mb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Su(this,e,n,CE,()=>{let i=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=r?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=hb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Su(this,void 0,e,()=>vE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ie.utc(2016,11,13,9),Ie.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Su(this,e,r,NE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ie.utc(-40,1,1),Ie.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Vd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new qd(e,this.intl,r)}relFormatter(e={}){return new Wd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return ub(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},bd=null,it=class t extends Mr{static get utcInstance(){return bd===null&&(bd=new t(0)),bd}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(Pu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ho(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ho(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ho(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}},bu=class extends Mr{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(se(t)||t===null)return e;if(t instanceof Mr)return t;if(yb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?go.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||or.create(t)}else return Wn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new bu(t)}var Ly=()=>Date.now(),Uy="system",My=null,Fy=null,ky=null,By=60,Gy,Ee=class{static get now(){return Ly}static set now(e){Ly=e}static set defaultZone(e){Uy=e}static get defaultZone(){return Ur(Uy,go.instance)}static get defaultLocale(){return My}static set defaultLocale(e){My=e}static get defaultNumberingSystem(){return Fy}static set defaultNumberingSystem(e){Fy=e}static get defaultOutputCalendar(){return ky}static set defaultOutputCalendar(e){ky=e}static get twoDigitCutoffYear(){return By}static set twoDigitCutoffYear(e){By=e%100}static get throwOnInvalid(){return Gy}static set throwOnInvalid(e){Gy=e}static resetCaches(){_e.resetCache(),or.resetCache()}};function se(t){return typeof t>"u"}function Wn(t){return typeof t=="number"}function Nu(t){return typeof t=="number"&&t%1===0}function yb(t){return typeof t=="string"}function Eb(t){return Object.prototype.toString.call(t)==="[object Date]"}function IE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Tb(t){return Array.isArray(t)?t:[t]}function $y(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function Ab(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return Nu(t)&&t>=e&&t<=r}function Sb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Lr(t){if(!(se(t)||t===null||t===""))return parseInt(t,10)}function Gn(t){if(!(se(t)||t===null||t===""))return parseFloat(t)}function Hd(t){if(!(se(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Yd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function yo(t){return t%4===0&&(t%100!==0||t%400===0)}function mo(t){return yo(t)?366:365}function Du(t,e){let r=Sb(e-1,12)+1,n=t+(e-r)/12;return r===2?yo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Kd(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(e.getUTCFullYear()-1900)),+e}function Cu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Qd(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function OE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Pu(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}function xE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function vu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=xE(i)}return r}function ho(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}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Lu(t){return Ab(t,["hour","minute","second","millisecond"])}var _b=["January","February","March","April","May","June","July","August","September","October","November","December"],RE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ib=["J","F","M","A","M","J","J","A","S","O","N","D"];function wE(t){switch(t){case"narrow":return[...Ib];case"short":return[...RE];case"long":return[..._b];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}}var bE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],DE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Ob=["M","T","W","T","F","S","S"];function CE(t){switch(t){case"narrow":return[...Ob];case"short":return[...DE];case"long":return[...bE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var vE=["AM","PM"],xb=["Before Christ","Anno Domini"],Rb=["BC","AD"],wb=["B","A"];function NE(t){switch(t){case"narrow":return[...wb];case"short":return[...Rb];case"long":return[...xb];default:return null}}function bb(t){return vE[t.hour<12?0:1]}function Db(t,e){return CE(e)[t.weekday-1]}function Cb(t,e){return wE(e)[t.month-1]}function vb(t,e){return NE(e)[t.year<0?0:1]}function Nb(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."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function Vy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Pb={D:wu,DD:iE,DDD:sE,DDDD:oE,t:aE,tt:uE,ttt:cE,tttt:lE,T:dE,TT:pE,TTT:fE,TTTT:mE,f:hE,ff:yE,fff:TE,ffff:SE,F:gE,FF:EE,FFF:AE,FFFF:_E},tt=class t{static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,s=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);a==="'"?(n.length>0&&s.push({literal:i,val:n}),r=null,n="",i=!i):i||a===r?n+=a:(n.length>0&&s.push({literal:!1,val:n}),n=a,r=a)}return n.length>0&&s.push({literal:i,val:n}),s}static macroTokenToFormatOpts(e){return Pb[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()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?bb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?Cb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?Db(e,p):s(f?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let f=t.macroTokenToFormatOpts(p);return f?this.formatWithSystemDefault(e,f):p},d=p=>n?vb(e,p):s({era:p},"era"),m=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 o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({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 a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("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"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 l(p)}};return Vy(t.parseFormat(r),m)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return Vy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},PE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $i(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Vi(...t){return e=>t.reduce(([r,n,i],s)=>{let[o,a,u]=s(e,i);return[{...r,...o},a||n,u]},[{},null,1]).slice(0,2)}function qi(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]}function LE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Lr(e[r+i]);return[n,null,r+i]}}var UE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Lb=`(?:${UE.source}?(?:\\[(${PE.source})\\])?)?`,Jd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,ME=RegExp(`${Jd.source}${Lb}`),zd=RegExp(`(?:T${ME.source})?`),Ub=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Mb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Fb=/(\d{4})-?(\d{3})/,kb=LE("weekYear","weekNumber","weekDay"),Bb=LE("year","ordinal"),Gb=/(\d{4})-(\d\d)-(\d\d)/,FE=RegExp(`${Jd.source} ?(?:${UE.source}|(${PE.source}))?`),$b=RegExp(`(?: ${FE.source})?`);function Bi(t,e,r){let n=t[e];return se(n)?r:Lr(n)}function Vb(t,e){return[{year:Bi(t,e),month:Bi(t,e+1,1),day:Bi(t,e+2,1)},null,e+3]}function Wi(t,e){return[{hours:Bi(t,e,0),minutes:Bi(t,e+1,0),seconds:Bi(t,e+2,0),milliseconds:Hd(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Pu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function To(t,e){let r=t[e]?or.create(t[e]):null;return[{},r,e+1]}var qb=RegExp(`^T?${Jd.source}$`),Wb=/^-?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 Qb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(Gn(r)),months:m(Gn(n)),weeks:m(Gn(i)),days:m(Gn(s)),hours:m(Gn(o)),minutes:m(Gn(a)),seconds:m(Gn(u),u==="-0"),milliseconds:m(Hd(c),d)}]}var jb={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 Zd(t,e,r,n,i,s,o){let a={year:e.length===2?Qd(Lr(e)):Lr(e),month:RE.indexOf(r)+1,day:Lr(n),hour:Lr(i),minute:Lr(s)};return o&&(a.second=Lr(o)),t&&(a.weekday=t.length>3?bE.indexOf(t)+1:DE.indexOf(t)+1),a}var Hb=/^(?:(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 Yb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Zd(e,i,n,r,s,o,a),p;return u?p=jb[u]:c?p=0:p=Pu(l,d),[m,new it(p)]}function Kb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Jb=/^(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$/,zb=/^(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$/,Zb=/^(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 qy(t){let[,e,r,n,i,s,o,a]=t;return[Zd(e,i,n,r,s,o,a),it.utcInstance]}function Xb(t){let[,e,r,n,i,s,o,a]=t;return[Zd(e,a,r,n,i,s,o),it.utcInstance]}var eD=$i(Ub,zd),tD=$i(Mb,zd),rD=$i(Fb,zd),nD=$i(ME),kE=Vi(Vb,Wi,Eo,To),iD=Vi(kb,Wi,Eo,To),sD=Vi(Bb,Wi,Eo,To),oD=Vi(Wi,Eo,To);function aD(t){return qi(t,[eD,kE],[tD,iD],[rD,sD],[nD,oD])}function uD(t){return qi(Kb(t),[Hb,Yb])}function cD(t){return qi(t,[Jb,qy],[zb,qy],[Zb,Xb])}function lD(t){return qi(t,[Wb,Qb])}var dD=Vi(Wi);function pD(t){return qi(t,[qb,dD])}var fD=$i(Gb,$b),mD=$i(FE),hD=Vi(Wi,Eo,To);function gD(t){return qi(t,[fD,kE],[mD,hD])}var yD="Invalid Duration",BE={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}},ED={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},...BE},ht=146097/400,Fi=146097/4800,TD={years:{quarters:4,months:12,weeks:ht/7,days:ht,hours:ht*24,minutes:ht*24*60,seconds:ht*24*60*60,milliseconds:ht*24*60*60*1e3},quarters:{months:3,weeks:ht/28,days:ht/4,hours:ht*24/4,minutes:ht*24*60/4,seconds:ht*24*60*60/4,milliseconds:ht*24*60*60*1e3/4},months:{weeks:Fi/7,days:Fi,hours:Fi*24,minutes:Fi*24*60,seconds:Fi*24*60*60,milliseconds:Fi*24*60*60*1e3},...BE},$n=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],AD=$n.slice(0).reverse();function Pr(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 De(n)}function SD(t){return t<0?Math.floor(t):Math.ceil(t)}function GE(t,e,r,n,i){let s=t[i][r],o=e[r]/s,a=Math.sign(o)===Math.sign(n[i]),u=!a&&n[i]!==0&&Math.abs(o)<=1?SD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function _D(t,e){AD.reduce((r,n)=>se(e[n])?r:(r&&GE(t,e,r,e,n),n),null)}function ID(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var De=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?TD:ED;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.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 Ye(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:vu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Wn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ye(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=lD(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]=pD(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 Ye("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Fd(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 Ru(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?tt.create(this.loc,n).formatDurationFromString(this,e):yD}toHuman(e={}){let r=$n.map(n=>{let i=this.values[n];return se(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(i)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(r)}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+=Yd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of $n)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Pr(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]=xE(e(this.values[n],n));return Pr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...vu(e,t.normalizeUnit)};return Pr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Pr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return _D(this.matrix,e),Pr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=ID(this.normalize().shiftToAll().toObject());return Pr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of $n)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;Wn(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)$n.indexOf(c)>$n.indexOf(o)&&GE(this.matrix,i,c,r,o)}else Wn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return Pr(this,{values:r},!0).normalize()}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 Pr(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}for(let n of $n)if(!r(this.values[n],e.values[n]))return!1;return!0}},ki="Invalid Interval";function OD(t,e){return!t||!t.isValid?Qn.invalid("missing or invalid start"):!e||!e.isValid?Qn.invalid("missing or invalid end"):e<t?Qn.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}var Qn=class t{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 Ye("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Md(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=OD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=po(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=po(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=Ie.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ie.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=De.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=De.fromISO(n,r);if(c.isValid)return t.before(a,c)}}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 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"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}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(po).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=De.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}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,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.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()})`:ki}toLocaleString(e=wu,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):ki}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:ki}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:ki}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:ki}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:ki}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):De.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},qn=class{static hasDST(e=Ee.defaultZone){let r=Ie.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return or.isValidZone(e)}static normalizeZone(e){return Ur(e,Ee.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:IE()}}};function Wy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(De.fromMillis(n).as("days"))}function xD(t,e,r){let n=[["years",(u,c)=>c.year-u.year],["quarters",(u,c)=>c.quarter-u.quarter+(c.year-u.year)*4],["months",(u,c)=>c.month-u.month+(c.year-u.year)*12],["weeks",(u,c)=>{let l=Wy(u,c);return(l-l%7)/7}],["days",Wy]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function RD(t,e,r,n){let[i,s,o,a]=xD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=De.fromObject(s,n);return c.length>0?De.fromMillis(u,n).shiftTo(...c).plus(l):l}var Xd={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"},Qy={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]},wD=Xd.hanidec.replace(/[\[|\]]/g,"").split("");function bD(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(Xd.hanidec)!==-1)e+=wD.indexOf(t[r]);else for(let i in Qy){let[s,o]=Qy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${Xd[t||"latn"]}${e}`)}var DD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(bD(r))}}var CD=String.fromCharCode(160),$E=`[ ${CD}]`,VE=new RegExp($E,"g");function vD(t){return t.replace(/\./g,"\\.?").replace(VE,$E)}function jy(t){return t.replace(/\./g,"").replace(VE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map(vD).join("|")),deser:([r])=>t.findIndex(n=>jy(r)===jy(n))+e}}function Hy(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Dd(t){return{regex:t,deser:([e])=>e}}function ND(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function PD(t,e){let r=bt(e),n=bt(e,"{2}"),i=bt(e,"{3}"),s=bt(e,"{4}"),o=bt(e,"{6}"),a=bt(e,"{1,2}"),u=bt(e,"{1,3}"),c=bt(e,"{1,6}"),l=bt(e,"{1,9}"),d=bt(e,"{2,4}"),m=bt(e,"{4,6}"),p=E=>({regex:RegExp(ND(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return Dt(e.eras("short",!1),0);case"GG":return Dt(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(d,Qd);case"yyyy":return le(s);case"yyyyy":return le(m);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return Dt(e.months("short",!0,!1),1);case"MMMM":return Dt(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return Dt(e.months("short",!1,!1),1);case"LLLL":return Dt(e.months("long",!1,!1),1);case"d":return le(a);case"dd":return le(n);case"o":return le(u);case"ooo":return le(i);case"HH":return le(n);case"H":return le(a);case"hh":return le(n);case"h":return le(a);case"mm":return le(n);case"m":return le(a);case"q":return le(a);case"qq":return le(n);case"s":return le(a);case"ss":return le(n);case"S":return le(u);case"SSS":return le(i);case"u":return Dd(l);case"uu":return Dd(a);case"uuu":return le(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(d,Qd);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return Dt(e.weekdays("short",!1,!1),1);case"EEEE":return Dt(e.weekdays("long",!1,!1),1);case"ccc":return Dt(e.weekdays("short",!0,!1),1);case"cccc":return Dt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Hy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Hy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Dd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:DD};return g.token=t,g}var LD={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",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function UD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=LD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function MD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function FD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Gi(r,o)){let a=r[o],u=a.groups?a.groups+1:1;!a.literal&&a.token&&(i[a.token.val[0]]=a.deser(n.slice(s,s+u))),s+=u}return[n,i]}else return[n,{}]}function kD(t){let e=s=>{switch(s){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}},r=null,n;return se(t.z)||(r=or.create(t.z)),se(t.Z)||(r||(r=new it(t.Z)),n=t.Z),se(t.q)||(t.M=(t.q-1)*3+1),se(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),se(t.u)||(t.S=Hd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Cd=null;function BD(){return Cd||(Cd=Ie.fromMillis(1555555555555)),Cd}function GD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=QE(r,e);return n==null||n.includes(void 0)?t:n}function qE(t,e){return Array.prototype.concat(...t.map(r=>GD(r,e)))}function WE(t,e,r){let n=qE(tt.parseFormat(r),t),i=n.map(o=>PD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=MD(i),u=RegExp(o,"i"),[c,l]=FD(e,u,a),[d,m,p]=l?kD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(l,"H"))throw new Vn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function $D(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=WE(t,e,r);return[n,i,s,o]}function QE(t,e){return t?tt.create(e,t).formatDateTimeParts(BD()).map(i=>UD(i,t)):null}var jE=[0,31,59,90,120,151,181,212,243,273,304,334],HE=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function YE(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}function KE(t,e,r){return r+(yo(t)?HE:jE)[e-1]}function JE(t,e){let r=yo(t)?HE:jE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function jd(t){let{year:e,month:r,day:n}=t,i=KE(e,r,n),s=YE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Cu(a)):o>Cu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function Yy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=YE(e,1,4),s=mo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=mo(a)):o>s?(a=e+1,o-=mo(e)):a=e;let{month:u,day:c}=JE(a,o);return{year:a,month:u,day:c,...Lu(t)}}function vd(t){let{year:e,month:r,day:n}=t,i=KE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Ky(t){let{year:e,ordinal:r}=t,{month:n,day:i}=JE(e,r);return{year:e,month:n,day:i,...Lu(t)}}function VD(t){let e=Nu(t.weekYear),r=ir(t.weekNumber,1,Cu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function qD(t){let e=Nu(t.year),r=ir(t.ordinal,1,mo(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function zE(t){let e=Nu(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Du(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function ZE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=ir(e,0,23)||e===24&&r===0&&n===0&&i===0,o=ir(r,0,59),a=ir(n,0,59),u=ir(i,0,999);return s?o?a?u?!1:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}var Nd="Invalid DateTime",Jy=864e13;function _u(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Pd(t){return t.weekData===null&&(t.weekData=jd(t.c)),t.weekData}function co(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ie({...r,...e,old:r})}function XE(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 s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function zy(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()}}function xu(t,e,r){return XE(Kd(t),e,r)}function Zy(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,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Du(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.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"),a=Kd(s),[u,c]=XE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function lo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ie.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ie.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Iu(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Ld(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function Xy(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var eT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},WD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},QD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},tT=["year","month","day","hour","minute","second","millisecond"],jD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],HD=["year","ordinal","hour","minute","second","millisecond"];function eE(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 Ru(t);return e}function tE(t,e){let r=Ur(e.zone,Ee.defaultZone),n=_e.fromObject(e),i=Ee.now(),s,o;if(se(t.year))s=i;else{for(let c of tT)se(t[c])&&(t[c]=eT[c]);let a=zE(t)||ZE(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function rE(t,e,r){let n=se(r.round)?!0:r.round,i=(o,a)=>(o=Yd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function nE(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]}var Ie=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:_u(r));this.ts=se(e.ts)?Ee.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=zy(this.ts,a),n=Number.isNaN(i.year)?new rt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=nE(arguments),[n,i,s,o,a,u,c]=r;return tE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=nE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,tE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Eb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Ur(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(_u(i))}static fromMillis(e,r={}){if(Wn(e))return e<-Jy||e>Jy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ur(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Wn(e))return new t({ts:e*1e3,zone:Ur(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ur(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(_u(n));let i=Ee.now(),s=se(r.specificOffset)?n.offset(i):r.specificOffset,o=vu(e,eE),a=!se(o.ordinal),u=!se(o.year),c=!se(o.month)||!se(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&d)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Vn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=zy(i,s);p?(f=jD,g=WD,E=jd(E)):a?(f=HD,g=QD,E=vd(E)):(f=tT,g=eT);let y=!1;for(let b of f){let k=o[b];se(k)?y?o[b]=g[b]:o[b]=E[b]:y=!0}let S=p?VD(o):a?qD(o):zE(o),I=S||ZE(o);if(I)return t.invalid(I);let R=p?Yy(o):a?Ky(o):o,[T,_]=xu(R,s,n),B=new t({ts:T,zone:n,o:_,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=aD(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=uD(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=cD(e);return lo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(se(e)||se(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=$D(o,e,r);return l?t.invalid(l):lo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=gD(e);return lo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Ud(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=QE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return qE(tt.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}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?Pd(this).weekYear:NaN}get weekNumber(){return this.isValid?Pd(this).weekNumber:NaN}get weekday(){return this.isValid?Pd(this).weekday:NaN}get ordinal(){return this.isValid?vd(this.c).ordinal:NaN}get monthShort(){return this.isValid?qn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?qn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?qn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?qn.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}get isInLeapYear(){return yo(this.year)}get daysInMonth(){return Du(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Cu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(it.instance(e),r)}toLocal(){return this.setZone(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Ur(e,Ee.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=xu(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(_u(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return co(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=vu(e,eE),n=!se(r.weekYear)||!se(r.weekNumber)||!se(r.weekday),i=!se(r.ordinal),s=!se(r.year),o=!se(r.month)||!se(r.day),a=s||o,u=r.weekYear||r.weekNumber;if((a||i)&&u)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Vn("Can't mix ordinal dates with month/day");let c;n?c=Yy({...jd(this.c),...r}):se(r.ordinal)?(c={...this.toObject(),...r},se(r.day)&&(c.day=Math.min(Du(c.year,c.month),c.day))):c=Ky({...vd(this.c),...r});let[l,d]=xu(c,this.o,this.zone);return co(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return co(this,Zy(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return co(this,Zy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=De.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?tt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Nd}toLocaleString(e=wu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Nd}toLocaleParts(e={}){return this.isValid?tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=Ld(this,o);return a+="T",a+=Xy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Ld(this,e==="extended"):null}toISOWeekDate(){return Iu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Xy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Iu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Iu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Ld(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")),Iu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Nd}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 De.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Tb(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=RD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?Qn.fromDateTimes(this,e):this}hasSame(e,r){if(!this.isValid)return!1;let n=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r)<=n&&n<=i.endOf(r)}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"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),rE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?rE(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 Ye("min requires all arguments be DateTimes");return $y(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return $y(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return WE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return wu}static get DATE_MED(){return iE}static get DATE_MED_WITH_WEEKDAY(){return rb}static get DATE_FULL(){return sE}static get DATE_HUGE(){return oE}static get TIME_SIMPLE(){return aE}static get TIME_WITH_SECONDS(){return uE}static get TIME_WITH_SHORT_OFFSET(){return cE}static get TIME_WITH_LONG_OFFSET(){return lE}static get TIME_24_SIMPLE(){return dE}static get TIME_24_WITH_SECONDS(){return pE}static get TIME_24_WITH_SHORT_OFFSET(){return fE}static get TIME_24_WITH_LONG_OFFSET(){return mE}static get DATETIME_SHORT(){return hE}static get DATETIME_SHORT_WITH_SECONDS(){return gE}static get DATETIME_MED(){return yE}static get DATETIME_MED_WITH_SECONDS(){return EE}static get DATETIME_MED_WITH_WEEKDAY(){return nb}static get DATETIME_FULL(){return TE}static get DATETIME_FULL_WITH_SECONDS(){return AE}static get DATETIME_HUGE(){return SE}static get DATETIME_HUGE_WITH_SECONDS(){return _E}};function po(t){if(Ie.isDateTime(t))return t;if(t&&t.valueOf&&Wn(t.valueOf()))return Ie.fromJSDate(t);if(t&&typeof t=="object")return Ie.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var YD="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=qn;st.Interval=Qn;st.InvalidZone=bu;st.Settings=Ee;st.SystemZone=go;st.VERSION=YD;st.Zone=Mr});var iT=j((UQ,nT)=>{"use strict";var jn=rT();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.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}))};z.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}))};z.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}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.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}))};z.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}))};z.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}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=jn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=jn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=jn.DateTime.fromISO(t,r),this._date.isValid||(this._date=jn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=jn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=jn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=jn.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))}nT.exports=z});var aT=j((MQ,oT)=>{"use strict";function Hn(t){return{start:t,count:1}}function sT(t,e){t.end=e,t.step=e-t.start,t.count=2}function ep(t,e,r){e&&(e.count===2?(t.push(Hn(e.start)),t.push(Hn(e.end))):t.push(e)),r&&t.push(r)}function KD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(ep(e,r,Hn(i)),r=void 0):r?r.count===1?sT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Hn(r.start)),r=Hn(r.end),sT(r,i)):(ep(e,r),r=Hn(i)):r=Hn(i)}return ep(e,r),e}oT.exports=KD});var cT=j((FQ,uT)=>{"use strict";var JD=aT();function zD(t,e,r){var n=JD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(m,p){var f=c.start+p;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}uT.exports=zD});var pT=j((kQ,dT)=>{"use strict";var Yn=iT(),ZD=cT(),lT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Yn(e.currentDate,this._tz),this._startDate=e.startDate?new Yn(e.startDate,this._tz):null,this._endDate=e.endDate?new Yn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.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"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.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}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.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 s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[g];if(U._isValidConstraintChar(n,y)){c.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);c.push(y)}else{if(U._isValidConstraintChar(n,f)){c.push(f);return}var S=+f;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,p=d.length;m<p;m++)l(o(d[m]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],p=+d[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._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)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.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(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.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 s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(y,S){for(var I=0,R=S.length;I<R;I++)if(S[I]>=y)return S[I]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var I=y.getDate()%7?1:0,R=y.getDate()-y.getDate()%7,T=Math.floor(R/7)+I;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Yn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(S){if(!i([S]))return!1;var I=Number.parseInt(S[0])%7;if(Number.isNaN(I))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===I&&o.isLastWeekdayOfMonth()})}for(;l<lT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,E=o.getHours();if(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=lT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Yn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.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}};U.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}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new Yn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(ZD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Yn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,d=U.map.length;l<d;++l){var m=U.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(U._parseField(m,U.parseDefaults[l],U.constraints[l]));else{var f=m==="dayOfWeek"?S(p):p;a.push(U._parseField(m,f,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;l++){var E=U.map[l];g[E]=a[l]}var y=U._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new U(g,o);function S(I){var R=I.split("#");if(R.length>1){var T=+R[R.length-1];if(/,/.test(I))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(I))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(I))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(R.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,R[0]}return I}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(m,p,f){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!U._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(m,p,f){return!p||m!==f[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};dT.exports=U});var mT=j((BQ,fT)=>{"use strict";var Uu=pT();function Fr(){}Fr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Uu.parse(e)};if(r.length>6)return{interval:Uu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Fr.parseExpression=function(e,r){return Uu.parse(e,r)};Fr.fieldsToExpression=function(e,r){return Uu.fieldsToExpression(e,r)};Fr.parseString=function(e){for(var r=e.split(`
|
|
5
|
-
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Fr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Fr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Fr.parseString(i.toString()))})};fT.exports=Fr});var qk={};P(qk,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>_p,BadRequestError:()=>wc,BudibaseError:()=>ps,Config:()=>bp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Op,DEFAULT_JOBS_TABLE_ID:()=>Ip,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>Pf,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>Dc,GlobalRole:()=>wp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>wr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>DT,NotFoundError:()=>Rc,RedisClient:()=>We,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UsageLimitError:()=>bc,UserStatus:()=>Wu,ViewName:()=>Gr,accounts:()=>di,auth:()=>fh,blacklist:()=>yh,cache:()=>Ia,configs:()=>nn,constants:()=>Dp,context:()=>Se,db:()=>Yr,docIds:()=>_f,docUpdates:()=>Th,encryption:()=>lh,env:()=>h,errors:()=>vc,events:()=>ys,features:()=>th,getPublicError:()=>Cc,init:()=>Vk,installation:()=>$c,locks:()=>ci,logging:()=>Oc,middleware:()=>ph,objectStore:()=>Yf,permissions:()=>Zm,platform:()=>Xo,plugins:()=>hh,queue:()=>lm,redis:()=>gh,roles:()=>zm,security:()=>wm,sessions:()=>Yc,setEnv:()=>Ro,sql:()=>bh,tenancy:()=>$k,timers:()=>Bc,userUtils:()=>im,users:()=>Es,utils:()=>ss,withEnv:()=>UT});module.exports=kI(qk);var nn={};P(nn,{analyticsEnabled:()=>Fc,generateConfigID:()=>Xc,getAIConfig:()=>tF,getConfig:()=>Gt,getDefaultGoogleConfig:()=>Fm,getGoogleConfig:()=>el,getGoogleDatasourceConfig:()=>Gm,getOIDCConfig:()=>Z0,getOIDCConfigById:()=>$m,getOIDCLogosDoc:()=>J0,getPlatformUrl:()=>Da,getSCIMConfig:()=>eF,getSMTPConfig:()=>X0,getSMTPConfigDoc:()=>N_,getSettingsConfig:()=>Bm,getSettingsConfigDoc:()=>qc,save:()=>Y0});var BI=["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"],Ch=[...BI],vh={"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,"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};var xl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(xl||{}),Rl=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))(Rl||{}),Fa=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Fa||{});var wl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(wl||{});var GI=W(require("lodash")),xr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(xr||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),fn=(e=>(e.RANGE="range",e))(fn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function ka(t){return Object.values(Ti).includes(t)}function Nh(t){return Object.values(xr).includes(t)}function Ph(t){return Object.values(Jt).includes(t)}function Ba(t){return Object.values(fn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Lh=t=>typeof t=="object"&&t._id&&t._rev;var Os=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Os||{});var Uh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACE_APPS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var WB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var xs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(xs||{});var Ga=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Ga||{});var $a=t=>t.hosting==="cloud";var Va=t=>t.authType==="sso";var D="_",Ge="\uFFF0",Rr=t=>`${t}${D}`,ye=(J=>(J.USER="us",J.GROUP="gr",J.WORKSPACE="workspace",J.CONFIG="config",J.TEMPLATE="template",J.APP="app",J.DEV="dev",J.APP_DEV="app_dev",J.APP_METADATA="app_metadata",J.ROLE="role",J.MIGRATIONS="migrations",J.DEV_INFO="devinfo",J.AUTOMATION_LOG="log_au",J.ACCOUNT_METADATA="acc_metadata",J.PLUGIN="plg",J.DATASOURCE="datasource",J.DATASOURCE_PLUS="datasource_plus",J.APP_BACKUP="backup",J.TABLE="ta",J.ROW="ro",J.AUTOMATION="au",J.LINK="li",J.WEBHOOK="wh",J.INSTANCE="inst",J.LAYOUT="layout",J.SCREEN="screen",J.QUERY="query",J.DEPLOYMENTS="deployments",J.METADATA="metadata",J.MEM_VIEW="view",J.USER_FLAG="flag",J.AUTOMATION_METADATA="meta_au",J.AUDIT_LOG="al",J.APP_MIGRATION_METADATA="_design/migrations",J.SCIM_LOG="scimlog",J.ROW_ACTIONS="ra",J.OAUTH2_CONFIG="oauth2",J.OAUTH2_CONFIG_LOG="oauth2log",J.AGENT_CHAT="agentchat",J.WORKSPACE_APP="workspace_app",J))(ye||{}),vG=Object.values(ye).sort((t,e)=>e.length-t.length);var wr=(e=>(e.USER_METADATA="ta_users",e))(wr||{}),bl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(bl||{}),NG=Object.values(bl).sort((t,e)=>e.length-t.length);var ee=(l=>(l.OBJECT="object",l.STRING="string",l.BOOLEAN="boolean",l.NUMBER="number",l.ARRAY="array",l.JSON="json",l.DATE="date",l.DATETIME="datetime",l.ATTACHMENT="attachment",l.LONGFORM="longform",l))(ee||{}),pe=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R))(pe||{}),It=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(It||{});var ue=(O=>(O.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",O.CREATE_ROW="CREATE_ROW",O.UPDATE_ROW="UPDATE_ROW",O.DELETE_ROW="DELETE_ROW",O.EXECUTE_BASH="EXECUTE_BASH",O.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",O.EXECUTE_SCRIPT="EXECUTE_SCRIPT",O.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",O.EXECUTE_QUERY="EXECUTE_QUERY",O.SERVER_LOG="SERVER_LOG",O.DELAY="DELAY",O.FILTER="FILTER",O.API_REQUEST="API_REQUEST",O.QUERY_ROWS="QUERY_ROWS",O.LOOP="LOOP",O.COLLECT="COLLECT",O.OPENAI="OPENAI",O.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",O.BRANCH="BRANCH",O.CLASSIFY_CONTENT="CLASSIFY_CONTENT",O.PROMPT_LLM="PROMPT_LLM",O.TRANSLATE="TRANSLATE",O.SUMMARISE="SUMMARISE",O.GENERATE_TEXT="GENERATE_TEXT",O.discord="discord",O.slack="slack",O.zapier="zapier",O.integromat="integromat",O.n8n="n8n",O))(ue||{}),Mh=[...Object.values(ue),...Object.values(It)];var Dl=(a=>(a.EMAIL="email",a.DOCUMENT="document",a.BLOG_POST="blog_post",a.CHAT_MESSAGE="chat_message",a.LETTER="letter",a.PROPOSAL="proposal",a.OTHER="other",a))(Dl||{}),Fh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"};var Cl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Cl||{});var vl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(vl||{});var Nl="bb_internal";var kh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function qa(t){return!!t.providerType}var Pl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Pl||{});var J$=Object.values(Pl);var tV=["rows","queries","automations"],rV=["queries","automations"];var ne;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ne||(ne={}));var Ul;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Ul||(Ul={}));var F=ne.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),br=t=>{switch(typeof t){case"undefined":return F.undefined;case"string":return F.string;case"number":return isNaN(t)?F.nan:F.number;case"boolean":return F.boolean;case"function":return F.function;case"bigint":return F.bigint;case"symbol":return F.symbol;case"object":return Array.isArray(t)?F.array:t===null?F.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?F.promise:typeof Map<"u"&&t instanceof Map?F.map:typeof Set<"u"&&t instanceof Set?F.set:typeof Date<"u"&&t instanceof Date?F.date:F.object;default:return F.unknown}},x=ne.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),WI=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,ne.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var Ii=(t,e)=>{let r;switch(t.code){case x.invalid_type:t.received===F.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ne.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${ne.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ne.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${ne.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:ne.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case x.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,ne.assertNever(t)}return{message:r}},$h=Ii;function QI(t){$h=t}function Wa(){return $h}var Qa=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},jI=[];function L(t,e){let r=Wa(),n=Qa({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ii?void 0:Ii].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return K;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return K;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},K=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Ml=t=>t.status==="aborted",Fl=t=>t.status==="dirty",bs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function ja(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Vh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var Rs,ws,ft=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Bh=(t,e)=>{if(bs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return br(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:br(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:br(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ds(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:br(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Bh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:br(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ds(i)?i:Promise.resolve(i));return Bh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:x.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Ze({schema:this,typeName:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return pt.create(this,this._def)}nullable(){return Vt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xt.create(this,this._def)}promise(){return vr.create(this,this._def)}or(e){return Sn.create([this,e],this._def)}and(e){return _n.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new Cs({typeName:H.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new bn({...Z(this._def),innerType:this,catchValue:r,typeName:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return vs.create(this,e)}readonly(){return Dn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},HI=/^c[^\s-]{8,}$/i,YI=/^[0-9a-z]+$/,KI=/^[0-9A-HJKMNP-TV-Z]{26}$/,JI=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,zI=/^[a-z0-9_-]{21}$/i,ZI=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,XI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,eO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ll,tO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,rO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,nO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,qh="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",iO=new RegExp(`^${qh}$`);function Wh(t){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`),e}function sO(t){return new RegExp(`^${Wh(t)}$`)}function Qh(t){let e=`${qh}T${Wh(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function oO(t,e){return!!((e==="v4"||!e)&&tO.test(t)||(e==="v6"||!e)&&rO.test(t))}var Dr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==F.string){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_type,expected:F.string,received:s.parsedType}),K}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?L(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&L(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")XI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ll||(Ll=new RegExp(eO,"u")),Ll.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")JI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")zI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")HI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")YI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")KI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"ulid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),L(i,{validation:"url",code:x.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"regex",code:x.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Qh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?iO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?sO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?ZI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?oO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?nO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):ne.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:x.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Dr.create=t=>{var e;return new Dr({checks:[],typeName:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function aO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var hn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==F.number){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_type,expected:F.number,received:s.parsedType}),K}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?ne.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:x.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),L(n,{code:x.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),L(n,{code:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?aO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),L(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:x.not_finite,message:s.message}),i.dirty()):ne.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&ne.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};hn.create=t=>new hn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==F.bigint){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_type,expected:F.bigint,received:s.parsedType}),K}let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),L(n,{code:x.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),L(n,{code:x.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),L(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ne.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};gn.create=t=>{var e;return new gn({checks:[],typeName:H.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var yn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==F.boolean){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.boolean,received:n.parsedType}),K}return $e(e.data)}};yn.create=t=>new yn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var En=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==F.date){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_type,expected:F.date,received:s.parsedType}),K}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_date}),K}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:x.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ne.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};En.create=t=>new En({checks:[],coerce:t?.coerce||!1,typeName:H.ZodDate,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==F.symbol){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.symbol,received:n.parsedType}),K}return $e(e.data)}};Oi.create=t=>new Oi({typeName:H.ZodSymbol,...Z(t)});var Tn=class extends X{_parse(e){if(this._getType(e)!==F.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.undefined,received:n.parsedType}),K}return $e(e.data)}};Tn.create=t=>new Tn({typeName:H.ZodUndefined,...Z(t)});var An=class extends X{_parse(e){if(this._getType(e)!==F.null){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.null,received:n.parsedType}),K}return $e(e.data)}};An.create=t=>new An({typeName:H.ZodNull,...Z(t)});var Cr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};Cr.create=t=>new Cr({typeName:H.ZodAny,...Z(t)});var Zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};Zt.create=t=>new Zt({typeName:H.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return L(r,{code:x.invalid_type,expected:F.never,received:r.parsedType}),K}};Ot.create=t=>new Ot({typeName:H.ZodNever,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==F.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.void,received:n.parsedType}),K}return $e(e.data)}};xi.create=t=>new xi({typeName:H.ZodVoid,...Z(t)});var Xt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==F.array)return L(r,{code:x.invalid_type,expected:F.array,received:r.parsedType}),K;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(L(r,{code:o?x.too_big:x.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(L(r,{code:x.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(L(r,{code:x.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new ft(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new ft(r,o,r.path,a)));return ke.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};Xt.create=(t,e)=>new Xt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...Z(e)});function Si(t){if(t instanceof je){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=pt.create(Si(n))}return new je({...t._def,shape:()=>e})}else return t instanceof Xt?new Xt({...t._def,type:Si(t.element)}):t instanceof pt?pt.create(Si(t.unwrap())):t instanceof Vt?Vt.create(Si(t.unwrap())):t instanceof $t?$t.create(t.items.map(e=>Si(e))):t}var je=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=ne.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==F.object){let c=this._getOrReturnCtx(e);return L(c,{code:x.invalid_type,expected:F.object,received:c.parsedType}),K}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new ft(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(L(i,{code:x.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new ft(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,m=await l.value;c.push({key:d,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return ne.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return ne.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Si(this)}partial(e){let r={};return ne.objectKeys(this.shape).forEach(n=>{let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}),new t({...this._def,shape:()=>r})}required(e){let r={};return ne.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof pt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return jh(ne.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});var Sn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return L(r,{code:x.invalid_union,unionErrors:o}),K}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return L(r,{code:x.invalid_union,unionErrors:a}),K}}get options(){return this._def.options}};Sn.create=(t,e)=>new Sn({options:t,typeName:H.ZodUnion,...Z(e)});var zt=t=>t instanceof In?zt(t.schema):t instanceof Ze?zt(t.innerType()):t instanceof On?[t.value]:t instanceof xn?t.options:t instanceof Rn?ne.objectValues(t.enum):t instanceof wn?zt(t._def.innerType):t instanceof Tn?[void 0]:t instanceof An?[null]:t instanceof pt?[void 0,...zt(t.unwrap())]:t instanceof Vt?[null,...zt(t.unwrap())]:t instanceof Cs||t instanceof Dn?zt(t.unwrap()):t instanceof bn?zt(t._def.innerType):[],Ha=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.object)return L(r,{code:x.invalid_type,expected:F.object,received:r.parsedType}),K;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(L(r,{code:x.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),K)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function kl(t,e){let r=br(t),n=br(e);if(t===e)return{valid:!0,data:t};if(r===F.object&&n===F.object){let i=ne.objectKeys(e),s=ne.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=kl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===F.array&&n===F.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=kl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===F.date&&n===F.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _n=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Ml(s)||Ml(o))return K;let a=kl(s.value,o.value);return a.valid?((Fl(s)||Fl(o))&&r.dirty(),{status:r.value,value:a.data}):(L(n,{code:x.invalid_intersection_types}),K)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:H.ZodIntersection,...Z(r)});var $t=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.array)return L(n,{code:x.invalid_type,expected:F.array,received:n.parsedType}),K;if(n.data.length<this._def.items.length)return L(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),K;!this._def.rest&&n.data.length>this._def.items.length&&(L(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new ft(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};$t.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new $t({items:t,typeName:H.ZodTuple,rest:null,...Z(e)})};var Ya=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.object)return L(n,{code:x.invalid_type,expected:F.object,received:n.parsedType}),K;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new ft(n,a,n.path,a)),value:o._parse(new ft(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?ke.mergeObjectAsync(r,i):ke.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:H.ZodRecord,...Z(n)}):new t({keyType:Dr.create(),valueType:e,typeName:H.ZodRecord,...Z(r)})}},Ri=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.map)return L(n,{code:x.invalid_type,expected:F.map,received:n.parsedType}),K;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new ft(n,a,n.path,[c,"key"])),value:s._parse(new ft(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return K;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return K;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ri.create=(t,e,r)=>new Ri({valueType:e,keyType:t,typeName:H.ZodMap,...Z(r)});var wi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.set)return L(n,{code:x.invalid_type,expected:F.set,received:n.parsedType}),K;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(L(n,{code:x.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(L(n,{code:x.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return K;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new ft(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};wi.create=(t,e)=>new wi({valueType:t,minSize:null,maxSize:null,typeName:H.ZodSet,...Z(e)});var Ka=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.function)return L(r,{code:x.invalid_type,expected:F.function,received:r.parsedType}),K;function n(a,u){return Qa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Wa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return Qa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Wa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof vr){let a=this;return $e(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw c.addIssue(i(d,p)),c})})}else{let a=this;return $e(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:$t.create(e).rest(Zt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||$t.create([]).rest(Zt.create()),returns:r||Zt.create(),typeName:H.ZodFunction,...Z(n)})}},In=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};In.create=(t,e)=>new In({getter:t,typeName:H.ZodLazy,...Z(e)});var On=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return L(r,{received:r.data,code:x.invalid_literal,expected:this._def.value}),K}return{status:"valid",value:e.data}}get value(){return this._def.value}};On.create=(t,e)=>new On({value:t,typeName:H.ZodLiteral,...Z(e)});function jh(t,e){return new xn({values:t,typeName:H.ZodEnum,...Z(e)})}var xn=class t extends X{constructor(){super(...arguments),Rs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{expected:ne.joinValues(n),received:r.parsedType,code:x.invalid_type}),K}if(ja(this,Rs,"f")||Vh(this,Rs,new Set(this._def.values),"f"),!ja(this,Rs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{received:r.data,code:x.invalid_enum_value,options:n}),K}return $e(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};Rs=new WeakMap;xn.create=jh;var Rn=class extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){let r=ne.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==F.string&&n.parsedType!==F.number){let i=ne.objectValues(r);return L(n,{expected:ne.joinValues(i),received:n.parsedType,code:x.invalid_type}),K}if(ja(this,ws,"f")||Vh(this,ws,new Set(ne.getValidEnumValues(this._def.values)),"f"),!ja(this,ws,"f").has(e.data)){let i=ne.objectValues(r);return L(n,{received:n.data,code:x.invalid_enum_value,options:i}),K}return $e(e.data)}get enum(){return this._def.values}};ws=new WeakMap;Rn.create=(t,e)=>new Rn({values:t,typeName:H.ZodNativeEnum,...Z(e)});var vr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.promise&&r.common.async===!1)return L(r,{code:x.invalid_type,expected:F.promise,received:r.parsedType}),K;let n=r.parsedType===F.promise?r.data:Promise.resolve(r.data);return $e(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};vr.create=(t,e)=>new vr({type:t,typeName:H.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{L(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return K;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?K:u.status==="dirty"||r.value==="dirty"?_i(u.value):u});{if(r.value==="aborted")return K;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?K:a.status==="dirty"||r.value==="dirty"?_i(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?K:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?K:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!bs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>bs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);ne.assertNever(i)}};Ze.create=(t,e,r)=>new Ze({schema:t,typeName:H.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...Z(r)});var pt=class extends X{_parse(e){return this._getType(e)===F.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pt.create=(t,e)=>new pt({innerType:t,typeName:H.ZodOptional,...Z(e)});var Vt=class extends X{_parse(e){return this._getType(e)===F.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Vt.create=(t,e)=>new Vt({innerType:t,typeName:H.ZodNullable,...Z(e)});var wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===F.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var bn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Ds(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var bi=class extends X{_parse(e){if(this._getType(e)!==F.nan){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.nan,received:n.parsedType}),K}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:H.ZodNaN,...Z(t)});var uO=Symbol("zod_brand"),Cs=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},vs=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?K:s.status==="dirty"?(r.dirty(),_i(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?K:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:H.ZodPipeline})}},Dn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(bs(i)&&(i.value=Object.freeze(i.value)),i);return Ds(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Dn.create=(t,e)=>new Dn({innerType:t,typeName:H.ZodReadonly,...Z(e)});function Hh(t,e={},r){return t?Cr.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):Cr.create()}var cO={object:je.lazycreate},H;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(H||(H={}));var lO=(t,e={message:`Input not instance of ${t.name}`})=>Hh(r=>r instanceof t,e),Yh=Dr.create,Kh=hn.create,dO=bi.create,pO=gn.create,Jh=yn.create,fO=En.create,mO=Oi.create,hO=Tn.create,gO=An.create,yO=Cr.create,EO=Zt.create,TO=Ot.create,AO=xi.create,SO=Xt.create,_O=je.create,IO=je.strictCreate,OO=Sn.create,xO=Ha.create,RO=_n.create,wO=$t.create,bO=Ya.create,DO=Ri.create,CO=wi.create,vO=Ka.create,NO=In.create,PO=On.create,LO=xn.create,UO=Rn.create,MO=vr.create,Gh=Ze.create,FO=pt.create,kO=Vt.create,BO=Ze.createWithPreprocess,GO=vs.create,$O=()=>Yh().optional(),VO=()=>Kh().optional(),qO=()=>Jh().optional(),WO={string:t=>Dr.create({...t,coerce:!0}),number:t=>hn.create({...t,coerce:!0}),boolean:t=>yn.create({...t,coerce:!0}),bigint:t=>gn.create({...t,coerce:!0}),date:t=>En.create({...t,coerce:!0})},QO=K,re=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:QI,getErrorMap:Wa,makeIssue:Qa,EMPTY_PATH:jI,addIssueToContext:L,ParseStatus:ke,INVALID:K,DIRTY:_i,OK:$e,isAborted:Ml,isDirty:Fl,isValid:bs,isAsync:Ds,get util(){return ne},get objectUtil(){return Ul},ZodParsedType:F,getParsedType:br,ZodType:X,datetimeRegex:Qh,ZodString:Dr,ZodNumber:hn,ZodBigInt:gn,ZodBoolean:yn,ZodDate:En,ZodSymbol:Oi,ZodUndefined:Tn,ZodNull:An,ZodAny:Cr,ZodUnknown:Zt,ZodNever:Ot,ZodVoid:xi,ZodArray:Xt,ZodObject:je,ZodUnion:Sn,ZodDiscriminatedUnion:Ha,ZodIntersection:_n,ZodTuple:$t,ZodRecord:Ya,ZodMap:Ri,ZodSet:wi,ZodFunction:Ka,ZodLazy:In,ZodLiteral:On,ZodEnum:xn,ZodNativeEnum:Rn,ZodPromise:vr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:Vt,ZodDefault:wn,ZodCatch:bn,ZodNaN:bi,BRAND:uO,ZodBranded:Cs,ZodPipeline:vs,ZodReadonly:Dn,custom:Hh,Schema:X,ZodSchema:X,late:cO,get ZodFirstPartyTypeKind(){return H},coerce:WO,any:yO,array:SO,bigint:pO,boolean:Jh,date:fO,discriminatedUnion:xO,effect:Gh,enum:LO,function:vO,instanceof:lO,intersection:RO,lazy:NO,literal:PO,map:DO,nan:dO,nativeEnum:UO,never:TO,null:gO,nullable:kO,number:Kh,object:_O,oboolean:qO,onumber:VO,optional:FO,ostring:$O,pipeline:GO,preprocess:BO,promise:MO,record:bO,set:CO,strictObject:IO,string:Yh,symbol:mO,transformer:Gh,tuple:wO,undefined:hO,union:OO,unknown:EO,void:AO,NEVER:QO,ZodIssueCode:x,quotelessJson:WI,ZodError:ze});var Cn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Cn||{}),Ja=(r=>(r.STRING="string",r.NUMBER="number",r))(Ja||{});var eu=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),zh=re.record(eu,re.string()),za=re.record(eu,re.any()),Za=re.record(eu,re.union([re.any().array(),re.string()])),Zh=re.lazy(()=>re.object({conditions:re.array(re.object(Xh))})),Xa=re.union([re.string(),re.number()]),Xh={string:zh.optional(),fuzzy:zh.optional(),range:re.record(eu,re.union([re.object({high:Xa,low:Xa}),re.object({high:Xa}),re.object({low:Xa})])).optional(),equal:za.optional(),notEqual:za.optional(),empty:za.optional(),notEmpty:za.optional(),oneOf:Za.optional(),contains:Za.optional(),notContains:Za.optional(),containsAny:Za.optional(),$and:Zh.optional(),$or:Zh.optional()},zV=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Ai).optional(),...Xh}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(Cn).optional(),sortType:re.nativeEnum(Ja).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Dp={};P(Dp,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>_p,Config:()=>bp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Op,DEFAULT_JOBS_TABLE_ID:()=>Ip,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DocumentType:()=>ye,GlobalRole:()=>wp,Header:()=>Xe,InternalTable:()=>wr,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>DT,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UserStatus:()=>Wu,ViewName:()=>Gr});var hW={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Xe=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Xe||{});var TW={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"],json:["json","array","attachment","attachment_single","bb_reference","signature_single"]};var xW="darkest",RW="light",YO=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var et={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"}},eg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Di="datasource_internal_bb_default";var kr={};P(kr,{ColumnSplitter:()=>ap,NoEmptyFilterStrings:()=>ST,buildQuery:()=>_T,cleanupQuery:()=>lp,fixupFilterArrays:()=>pp,getKeyNumbering:()=>dp,getValidOperatorsForType:()=>AC,hasFilters:()=>up,limit:()=>OT,recurseLogicalOperators:()=>cp,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>IC,sort:()=>IT,splitFiltersArray:()=>ru});var Qi=W(tg());var Ci={};P(Ci,{filterValueToLabel:()=>ex,hasSchema:()=>tx,isSupportedUserSearch:()=>ng,parallelForeach:()=>XO,processSearchFilters:()=>$l,toMap:()=>nx,trimOtherProps:()=>rx,unreachable:()=>ZO});var rg=W(require("lodash")),zO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function ZO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function XO(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function ex(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function tx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function rx(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function ng(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(ka(s)){for(let c of t[s].conditions)if(!ng(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function $l(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ru(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=rg.default.pick(i,zO);return s.field=tu(s.field),s})}]}}function nx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Ht={};P(Ht,{cancelableTimeout:()=>ig,cron:()=>tp,deepGet:()=>Vl,duplicateName:()=>gC,getSequentialName:()=>yC,getUserColor:()=>sx,getUserInitials:()=>ix,getUserLabel:()=>ox,isGoogleSheets:()=>ux,isSQL:()=>cx,lists:()=>op,retry:()=>lx,roles:()=>sp,schema:()=>Ao,views:()=>ip,wait:()=>ql,withTimeout:()=>ax});var Vl=(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},ix=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"},sx=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%)`},ox=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function ig(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function ax(t,e){let[r,n]=ig(t),i=await Promise.race([e(),r]);return n(),i}function ux(t){return t==="GOOGLE_SHEETS"}function cx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function ql(t){return new Promise(e=>setTimeout(e,t))}async function lx(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 s=1.5**i*1e3*(Math.random()+.5);await ql(s);try{return await t()}catch(o){n=o}}throw n}var tp={};P(tp,{getNextExecutionDates:()=>tC,validate:()=>rC});var gT=W(qt()),yT=W(mT()),hT="(Input cron: ",XD={"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 eC(t){let e=[];for(let r of t){r.includes(hT)&&(r=r.split(hT)[0].trim());for(let[n,i]of Object.entries(XD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function tC(t,e=4){let r=yT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function rC(t){let e=(0,gT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:eC(e.getError())}}var Ao={};P(Ao,{decodeNonAscii:()=>rp,encodeNonAscii:()=>sC,isDeprecatedSingleUserColumn:()=>nC,isNumeric:()=>oC,isRequired:()=>iC});function nC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function iC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function sC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function rp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function oC(t){return t.type==="number"||t.type==="bigint"}var ip={};P(ip,{basicFields:()=>dC,calculationFields:()=>lC,hasCalculationFields:()=>cC,isBasicViewField:()=>aC,isCalculationField:()=>So,isCalculationView:()=>uC,isV2:()=>pC,isVisible:()=>ET});var np=require("lodash");function So(t){return"calculationType"in t}function aC(t){return!So(t)}function uC(t){return t.type==="calculation"}function cC(t){return Object.values(t.schema||{}).some(So)}function lC(t){return(0,np.pickBy)(t.schema||{},So)}function ET(t){return t.visible!==!1}function dC(t,e){let{visible:r=!0}=e||{};return(0,np.pickBy)(t.schema||{},n=>!So(n)&&(!r||ET(n)))}function pC(t){return t.version===2}var sp={};P(sp,{checkForRoleInheritanceLoops:()=>mC});function fC(t){return`role${D}${t}`}function mC(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=fC(s);if(n.has(s)||n.has(o))return!0;if(r.has(s)||r.has(o))return!1;n.add(s);let a=e.get(o)||e.get(s);if(!a)return n.delete(s),!1;let u=Array.isArray(a.inherits)?a.inherits:[a.inherits];for(let c of u)if(c&&i(c))return!0;return n.delete(s),r.add(s),!1}return!!t.find(s=>i(s._id))}var op={};P(op,{punctuateList:()=>hC});function hC(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]}var gC=(t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),s=[];e.filter(a=>{if(a===n)return!0;let u=a.match(i);return u?(s.push(parseInt(u[1])),!0):!1}),s.sort((a,u)=>a-u);let o;if(s.length===0)o=1;else{for(let a=0;a<s.length;a++)if(s[a]!==a+1){o=a+1;break}o||(o=s.length+1)}return`${n} ${o}`},yC=(t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let s=e.trim(),o=n?`${e}1`:s;if(!t?.length)return o;let a=0;return t.forEach(u=>{let c=r?.(u)??u;if(typeof c!="string"||!c.startsWith(s))return;let l=c.split(s);if(l.length!==2)return;l[1].trim()===""&&(l[1]="1");let d=parseInt(l[1]);d>a&&(a=d)}),a===0?o:`${e}${i}${a+1}`};var Kn=require("lodash");var EC=/{{([^{].*?)}}/g,AT=Object.values(Ti),TC=[...Object.values(xr),...Object.values(Jt),...Object.values(fn)],AC=(t,e,r)=>{let n=et,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||Ao.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"?o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]:a==="barcodeqr"&&(o=i);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},ST=[et.StartsWith.value,et.Like.value,et.Equals.value,et.NotEquals.value,et.Contains.value,et.NotContains.value,et.ContainsAny.value,et.In.value];function cp(t,e){for(let r of AT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var lp=t=>{for(let e of ST)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,s]of Object.entries(t[r]))(s==null||s===""||SC(s))&&delete t[e][i]}return t=cp(t,lp),t};function SC(t){return Array.isArray(t)&&t.length===0}var tu=t=>dp(t).key,dp=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}},ap=class{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}=dp(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=rp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function _C(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:s}=t,{value:o}=t;(r==="empty"||r==="notEmpty")&&(o=null);let a=typeof o=="string"&&(o.match(EC)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;if(typeof o=="string")o=new Date(o).toISOString();else if(Ba(r))return e[r]??={},e[r][n]=o,e}break;case"number":typeof o=="string"&&!a&&(r==="oneOf"?o=o.split(",").map(parseFloat):o=parseFloat(o));break;case"boolean":o=`${o}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof o=="string"&&(o=o.split(","));break}if(Ba(r)){let c=eg[s]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?c.min:"0000-00-00T00:00:00.000Z",high:i==="number"?c.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],high:o};else if(r==="rangeLow"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],low:o};else if(Nh(r)||Ph(r)||Ba(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function ru(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}function _T(t){if(!t)return{};if(Array.isArray(t)&&(t=$l(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=TT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=_T(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=ru(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=TT(n.logicalOperator)),{[a]:{conditions:o.map(_C).filter(u=>u)}}})},e}function TT(t){return t==="all"?"$and":"$or"}function pp(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Kn.isPlainObject)(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(s=>s.trim()):r[n]=[i]}}return cp(t,pp),t}function IC(t,e){let r=Mu(t,e.query);e.sort&&(r=IT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=OT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Mu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=lp(e),e=pp(e),!up(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[b,k]of Object.entries(e[T]||{})){let de=ka(T)?B:Vl(B,tu(b)),ln=_(de,k);if(e.allOr&&ln)return!0;if(!e.allOr&&!ln)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,Kn.isPlainObject)(_.low)&&(0,Kn.isEmpty)(_.low)&&(_.low=void 0),(0,Kn.isPlainObject)(_.high)&&(0,Kn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let k=+_.low,de=+_.high;if(!isNaN(k)&&!isNaN(de))return B>=k&&B<=de;if(isNaN(k)){if(!isNaN(de))return B<=de}else return B>=k}let b=(0,Qi.default)(T);if(b.isValid()){let k=(0,Qi.default)(_.low||"0000-00-00T00:00:00.000Z"),de=(0,Qi.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&de.isValid())return b.isAfter(k)&&b.isBefore(de)||b.isSame(k)||b.isSame(de);if(k.isValid())return b.isAfter(k)||b.isSame(k);if(de.isValid())return b.isBefore(de)||b.isSame(de)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let b of T)if(o(b,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,Qi.default)(T);if(B.isValid()){let b=(0,Qi.default)(_);if(b.isValid())return B.isSame(b)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),f=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(b=>parseFloat(b)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](b=>o(_,b)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:f("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(f("every"))(T,_)),y=r("containsAny",f("some")),S=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Mu([T],B).length)return!1;return!0}),I=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Mu([T],{...B,allOr:!0}).length)return!0;return!1}),R=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:S,$or:I},B=Object.entries(e||{}).filter(([b,k])=>!["allOr","onEmptyFilter"].includes(b)&&k&&Object.keys(k).length>0).map(([b])=>_[b]?.(T)??!1);return up(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}function IT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function OT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var up=t=>{if(!t)return!1;let e=r=>{for(let n of AT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of TC){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var ot={};P(ot,{applications:()=>mp,automations:()=>hp,screens:()=>Ap,users:()=>Tp});var mp={};P(mp,{getDevAppID:()=>OC,getProdAppID:()=>Fu});var fp=Rr("app"),_o=Rr("app_dev");function OC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(_o))return t;let e=t.split(fp);e.shift();let r=e.join(fp);return`${_o}${r}`}function Fu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(_o))return t;let e=t.split(_o);e.shift();let r=e.join(_o);return`${fp}${r}`}var hp={};P(hp,{isAppAction:()=>wC,isRowAction:()=>xC,isWebhookAction:()=>RC});function xC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function RC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function wC(t){return t.definition.trigger?.stepId==="APP"}var Tp={};P(Tp,{canCreateApps:()=>bC,containsUserID:()=>LC,getGlobalUserID:()=>PC,getUserAppGroups:()=>UC,getUserGroups:()=>Ep,hasAdminPermissions:()=>yp,hasAppBuilderPermissions:()=>Gu,hasAppCreatorPermissions:()=>xT,hasBuilderPermissions:()=>vC,hasCreatorPermissions:()=>$u,isAdmin:()=>Bu,isAdminOrBuilder:()=>DC,isAdminOrGlobalBuilder:()=>CC,isBuilder:()=>gp,isCreator:()=>NC,isGlobalBuilder:()=>ku,userAppAccessList:()=>MC});var Br=W(require("lodash/fp"));function gp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Fu(e))):!1}function ku(t){return gp(t)&&!Gu(t)||Bu(t)}function bC(t){return ku(t)||$u(t)}function Bu(t){return t?yp(t):!1}function DC(t,e){return gp(t,e)||Bu(t)}function CC(t){return ku(t)||Bu(t)}function Gu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function xT(t){return t?Br.flow(Br.get("roles"),Br.values,Br.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function vC(t){return t?t.builder?.global||Gu(t)||$u(t):!1}function yp(t){return t?!!t.admin?.global:!1}function $u(t){return t?!!t.builder?.creator:!1}function NC(t){return t?ku(t)||yp(t)||$u(t)||Gu(t)||xT(t):!1}function PC(t){if(typeof t!="string")return t;let e=`ro${D}ta_users${D}`;return t.startsWith(e)?t.split(e)[1]:t}function LC(t){return typeof t!="string"?!1:t.includes(`us${D}`)}function Ep(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function UC(t,e,r){let n=Fu(t);return Ep(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function MC(t,e){let n=Ep(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Ap={};P(Ap,{findInSettings:()=>FC});function FC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var Mj={string:!0,longform:!0,options:!0,number:!0,datetime:!0,formula:!0,ai:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!1,array:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,json:!1,bb_reference:!1,bb_reference_single:!1},Fj={string:!0,longform:!0,options:!0,number:!0,datetime:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!0,json:!0,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,array:!1,link:!1,bb_reference:!1,bb_reference_single:!1},kj={number:!0,json:!0,datetime:!0,longform:!0,string:!0,options:!0,array:!0,bigint:!0,boolean:!0,auto:!1,internal:!1,barcodeqr:!1,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,bb_reference:!0,bb_reference_single:!0};var jj={name:"Bash Scripting",tagline:"Execute a bash command",icon:"JourneyEvent",description:"Run a bash script",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"EXECUTE_BASH",inputs:{},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{stdout:{type:"string",description:"Standard output of your bash command or script"},success:{type:"boolean",description:"Whether the command was successful"}},required:["stdout"]}}};var Kj={name:"Branch",icon:"Branch3",tagline:"Branch from this step",description:"Branching",stepId:"BRANCH",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{branches:{properties:{name:{type:"string"},condition:{customType:"filters"}}},children:{type:"array"}},required:["conditions"]},outputs:{properties:{branchName:{type:"string"},status:{type:"string",description:"Branch result"},branchId:{type:"string",description:"Branch ID"},success:{type:"boolean",description:"Branch success"}},required:["output"]}},type:"LOGIC"};var Zj={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"Collection",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var tH={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var iH={name:"Delay",icon:"Clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var aH={description:"Delete a row from your database",icon:"TableRowRemoveCenter",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var lH={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var fH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"Data",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var gH={name:"API Request",tagline:"Execute a REST request",icon:"GlobeGrid",description:"Execute a HTTP query from a REST datasource",type:"ACTION",stepId:"API_REQUEST",internal:!0,new:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var TH={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var _H={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!1,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var KC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},xH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Cl),pretty:Object.values(KC)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var bH={name:"Looping",icon:"Reuse",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var vH={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var LH={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(vl)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var RT=(i=>(i.GPT_4O_MINI="gpt-4o-mini",i.GPT_4O="gpt-4o",i.GPT_4="gpt-4",i.GPT_35_TURBO="gpt-3.5-turbo",i))(RT||{}),FH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(RT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var wT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(wT||{}),GH={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(wT),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var rv={ascending:"Ascending",descending:"Descending"},qH={description:"Query rows from the database",icon:"Search",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(Cn),pretty:Object.values(rv)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var jH={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"Email",name:"Send Email (SMTP)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SEND_EMAIL_SMTP",inputs:{},schema:{inputs:{properties:{to:{type:"string",title:"Send To"},from:{type:"string",title:"Send From"},cc:{type:"string",title:"CC"},bcc:{type:"string",title:"BCC"},subject:{type:"string",title:"Email Subject"},contents:{type:"longform",title:"Message",description:"Use markdown or HTML for rich text formatting: **bold**, _italics_, # Headings, * Bullets, <br> for line breaks, and more."},addInvite:{type:"boolean",title:"Add calendar invite"},startTime:{type:"date",title:"Start Time",dependsOn:"addInvite"},endTime:{type:"date",title:"End Time",dependsOn:"addInvite"},summary:{type:"string",title:"Meeting Summary",dependsOn:"addInvite"},location:{type:"string",title:"Location",dependsOn:"addInvite"},attachments:{type:"attachment",customType:"multi_attachments",title:"Attachments"}},required:["to","from","subject","contents"]},outputs:{properties:{success:{type:"boolean",description:"Whether the email was sent"},response:{type:"object",description:"A response from the email client, this may be an error"}},required:["success"]}}};var KH={name:"Backend log",tagline:"Console log a value in the backend",icon:"Monitoring",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var ZH={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var tY={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"Sync",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"Automation Fields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var iY={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"Refresh",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var aY={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var lY={name:"Classify Text",icon:"PageTag",tagline:"Classify text into predefined categories using AI",description:"Analyzes text and assigns it to one of the categories you provide.",stepId:"CLASSIFY_CONTENT",internal:!0,inputs:{},schema:{inputs:{properties:{textInput:{type:"longform",title:"Text",description:"The text content you want the AI to classify."},categoryItems:{type:"array",customType:"categories",title:"Categories",description:"Add categories for the AI to use when classifying text."}},required:["textInput","categoryItems"]},outputs:{properties:{category:{type:"string",description:"The category assigned by the AI."},success:{type:"boolean",description:"Whether the classification was successful."}},required:["category","success"]}},type:"ACTION"};var fY={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var gY={name:"Translate",tagline:"Translate text to a different language",icon:"GlobeGrid",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var bT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(bT||{}),TY={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(bT)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var _Y={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(Dl),pretty:Object.values(Fh)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var gv={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var Ev={name:"Cron Trigger",event:"cron:trigger",icon:"Clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var Av={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var _v={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Ov={name:"Row Updated",event:"row:update",icon:"Refresh",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Rv={name:"Webhook",event:"web:trigger",icon:"Send",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var bv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var Vu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Vu||{}),Gr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(Gr||{}),Hi={by_email2:["by_email"]},Te={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"}},yt=Rr("app"),qu=Rr("app_dev"),Et=qu,Sp="internal",_p="budibase",ar="_design/sqlite",Ip="ta_bb_jobs",Op="ta_bb_inventory",xp="ta_bb_expenses",Rp="ta_bb_employee";var Wu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Wu||{}),Jn=(o=>(o.Auth="budibase:auth",o.Init="budibase:init",o.ACCOUNT_RETURN_URL="budibase:account:returnurl",o.DatasourceAuth="budibase:datasourceauth",o.OIDC_CONFIG="budibase:oidc:config",o.FeatureFlags="budibase:featureflags",o))(Jn||{}),wp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(wp||{}),bp=(u=>(u.SETTINGS="settings",u.ACCOUNT="account",u.SMTP="smtp",u.GOOGLE="google",u.OIDC="oidc",u.OIDC_LOGOS="logos_oidc",u.SCIM="scim",u.AI="AI",u))(bp||{}),DT=new Date(-2147483647e3),Qu=new Date(2147483647e3),Ae="default";var Ia={};P(Ia,{CacheKey:()=>Ce,TTL:()=>ii,app:()=>jo,bustCache:()=>ts,destroy:()=>Vo,docWritethrough:()=>Mm,generic:()=>qo,get:()=>si,invite:()=>rm,keys:()=>uc,passwordReset:()=>Lm,store:()=>lr,user:()=>sn,withCache:()=>jr,withCacheWithDynamicTTL:()=>nA,writethrough:()=>Pm});var qo={};P(qo,{CacheKey:()=>Ce,TTL:()=>ii,bustCache:()=>ts,destroy:()=>Vo,get:()=>si,keys:()=>uc,store:()=>lr,withCache:()=>jr,withCacheWithDynamicTTL:()=>nA});var Se={};P(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>vo,doInAppContext:()=>yN,doInAppMigrationContext:()=>TN,doInAutomationContext:()=>pN,doInContext:()=>Kp,doInEnvironmentContext:()=>SN,doInFeatureFlagOverrideContext:()=>rf,doInIPContext:()=>Zp,doInIdentityContext:()=>Oo,doInLicenseContext:()=>mN,doInScimContext:()=>_N,doInSelfHostTenantUsingCloud:()=>fN,doInTenant:()=>qe,ensureSnippetContext:()=>XT,getAppDB:()=>Xi,getAppId:()=>Le,getAuditLogDBName:()=>JT,getAuditLogsDB:()=>ON,getAutomationId:()=>Jp,getCurrentContext:()=>Zn,getDevAppDB:()=>RN,getEnvironmentVariables:()=>IN,getFeatureFlagOverrides:()=>tf,getFeatureFlags:()=>Xp,getGlobalDB:()=>oe,getGlobalDBName:()=>cr,getIP:()=>zp,getIdentity:()=>ur,getLicense:()=>hN,getPlatformURL:()=>Yp,getProdAppDB:()=>xN,getProdAppId:()=>AN,getScimDBName:()=>uN,getSelfHostCloudDB:()=>gN,getTableForView:()=>wN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>Q,identity:()=>Io,isMultiTenant:()=>qr,isScim:()=>Lt,isSelfHostUsingCloud:()=>zT,isTenancyEnabled:()=>lN,isTenantIdSet:()=>cN,setFeatureFlags:()=>ef,setTableForView:()=>bN});var Io={};P(Io,{doInAccountContext:()=>Nv,doInIdentityContext:()=>vp,doInUserContext:()=>Np,getAccountUserId:()=>CT,getIdentity:()=>Cp});function Cp(){return ur()}function vp(t,e){return Oo(t,e)}function Np(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return vp(n,r)}function Nv(t,e){let r=CT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return vp(i,e)}function CT(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Yu=require("fs");var PT=require("lodash"),Pp=require("crypto"),xo=require("path"),Pv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,xo.resolve)((0,xo.join)(__dirname,"..","..","..")),vT=!1;!vT&&Hu()&&!Lp()&&(require("dotenv").config({path:(0,xo.join)(Pv,".env")}),vT=!0);function Lp(){return LT()}function LT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Hu(){return process.env.NODE_ENV!=="production"}function Lv(t){if(t)return parseInt(t)}var Yi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},NT=!!parseInt(process.env.SELF_HOSTED||"");function Uv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Mv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Fv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Yu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Yu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Hu()&&!Lp())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:""}}}function kv(){return vt.SERVICE_TYPE==="worker"}function Bv(){return vt.SERVICE_TYPE==="apps"}function Gv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}function $v(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}var vt={isTest:Lp,isJest:LT,isDev:Hu,isWorker:kv,isApps:Bv,isQA:Gv,isProd:()=>!Hu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Pp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Pp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Uv(),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_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,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",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:NT,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||Yi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:$v(),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:Mv(),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:NT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Fv(),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,vt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,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:Lv(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,PT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function UT(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var MT=["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"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var FT=require("async_hooks"),we=class t{static{this.storage=new FT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Up="No app provided";function $r(t){if(!t)throw Up;return t.startsWith(Et)}function Vv(t){if(!t)throw Up;return t.startsWith(yt)&&!$r(t)}function wo(t){if(!t)throw Up;return $r(t.appId)}function Ku(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var qv=Ku;function at(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function Wv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=Mp(t),r,n;if(e.auth?.username)r=e.auth.username;else if(h.COUCH_DB_USERNAME)r=h.COUCH_DB_USERNAME;else if(!h.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(h.COUCH_DB_PASSWORD)n=h.COUCH_DB_PASSWORD;else if(!h.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),s=h.COUCH_DB_SQL_URL;if(h.isDev()&&!s)s="http://localhost:4006";else if(!s&&e.url){let o=new URL(e.url);s=e.url.replace(o.port,"4984")}return{url:e.url,sqlUrl:Mp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Mp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var YT=W(require("@budibase/nano"));var kT=W(require("node-fetch"));function Ju(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function BT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await bo({url:s,cookie:i,method:e,body:r})}async function bo({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,kT.default)(Ju(encodeURI(t)),i)}async function zu(t,e="GET",r){let n=await BT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var zn=W(require("pouchdb"));var GT,$T=!1,Fp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),zn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");zn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");zn.default.plugin(i.plugin),zn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");zn.default.plugin(i)}return zn.default.defaults(n)};function Zu(t){GT=Fp(t),$T=!0}var jv=()=>{if(!$T)throw new Error("init has not been called")};function Tt(t,e){jv();let r=new GT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Do(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var VT=require("uuid");function ge(){return(0,VT.v4)().replace(/-/g,"")}var xe=W(require("dd-trace")),Ki=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.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 xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.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 xe.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 xe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return xe.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 xe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.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 xe.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 xe.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 xe.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 xe.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 xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.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 xe.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 xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Qp={};P(Qp,{breakExternalTableId:()=>Gp,breakRowIdField:()=>sN,buildExternalTableId:()=>Xv,convertRowId:()=>iN,encodeTableId:()=>eN,encodeViewId:()=>tN,extractDate:()=>Vp,generateRowIdField:()=>rN,getNativeSql:()=>Ji,isExternalTable:()=>Bp,isExternalTableID:()=>Xu,isInternalTableID:()=>Zv,isRowId:()=>nN,isValidFilter:()=>tc,isValidISODateString:()=>ec,isValidISODateStringWithoutTimezone:()=>$p,isValidTime:()=>qp,sqlLog:()=>Co,validateManyToMany:()=>Wp});var kp=`${D}${D}`,WT=/^\[.*]$/g,Hv=encodeURIComponent(" "),Yv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Kv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Jv=/(\d{4}-\d{2}-\d{2})/,zv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Xu(t){return t.startsWith("datasource"+D)}function Zv(t){return!Xu(t)}function Ji(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}}function Bp(t){return t?.sourceId&&t.sourceId.includes("datasource"+D)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&Xu(t._id))}function Xv(t,e){return`${t}${kp}${encodeURIComponent(e)}`}function eN(t){return Xu(t)?encodeURIComponent(t):t}function tN(t){return encodeURIComponent(t)}function Gp(t){let e=t.split(kp),r=e.shift(),n=e.join(kp);if(n.includes(Hv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function rN(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,"'"))}function nN(t){return Array.isArray(t)||typeof t=="string"&&t.match(WT)!=null}function iN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(WT)!=null?t.substring(1,t.length-1):t}function sN(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]}}function ec(t){let e=t.trim();if(!Yv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function $p(t){let e=t.trim();if(!Kv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Vp(t){let e=t.match(Jv);if(e)return e[0]}function tc(t){return t!=null&&t!==""}function qp(t){return zv.test(t)}function Co(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function oN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Wp(t){if(oN(t))return t}var QT="Database does not exist.";function jT(t){return(0,YT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Vr=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"}};function aN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new zi(t,r,e);return new Ki(n)}var zi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=jT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=jT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await bo({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 Vr(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===QT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Vr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Vr(`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}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Lh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Vr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ge()),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()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===QT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ju(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await bo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Vr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${ar}`;return Co("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,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(ar)){let e=await this.get(ar);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 Vr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function Ve(t,e){return new Ki(new zi(t,e))}async function ut(t,e,r){let n=Ve(t,r);return await e(n)}async function jp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await zu(e)}async function Hp(t,e){let r=await zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var KT=null;function cr(t){return t||(t=Q()),vo(t)}function JT(t){return t||(t=Q()),t===Ae?Te.AUDIT_LOGS.name:`${t}${D}${Te.AUDIT_LOGS.name}`}function uN(t){return t||(t=Q()),t===Ae?Te.SCIM_LOGS.name:`${t}${D}${Te.SCIM_LOGS.name}`}function vo(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${D}${Te.GLOBAL.name}`}function Yp(){return h.PLATFORM_URL}function qr(){return!!h.MULTI_TENANCY}function cN(){return!!we.get()?.tenantId}function lN(){return h.MULTI_TENANCY}function Zi(t){if(!t)return;if(!qr())return Ae;let e=t.split(D),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function dN(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Pt(t,e){EN();let r=dN(t);return we.run(r,e)}async function pN(t){return await XT(),await Pt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Kp(t,e){let r=Zi(t);return Pt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Ae),Pt(t?{tenantId:t}:{},e)}async function fN(t,e){return Pt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function mN(t,e){return Pt({license:t},e)}function hN(){return we.get()?.license}function zT(){return!!we.get()?.isSelfHostUsingCloud}function gN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ve(Te.SELF_HOST_CLOUD.name)}async function yN(t,e){return ZT(t,e)}async function ZT(t,e,r){if(!t)throw new Error("appId is required");let n=Zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Pt(i,e)}async function Oo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Pt(r,e)}function EN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function TN(t,e){return ZT(t,e,{isMigrating:!0})}function ur(){try{return we.get()?.identity}catch{}}function Q(){if(!qr())return Ae;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Jp(){return we.get()?.automationId}function Le(){let e=we.get()?.appId;return!e&&h.isTest()&&KT?KT:e}function zp(){return we.get()?.ip}var AN=()=>{let t=Le();if(!t)throw new Error("Could not get appId");return at(t)};function SN(t,e){if(!t)throw new Error("Must supply environment variables.");return Pt({environmentVariables:t},e)}function _N(t){return Pt({isScim:!0},t)}function Zp(t,e){return Pt({ip:t},e)}async function XT(){let t=Zn();if(!t||t.snippets)return;let e,r=Xi();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function IN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function oe(){let t=we.get();if(!t||h.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 Ve(vo(t?.tenantId))}function ON(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(JT())}function Xi(t){let e=Le();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(zT())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Ve(e,t)}function xN(t){let e=Le();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function RN(t){let e=Le();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Ku(e),t)}function Lt(){return!!we.get()?.isScim}function Zn(){try{return we.get()}catch{return}}function Xp(t){let e=Zn();if(e)return e.featureFlagCache?.[t]}function ef(t,e){let r=Zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function tf(){return Zn()?.featureFlagOverrides||{}}async function rf(t,e){return await Pt({featureFlagOverrides:t},e)}function wN(t){let e=Zn();if(e)return e.viewToTableCache?.[t]}function bN(t,e){let r=Zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Qr={};P(Qr,{getAppClient:()=>ac,getCacheClient:()=>cf,getDocWritethroughClient:()=>PN,getInviteClient:()=>ti,getLockClient:()=>df,getPasswordResetClient:()=>$o,getSessionClient:()=>Wr,getSocketClient:()=>NN,getUserClient:()=>Go,getWritethroughClient:()=>lf,init:()=>Ut,shutdown:()=>rA});var oc=W(require("ioredis"));var ic={};P(ic,{Databases:()=>nf,SEPARATOR:()=>es,SelectableDatabase:()=>rc,getRedisClusterOptions:()=>sf,getRedisConnectionDetails:()=>nc,getRedisOptions:()=>Xn,removeDbPrefix:()=>of});var es="-",nf=(y=>(y.PW_RESETS="pwReset",y.VERIFICATIONS="verification",y.INVITATIONS="invitation",y.DEV_LOCKS="devLocks",y.DEBOUNCE="debounce",y.SESSIONS="session",y.USER_CACHE="users",y.FLAGS="flags",y.APP_METADATA="appMetadata",y.QUERY_VARS="queryVars",y.LICENSES="license",y.GENERIC_CACHE="data_cache",y.WRITE_THROUGH="writeThrough",y.LOCKS="locks",y.SOCKET_IO="socket_io",y.BPM_EVENTS="bpmEvents",y.DOC_WRITE_THROUGH="docWriteThrough",y))(nf||{}),rc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",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))(rc||{});function nc(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function sf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Xn(),tls:{}}}}function Xn(){let{host:t,password:e,port:r}=nc();return{connectTimeout:3e4,port:r,host:t,password:e}}function of(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var sc=require("dd-trace"),tA=require("lodash"),eA;if(h.MOCK_REDIS)try{eA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function DN(t=0){return await sc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new eA(Xn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=nc();r=new oc.Cluster([{host:n,port:i}],sf())}else r=new oc.default(Xn());return new Promise((n,i)=>{r.on("error",s=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,s),i(s)}),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)})})})}function CN(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",s=>s.forEach(o=>i.add(o))),t.on("error",s=>n(s)),t.on("end",async()=>{try{let s=Array.from(i).map(async o=>{let a=await e.get(o);return a&&(a=JSON.parse(a)),{key:of(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function vN(t){return t.isCluster}var af=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await sc.tracer.trace("RedisWrapper.init",async n=>{let i=await DN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return sc.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${es}${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}${es}${e}`;let n;vN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await CN(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,tA.zip)(e,n).reduce((i,[s,o])=>{if(s===void 0||o===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[s]=o?JSON.parse(o):null}catch{i[s]=o}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((o,[a,u])=>(o[this.prefixed(a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=this.client.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.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
|
+
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let f={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,qg.default)({args:f,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,qg.default)({tests:this.tests,args:f,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Qg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Qg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Vg.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=Ni.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ni.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=Ni.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,fu.default)(r),s=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(o=>!(o.OPTIONS.name===r.name&&(s||o.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,kR.default)(e).map(s=>new MR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new UR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,fu.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=Ni.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,fu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Ni.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,fu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.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(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};mu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,FR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])Rt.prototype[t]=Rt.prototype.oneOf;for(let t of["not","nope"])Rt.prototype[t]=Rt.prototype.notOneOf;Rt.prototype.optional=Rt.prototype.notRequired});var Kg=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=Hg;Hs.default=void 0;var BR=GR(rr());function GR(t){return t&&t.__esModule?t:{default:t}}var pd=BR.default,$R=pd;Hs.default=$R;function Hg(){return new pd}Hg.prototype=pd.prototype});var Pi=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var VR=t=>t==null;hu.default=VR});var Xg=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=Zg;Ys.default=void 0;var qR=zg(rr()),Yg=er(),Jg=zg(Pi());function zg(t){return t&&t.__esModule?t:{default:t}}function Zg(){return new Ks}var Ks=class extends qR.default{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=Yg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Jg.default)(r)||r===!0}})}isFalse(e=Yg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Jg.default)(r)||r===!1}})}};Ys.default=Ks;Zg.prototype=Ks.prototype});var ry=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=ty;zs.default=void 0;var qt=er(),nr=ey(Pi()),WR=ey(rr());function ey(t){return t&&t.__esModule?t:{default:t}}var QR=/^((([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,jR=/^((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,HR=/^(?:[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,KR=t=>(0,nr.default)(t)||t===t.trim(),YR={}.toString();function ty(){return new Js}var Js=class extends WR.default{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===YR?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=qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,nr.default)(n)||n.length===this.resolve(e)}})}min(e,r=qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,nr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,nr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||qt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(QR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(jR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(HR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=qt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:KR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,nr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,nr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toUpperCase()})}};zs.default=Js;ty.prototype=Js.prototype});var sy=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=iy;Xs.default=void 0;var Pn=er(),Ln=ny(Pi()),JR=ny(rr());function ny(t){return t&&t.__esModule?t:{default:t}}var zR=t=>t!=+t;function iy(){return new Zs}var Zs=class extends JR.default{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"&&!zR(e)}min(e,r=Pn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ln.default)(n)||n>=this.resolve(e)}})}max(e,r=Pn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ln.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Pn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Ln.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Pn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Ln.default)(n)||n>this.resolve(e)}})}positive(e=Pn.number.positive){return this.moreThan(0,e)}negative(e=Pn.number.negative){return this.lessThan(0,e)}integer(e=Pn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Ln.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Ln.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,Ln.default)(i)?i:Math[e](i))}};Xs.default=Zs;iy.prototype=Zs.prototype});var oy=H(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=XR;var ZR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function XR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=ZR.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||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}});var cy=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=hd;eo.default=void 0;var ew=gu(oy()),ay=er(),uy=gu(Pi()),tw=gu(Nn()),rw=gu(rr());function gu(t){return t&&t.__esModule?t:{default:t}}var md=new Date(""),nw=t=>Object.prototype.toString.call(t)==="[object Date]";function hd(){return new Li}var Li=class extends rw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,ew.default)(e),isNaN(e)?md:new Date(e))})})}_typeCheck(e){return nw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(tw.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=ay.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,uy.default)(i)||i>=this.resolve(n)}})}max(e,r=ay.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,uy.default)(i)||i<=this.resolve(n)}})}};eo.default=Li;Li.INVALID_DATE=md;hd.prototype=Li.prototype;hd.INVALID_DATE=md});var dy=H((DQ,gd)=>{"use strict";gd.exports=function(t){return ly(iw(t),t)};gd.exports.array=ly;function ly(t,e){var r=t.length,n=new Array(r),i={},s=r,o=sw(e),a=ow(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,f){if(f.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),l=p.length){f.add(c);do{var d=p[--l];u(d,a.get(d),f)}while(l);f.delete(c)}n[--r]=c}}}function iw(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)}function sw(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}function ow(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var py=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=pw;var aw=yu(require("lodash/has")),uw=yu(dy()),cw=qs(),lw=yu(Nn()),dw=yu(vi());function yu(t){return t&&t.__esModule?t:{default:t}}function pw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,cw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,aw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),lw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,dw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return uw.default.array(n,r).reverse()}});var my=H(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.default=fw;function fy(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function fw(t){return(e,r)=>fy(t,e)-fy(t,r)}});var Sy=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=Ay;ro.default=void 0;var hy=Wt(require("lodash/has")),gy=Wt(require("lodash/snakeCase")),mw=Wt(require("lodash/camelCase")),hw=Wt(require("lodash/mapKeys")),gw=Wt(require("lodash/mapValues")),yw=qs(),yy=er(),Ew=Wt(py()),Ty=Wt(my()),Tw=Wt(uu()),Aw=Wt(Cn()),Td=Wt(rr());function Wt(t){return t&&t.__esModule?t:{default:t}}function Ui(){return Ui=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},Ui.apply(this,arguments)}var Ey=t=>Object.prototype.toString.call(t)==="[object Object]";function Sw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var _w=(0,Ty.default)([]),to=class extends Td.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=_w,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return Ey(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 s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),u={},c=Ui({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let f of a){let m=s[f],p=(0,hy.default)(i,f);if(m){let d,g=i[f];c.path=(r.path?`${r.path}.`:"")+f,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||f in i;continue}d=!r.__validating||!y?m.cast(i[f],c):i[f],d!==void 0&&(u[f]=d)}else p&&!o&&(u[f]=i[f]);u[f]!==i[f]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,f)=>{if(l){if(!Aw.default.isError(l)||u)return void n(l,f);i.push(l)}if(!c||!Ey(f)){n(i[0]||null,f);return}a=a||f;let m=this._nodes.map(p=>(d,g)=>{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],Ui({},r,{path:E,from:o,strict:!0,parent:f,originalValue:a[p]}),g);return}g(null)});(0,Tw.default)({sync:s,tests:m,value:f,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ui({},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,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof Td.default&&s instanceof Td.default&&(n[i]=s.concat(o))}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,Ty.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,Ew.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,yw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,hy.default)(s,e)&&(o=Ui({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=yy.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 s=Sw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=yy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,hw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(mw.default)}snakeCase(){return this.transformKeys(gy.default)}constantCase(){return this.transformKeys(e=>(0,gy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,gw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function Ay(t){return new to(t)}Ay.prototype=to.prototype});var Iy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=_y;io.default=void 0;var Ad=Mi(Pi()),Iw=Mi(vi()),Ow=Mi(Vs()),Sd=er(),xw=Mi(uu()),Rw=Mi(Cn()),ww=Mi(rr());function Mi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=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},Eu.apply(this,arguments)}function _y(t){return new no(t)}var no=class extends ww.default{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,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,d)=>{if(p){if(!Rw.default.isError(p)||l)return void n(p,d);o.push(p)}if(!f||!c||!this._typeCheck(d)){n(o[0]||null,d);return}m=m||d;let g=new Array(d.length);for(let E=0;E<d.length;E++){let y=d[E],S=`${r.path||""}[${E}]`,O=Eu({},r,{path:S,strict:!0,parent:d,index:E,originalValue:m[E]});g[E]=(R,T)=>c.validate(y,O,T)}(0,xw.default)({sync:a,path:u,value:d,errors:o,endEarly:l,tests:g},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,Iw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Ow.default)(e));return r.innerType=e,r}length(e,r=Sd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Ad.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Sd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ad.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Sd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ad.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,s)=>!e(n,i,s):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)}};io.default=no;_y.prototype=no.prototype});var Oy=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Cw;so.default=void 0;var bw=Dw(vi());function Dw(t){return t&&t.__esModule?t:{default:t}}function Cw(t){return new Tu(t)}var Tu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,bw.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)}},vw=Tu;so.default=vw});var xy=H(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.default=Lw;var Nw=Pw(er());function Pw(t){return t&&t.__esModule?t:{default:t}}function Lw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Nw.default[e][r]=t[e][r]})})}});var Od=H(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=$w;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return Id.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return Id.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return Id.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return Cy.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return vy.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return vy.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return Uw.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return Mw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return Fw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return kw.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return Ny.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Bw.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return Gw.default}});var Ry=Un(Kg()),Id=Un(Xg()),wy=Un(ry()),by=Un(sy()),Dy=Un(cy()),Cy=Un(Sy()),vy=Un(Iy()),Uw=Nn(),Mw=Oy(),Fw=oo(Cn()),kw=oo(ld()),Ny=oo(vi()),Bw=oo(xy()),Gw=oo(rr());function oo(t){return t&&t.__esModule?t:{default:t}}function Py(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Py=function(){return t},t}function Un(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Py();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 s=n?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}function $w(t,e,r){if(!t||!(0,Ny.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}});var Ly=H(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});var xd=wd();Rd.default=()=>{(0,xd.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,xd.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,xd.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 wd=H(Pe=>{"use strict";var Vw=Pe&&Pe.__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]}),qw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ww=Pe&&Pe.__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)&&Vw(e,t,r);return qw(e,t),e},Qw=Pe&&Pe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.validateOptions=Pe.registerOptionPreset=Pe.getOptionPresets=Pe.getOptionPreset=void 0;var w=Ww(Od());Od();var ao=Ot(),jw=Qw(Ly());xt();var Mn={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}}},Uy=w.object({presetId:w.string().required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),minutes:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),hours:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfMonth:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),months:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfWeek:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),years:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required()}).required(),Hw=t=>Mn[t]?(0,ao.valid)(Mn[t]):(0,ao.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Hw;var Kw=()=>Mn;Pe.getOptionPresets=Kw;var Yw=(t,e)=>{Mn[t]=Uy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=Yw;var Jw=t=>{var e,r,n,i,s,o,a,u,c,l,f,m,p,d,g,E,y,S,O,R;try{(0,jw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Mn[t.preset])return(0,ao.err)([`Option preset ${t.preset} does not exist.`]);T=Mn[t.preset]}else T=t.preset;else T=Mn.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(f=T.hours.lowerLimit)!==null&&f!==void 0?f:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(d=T.daysOfMonth.upperLimit)!==null&&d!==void 0?d:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g: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:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(O=T.years.lowerLimit)!==null&&O!==void 0?O:T.years.minValue,upperLimit:(R=T.years.upperLimit)!==null&&R!==void 0?R:T.years.maxValue}}),t.override),b=w.object({presetId:w.string().required(),preset:Uy.required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({lowerLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:w.object({lowerLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:w.object({lowerLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:w.object({lowerLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:w.object({lowerLimit:w.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:w.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:w.object({lowerLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:w.object({lowerLimit:w.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:w.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ao.valid)(b)}catch(T){return(0,ao.err)(T.errors)}};Pe.validateOptions=Jw});var Vt=H((uo,Dd)=>{"use strict";var kn=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var Fn=Ot(),zw=kn(lg()),Zw=kn(dg()),Xw=kn(pg()),eb=kn(fg()),tb=kn(mg()),rb=kn(hg()),nb=kn(gg()),ib=wd();xt();var sb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Fn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Fn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Fn.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,Fn.valid)(n)},bd=(t,e={})=>{let r=(0,ib.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=sb(t,n);if(i.isError())return(0,Fn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,zw.default)(s,n)),o.push((0,Zw.default)(s,n)),o.push((0,Xw.default)(s,n)),o.push((0,eb.default)(s,n)),o.push((0,tb.default)(s,n)),o.push((0,rb.default)(s,n)),n.useYears&&o.push((0,nb.default)(s,n)),o.every(u=>u.isValid()))return(0,Fn.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Fn.err)(a)};uo.default=bd;Dd.exports=bd;Dd.exports.default=bd});var sT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},kd=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Bd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Gd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},$n=class extends sr{},Ru=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ke=class extends sr{},Qt=class extends sr{constructor(){super("Zone is an abstract class")}},C="numeric",Dt="short",nt="long",wu={year:C,month:C,day:C},aE={year:C,month:Dt,day:C},ob={year:C,month:Dt,day:C,weekday:Dt},uE={year:C,month:nt,day:C},cE={year:C,month:nt,day:C,weekday:nt},lE={hour:C,minute:C},dE={hour:C,minute:C,second:C},pE={hour:C,minute:C,second:C,timeZoneName:Dt},fE={hour:C,minute:C,second:C,timeZoneName:nt},mE={hour:C,minute:C,hourCycle:"h23"},hE={hour:C,minute:C,second:C,hourCycle:"h23"},gE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Dt},yE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:nt},EE={year:C,month:C,day:C,hour:C,minute:C},TE={year:C,month:C,day:C,hour:C,minute:C,second:C},AE={year:C,month:Dt,day:C,hour:C,minute:C},SE={year:C,month:Dt,day:C,hour:C,minute:C,second:C},ab={year:C,month:Dt,day:C,weekday:Dt,hour:C,minute:C},_E={year:C,month:nt,day:C,hour:C,minute:C,timeZoneName:Dt},IE={year:C,month:nt,day:C,hour:C,minute:C,second:C,timeZoneName:Dt},OE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,timeZoneName:nt},xE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,second:C,timeZoneName:nt},Ur=class{get type(){throw new Qt}get name(){throw new Qt}get ianaName(){return this.name}get isUniversal(){throw new Qt}offsetName(e,r){throw new Qt}formatOffset(e,r){throw new Qt}offset(e){throw new Qt}equals(e){throw new Qt}get isValid(){throw new Qt}},Cd=null,go=class t extends Ur{static get instance(){return Cd===null&&(Cd=new t),Cd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return wE(e,r,n)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Ou={};function ub(t){return Ou[t]||(Ou[t]=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"})),Ou[t]}var cb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function lb(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,s,o,a,u,c,l]=n;return[o,i,s,a,u,c,l]}function db(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=cb[s];s==="era"?n[a]=o:se(a)||(n[a]=parseInt(o,10))}return n}var Au={},or=class t extends Ur{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},Ou={}}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 wE(e,r,n,this.name)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=ub(this.name),[i,s,o,a,u,c,l]=n.formatToParts?db(n,r):lb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Zd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),p=+r,d=p%1e3;return p-=d>=0?d:1e3+d,(m-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},My={};function pb(t,e={}){let r=JSON.stringify([t,e]),n=My[r];return n||(n=new Intl.ListFormat(t,e),My[r]=n),n}var $d={};function Vd(t,e={}){let r=JSON.stringify([t,e]),n=$d[r];return n||(n=new Intl.DateTimeFormat(t,e),$d[r]=n),n}var qd={};function fb(t,e={}){let r=JSON.stringify([t,e]),n=qd[r];return n||(n=new Intl.NumberFormat(t,e),qd[r]=n),n}var Wd={};function mb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Wd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Wd[i]=s),s}var fo=null;function hb(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function gb(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=Vd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Vd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function yb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Eb(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function Tb(t){let e=[];for(let r=1;r<=7;r++){let n=Ie.utc(2016,11,13+r);e.push(t(n))}return e}function Su(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Ab(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var Qd=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=fb(e,a)}}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):zd(e,3);return Re(r,this.padTo)}}},jd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&or.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Ie.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Vd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Hd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&RE()&&(this.rtf=mb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Mb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||Ee.defaultLocale,o=s||(i?"en-US":hb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,$d={},qd={},Wd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=gb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=yb(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Ab(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,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Su(this,e,n,CE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Eb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Su(this,e,n,PE,()=>{let i=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=r?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=Tb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Su(this,void 0,e,()=>LE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ie.utc(2016,11,13,9),Ie.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Su(this,e,r,UE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ie.utc(-40,1,1),Ie.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Qd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new jd(e,this.intl,r)}relFormatter(e={}){return new Hd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return pb(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},vd=null,it=class t extends Ur{static get utcInstance(){return vd===null&&(vd=new t(0)),vd}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(Pu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ho(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ho(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ho(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}},bu=class extends Ur{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 Lr(t,e){if(se(t)||t===null)return e;if(t instanceof Ur)return t;if(Sb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?go.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||or.create(t)}else return qn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new bu(t)}var Fy=()=>Date.now(),ky="system",By=null,Gy=null,$y=null,Vy=60,qy,Ee=class{static get now(){return Fy}static set now(e){Fy=e}static set defaultZone(e){ky=e}static get defaultZone(){return Lr(ky,go.instance)}static get defaultLocale(){return By}static set defaultLocale(e){By=e}static get defaultNumberingSystem(){return Gy}static set defaultNumberingSystem(e){Gy=e}static get defaultOutputCalendar(){return $y}static set defaultOutputCalendar(e){$y=e}static get twoDigitCutoffYear(){return Vy}static set twoDigitCutoffYear(e){Vy=e%100}static get throwOnInvalid(){return qy}static set throwOnInvalid(e){qy=e}static resetCaches(){_e.resetCache(),or.resetCache()}};function se(t){return typeof t>"u"}function qn(t){return typeof t=="number"}function Nu(t){return typeof t=="number"&&t%1===0}function Sb(t){return typeof t=="string"}function _b(t){return Object.prototype.toString.call(t)==="[object Date]"}function RE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Ib(t){return Array.isArray(t)?t:[t]}function Wy(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function Ob(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return Nu(t)&&t>=e&&t<=r}function xb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Pr(t){if(!(se(t)||t===null||t===""))return parseInt(t,10)}function Bn(t){if(!(se(t)||t===null||t===""))return parseFloat(t)}function Jd(t){if(!(se(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function zd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function yo(t){return t%4===0&&(t%100!==0||t%400===0)}function mo(t){return yo(t)?366:365}function Du(t,e){let r=xb(e-1,12)+1,n=t+(e-r)/12;return r===2?yo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Zd(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(e.getUTCFullYear()-1900)),+e}function Cu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Kd(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function wE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Pu(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}function bE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ke(`Invalid unit value ${t}`);return e}function vu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=bE(i)}return r}function ho(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}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Lu(t){return Ob(t,["hour","minute","second","millisecond"])}var Rb=["January","February","March","April","May","June","July","August","September","October","November","December"],DE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wb=["J","F","M","A","M","J","J","A","S","O","N","D"];function CE(t){switch(t){case"narrow":return[...wb];case"short":return[...DE];case"long":return[...Rb];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}}var vE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],NE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],bb=["M","T","W","T","F","S","S"];function PE(t){switch(t){case"narrow":return[...bb];case"short":return[...NE];case"long":return[...vE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var LE=["AM","PM"],Db=["Before Christ","Anno Domini"],Cb=["BC","AD"],vb=["B","A"];function UE(t){switch(t){case"narrow":return[...vb];case"short":return[...Cb];case"long":return[...Db];default:return null}}function Nb(t){return LE[t.hour<12?0:1]}function Pb(t,e){return PE(e)[t.weekday-1]}function Lb(t,e){return CE(e)[t.month-1]}function Ub(t,e){return UE(e)[t.year<0?0:1]}function Mb(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."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){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 o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function Qy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Fb={D:wu,DD:aE,DDD:uE,DDDD:cE,t:lE,tt:dE,ttt:pE,tttt:fE,T:mE,TT:hE,TTT:gE,TTTT:yE,f:EE,ff:AE,fff:_E,ffff:OE,F:TE,FF:SE,FFF:IE,FFFF:xE},tt=class t{static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,s=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);a==="'"?(n.length>0&&s.push({literal:i,val:n}),r=null,n="",i=!i):i||a===r?n+=a:(n.length>0&&s.push({literal:!1,val:n}),n=a,r=a)}return n.length>0&&s.push({literal:i,val:n}),s}static macroTokenToFormatOpts(e){return Fb[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()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,d)=>this.loc.extract(e,p,d),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?Nb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,d)=>n?Lb(e,p):s(d?{month:p}:{month:p,day:"numeric"},"month"),c=(p,d)=>n?Pb(e,p):s(d?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let d=t.macroTokenToFormatOpts(p);return d?this.formatWithSystemDefault(e,d):p},f=p=>n?Ub(e,p):s({era:p},"era"),m=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 o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({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 a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({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"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 l(p)}};return Qy(t.parseFormat(r),m)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return Qy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},ME=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $i(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Vi(...t){return e=>t.reduce(([r,n,i],s)=>{let[o,a,u]=s(e,i);return[{...r,...o},a||n,u]},[{},null,1]).slice(0,2)}function qi(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]}function FE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Pr(e[r+i]);return[n,null,r+i]}}var kE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,kb=`(?:${kE.source}?(?:\\[(${ME.source})\\])?)?`,Xd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,BE=RegExp(`${Xd.source}${kb}`),ep=RegExp(`(?:T${BE.source})?`),Bb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Gb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,$b=/(\d{4})-?(\d{3})/,Vb=FE("weekYear","weekNumber","weekDay"),qb=FE("year","ordinal"),Wb=/(\d{4})-(\d\d)-(\d\d)/,GE=RegExp(`${Xd.source} ?(?:${kE.source}|(${ME.source}))?`),Qb=RegExp(`(?: ${GE.source})?`);function Bi(t,e,r){let n=t[e];return se(n)?r:Pr(n)}function jb(t,e){return[{year:Bi(t,e),month:Bi(t,e+1,1),day:Bi(t,e+2,1)},null,e+3]}function Wi(t,e){return[{hours:Bi(t,e,0),minutes:Bi(t,e+1,0),seconds:Bi(t,e+2,0),milliseconds:Jd(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Pu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function To(t,e){let r=t[e]?or.create(t[e]):null;return[{},r,e+1]}var Hb=RegExp(`^T?${Xd.source}$`),Kb=/^-?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 Yb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",f=u&&u[0]==="-",m=(p,d=!1)=>p!==void 0&&(d||p&&l)?-p:p;return[{years:m(Bn(r)),months:m(Bn(n)),weeks:m(Bn(i)),days:m(Bn(s)),hours:m(Bn(o)),minutes:m(Bn(a)),seconds:m(Bn(u),u==="-0"),milliseconds:m(Jd(c),f)}]}var Jb={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 tp(t,e,r,n,i,s,o){let a={year:e.length===2?Kd(Pr(e)):Pr(e),month:DE.indexOf(r)+1,day:Pr(n),hour:Pr(i),minute:Pr(s)};return o&&(a.second=Pr(o)),t&&(a.weekday=t.length>3?vE.indexOf(t)+1:NE.indexOf(t)+1),a}var zb=/^(?:(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 Zb(t){let[,e,r,n,i,s,o,a,u,c,l,f]=t,m=tp(e,i,n,r,s,o,a),p;return u?p=Jb[u]:c?p=0:p=Pu(l,f),[m,new it(p)]}function Xb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var eD=/^(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$/,tD=/^(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$/,rD=/^(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 jy(t){let[,e,r,n,i,s,o,a]=t;return[tp(e,i,n,r,s,o,a),it.utcInstance]}function nD(t){let[,e,r,n,i,s,o,a]=t;return[tp(e,a,r,n,i,s,o),it.utcInstance]}var iD=$i(Bb,ep),sD=$i(Gb,ep),oD=$i($b,ep),aD=$i(BE),$E=Vi(jb,Wi,Eo,To),uD=Vi(Vb,Wi,Eo,To),cD=Vi(qb,Wi,Eo,To),lD=Vi(Wi,Eo,To);function dD(t){return qi(t,[iD,$E],[sD,uD],[oD,cD],[aD,lD])}function pD(t){return qi(Xb(t),[zb,Zb])}function fD(t){return qi(t,[eD,jy],[tD,jy],[rD,nD])}function mD(t){return qi(t,[Kb,Yb])}var hD=Vi(Wi);function gD(t){return qi(t,[Hb,hD])}var yD=$i(Wb,Qb),ED=$i(GE),TD=Vi(Wi,Eo,To);function AD(t){return qi(t,[yD,$E],[ED,TD])}var SD="Invalid Duration",VE={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}},_D={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},...VE},mt=146097/400,Fi=146097/4800,ID={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:Fi/7,days:Fi,hours:Fi*24,minutes:Fi*24*60,seconds:Fi*24*60*60,milliseconds:Fi*24*60*60*1e3},...VE},Gn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],OD=Gn.slice(0).reverse();function Nr(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 De(n)}function xD(t){return t<0?Math.floor(t):Math.ceil(t)}function qE(t,e,r,n,i){let s=t[i][r],o=e[r]/s,a=Math.sign(o)===Math.sign(n[i]),u=!a&&n[i]!==0&&Math.abs(o)<=1?xD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function RD(t,e){OD.reduce((r,n)=>se(e[n])?r:(r&&qE(t,e,r,e,n),n),null)}function wD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var De=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?ID:_D;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.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 Ke(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:vu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(qn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ke(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=mD(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]=gD(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 Ke("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Gd(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 Ru(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?tt.create(this.loc,n).formatDurationFromString(this,e):SD}toHuman(e={}){let r=Gn.map(n=>{let i=this.values[n];return se(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(i)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(r)}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+=zd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Gn)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Nr(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]=bE(e(this.values[n],n));return Nr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...vu(e,t.normalizeUnit)};return Nr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Nr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return RD(this.matrix,e),Nr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=wD(this.normalize().shiftToAll().toObject());return Nr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of Gn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;qn(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)Gn.indexOf(c)>Gn.indexOf(o)&&qE(this.matrix,i,c,r,o)}else qn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return Nr(this,{values:r},!0).normalize()}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 Nr(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}for(let n of Gn)if(!r(this.values[n],e.values[n]))return!1;return!0}},ki="Invalid Interval";function bD(t,e){return!t||!t.isValid?Wn.invalid("missing or invalid start"):!e||!e.isValid?Wn.invalid("missing or invalid end"):e<t?Wn.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}var Wn=class t{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 Ke("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Bd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=bD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=po(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=po(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=Ie.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ie.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=De.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=De.fromISO(n,r);if(c.isValid)return t.before(a,c)}}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 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"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}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(po).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=De.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}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,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.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()})`:ki}toLocaleString(e=wu,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):ki}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:ki}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:ki}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:ki}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:ki}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):De.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Vn=class{static hasDST(e=Ee.defaultZone){let r=Ie.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return or.isValidZone(e)}static normalizeZone(e){return Lr(e,Ee.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:RE()}}};function Hy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(De.fromMillis(n).as("days"))}function DD(t,e,r){let n=[["years",(u,c)=>c.year-u.year],["quarters",(u,c)=>c.quarter-u.quarter+(c.year-u.year)*4],["months",(u,c)=>c.month-u.month+(c.year-u.year)*12],["weeks",(u,c)=>{let l=Hy(u,c);return(l-l%7)/7}],["days",Hy]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function CD(t,e,r,n){let[i,s,o,a]=DD(t,e,r),u=e-i,c=r.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=De.fromObject(s,n);return c.length>0?De.fromMillis(u,n).shiftTo(...c).plus(l):l}var rp={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"},Ky={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]},vD=rp.hanidec.replace(/[\[|\]]/g,"").split("");function ND(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(rp.hanidec)!==-1)e+=vD.indexOf(t[r]);else for(let i in Ky){let[s,o]=Ky[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${rp[t||"latn"]}${e}`)}var PD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(ND(r))}}var LD=String.fromCharCode(160),WE=`[ ${LD}]`,QE=new RegExp(WE,"g");function UD(t){return t.replace(/\./g,"\\.?").replace(QE,WE)}function Yy(t){return t.replace(/\./g,"").replace(QE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(UD).join("|")),deser:([r])=>t.findIndex(n=>Yy(r)===Yy(n))+e}}function Jy(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Nd(t){return{regex:t,deser:([e])=>e}}function MD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function FD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),f=wt(e,"{2,4}"),m=wt(e,"{4,6}"),p=E=>({regex:RegExp(MD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(f,Kd);case"yyyy":return le(s);case"yyyyy":return le(m);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return le(a);case"dd":return le(n);case"o":return le(u);case"ooo":return le(i);case"HH":return le(n);case"H":return le(a);case"hh":return le(n);case"h":return le(a);case"mm":return le(n);case"m":return le(a);case"q":return le(a);case"qq":return le(n);case"s":return le(a);case"ss":return le(n);case"S":return le(u);case"SSS":return le(i);case"u":return Nd(l);case"uu":return Nd(a);case"uuu":return le(r);case"a":return bt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(f,Kd);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Jy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Jy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Nd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:PD};return g.token=t,g}var kD={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",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function BD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=kD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function GD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function $D(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Gi(r,o)){let a=r[o],u=a.groups?a.groups+1:1;!a.literal&&a.token&&(i[a.token.val[0]]=a.deser(n.slice(s,s+u))),s+=u}return[n,i]}else return[n,{}]}function VD(t){let e=s=>{switch(s){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}},r=null,n;return se(t.z)||(r=or.create(t.z)),se(t.Z)||(r||(r=new it(t.Z)),n=t.Z),se(t.q)||(t.M=(t.q-1)*3+1),se(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),se(t.u)||(t.S=Jd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Pd=null;function qD(){return Pd||(Pd=Ie.fromMillis(1555555555555)),Pd}function WD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=KE(r,e);return n==null||n.includes(void 0)?t:n}function jE(t,e){return Array.prototype.concat(...t.map(r=>WD(r,e)))}function HE(t,e,r){let n=jE(tt.parseFormat(r),t),i=n.map(o=>FD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=GD(i),u=RegExp(o,"i"),[c,l]=$D(e,u,a),[f,m,p]=l?VD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(l,"H"))throw new $n("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:f,zone:m,specificOffset:p}}}function QD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=HE(t,e,r);return[n,i,s,o]}function KE(t,e){return t?tt.create(e,t).formatDateTimeParts(qD()).map(i=>BD(i,t)):null}var YE=[0,31,59,90,120,151,181,212,243,273,304,334],JE=[0,31,60,91,121,152,182,213,244,274,305,335];function ht(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function zE(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}function ZE(t,e,r){return r+(yo(t)?JE:YE)[e-1]}function XE(t,e){let r=yo(t)?JE:YE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Yd(t){let{year:e,month:r,day:n}=t,i=ZE(e,r,n),s=zE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Cu(a)):o>Cu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function zy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=zE(e,1,4),s=mo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=mo(a)):o>s?(a=e+1,o-=mo(e)):a=e;let{month:u,day:c}=XE(a,o);return{year:a,month:u,day:c,...Lu(t)}}function Ld(t){let{year:e,month:r,day:n}=t,i=ZE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Zy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=XE(e,r);return{year:e,month:n,day:i,...Lu(t)}}function jD(t){let e=Nu(t.weekYear),r=ir(t.weekNumber,1,Cu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function HD(t){let e=Nu(t.year),r=ir(t.ordinal,1,mo(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function eT(t){let e=Nu(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Du(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function tT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=ir(e,0,23)||e===24&&r===0&&n===0&&i===0,o=ir(r,0,59),a=ir(n,0,59),u=ir(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Ud="Invalid DateTime",Xy=864e13;function _u(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Md(t){return t.weekData===null&&(t.weekData=Yd(t.c)),t.weekData}function co(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ie({...r,...e,old:r})}function rT(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 s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function eE(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()}}function xu(t,e,r){return rT(Zd(t),e,r)}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,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Du(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.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"),a=Zd(s),[u,c]=rT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function lo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ie.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ie.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Iu(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Fd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function rE(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var nT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},KD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},YD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},iT=["year","month","day","hour","minute","second","millisecond"],JD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],zD=["year","ordinal","hour","minute","second","millisecond"];function nE(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 Ru(t);return e}function iE(t,e){let r=Lr(e.zone,Ee.defaultZone),n=_e.fromObject(e),i=Ee.now(),s,o;if(se(t.year))s=i;else{for(let c of iT)se(t[c])&&(t[c]=nT[c]);let a=eT(t)||tT(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function sE(t,e,r){let n=se(r.round)?!0:r.round,i=(o,a)=>(o=zd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}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]}var Ie=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:_u(r));this.ts=se(e.ts)?Ee.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=eE(this.ts,a),n=Number.isNaN(i.year)?new rt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=oE(arguments),[n,i,s,o,a,u,c]=r;return iE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=oE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,iE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=_b(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Lr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(_u(i))}static fromMillis(e,r={}){if(qn(e))return e<-Xy||e>Xy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Lr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ke(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(qn(e))return new t({ts:e*1e3,zone:Lr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ke("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Lr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(_u(n));let i=Ee.now(),s=se(r.specificOffset)?n.offset(i):r.specificOffset,o=vu(e,nE),a=!se(o.ordinal),u=!se(o.year),c=!se(o.month)||!se(o.day),l=u||c,f=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&f)throw new $n("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new $n("Can't mix ordinal dates with month/day");let p=f||o.weekday&&!l,d,g,E=eE(i,s);p?(d=JD,g=KD,E=Yd(E)):a?(d=zD,g=YD,E=Ld(E)):(d=iT,g=nT);let y=!1;for(let b of d){let k=o[b];se(k)?y?o[b]=g[b]:o[b]=E[b]:y=!0}let S=p?jD(o):a?HD(o):eT(o),O=S||tT(o);if(O)return t.invalid(O);let R=p?zy(o):a?Zy(o):o,[T,_]=xu(R,s,n),B=new t({ts:T,zone:n,o:_,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=dD(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=pD(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=fD(e);return lo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(se(e)||se(r))throw new Ke("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=QD(o,e,r);return l?t.invalid(l):lo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=AD(e);return lo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ke("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new kd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=KE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return jE(tt.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}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?Md(this).weekYear:NaN}get weekNumber(){return this.isValid?Md(this).weekNumber:NaN}get weekday(){return this.isValid?Md(this).weekday:NaN}get ordinal(){return this.isValid?Ld(this.c).ordinal:NaN}get monthShort(){return this.isValid?Vn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Vn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Vn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Vn.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}get isInLeapYear(){return yo(this.year)}get daysInMonth(){return Du(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Cu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(it.instance(e),r)}toLocal(){return this.setZone(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Lr(e,Ee.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=xu(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(_u(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return co(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=vu(e,nE),n=!se(r.weekYear)||!se(r.weekNumber)||!se(r.weekday),i=!se(r.ordinal),s=!se(r.year),o=!se(r.month)||!se(r.day),a=s||o,u=r.weekYear||r.weekNumber;if((a||i)&&u)throw new $n("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new $n("Can't mix ordinal dates with month/day");let c;n?c=zy({...Yd(this.c),...r}):se(r.ordinal)?(c={...this.toObject(),...r},se(r.day)&&(c.day=Math.min(Du(c.year,c.month),c.day))):c=Zy({...Ld(this.c),...r});let[l,f]=xu(c,this.o,this.zone);return co(this,{ts:l,o:f})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return co(this,tE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return co(this,tE(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=De.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?tt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Ud}toLocaleString(e=wu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Ud}toLocaleParts(e={}){return this.isValid?tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=Fd(this,o);return a+="T",a+=rE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Fd(this,e==="extended"):null}toISOWeekDate(){return Iu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+rE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Iu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Iu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Fd(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")),Iu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ud}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 De.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Ib(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=CD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?Wn.fromDateTimes(this,e):this}hasSame(e,r){if(!this.isValid)return!1;let n=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r)<=n&&n<=i.endOf(r)}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"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),sE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}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 Ke("min requires all arguments be DateTimes");return Wy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ke("max requires all arguments be DateTimes");return Wy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return HE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return wu}static get DATE_MED(){return aE}static get DATE_MED_WITH_WEEKDAY(){return ob}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 pE}static get TIME_WITH_LONG_OFFSET(){return fE}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 yE}static get DATETIME_SHORT(){return EE}static get DATETIME_SHORT_WITH_SECONDS(){return TE}static get DATETIME_MED(){return AE}static get DATETIME_MED_WITH_SECONDS(){return SE}static get DATETIME_MED_WITH_WEEKDAY(){return ab}static get DATETIME_FULL(){return _E}static get DATETIME_FULL_WITH_SECONDS(){return IE}static get DATETIME_HUGE(){return OE}static get DATETIME_HUGE_WITH_SECONDS(){return xE}};function po(t){if(Ie.isDateTime(t))return t;if(t&&t.valueOf&&qn(t.valueOf()))return Ie.fromJSDate(t);if(t&&typeof t=="object")return Ie.fromObject(t);throw new Ke(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var ZD="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=Vn;st.Interval=Wn;st.InvalidZone=bu;st.Settings=Ee;st.SystemZone=go;st.VERSION=ZD;st.Zone=Ur});var aT=H((GQ,oT)=>{"use strict";var Qn=sT();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.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}))};z.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}))};z.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}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.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}))};z.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}))};z.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}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=Qn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Qn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Qn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Qn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Qn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Qn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Qn.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))}oT.exports=z});var lT=H(($Q,cT)=>{"use strict";function jn(t){return{start:t,count:1}}function uT(t,e){t.end=e,t.step=e-t.start,t.count=2}function np(t,e,r){e&&(e.count===2?(t.push(jn(e.start)),t.push(jn(e.end))):t.push(e)),r&&t.push(r)}function XD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(np(e,r,jn(i)),r=void 0):r?r.count===1?uT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(jn(r.start)),r=jn(r.end),uT(r,i)):(np(e,r),r=jn(i)):r=jn(i)}return np(e,r),e}cT.exports=XD});var pT=H((VQ,dT)=>{"use strict";var eC=lT();function tC(t,e,r){var n=eC(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(m,p){var d=c.start+p;return(d-c.start)%c.step===0?d:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}dT.exports=tC});var hT=H((qQ,mT)=>{"use strict";var Hn=aT(),rC=pT(),fT=1e4;function L(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Hn(e.currentDate,this._tz),this._startDate=e.startDate?new Hn(e.startDate,this._tz):null,this._endDate=e.endDate?new Hn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=L._freezeFields(t)}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=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};L._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=L.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});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 s(u){var c=[];function l(d){if(d instanceof Array)for(var g=0,E=d.length;g<E;g++){var y=d[g];if(L._isValidConstraintChar(n,y)){c.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);c.push(y)}else{if(L._isValidConstraintChar(n,d)){c.push(d);return}var S=+d;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+d+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var f=u.split(",");if(!f.every(function(d){return d.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var m=0,p=f.length;m<p;m++)l(o(f[m]));else l(o(u));return c.sort(L._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],f=u.split("-");if(f.length>1){if(f.length<2)return+u;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+u);return+u}var m=+f[0],p=+f[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var d=+c;if(Number.isNaN(d)||d<=0)throw new Error("Constraint error, cannot repeat at every "+d+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&d>0&&d%c===0?(d=1,l.push(g)):d++}return l}return Number.isNaN(+u)?u:+u}return s(r)};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 s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};L.prototype._findSchedule=function(e){function r(y,S){for(var O=0,R=S.length;O<R;O++)if(S[O]>=y)return S[O]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var O=y.getDate()%7?1:0,R=y.getDate()-y.getDate()%7,T=Math.floor(R/7)+O;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Hn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function f(y){return y.some(function(S){if(!i([S]))return!1;var O=Number.parseInt(S[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===O&&o.isLastWeekdayOfMonth()})}for(;l<fT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||f(this.fields.dayOfWeek));var d=this.fields.dayOfMonth.length>=L.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,E=o.getHours();if(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!d&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(d&&!g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=fT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Hn(o,this._tz),this._hasIterated=!0,o};L.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};L.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};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=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};L.prototype.reset=function(e){this._currentDate=new Hn(e||this._options.currentDate)};L.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=L.map.length;n<i;++n){var s=L.map[n],o=this.fields[s],a=L.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:L.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(rC(o,a.min,a.max))}return r.join(" ")};L.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Hn(void 0,n._tz)),L.predefined[s]&&(s=L.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=L.map.length-u.length,l=0,f=L.map.length;l<f;++l){var m=L.map[l],p=u[u.length>f?l:l-c];if(l<c||!p)a.push(L._parseField(m,L.parseDefaults[l],L.constraints[l]));else{var d=m==="dayOfWeek"?S(p):p;a.push(L._parseField(m,d,L.constraints[l]))}}for(var g={},l=0,f=L.map.length;l<f;l++){var E=L.map[l];g[E]=a[l]}var y=L._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new L(g,o);function S(O){var R=O.split("#");if(R.length>1){var T=+R[R.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(R.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,R[0]}return O}}return i(e,r)};L.fieldsToExpression=function(e,r){function n(m,p,d){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!L._isValidConstraintChar(d,y)&&(typeof y!="number"||Number.isNaN(y)||y<d.min||y>d.max))throw new Error("Constraint error, got value "+y+" expected range "+d.min+"-"+d.max)}}for(var i={},s=0,o=L.map.length;s<o;++s){var a=L.map[s],u=e[a];n(a,u,L.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(L._sortCompareFn).filter(function(m,p,d){return!p||m!==d[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var f=L._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new L(i,r||{})};mT.exports=L});var yT=H((WQ,gT)=>{"use strict";var Uu=hT();function Mr(){}Mr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Uu.parse(e)};if(r.length>6)return{interval:Uu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Mr.parseExpression=function(e,r){return Uu.parse(e,r)};Mr.fieldsToExpression=function(e,r){return Uu.fieldsToExpression(e,r)};Mr.parseString=function(e){for(var r=e.split(`
|
|
5
|
+
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Mr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Mr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Mr.parseString(i.toString()))})};gT.exports=Mr});var Kk={};N(Kk,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>xp,BadRequestError:()=>bc,BudibaseError:()=>ps,Config:()=>vp,Cookie:()=>Yn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DesignDocuments:()=>Wu,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>Mf,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>Cc,GlobalRole:()=>Cp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>Rr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>ju,MIN_VALID_DATE:()=>NT,NotFoundError:()=>wc,RedisClient:()=>We,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UsageLimitError:()=>Dc,UserStatus:()=>Qu,ViewName:()=>Br,accounts:()=>li,auth:()=>gh,blacklist:()=>Ah,cache:()=>Ia,configs:()=>rn,constants:()=>Np,context:()=>Se,db:()=>Hr,docIds:()=>xf,docUpdates:()=>_h,encryption:()=>fh,env:()=>h,errors:()=>Nc,events:()=>ys,features:()=>ih,getPublicError:()=>vc,init:()=>Hk,installation:()=>Vc,locks:()=>ui,logging:()=>xc,middleware:()=>hh,objectStore:()=>zf,permissions:()=>th,platform:()=>Xo,plugins:()=>Eh,queue:()=>fm,redis:()=>Th,roles:()=>eh,security:()=>Cm,sessions:()=>Yc,setEnv:()=>Ro,sql:()=>vh,tenancy:()=>jk,timers:()=>Gc,userUtils:()=>am,users:()=>Es,utils:()=>ss,withEnv:()=>kT});module.exports=VI(Kk);var rn={};N(rn,{analyticsEnabled:()=>kc,generateConfigID:()=>el,getAIConfig:()=>oF,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Gm,getGoogleConfig:()=>tl,getGoogleDatasourceConfig:()=>qm,getOIDCConfig:()=>nF,getOIDCConfigById:()=>Wm,getOIDCLogosDoc:()=>tF,getPlatformUrl:()=>Da,getSCIMConfig:()=>sF,getSMTPConfig:()=>iF,getSMTPConfigDoc:()=>M_,getSettingsConfig:()=>Vm,getSettingsConfigDoc:()=>Wc,save:()=>X0});var qI=["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"],Ph=[...qI],Lh={"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,"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};var Rl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Rl||{}),wl=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))(wl||{}),Fa=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Fa||{});var bl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(bl||{});var WI=W(require("lodash")),Or=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Or||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),pn=(e=>(e.RANGE="range",e))(pn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function ka(t){return Object.values(Ti).includes(t)}function Uh(t){return Object.values(Or).includes(t)}function Mh(t){return Object.values(Jt).includes(t)}function Ba(t){return Object.values(pn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Fh=t=>typeof t=="object"&&t._id&&t._rev;var Os=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Os||{});var kh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACE_APPS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var YB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var xs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(xs||{});var Ga=(f=>(f.APP="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))(Ga||{});var $a=t=>t.hosting==="cloud";var Va=t=>t.authType==="sso";var D="_",Ge="\uFFF0",xr=t=>`${t}${D}`,ye=(Q=>(Q.USER="us",Q.GROUP="gr",Q.WORKSPACE="workspace",Q.CONFIG="config",Q.TEMPLATE="template",Q.APP="app",Q.DEV="dev",Q.APP_DEV="app_dev",Q.APP_METADATA="app_metadata",Q.ROLE="role",Q.DEV_INFO="devinfo",Q.AUTOMATION_LOG="log_au",Q.ACCOUNT_METADATA="acc_metadata",Q.PLUGIN="plg",Q.DATASOURCE="datasource",Q.DATASOURCE_PLUS="datasource_plus",Q.APP_BACKUP="backup",Q.TABLE="ta",Q.ROW="ro",Q.AUTOMATION="au",Q.LINK="li",Q.WEBHOOK="wh",Q.INSTANCE="inst",Q.LAYOUT="layout",Q.SCREEN="screen",Q.QUERY="query",Q.DEPLOYMENTS="deployments",Q.METADATA="metadata",Q.MEM_VIEW="view",Q.USER_FLAG="flag",Q.AUTOMATION_METADATA="meta_au",Q.AUDIT_LOG="al",Q.SCIM_LOG="scimlog",Q.ROW_ACTIONS="ra",Q.OAUTH2_CONFIG="oauth2",Q.OAUTH2_CONFIG_LOG="oauth2log",Q.AGENT_CHAT="agentchat",Q.AGENT_TOOL_SOURCE="agenttoolsource",Q.WORKSPACE_APP="workspace_app",Q))(ye||{}),MG=Object.values(ye).sort((t,e)=>e.length-t.length);var Rr=(e=>(e.USER_METADATA="ta_users",e))(Rr||{}),Dl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Dl||{}),FG=Object.values(Dl).sort((t,e)=>e.length-t.length);var ee=(l=>(l.OBJECT="object",l.STRING="string",l.BOOLEAN="boolean",l.NUMBER="number",l.ARRAY="array",l.JSON="json",l.DATE="date",l.DATETIME="datetime",l.ATTACHMENT="attachment",l.LONGFORM="longform",l))(ee||{}),pe=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R))(pe||{}),_t=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(_t||{});var ue=(I=>(I.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",I.CREATE_ROW="CREATE_ROW",I.UPDATE_ROW="UPDATE_ROW",I.DELETE_ROW="DELETE_ROW",I.EXECUTE_BASH="EXECUTE_BASH",I.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",I.EXECUTE_SCRIPT="EXECUTE_SCRIPT",I.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",I.EXECUTE_QUERY="EXECUTE_QUERY",I.SERVER_LOG="SERVER_LOG",I.DELAY="DELAY",I.FILTER="FILTER",I.API_REQUEST="API_REQUEST",I.QUERY_ROWS="QUERY_ROWS",I.LOOP="LOOP",I.COLLECT="COLLECT",I.OPENAI="OPENAI",I.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",I.BRANCH="BRANCH",I.CLASSIFY_CONTENT="CLASSIFY_CONTENT",I.PROMPT_LLM="PROMPT_LLM",I.TRANSLATE="TRANSLATE",I.SUMMARISE="SUMMARISE",I.GENERATE_TEXT="GENERATE_TEXT",I.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",I.discord="discord",I.slack="slack",I.zapier="zapier",I.integromat="integromat",I.n8n="n8n",I))(ue||{}),Bh=[...Object.values(ue),...Object.values(_t)];var Cl=(a=>(a.EMAIL="email",a.DOCUMENT="document",a.BLOG_POST="blog_post",a.CHAT_MESSAGE="chat_message",a.LETTER="letter",a.PROPOSAL="proposal",a.OTHER="other",a))(Cl||{}),Gh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},vl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(vl||{}),Nl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Nl||{});var Pl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Pl||{});var Ll=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Ll||{});var Ul="bb_internal";var $h=["attachment_single","attachment","signature_single","bb_reference","json","array"];function qa(t){return!!t.providerType}var Ml=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ml||{});var tV=Object.values(Ml);var oV=["rows","queries","automations"],aV=["queries","automations"];var ne;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ne||(ne={}));var kl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(kl||(kl={}));var M=ne.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),wr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},x=ne.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),KI=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,ne.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var Ii=(t,e)=>{let r;switch(t.code){case x.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ne.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${ne.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ne.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${ne.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:ne.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case x.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,ne.assertNever(t)}return{message:r}},Wh=Ii;function YI(t){Wh=t}function Wa(){return Wh}var Qa=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},JI=[];function P(t,e){let r=Wa(),n=Qa({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ii?void 0:Ii].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Bl=t=>t.status==="aborted",Gl=t=>t.status==="dirty",bs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function ja(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Qh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var Rs,ws,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Vh=(t,e)=>{if(bs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return wr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:wr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:wr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ds(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:wr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Vh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:wr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ds(i)?i:Promise.resolve(i));return Vh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:x.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Ze({schema:this,typeName:K.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return $t.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xt.create(this,this._def)}promise(){return Cr.create(this,this._def)}or(e){return An.create([this,e],this._def)}and(e){return Sn.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:K.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,defaultValue:r,typeName:K.ZodDefault})}brand(){return new Cs({typeName:K.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,catchValue:r,typeName:K.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return vs.create(this,e)}readonly(){return bn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},zI=/^c[^\s-]{8,}$/i,ZI=/^[0-9a-z]+$/,XI=/^[0-9A-HJKMNP-TV-Z]{26}$/,eO=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,tO=/^[a-z0-9_-]{21}$/i,rO=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,nO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,iO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Fl,sO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,oO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,aO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,jh="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",uO=new RegExp(`^${jh}$`);function Hh(t){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`),e}function cO(t){return new RegExp(`^${Hh(t)}$`)}function Kh(t){let e=`${jh}T${Hh(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function lO(t,e){return!!((e==="v4"||!e)&&sO.test(t)||(e==="v6"||!e)&&oO.test(t))}var br=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.string,received:s.parsedType}),J}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?P(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")nO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Fl||(Fl=new RegExp(iO,"u")),Fl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")eO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")tO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")zI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")ZI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")XI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),P(i,{validation:"url",code:x.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"regex",code:x.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Kh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?uO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?cO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?rO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?lO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?aO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):ne.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:x.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};br.create=t=>{var e;return new br({checks:[],typeName:K.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function dO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.number,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?ne.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?dO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_finite,message:s.message}),i.dirty()):ne.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&ne.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};mn.create=t=>new mn({checks:[],typeName:K.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var hn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.bigint,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ne.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};hn.create=t=>{var e;return new hn({checks:[],typeName:K.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var gn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.boolean,received:n.parsedType}),J}return $e(e.data)}};gn.create=t=>new gn({typeName:K.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var yn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_date}),J}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ne.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};yn.create=t=>new yn({checks:[],coerce:t?.coerce||!1,typeName:K.ZodDate,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.symbol,received:n.parsedType}),J}return $e(e.data)}};Oi.create=t=>new Oi({typeName:K.ZodSymbol,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.undefined,received:n.parsedType}),J}return $e(e.data)}};En.create=t=>new En({typeName:K.ZodUndefined,...Z(t)});var Tn=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.null,received:n.parsedType}),J}return $e(e.data)}};Tn.create=t=>new Tn({typeName:K.ZodNull,...Z(t)});var Dr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};Dr.create=t=>new Dr({typeName:K.ZodAny,...Z(t)});var Zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};Zt.create=t=>new Zt({typeName:K.ZodUnknown,...Z(t)});var It=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:x.invalid_type,expected:M.never,received:r.parsedType}),J}};It.create=t=>new It({typeName:K.ZodNever,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.void,received:n.parsedType}),J}return $e(e.data)}};xi.create=t=>new xi({typeName:K.ZodVoid,...Z(t)});var Xt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return P(r,{code:x.invalid_type,expected:M.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?x.too_big:x.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:x.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:x.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return ke.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};Xt.create=(t,e)=>new Xt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:K.ZodArray,...Z(e)});function Si(t){if(t instanceof je){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Si(n))}return new je({...t._def,shape:()=>e})}else return t instanceof Xt?new Xt({...t._def,type:Si(t.element)}):t instanceof dt?dt.create(Si(t.unwrap())):t instanceof $t?$t.create(Si(t.unwrap())):t instanceof Gt?Gt.create(t.items.map(e=>Si(e))):t}var je=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=ne.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return P(c,{code:x.invalid_type,expected:M.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof It&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],f=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,f,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof It){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:x.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let f=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,f,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let f=await l.key,m=await l.value;c.push({key:f,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:K.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return ne.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return ne.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Si(this)}partial(e){let r={};return ne.objectKeys(this.shape).forEach(n=>{let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}),new t({...this._def,shape:()=>r})}required(e){let r={};return ne.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return Yh(ne.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:It.create(),typeName:K.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:It.create(),typeName:K.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:It.create(),typeName:K.ZodObject,...Z(e)});var An=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return P(r,{code:x.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return P(r,{code:x.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};An.create=(t,e)=>new An({options:t,typeName:K.ZodUnion,...Z(e)});var zt=t=>t instanceof _n?zt(t.schema):t instanceof Ze?zt(t.innerType()):t instanceof In?[t.value]:t instanceof On?t.options:t instanceof xn?ne.objectValues(t.enum):t instanceof Rn?zt(t._def.innerType):t instanceof En?[void 0]:t instanceof Tn?[null]:t instanceof dt?[void 0,...zt(t.unwrap())]:t instanceof $t?[null,...zt(t.unwrap())]:t instanceof Cs||t instanceof bn?zt(t.unwrap()):t instanceof wn?zt(t._def.innerType):[],Ha=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return P(r,{code:x.invalid_type,expected:M.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:x.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:K.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function $l(t,e){let r=wr(t),n=wr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=ne.objectKeys(e),s=ne.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=$l(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=$l(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var Sn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Bl(s)||Bl(o))return J;let a=$l(s.value,o.value);return a.valid?((Gl(s)||Gl(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:x.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Sn.create=(t,e,r)=>new Sn({left:t,right:e,typeName:K.ZodIntersection,...Z(r)});var Gt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return P(n,{code:x.invalid_type,expected:M.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Gt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Gt({items:t,typeName:K.ZodTuple,rest:null,...Z(e)})};var Ka=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return P(n,{code:x.invalid_type,expected:M.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?ke.mergeObjectAsync(r,i):ke.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:K.ZodRecord,...Z(n)}):new t({keyType:br.create(),valueType:e,typeName:K.ZodRecord,...Z(r)})}},Ri=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.map)return P(n,{code:x.invalid_type,expected:M.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ri.create=(t,e,r)=>new Ri({valueType:e,keyType:t,typeName:K.ZodMap,...Z(r)});var wi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return P(n,{code:x.invalid_type,expected:M.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:x.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:x.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};wi.create=(t,e)=>new wi({valueType:t,minSize:null,maxSize:null,typeName:K.ZodSet,...Z(e)});var Ya=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return P(r,{code:x.invalid_type,expected:M.function,received:r.parsedType}),J;function n(a,u){return Qa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Wa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return Qa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Wa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Cr){let a=this;return $e(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),f=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(f,s).catch(p=>{throw c.addIssue(i(f,p)),c})})}else{let a=this;return $e(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),f=a._def.returns.safeParse(l,s);if(!f.success)throw new ze([i(l,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Gt.create(e).rest(Zt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Gt.create([]).rest(Zt.create()),returns:r||Zt.create(),typeName:K.ZodFunction,...Z(n)})}},_n=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};_n.create=(t,e)=>new _n({getter:t,typeName:K.ZodLazy,...Z(e)});var In=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:x.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};In.create=(t,e)=>new In({value:t,typeName:K.ZodLiteral,...Z(e)});function Yh(t,e){return new On({values:t,typeName:K.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),Rs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:ne.joinValues(n),received:r.parsedType,code:x.invalid_type}),J}if(ja(this,Rs,"f")||Qh(this,Rs,new Set(this._def.values),"f"),!ja(this,Rs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:x.invalid_enum_value,options:n}),J}return $e(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};Rs=new WeakMap;On.create=Yh;var xn=class extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){let r=ne.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=ne.objectValues(r);return P(n,{expected:ne.joinValues(i),received:n.parsedType,code:x.invalid_type}),J}if(ja(this,ws,"f")||Qh(this,ws,new Set(ne.getValidEnumValues(this._def.values)),"f"),!ja(this,ws,"f").has(e.data)){let i=ne.objectValues(r);return P(n,{received:n.data,code:x.invalid_enum_value,options:i}),J}return $e(e.data)}get enum(){return this._def.values}};ws=new WeakMap;xn.create=(t,e)=>new xn({values:t,typeName:K.ZodNativeEnum,...Z(e)});var Cr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return P(r,{code:x.invalid_type,expected:M.promise,received:r.parsedType}),J;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return $e(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Cr.create=(t,e)=>new Cr({type:t,typeName:K.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===K.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?_i(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?_i(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!bs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>bs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);ne.assertNever(i)}};Ze.create=(t,e,r)=>new Ze({schema:t,typeName:K.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:K.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:K.ZodOptional,...Z(e)});var $t=class extends X{_parse(e){return this._getType(e)===M.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};$t.create=(t,e)=>new $t({innerType:t,typeName:K.ZodNullable,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:K.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Ds(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:K.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var bi=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:K.ZodNaN,...Z(t)});var pO=Symbol("zod_brand"),Cs=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},vs=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),_i(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:K.ZodPipeline})}},bn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(bs(i)&&(i.value=Object.freeze(i.value)),i);return Ds(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:K.ZodReadonly,...Z(e)});function Jh(t,e={},r){return t?Dr.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):Dr.create()}var fO={object:je.lazycreate},K;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(K||(K={}));var mO=(t,e={message:`Input not instance of ${t.name}`})=>Jh(r=>r instanceof t,e),zh=br.create,Zh=mn.create,hO=bi.create,gO=hn.create,Xh=gn.create,yO=yn.create,EO=Oi.create,TO=En.create,AO=Tn.create,SO=Dr.create,_O=Zt.create,IO=It.create,OO=xi.create,xO=Xt.create,RO=je.create,wO=je.strictCreate,bO=An.create,DO=Ha.create,CO=Sn.create,vO=Gt.create,NO=Ka.create,PO=Ri.create,LO=wi.create,UO=Ya.create,MO=_n.create,FO=In.create,kO=On.create,BO=xn.create,GO=Cr.create,qh=Ze.create,$O=dt.create,VO=$t.create,qO=Ze.createWithPreprocess,WO=vs.create,QO=()=>zh().optional(),jO=()=>Zh().optional(),HO=()=>Xh().optional(),KO={string:t=>br.create({...t,coerce:!0}),number:t=>mn.create({...t,coerce:!0}),boolean:t=>gn.create({...t,coerce:!0}),bigint:t=>hn.create({...t,coerce:!0}),date:t=>yn.create({...t,coerce:!0})},YO=J,re=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:YI,getErrorMap:Wa,makeIssue:Qa,EMPTY_PATH:JI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:$e,isAborted:Bl,isDirty:Gl,isValid:bs,isAsync:Ds,get util(){return ne},get objectUtil(){return kl},ZodParsedType:M,getParsedType:wr,ZodType:X,datetimeRegex:Kh,ZodString:br,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Oi,ZodUndefined:En,ZodNull:Tn,ZodAny:Dr,ZodUnknown:Zt,ZodNever:It,ZodVoid:xi,ZodArray:Xt,ZodObject:je,ZodUnion:An,ZodDiscriminatedUnion:Ha,ZodIntersection:Sn,ZodTuple:Gt,ZodRecord:Ka,ZodMap:Ri,ZodSet:wi,ZodFunction:Ya,ZodLazy:_n,ZodLiteral:In,ZodEnum:On,ZodNativeEnum:xn,ZodPromise:Cr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:dt,ZodNullable:$t,ZodDefault:Rn,ZodCatch:wn,ZodNaN:bi,BRAND:pO,ZodBranded:Cs,ZodPipeline:vs,ZodReadonly:bn,custom:Jh,Schema:X,ZodSchema:X,late:fO,get ZodFirstPartyTypeKind(){return K},coerce:KO,any:SO,array:xO,bigint:gO,boolean:Xh,date:yO,discriminatedUnion:DO,effect:qh,enum:kO,function:UO,instanceof:mO,intersection:CO,lazy:MO,literal:FO,map:PO,nan:hO,nativeEnum:BO,never:IO,null:AO,nullable:VO,number:Zh,object:RO,oboolean:HO,onumber:jO,optional:$O,ostring:QO,pipeline:WO,preprocess:qO,promise:GO,record:NO,set:LO,strictObject:wO,string:zh,symbol:EO,transformer:qh,tuple:vO,undefined:TO,union:bO,unknown:_O,void:OO,NEVER:YO,ZodIssueCode:x,quotelessJson:KI,ZodError:ze});var Dn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Dn||{}),Ja=(r=>(r.STRING="string",r.NUMBER="number",r))(Ja||{});var eu=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),eg=re.record(eu,re.string()),za=re.record(eu,re.any()),Za=re.record(eu,re.union([re.any().array(),re.string()])),tg=re.lazy(()=>re.object({conditions:re.array(re.object(rg))})),Xa=re.union([re.string(),re.number()]),rg={string:eg.optional(),fuzzy:eg.optional(),range:re.record(eu,re.union([re.object({high:Xa,low:Xa}),re.object({high:Xa}),re.object({low:Xa})])).optional(),equal:za.optional(),notEqual:za.optional(),empty:za.optional(),notEmpty:za.optional(),oneOf:Za.optional(),contains:Za.optional(),notContains:Za.optional(),containsAny:Za.optional(),$and:tg.optional(),$or:tg.optional()},rq=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Ai).optional(),...rg}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(Dn).optional(),sortType:re.nativeEnum(Ja).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Np={};N(Np,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>xp,Config:()=>vp,Cookie:()=>Yn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DesignDocuments:()=>Wu,DocumentType:()=>ye,GlobalRole:()=>Cp,Header:()=>Xe,InternalTable:()=>Rr,MAX_VALID_DATE:()=>ju,MIN_VALID_DATE:()=>NT,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UserStatus:()=>Qu,ViewName:()=>Br});var AW={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Xe=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Xe||{});var OW={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"],json:["json","array","attachment","attachment_single","bb_reference","signature_single"]};var CW="darkest",vW="light",ZO=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var et={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"}},ng={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Di="datasource_internal_bb_default";var Fr={};N(Fr,{ColumnSplitter:()=>lp,NoEmptyFilterStrings:()=>OT,buildQuery:()=>xT,cleanupQuery:()=>fp,fixupFilterArrays:()=>hp,getKeyNumbering:()=>mp,getValidOperatorsForType:()=>OC,hasFilters:()=>dp,limit:()=>wT,recurseLogicalOperators:()=>pp,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>wC,sort:()=>RT,splitFiltersArray:()=>ru});var Qi=W(ig());var Ci={};N(Ci,{filterValueToLabel:()=>ix,hasSchema:()=>sx,isSupportedUserSearch:()=>og,parallelForeach:()=>nx,processSearchFilters:()=>Wl,toMap:()=>ax,trimOtherProps:()=>ox,unreachable:()=>rx});var sg=W(require("lodash")),tx=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function rx(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function nx(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function ix(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function sx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function ox(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function og(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(ka(s)){for(let c of t[s].conditions)if(!og(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function Wl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ru(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=sg.default.pick(i,tx);return s.field=tu(s.field),s})}]}}function ax(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var jt={};N(jt,{cancelableTimeout:()=>ag,cron:()=>ip,deepGet:()=>Ql,duplicateName:()=>AC,getSequentialName:()=>SC,getUserColor:()=>cx,getUserInitials:()=>ux,getUserLabel:()=>lx,isGoogleSheets:()=>px,isSQL:()=>fx,lists:()=>cp,retry:()=>mx,roles:()=>up,schema:()=>Ao,views:()=>ap,wait:()=>jl,withTimeout:()=>dx});var Ql=(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},ux=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"},cx=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%)`},lx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function ag(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function dx(t,e){let[r,n]=ag(t),i=await Promise.race([e(),r]);return n(),i}function px(t){return t==="GOOGLE_SHEETS"}function fx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function jl(t){return new Promise(e=>setTimeout(e,t))}async function mx(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 s=1.5**i*1e3*(Math.random()+.5);await jl(s);try{return await t()}catch(o){n=o}}throw n}var ip={};N(ip,{getNextExecutionDates:()=>sC,validate:()=>oC});var TT=W(Vt()),AT=W(yT()),ET="(Input cron: ",nC={"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 iC(t){let e=[];for(let r of t){r.includes(ET)&&(r=r.split(ET)[0].trim());for(let[n,i]of Object.entries(nC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function sC(t,e=4){let r=AT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function oC(t){let e=(0,TT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:iC(e.getError())}}var Ao={};N(Ao,{decodeNonAscii:()=>sp,encodeNonAscii:()=>cC,isDeprecatedSingleUserColumn:()=>aC,isNumeric:()=>lC,isRequired:()=>uC});function aC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function uC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function cC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function sp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function lC(t){return t.type==="number"||t.type==="bigint"}var ap={};N(ap,{basicFields:()=>hC,calculationFields:()=>mC,hasCalculationFields:()=>fC,isBasicViewField:()=>dC,isCalculationField:()=>So,isCalculationView:()=>pC,isV2:()=>gC,isVisible:()=>ST});var op=require("lodash");function So(t){return"calculationType"in t}function dC(t){return!So(t)}function pC(t){return t.type==="calculation"}function fC(t){return Object.values(t.schema||{}).some(So)}function mC(t){return(0,op.pickBy)(t.schema||{},So)}function ST(t){return t.visible!==!1}function hC(t,e){let{visible:r=!0}=e||{};return(0,op.pickBy)(t.schema||{},n=>!So(n)&&(!r||ST(n)))}function gC(t){return t.version===2}var up={};N(up,{checkForRoleInheritanceLoops:()=>EC});function yC(t){return`role${D}${t}`}function EC(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=yC(s);if(n.has(s)||n.has(o))return!0;if(r.has(s)||r.has(o))return!1;n.add(s);let a=e.get(o)||e.get(s);if(!a)return n.delete(s),!1;let u=Array.isArray(a.inherits)?a.inherits:[a.inherits];for(let c of u)if(c&&i(c))return!0;return n.delete(s),r.add(s),!1}return!!t.find(s=>i(s._id))}var cp={};N(cp,{punctuateList:()=>TC});function TC(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]}var AC=(t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),s=[];e.filter(a=>{if(a===n)return!0;let u=a.match(i);return u?(s.push(parseInt(u[1])),!0):!1}),s.sort((a,u)=>a-u);let o;if(s.length===0)o=1;else{for(let a=0;a<s.length;a++)if(s[a]!==a+1){o=a+1;break}o||(o=s.length+1)}return`${n} ${o}`},SC=(t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let s=e.trim(),o=n?`${e}1`:s;if(!t?.length)return o;let a=0;return t.forEach(u=>{let c=r?.(u)??u;if(typeof c!="string"||!c.startsWith(s))return;let l=c.split(s);if(l.length!==2)return;l[1].trim()===""&&(l[1]="1");let f=parseInt(l[1]);f>a&&(a=f)}),a===0?o:`${e}${i}${a+1}`};var Kn=require("lodash");var _C=/{{([^{].*?)}}/g,IT=Object.values(Ti),IC=[...Object.values(Or),...Object.values(Jt),...Object.values(pn)],OC=(t,e,r)=>{let n=et,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||Ao.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"?o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]:a==="barcodeqr"&&(o=i);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},OT=[et.StartsWith.value,et.Like.value,et.Equals.value,et.NotEquals.value,et.Contains.value,et.NotContains.value,et.ContainsAny.value,et.In.value];function pp(t,e){for(let r of IT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var fp=t=>{for(let e of OT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,s]of Object.entries(t[r]))(s==null||s===""||xC(s))&&delete t[e][i]}return t=pp(t,fp),t};function xC(t){return Array.isArray(t)&&t.length===0}var tu=t=>mp(t).key,mp=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}},lp=class{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}=mp(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=sp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function RC(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:s}=t,{value:o}=t;(r==="empty"||r==="notEmpty")&&(o=null);let a=typeof o=="string"&&(o.match(_C)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;if(typeof o=="string")o=new Date(o).toISOString();else if(Ba(r))return e[r]??={},e[r][n]=o,e}break;case"number":typeof o=="string"&&!a&&(r==="oneOf"?o=o.split(",").map(parseFloat):o=parseFloat(o));break;case"boolean":o=`${o}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof o=="string"&&(o=o.split(","));break}if(Ba(r)){let c=ng[s]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?c.min:"0000-00-00T00:00:00.000Z",high:i==="number"?c.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],high:o};else if(r==="rangeLow"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],low:o};else if(Uh(r)||Mh(r)||Ba(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function ru(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}function xT(t){if(!t)return{};if(Array.isArray(t)&&(t=Wl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=_T(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=xT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=ru(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=_T(n.logicalOperator)),{[a]:{conditions:o.map(RC).filter(u=>u)}}})},e}function _T(t){return t==="all"?"$and":"$or"}function hp(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Kn.isPlainObject)(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(s=>s.trim()):r[n]=[i]}}return pp(t,hp),t}function wC(t,e){let r=Mu(t,e.query);e.sort&&(r=RT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=wT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Mu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=fp(e),e=hp(e),!dp(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[b,k]of Object.entries(e[T]||{})){let de=ka(T)?B:Ql(B,tu(b)),cn=_(de,k);if(e.allOr&&cn)return!0;if(!e.allOr&&!cn)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,Kn.isPlainObject)(_.low)&&(0,Kn.isEmpty)(_.low)&&(_.low=void 0),(0,Kn.isPlainObject)(_.high)&&(0,Kn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let k=+_.low,de=+_.high;if(!isNaN(k)&&!isNaN(de))return B>=k&&B<=de;if(isNaN(k)){if(!isNaN(de))return B<=de}else return B>=k}let b=(0,Qi.default)(T);if(b.isValid()){let k=(0,Qi.default)(_.low||"0000-00-00T00:00:00.000Z"),de=(0,Qi.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&de.isValid())return b.isAfter(k)&&b.isBefore(de)||b.isSame(k)||b.isSame(de);if(k.isValid())return b.isAfter(k)||b.isSame(k);if(de.isValid())return b.isBefore(de)||b.isSame(de)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let b of T)if(o(b,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,Qi.default)(T);if(B.isValid()){let b=(0,Qi.default)(_);if(b.isValid())return B.isSame(b)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,f=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),d=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(b=>parseFloat(b)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](b=>o(_,b)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:d("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(d("every"))(T,_)),y=r("containsAny",d("some")),S=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Mu([T],B).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Mu([T],{...B,allOr:!0}).length)return!0;return!1}),R=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:f,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:S,$or:O},B=Object.entries(e||{}).filter(([b,k])=>!["allOr","onEmptyFilter"].includes(b)&&k&&Object.keys(k).length>0).map(([b])=>_[b]?.(T)??!1);return dp(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}function RT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function wT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var dp=t=>{if(!t)return!1;let e=r=>{for(let n of IT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of IC){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var ot={};N(ot,{applications:()=>yp,automations:()=>Ep,screens:()=>Ip,users:()=>_p});var yp={};N(yp,{getDevAppID:()=>bC,getProdAppID:()=>Fu});var gp=xr("app"),_o=xr("app_dev");function bC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(_o))return t;let e=t.split(gp);e.shift();let r=e.join(gp);return`${_o}${r}`}function Fu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(_o))return t;let e=t.split(_o);e.shift();let r=e.join(_o);return`${gp}${r}`}var Ep={};N(Ep,{isAppAction:()=>vC,isRowAction:()=>DC,isWebhookAction:()=>CC});function DC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function CC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function vC(t){return t.definition.trigger?.stepId==="APP"}var _p={};N(_p,{canCreateApps:()=>NC,containsUserID:()=>kC,getGlobalUserID:()=>FC,getUserAppGroups:()=>BC,getUserGroups:()=>Sp,hasAdminPermissions:()=>Ap,hasAppBuilderPermissions:()=>Gu,hasAppCreatorPermissions:()=>bT,hasBuilderPermissions:()=>UC,hasCreatorPermissions:()=>$u,isAdmin:()=>Bu,isAdminOrBuilder:()=>PC,isAdminOrGlobalBuilder:()=>LC,isBuilder:()=>Tp,isCreator:()=>MC,isGlobalBuilder:()=>ku,userAppAccessList:()=>GC});var kr=W(require("lodash/fp"));function Tp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Fu(e))):!1}function ku(t){return Tp(t)&&!Gu(t)||Bu(t)}function NC(t){return ku(t)||$u(t)}function Bu(t){return t?Ap(t):!1}function PC(t,e){return Tp(t,e)||Bu(t)}function LC(t){return ku(t)||Bu(t)}function Gu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function bT(t){return t?kr.flow(kr.get("roles"),kr.values,kr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function UC(t){return t?t.builder?.global||Gu(t)||$u(t):!1}function Ap(t){return t?!!t.admin?.global:!1}function $u(t){return t?!!t.builder?.creator:!1}function MC(t){return t?ku(t)||Ap(t)||$u(t)||Gu(t)||bT(t):!1}function FC(t){if(typeof t!="string")return t;let e=`ro${D}ta_users${D}`;return t.startsWith(e)?t.split(e)[1]:t}function kC(t){return typeof t!="string"?!1:t.includes(`us${D}`)}function Sp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function BC(t,e,r){let n=Fu(t);return Sp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function GC(t,e){let n=Sp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Ip={};N(Ip,{findInSettings:()=>$C});function $C(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var $j={string:!0,longform:!0,options:!0,number:!0,datetime:!0,formula:!0,ai:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!1,array:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,json:!1,bb_reference:!1,bb_reference_single:!1},Vj={string:!0,longform:!0,options:!0,number:!0,datetime:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!0,json:!0,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,array:!1,link:!1,bb_reference:!1,bb_reference_single:!1},qj={number:!0,json:!0,datetime:!0,longform:!0,string:!0,options:!0,array:!0,bigint:!0,boolean:!0,auto:!1,internal:!1,barcodeqr:!1,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,bb_reference:!0,bb_reference_single:!0};var zj={name:"Bash Scripting",tagline:"Execute a bash command",icon:"JourneyEvent",description:"Run a bash script",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"EXECUTE_BASH",inputs:{},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{stdout:{type:"string",description:"Standard output of your bash command or script"},success:{type:"boolean",description:"Whether the command was successful"}},required:["stdout"]}}};var eH={name:"Branch",icon:"Branch3",tagline:"Branch from this step",description:"Branching",stepId:"BRANCH",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{branches:{properties:{name:{type:"string"},condition:{customType:"filters"}}},children:{type:"array"}},required:["conditions"]},outputs:{properties:{branchName:{type:"string"},status:{type:"string",description:"Branch result"},branchId:{type:"string",description:"Branch ID"},success:{type:"boolean",description:"Branch success"}},required:["output"]}},type:"LOGIC"};var nH={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"Collection",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var oH={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var cH={name:"Delay",icon:"Clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var pH={description:"Delete a row from your database",icon:"TableRowRemoveCenter",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var hH={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var EH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"Data",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var SH={name:"API Request",tagline:"Execute a REST request",icon:"GlobeGrid",description:"Execute a HTTP query from a REST datasource",type:"ACTION",stepId:"API_REQUEST",internal:!0,new:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var OH={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var wH={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!1,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var XC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},CH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Pl),pretty:Object.values(XC)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var PH={name:"Looping",icon:"Reuse",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var MH={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var BH={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Ll)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var DT=(i=>(i.GPT_4O_MINI="gpt-4o-mini",i.GPT_4O="gpt-4o",i.GPT_4="gpt-4",i.GPT_35_TURBO="gpt-3.5-turbo",i))(DT||{}),VH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(DT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var CT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(CT||{}),QH={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(CT),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var ov={ascending:"Ascending",descending:"Descending"},KH={description:"Query rows from the database",icon:"Search",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(Dn),pretty:Object.values(ov)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var zH={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"Email",name:"Send Email (SMTP)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SEND_EMAIL_SMTP",inputs:{},schema:{inputs:{properties:{to:{type:"string",title:"Send To"},from:{type:"string",title:"Send From"},cc:{type:"string",title:"CC"},bcc:{type:"string",title:"BCC"},subject:{type:"string",title:"Email Subject"},contents:{type:"longform",title:"Message",description:"Use markdown or HTML for rich text formatting: **bold**, _italics_, # Headings, * Bullets, <br> for line breaks, and more."},addInvite:{type:"boolean",title:"Add calendar invite"},startTime:{type:"date",title:"Start Time",dependsOn:"addInvite"},endTime:{type:"date",title:"End Time",dependsOn:"addInvite"},summary:{type:"string",title:"Meeting Summary",dependsOn:"addInvite"},location:{type:"string",title:"Location",dependsOn:"addInvite"},attachments:{type:"attachment",customType:"multi_attachments",title:"Attachments"}},required:["to","from","subject","contents"]},outputs:{properties:{success:{type:"boolean",description:"Whether the email was sent"},response:{type:"object",description:"A response from the email client, this may be an error"}},required:["success"]}}};var eK={name:"Backend log",tagline:"Console log a value in the backend",icon:"Monitoring",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var nK={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var oK={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"Sync",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"Automation Fields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var cK={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"Refresh",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var pK={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var hK={name:"Classify Text",icon:"PageTag",tagline:"Classify text into predefined categories using AI",description:"Analyzes text and assigns it to one of the categories you provide.",stepId:"CLASSIFY_CONTENT",internal:!0,inputs:{},schema:{inputs:{properties:{textInput:{type:"longform",title:"Text",description:"The text content you want the AI to classify."},categoryItems:{type:"array",customType:"categories",title:"Categories",description:"Add categories for the AI to use when classifying text."}},required:["textInput","categoryItems"]},outputs:{properties:{category:{type:"string",description:"The category assigned by the AI."},success:{type:"boolean",description:"Whether the classification was successful."}},required:["category","success"]}},type:"ACTION"};var EK={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var SK={name:"Translate",tagline:"Translate text to a different language",icon:"GlobeGrid",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var vT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(vT||{}),OK={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(vT)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var wK={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(Cl),pretty:Object.values(Gh)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var CK={name:"Extract Document Data",icon:"Document",tagline:"Extract structured data from documents using AI",description:"Extracts structured data from PDF or image according to provided schema.",stepId:"EXTRACT_FILE_DATA",internal:!0,inputs:{},schema:{inputs:{properties:{file:{type:"string",title:"Document",description:"Attachment or Link to the document to extract data from."},source:{type:"string",enum:Object.values(vl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Nl),title:"File Type",description:"The type of file at the URL."},schema:{customType:"triggerSchema",title:"Data schema",description:'Schema defining the structure of data to extract. Example: {"name": "string", "price": "number"}.'}},required:["file","schema"]},outputs:{properties:{data:{type:"json",description:"The structured data extracted from the document."},success:{type:"boolean",description:"Whether the extraction was successful."}},required:["data","success"]}},type:"ACTION"};var Sv={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var Iv={name:"Cron Trigger",event:"cron:trigger",icon:"Clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var xv={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var wv={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Dv={name:"Row Updated",event:"row:update",icon:"Refresh",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var vv={name:"Webhook",event:"web:trigger",icon:"Send",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var Pv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var Vu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Vu||{}),Br=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(Br||{}),Hi={by_email2:["by_email"]},Te={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"}},gt=xr("app"),qu=xr("app_dev"),yt=qu,Op="internal",xp="budibase",Ht="_design/sqlite",Rp="ta_bb_jobs",wp="ta_bb_inventory",bp="ta_bb_expenses",Dp="ta_bb_employee",Wu=(r=>(r[r.SQLITE=Ht]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Wu||{});var Qu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Qu||{}),Yn=(o=>(o.Auth="budibase:auth",o.Init="budibase:init",o.ACCOUNT_RETURN_URL="budibase:account:returnurl",o.DatasourceAuth="budibase:datasourceauth",o.OIDC_CONFIG="budibase:oidc:config",o.FeatureFlags="budibase:featureflags",o))(Yn||{}),Cp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Cp||{}),vp=(u=>(u.SETTINGS="settings",u.ACCOUNT="account",u.SMTP="smtp",u.GOOGLE="google",u.OIDC="oidc",u.OIDC_LOGOS="logos_oidc",u.SCIM="scim",u.AI="AI",u))(vp||{}),NT=new Date(-2147483647e3),ju=new Date(2147483647e3),Ae="default";var Ia={};N(Ia,{CacheKey:()=>Ce,TTL:()=>ni,app:()=>jo,bustCache:()=>ts,destroy:()=>Vo,docWritethrough:()=>Bm,generic:()=>qo,get:()=>ii,invite:()=>sm,keys:()=>cc,passwordReset:()=>Fm,store:()=>cr,user:()=>nn,withCache:()=>Qr,withCacheWithDynamicTTL:()=>oA,writethrough:()=>Mm});var qo={};N(qo,{CacheKey:()=>Ce,TTL:()=>ni,bustCache:()=>ts,destroy:()=>Vo,get:()=>ii,keys:()=>cc,store:()=>cr,withCache:()=>Qr,withCacheWithDynamicTTL:()=>oA});var Se={};N(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>vo,doInAppContext:()=>_N,doInAppMigrationContext:()=>ON,doInAutomationContext:()=>yN,doInContext:()=>Zp,doInEnvironmentContext:()=>RN,doInFeatureFlagOverrideContext:()=>of,doInIPContext:()=>tf,doInIdentityContext:()=>Oo,doInLicenseContext:()=>TN,doInScimContext:()=>wN,doInSelfHostTenantUsingCloud:()=>EN,doInTenant:()=>qe,ensureSnippetContext:()=>rA,getAppDB:()=>Xi,getAppId:()=>Le,getAuditLogDBName:()=>XT,getAuditLogsDB:()=>DN,getAutomationId:()=>Xp,getCurrentContext:()=>zn,getDevAppDB:()=>vN,getEnvironmentVariables:()=>bN,getFeatureFlagOverrides:()=>sf,getFeatureFlags:()=>rf,getGlobalDB:()=>oe,getGlobalDBName:()=>ur,getIP:()=>ef,getIdentity:()=>ar,getLicense:()=>AN,getPlatformURL:()=>zp,getProdAppDB:()=>CN,getProdAppId:()=>xN,getScimDBName:()=>fN,getSelfHostCloudDB:()=>SN,getTableForView:()=>NN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>j,identity:()=>Io,isMultiTenant:()=>Vr,isScim:()=>Pt,isSelfHostUsingCloud:()=>eA,isTenancyEnabled:()=>hN,isTenantIdSet:()=>mN,setFeatureFlags:()=>nf,setTableForView:()=>PN});var Io={};N(Io,{doInAccountContext:()=>Fv,doInIdentityContext:()=>Lp,doInUserContext:()=>Up,getAccountUserId:()=>PT,getIdentity:()=>Pp});function Pp(){return ar()}function Lp(t,e){return Oo(t,e)}function Up(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Lp(n,r)}function Fv(t,e){let r=PT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Lp(i,e)}function PT(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Yu=require("fs");var MT=require("lodash"),Mp=require("crypto"),xo=require("path"),kv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,xo.resolve)((0,xo.join)(__dirname,"..","..","..")),LT=!1;!LT&&Ku()&&!Fp()&&(require("dotenv").config({path:(0,xo.join)(kv,".env")}),LT=!0);function Fp(){return FT()}function FT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Ku(){return process.env.NODE_ENV!=="production"}function Bv(t){if(t)return parseInt(t)}var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},UT=!!parseInt(process.env.SELF_HOSTED||"");function Gv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function $v(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Vv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Yu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Yu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Ku()&&!Fp())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:""}}}function qv(){return Ct.SERVICE_TYPE==="worker"}function Wv(){return Ct.SERVICE_TYPE==="apps"}function Qv(){return Ct.BUDIBASE_ENVIRONMENT==="QA"}function jv(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}var Ct={isTest:Fp,isJest:FT,isDev:Ku,isWorker:qv,isApps:Wv,isQA:Qv,isProd:()=>!Ku(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Mp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Mp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Gv(),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_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,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",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:UT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,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||Ki.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Ki.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Ki.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Ki.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Ki.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Ki.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:jv(),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:$v(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:UT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Vv(),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,Ct[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,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:Bv(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,MT.cloneDeep)(Ct),r;for(r in t)Ct._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Ct._set(n,i)}}function kT(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var BT=["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"];for(let[t,e]of Object.entries(Ct))e==="0"&&(Ct[t]=0),e==="false"&&(Ct[t]=0);var h=Ct;var GT=require("async_hooks"),we=class t{static{this.storage=new GT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var kp="No app provided";function Gr(t){if(!t)throw kp;return t.startsWith(yt)}function Hv(t){if(!t)throw kp;return t.startsWith(gt)&&!Gr(t)}function wo(t){if(!t)throw kp;return Gr(t.appId)}function Ju(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var Kv=Ju;function at(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${gt}${r}`}function Yv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Bp(t),r,n;if(e.auth?.username)r=e.auth.username;else if(h.COUCH_DB_USERNAME)r=h.COUCH_DB_USERNAME;else if(!h.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(h.COUCH_DB_PASSWORD)n=h.COUCH_DB_PASSWORD;else if(!h.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),s=h.COUCH_DB_SQL_URL;if(h.isDev()&&!s)s="http://localhost:4006";else if(!s&&e.url){let o=new URL(e.url);s=e.url.replace(o.port,"4984")}return{url:e.url,sqlUrl:Bp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Bp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let f=l.split(":");r=f[0],n=f.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var zT=W(require("@budibase/nano"));var $T=W(require("node-fetch"));function zu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function VT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await bo({url:s,cookie:i,method:e,body:r})}async function bo({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,$T.default)(zu(encodeURI(t)),i)}async function Zu(t,e="GET",r){let n=await VT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Jn=W(require("pouchdb"));var qT,WT=!1,Gp=(t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Jn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Jn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Jn.default.plugin(i.plugin),Jn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Jn.default.plugin(i)}return Jn.default.defaults(n)};function Xu(t){qT=Gp(t),WT=!0}var zv=()=>{if(!WT)throw new Error("init has not been called")};function Et(t,e){zv();let r=new qT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Do(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var QT=require("uuid");function me(){return(0,QT.v4)().replace(/-/g,"")}var xe=W(require("dd-trace")),Yi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.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 xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.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 xe.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 xe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return xe.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 xe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.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 xe.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 xe.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 xe.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 xe.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 xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.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 xe.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 xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Kp={};N(Kp,{breakExternalTableId:()=>qp,breakRowIdField:()=>lN,buildExternalTableId:()=>iN,convertRowId:()=>cN,encodeTableId:()=>sN,encodeViewId:()=>oN,extractDate:()=>Qp,generateRowIdField:()=>aN,getNativeSql:()=>Ji,isExternalTable:()=>Vp,isExternalTableID:()=>ec,isInternalTableID:()=>nN,isRowId:()=>uN,isValidFilter:()=>rc,isValidISODateString:()=>tc,isValidISODateStringWithoutTimezone:()=>Wp,isValidTime:()=>jp,sqlLog:()=>Co,validateManyToMany:()=>Hp});var $p=`${D}${D}`,HT=/^\[.*]$/g,Zv=encodeURIComponent(" "),Xv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,eN=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,tN=/(\d{4}-\d{2}-\d{2})/,rN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function ec(t){return t.startsWith("datasource"+D)}function nN(t){return!ec(t)}function Ji(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}}function Vp(t){return t?.sourceId&&t.sourceId.includes("datasource"+D)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&ec(t._id))}function iN(t,e){return`${t}${$p}${encodeURIComponent(e)}`}function sN(t){return ec(t)?encodeURIComponent(t):t}function oN(t){return encodeURIComponent(t)}function qp(t){let e=t.split($p),r=e.shift(),n=e.join($p);if(n.includes(Zv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function aN(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,"'"))}function uN(t){return Array.isArray(t)||typeof t=="string"&&t.match(HT)!=null}function cN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(HT)!=null?t.substring(1,t.length-1):t}function lN(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]}}function tc(t){let e=t.trim();if(!Xv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Wp(t){let e=t.trim();if(!eN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Qp(t){let e=t.match(tN);if(e)return e[0]}function rc(t){return t!=null&&t!==""}function jp(t){return rN.test(t)}function Co(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function dN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Hp(t){if(dN(t))return t}var KT="Database does not exist.";function YT(t){return(0,zT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var $r=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"}};function pN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new zi(t,r,e);return new Yi(n)}var zi=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=YT(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=YT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await bo({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 $r(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===KT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new $r(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new $r(`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}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Fh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new $r(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=me()),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()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===KT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=zu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await bo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new $r("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${Ht}`;return Co("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,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(Ht)){let e=await this.get(Ht);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 $r(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ve(t,e){return new Yi(new zi(t,e))}async function ut(t,e,r){let n=Ve(t,r);return await e(n)}async function Yp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Zu(e)}async function Jp(t,e){let r=await Zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var ZT=null;function ur(t){return t||(t=j()),vo(t)}function XT(t){return t||(t=j()),t===Ae?Te.AUDIT_LOGS.name:`${t}${D}${Te.AUDIT_LOGS.name}`}function fN(t){return t||(t=j()),t===Ae?Te.SCIM_LOGS.name:`${t}${D}${Te.SCIM_LOGS.name}`}function vo(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${D}${Te.GLOBAL.name}`}function zp(){return h.PLATFORM_URL}function Vr(){return!!h.MULTI_TENANCY}function mN(){return!!we.get()?.tenantId}function hN(){return h.MULTI_TENANCY}function Zi(t){if(!t)return;if(!Vr())return Ae;let e=t.split(D),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function gN(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Nt(t,e){IN();let r=gN(t);return we.run(r,e)}async function yN(t){return await rA(),await Nt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Zp(t,e){let r=Zi(t);return Nt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Ae),Nt(t?{tenantId:t}:{},e)}async function EN(t,e){return Nt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function TN(t,e){return Nt({license:t},e)}function AN(){return we.get()?.license}function eA(){return!!we.get()?.isSelfHostUsingCloud}function SN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ve(Te.SELF_HOST_CLOUD.name)}async function _N(t,e){return tA(t,e)}async function tA(t,e,r){if(!t)throw new Error("appId is required");let n=Zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Nt(i,e)}async function Oo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Nt(r,e)}function IN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function ON(t,e){return tA(t,e,{isMigrating:!0})}function ar(){try{return we.get()?.identity}catch{}}function j(){if(!Vr())return Ae;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Xp(){return we.get()?.automationId}function Le(){let e=we.get()?.appId;return!e&&h.isTest()&&ZT?ZT:e}function ef(){return we.get()?.ip}var xN=()=>{let t=Le();if(!t)throw new Error("Could not get appId");return at(t)};function RN(t,e){if(!t)throw new Error("Must supply environment variables.");return Nt({environmentVariables:t},e)}function wN(t){return Nt({isScim:!0},t)}function tf(t,e){return Nt({ip:t},e)}async function rA(){let t=zn();if(!t||t.snippets)return;let e,r=Xi();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function bN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function oe(){let t=we.get();if(!t||h.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 Ve(vo(t?.tenantId))}function DN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(XT())}function Xi(t){let e=Le();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(eA())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Ve(e,t)}function CN(t){let e=Le();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function vN(t){let e=Le();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Ju(e),t)}function Pt(){return!!we.get()?.isScim}function zn(){try{return we.get()}catch{return}}function rf(t){let e=zn();if(e)return e.featureFlagCache?.[t]}function nf(t,e){let r=zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function sf(){return zn()?.featureFlagOverrides||{}}async function of(t,e){return await Nt({featureFlagOverrides:t},e)}function NN(t){let e=zn();if(e)return e.viewToTableCache?.[t]}function PN(t,e){let r=zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Wr={};N(Wr,{getAppClient:()=>uc,getCacheClient:()=>pf,getDocWritethroughClient:()=>kN,getInviteClient:()=>ei,getLockClient:()=>mf,getPasswordResetClient:()=>$o,getSessionClient:()=>qr,getSocketClient:()=>FN,getUserClient:()=>Go,getWritethroughClient:()=>ff,init:()=>Lt,shutdown:()=>sA});var ac=W(require("ioredis"));var sc={};N(sc,{Databases:()=>af,SEPARATOR:()=>es,SelectableDatabase:()=>nc,getRedisClusterOptions:()=>uf,getRedisConnectionDetails:()=>ic,getRedisOptions:()=>Zn,removeDbPrefix:()=>cf});var es="-",af=(y=>(y.PW_RESETS="pwReset",y.VERIFICATIONS="verification",y.INVITATIONS="invitation",y.DEV_LOCKS="devLocks",y.DEBOUNCE="debounce",y.SESSIONS="session",y.USER_CACHE="users",y.FLAGS="flags",y.APP_METADATA="appMetadata",y.QUERY_VARS="queryVars",y.LICENSES="license",y.GENERIC_CACHE="data_cache",y.WRITE_THROUGH="writeThrough",y.LOCKS="locks",y.SOCKET_IO="socket_io",y.BPM_EVENTS="bpmEvents",y.DOC_WRITE_THROUGH="docWriteThrough",y))(af||{}),nc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",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))(nc||{});function ic(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function uf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zn(),tls:{}}}}function Zn(){let{host:t,password:e,port:r}=ic();return{connectTimeout:3e4,port:r,host:t,password:e}}function cf(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var oc=require("dd-trace"),iA=require("lodash"),nA;if(h.MOCK_REDIS)try{nA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function LN(t=0){return await oc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new nA(Zn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=ic();r=new ac.Cluster([{host:n,port:i}],uf())}else r=new ac.default(Zn());return new Promise((n,i)=>{r.on("error",s=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,s),i(s)}),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)})})})}function UN(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",s=>s.forEach(o=>i.add(o))),t.on("error",s=>n(s)),t.on("end",async()=>{try{let s=Array.from(i).map(async o=>{let a=await e.get(o);return a&&(a=JSON.parse(a)),{key:cf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function MN(t){return t.isCluster}var lf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await oc.tracer.trace("RedisWrapper.init",async n=>{let i=await LN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return oc.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${es}${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}${es}${e}`;let n;MN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await UN(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,iA.zip)(e,n).reduce((i,[s,o])=>{if(s===void 0||o===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[s]=o?JSON.parse(o):null}catch{i[s]=o}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((o,[a,u])=>(o[this.prefixed(a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=this.client.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.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)})}},We=af;var No,Po,Lo,Uo,ei,Mo,Fo,ko,Bo,uf;async function Ut(){No=await We.init("users"),Po=await We.init("session"),Lo=await We.init("appMetadata"),Uo=await We.init("data_cache"),Mo=await We.init("locks"),ei=await We.init("writeThrough"),ko=await We.init("invitation"),Bo=await We.init("pwReset"),Fo=await We.init("socket_io",1),uf=await We.init("docWriteThrough")}async function rA(){No&&await No.finish(),Po&&await Po.finish(),Lo&&await Lo.finish(),Uo&&await Uo.finish(),ei&&await ei.finish(),Mo&&await Mo.finish(),ko&&await ko.finish(),Bo&&await Bo.finish(),Fo&&await Fo.finish(),uf&&await uf.finish()}process.on("exit",async()=>{await rA()});async function Go(){return No||await Ut(),No}async function Wr(){return Po||await Ut(),Po}async function ac(){return Lo||await Ut(),Lo}async function cf(){return Uo||await Ut(),Uo}async function lf(){return ei||await Ut(),ei}async function df(){return Mo||await Ut(),Mo}async function NN(){return Fo||await Ut(),Fo}async function ti(){return ko||await Ut(),ko}async function $o(){return Bo||await Ut(),Bo}async function PN(){return ei||await Ut(),ei}function Yt(t){let e=Q();return`${t}:${e}`}var ri=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await cf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Yt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[Yt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Yt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Yt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ni=new ri,Ce={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}`},ii=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ii||{}),uc=(...t)=>ni.keys(...t),si=(...t)=>ni.get(...t),lr=(...t)=>ni.store(...t),Vo=(...t)=>ni.delete(...t),jr=(...t)=>ni.withCache(...t),nA=(...t)=>ni.withCacheWithDynamicTTL(...t),ts=(...t)=>ni.bustCache(...t);var sn={};P(sn,{getUser:()=>xa,getUsers:()=>F0,invalidateUser:()=>Ra});var Qo={};P(Qo,{addTenantToUrl:()=>LN,getTenantDB:()=>pf,getTenantIDFromCtx:()=>Wo,isUserInAppTenant:()=>UN});function pf(t){return Ve(cr(t))}function LN(t){let e=Q();if(qr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var UN=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=Q(),(Zi(t)||Ae)===r},MN=Object.values(Os),Wo=(t,e)=>{if(!qr())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=MN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};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(Yp()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var Xo={};P(Xo,{getPlatformDB:()=>ct,tenants:()=>Mf,users:()=>Mt});var Mt={};P(Mt,{addSsoUser:()=>sA,addUser:()=>VN,getUserDoc:()=>iA,lookupTenantId:()=>FN,removeUser:()=>qN,updateUserDoc:()=>kN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function FN(t){return h.MULTI_TENANCY?(await iA(t)).tenantId:Ae}async function iA(t){return ct().get(t)}async function kN(t){await ct().put(t)}function BN(t,e){return{_id:t,tenantId:e}}function GN(t,e,r){return{_id:e,userId:t,tenantId:r}}function $N(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function ff(t,e){let r=ct(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function sA(t,e,r,n){return ff(t,()=>$N(t,e,r,n))}async function VN(t,e,r,n){let i=[ff(e,()=>BN(e,t)),ff(r,()=>GN(e,r,t))];n&&i.push(sA(n,r,e,t)),await Promise.all(i)}async function qN(t){let e=ct(),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})}var Mf={};P(Mf,{addTenant:()=>RP,exists:()=>IP,getTenantIds:()=>_P,removeTenant:()=>wP,tenacyLockOptions:()=>Uf});var ci={};P(ci,{AUTO_EXTEND_POLLING_MS:()=>zA,doWithLock:()=>as,newRedlock:()=>ui});var JA=W(require("redlock"));var ss={};P(ss,{Duration:()=>be,DurationType:()=>Pf,clearCookie:()=>Kr,compare:()=>gf,getAppIdFromCtx:()=>mP,getCookie:()=>mr,hasCircularStructure:()=>gP,hash:()=>hf,isAudited:()=>vf,isClient:()=>hP,isPublicApiRequest:()=>fP,isServingApp:()=>lP,isServingBuilder:()=>dP,isServingBuilderPreview:()=>pP,isValidInternalAPIKey:()=>Zo,newid:()=>ge,openJwt:()=>mc,resolveAppUrl:()=>HA,setCookie:()=>YA,time:()=>EP,timeout:()=>Cf,urlHasProtocol:()=>yP,validEmail:()=>Nf});var mf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),WN=h.SALT_ROUNDS||10;async function hf(t){let e=await mf.genSalt(WN);return mf.hash(t,e)}async function gf(t,e){return mf.compare(t,e)}var Yr={};P(Yr,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>_p,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Op,DEFAULT_JOBS_TABLE_ID:()=>Ip,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>aN,DeprecatedViews:()=>Hi,DocumentType:()=>ye,InternalTable:()=>wr,QueryBuilder:()=>fr,Replication:()=>kA,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,ViewName:()=>Gr,baseGlobalDBName:()=>vo,checkErrorCode:()=>VA,closePouchDB:()=>Do,createApiKeyView:()=>PA,createNewUserEmailView:()=>vA,createPlatformAccountEmailView:()=>UA,createPlatformUserView:()=>MA,createUserAppView:()=>NA,createView:()=>ns,dbExists:()=>tP,directCouchAllDbs:()=>jp,directCouchCall:()=>BT,directCouchFind:()=>Hp,directCouchQuery:()=>zu,directCouchUrlCall:()=>bo,doWithDB:()=>ut,extractAppUUID:()=>Wv,fullSearch:()=>sP,generateAgentChatID:()=>yA,generateAppID:()=>aA,generateAppUserID:()=>lc,generateDevInfoID:()=>mA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>gA,generatePluginID:()=>hA,generateRoleID:()=>Tf,generateRowID:()=>Ef,generateTableID:()=>uA,generateTemplateID:()=>fA,generateUserMetadataID:()=>dA,generateWorkspaceAppID:()=>EA,generateWorkspaceID:()=>cA,getAllApps:()=>Yo,getAllDbs:()=>CA,getAppsByIDs:()=>zN,getCouchInfo:()=>Nt,getDB:()=>Ve,getDevAppID:()=>qv,getDevAppIDs:()=>XN,getDevelopmentAppID:()=>Ku,getDocParams:()=>Hr,getGlobalDBName:()=>cr,getGlobalIDFromUserMetadataID:()=>pA,getGlobalUserParams:()=>oi,getOAuth2ConfigParams:()=>bA,getPluginParams:()=>wA,getPouch:()=>Fp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>ZN,getQueryIndex:()=>TA,getRoleParams:()=>pc,getRowParams:()=>Af,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>RA,getUrlInfo:()=>Mp,getUserMetadataParams:()=>xA,getUsersByAppParams:()=>dc,getWorkspaceAppParams:()=>DA,getWorkspaceParams:()=>OA,init:()=>Zu,isDatasourceId:()=>_A,isDevApp:()=>wo,isDevAppID:()=>$r,isDocumentConflictError:()=>aP,isExternalTableId:()=>Sf,isGlobalUserID:()=>lA,isProdAppID:()=>Vv,isQueryId:()=>IA,isSameAppID:()=>eP,isTableId:()=>AA,isViewId:()=>SA,paginatedSearch:()=>iP,pagination:()=>If,prefixRoleID:()=>dr,queryGlobalView:()=>pr,queryGlobalViewRaw:()=>Rf,queryPlatformView:()=>Jo,queryView:()=>xf,queryViewRaw:()=>Ko,removeKeyNumbering:()=>zo,searchIndexes:()=>bf});var jo={};P(jo,{AppState:()=>yf,getAppMetadata:()=>cc,invalidateAppMetadata:()=>YN});var yf=(e=>(e.INVALID="invalid",e))(yf||{}),oA=3600,QN=60;async function jN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function HN(t){return!t||t.state==="invalid"}async function cc(t){let e=await ac(),r=await e.get(t);if(!r){let n=oA;try{r=await jN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=QN;else throw i}if(HN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function YN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await ac();await r.delete(t),e&&await r.store(t,e,oA)}var _f={};P(_f,{generateAgentChatID:()=>yA,generateAppID:()=>aA,generateAppUserID:()=>lc,generateDevInfoID:()=>mA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>gA,generatePluginID:()=>hA,generateRoleID:()=>Tf,generateRowID:()=>Ef,generateTableID:()=>uA,generateTemplateID:()=>fA,generateUserMetadataID:()=>dA,generateWorkspaceAppID:()=>EA,generateWorkspaceID:()=>cA,getDocParams:()=>Hr,getGlobalIDFromUserMetadataID:()=>pA,getGlobalUserParams:()=>oi,getOAuth2ConfigParams:()=>bA,getPluginParams:()=>wA,getQueryIndex:()=>TA,getRoleParams:()=>pc,getRowParams:()=>Af,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>RA,getUserMetadataParams:()=>xA,getUsersByAppParams:()=>dc,getWorkspaceAppParams:()=>DA,getWorkspaceParams:()=>OA,isDatasourceId:()=>_A,isExternalTableId:()=>Sf,isGlobalUserID:()=>lA,isQueryId:()=>IA,isTableId:()=>AA,isViewId:()=>SA,prefixRoleID:()=>dr});var aA=t=>{let e=yt;return t&&(e+=`${t}${D}`),`${e}${ge()}`};function uA(){return`ta${D}${ge()}`}function Ef(t,e){return e=e||ge(),`ro${D}${t}${D}${e}`}function cA(){return`workspace${D}${ge()}`}function rs(t){return`us${D}${t||ge()}`}var KN=new RegExp(`^us${D}.+`);function lA(t){return KN.test(t)}function dA(t){return Ef("ta_users",t)}function pA(t){let e=`ro${D}ta_users${D}`;return!t||!t.includes(e)?t:t.split(e)[1]}function fA(t){return`template${D}${t}${D}${ge()}`}function lc(t,e){return`${t}${D}${e}`}function Tf(t){let e=`role${D}`;return t.startsWith(e)?t:`${e}${t}`}function dr(t){return Tf(t)}var mA=t=>`devinfo${D}${t}`,hA=t=>`plg${D}${t}`,gA=t=>`oauth2log${D}${t}`,yA=()=>`agentchat${D}${ge()}`,EA=()=>`workspace_app${D}${ge()}`;var JN=new RegExp("^datasource_plus_(.+)__(.+)$");function Hr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${D}${e}`,endkey:`${t}${D}${e}${Ge}`}}function Af(t,e,r={}){if(t==null)return Hr("ro",null,r);let n=e??`${t}${D}`;return Hr("ro",n,r)}function TA(t){return`database/${t}`}var Sf=t=>{let e=t.match(JN);return!!t&&e!==null},AA=t=>!!t&&(t.startsWith(`ta${D}`)||Sf(t));function SA(t){return!!t&&t.startsWith(`view${D}`)}function _A(t){return!!t&&t.startsWith(`datasource${D}`)}function IA(t){return!!t&&t.startsWith(`query${D}`)}function OA(t="",e={}){return{...e,startkey:`workspace${D}${t}`,endkey:`workspace${D}${t}${Ge}`}}function oi(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${D}${t}`,endkey:`us${D}${t}${Ge}`}}function xA(t,e={}){return Af("ta_users",t,e)}function dc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Ge}`}}function RA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${D}${t}${D}`,{...r,startkey:n,endkey:`${n}${Ge}`}}function pc(t,e={}){return Hr("role",t,e)}function Ho(t,e){let r=e?`${D}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ge}"`}var wA=(t,e={})=>Hr("plg",t,e),bA=(t,e={})=>Hr("oauth2",t,e),DA=(t,e={})=>Hr("workspace_app",t,e);async function CA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await jp(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Ae?await n():(await n(Ho("app",i)),await n(Ho("app_dev",i)),r.push(cr(i))),r}async function Yo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=Ae);let o=(await CA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(D);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Ae&&d||l===i}return!1});if(r){let u=o.filter(l=>$r(l)),c=o.filter(l=>!$r(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>cc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:wo(l)?"development":"published"})):c.filter(l=>t?wo(l):!wo(l))}}async function zN(t){return(await Promise.allSettled(t.map(r=>cc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function ZN(){return(await Yo({idsOnly:!0})).filter(e=>!$r(e))}async function XN(){return(await Yo({idsOnly:!0})).filter(e=>$r(e))}function eP(t,e){return t==null||e==null?!1:at(t)===at(e)}async function tP(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function If(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let s=t.length>e,o;return i||(i=a=>n?a?.[n]:a?._id),s&&(o=i(t[e])),{data:t.slice(0,e),hasNextPage:s,nextPage:o}}var Of="_design/database";function rP(){return{_id:Of,views:{}}}async function nP(t,e){if(Hi[e])try{let r=await t.get(Of);for(let n of Hi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(Of)}catch{n=rP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ns(t,e,r);throw s}}var vA=async()=>{let t=oe(),e=`function(doc) {
|
|
9
|
+
`;await this.client.eval(i,1,this.prefixed(e),r)})}},We=lf;var No,Po,Lo,Uo,Xn,Mo,Fo,ko,Bo,df;async function Lt(){No=await We.init("users"),Po=await We.init("session"),Lo=await We.init("appMetadata"),Uo=await We.init("data_cache"),Mo=await We.init("locks"),Xn=await We.init("writeThrough"),ko=await We.init("invitation"),Bo=await We.init("pwReset"),Fo=await We.init("socket_io",1),df=await We.init("docWriteThrough")}async function sA(){No&&await No.finish(),Po&&await Po.finish(),Lo&&await Lo.finish(),Uo&&await Uo.finish(),Xn&&await Xn.finish(),Mo&&await Mo.finish(),ko&&await ko.finish(),Bo&&await Bo.finish(),Fo&&await Fo.finish(),df&&await df.finish()}process.on("exit",async()=>{await sA()});async function Go(){return No||await Lt(),No}async function qr(){return Po||await Lt(),Po}async function uc(){return Lo||await Lt(),Lo}async function pf(){return Uo||await Lt(),Uo}async function ff(){return Xn||await Lt(),Xn}async function mf(){return Mo||await Lt(),Mo}async function FN(){return Fo||await Lt(),Fo}async function ei(){return ko||await Lt(),ko}async function $o(){return Bo||await Lt(),Bo}async function kN(){return Xn||await Lt(),Xn}function Kt(t){let e=j();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await pf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Kt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Kt(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((s,[o,a])=>(s[Kt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Kt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Kt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Kt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ri=new ti,Ce={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}`},ni=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ni||{}),cc=(...t)=>ri.keys(...t),ii=(...t)=>ri.get(...t),cr=(...t)=>ri.store(...t),Vo=(...t)=>ri.delete(...t),Qr=(...t)=>ri.withCache(...t),oA=(...t)=>ri.withCacheWithDynamicTTL(...t),ts=(...t)=>ri.bustCache(...t);var nn={};N(nn,{getUser:()=>xa,getUsers:()=>V0,invalidateUser:()=>Ra});var Qo={};N(Qo,{addTenantToUrl:()=>BN,getTenantDB:()=>hf,getTenantIDFromCtx:()=>Wo,isUserInAppTenant:()=>GN});function hf(t){return Ve(ur(t))}function BN(t){let e=j();if(Vr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var GN=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=j(),(Zi(t)||Ae)===r},$N=Object.values(Os),Wo=(t,e)=>{if(!Vr())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=$N),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};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(zp()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var Xo={};N(Xo,{getPlatformDB:()=>ct,tenants:()=>Bf,users:()=>Ut});var Ut={};N(Ut,{addSsoUser:()=>uA,addUser:()=>HN,getUserDoc:()=>aA,lookupTenantId:()=>VN,removeUser:()=>KN,updateUserDoc:()=>qN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function VN(t){return h.MULTI_TENANCY?(await aA(t)).tenantId:Ae}async function aA(t){return ct().get(t)}async function qN(t){await ct().put(t)}function WN(t,e){return{_id:t,tenantId:e}}function QN(t,e,r){return{_id:e,userId:t,tenantId:r}}function jN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function gf(t,e){let r=ct(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function uA(t,e,r,n){return gf(t,()=>jN(t,e,r,n))}async function HN(t,e,r,n){let i=[gf(e,()=>WN(e,t)),gf(r,()=>QN(e,r,t))];n&&i.push(uA(n,r,e,t)),await Promise.all(i)}async function KN(t){let e=ct(),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})}var Bf={};N(Bf,{addTenant:()=>vP,exists:()=>bP,getTenantIds:()=>wP,removeTenant:()=>NP,tenacyLockOptions:()=>kf});var ui={};N(ui,{AUTO_EXTEND_POLLING_MS:()=>tS,doWithLock:()=>as,newRedlock:()=>ai});var eS=W(require("redlock"));var ss={};N(ss,{Duration:()=>be,DurationType:()=>Mf,clearCookie:()=>Kr,compare:()=>Tf,getAppIdFromCtx:()=>TP,getCookie:()=>fr,hasCircularStructure:()=>SP,hash:()=>Ef,isAudited:()=>Lf,isClient:()=>AP,isPublicApiRequest:()=>EP,isServingApp:()=>hP,isServingBuilder:()=>gP,isServingBuilderPreview:()=>yP,isValidInternalAPIKey:()=>Zo,newid:()=>me,openJwt:()=>hc,resolveAppUrl:()=>zA,setCookie:()=>ZA,time:()=>IP,timeout:()=>Pf,urlHasProtocol:()=>_P,validEmail:()=>Uf});var yf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),YN=h.SALT_ROUNDS||10;async function Ef(t){let e=await yf.genSalt(YN);return yf.hash(t,e)}async function Tf(t,e){return yf.compare(t,e)}var Hr={};N(Hr,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>xp,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>pN,DeprecatedViews:()=>Hi,DesignDocuments:()=>Wu,DocumentType:()=>ye,InternalTable:()=>Rr,QueryBuilder:()=>pr,Replication:()=>VA,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,ViewName:()=>Br,baseGlobalDBName:()=>vo,checkErrorCode:()=>jA,closePouchDB:()=>Do,createApiKeyView:()=>FA,createNewUserEmailView:()=>UA,createPlatformAccountEmailView:()=>BA,createPlatformUserView:()=>GA,createUserAppView:()=>MA,createView:()=>ns,dbExists:()=>oP,directCouchAllDbs:()=>Yp,directCouchCall:()=>VT,directCouchFind:()=>Jp,directCouchQuery:()=>Zu,directCouchUrlCall:()=>bo,doWithDB:()=>ut,extractAppUUID:()=>Yv,fullSearch:()=>lP,generateAgentChatID:()=>AA,generateAgentToolSourceID:()=>SA,generateAppID:()=>lA,generateAppUserID:()=>dc,generateDevInfoID:()=>yA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>TA,generatePluginID:()=>EA,generateRoleID:()=>_f,generateRowID:()=>Sf,generateTableID:()=>dA,generateTemplateID:()=>gA,generateUserMetadataID:()=>mA,generateWorkspaceAppID:()=>_A,generateWorkspaceID:()=>pA,getAllApps:()=>Ko,getAllDbs:()=>LA,getAppsByIDs:()=>rP,getCouchInfo:()=>vt,getDB:()=>Ve,getDevAppID:()=>Kv,getDevAppIDs:()=>iP,getDevelopmentAppID:()=>Ju,getDocParams:()=>jr,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>hA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>NA,getPluginParams:()=>vA,getPouch:()=>Gp,getPouchDB:()=>Et,getProdAppID:()=>at,getProdAppIDs:()=>nP,getQueryIndex:()=>IA,getRoleParams:()=>fc,getRowParams:()=>If,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>CA,getUrlInfo:()=>Bp,getUserMetadataParams:()=>DA,getUsersByAppParams:()=>pc,getWorkspaceAppParams:()=>PA,getWorkspaceParams:()=>bA,init:()=>Xu,isDatasourceId:()=>RA,isDevApp:()=>wo,isDevAppID:()=>Gr,isDocumentConflictError:()=>pP,isExternalTableId:()=>Of,isGlobalUserID:()=>fA,isProdAppID:()=>Hv,isQueryId:()=>wA,isSameAppID:()=>sP,isTableId:()=>OA,isViewId:()=>xA,paginatedSearch:()=>cP,pagination:()=>Rf,prefixRoleID:()=>lr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>Df,queryPlatformView:()=>Jo,queryView:()=>bf,queryViewRaw:()=>Yo,removeKeyNumbering:()=>zo,searchIndexes:()=>vf});var jo={};N(jo,{AppState:()=>Af,getAppMetadata:()=>lc,invalidateAppMetadata:()=>XN});var Af=(e=>(e.INVALID="invalid",e))(Af||{}),cA=3600,JN=60;async function zN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function ZN(t){return!t||t.state==="invalid"}async function lc(t){let e=await uc(),r=await e.get(t);if(!r){let n=cA;try{r=await zN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=JN;else throw i}if(ZN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function XN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await uc();await r.delete(t),e&&await r.store(t,e,cA)}var xf={};N(xf,{generateAgentChatID:()=>AA,generateAgentToolSourceID:()=>SA,generateAppID:()=>lA,generateAppUserID:()=>dc,generateDevInfoID:()=>yA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>TA,generatePluginID:()=>EA,generateRoleID:()=>_f,generateRowID:()=>Sf,generateTableID:()=>dA,generateTemplateID:()=>gA,generateUserMetadataID:()=>mA,generateWorkspaceAppID:()=>_A,generateWorkspaceID:()=>pA,getDocParams:()=>jr,getGlobalIDFromUserMetadataID:()=>hA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>NA,getPluginParams:()=>vA,getQueryIndex:()=>IA,getRoleParams:()=>fc,getRowParams:()=>If,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>CA,getUserMetadataParams:()=>DA,getUsersByAppParams:()=>pc,getWorkspaceAppParams:()=>PA,getWorkspaceParams:()=>bA,isDatasourceId:()=>RA,isExternalTableId:()=>Of,isGlobalUserID:()=>fA,isQueryId:()=>wA,isTableId:()=>OA,isViewId:()=>xA,prefixRoleID:()=>lr});var lA=t=>{let e=gt;return t&&(e+=`${t}${D}`),`${e}${me()}`};function dA(){return`ta${D}${me()}`}function Sf(t,e){return e=e||me(),`ro${D}${t}${D}${e}`}function pA(){return`workspace${D}${me()}`}function rs(t){return`us${D}${t||me()}`}var eP=new RegExp(`^us${D}.+`);function fA(t){return eP.test(t)}function mA(t){return Sf("ta_users",t)}function hA(t){let e=`ro${D}ta_users${D}`;return!t||!t.includes(e)?t:t.split(e)[1]}function gA(t){return`template${D}${t}${D}${me()}`}function dc(t,e){return`${t}${D}${e}`}function _f(t){let e=`role${D}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return _f(t)}var yA=t=>`devinfo${D}${t}`,EA=t=>`plg${D}${t}`,TA=t=>`oauth2log${D}${t}`,AA=()=>`agentchat${D}${me()}`,SA=()=>`agenttoolsource${D}${me()}`,_A=()=>`workspace_app${D}${me()}`;var tP=new RegExp("^datasource_plus_(.+)__(.+)$");function jr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${D}${e}`,endkey:`${t}${D}${e}${Ge}`}}function If(t,e,r={}){if(t==null)return jr("ro",null,r);let n=e??`${t}${D}`;return jr("ro",n,r)}function IA(t){return`database/${t}`}var Of=t=>{let e=t.match(tP);return!!t&&e!==null},OA=t=>!!t&&(t.startsWith(`ta${D}`)||Of(t));function xA(t){return!!t&&t.startsWith(`view${D}`)}function RA(t){return!!t&&t.startsWith(`datasource${D}`)}function wA(t){return!!t&&t.startsWith(`query${D}`)}function bA(t="",e={}){return{...e,startkey:`workspace${D}${t}`,endkey:`workspace${D}${t}${Ge}`}}function si(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${D}${t}`,endkey:`us${D}${t}${Ge}`}}function DA(t,e={}){return If("ta_users",t,e)}function pc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Ge}`}}function CA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${D}${t}${D}`,{...r,startkey:n,endkey:`${n}${Ge}`}}function fc(t,e={}){return jr("role",t,e)}function Ho(t,e){let r=e?`${D}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ge}"`}var vA=(t,e={})=>jr("plg",t,e),NA=(t,e={})=>jr("oauth2",t,e),PA=(t,e={})=>jr("workspace_app",t,e);async function LA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Yp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Ae?await n():(await n(Ho("app",i)),await n(Ho("app_dev",i)),r.push(ur(i))),r}async function Ko({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Ae);let o=(await LA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(D);if(c[0]==="app"){let l=c[c.length-2],f=c.length===2||l==="dev";return i===Ae&&f||l===i}return!1});if(r){let u=o.filter(l=>Gr(l)),c=o.filter(l=>!Gr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>lc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:wo(l)?"development":"published"})):c.filter(l=>t?wo(l):!wo(l))}}async function rP(t){return(await Promise.allSettled(t.map(r=>lc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function nP(){return(await Ko({idsOnly:!0})).filter(e=>!Gr(e))}async function iP(){return(await Ko({idsOnly:!0})).filter(e=>Gr(e))}function sP(t,e){return t==null||e==null?!1:at(t)===at(e)}async function oP(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function Rf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let s=t.length>e,o;return i||(i=a=>n?a?.[n]:a?._id),s&&(o=i(t[e])),{data:t.slice(0,e),hasNextPage:s,nextPage:o}}var wf="_design/database";function aP(){return{_id:wf,views:{}}}async function uP(t,e){if(Hi[e])try{let r=await t.get(wf);for(let n of Hi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(wf)}catch{n=aP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ns(t,e,r);throw s}}var UA=async()=>{let t=oe(),e=`function(doc) {
|
|
10
10
|
if (doc._id.startsWith("us${D}")) {
|
|
11
11
|
emit(doc.email.toLowerCase(), doc._id)
|
|
12
12
|
}
|
|
13
|
-
}`;await ns(t,e,"by_email2")},
|
|
13
|
+
}`;await ns(t,e,"by_email2")},MA=async()=>{let t=oe(),e=`function(doc) {
|
|
14
14
|
if (doc._id.startsWith("us${D}") && doc.roles) {
|
|
15
15
|
for (let prodAppId of Object.keys(doc.roles)) {
|
|
16
16
|
let emitted = prodAppId + "${D}" + doc._id
|
|
17
17
|
emit(emitted, null)
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
}`;await ns(t,e,"by_app")},
|
|
20
|
+
}`;await ns(t,e,"by_app")},FA=async()=>{let t=oe(),e=`function(doc) {
|
|
21
21
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
22
22
|
emit(doc.apiKey, doc.userId)
|
|
23
23
|
}
|
|
24
|
-
}`;await ns(t,e,"by_api_key")};async function
|
|
24
|
+
}`;await ns(t,e,"by_api_key")};async function Yo(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await uP(r,t),await n(),Yo(t,e,r,n,i);if(s.status===409)return Yo(t,e,r,n,i);throw s}}var bf=async(t,e,r,n,i)=>{let a=(await Yo(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function kA(t,e){try{await ut(Te.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var BA=async()=>{let t=`function(doc) {
|
|
25
25
|
if (doc._id.startsWith("acc_metadata${D}")) {
|
|
26
26
|
emit(doc.email.toLowerCase(), doc._id)
|
|
27
27
|
}
|
|
28
|
-
}`;await
|
|
28
|
+
}`;await kA(t,"account_by_email")},GA=async()=>{await kA(`function(doc) {
|
|
29
29
|
if (doc.tenantId) {
|
|
30
30
|
emit(doc._id.toLowerCase(), doc._id)
|
|
31
31
|
}
|
|
@@ -33,7 +33,7 @@ attempted value: ${s}
|
|
|
33
33
|
if (doc.ssoId) {
|
|
34
34
|
emit(doc.ssoId, doc._id)
|
|
35
35
|
}
|
|
36
|
-
}`,"platform_users_lowercase_2")},Jo=async(t,e)=>{let r={account_by_email:UA,platform_users_lowercase_2:MA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return xf(t,e,n,i,{arrayResponse:!0})})},FA={by_email2:vA,by_api_key:PA,by_app:NA},pr=async(t,e,r,n)=>{r||(r=oe());let i=FA[t];return xf(t,e,r,i,n)};async function Rf(t,e,r){let n=oe(),i=FA[t];return Ko(t,e,n,i,r)}var wf=class{constructor({source:e,target:r}){this.source=Tt(e),this.target=Tt(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([Do(this.source),Do(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})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Tt(this.target.name),await this.replicate()}},kA=wf;var GA=W(require("node-fetch"));var zo=kr.removeKeyNumbering;function ai(t){return t==null||t===""}var fr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#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.#p=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:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="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 s of Object.keys(e)){let o=zo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>ai(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(ai(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>ai(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(ai(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${E})`};function p(f,g,E){let y="";for(let[S,I]of Object.entries(f)){S=zo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let R=g(S,I);if(R!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=R,(typeof I!="string"&&I!=null||typeof I=="string"&&I!==o&&I!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>ai(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(ai(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>ai(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),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.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Nt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await BA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await BA(n,i,r);throw s}}};async function BA(t,e,r){let n=await(0,GA.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),s={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(s.rows=i.rows.map(o=>o.doc)),i.bookmark&&(s.bookmark=i.bookmark),i.total_rows&&(s.totalRows=i.total_rows),s}async function $A(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=fr.maxLimit;n.limit&&s.length>n.limit-fr.maxLimit&&(o=n.limit-s.length);let a=new fr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<fr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await $A(t,e,r,c)}async function iP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,fr.maxLimit);let s=new fr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function sP(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 $A(t,e,r,n)}}var bf={};P(bf,{createUserIndex:()=>oP});async function oP(){let t=oe(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function VA(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)}function aP(t){return VA(t,409)}var fc=W(require("jsonwebtoken")),Df="app"+D,WA="/app/",QA="/app/preview",uP="/builder",jA=`${uP}/app/`,cP="/api/public/v";function is(t){return t&&t.startsWith(Df)?t:void 0}async function HA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Wo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>Yo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function lP(t){return t.path.startsWith(`/${Df}`)?!0:t.path.startsWith(WA)}function dP(t){return t.path.startsWith(jA)}function pP(t){return t.path.startsWith(QA)}function fP(t){return t.path.startsWith(cP)}async function mP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=is(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=is(t.request.body.appId));let n=qA(t.path);!r&&n&&(r=is(n)),!r&&t.query?.appId&&(r=is(t.query?.appId));let i=t.path.startsWith(QA),s=t.path.startsWith(WA)&&!i;!r&&s&&(r=is(await HA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(jA)){let a=qA(t.request.headers.referer);r=is(a)}return r}function qA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Df))}function mc(t){if(t)try{return fc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return fc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function Zo(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function mr(t,e){let r=t.cookies.get(e);if(r)return mc(r)}function YA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=fc.default.sign(e,h.JWT_SECRET));let i={expires:Qu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Kr(t,e){YA(t,null,e)}function hP(t){return t.headers["x-budibase-type"]==="client"}function Cf(t){return new Promise(e=>setTimeout(e,t))}function vf(t){return!!vh[t]}function gP(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}function yP(t){return!!t.match(/^.+:\/\/.+$/)}function Nf(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,}))$/)}var Pf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Pf||{}),hc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/hc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*hc[e]/hc[r]}static from(e,r){return new t(r*hc[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 EP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function TP(t,e){if(t==="custom")return ui(e);switch(t){case"try_once":return ui(os.TRY_ONCE);case"try_twice":return ui(os.TRY_TWICE);case"default":return ui(os.DEFAULT);case"delay_500":return ui(os.DELAY_500);case"auto_extend":return ui(os.AUTO_EXTEND);default:throw Ci.unreachable(t)}}var os={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 ui(t={}){let e={...os.DEFAULT,...t},n=(await df()).client;return new JA.default([n],e)}function AP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var zA=be.fromSeconds(10).toMs();async function as(t,e){let r=await TP(t.type,t.customOptions),n,i;try{let s=AP(t),o=t.type==="auto_extend"?zA:t.ttl;if(n=await r.lock(s,o),t.type==="auto_extend"){let u=()=>{i=setTimeout(async()=>{n=await n.extend(o,()=>t.onExtend&&t.onExtend()),u()},o/2)};u()}return{executed:!0,result:await e()}}catch(s){if(s.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw s}else throw s}finally{clearTimeout(i),await n?.unlock()}}var Lf=Te.PLATFORM_INFO.docs.tenants,Uf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function _P(){return(await gc()).tenantIds}async function gc(){let t=ct(),e;try{e=await t.get(Lf)}catch(r){if(r.status===404)e=await xP();else throw r}return e}async function IP(t){return(await gc()).tenantIds.indexOf(t)!==-1}function OP(){return{_id:Lf,tenantIds:[]}}async function xP(){let t=ct(),e=OP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Lf);throw r}return e}async function RP(t){let e=ct();await as(Uf,async()=>{let r=await gc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function wP(t){try{await as(Uf,async()=>{let e=ct(),r=await gc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var di={};P(di,{getAccount:()=>en,getAccountByTenantId:()=>ls,getStatus:()=>oL});var CS=W(require("node-fetch"));var Oc={};P(Oc,{correlation:()=>ea,logAlert:()=>sa,logAlertWithInfo:()=>sL,logWarn:()=>cs,logger:()=>Ic,system:()=>zf});var ea={};P(ea,{getId:()=>Ff,setHeader:()=>bP});var ZA=require("correlation-id"),bP=t=>{let e=ZA.getId();e&&(t["x-budibase-correlation-id"]=e)};function Ff(){return ZA.getId()}var _c=W(require("pino")),bS=W(require("pino-pretty"));var Zf=W(require("dd-trace")),DS=require("dd-trace/ext");var zf={};P(zf,{getLogReadStream:()=>XP,getSingleFileMaxSizeInfo:()=>wS,localFileDestination:()=>Jf});var ia=W(require("fs")),Kf=W(require("path")),IS=W(require("rotating-file-stream"));var Yf={};P(Yf,{ObjectStore:()=>Ft,ObjectStoreBuckets:()=>CP,SIGNED_FILE_PREFIX:()=>Wf,bucketTTLConfig:()=>yc,budibaseTempDir:()=>li,clientLibraryCDNUrl:()=>jP,clientLibraryPath:()=>mS,clientLibraryUrl:()=>HP,createBucketIfNotExists:()=>na,deleteFile:()=>BP,deleteFiles:()=>GP,deleteFolder:()=>dS,downloadTarball:()=>VP,downloadTarballDirect:()=>$P,enrichPWAImages:()=>YP,enrichPluginURLs:()=>JP,extractBucketAndPath:()=>kf,getAppFileUrl:()=>hS,getGlobalFileS3Key:()=>gS,getGlobalFileUrl:()=>KP,getObjectMetadata:()=>qP,getPluginIconKey:()=>TS,getPluginJSKey:()=>ES,getPluginS3Dir:()=>SS,getPresignedUrl:()=>Zr,getReadStream:()=>Ec,listAllObjects:()=>lS,processAutomationAttachment:()=>NP,processObjectStoreAttachment:()=>nS,retrieve:()=>cS,retrieveDirectory:()=>kP,retrieveToTmp:()=>FP,sanitizeBucket:()=>Ke,sanitizeKey:()=>Ue,streamUpload:()=>uS,upload:()=>MP,uploadDirectory:()=>Qf});var Ac=require("@aws-sdk/client-s3"),Bf=require("@aws-sdk/lib-storage"),iS=require("@aws-sdk/s3-request-presigner"),ra=W(require("stream")),Gf=W(require("node-fetch")),$f=W(require("tar-fs")),Vf=W(require("zlib")),sS=require("util"),zr=require("path"),hr=W(require("fs"));var ta=W(require("path")),XA=require("os"),eS=W(require("fs"));var tS=W(require("stream")),CP={BACKUPS:h.BACKUPS_BUCKET_NAME,APPS:h.APPS_BUCKET_NAME,TEMPLATES:h.TEMPLATES_BUCKET_NAME,GLOBAL:h.GLOBAL_BUCKET_NAME,PLUGINS:h.PLUGIN_BUCKET_NAME,TEMP:h.TEMP_BUCKET_NAME},rS=(0,ta.join)((0,XA.tmpdir)(),".budibase");try{eS.default.mkdirSync(rS)}catch(t){if(t.code!=="EEXIST")throw t}function li(){return rS}var yc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function vP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ta.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:tS.default.Readable.fromWeb(e.body)}}async function nS(t){let e=kf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Ec(r,n),s=ta.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function NP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await vP(t):await nS(t)}var qf=require("uuid");var oS=W(require("fs/promises")),PP=require("sanitize-s3-objectkey"),aS=(0,sS.promisify)(ra.default.pipeline),LP={bucketCreationPromises:{}},Wf="/files/signed",Jr={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"},UP=[Jr.html,Jr.css,Jr.js,Jr.json];function Ue(t){return PP(Ke(t)).replace(/\\/g,"/")}function Ke(t){return t.replace(new RegExp(Et,"g"),yt)}function Ft(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new Ac.S3(e)}async function na(t,e){e=Ke(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=LP.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),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.")}}async function MP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await oS.default.open(r)).createReadStream():s,c=Ft(),l=await na(c,t);if(o&&l.created){let g=yc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Jr[a.toLowerCase()]:Jr.txt),p={Bucket:Ke(t),Key:Ue(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new Bf.Upload({client:c,params:p}).done()}async function uS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Ft(),u=await na(a,t);if(s&&u.created){let E=yc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Jr[o.toLowerCase()]:Jr.txt);let l=Ke(t),d=Ue(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Bf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function cS(t,e){let r=Ft(),n={Bucket:Ke(t),Key:Ue(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(UP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return ra.default.Readable.fromWeb(s)}}async function lS(t,e){let r=Ft(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Ue(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Zr(t,e,r=3600){let n=Ft({presigning:!0}),i={Bucket:Ke(t),Key:Ue(e)},s=await(0,iS.getSignedUrl)(n,new Ac.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Wf}${a}${u}`}else return s}async function FP(t,e){t=Ke(t),e=Ue(e);let r=await cS(t,e),n=(0,zr.join)(li(),(0,qf.v4)());return r instanceof ra.default.Readable?r.pipe(hr.default.createWriteStream(n)):hr.default.writeFileSync(n,r),n}async function kP(t,e){let r=(0,zr.join)(li(),(0,qf.v4)());hr.default.mkdirSync(r);let n=await lS(t,e),i=await Promise.all(n.map(a=>Ec(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,zr.join)(r,...d);l.length>1&&!hr.default.existsSync(m)&&hr.default.mkdirSync(m,{recursive:!0});let p=hr.default.createWriteStream((0,zr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{p.on("finish",()=>f()),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function BP(t,e){let r=Ft();await na(r,t);let n={Bucket:t,Key:Ue(e)};return r.deleteObject(n)}async function GP(t,e){let r=Ft();await na(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ue(i)}))}};return r.deleteObjects(n)}async function dS(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return dS(t,e)}async function Qf(t,e,r){t=Ke(t);let n=[],i=hr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ue((0,zr.join)(r,s.name)),a=(0,zr.join)(e,s.name);s.isDirectory()?n.push(Qf(t,a,o)):n.push(uS({bucket:t,filename:o,stream:hr.default.createReadStream(a)}))}return await Promise.all(n),i}async function $P(t,e,r={}){e=Ue(e);let n=await(0,Gf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await aS(n.body,Vf.default.createUnzip(),$f.default.extract(e))}async function VP(t,e,r){e=Ke(e),r=Ue(r);let n=await(0,Gf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,zr.join)(li(),r);return await aS(n.body,Vf.default.createUnzip(),$f.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Qf(e,i,r),i}async function Ec(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof ra.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function qP(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function kf(t){let e=t.split("?")[0],r=new RegExp(`^${Wf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var pS=W(require("aws-cloudfront-sign")),Sc;function WP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Sc||(Sc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Sc)}var QP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:WP(),expireTime:new Date().getTime()+1e3*60*60*24}),us=t=>{let e=jf(t);return pS.getSignedUrl(e,QP())},jf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var fS=W(require("querystring"));function mS(t){return`${Ue(t)}/budibase-client.js`}async function jP(t,e){let r=mS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),jf(r)):await Zr(h.APPS_BUCKET_NAME,r)}function HP(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${fS.default.encode(n)}`}async function hS(t){return h.CLOUDFRONT_CDN?us(t):await Zr(h.APPS_BUCKET_NAME,t)}async function YP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await hS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var KP=async(t,e,r)=>{let n=gS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),us(n)):await Zr(h.GLOBAL_BUCKET_NAME,n)},gS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function JP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await zP(e),n=await ZP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function zP(t){let e=ES(t);return yS(e)}async function ZP(t){let e=TS(t);if(e)return yS(e)}async function yS(t){return h.CLOUDFRONT_CDN?us(t):await Zr(h.PLUGIN_BUCKET_NAME,t)}function ES(t){return AS(t,"plugin.min.js")}function TS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return AS(t,e)}function AS(t,e){return`${SS(t.name)}/${e}`}function SS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var OS="budibase.log",xS="budibase-logs-history.txt",RS=Kf.default.join(li(),"systemlogs");function _S(t){return Kf.default.join(RS,t)}function wS(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}}function Jf(){let t=wS(h.ROLLING_LOG_MAX_SIZE);return IS.createStream(OS,{size:t?.size,path:RS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:xS,initialRotation:!1})}function XP(){let t=[],e=_S(xS);if(ia.default.existsSync(e)){let i=ia.default.readFileSync(e,"utf-8").split(`
|
|
37
|
-
`);for(let s of i.filter(o=>o))t.push(ia.default.readFileSync(s))}return t.push(ia.default.readFileSync(_S(OS))),Buffer.concat(t)}function eL(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function tL(t){return t instanceof Error}function rL(t){return typeof t=="string"}var Xr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,bS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Jf(),level:t}),Xr=r.length?(0,_c.default)(e,_c.default.multistream(r)):(0,_c.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{rL(E)&&(d=`${d} ${E}`.trimStart()),eL(E)&&l.push(E),tL(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Ff()};let f=Zf.default.scope().active();f&&Zf.default.inject(f.context(),DS.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let I=l[S],R=I._logKey;R?(delete I._logKey,g[R]=I):(E[y]=I,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Xr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Xr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Xr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Xr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Xr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Xr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Le()}catch{}return u},o=()=>{let u;try{u=Jp()}catch{}return u},a=()=>{let u;try{u=ur()}catch{}return u}}var Ic=Xr;var nL=["AccountError"];function iL(t){return t&&t.suppressAlert}function sa(t,e){e&&nL.includes(e.name)&&iL(e)||console.error(`bb-alert: ${t}`,e)}function sL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,sa(t,n)}function cs(t,e){console.warn(`bb-warn: ${t}`,e)}var oa=class{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";ea.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,CS.default)(`${this.host}${r}`,s)}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 Xf=new oa(h.ACCOUNT_PORTAL_URL),em=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,en=async t=>{if(em)return;let e={email:t},r=await Xf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ls=async t=>{if(em)return;let e={tenantId:t},r=await Xf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},oL=async()=>{if(em)return;let t=await Xf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};P(Es,{UserDB:()=>Kt,addAppBuilder:()=>P0,bulkGetGlobalUsersById:()=>Kc,bulkUpdateGlobalUsers:()=>_a,cleanseUserObject:()=>Dm,creatorsInList:()=>pi,doesUserExist:()=>b0,getAccountHolderFromUsers:()=>Lc,getAllUserIds:()=>R0,getAllUsers:()=>w0,getById:()=>hi,getCreatorCount:()=>v0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>LS,getExistingTenantUsers:()=>PS,getFirstPlatformUser:()=>aa,getGlobalUserByAppPage:()=>R_,getGlobalUserByEmail:()=>Bt,getPlatformUsers:()=>xc,getUserCount:()=>C0,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>FS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>MS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Nc,isGlobalBuilder:()=>US,paginatedUsers:()=>b_,removeAppBuilder:()=>L0,removePortalUserPermissions:()=>N0,searchExistingEmails:()=>nm,searchGlobalUsersByApp:()=>Jc,searchGlobalUsersByAppAccess:()=>bm,searchGlobalUsersByEmail:()=>w_,validateUniqueUser:()=>Pc});var im={};P(im,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Lc,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>FS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>MS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Nc,isGlobalBuilder:()=>US,validateUniqueUser:()=>Pc});var rm={};P(rm,{createCode:()=>uL,deleteCode:()=>lL,getCode:()=>cL,getExistingInvites:()=>tm,getInviteCodes:()=>NS,updateCode:()=>aL});var vS=be.fromDays(7).toSeconds();async function aL(t,e){await(await ti()).store(t,e,vS)}async function uL(t,e){let r=ge();return await(await ti()).store(r,{email:t,info:e},vS),r}async function cL(t){let r=await(await ti()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function lL(t){await(await ti()).delete(t)}async function NS(){let r=(await(await ti()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function tm(t){return(await NS()).filter(e=>t.includes(e.email))}async function nm(t){let e=[],r=await PS(t);e.push(...r.map(o=>o.email));let n=await LS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await tm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function xc(t){return await Jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function aa(t){return(await xc(t))[0]??null}async function PS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await pr("by_email2",r,void 0,n)}async function LS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("account_by_email",r)}var vc={};P(vc,{BadRequestError:()=>wc,BudibaseError:()=>ps,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>Dc,HTTPError:()=>lt,InvalidAPIKeyError:()=>fs,NotFoundError:()=>Rc,UsageLimitError:()=>bc,getPublicError:()=>Cc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},Cc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class t extends ps{constructor(r,n,i="http"){super(r,i);this.status=n}static async fromResponse(r){let n=await r.text(),i=n,s=r.status,o="http";try{let a=JSON.parse(n);i=a.message,s=a.status,o=a.error?.code}catch{}return new t(i,s,o)}},Rc=class extends lt{constructor(e){super(e,404)}},wc=class extends lt{constructor(e){super(e,400)}},bc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Dc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},fs=class extends ps{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},gr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=ot.users.isBuilder,tn=ot.users.isAdmin,US=ot.users.isGlobalBuilder,MS=ot.users.isAdminOrBuilder,rn=ot.users.hasAdminPermissions,At=ot.users.hasBuilderPermissions,FS=ot.users.hasAppBuilderPermissions;async function pi(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await oe().getMultiple(r,{allowMissing:!0}),t.map(i=>Nc(i,e))}async function ua(t){let e=[];return t.userGroups&&(e=await oe().getMultiple(t.userGroups)),Nc(t,e)}function Nc(t,e){let r=ot.users.isCreator(t);return!r&&t?pL(t,e):r}function pL(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}async function Pc(t,e){if(h.MULTI_TENANCY){let r=await aa(t);if(r!=null&&r.tenantId!==e)throw new gr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await en(t);if(r&&r.verified&&r.tenantId!==e)throw new gr(t)}}async function Lc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ds(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var ys={};P(ys,{account:()=>e_,ai:()=>s_,analytics:()=>Mc,app:()=>t_,auditLog:()=>A_,auth:()=>jc,automation:()=>r_,backfill:()=>h_,backfillCache:()=>Wc,backup:()=>E_,datasource:()=>n_,email:()=>i_,environmentVariable:()=>T_,group:()=>g_,identification:()=>kt,initAsyncEvents:()=>p0,installation:()=>ga,layout:()=>a_,license:()=>o_,org:()=>u_,plugin:()=>y_,processors:()=>dm,publishEvent:()=>A,query:()=>c_,role:()=>Sa,rowAction:()=>S_,rows:()=>d_,screen:()=>l_,serve:()=>f_,shutdown:()=>f0,table:()=>p_,user:()=>Je,view:()=>m_});var dm={};P(dm,{analyticsProcessor:()=>KS,init:()=>NL,processors:()=>Tr});var Mc={};P(Mc,{enabled:()=>Uc});var Uc=async()=>Fc();var VS=require("posthog-node");var fL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",mL=t=>t==="served:app:preview"||t==="served:app";var BS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},GS=async t=>{if(!fL(t))return!1;let e=await hL(t);if(e){let r=new Date(e.timestamp);switch(BS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await kS(t,{timestamp:Date.now()}),!1):!0}}else return await kS(t,{timestamp:Date.now()}),!1},$S=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return mL(t)&&(e=e+":"+Le()),e},hL=async t=>{let e=$S(t);return await si(e)},kS=async(t,e)=>{let r=$S(t),n=BS[t],i;switch(n){case"calendarDay":i=86400}await lr(r,e,i)};var yL=["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"],ca=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new VS.PostHog(e)}async processEvent(e,r,n,i){if(yL.includes(e)||await GS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Le();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}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 qS=ca;var EL=["installation:version:upgraded","installation:version:downgraded"],TL=["installation","tenant"],la=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new qS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!EL.includes(e)&&!await Uc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!TL.includes(e.type)&&!await Uc()||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 sm=h.SELF_HOSTED&&!h.isDev(),da=class{async processEvent(e,r,n){sm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){sm||console.log("[audit] identified",e)}async identifyGroup(e){sm||console.log("[audit] group identified",e)}async shutdown(){}};var lm={};P(lm,{BudibaseQueue:()=>Er,InMemoryQueue:()=>kc,JobQueue:()=>hs,shutdown:()=>DL});var WS=W(require("events"));function AL(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var kc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new WS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a,u=0){try{await a}catch(c){if(u++,u<3)await Ht.wait(100*u),await s(r(n),u);else throw c}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n);let a=this._messages.indexOf(n);if(a===-1)throw"Failed deleting a processed message";this._messages.splice(a,1)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}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 s=()=>{let a={id:ge(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}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=>AL(e))}async whenCurrentJobsFinished(){do await Cf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},QS=kc;var um=W(require("bull"));var hs=(o=>(o.AUTOMATION="automationQueue",o.APP_BACKUP="appBackupQueue",o.AUDIT_LOG="auditLogQueue",o.SYSTEM_EVENT_QUEUE="systemEventQueue",o.APP_MIGRATION="appMigration",o.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",o))(hs||{});function jS(t,e,r){IL(t,e),r&&SL(t,r)}function SL(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 s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function St(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var _L={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function IL(t,e){let r=_L[e];function n(i,s){let o=i.data.event?.appId;if(o)return Kp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...St(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...St(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...St(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...St(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...St(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...St(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...St(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...St(r,"paused"))}).on("resumed",()=>{console.info(...St(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...St(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...St(r,"drained"))}).on("removed",i=>{console.info(...St(r,"removed",{job:i}))})}var Bc={};P(Bc,{cleanup:()=>OL,clear:()=>am,set:()=>om});var pa=[];function om(t,e){let r=setInterval(t,e);return pa.push(r),r}function am(t){let e=pa.indexOf(t);e!==-1&&pa.splice(e,1),clearInterval(t)}function OL(){for(let t of pa)clearInterval(t);pa=[]}var yr=W(require("dd-trace")),fa=W(require("object-sizeof")),xL=be.fromMinutes(5).toMs(),RL=be.fromSeconds(30).toMs(),cm=be.fromSeconds(60).toMs(),ma=[],Gc;async function HS(){for(let t of ma)await t.clean(cm,"completed"),await t.clean(cm,"failed")}async function wL(t,e,r){let n=performance.now();try{let i=await e();return yr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw yr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;yr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),yr.default.dogstatsd.increment(t,1,r)}}function YS(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}function bL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,fa.default)(t.data),...YS(t.opts||{})}}var Er=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:Xn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:xL,lockRenewTime:RL}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new um.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new QS(this.jobQueue,r):n=new um.default(this.jobQueue,r),jS(n,this.jobQueue,this.opts.removeStalledCb),ma.push(n),!Gc&&!h.isTest()&&(Gc=om(HS,cm),HS().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=async s=>{await yr.default.trace("queue.process",async o=>{if(s.data._parentSpanContext){let a=s.data._parentSpanContext,u={traceId:a.traceId,spanId:a.spanId,toTraceId:()=>a.traceId,toSpanId:()=>a.spanId,toTraceparent:()=>""};o.addLink(u)}o.addTags({"queue.name":this.jobQueue,...bL(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),yr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,fa.default)(s.data),this.metricTags()),await this.withMetrics("queue.process",()=>n(s))})};return r?this.queue.process(r,i):this.queue.process(i)}async add(e,r){return await yr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,fa.default)(e),...YS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},yr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,fa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return wL(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function DL(){if(Gc&&am(Gc),ma.length){for(let t of ma)await t.close();ma=[]}console.log("Queues shutdown")}var gs=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new Er("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await qe(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=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:s})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&vf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Le(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var ha=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.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 KS=new la,CL=new da,vL=new gs;function NL(t){return gs.init(t)}var Tr=new ha([KS,CL,vL]);var $c={};P($c,{checkInstallVersion:()=>UL,getInstall:()=>ya,getInstallFromDB:()=>fm});var pm=W(require("semver"));var ya=async()=>jr(Ce.INSTALLATION,86400,fm,{useTenancy:!1});async function PL(t){let e={_id:Te.PLATFORM_INFO.docs.install,installId:ge(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return fm();throw r}}var fm=async()=>ut(Te.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Te.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await PL(t);else throw r}return e}),LL=async t=>{try{await ut(Te.PLATFORM_INFO.name,async e=>{let r=await ya();r.version=t,await e.put(r),await ts(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},UL=async()=>{let t=await ya(),e=t.version,r=h.VERSION;try{if(e!==r){let n=pm.default.gt(r,e),i=pm.default.lt(r,e);await LL(r)&&(await Oo({_id:t.installId,type:"installation"},async()=>{n?await ga.upgraded(e,r):i&&await ga.downgraded(e,r)}),await kt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?sa(`Invalid version "${r}" - is it semver?`):sa("Failed to retrieve version",n)}};var ML=async()=>{let t=Cp(),e=Aa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=Ea();return{id:JS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await Vc(Q()),s=Ea();return{id:JS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Vc(Q()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=Ea(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},FL=async(t,e)=>{let r=t,n="installation",i=Ea(),s=h.VERSION,o=Aa(),a={id:r,type:n,hosting:i,version:s,environment:o};await mm(a,e),await Ta({...a,id:`$${n}_${r}`},e)},kL=async(t,e,r)=>{let n=await Vc(t),i="tenant",s=await fi(),o=Aa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await mm(a,r),await Ta({...a,id:`$${i}_${n}`},r)},BL=async(t,e,r)=>{let n=t._id,i=await Vc(t.tenantId),s="user",o=At(t),a=rn(t),u;qa(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,m=await fi(),p=e?e.hosting:Ea(),f=Aa();await Ta({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},GL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Va(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=Aa();if($a(t)){let d=await Bt(t.email);d?._id&&(e=d._id)}await Ta({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ta=async(t,e)=>{await Tr.identify(t,e)},mm=async(t,e)=>{await Tr.identifyGroup(t,e)},Aa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ea=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>$L()?"account-portal":(await ya()).installId,Vc=async t=>h.SELF_HOSTED?zS(t):t,zS=async t=>qe(t,()=>jr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=oe(),r=await qc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ge()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),$L=()=>h.SERVICE==="account-portal",JS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,kt={getCurrentIdentity:ML,identifyInstallationGroup:FL,identifyTenantGroup:kL,identifyUser:BL,identifyAccount:GL,identify:Ta,identifyGroup:mm,getInstallationId:fi,getUniqueTenantId:zS};var Wc={};P(Wc,{end:()=>qL,isAlreadySent:()=>ym,isBackfillingEvent:()=>gm,recordEvent:()=>hm,start:()=>VL});var VL=async t=>QL({eventWhitelist:t}),hm=async(t,e)=>{let r=Em(t,e);await lr(r,e,void 0,{useTenancy:!1})},qL=async()=>{await jL(),await HL()},WL=async()=>si(Ce.BACKFILL_METADATA),QL=async t=>lr(Ce.BACKFILL_METADATA,t),jL=async()=>{await Vo(Ce.BACKFILL_METADATA)},HL=async()=>{let t=Em(),e=await uc(t);for(let r of e)await Vo(r,{useTenancy:!1})},gm=async t=>{let r=(await WL())?.eventWhitelist;return!!(r&&r.includes(t))},ym=async(t,e)=>{let r=Em(t,e);return!!await si(r,{useTenancy:!1})},YL={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},Em=(t,e)=>{let r,n=Q();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=YL[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Ar;function Qc(){Ar=new Er("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function ZS(){Ar&&await Ar.close()}async function XS(t){Ar||Qc();let{event:e,identity:r}=t;Ch.indexOf(e)!==-1&&r.tenantId&&await Ar.add(t)}var A=async(t,e,r,n)=>{let i=n||await kt.getCurrentIdentity();if(!(n?!1:await gm(t))){await XS({event:t,identity:i,properties:e,timestamp:r}),await Tr.processEvent(t,i,e,r);return}await ym(t,e)||(await Tr.processEvent(t,i,e,r),await hm(t,e))};async function KL(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function JL(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function zL(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var e_={created:KL,deleted:JL,verified:zL};var ZL=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function XL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function eU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function tU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function rU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function nU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function iU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function sU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function oU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function aU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function uU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function cU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var t_={created:ZL,updated:XL,deleted:eU,published:tU,unpublished:rU,fileImported:nU,duplicated:iU,templateImported:sU,versionUpdated:oU,versionReverted:aU,reverted:uU,exported:cU};async function lU(t,e){let n={userId:(await kt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function dU(t){let r={userId:(await kt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function pU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function fU(t){let e={type:t};await A("auth:sso:updated",e)}async function mU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function hU(t){let e={type:t};await A("auth:sso:deactivated",e)}var jc={login:lU,logout:dU,SSOCreated:pU,SSOUpdated:fU,SSOActivated:mU,SSODeactivated:hU};async function gU(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)}async function yU(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)}async function EU(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)}async function TU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var AU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function SU(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)}async function _U(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)}var r_={created:gU,triggerUpdated:yU,deleted:EU,tested:TU,run:AU,stepCreated:SU,stepDeleted:_U};function Tm(t){return!Object.values(Fa).includes(t.source)}async function IU(t,e){let r={datasourceId:t._id,source:t.source,custom:Tm(t)};await A("datasource:created",r,e)}async function OU(t){let e={datasourceId:t._id,source:t.source,custom:Tm(t)};await A("datasource:updated",e)}async function xU(t){let e={datasourceId:t._id,source:t.source,custom:Tm(t)};await A("datasource:deleted",e)}var n_={created:IU,updated:OU,deleted:xU};async function RU(t){let e={};await A("email:smtp:created",e,t)}async function wU(){let t={};await A("email:smtp:updated",t)}var i_={SMTPCreated:RU,SMTPUpdated:wU};async function bU(t){let e={};await A("ai:config:created",e,t)}async function DU(){let t={};await A("ai:config:updated",t)}var s_={AIConfigCreated:bU,AIConfigUpdated:DU};async function CU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function vU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function NU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function PU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function LU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function UU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function MU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var o_={planChanged:CU,activated:vU,checkoutOpened:NU,checkoutSuccess:PU,portalOpened:LU,paymentFailed:UU,paymentRecovered:MU};async function FU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function kU(t){let e={layoutId:t};await A("layout:deleted",e)}var a_={created:FU,deleted:kU};async function BU(t){let e={};await A("org:info:name:updated",e,t)}async function GU(t){let e={};await A("org:info:logo:updated",e,t)}async function $U(t){let e={};await A("org:platformurl:updated",e,t)}async function VU(){let t={};await A("analytics:opt:out",t)}async function qU(){let t={};await A("analytics:opt:out",t)}var u_={nameUpdated:BU,logoUpdated:GU,platformURLUpdated:$U,analyticsOptOut:VU,analyticsOptIn:qU};var WU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},QU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},jU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},HU=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},YU=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},KU=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},c_={created:WU,updated:QU,deleted:jU,imported:HU,run:YU,previewed:KU};async function JU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function zU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function ZU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function XU(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function eM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Sa={created:JU,updated:zU,deleted:ZU,assigned:XU,unassigned:eM};async function tM(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)}async function rM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var l_={created:tM,deleted:rM};var nM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},iM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},d_={created:nM,imported:iM};async function sM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function oM(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function aM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function uM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function cM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var p_={created:sM,updated:oM,deleted:aM,exported:uM,imported:cM};async function lM(t){let e={timezone:t};await A("served:builder",e)}async function dM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function pM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var f_={servedBuilder:lM,servedApp:dM,servedAppPreview:pM};async function fM(t,e){let r={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:created",r,e)}async function mM(t){let e={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:updated",e)}async function hM(t){let e={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:deleted",e)}async function gM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function yM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function EM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function TM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function AM(t){let e={audited:{email:t}};await A("user:invited",e)}async function SM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function _M(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function IM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function OM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function xM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function RM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:fM,updated:mM,deleted:hM,permissionAdminAssigned:gM,permissionAdminRemoved:yM,permissionBuilderAssigned:EM,permissionBuilderRemoved:TM,invited:AM,inviteAccepted:SM,passwordForceReset:_M,passwordUpdated:IM,passwordResetRequested:OM,passwordReset:xM,dataCollaboration:RM};async function wM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function bM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function DM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function CM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function vM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function NM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function PM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function LM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function UM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function MM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function FM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var m_={created:wM,updated:bM,deleted:DM,exported:CM,filterCreated:vM,filterUpdated:NM,filterDeleted:PM,calculationCreated:LM,calculationUpdated:UM,calculationDeleted:MM,viewJoinCreated:FM};async function kM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function BM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function GM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function $M(){let t={};await A("installation:firstStartup",t)}var ga={versionChecked:kM,upgraded:BM,downgraded:GM,firstStartup:$M};var Ts=!h.SELF_HOSTED&&!h.isDev();async function VM(t){Ts||await A("app:backfill:succeeded",t)}async function qM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function WM(t){Ts||await A("tenant:backfill:succeeded",t)}async function QM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function jM(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function HM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var h_={appSucceeded:VM,appFailed:qM,tenantSucceeded:WM,tenantFailed:QM,installationSucceeded:jM,installationFailed:HM};async function YM(t,e){let r={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function KM(t){let e={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:updated",e)}async function JM(t){let e={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function zM(t,e){let r={count:t,groupId:e._id,viaScim:Lt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function ZM(t,e){let r={count:t,groupId:e._id,viaScim:Lt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function XM(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function e0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var g_={created:YM,updated:KM,deleted:JM,usersAdded:zM,usersDeleted:ZM,createdOnboarding:XM,permissionsEdited:e0};async function t0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function r0(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)}async function n0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var y_={init:t0,imported:r0,deleted:n0};async function i0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function s0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var E_={appBackupRestored:i0,appBackupTriggered:s0};async function o0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function a0(t){let e={name:t};await A("environment_variable:deleted",e)}async function u0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var T_={created:o0,deleted:a0,upgradePanelOpened:u0};async function c0(t){let e={filters:t};await A("audit_log:filtered",e)}async function l0(t){let e={filters:t};await A("audit_log:downloaded",e)}var A_={filtered:c0,downloaded:l0};async function d0(t,e){await A("row_action:created",t,e)}var S_={created:d0};function p0(){}var f0=async()=>{await Tr.shutdown(),console.log("Events shutdown")};var Am=async t=>{await Je.deleted(t),At(t)&&await Je.permissionBuilderRemoved(t),rn(t)&&await Je.permissionAdminRemoved(t)},m0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Sa.assigned(t,i)},h0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Sa.unassigned(t,i)},g0=async(t,e)=>{let r=t.roles,n=e?.roles;await m0(t,r,n),await h0(t,r,n)},Sm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ls(r)),await kt.identifyUser(t,n),e?(await Je.updated(t),E0(t,e)&&await Je.permissionBuilderRemoved(t),A0(t,e)&&await Je.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Je.passwordForceReset(t),t.password!==e.password&&await Je.passwordUpdated(t)):await Je.created(t),y0(t,e)&&await Je.permissionBuilderAssigned(t),T0(t,e)&&await Je.permissionAdminAssigned(t),await g0(t,e)},y0=(t,e)=>__(t,e,At),E0=(t,e)=>I_(t,e,At),T0=(t,e)=>__(t,e,rn),A0=(t,e)=>I_(t,e,rn),__=(t,e,r)=>!(!r(t)||e&&r(e)),I_=(t,e,r)=>!(r(t)||!e||!r(e));var Yc={};P(Yc,{createASession:()=>_0,endSession:()=>I0,getSession:()=>Im,getSessionsForUser:()=>Hc,invalidateSessions:()=>mi,updateSessionTTL:()=>_m});var O_=require("uuid");var x_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function Hc(t){return t?(await(await Wr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function mi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Hc(t)).map(o=>({key:As(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:As(t,s)}))),i&&i.length>0){let s=await Wr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||cs(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function _0(t,e){await mi(t,{reason:"creation"});let r=await Wr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,O_.v4)(),s=As(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,x_),o}async function _m(t){let e=await Wr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,x_)}async function I0(t,e){await(await Wr()).delete(As(t,e))}async function Im(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Wr()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var wm={};P(wm,{PASSWORD_MAX_LENGTH:()=>xm,PASSWORD_MIN_LENGTH:()=>Om,validatePassword:()=>Rm});var Om=+(h.PASSWORD_MIN_LENGTH||12),xm=+(h.PASSWORD_MAX_LENGTH||512);function Rm(t){return!t||t.length<Om?{valid:!1,error:`Password invalid. Minimum ${Om} characters.`}:t.length>xm?{valid:!1,error:`Password invalid. Maximum ${xm} characters.`}:{valid:!0}}var O0=async t=>{let e=t._id;await Mt.removeUser(t),await Am(t),await sn.invalidateUser(e),await mi(e,{reason:"bulk-deletion"})},Kt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&tn(e)?!1:await t.features.isSSOEnforced()||qa(e)?!0:(r||(r=await ls(Q())),!!(r&&r.email===e.email&&Va(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Rm(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await hf(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||rs();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await oe().allDocs(oi(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Jc(e,{})).length}}static async getUsersByAppAccess(e){return await bm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Bt(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await Kc(e)}static async bulkUpdate(e){return await _a(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=oe(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await hi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await Bt(s),c&&c._id!==o))throw new gr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[m,p]=await pi([c,e]);d=m!==p?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Pc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Dm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Sm(m,c),c&&m.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,m._id,m.email,m.ssoId),await sn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await nm(a),c=[];for(let d of e){if(s.find(m=>m.email.toLowerCase()===d.email.toLowerCase())||u.includes(d.email.toLowerCase())){c.push({email:d.email,reason:"Unavailable"});continue}d.userGroups=r||[],s.push(d),await ua(d)&&o.push(d)}let l=await ls(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(p=>{i.push(t.buildUser(p,{hashPassword:!0,requirePassword:p.requirePassword},n,void 0,l))});let d=await Promise.all(i);await _a(d);for(let p of d)await Mt.addUser(n,p._id,p.email),await Sm(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=oe(),n={successful:[],unsuccessful:[]},i=await Lc(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 o=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await _a(a),l=(await pi(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await aa(p._id)).ssoId;g&&(await xc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await O0(p)}await ct().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,f)=>(p[f._id]=f,p),m),u.forEach(p=>{let f=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:f}):n.unsuccessful.push({_id:p.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=oe(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await en(o))throw n.userId===ur()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await ua(n)?1:0;await t.quotas.removeUsers(1,s),await Am(n),await sn.invalidateUser(i),await mi(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={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&&(s.ssoId=n.ssoId),await ts(Ce.CHECKLIST),await t.save(s,{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 Oa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Kc(t,e){let n=(await oe().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Oa(n)),n}async function R0(){let t=oe(),e=`us${D}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`})).rows.map(n=>n.id)}async function w0(){let t=oe(),e=`us${D}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`,include_docs:!0})).rows.map(n=>n.doc)}async function _a(t){return await oe().bulkDocs(t)}async function hi(t,e){let n=await oe().get(t);return e?.cleanup&&(n=Oa(n)),n}async function Bt(t,e){if(t==null)throw"Must supply an email address to view";let r=await pr("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=Oa(n)),n}async function b0(t){try{let e=await Bt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Jc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=dc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await pr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Oa(s)),s}async function bm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}let i={selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50};return(await Hp(cr(),i)).rows}function R_(t,e){if(e)return lc(at(t),e._id)}async function w_(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,s=await pr("by_email2",{...e,startkey:i,endkey:`${n}${Ge}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Oa(o)),o}var D0=8;async function b_({bookmark:t,query:e,appId:r,limit:n}={}){let i=oe(),s=n??D0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await hi(e.equal._id)]:r?(u=await Jc(r,a),l=d=>R_(r,d)):e?.string?.email?(u=await w_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Kc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(oi(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=kr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(oi(null,a))).rows.map(m=>m.doc),If(u,s,{paginate:!0,property:c,getKey:l})}async function C0(){return(await Rf("by_email2",{limit:0,include_docs:!1})).total_rows}async function v0(){let t=0;async function e(r){let n=await b_({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function N0(t){return delete t.admin,delete t.builder,t}function Dm(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}async function P0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Kt.save(t,{hashPassword:!1})}async function L0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Kt.save(t,{hashPassword:!1})}var D_=3600;async function U0(t,e){let n=await pf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await en(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function M0(t){let e=await Kt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await en(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function xa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=U0),!e)try{e=Q()}catch{e=await Mt.lookupTenantId(t)}let i=await Go(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,D_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Kt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function F0(t){let e=await Go(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r).filter(o=>!!o),s;if(n.length){let o=await M0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,D_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ra(t){await(await Go()).delete(t)}var Pm={};P(Pm,{Writethrough:()=>vm});var C_=1e4,Cm=null;async function zc(){if(!Cm){let t=await lf();Cm=new ri(t)}return Cm}function wa(t,e){return t.name+e}function Nm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function k0(t,e,r=C_){let n=await zc(),i=e._id,s;i&&(s=await n.get(wa(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await as({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;cs("Ignoring conflict in write-through cache")}})).executed||cs("Ignoring redlock conflict in write-through cache")),s=Nm(a,o?null:s?.lastWrite),a._id&&await n.store(wa(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function B0(t,e){let r=await zc(),n=wa(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Nm(s),await r.store(n,i)}return i.doc}async function G0(t,e){let r=await zc(),n=wa(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Nm(s),await r.store(n,i)}return i.doc}async function $0(t,e,r){let n=await zc();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(wa(t,i))}finally{await t.remove(i,r)}}var vm=class{constructor(e,r=C_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return k0(this.db,e,r)}async get(e){return B0(this.db,e)}async tryGet(e){return G0(this.db,e)}async remove(e,r){return $0(this.db,e,r)}};var Lm={};P(Lm,{createCode:()=>q0,getCode:()=>W0,invalidateCode:()=>Q0});var V0=be.fromHours(1).toSeconds();async function q0(t,e){let r=ge();return await(await $o()).store(r,{userId:t,info:e},V0),r}async function W0(t){let r=await(await $o()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function Q0(t){await(await $o()).delete(t)}var Mm={};P(Mm,{DocWritethrough:()=>Um,DocWritethroughProcessor:()=>ba,getProcessor:()=>H0,init:()=>v_});var j0=100,Zc,ba=class t{static get queue(){return t._queue||(t._queue=new Er("docWritethroughQueue",{jobOptions:{attempts:j0}})),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=Ve(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Um=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await ba.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function v_(){return Zc=new ba().init(),Zc}function H0(){return Zc||v_()}function Xc(t){return`config${D}${t}`}async function Gt(t){let e=oe();try{return await e.get(Xc(t))}catch(r){if(r.status===404)return;throw r}}async function Y0(t){return t._id||(t._id=Xc(t.type)),oe().put(t)}async function qc(){let t=await Gt("settings");return t||(t={_id:Xc("settings"),type:"settings",config:{}}),t.config.platformUrl=await Da({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Fc({config:t.config}),t}async function Bm(){return(await qc()).config}async function Da(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Gt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Fc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await jr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Gt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function K0(){return await Gt("google")}async function el(){return(await K0())?.config}async function Gm(){if(!h.SELF_HOSTED)return Fm();let t=await el();return(!t||!t.activated)&&(t=Fm()),t}function Fm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function J0(){return Gt("logos_oidc")}async function z0(){return Gt("oidc")}async function Z0(){let t=(await z0())?.config;return t?.configs&&t.configs[0]}async function $m(t){let e=(await Gt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function N_(){return Gt("smtp")}async function X0(t){let e=await N_();if(e)return e.config;let r=h.SELF_HOSTED||!t;if(h.SMTP_FALLBACK_ENABLED&&r)return{port:h.SMTP_PORT,host:h.SMTP_HOST,secure:!1,from:h.SMTP_FROM_ADDRESS,auth:{user:h.SMTP_USER,pass:h.SMTP_PASSWORD},fallback:!0}}async function eF(){return(await Gt("scim"))?.config}async function tF(){return Gt("ai")}var zm={};P(zm,{AccessController:()=>Wm,BUILTIN_ROLE_IDS:()=>Qm,Role:()=>on,RoleHierarchyTraversal:()=>tl,RoleIDVersion:()=>jm,builtinRoleToNumber:()=>Ca,checkForRoleResourceArray:()=>M_,externalRole:()=>aF,findRole:()=>va,getAllRoleIds:()=>dF,getAllRoles:()=>Jm,getBuiltinRole:()=>L_,getBuiltinRoles:()=>Ym,getDBRoleID:()=>F_,getExternalRoleID:()=>an,getExternalRoleIDs:()=>k_,getRole:()=>uF,getUserRoleHierarchy:()=>Km,getUserRoleIdHierarchy:()=>U_,isBuiltin:()=>gi,lowerBuiltinRoleID:()=>oF,prefixRoleIDNoBuiltin:()=>qm,roleIDsAreEqual:()=>_t,roleToNumber:()=>sF,saveRoles:()=>cF,validInherits:()=>iF});var Vm=W(require("semver"));var rl=W(require("lodash/fp/cloneDeep"));var P_=require("lodash");var Qm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},me={...Qm,BUILDER:"BUILDER"},jm={UUID:void 0,NAME:"name"};function nF(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var on=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=jm.NAME}addInheritance(e){return e&&typeof e=="string"?e=qm(e):e&&Array.isArray(e)&&(e=e.map(qm)),this.inherits=e,this}},tl=class{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 s of e.inherits){let o=va(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!nF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=va(o.inherits,n,r),o&&i.push(o),Ht.roles.checkForRoleInheritanceLoops(i))break}}return(0,P_.uniqBy)(i,s=>s._id)}},Hm={ADMIN:new on(me.ADMIN,me.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(me.POWER),POWER:new on(me.POWER,me.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(me.BASIC),BASIC:new on(me.BASIC,me.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(me.PUBLIC),PUBLIC:new on(me.PUBLIC,me.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new on(me.BUILDER,me.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Ym(){return(0,rl.default)(Hm)}function gi(t){return Object.values(Qm).includes(t)}function qm(t){return gi(t)?t:dr(t)}function L_(t){let e=Object.values(Hm).find(r=>t.includes(r._id));if(e)return(0,rl.default)(e)}function iF(t,e){if(!e)return!1;let r=n=>t.find(i=>_t(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function Ca(t){let e=Ym(),r=Object.values(e).length+1;if(_t(t,me.ADMIN)||_t(t,me.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}async function sF(t){if(gi(t))return Ca(t);let e=await Km(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>_t(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(gi(n.inherits))return Ca(n.inherits)+1;return 0};return Math.max(...e.map(r))}function oF(t,e){return t?e&&Ca(t)>Ca(e)?e:t:e}function _t(t,e){return dr(t)===dr(e)}function aF(t){let e;return t._id&&(e=an(t._id)),{...t,_id:e,inherits:k_(t.inherits,t.version)}}function va(t,e,r){let n=L_(t);n||(t=dr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!gi(t)&&r?.defaultPublic?(0,rl.default)(Hm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=an(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function uF(t,e){let r=Xi(),n=[];if(!gi(t)){let i=await r.tryGet(F_(t));i&&n.push(i)}return va(t,n,e)}async function cF(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:dr(r._id)})))}async function lF(t,e){let r=await Jm();if(_t(t,me.ADMIN))return r;let n=va(t,r,e),i=[];return n&&(i=new tl(r,e).walk(n)),i}async function U_(t){return(await Km(t)).map(r=>r._id)}async function Km(t,e){return lF(t,e)}function M_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}async function dF(t){return(await Jm(t)).map(r=>r._id)}async function Jm(t){if(t)return ut(t,e);{let r;try{r=Xi()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(pc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=an(a._id,a.version)));let i=Ym(),s=[];!r||await pF(r)?s=[me.ADMIN,me.POWER,me.BASIC,me.PUBLIC]:s=[me.ADMIN,me.BASIC,me.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>_t(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=an(a._id,u.version),n.push({...a,...u,name:a.name,_id:an(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=M_(o.permissions,a);return n}}async function pF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Vm.default.valid(r)?!0:!Vm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Wm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,me.BUILDER)||_t(r,e)||_t(r,me.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await U_(r),this.userHierarchies[r]=n),n?.find(i=>_t(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let s=await this.checkScreenAccess(i,r);s&&n.push(s)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function F_(t){return t?.startsWith("role")?t:dr(t)}function an(t,e){if(t.startsWith(`role${D}`)&&(gi(t)||e===jm.NAME)){let r=t.split(D);return r.shift(),r.join(D)}return t}function k_(t,e){return t&&(typeof t=="string"?an(t,e):t.map(r=>an(r,e)))}var Zm={};P(Zm,{BUILDER:()=>yF,BUILTIN_PERMISSIONS:()=>nl,CREATOR:()=>EF,GLOBAL_BUILDER:()=>TF,PermissionImpl:()=>he,PermissionLevel:()=>xs,PermissionType:()=>Ga,doesHaveBasePermission:()=>hF,getAllowedLevels:()=>V_,getBuiltinPermissionByID:()=>mF,getBuiltinPermissions:()=>fF,isPermissionLevelHigherThanRead:()=>gF,levelToNumber:()=>$_});var B_=W(require("lodash/flatten")),G_=W(require("lodash/fp/cloneDeep")),he=class{constructor(e,r){this.type=e,this.level=r}};function $_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function V_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var nl={PUBLIC:{_id:"public",name:"Public",permissions:[new he("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new he("query","read"),new he("table","read"),new he("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new he("query","write"),new he("table","write"),new he("automation","execute"),new he("legacy_view","read"),new he("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new he("table","write"),new he("user","read"),new he("automation","execute"),new he("webhook","read"),new he("legacy_view","read"),new he("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new he("table","admin"),new he("user","admin"),new he("automation","admin"),new he("webhook","read"),new he("query","admin"),new he("legacy_view","read"),new he("app","read")]}};function fF(){return(0,G_.default)(nl)}function mF(t){return Object.values(nl).find(r=>r._id===t)}function hF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(nl),s=(0,B_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&V_(o.level).indexOf(e)!==-1)return!0;return!1}function gF(t){return $_(t)>1}var yF="builder",EF="creator",TF="globalBuilder";var th={};P(th,{FlagSet:()=>sl,all:()=>IF,flags:()=>Xm,getEnvFlags:()=>j_,init:()=>AF,isEnabled:()=>_F,parseEnvFlags:()=>al,shutdown:()=>SF,testutils:()=>eh});var ol=W(require("crypto"));var q_=require("posthog-node"),W_=W(require("dd-trace"));var Q_=require("lodash");var il;function AF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),il=new q_.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:be.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function SF(){il?.shutdown()}function al(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}function j_(){return al(h.TENANT_FEATURE_FLAGS||"")}var sl=class{constructor(e){this.flagSchema=e;this.setId=ol.randomUUID()}defaults(){return(0,Q_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await W_.default.trace("features.fetch",async e=>{let r=Xp(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:d,key:m,value:p}of j_())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,p===!1&&o.add(m),!!this.isFlagName(m))){if(typeof i[m]!="boolean")throw new Error(`Feature: ${m} is not a boolean`);i[m]=p,n[`flags.${m}.source`]="environment"}let a=ur(),u=a?._id;if(!u){let d=zp();d&&(u=ol.createHash("sha512").update(d).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,il&&u){n.readFromPostHog=!0;let d={tenantId:c},m=await il.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[p,f]of Object.entries(m))if(this.isFlagName(p)){if(typeof f!="boolean"){console.warn(`Invalid value for posthog flag "${p}": ${f}`);continue}if(!(i[p]===!0||o.has(p)))try{i[p]=f,n[`flags.${p}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${p}": ${f}`,g)}}}let l=tf();for(let[d,m]of Object.entries(l))this.isFlagName(d)&&typeof m=="boolean"&&(i[d]=m,n[`flags.${d}.source`]="override");ef(this.setId,i);for(let[d,m]of Object.entries(i))n[`flags.${d}.value`]=m;return e?.addTags(n),i})}},Xm=new sl(Uh);async function _F(t){return await Xm.isEnabled(t)}async function IF(){return await Xm.fetch()}var eh={};P(eh,{setFeatureFlags:()=>H_,withFeatureFlags:()=>RF});function OF(){let t={};for(let{tenantId:e,key:r,value:n}of al(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function xF(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,s]of Object.entries(n))s===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}function H_(t,e){let r=OF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=xF(r);return Ro({TENANT_FEATURE_FLAGS:n})}function RF(t,e,r){let n=H_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var fh={};P(fh,{adminOnly:()=>El,auditLog:()=>ml,authError:()=>Me,buildAuthMiddleware:()=>mk,buildCsrfMiddleware:()=>gk,buildTenancyMiddleware:()=>hk,builderOnly:()=>Al,builderOrAdmin:()=>Tl,google:()=>Sr,internalApi:()=>gl,joiValidator:()=>Pa,oidc:()=>_r,passport:()=>yk,platformLogout:()=>_k,refreshOAuthToken:()=>Ak,ssoCallbackUrl:()=>un,updateUserOAuth:()=>Sk});var ph={};P(ph,{adminOnly:()=>El,auditLog:()=>ml,authError:()=>Me,authenticated:()=>fl,builderOnly:()=>Al,builderOrAdmin:()=>Tl,correlation:()=>aI,csp:()=>fI,csrf:()=>yl,datasource:()=>pk,errorHandling:()=>cI,featureFlagCookie:()=>mI,google:()=>Sr,internalApi:()=>gl,ip:()=>gI,joiValidator:()=>Pa,local:()=>Ss,oidc:()=>_r,pino:()=>sI,querystringToBody:()=>lI,ssoCallbackUrl:()=>un,tenancy:()=>hl});var Ss={};P(Ss,{authenticate:()=>DF,options:()=>bF});function Me(t,e,r){return t(r,null,{message:e})}async function un(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Bm(),n="/api/global/auth";return qr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var rh="Invalid credentials",wF="This account has expired. Please reset your password",bF={passReqToCallback:!0};async function DF(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Bt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,rh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,rh)):i.password?await gf(r,i.password)?(delete i.password,n(null,i)):Me(n,rh):(console.info(`user=${e} has no password set`,i),Me(n,wF))}var Sr={};P(Sr,{buildVerifyFn:()=>J_,getCallbackUrl:()=>NF,strategyFactory:()=>nh});var Na=t=>Promise.resolve(t);async function ul(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=rs(t.userId),s;try{s=await hi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Bt(t.email)),!s&&e)return Me(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await CF(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Me(r,"Error saving user",a)}return r(null,o)}async function CF(t,e){let r,n,i;if(e.profile){let s=e.profile;if(s.name){let o=s.name;o.givenName&&(r=o.givenName),o.familyName&&(n=o.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}var vF=require("passport-google-oauth").OAuth2Strategy;function J_(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return ul(s,!0,i,t)}}async function nh(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 s=J_(r);return new vF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function NF(t){return un("google",t)}var _r={};P(_r,{buildVerifyFn:()=>Z_,fetchStrategyConfig:()=>MF,getCallbackUrl:()=>FF,strategyFactory:()=>UF});var z_=W(require("node-fetch"));var PF=require("@techpass/passport-openidconnect").Strategy;function Z_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:LF(n,i),oauth2:{accessToken:s,refreshToken:o}};return ul(l,!1,c,t)}}function LF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Nf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function UF(t,e){try{let r=Z_(e),n=new PF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function MF(t,e){try{let{clientID:r,clientSecret:n,configUrl:i}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let s=await(0,z_.default)(i);if(!s.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${s.statusText}`);let o=await s.json();return{issuer:o.issuer,authorizationURL:o.authorization_endpoint,tokenURL:o.token_endpoint,userInfoURL:o.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function FF(){return un("oidc")}var ih={};P(ih,{postAuth:()=>GF,preAuth:()=>BF});var kF=require("passport-google-oauth").OAuth2Strategy;async function X_(){let t=await Gm();if(!t)throw new Error("No google configuration found");return t}async function BF(t,e,r){let n=await X_(),s=`${await Da({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await nh(n,s,Na);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function GF(t,e,r){let n=await X_(),s=`${await Da({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=mr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new kF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Kr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=ge();await lr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var $F=/\/:(.*?)(\/.*)?$/g,yi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match($F);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],Ei=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var lh={};P(lh,{SecretOption:()=>rI,decrypt:()=>ch,decryptFile:()=>HF,encrypt:()=>WF,encryptFile:()=>QF,getSecret:()=>uh});var Ir=W(require("crypto")),cn=W(require("fs")),oh=W(require("zlib"));var sh=require("path"),cl="aes-256-ctr",tI="-",VF=1e4,qF=32,ll=16,ah=16,rI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(rI||{});function uh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function dl(t,e){return Ir.default.pbkdf2Sync(t,e,VF,qF,"sha512")}function WF(t,e="api"){let r=Ir.default.randomBytes(ll),n=dl(uh(e),r),i=Ir.default.createCipheriv(cl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${tI}${a}`}function ch(t,e="api"){let[r,n]=t.split(tI),i=Buffer.from(r,"hex"),s=dl(uh(e),i),o=Ir.default.createDecipheriv(cl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function QF({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,sh.join)(t,e);if(cn.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=cn.default.createReadStream(i),o=cn.default.createWriteStream((0,sh.join)(t,n)),a=Ir.default.randomBytes(ll),u=Ir.default.randomBytes(ah),c=dl(r,a),l=Ir.default.createCipheriv(cl,c,u);return o.write(a),o.write(u),s.pipe(oh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function jF(t){let e=cn.default.createReadStream(t),r=await eI(e,ll),n=await eI(e,ah);return e.close(),{salt:r,iv:n}}async function HF(t,e,r){if(cn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await jF(t),s=cn.default.createReadStream(t,{start:ll+ah}),o=cn.default.createWriteStream(e),a=dl(r,n),u=Ir.default.createDecipheriv(cl,a,i),c=oh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),d(m)}),u.on("error",m=>{o.close(),d(m)}),c.on("error",m=>{o.close(),d(m)}),o.on("error",m=>{o.close(),d(m)})})}function eI(t,e){return new Promise((r,n)=>{let i=0,s=[];t.on("readable",()=>{let o;for(;(o=t.read(e-i))!==null;)s.push(o),i+=o.length;r(Buffer.concat(s))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var iI=W(require("dd-trace")),YF=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function KF(){return new Date(Date.now()-YF).toISOString()}function nI(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}async function JF(t,e){if(Zo(t))return{valid:!0,user:void 0};let n=ch(t).split(D)[0];return qe(n,async()=>{let i;try{let s=oe();i=await pr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await xa({userId:i,tenantId:n,populateUser:e})};throw new fs})}function pl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function fl(t=[],e={publicAllowed:!1}){let r=t?yi(t):[];return async(n,i)=>{let s=!1,o=pl(n,"x-budibase-api-version");Ei(n,r)&&(s=!0);try{let u=pl(n,"x-budibase-token"),c=mr(n,"budibase:auth")||mc(u),l=pl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=pl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,I;try{I=await Im(S,y),e&&e.populateUser?p=await xa({userId:S,tenantId:I.tenantId,email:I.email,populateUser:e.populateUser(n)}):p=await xa({userId:S,tenantId:I.tenantId,email:I.email}),p.csrfToken=I.csrfToken,g="cookie",I?.lastAccessedAt<KF()&&await _m(I),m=!0}catch(R){m=!1,console.error(`Auth Error: ${R.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:I}=await JF(l,y);S&&(m=!0,g="api_key",p=I,f=!I)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&iI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),nI(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Np(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Kr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return nI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var zF=async(t,e)=>e(),ml=zF;function hl(t,e,r={noTenancyRequired:!1}){let n=yi(t),i=yi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ei(s,i)};!!Ei(s,n)||(u.excludeStrategies=["query"]);let l=Wo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var gl=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Zo(r)||t.throw(403,"Unauthorized"),e()};var ZF=["GET","HEAD","OPTIONS"],XF=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function yl(t={noCsrfPatterns:[]}){let e=yi(t.noCsrfPatterns);return async(r,n)=>{if(Ei(r,e)||ZF.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!XF.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var El=async(t,e)=>(!t.internal&&!tn(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Tl=async(t,e)=>{let r=Le(),n=h.isWorker()||!r?At:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!tn(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var Al=async(t,e)=>{let r=Le(),n=h.isWorker()||!r?At:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var ek=require("koa-pino-logger"),tk=require("correlation-id");function rk(){return{logger:Ic,genReqId:tk.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})}}}function nk(){return h.HTTP_LOGGING?ek(rk()):(t,e)=>e()}var ik=nk(),sI=ik;var oI=require("uuid"),sk=require("correlation-id"),ok=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,oI.v4)()),sk.withId(r,()=>e())},aI=ok;function uI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of MT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function ak(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:Cc(r)};if(uI(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}var cI=ak;function lI(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()}var pI=W(require("crypto"));var dI={"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"],"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"],"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'"]},uk=/^[A-Za-z0-9-*:/.]+$/,ck=async(t,e)=>{let r=pI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...dI};if(n["script-src"]=[...dI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await jo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
|
|
38
|
-
`).filter(c=>uk.test(c));n["default-src"]=[...n["default-src"],...u]}}catch(o){console.error(`Error occurred in Content-Security-Policy middleware: ${o}`)}let s=Object.entries(n).map(([o,a])=>`${o} ${a.join(" ")}`).join("; ");t.set("Content-Security-Policy",s),await e()},fI=ck;var mI=async(t,e)=>{let n=mr(t,"budibase:featureflags")?.flags||{};await rf(n,async()=>{await e()})};var Pa={};P(Pa,{body:()=>lk,params:()=>dk});var dh=W(require("joi"));function hI(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:dh.default.any().optional(),updatedAt:dh.default.any().optional()}));let{error:u}=t.validate(o,{allowUnknown:r?.allowUnknown});if(u){let c=u.message;n&&(c=`Invalid ${e} - ${c}`),i.throw(400,c)}return s()}}function lk(t,e){return hI(t,"body",e)}function dk(t,e){return hI(t,"params",e)}var gI=async(t,e)=>t.ip?await Zp(t.ip,()=>e()):e();var pk={google:ih};var yI=require("koa-passport"),fk=require("passport-local").Strategy,Sl=require("passport-oauth2-refresh"),mk=fl,hk=hl,gk=yl,yk=yI;yI.use(new fk(Ss.options,Ss.authenticate));async function Ek(t,e){let r=await _r.getCallbackUrl(),n,i;try{if(n=await _r.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await _r.strategyFactory(n,Na)}catch{throw new Error("Could not refresh OAuth Token")}return Sl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Sl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Tk(t,e){let r=await Sr.getCallbackUrl(t),n;try{n=await Sr.strategyFactory(t,r,Na)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Sl.use(n),new Promise(i=>{Sl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Ak(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await $m(r);return n?Ek(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await el();return n?Tk(n,t):{err:{data:"Google configuration not found"}}}}}async function Sk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=oe(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Ra(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function _k(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=mr(e,"budibase:auth"),s=await Hc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await jc.logout(e.user?.email),await Ra(r)}var hh={};P(hh,{validate:()=>wk});var v=W(require("joi")),Ik=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function mh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Ok(t){let e=v.default.object({type:v.default.string().allow("component").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),settings:v.default.array().items(v.default.object().unknown(!0)).required()}).unknown(!0)});mh(e,t)}function xk(t){let e=v.default.object({type:v.default.string().allow(...Object.values(Rl)).required(),required:v.default.boolean().required(),default:v.default.any(),display:v.default.string()}),r=v.default.object({type:v.default.string().allow(...Object.values(xl)),readable:v.default.boolean(),fields:v.default.object().pattern(v.default.string(),e)}).required(),n=v.default.object({type:v.default.string().allow("datasource").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({docs:v.default.string(),plus:v.default.boolean().optional(),isSQL:v.default.boolean().optional(),auth:v.default.object({type:v.default.string().required()}).optional(),features:v.default.object(Object.fromEntries(Object.values(wl).map(i=>[i,v.default.boolean().optional()]))).optional(),relationships:v.default.boolean().optional(),description:v.default.string().required(),friendlyName:v.default.string().required(),type:v.default.string().allow(...Ik),datasource:v.default.object().pattern(v.default.string(),e).required(),query:v.default.object().pattern(v.default.string(),r).unknown(!0).required(),extra:v.default.object().pattern(v.default.string(),v.default.object({type:v.default.string().required(),displayName:v.default.string().required(),required:v.default.boolean(),data:v.default.object()}))})});mh(n,t)}function Rk(t){let e=v.default.object().pattern(v.default.string(),{type:v.default.string().allow(...Object.values(ee)).required(),customType:v.default.string().allow(...Object.values(pe)),title:v.default.string(),description:v.default.string(),enum:v.default.array().items(v.default.string()),pretty:v.default.array().items(v.default.string())}),r=v.default.object({properties:e,required:v.default.array().items(v.default.string())}).concat(e).required(),n=v.default.object({type:v.default.string().allow("automation").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),tagline:v.default.string().required(),icon:v.default.string().required(),description:v.default.string().required(),type:v.default.string().allow("ACTION","LOGIC").required(),stepId:v.default.string().disallow(...Mh).required(),inputs:v.default.object().optional(),schema:v.default.object({inputs:r,outputs:r}).required()})});mh(n,t)}function wk(t){switch(t?.type){case"component":Ok(t);break;case"datasource":xk(t);break;case"automation":Rk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var gh={};P(gh,{Client:()=>We,clients:()=>Qr,locks:()=>ci,utils:()=>ic});var yh={};P(yh,{isBlacklisted:()=>Dk,refreshBlacklist:()=>SI});var EI=W(require("dns")),Il=W(require("net"));var TI=require("util"),_l,bk=(0,TI.promisify)(EI.default.lookup);async function AI(t){return Il.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await bk(t,{all:!0})).map(r=>r.address)}async function SI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Il.default.isIP(i))r.push(i);else{let s=await AI(i);r=r.concat(s)}}_l=r}async function Dk(t){if(_l||await SI(),_l?.length===0)return!1;let e;return Il.default.isIP(t)?e=[t]:e=await AI(t),!!_l?.find(r=>e.includes(r))}var Th={};P(Th,{init:()=>vk});var Ck={"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};function _I(t,e){let r=Ck[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var La=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=_I(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await qe(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return ZS()}};var II,Eh;function vk(t){Ar||Qc(),Eh||(Eh=new La(t)),II||(II=Ar.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Eh.processEvent(r,n,i)}))}var bh={};P(bh,{COUNT_FIELD_NAME:()=>Rh,Sql:()=>NI,SqlTable:()=>Ol,designDoc:()=>wh,utils:()=>Qp});var wI=require("knex");var Nk=require("knex");function Ah(t){return["link","formula","ai"].indexOf(t)!==-1}function OI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,p]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=p.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${E}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":p.timeOnly?t.time(m):t.datetime(m,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":Ht.schema.isDeprecatedSingleUserColumn(p)?t.text(m):t.json(m);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}=Gp(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],I=y.schema[S].externalType;I?t.specificType(p.foreignKey,I):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(m);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:Ci.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Ah(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!Ah(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||Ah(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Lk(t,e,r){return t.createTable(e.name,n=>{OI(n,e,r)})}function Uk(t,e,r,n,i){return t.alterTable(e.name,s=>{OI(s,e,r,n,i)})}function Mk(t,e){return t.dropTable(e.name)}var Sh=class{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,Nk.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=Lk(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=Uk(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=Ji(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=Mk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},Ol=Sh;var bI=require("lodash"),Rh="__bb_total";function xI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function _h(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Fk(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function DI(t){return Array.isArray(t)?t.map(e=>DI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function RI(t){return t.sourceType==="internal"||t.sourceId===Nl}function kk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function CI(t,e='"'){return`${e}${kk(t,e)}${e}`}function Ih(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=CI(t[r],e));return`[${t.join(",")}]`}function vI(t){return kh.includes(t.type)&&!Ht.schema.isDeprecatedSingleUserColumn(t)}var Bk={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},Oh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new kr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}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(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}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(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}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(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&vI(r)&&typeof e=="object")return JSON.stringify(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"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!qp(e))return null}else if(r.dateOnly){let n=Vp(e);return n?new Date(n):null}else return r.ignoreTimezones?ec(e)?new Date(e.trim()):$p(e)?new Date(e.trim()+"Z"):null:ec(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),s=this.table.schema[i];s&&(e[r]=this.parse(n,s))}return e}parseFilters(e){e=(0,bI.cloneDeep)(e);for(let r of Object.values(xr)){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:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Jt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(fn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,p=a?.[m]||m,f=l(m)||l(p),g=l(d.column);if((f||g)&&d.to&&d.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),S=Wp(d),I;if(f?I=n:I=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),S){let R=a?.[S.through]||d.through,T=this.tableNameWithSchema(S.through,{alias:R,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${S.toPrimary}`,"=",`${R}.${S.to}`)}).where(`${R}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(_=>{_.whereExists(i(I,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${R}.${S.from}`)}))})}else{let R=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(R,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(I,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let S=(I,R,T)=>{let[_,...B]=R.split("."),b=B.join("."),k=c(_);return I.andWhere(de=>E(de,k?`${k}.${b}`:b,T))};for(let I in f){let R=f[I],T=zo(I),_=T.includes("."),B=n?.relationship&&_,b;if(I==="_complexIdOperator"&&(b=f[I])&&y){let k=c(u);e=y(e,b.id.map(de=>k?`${k}.${de}`:de),b.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Bk[g],T,(k,de)=>S(de,k,R)));else{let k=c(u);e=E(e,k?`${k}.${T}`:T,R)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,S,I)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ih(I,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ih(I))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,S,I)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(CI(Ih(I)))])):l(f,"contains",(y,S,I)=>(I.length===0||(y=y.where(R=>(f===r?.notContains&&(R=R.not),R=R.where(T=>{for(let _ of I){f===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${B}%`)}}),f===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(S))),R))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let I of S)I!=null?f=f.or.whereLike(g,`${I.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,S)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let y=b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=tc(E.low),I=tc(E.high),R=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&R?.type==="datetime"&&R.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&R?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),S&&I?f.whereBetween(T,[B,_]):S?f.where(T,">=",B):I?f.where(T,"<=",_):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(I=>I.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(I=>I.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!Bp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Rr(r.documentType)}%`),e}isSqs(){return RI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;RI(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 ${Rh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.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,s=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[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}if(!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)){if(i[0]===void 0)throw new Error(`Primary key not found for table ${this.table.name}`);e=e.orderBy(`${s}.${i[0]}`)}return e}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],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let S=c[m];if(!S)throw new Error(`related table "${m}" not found in datasource`);let I=a?.[m]||m,R=a?.[r]||r,T=p&&a?.[p]||p,_=this.tableNameWithSchema(m,{alias:I,schema:u}),B=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),b=Fk(l.filter(V=>V.split(".")[0]===I),B);b=b.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=b.map(V=>this.buildJsonField(S,V));if(!k.length)continue;let de=k.map(V=>{let ae=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ae}??`,[V[0],V[1]]).toString()}).join(","),ln=`${I}.${y||f}`,$=s.from(_).orderBy(ln),O=p&&y&&E,N=O?`${T}.${g}`:`${I}.${f}`,q=O?`${R}.${E}`:`${R}.${g}`;if(O){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${I}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(q));let M=V=>($=$.select(b.map(ae=>this.rawQuotedIdentifier(ae))).limit(_h()),s.select(V).from({[I]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),Y=M(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":Y=M(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${_h()})`));break;case"mysql2":case"oracledb":Y=M(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let V=s.select("*").from({[R]:$.select(k.map(ae=>s.ref(ae[1]).as(ae[0]))).limit(_h())});Y=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(I)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:Y})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${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[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];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:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},xh=class extends Ol{constructor(r,n=xI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Ji(r);return i==="sqlite3"&&(s=DI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,wI.knex)(s),a,u=new Oh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:xI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,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=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let m of a)d.push(await n(m,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Nl){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let s=this.getTableName(r,i);for(let[o,a]of Object.entries(r.schema)){if(!vI(a))continue;let u=`${s}.${o}`;for(let c of n)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return n}log(r,n){Co(this.getSqlClient(),r,n)}},NI=xh;var wh={};P(wh,{base:()=>Gk});function Gk(t){return{_id:ar,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var $k={...Qo,...Se},Vk=(t={})=>{Zu(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,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,DocumentType,Duration,DurationType,EmailUnavailableError,FeatureDisabledError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
|
|
36
|
+
}`,"platform_users_lowercase_2")},Jo=async(t,e)=>{let r={account_by_email:BA,platform_users_lowercase_2:GA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return bf(t,e,n,i,{arrayResponse:!0})})},$A={by_email2:UA,by_api_key:FA,by_app:MA},dr=async(t,e,r,n)=>{r||(r=oe());let i=$A[t];return bf(t,e,r,i,n)};async function Df(t,e,r){let n=oe(),i=$A[t];return Yo(t,e,n,i,r)}var Cf=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(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([Do(this.source),Do(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})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Et(this.target.name),await this.replicate()}},VA=Cf;var WA=W(require("node-fetch"));var zo=Fr.removeKeyNumbering;function oi(t){return t==null||t===""}var pr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#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.#p=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:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="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 s of Object.keys(e)){let o=zo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(d,g)=>oi(g)?null:`${d}:${e.preprocess(g,s)}`,u=(d,g,E="AND")=>{if(oi(g))return null;if(!Array.isArray(g))return`${d}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${d}:(${y})`},c=(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${d}:/.*${g}.*/`),l=(d,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(d,g,y)},f=(d,g)=>u(d,g,"OR"),m=(d,g)=>{if(oi(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${d}:(${E})`};function p(d,g,E){let y="";for(let[S,O]of Object.entries(d)){S=zo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let R=g(S,O);if(R!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=R,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==o&&O!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${d}:${g}*`)),this.#e.range&&p(this.#e.range,(d,g)=>{if(oi(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${d}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(d,g)=>oi(g)?null:typeof g=="boolean"?`(*:* AND !${d}:${g})`:`!${d}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,d=>(i=!1,`(*:* -${d}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,d=>(i=!1,`${d}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,f),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),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.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await qA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await qA(n,i,r);throw s}}};async function qA(t,e,r){let n=await(0,WA.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),s={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(s.rows=i.rows.map(o=>o.doc)),i.bookmark&&(s.bookmark=i.bookmark),i.total_rows&&(s.totalRows=i.total_rows),s}async function QA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=pr.maxLimit;n.limit&&s.length>n.limit-pr.maxLimit&&(o=n.limit-s.length);let a=new pr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<pr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await QA(t,e,r,c)}async function cP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,pr.maxLimit);let s=new pr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function lP(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 QA(t,e,r,n)}}var vf={};N(vf,{createUserIndex:()=>dP});async function dP(){let t=oe(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function jA(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)}function pP(t){return jA(t,409)}var mc=W(require("jsonwebtoken")),Nf="app"+D,KA="/app/",YA="/app/preview",fP="/builder",JA=`${fP}/app/`,mP="/api/public/v";function is(t){return t&&t.startsWith(Nf)?t:void 0}async function zA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=Wo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>Ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function hP(t){return t.path.startsWith(`/${Nf}`)?!0:t.path.startsWith(KA)}function gP(t){return t.path.startsWith(JA)}function yP(t){return t.path.startsWith(YA)}function EP(t){return t.path.startsWith(mP)}async function TP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=is(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=is(t.request.body.appId));let n=HA(t.path);!r&&n&&(r=is(n)),!r&&t.query?.appId&&(r=is(t.query?.appId));let i=t.path.startsWith(YA),s=t.path.startsWith(KA)&&!i;!r&&s&&(r=is(await zA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(JA)){let a=HA(t.request.headers.referer);r=is(a)}return r}function HA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Nf))}function hc(t){if(t)try{return mc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return mc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function Zo(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function fr(t,e){let r=t.cookies.get(e);if(r)return hc(r)}function ZA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=mc.default.sign(e,h.JWT_SECRET));let i={expires:ju,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Kr(t,e){ZA(t,null,e)}function AP(t){return t.headers["x-budibase-type"]==="client"}function Pf(t){return new Promise(e=>setTimeout(e,t))}function Lf(t){return!!Lh[t]}function SP(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}function _P(t){return!!t.match(/^.+:\/\/.+$/)}function Uf(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,}))$/)}var Mf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Mf||{}),gc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/gc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*gc[e]/gc[r]}static from(e,r){return new t(r*gc[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 IP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function OP(t,e){if(t==="custom")return ai(e);switch(t){case"try_once":return ai(os.TRY_ONCE);case"try_twice":return ai(os.TRY_TWICE);case"default":return ai(os.DEFAULT);case"delay_500":return ai(os.DELAY_500);case"auto_extend":return ai(os.AUTO_EXTEND);default:throw Ci.unreachable(t)}}var os={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 ai(t={}){let e={...os.DEFAULT,...t},n=(await mf()).client;return new eS.default([n],e)}function xP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var tS=be.fromSeconds(10).toMs();async function as(t,e){let r=await OP(t.type,t.customOptions),n,i;try{let s=xP(t),o=t.type==="auto_extend"?tS:t.ttl;if(n=await r.lock(s,o),t.type==="auto_extend"){let u=()=>{i=setTimeout(async()=>{n=await n.extend(o,()=>t.onExtend&&t.onExtend()),u()},o/2)};u()}return{executed:!0,result:await e()}}catch(s){if(s.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw s}else throw s}finally{clearTimeout(i),await n?.unlock()}}var Ff=Te.PLATFORM_INFO.docs.tenants,kf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function wP(){return(await yc()).tenantIds}async function yc(){let t=ct(),e;try{e=await t.get(Ff)}catch(r){if(r.status===404)e=await CP();else throw r}return e}async function bP(t){return(await yc()).tenantIds.indexOf(t)!==-1}function DP(){return{_id:Ff,tenantIds:[]}}async function CP(){let t=ct(),e=DP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Ff);throw r}return e}async function vP(t){let e=ct();await as(kf,async()=>{let r=await yc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function NP(t){try{await as(kf,async()=>{let e=ct(),r=await yc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var li={};N(li,{getAccount:()=>Xr,getAccountByTenantId:()=>ls,getStatus:()=>dL});var LS=W(require("node-fetch"));var xc={};N(xc,{correlation:()=>ea,logAlert:()=>sa,logAlertWithInfo:()=>lL,logWarn:()=>cs,logger:()=>Oc,system:()=>em});var ea={};N(ea,{getId:()=>Gf,setHeader:()=>PP});var rS=require("correlation-id"),PP=t=>{let e=rS.getId();e&&(t["x-budibase-correlation-id"]=e)};function Gf(){return rS.getId()}var Ic=W(require("pino")),NS=W(require("pino-pretty"));var tm=W(require("dd-trace")),PS=require("dd-trace/ext");var em={};N(em,{getLogReadStream:()=>iL,getSingleFileMaxSizeInfo:()=>vS,localFileDestination:()=>Xf});var ia=W(require("fs")),Zf=W(require("path")),wS=W(require("rotating-file-stream"));var zf={};N(zf,{ObjectStore:()=>Mt,ObjectStoreBuckets:()=>UP,SIGNED_FILE_PREFIX:()=>Hf,bucketTTLConfig:()=>Ec,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>zP,clientLibraryPath:()=>ES,clientLibraryUrl:()=>ZP,createBucketIfNotExists:()=>na,deleteFile:()=>WP,deleteFiles:()=>QP,deleteFolder:()=>hS,downloadTarball:()=>HP,downloadTarballDirect:()=>jP,enrichPWAImages:()=>XP,enrichPluginURLs:()=>tL,extractBucketAndPath:()=>$f,getAppFileUrl:()=>TS,getGlobalFileS3Key:()=>AS,getGlobalFileUrl:()=>eL,getObjectMetadata:()=>KP,getPluginIconKey:()=>IS,getPluginJSKey:()=>_S,getPluginS3Dir:()=>xS,getPresignedUrl:()=>zr,getReadStream:()=>Tc,listAllObjects:()=>mS,processAutomationAttachment:()=>FP,processObjectStoreAttachment:()=>aS,retrieve:()=>fS,retrieveDirectory:()=>qP,retrieveToTmp:()=>VP,sanitizeBucket:()=>Ye,sanitizeKey:()=>Ue,streamUpload:()=>pS,upload:()=>$P,uploadDirectory:()=>Kf});var Sc=require("@aws-sdk/client-s3"),Vf=require("@aws-sdk/lib-storage"),uS=require("@aws-sdk/s3-request-presigner"),ra=W(require("stream")),qf=W(require("node-fetch")),Wf=W(require("tar-fs")),Qf=W(require("zlib")),cS=require("util"),Jr=require("path"),mr=W(require("fs"));var ta=W(require("path")),nS=require("os"),iS=W(require("fs"));var sS=W(require("stream")),UP={BACKUPS:h.BACKUPS_BUCKET_NAME,APPS:h.APPS_BUCKET_NAME,TEMPLATES:h.TEMPLATES_BUCKET_NAME,GLOBAL:h.GLOBAL_BUCKET_NAME,PLUGINS:h.PLUGIN_BUCKET_NAME,TEMP:h.TEMP_BUCKET_NAME},oS=(0,ta.join)((0,nS.tmpdir)(),".budibase");try{iS.default.mkdirSync(oS)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return oS}var Ec=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function MP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ta.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:sS.default.Readable.fromWeb(e.body)}}async function aS(t){let e=$f(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Tc(r,n),s=ta.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function FP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await MP(t):await aS(t)}var jf=require("uuid");var lS=W(require("fs/promises")),kP=require("sanitize-s3-objectkey"),dS=(0,cS.promisify)(ra.default.pipeline),BP={bucketCreationPromises:{}},Hf="/files/signed",Yr={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"},GP=[Yr.html,Yr.css,Yr.js,Yr.json];function Ue(t){return kP(Ye(t)).replace(/\\/g,"/")}function Ye(t){return t.replace(new RegExp(yt,"g"),gt)}function Mt(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new Sc.S3(e)}async function na(t,e){e=Ye(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=BP.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),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.")}}async function $P({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await lS.default.open(r)).createReadStream():s,c=Mt(),l=await na(c,t);if(o&&l.created){let g=Ec(t,o);await c.putBucketLifecycleConfiguration(g)}let f=n,m=f||(a?Yr[a.toLowerCase()]:Yr.txt),p={Bucket:Ye(t),Key:Ue(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new Vf.Upload({client:c,params:p}).done()}async function pS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Mt(),u=await na(a,t);if(s&&u.created){let E=Ec(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Yr[o.toLowerCase()]:Yr.txt);let l=Ye(t),f=Ue(r),m={Bucket:l,Key:f,Body:e,ContentType:c,...i},d=await new Vf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:f});return{...d,ContentLength:g.ContentLength}}async function fS(t,e){let r=Mt(),n={Bucket:Ye(t),Key:Ue(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(GP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return ra.default.Readable.fromWeb(s)}}async function mS(t,e){let r=Mt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ye(t),Prefix:Ue(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function zr(t,e,r=3600){let n=Mt({presigning:!0}),i={Bucket:Ye(t),Key:Ue(e)},s=await(0,uS.getSignedUrl)(n,new Sc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Hf}${a}${u}`}else return s}async function VP(t,e){t=Ye(t),e=Ue(e);let r=await fS(t,e),n=(0,Jr.join)(ci(),(0,jf.v4)());return r instanceof ra.default.Readable?r.pipe(mr.default.createWriteStream(n)):mr.default.writeFileSync(n,r),n}async function qP(t,e){let r=(0,Jr.join)(ci(),(0,jf.v4)());mr.default.mkdirSync(r);let n=await mS(t,e),i=await Promise.all(n.map(a=>Tc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),f=l.slice(0,l.length-1),m=(0,Jr.join)(r,...f);l.length>1&&!mr.default.existsSync(m)&&mr.default.mkdirSync(m,{recursive:!0});let p=mr.default.createWriteStream((0,Jr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((d,g)=>{p.on("finish",()=>d()),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function WP(t,e){let r=Mt();await na(r,t);let n={Bucket:t,Key:Ue(e)};return r.deleteObject(n)}async function QP(t,e){let r=Mt();await na(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ue(i)}))}};return r.deleteObjects(n)}async function hS(t,e){t=Ye(t),e=Ue(e);let r=Mt(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return hS(t,e)}async function Kf(t,e,r){t=Ye(t);let n=[],i=mr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ue((0,Jr.join)(r,s.name)),a=(0,Jr.join)(e,s.name);s.isDirectory()?n.push(Kf(t,a,o)):n.push(pS({bucket:t,filename:o,stream:mr.default.createReadStream(a)}))}return await Promise.all(n),i}async function jP(t,e,r={}){e=Ue(e);let n=await(0,qf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await dS(n.body,Qf.default.createUnzip(),Wf.default.extract(e))}async function HP(t,e,r){e=Ye(e),r=Ue(r);let n=await(0,qf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Jr.join)(ci(),r);return await dS(n.body,Qf.default.createUnzip(),Wf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Kf(e,i,r),i}async function Tc(t,e){t=Ye(t),e=Ue(e);let r=Mt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof ra.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function KP(t,e){t=Ye(t),e=Ue(e);let r=Mt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function $f(t){let e=t.split("?")[0],r=new RegExp(`^${Hf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var gS=W(require("aws-cloudfront-sign")),_c;function YP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return _c||(_c=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),_c)}var JP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:YP(),expireTime:new Date().getTime()+1e3*60*60*24}),us=t=>{let e=Yf(t);return gS.getSignedUrl(e,JP())},Yf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var yS=W(require("querystring"));function ES(t){return`${Ue(t)}/budibase-client.js`}async function zP(t,e){let r=ES(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Yf(r)):await zr(h.APPS_BUCKET_NAME,r)}function ZP(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${yS.default.encode(n)}`}async function TS(t){return h.CLOUDFRONT_CDN?us(t):await zr(h.APPS_BUCKET_NAME,t)}async function XP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await TS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var eL=async(t,e,r)=>{let n=AS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),us(n)):await zr(h.GLOBAL_BUCKET_NAME,n)},AS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function tL(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await rL(e),n=await nL(e);return{...e,jsUrl:r,iconUrl:n}}))}async function rL(t){let e=_S(t);return SS(e)}async function nL(t){let e=IS(t);if(e)return SS(e)}async function SS(t){return h.CLOUDFRONT_CDN?us(t):await zr(h.PLUGIN_BUCKET_NAME,t)}function _S(t){return OS(t,"plugin.min.js")}function IS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return OS(t,e)}function OS(t,e){return`${xS(t.name)}/${e}`}function xS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var bS="budibase.log",DS="budibase-logs-history.txt",CS=Zf.default.join(ci(),"systemlogs");function RS(t){return Zf.default.join(CS,t)}function vS(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}function Xf(){let t=vS(h.ROLLING_LOG_MAX_SIZE);return wS.createStream(bS,{size:t?.size,path:CS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:DS,initialRotation:!1})}function iL(){let t=[],e=RS(DS);if(ia.default.existsSync(e)){let i=ia.default.readFileSync(e,"utf-8").split(`
|
|
37
|
+
`);for(let s of i.filter(o=>o))t.push(ia.default.readFileSync(s))}return t.push(ia.default.readFileSync(RS(bS))),Buffer.concat(t)}function sL(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function oL(t){return t instanceof Error}function aL(t){return typeof t=="string"}var Zr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,NS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Xf(),level:t}),Zr=r.length?(0,Ic.default)(e,Ic.default.multistream(r)):(0,Ic.default)(e);let n=u=>{let c,l=[],f="";u.forEach(E=>{aL(E)&&(f=`${f} ${E}`.trimStart()),sL(E)&&l.push(E),oL(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Gf()};let d=tm.default.scope().active();d&&tm.default.inject(d.context(),PS.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let O=l[S],R=O._logKey;R?(delete O._logKey,g[R]=O):(E[y]=O,y++)}Object.keys(E).length&&(g.data=E)}return[g,f]};console.log=(...u)=>{let[c,l]=n(u);Zr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Zr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Zr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Zr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Zr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Zr?.debug(c,l)};let i=()=>{let u;try{u=j()}catch{}return u},s=()=>{let u;try{u=Le()}catch{}return u},o=()=>{let u;try{u=Xp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var Oc=Zr;var uL=["AccountError"];function cL(t){return t&&t.suppressAlert}function sa(t,e){e&&uL.includes(e.name)&&cL(e)||console.error(`bb-alert: ${t}`,e)}function lL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,sa(t,n)}function cs(t,e){console.warn(`bb-warn: ${t}`,e)}var oa=class{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";ea.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,LS.default)(`${this.host}${r}`,s)}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 rm=new oa(h.ACCOUNT_PORTAL_URL),nm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Xr=async t=>{if(nm)return;let e={email:t},r=await rm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ls=async t=>{if(nm)return;let e={tenantId:t},r=await rm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},dL=async()=>{if(nm)return;let t=await rm.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};N(Es,{UserDB:()=>Yt,addAppBuilder:()=>k0,bulkGetGlobalUsersById:()=>Jc,bulkUpdateGlobalUsers:()=>_a,cleanseUserObject:()=>Nm,creatorsInList:()=>di,doesUserExist:()=>P0,getAccountHolderFromUsers:()=>Uc,getAllUserIds:()=>v0,getAllUsers:()=>N0,getById:()=>mi,getCreatorCount:()=>M0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>kS,getExistingTenantUsers:()=>FS,getFirstPlatformUser:()=>aa,getGlobalUserByAppPage:()=>C_,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>Rc,getUserCount:()=>U0,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>$S,hasBuilderPermissions:()=>Tt,isAdmin:()=>en,isAdminOrBuilder:()=>GS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Pc,isGlobalBuilder:()=>BS,paginatedUsers:()=>N_,removeAppBuilder:()=>B0,removePortalUserPermissions:()=>F0,searchExistingEmails:()=>om,searchGlobalUsersByApp:()=>zc,searchGlobalUsersByAppAccess:()=>vm,searchGlobalUsersByEmail:()=>v_,validateUniqueUser:()=>Lc});var am={};N(am,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>Uc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>$S,hasBuilderPermissions:()=>Tt,isAdmin:()=>en,isAdminOrBuilder:()=>GS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Pc,isGlobalBuilder:()=>BS,validateUniqueUser:()=>Lc});var sm={};N(sm,{createCode:()=>fL,deleteCode:()=>hL,getCode:()=>mL,getExistingInvites:()=>im,getInviteCodes:()=>MS,updateCode:()=>pL});var US=be.fromDays(7).toSeconds();async function pL(t,e){await(await ei()).store(t,e,US)}async function fL(t,e){let r=me();return await(await ei()).store(r,{email:t,info:e},US),r}async function mL(t){let r=await(await ei()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function hL(t){await(await ei()).delete(t)}async function MS(){let r=(await(await ei()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=j();return r.filter(i=>n===i.info.tenantId)}async function im(t){return(await MS()).filter(e=>t.includes(e.email))}async function om(t){let e=[],r=await FS(t);e.push(...r.map(o=>o.email));let n=await kS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await im(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Rc(t){return await Jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function aa(t){return(await Rc(t))[0]??null}async function FS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await dr("by_email2",r,void 0,n)}async function kS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("account_by_email",r)}var Nc={};N(Nc,{BadRequestError:()=>bc,BudibaseError:()=>ps,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>Cc,HTTPError:()=>lt,InvalidAPIKeyError:()=>fs,NotFoundError:()=>wc,UsageLimitError:()=>Dc,getPublicError:()=>vc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},vc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class t extends ps{constructor(r,n,i="http"){super(r,i);this.status=n}static async fromResponse(r){let n=await r.text(),i=n,s=r.status,o="http";try{let a=JSON.parse(n);i=a.message,s=a.status,o=a.error?.code}catch{}return new t(i,s,o)}},wc=class extends lt{constructor(e){super(e,404)}},bc=class extends lt{constructor(e){super(e,400)}},Dc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Cc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},fs=class extends ps{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},hr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=ot.users.isBuilder,en=ot.users.isAdmin,BS=ot.users.isGlobalBuilder,GS=ot.users.isAdminOrBuilder,tn=ot.users.hasAdminPermissions,Tt=ot.users.hasBuilderPermissions,$S=ot.users.hasAppBuilderPermissions;async function di(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await oe().getMultiple(r,{allowMissing:!0}),t.map(i=>Pc(i,e))}async function ua(t){let e=[];return t.userGroups&&(e=await oe().getMultiple(t.userGroups)),Pc(t,e)}function Pc(t,e){let r=ot.users.isCreator(t);return!r&&t?yL(t,e):r}function yL(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}async function Lc(t,e){if(h.MULTI_TENANCY){let r=await aa(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Xr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function Uc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ds(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var ys={};N(ys,{account:()=>i_,ai:()=>c_,analytics:()=>Fc,app:()=>s_,auditLog:()=>O_,auth:()=>Hc,automation:()=>o_,backfill:()=>T_,backfillCache:()=>Qc,backup:()=>__,datasource:()=>a_,email:()=>u_,environmentVariable:()=>I_,group:()=>A_,identification:()=>Ft,initAsyncEvents:()=>y0,installation:()=>ga,layout:()=>d_,license:()=>l_,org:()=>p_,plugin:()=>S_,processors:()=>mm,publishEvent:()=>A,query:()=>f_,role:()=>Sa,rowAction:()=>x_,rows:()=>h_,screen:()=>m_,serve:()=>y_,shutdown:()=>E0,table:()=>g_,user:()=>Je,view:()=>E_});var mm={};N(mm,{analyticsProcessor:()=>XS,init:()=>FL,processors:()=>Er});var Fc={};N(Fc,{enabled:()=>Mc});var Mc=async()=>kc();var jS=require("posthog-node");var EL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",TL=t=>t==="served:app:preview"||t==="served:app";var qS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},WS=async t=>{if(!EL(t))return!1;let e=await AL(t);if(e){let r=new Date(e.timestamp);switch(qS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await VS(t,{timestamp:Date.now()}),!1):!0}}else return await VS(t,{timestamp:Date.now()}),!1},QS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return TL(t)&&(e=e+":"+Le()),e},AL=async t=>{let e=QS(t);return await ii(e)},VS=async(t,e)=>{let r=QS(t),n=qS[t],i;switch(n){case"calendarDay":i=86400}await cr(r,e,i)};var _L=["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"],ca=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new jS.PostHog(e)}async processEvent(e,r,n,i){if(_L.includes(e)||await WS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Le();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}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 HS=ca;var IL=["installation:version:upgraded","installation:version:downgraded"],OL=["installation","tenant"],la=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new HS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!IL.includes(e)&&!await Mc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!OL.includes(e.type)&&!await Mc()||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 um=h.SELF_HOSTED&&!h.isDev(),da=class{async processEvent(e,r,n){um||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){um||console.log("[audit] identified",e)}async identifyGroup(e){um||console.log("[audit] group identified",e)}async shutdown(){}};var fm={};N(fm,{BudibaseQueue:()=>yr,InMemoryQueue:()=>Bc,JobQueue:()=>hs,shutdown:()=>LL});var KS=W(require("events"));function xL(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var Bc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new KS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a,u=0){try{await a}catch(c){if(u++,u<3)await jt.wait(100*u),await s(r(n),u);else throw c}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n);let a=this._messages.indexOf(n);if(a===-1)throw"Failed deleting a processed message";this._messages.splice(a,1)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}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 s=()=>{let a={id:me(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}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=>xL(e))}async whenCurrentJobsFinished(){do await Pf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},YS=Bc;var dm=W(require("bull"));var hs=(o=>(o.AUTOMATION="automationQueue",o.APP_BACKUP="appBackupQueue",o.AUDIT_LOG="auditLogQueue",o.SYSTEM_EVENT_QUEUE="systemEventQueue",o.APP_MIGRATION="appMigration",o.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",o))(hs||{});function JS(t,e,r){bL(t,e),r&&RL(t,r)}function RL(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 s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var wL={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function bL(t,e){let r=wL[e];function n(i,s){let o=i.data.event?.appId;if(o)return Zp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var Gc={};N(Gc,{cleanup:()=>DL,clear:()=>lm,set:()=>cm});var pa=[];function cm(t,e){let r=setInterval(t,e);return pa.push(r),r}function lm(t){let e=pa.indexOf(t);e!==-1&&pa.splice(e,1),clearInterval(t)}function DL(){for(let t of pa)clearInterval(t);pa=[]}var gr=W(require("dd-trace")),fa=W(require("object-sizeof")),CL=be.fromMinutes(5).toMs(),vL=be.fromSeconds(30).toMs(),pm=be.fromSeconds(60).toMs(),ma=[],$c;async function zS(){for(let t of ma)await t.clean(pm,"completed"),await t.clean(pm,"failed")}async function NL(t,e,r){let n=performance.now();try{let i=await e();return gr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw gr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;gr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),gr.default.dogstatsd.increment(t,1,r)}}function ZS(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}function PL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,fa.default)(t.data),...ZS(t.opts||{})}}var yr=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:Zn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:CL,lockRenewTime:vL}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new dm.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new YS(this.jobQueue,r):n=new dm.default(this.jobQueue,r),JS(n,this.jobQueue,this.opts.removeStalledCb),ma.push(n),!$c&&!h.isTest()&&($c=cm(zS,pm),zS().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=async s=>{await gr.default.trace("queue.process",async o=>{if(s.data._parentSpanContext){let a=s.data._parentSpanContext,u={traceId:a.traceId,spanId:a.spanId,toTraceId:()=>a.traceId,toSpanId:()=>a.spanId,toTraceparent:()=>""};o.addLink(u)}o.addTags({"queue.name":this.jobQueue,...PL(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),gr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,fa.default)(s.data),this.metricTags()),await this.withMetrics("queue.process",()=>n(s))})};return r?this.queue.process(r,i):this.queue.process(i)}async add(e,r){return await gr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,fa.default)(e),...ZS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},gr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,fa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return NL(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function LL(){$c&&lm($c),console.log("Waiting for current queue jobs to finish...");for(let t of ma)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of ma)await t.close();ma=[],console.log("Queues shutdown")}var gs=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new yr("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await qe(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=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:s})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Lf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Le(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var ha=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.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 XS=new la,UL=new da,ML=new gs;function FL(t){return gs.init(t)}var Er=new ha([XS,UL,ML]);var Vc={};N(Vc,{checkInstallVersion:()=>GL,getInstall:()=>ya,getInstallFromDB:()=>gm});var hm=W(require("semver"));var ya=async()=>Qr(Ce.INSTALLATION,86400,gm,{useTenancy:!1});async function kL(t){let e={_id:Te.PLATFORM_INFO.docs.install,installId:me(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return gm();throw r}}var gm=async()=>ut(Te.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Te.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await kL(t);else throw r}return e}),BL=async t=>{try{await ut(Te.PLATFORM_INFO.name,async e=>{let r=await ya();r.version=t,await e.put(r),await ts(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},GL=async()=>{let t=await ya(),e=t.version,r=h.VERSION;try{if(e!==r){let n=hm.default.gt(r,e),i=hm.default.lt(r,e);await BL(r)&&(await Oo({_id:t.installId,type:"installation"},async()=>{n?await ga.upgraded(e,r):i&&await ga.downgraded(e,r)}),await Ft.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?sa(`Invalid version "${r}" - is it semver?`):sa("Failed to retrieve version",n)}};var $L=async()=>{let t=Pp(),e=Aa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=Ea();return{id:e_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await qc(j()),s=Ea();return{id:e_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await qc(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=Ea(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},VL=async(t,e)=>{let r=t,n="installation",i=Ea(),s=h.VERSION,o=Aa(),a={id:r,type:n,hosting:i,version:s,environment:o};await ym(a,e),await Ta({...a,id:`$${n}_${r}`},e)},qL=async(t,e,r)=>{let n=await qc(t),i="tenant",s=await pi(),o=Aa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await ym(a,r),await Ta({...a,id:`$${i}_${n}`},r)},WL=async(t,e,r)=>{let n=t._id,i=await qc(t.tenantId),s="user",o=Tt(t),a=tn(t),u;qa(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,f=!!e&&l&&e.verified,m=await pi(),p=e?e.hosting:Ea(),d=Aa();await Ta({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:f,accountHolder:l,providerType:u,builder:o,admin:a,environment:d},r)},QL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Va(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await pi(),c=Aa();if($a(t)){let f=await kt(t.email);f?._id&&(e=f._id)}await Ta({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ta=async(t,e)=>{await Er.identify(t,e)},ym=async(t,e)=>{await Er.identifyGroup(t,e)},Aa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ea=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>jL()?"account-portal":(await ya()).installId,qc=async t=>h.SELF_HOSTED?t_(t):t,t_=async t=>qe(t,()=>Qr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=oe(),r=await Wc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),jL=()=>h.SERVICE==="account-portal",e_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ft={getCurrentIdentity:$L,identifyInstallationGroup:VL,identifyTenantGroup:qL,identifyUser:WL,identifyAccount:QL,identify:Ta,identifyGroup:ym,getInstallationId:pi,getUniqueTenantId:t_};var Qc={};N(Qc,{end:()=>KL,isAlreadySent:()=>Am,isBackfillingEvent:()=>Tm,recordEvent:()=>Em,start:()=>HL});var HL=async t=>JL({eventWhitelist:t}),Em=async(t,e)=>{let r=Sm(t,e);await cr(r,e,void 0,{useTenancy:!1})},KL=async()=>{await zL(),await ZL()},YL=async()=>ii(Ce.BACKFILL_METADATA),JL=async t=>cr(Ce.BACKFILL_METADATA,t),zL=async()=>{await Vo(Ce.BACKFILL_METADATA)},ZL=async()=>{let t=Sm(),e=await cc(t);for(let r of e)await Vo(r,{useTenancy:!1})},Tm=async t=>{let r=(await YL())?.eventWhitelist;return!!(r&&r.includes(t))},Am=async(t,e)=>{let r=Sm(t,e);return!!await ii(r,{useTenancy:!1})},XL={"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}`},Sm=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=XL[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Tr;function jc(){Tr=new yr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function r_(){Tr&&await Tr.close()}async function n_(t){Tr||jc();let{event:e,identity:r}=t;Ph.indexOf(e)!==-1&&r.tenantId&&await Tr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Ft.getCurrentIdentity();if(!(n?!1:await Tm(t))){await n_({event:t,identity:i,properties:e,timestamp:r}),await Er.processEvent(t,i,e,r);return}await Am(t,e)||(await Er.processEvent(t,i,e,r),await Em(t,e))};async function eU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function tU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function rU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var i_={created:eU,deleted:tU,verified:rU};var nU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function iU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function sU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function oU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function aU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function uU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function cU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function lU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function dU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function pU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function fU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function mU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var s_={created:nU,updated:iU,deleted:sU,published:oU,unpublished:aU,fileImported:uU,duplicated:cU,templateImported:lU,versionUpdated:dU,versionReverted:pU,reverted:fU,exported:mU};async function hU(t,e){let n={userId:(await Ft.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function gU(t){let r={userId:(await Ft.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function yU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function EU(t){let e={type:t};await A("auth:sso:updated",e)}async function TU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function AU(t){let e={type:t};await A("auth:sso:deactivated",e)}var Hc={login:hU,logout:gU,SSOCreated:yU,SSOUpdated:EU,SSOActivated:TU,SSODeactivated:AU};async function SU(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)}async function _U(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)}async function IU(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)}async function OU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var xU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function RU(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)}async function wU(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)}var o_={created:SU,triggerUpdated:_U,deleted:IU,tested:OU,run:xU,stepCreated:RU,stepDeleted:wU};function _m(t){return!Object.values(Fa).includes(t.source)}async function bU(t,e){let r={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:created",r,e)}async function DU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:updated",e)}async function CU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:deleted",e)}var a_={created:bU,updated:DU,deleted:CU};async function vU(t){let e={};await A("email:smtp:created",e,t)}async function NU(){let t={};await A("email:smtp:updated",t)}var u_={SMTPCreated:vU,SMTPUpdated:NU};async function PU(t){let e={};await A("ai:config:created",e,t)}async function LU(){let t={};await A("ai:config:updated",t)}var c_={AIConfigCreated:PU,AIConfigUpdated:LU};async function UU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function MU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function FU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function kU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function BU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function GU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function $U(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var l_={planChanged:UU,activated:MU,checkoutOpened:FU,checkoutSuccess:kU,portalOpened:BU,paymentFailed:GU,paymentRecovered:$U};async function VU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function qU(t){let e={layoutId:t};await A("layout:deleted",e)}var d_={created:VU,deleted:qU};async function WU(t){let e={};await A("org:info:name:updated",e,t)}async function QU(t){let e={};await A("org:info:logo:updated",e,t)}async function jU(t){let e={};await A("org:platformurl:updated",e,t)}async function HU(){let t={};await A("analytics:opt:out",t)}async function KU(){let t={};await A("analytics:opt:out",t)}var p_={nameUpdated:WU,logoUpdated:QU,platformURLUpdated:jU,analyticsOptOut:HU,analyticsOptIn:KU};var YU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},JU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},zU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},ZU=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},XU=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},eM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},f_={created:YU,updated:JU,deleted:zU,imported:ZU,run:XU,previewed:eM};async function tM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function rM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function nM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function iM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function sM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Sa={created:tM,updated:rM,deleted:nM,assigned:iM,unassigned:sM};async function oM(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)}async function aM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var m_={created:oM,deleted:aM};var uM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},cM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},h_={created:uM,imported:cM};async function lM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function dM(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function pM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function fM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function mM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var g_={created:lM,updated:dM,deleted:pM,exported:fM,imported:mM};async function hM(t){let e={timezone:t};await A("served:builder",e)}async function gM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function yM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var y_={servedBuilder:hM,servedApp:gM,servedAppPreview:yM};async function EM(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function TM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function AM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function SM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function _M(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function IM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function OM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function xM(t){let e={audited:{email:t}};await A("user:invited",e)}async function RM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function wM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function bM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function DM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function CM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function vM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:EM,updated:TM,deleted:AM,permissionAdminAssigned:SM,permissionAdminRemoved:_M,permissionBuilderAssigned:IM,permissionBuilderRemoved:OM,invited:xM,inviteAccepted:RM,passwordForceReset:wM,passwordUpdated:bM,passwordResetRequested:DM,passwordReset:CM,dataCollaboration:vM};async function NM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function PM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function LM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function UM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function MM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function FM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function kM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function BM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function GM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function $M(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function VM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var E_={created:NM,updated:PM,deleted:LM,exported:UM,filterCreated:MM,filterUpdated:FM,filterDeleted:kM,calculationCreated:BM,calculationUpdated:GM,calculationDeleted:$M,viewJoinCreated:VM};async function qM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function WM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function QM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function jM(){let t={};await A("installation:firstStartup",t)}var ga={versionChecked:qM,upgraded:WM,downgraded:QM,firstStartup:jM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function HM(t){Ts||await A("app:backfill:succeeded",t)}async function KM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function YM(t){Ts||await A("tenant:backfill:succeeded",t)}async function JM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function zM(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function ZM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var T_={appSucceeded:HM,appFailed:KM,tenantSucceeded:YM,tenantFailed:JM,installationSucceeded:zM,installationFailed:ZM};async function XM(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function e0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function t0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function r0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function n0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function i0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function s0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var A_={created:XM,updated:e0,deleted:t0,usersAdded:r0,usersDeleted:n0,createdOnboarding:i0,permissionsEdited:s0};async function o0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function a0(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)}async function u0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var S_={init:o0,imported:a0,deleted:u0};async function c0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function l0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var __={appBackupRestored:c0,appBackupTriggered:l0};async function d0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function p0(t){let e={name:t};await A("environment_variable:deleted",e)}async function f0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var I_={created:d0,deleted:p0,upgradePanelOpened:f0};async function m0(t){let e={filters:t};await A("audit_log:filtered",e)}async function h0(t){let e={filters:t};await A("audit_log:downloaded",e)}var O_={filtered:m0,downloaded:h0};async function g0(t,e){await A("row_action:created",t,e)}var x_={created:g0};function y0(){}var E0=async()=>{await Er.shutdown(),console.log("Events shutdown")};var Im=async t=>{await Je.deleted(t),Tt(t)&&await Je.permissionBuilderRemoved(t),tn(t)&&await Je.permissionAdminRemoved(t)},T0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Sa.assigned(t,i)},A0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Sa.unassigned(t,i)},S0=async(t,e)=>{let r=t.roles,n=e?.roles;await T0(t,r,n),await A0(t,r,n)},Om=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ls(r)),await Ft.identifyUser(t,n),e?(await Je.updated(t),I0(t,e)&&await Je.permissionBuilderRemoved(t),x0(t,e)&&await Je.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Je.passwordForceReset(t),t.password!==e.password&&await Je.passwordUpdated(t)):await Je.created(t),_0(t,e)&&await Je.permissionBuilderAssigned(t),O0(t,e)&&await Je.permissionAdminAssigned(t),await S0(t,e)},_0=(t,e)=>R_(t,e,Tt),I0=(t,e)=>w_(t,e,Tt),O0=(t,e)=>R_(t,e,tn),x0=(t,e)=>w_(t,e,tn),R_=(t,e,r)=>!(!r(t)||e&&r(e)),w_=(t,e,r)=>!(r(t)||!e||!r(e));var Yc={};N(Yc,{createASession:()=>w0,endSession:()=>b0,getSession:()=>Rm,getSessionsForUser:()=>Kc,invalidateSessions:()=>fi,updateSessionTTL:()=>xm});var b_=require("uuid");var D_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function Kc(t){return t?(await(await qr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function fi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Kc(t)).map(o=>({key:As(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:As(t,s)}))),i&&i.length>0){let s=await qr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||cs(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function w0(t,e){await fi(t,{reason:"creation"});let r=await qr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,b_.v4)(),s=As(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,D_),o}async function xm(t){let e=await qr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,D_)}async function b0(t,e){await(await qr()).delete(As(t,e))}async function Rm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await qr()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Cm={};N(Cm,{PASSWORD_MAX_LENGTH:()=>bm,PASSWORD_MIN_LENGTH:()=>wm,validatePassword:()=>Dm});var wm=+(h.PASSWORD_MIN_LENGTH||12),bm=+(h.PASSWORD_MAX_LENGTH||512);function Dm(t){return!t||t.length<wm?{valid:!1,error:`Password invalid. Minimum ${wm} characters.`}:t.length>bm?{valid:!1,error:`Password invalid. Maximum ${bm} characters.`}:{valid:!0}}var D0=async t=>{let e=t._id;await Ut.removeUser(t),await Im(t),await nn.invalidateUser(e),await fi(e,{reason:"bulk-deletion"})},Yt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&en(e)?!1:await t.features.isSSOEnforced()||qa(e)?!0:(r||(r=await ls(j())),!!(r&&r.email===e.email&&Va(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=Dm(o);if(!f.valid)throw new lt(f.error,400)}u=r.hashPassword?await Ef(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||rs();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await oe().allDocs(si(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await zc(e,{})).length}}static async getUsersByAppAccess(e){return await vm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return kt(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await Jc(e)}static async bulkUpdate(e){return await _a(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),i=oe(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await mi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await kt(s),c&&c._id!==o))throw new hr(s);let l=1,f=0;if((r.isAccountHolder||c)&&(l=0,f=1),c){let[m,p]=await di([c,e]);f=m!==p?1:0}return t.quotas.addUsers(l,f,async()=>{r.isAccountHolder||await Lc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Nm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let d of a)p.push(t.groups.addUsers(d,[m._id]));try{let d=await i.put(m);return m._rev=d.rev,await Om(m,c),c&&m.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(d.id),await Promise.all(p),i.get(m._id)}catch(d){throw d.status===409?"User exists already":d}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(m=>m.email),u=await om(a),c=[];for(let m of e){let p=s.find(g=>g.email.toLowerCase()===m.email.toLowerCase()),d=u.includes(m.email.toLowerCase());if(p||d){c.push({email:m.email,reason:"Unavailable"});continue}m.userGroups=r||[],s.push(m),await ua(m)&&o.push(m)}let l=await ls(n),f=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let d of s)f&&delete d.password,i.push(t.buildUser(d,{hashPassword:!0,requirePassword:!f},n,void 0,l));let m=await Promise.all(i);await _a(m);for(let d of m)await Ut.addUser(n,d._id,d.email),await Om(d,void 0);let p=m.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(p)&&r){let d=[],g=p.map(E=>E._id);for(let E of r)d.push(t.groups.addUsers(E,g));await Promise.all(d)}return{successful:p,unsuccessful:c}})}static async bulkDelete(e){let r=oe(),n={successful:[],unsuccessful:[]},i=await Uc(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 o=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await _a(a),l=(await di(o)).filter(p=>p).length,f=[];for(let p of o){let g=(await aa(p._id)).ssoId;g&&(await Rc(g)).filter(y=>y.ssoId==null).forEach(y=>{f.push({...y,_deleted:!0})}),await D0(p)}await ct().bulkDocs(f),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,d)=>(p[d._id]=d,p),m),u.forEach(p=>{let d=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:d}):n.unsuccessful.push({_id:p.id,email:d,reason:"Database error"})}),n}static async destroy(e){let r=oe(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Xr(o))throw n.userId===ar()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Ut.removeUser(n),await r.remove(i,n._rev);let s=await ua(n)?1:0;await t.quotas.removeUsers(1,s),await Im(n),await nn.invalidateUser(i),await fi(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={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&&(s.ssoId=n.ssoId),await ts(Ce.CHECKLIST),await t.save(s,{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 Oa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Jc(t,e){let n=(await oe().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Oa(n)),n}async function v0(){let t=oe(),e=`us${D}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`})).rows.map(n=>n.id)}async function N0(){let t=oe(),e=`us${D}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`,include_docs:!0})).rows.map(n=>n.doc)}async function _a(t){return await oe().bulkDocs(t)}async function mi(t,e){let n=await oe().get(t);return e?.cleanup&&(n=Oa(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await dr("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=Oa(n)),n}async function P0(t){try{let e=await kt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function zc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=pc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await dr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Oa(s)),s}async function vm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}let i={selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50};return(await Jp(ur(),i)).rows}function C_(t,e){if(e)return dc(at(t),e._id)}async function v_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await dr("by_email2",{...e,startkey:i,endkey:`${n}${Ge}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Oa(o)),o}var L0=8;async function N_({bookmark:t,query:e,appId:r,limit:n}={}){let i=oe(),s=n??L0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await mi(e.equal._id)]:r?(u=await zc(r,a),l=f=>C_(r,f)):e?.string?.email?(u=await v_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Jc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(si(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Fr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(si(null,a))).rows.map(m=>m.doc),Rf(u,s,{paginate:!0,property:c,getKey:l})}async function U0(){return(await Df("by_email2",{limit:0,include_docs:!1})).total_rows}async function M0(){let t=0;async function e(r){let n=await N_({bookmark:r}),i=await di(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function F0(t){return delete t.admin,delete t.builder,t}function Nm(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}async function k0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Yt.save(t,{hashPassword:!1})}async function B0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Yt.save(t,{hashPassword:!1})}var P_=3600;async function G0(t,e){let n=await hf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Xr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function $0(t){let e=await Yt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Xr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function xa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=G0),!e)try{e=j()}catch{e=await Ut.lookupTenantId(t)}let i=await Go(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,P_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Yt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function V0(t){let e=await Go(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r).filter(o=>!!o),s;if(n.length){let o=await $0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,P_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ra(t){await(await Go()).delete(t)}var Mm={};N(Mm,{Writethrough:()=>Lm});var L_=1e4,Pm=null;async function Zc(){if(!Pm){let t=await ff();Pm=new ti(t)}return Pm}function wa(t,e){return t.name+e}function Um(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function q0(t,e,r=L_){let n=await Zc(),i=e._id,s;i&&(s=await n.get(wa(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await as({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let f=await t.put(l,{force:!0});a._id=f.id,a._rev=f.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;cs("Ignoring conflict in write-through cache")}})).executed||cs("Ignoring redlock conflict in write-through cache")),s=Um(a,o?null:s?.lastWrite),a._id&&await n.store(wa(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function W0(t,e){let r=await Zc(),n=wa(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Um(s),await r.store(n,i)}return i.doc}async function Q0(t,e){let r=await Zc(),n=wa(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Um(s),await r.store(n,i)}return i.doc}async function j0(t,e,r){let n=await Zc();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(wa(t,i))}finally{await t.remove(i,r)}}var Lm=class{constructor(e,r=L_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return q0(this.db,e,r)}async get(e){return W0(this.db,e)}async tryGet(e){return Q0(this.db,e)}async remove(e,r){return j0(this.db,e,r)}};var Fm={};N(Fm,{createCode:()=>K0,getCode:()=>Y0,invalidateCode:()=>J0});var H0=be.fromHours(1).toSeconds();async function K0(t,e){let r=me();return await(await $o()).store(r,{userId:t,info:e},H0),r}async function Y0(t){let r=await(await $o()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function J0(t){await(await $o()).delete(t)}var Bm={};N(Bm,{DocWritethrough:()=>km,DocWritethroughProcessor:()=>ba,getProcessor:()=>Z0,init:()=>U_});var z0=100,Xc,ba=class t{static get queue(){return t._queue||(t._queue=new yr("docWritethroughQueue",{jobOptions:{attempts:z0}})),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=Ve(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},km=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await ba.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function U_(){return Xc=new ba().init(),Xc}function Z0(){return Xc||U_()}function el(t){return`config${D}${t}`}async function Bt(t){let e=oe();try{return await e.get(el(t))}catch(r){if(r.status===404)return;throw r}}async function X0(t){return t._id||(t._id=el(t.type)),oe().put(t)}async function Wc(){let t=await Bt("settings");return t||(t={_id:el("settings"),type:"settings",config:{}}),t.config.platformUrl=await Da({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await kc({config:t.config}),t}async function Vm(){return(await Wc()).config}async function Da(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Bt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var kc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Qr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Bt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function eF(){return await Bt("google")}async function tl(){return(await eF())?.config}async function qm(){if(!h.SELF_HOSTED)return Gm();let t=await tl();return(!t||!t.activated)&&(t=Gm()),t}function Gm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function tF(){return Bt("logos_oidc")}async function rF(){return Bt("oidc")}async function nF(){let t=(await rF())?.config;return t?.configs&&t.configs[0]}async function Wm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function M_(){return Bt("smtp")}async function iF(t){let e=await M_();if(e)return e.config;let r=h.SELF_HOSTED||!t;if(h.SMTP_FALLBACK_ENABLED&&r)return{port:h.SMTP_PORT,host:h.SMTP_HOST,secure:!1,from:h.SMTP_FROM_ADDRESS,auth:{user:h.SMTP_USER,pass:h.SMTP_PASSWORD},fallback:!0}}async function sF(){return(await Bt("scim"))?.config}async function oF(){return Bt("ai")}var eh={};N(eh,{AccessController:()=>Hm,BUILTIN_ROLE_IDS:()=>Km,Role:()=>sn,RoleHierarchyTraversal:()=>rl,RoleIDVersion:()=>Ym,builtinRoleToNumber:()=>Ca,checkForRoleResourceArray:()=>G_,externalRole:()=>pF,findRole:()=>va,getAllRoleIds:()=>gF,getAllRoles:()=>Xm,getBuiltinRole:()=>k_,getBuiltinRoles:()=>zm,getDBRoleID:()=>$_,getExternalRoleID:()=>on,getExternalRoleIDs:()=>V_,getRole:()=>fF,getUserRoleHierarchy:()=>Zm,getUserRoleIdHierarchy:()=>B_,isBuiltin:()=>hi,lowerBuiltinRoleID:()=>dF,prefixRoleIDNoBuiltin:()=>jm,roleIDsAreEqual:()=>St,roleToNumber:()=>lF,saveRoles:()=>mF,validInherits:()=>cF});var Qm=W(require("semver"));var nl=W(require("lodash/fp/cloneDeep"));var F_=require("lodash");var Km={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...Km,BUILDER:"BUILDER"},Ym={UUID:void 0,NAME:"name"};function uF(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var sn=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Ym.NAME}addInheritance(e){return e&&typeof e=="string"?e=jm(e):e&&Array.isArray(e)&&(e=e.map(jm)),this.inherits=e,this}},rl=class{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 s of e.inherits){let o=va(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!uF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=va(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,F_.uniqBy)(i,s=>s._id)}},Jm={ADMIN:new sn(he.ADMIN,he.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(he.POWER),POWER:new sn(he.POWER,he.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(he.BASIC),BASIC:new sn(he.BASIC,he.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(he.PUBLIC),PUBLIC:new sn(he.PUBLIC,he.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new sn(he.BUILDER,he.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function zm(){return(0,nl.default)(Jm)}function hi(t){return Object.values(Km).includes(t)}function jm(t){return hi(t)?t:lr(t)}function k_(t){let e=Object.values(Jm).find(r=>t.includes(r._id));if(e)return(0,nl.default)(e)}function cF(t,e){if(!e)return!1;let r=n=>t.find(i=>St(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function Ca(t){let e=zm(),r=Object.values(e).length+1;if(St(t,he.ADMIN)||St(t,he.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}async function lF(t){if(hi(t))return Ca(t);let e=await Zm(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>St(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(hi(n.inherits))return Ca(n.inherits)+1;return 0};return Math.max(...e.map(r))}function dF(t,e){return t?e&&Ca(t)>Ca(e)?e:t:e}function St(t,e){return lr(t)===lr(e)}function pF(t){let e;return t._id&&(e=on(t._id)),{...t,_id:e,inherits:V_(t.inherits,t.version)}}function va(t,e,r){let n=k_(t);n||(t=lr(t));let i=e.find(s=>s._id&&St(s._id,t));return!i&&!hi(t)&&r?.defaultPublic?(0,nl.default)(Jm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=on(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function fF(t,e){let r=Xi(),n=[];if(!hi(t)){let i=await r.tryGet($_(t));i&&n.push(i)}return va(t,n,e)}async function mF(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function hF(t,e){let r=await Xm();if(St(t,he.ADMIN))return r;let n=va(t,r,e),i=[];return n&&(i=new rl(r,e).walk(n)),i}async function B_(t){return(await Zm(t)).map(r=>r._id)}async function Zm(t,e){return hF(t,e)}function G_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}async function gF(t){return(await Xm(t)).map(r=>r._id)}async function Xm(t){if(t)return ut(t,e);{let r;try{r=Xi()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(fc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=on(a._id,a.version)));let i=zm(),s=[];!r||await yF(r)?s=[he.ADMIN,he.POWER,he.BASIC,he.PUBLIC]:s=[he.ADMIN,he.BASIC,he.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>St(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=on(a._id,u.version),n.push({...a,...u,name:a.name,_id:on(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=G_(o.permissions,a);return n}}async function yF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Qm.default.valid(r)?!0:!Qm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Hm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||St(e,he.BUILDER)||St(r,e)||St(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await B_(r),this.userHierarchies[r]=n),n?.find(i=>St(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let s=await this.checkScreenAccess(i,r);s&&n.push(s)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function $_(t){return t?.startsWith("role")?t:lr(t)}function on(t,e){if(t.startsWith(`role${D}`)&&(hi(t)||e===Ym.NAME)){let r=t.split(D);return r.shift(),r.join(D)}return t}function V_(t,e){return t&&(typeof t=="string"?on(t,e):t.map(r=>on(r,e)))}var th={};N(th,{BUILDER:()=>_F,BUILTIN_PERMISSIONS:()=>il,CREATOR:()=>IF,GLOBAL_BUILDER:()=>OF,PermissionImpl:()=>ge,PermissionLevel:()=>xs,PermissionType:()=>Ga,doesHaveBasePermission:()=>AF,getAllowedLevels:()=>j_,getBuiltinPermissionByID:()=>TF,getBuiltinPermissions:()=>EF,isPermissionLevelHigherThanRead:()=>SF,levelToNumber:()=>Q_});var q_=W(require("lodash/flatten")),W_=W(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function Q_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function j_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var il={PUBLIC:{_id:"public",name:"Public",permissions:[new ge("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new ge("query","read"),new ge("table","read"),new ge("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new ge("query","write"),new ge("table","write"),new ge("automation","execute"),new ge("legacy_view","read"),new ge("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new ge("table","write"),new ge("user","read"),new ge("automation","execute"),new ge("webhook","read"),new ge("legacy_view","read"),new ge("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new ge("table","admin"),new ge("user","admin"),new ge("automation","admin"),new ge("webhook","read"),new ge("query","admin"),new ge("legacy_view","read"),new ge("app","read")]}};function EF(){return(0,W_.default)(il)}function TF(t){return Object.values(il).find(r=>r._id===t)}function AF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(il),s=(0,q_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&j_(o.level).indexOf(e)!==-1)return!0;return!1}function SF(t){return Q_(t)>1}var _F="builder",IF="creator",OF="globalBuilder";var ih={};N(ih,{FlagSet:()=>ol,all:()=>bF,flags:()=>rh,getEnvFlags:()=>J_,init:()=>xF,isEnabled:()=>wF,parseEnvFlags:()=>ul,shutdown:()=>RF,testutils:()=>nh});var al=W(require("crypto"));var H_=require("posthog-node"),K_=W(require("dd-trace"));var Y_=require("lodash");var sl;function xF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),sl=new H_.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:be.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function RF(){sl?.shutdown()}function ul(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}function J_(){return ul(h.TENANT_FEATURE_FLAGS||"")}var ol=class{constructor(e){this.flagSchema=e;this.setId=al.randomUUID()}defaults(){return(0,Y_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await K_.default.trace("features.fetch",async e=>{let r=rf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:f,key:m,value:p}of J_())if(!(!f||f!=="*"&&f!==s)&&(n.readFromEnvironmentVars=!0,p===!1&&o.add(m),!!this.isFlagName(m))){if(typeof i[m]!="boolean")throw new Error(`Feature: ${m} is not a boolean`);i[m]=p,n[`flags.${m}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let f=ef();f&&(u=al.createHash("sha512").update(f).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,sl&&u){n.readFromPostHog=!0;let f={tenantId:c},m=await sl.getAllFlags(u,{personProperties:f,onlyEvaluateLocally:!0});for(let[p,d]of Object.entries(m))if(this.isFlagName(p)){if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${p}": ${d}`);continue}if(!(i[p]===!0||o.has(p)))try{i[p]=d,n[`flags.${p}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${p}": ${d}`,g)}}}let l=sf();for(let[f,m]of Object.entries(l))this.isFlagName(f)&&typeof m=="boolean"&&(i[f]=m,n[`flags.${f}.source`]="override");nf(this.setId,i);for(let[f,m]of Object.entries(i))n[`flags.${f}.value`]=m;return e?.addTags(n),i})}},rh=new ol(kh);async function wF(t){return await rh.isEnabled(t)}async function bF(){return await rh.fetch()}var nh={};N(nh,{setFeatureFlags:()=>z_,withFeatureFlags:()=>vF});function DF(){let t={};for(let{tenantId:e,key:r,value:n}of ul(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function CF(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,s]of Object.entries(n))s===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}function z_(t,e){let r=DF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=CF(r);return Ro({TENANT_FEATURE_FLAGS:n})}function vF(t,e,r){let n=z_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var gh={};N(gh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,buildAuthMiddleware:()=>Tk,buildCsrfMiddleware:()=>Sk,buildTenancyMiddleware:()=>Ak,builderOnly:()=>Sl,builderOrAdmin:()=>Al,google:()=>Ar,internalApi:()=>yl,joiValidator:()=>Pa,oidc:()=>Sr,passport:()=>_k,platformLogout:()=>wk,refreshOAuthToken:()=>xk,ssoCallbackUrl:()=>an,updateUserOAuth:()=>Rk});var hh={};N(hh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,authenticated:()=>ml,builderOnly:()=>Sl,builderOrAdmin:()=>Al,correlation:()=>dI,csp:()=>yI,csrf:()=>El,datasource:()=>yk,errorHandling:()=>fI,featureFlagCookie:()=>EI,google:()=>Ar,internalApi:()=>yl,ip:()=>AI,joiValidator:()=>Pa,local:()=>Ss,oidc:()=>Sr,pino:()=>cI,querystringToBody:()=>mI,ssoCallbackUrl:()=>an,tenancy:()=>gl});var Ss={};N(Ss,{authenticate:()=>LF,options:()=>PF});function Me(t,e,r){return t(r,null,{message:e})}async function an(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Vm(),n="/api/global/auth";return Vr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var sh="Invalid credentials",NF="This account has expired. Please reset your password",PF={passReqToCallback:!0};async function LF(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await kt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,sh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,sh)):i.password?await Tf(r,i.password)?(delete i.password,n(null,i)):Me(n,sh):(console.info(`user=${e} has no password set`,i),Me(n,NF))}var Ar={};N(Ar,{buildVerifyFn:()=>eI,getCallbackUrl:()=>FF,strategyFactory:()=>oh});var Na=t=>Promise.resolve(t);async function cl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=rs(t.userId),s;try{s=await mi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await kt(t.email)),!s&&e)return Me(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:j()});let o=await UF(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Me(r,"Error saving user",a)}return r(null,o)}async function UF(t,e){let r,n,i;if(e.profile){let s=e.profile;if(s.name){let o=s.name;o.givenName&&(r=o.givenName),o.familyName&&(n=o.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}var MF=require("passport-google-oauth").OAuth2Strategy;function eI(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return cl(s,!0,i,t)}}async function oh(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 s=eI(r);return new MF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function FF(t){return an("google",t)}var Sr={};N(Sr,{buildVerifyFn:()=>rI,fetchStrategyConfig:()=>$F,getCallbackUrl:()=>VF,strategyFactory:()=>GF});var tI=W(require("node-fetch"));var kF=require("@techpass/passport-openidconnect").Strategy;function rI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:BF(n,i),oauth2:{accessToken:s,refreshToken:o}};return cl(l,!1,c,t)}}function BF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Uf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function GF(t,e){try{let r=rI(e),n=new kF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function $F(t,e){try{let{clientID:r,clientSecret:n,configUrl:i}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let s=await(0,tI.default)(i);if(!s.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${s.statusText}`);let o=await s.json();return{issuer:o.issuer,authorizationURL:o.authorization_endpoint,tokenURL:o.token_endpoint,userInfoURL:o.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function VF(){return an("oidc")}var ah={};N(ah,{postAuth:()=>QF,preAuth:()=>WF});var qF=require("passport-google-oauth").OAuth2Strategy;async function nI(){let t=await qm();if(!t)throw new Error("No google configuration found");return t}async function WF(t,e,r){let n=await nI(),s=`${await Da({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await oh(n,s,Na);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function QF(t,e,r){let n=await nI(),s=`${await Da({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=fr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new qF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Kr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=me();await cr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var jF=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(jF);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],yi=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var fh={};N(fh,{SecretOption:()=>oI,decrypt:()=>ph,decryptFile:()=>ZF,encrypt:()=>YF,encryptFile:()=>JF,getSecret:()=>dh});var _r=W(require("crypto")),un=W(require("fs")),ch=W(require("zlib"));var uh=require("path"),ll="aes-256-ctr",sI="-",HF=1e4,KF=32,dl=16,lh=16,oI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(oI||{});function dh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function pl(t,e){return _r.default.pbkdf2Sync(t,e,HF,KF,"sha512")}function YF(t,e="api"){let r=_r.default.randomBytes(dl),n=pl(dh(e),r),i=_r.default.createCipheriv(ll,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${sI}${a}`}function ph(t,e="api"){let[r,n]=t.split(sI),i=Buffer.from(r,"hex"),s=pl(dh(e),i),o=_r.default.createDecipheriv(ll,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function JF({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,uh.join)(t,e);if(un.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=un.default.createReadStream(i),o=un.default.createWriteStream((0,uh.join)(t,n)),a=_r.default.randomBytes(dl),u=_r.default.randomBytes(lh),c=pl(r,a),l=_r.default.createCipheriv(ll,c,u);return o.write(a),o.write(u),s.pipe(ch.default.createGzip()).pipe(l).pipe(o),new Promise(f=>{o.on("finish",()=>{f({filename:n,dir:t})})})}async function zF(t){let e=un.default.createReadStream(t),r=await iI(e,dl),n=await iI(e,lh);return e.close(),{salt:r,iv:n}}async function ZF(t,e,r){if(un.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await zF(t),s=un.default.createReadStream(t,{start:dl+lh}),o=un.default.createWriteStream(e),a=pl(r,n),u=_r.default.createDecipheriv(ll,a,i),c=ch.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,f)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),f(m)}),u.on("error",m=>{o.close(),f(m)}),c.on("error",m=>{o.close(),f(m)}),o.on("error",m=>{o.close(),f(m)})})}function iI(t,e){return new Promise((r,n)=>{let i=0,s=[];t.on("readable",()=>{let o;for(;(o=t.read(e-i))!==null;)s.push(o),i+=o.length;r(Buffer.concat(s))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var uI=W(require("dd-trace")),XF=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function ek(){return new Date(Date.now()-XF).toISOString()}function aI(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}async function tk(t,e){if(Zo(t))return{valid:!0,user:void 0};let n=ph(t).split(D)[0];return qe(n,async()=>{let i;try{let s=oe();i=await dr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await xa({userId:i,tenantId:n,populateUser:e})};throw new fs})}function fl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ml(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=fl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=fl(n,"x-budibase-token"),c=fr(n,"budibase:auth")||hc(u),l=fl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let f=fl(n,"x-budibase-tenant-id"),m=!1,p,d=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,O;try{O=await Rm(S,y),e&&e.populateUser?p=await xa({userId:S,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):p=await xa({userId:S,tenantId:O.tenantId,email:O.email}),p.csrfToken=O.csrfToken,g="cookie",O?.lastAccessedAt<ek()&&await xm(O),m=!0}catch(R){m=!1,console.error(`Auth Error: ${R.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:O}=await tk(l,y);S&&(m=!0,g="api_key",p=O,d=!O)}!p&&f?p={tenantId:f}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&uI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),aI(n,{authenticated:m,user:p,internal:d,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Up(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Kr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return aI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var rk=async(t,e)=>e(),hl=rk;function gl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=Wo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var yl=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Zo(r)||t.throw(403,"Unauthorized"),e()};var nk=["GET","HEAD","OPTIONS"],ik=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function El(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||nk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!ik.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Tl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Al=async(t,e)=>{let r=Le(),n=h.isWorker()||!r?Tt:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var Sl=async(t,e)=>{let r=Le(),n=h.isWorker()||!r?Tt:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var sk=require("koa-pino-logger"),ok=require("correlation-id");function ak(){return{logger:Oc,genReqId:ok.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})}}}function uk(){return h.HTTP_LOGGING?sk(ak()):(t,e)=>e()}var ck=uk(),cI=ck;var lI=require("uuid"),lk=require("correlation-id"),dk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,lI.v4)()),lk.withId(r,()=>e())},dI=dk;function pI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of BT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function pk(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:vc(r)};if(pI(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}var fI=pk;function mI(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()}var gI=W(require("crypto"));var hI={"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"],"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"],"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'"]},fk=/^[A-Za-z0-9-*:/.]+$/,mk=async(t,e)=>{let r=gI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...hI};if(n["script-src"]=[...hI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await jo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
|
|
38
|
+
`).filter(c=>fk.test(c));n["default-src"]=[...n["default-src"],...u]}}catch(o){console.error(`Error occurred in Content-Security-Policy middleware: ${o}`)}let s=Object.entries(n).map(([o,a])=>`${o} ${a.join(" ")}`).join("; ");t.set("Content-Security-Policy",s),await e()},yI=mk;var EI=async(t,e)=>{let n=fr(t,"budibase:featureflags")?.flags||{};await of(n,async()=>{await e()})};var Pa={};N(Pa,{body:()=>hk,params:()=>gk});var mh=W(require("joi"));function TI(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:mh.default.any().optional(),updatedAt:mh.default.any().optional()}));let{error:u}=t.validate(o,{allowUnknown:r?.allowUnknown});if(u){let c=u.message;n&&(c=`Invalid ${e} - ${c}`),i.throw(400,c)}return s()}}function hk(t,e){return TI(t,"body",e)}function gk(t,e){return TI(t,"params",e)}var AI=async(t,e)=>t.ip?await tf(t.ip,()=>e()):e();var yk={google:ah};var SI=require("koa-passport"),Ek=require("passport-local").Strategy,_l=require("passport-oauth2-refresh"),Tk=ml,Ak=gl,Sk=El,_k=SI;SI.use(new Ek(Ss.options,Ss.authenticate));async function Ik(t,e){let r=await Sr.getCallbackUrl(),n,i;try{if(n=await Sr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Sr.strategyFactory(n,Na)}catch{throw new Error("Could not refresh OAuth Token")}return _l.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{_l.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Ok(t,e){let r=await Ar.getCallbackUrl(t),n;try{n=await Ar.strategyFactory(t,r,Na)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return _l.use(n),new Promise(i=>{_l.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function xk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Wm(r);return n?Ik(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await tl();return n?Ok(n,t):{err:{data:"Google configuration not found"}}}}}async function Rk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=oe(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Ra(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function wk(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=fr(e,"budibase:auth"),s=await Kc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await fi(r,{sessionIds:o,reason:"logout"}),await Hc.logout(e.user?.email),await Ra(r)}var Eh={};N(Eh,{validate:()=>Nk});var v=W(require("joi")),bk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function yh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Dk(t){let e=v.default.object({type:v.default.string().allow("component").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),settings:v.default.array().items(v.default.object().unknown(!0)).required()}).unknown(!0)});yh(e,t)}function Ck(t){let e=v.default.object({type:v.default.string().allow(...Object.values(wl)).required(),required:v.default.boolean().required(),default:v.default.any(),display:v.default.string()}),r=v.default.object({type:v.default.string().allow(...Object.values(Rl)),readable:v.default.boolean(),fields:v.default.object().pattern(v.default.string(),e)}).required(),n=v.default.object({type:v.default.string().allow("datasource").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({docs:v.default.string(),plus:v.default.boolean().optional(),isSQL:v.default.boolean().optional(),auth:v.default.object({type:v.default.string().required()}).optional(),features:v.default.object(Object.fromEntries(Object.values(bl).map(i=>[i,v.default.boolean().optional()]))).optional(),relationships:v.default.boolean().optional(),description:v.default.string().required(),friendlyName:v.default.string().required(),type:v.default.string().allow(...bk),datasource:v.default.object().pattern(v.default.string(),e).required(),query:v.default.object().pattern(v.default.string(),r).unknown(!0).required(),extra:v.default.object().pattern(v.default.string(),v.default.object({type:v.default.string().required(),displayName:v.default.string().required(),required:v.default.boolean(),data:v.default.object()}))})});yh(n,t)}function vk(t){let e=v.default.object().pattern(v.default.string(),{type:v.default.string().allow(...Object.values(ee)).required(),customType:v.default.string().allow(...Object.values(pe)),title:v.default.string(),description:v.default.string(),enum:v.default.array().items(v.default.string()),pretty:v.default.array().items(v.default.string())}),r=v.default.object({properties:e,required:v.default.array().items(v.default.string())}).concat(e).required(),n=v.default.object({type:v.default.string().allow("automation").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),tagline:v.default.string().required(),icon:v.default.string().required(),description:v.default.string().required(),type:v.default.string().allow("ACTION","LOGIC").required(),stepId:v.default.string().disallow(...Bh).required(),inputs:v.default.object().optional(),schema:v.default.object({inputs:r,outputs:r}).required()})});yh(n,t)}function Nk(t){switch(t?.type){case"component":Dk(t);break;case"datasource":Ck(t);break;case"automation":vk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Th={};N(Th,{Client:()=>We,clients:()=>Wr,locks:()=>ui,utils:()=>sc});var Ah={};N(Ah,{isBlacklisted:()=>Lk,refreshBlacklist:()=>xI});var _I=W(require("dns")),Ol=W(require("net"));var II=require("util"),Il,Pk=(0,II.promisify)(_I.default.lookup);async function OI(t){return Ol.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Pk(t,{all:!0})).map(r=>r.address)}async function xI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Ol.default.isIP(i))r.push(i);else{let s=await OI(i);r=r.concat(s)}}Il=r}async function Lk(t){if(Il||await xI(),Il?.length===0)return!1;let e;return Ol.default.isIP(t)?e=[t]:e=await OI(t),!!Il?.find(r=>e.includes(r))}var _h={};N(_h,{init:()=>Mk});var Uk={"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};function RI(t,e){let r=Uk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var La=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=RI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await qe(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return r_()}};var wI,Sh;function Mk(t){Tr||jc(),Sh||(Sh=new La(t)),wI||(wI=Tr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Sh.processEvent(r,n,i)}))}var vh={};N(vh,{COUNT_FIELD_NAME:()=>Dh,Sql:()=>MI,SqlTable:()=>xl,designDoc:()=>Ch,utils:()=>Kp});var vI=require("knex");var Fk=require("knex");function Ih(t){return["link","formula","ai"].indexOf(t)!==-1}function bI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,p]of Object.entries(e.schema)){let d=n?.schema[m];if(d&&d.type||c.includes(m)||i?.updated===m)continue;let g=p.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${E}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":p.timeOnly?t.time(m):t.datetime(m,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":jt.schema.isDeprecatedSingleUserColumn(p)?t.text(m):t.json(m);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}=qp(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],O=y.schema[S].externalType;O?t.specificType(p.foreignKey,O):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(m);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:Ci.unreachable(g)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!Ih(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,d])=>!Ih(d.type)&&e.schema[p]==null).forEach(([p,d])=>{i?.old===p||Ih(d.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Bk(t,e,r){return t.createTable(e.name,n=>{bI(n,e,r)})}function Gk(t,e,r,n,i){return t.alterTable(e.name,s=>{bI(s,e,r,n,i)})}function $k(t,e){return t.dropTable(e.name)}var Oh=class{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,Fk.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=Bk(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=Gk(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=Ji(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=$k(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},xl=Oh;var NI=require("lodash"),Dh="__bb_total";function DI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function xh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Vk(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function PI(t){return Array.isArray(t)?t.map(e=>PI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function CI(t){return t.sourceType==="internal"||t.sourceId===Ul}function qk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function LI(t,e='"'){return`${e}${qk(t,e)}${e}`}function Rh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=LI(t[r],e));return`[${t.join(",")}]`}function UI(t){return $h.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var Wk={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},wh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Fr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}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(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}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(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}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(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&UI(r)&&typeof e=="object")return JSON.stringify(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"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!jp(e))return null}else if(r.dateOnly){let n=Qp(e);return n?new Date(n):null}else return r.ignoreTimezones?tc(e)?new Date(e.trim()):Wp(e)?new Date(e.trim()+"Z"):null:tc(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),s=this.table.schema[i];s&&(e[r]=this.parse(n,s))}return e}parseFilters(e){e=(0,NI.cloneDeep)(e);for(let r of Object.values(Or)){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:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Jt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(pn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=f=>n.match(new RegExp(`^${f}\\.`));if(!s)return e;for(let f of s){let m=f.tableName,p=a?.[m]||m,d=l(m)||l(p),g=l(f.column);if((d||g)&&f.to&&f.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),S=Hp(f),O;if(d?O=n:O=n.replace(new RegExp(`^${f.column}.`),`${a?.[f.tableName]||f.tableName}.`),S){let R=a?.[S.through]||f.through,T=this.tableNameWithSchema(S.through,{alias:R,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${S.toPrimary}`,"=",`${R}.${S.to}`)}).where(`${R}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(_=>{_.whereExists(i(O,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${R}.${S.from}`)}))})}else{let R=`${p}.${f.to}`,T=`${c}.${f.from}`;y=y.where(R,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(O,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(d){return s?.[d]||d}function l(d,g,E,y){let S=(O,R,T)=>{let[_,...B]=R.split("."),b=B.join("."),k=c(_);return O.andWhere(de=>E(de,k?`${k}.${b}`:b,T))};for(let O in d){let R=d[O],T=zo(O),_=T.includes("."),B=n?.relationship&&_,b;if(O==="_complexIdOperator"&&(b=d[O])&&y){let k=c(u);e=y(e,b.id.map(de=>k?`${k}.${de}`:de),b.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Wk[g],T,(k,de)=>S(de,k,R)));else{let k=c(u);e=E(e,k?`${k}.${T}`:T,R)}}}let f=(d,g,E)=>((r?.fuzzyOr||o)&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3"?d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):d.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(d,g=!1)=>{function E(y){return(o||d===r?.containsAny)&&(y=y.or),d===r?.notContains&&(y=y.not),y}this.client==="pg"?l(d,"contains",(y,S,O)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Rh(O,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Rh(O))]))):this.client==="mysql2"||this.client==="mariadb"?l(d,"contains",(y,S,O)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(LI(Rh(O)))])):l(d,"contains",(y,S,O)=>(O.length===0||(y=y.where(R=>(d===r?.notContains&&(R=R.not),R=R.where(T=>{for(let _ of O){d===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${B}%`)}}),d===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(S))),R))),y))};if(r.$and){let{$and:d}=r;for(let g of d.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:d}=r;e=e.where(g=>{for(let E of d.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(d,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(d=d.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let O of S)O!=null?d=d.or.whereLike(g,`${O.toISOString().slice(0,10)}%`):d=d.or.whereNull(g);return d}return d.whereIn(g,S)},(d,g,E)=>(o&&(d=d.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),d.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(d,g,E)=>(o&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3"?d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):d.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",f),r.range&&l(r.range,"range",(d,g,E)=>{let y=b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=rc(E.low),O=rc(E.high),R=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&R?.type==="datetime"&&R.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&R?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(d=d.or),S&&O?d.whereBetween(T,[B,_]):S?d.where(T,">=",B):O?d.where(T,"<=",_):d}),r.equal&&l(r.equal,"equal",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.whereLike(g,`${E.toISOString().slice(0,10)}%`):d.whereNull(g):d.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):d.not.whereNull(g):d.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(d,g)=>(o&&(d=d.or),d.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(d,g)=>(o&&(d=d.or),d.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!Vp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${xr(r.documentType)}%`),e}isSqs(){return CI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;CI(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 ${Dh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.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,s=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[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let f=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(f):m=this.rawQuotedIdentifier(f),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}if(!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)){if(i[0]===void 0)throw new Error(`Primary key not found for table ${this.table.name}`);e=e.orderBy(`${s}.${i[0]}`)}return e}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],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let f of n){let{tableName:m,through:p,to:d,from:g,fromPrimary:E,toPrimary:y}=f;if(!m||!r)continue;let S=c[m];if(!S)throw new Error(`related table "${m}" not found in datasource`);let O=a?.[m]||m,R=a?.[r]||r,T=p&&a?.[p]||p,_=this.tableNameWithSchema(m,{alias:O,schema:u}),B=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),b=Vk(l.filter(V=>V.split(".")[0]===O),B);b=b.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=b.map(V=>this.buildJsonField(S,V));if(!k.length)continue;let de=k.map(V=>{let ae=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ae}??`,[V[0],V[1]]).toString()}).join(","),cn=`${O}.${y||d}`,$=s.from(_).orderBy(cn),F=p&&y&&E,I=F?`${T}.${g}`:`${O}.${d}`,q=F?`${R}.${E}`:`${R}.${g}`;if(F){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${O}.${y}`,"=",`${T}.${d}`)})}$=$.where(this.rawQuotedIdentifier(I),"=",this.rawQuotedIdentifier(q));let U=V=>($=$.select(b.map(ae=>this.rawQuotedIdentifier(ae))).limit(xh()),s.select(V).from({[O]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,f),Y=U(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":Y=U(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${xh()})`));break;case"mysql2":case"oracledb":Y=U(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let V=s.select("*").from({[R]:$.select(k.map(ae=>s.ref(ae[1]).as(ae[0]))).limit(xh())});Y=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(O)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:Y})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,f=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let d of n){let g=d.fromPrimary,E=d.from;this.orOn(`${f}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let d of n){let g=d.toPrimary,E=d.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let d of n){let g=d.from,E=d.to;this.orOn(`${f}.${g}`,"=",`${c}.${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[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];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:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):f.length>0?u=this.addAggregations(u,f):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&f.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},bh=class extends xl{constructor(r,n=DI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Ji(r);return i==="sqlite3"&&(s=PI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,vI.knex)(s),a,u=new wh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:DI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,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=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let f=[];for(let m of a)f.push(await n(m,o));return f}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let f;s==="mssql"?f=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(f=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(f,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Ul){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let s=this.getTableName(r,i);for(let[o,a]of Object.entries(r.schema)){if(!UI(a))continue;let u=`${s}.${o}`;for(let c of n)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return n}log(r,n){Co(this.getSqlClient(),r,n)}},MI=bh;var Ch={};N(Ch,{base:()=>Qk});function Qk(t){return{_id:Ht,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var jk={...Qo,...Se},Hk=(t={})=>{Xu(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,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,FeatureDisabledError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
|
|
39
39
|
//# sourceMappingURL=index.js.map
|