@budibase/backend-core 3.18.1 → 3.18.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/index.js +15 -15
  2. package/dist/index.js.map +4 -4
  3. package/dist/package.json +2 -2
  4. package/dist/plugins.js +1 -1
  5. package/dist/plugins.js.map +4 -4
  6. package/dist/src/cache/appMetadata.d.ts +2 -2
  7. package/dist/src/cache/appMetadata.js +1 -1
  8. package/dist/src/cache/appMetadata.js.map +1 -1
  9. package/dist/src/context/mainContext.d.ts +1 -1
  10. package/dist/src/context/mainContext.js +3 -5
  11. package/dist/src/context/mainContext.js.map +1 -1
  12. package/dist/src/db/utils.d.ts +3 -3
  13. package/dist/src/db/utils.js +4 -4
  14. package/dist/src/db/utils.js.map +1 -1
  15. package/dist/src/docIds/conversions.d.ts +2 -2
  16. package/dist/src/docIds/conversions.js.map +1 -1
  17. package/dist/src/events/publishers/app.d.ts +13 -13
  18. package/dist/src/events/publishers/app.js +1 -1
  19. package/dist/src/events/publishers/app.js.map +1 -1
  20. package/dist/src/events/publishers/serve.d.ts +3 -3
  21. package/dist/src/events/publishers/serve.js +1 -1
  22. package/dist/src/events/publishers/serve.js.map +1 -1
  23. package/dist/src/logging/pino/logger.d.ts +1 -1
  24. package/dist/src/logging/pino/logger.js.map +1 -1
  25. package/dist/src/middleware/errorHandling.d.ts +2 -1
  26. package/dist/src/objectStore/objectStore.d.ts +2 -2
  27. package/dist/src/objectStore/objectStore.js +17 -10
  28. package/dist/src/objectStore/objectStore.js.map +1 -1
  29. package/dist/src/security/roles.d.ts +1 -1
  30. package/dist/src/utils/utils.js +4 -4
  31. package/dist/src/utils/utils.js.map +1 -1
  32. package/dist/tests/core/utilities/structures/apps.d.ts +2 -2
  33. package/dist/tests/core/utilities/structures/apps.js.map +1 -1
  34. package/dist/tests/core/utilities/structures/licenses.js +1 -1
  35. package/dist/tests/core/utilities/structures/licenses.js.map +1 -1
  36. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
- "use strict";var jI=Object.create;var $a=Object.defineProperty;var HI=Object.getOwnPropertyDescriptor;var KI=Object.getOwnPropertyNames;var YI=Object.getPrototypeOf,JI=Object.prototype.hasOwnProperty;var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)$a(t,r,{get:e[r],enumerable:!0})},$h=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of KI(e))!JI.call(t,i)&&i!==r&&$a(t,i,{get:()=>e[i],enumerable:!(n=HI(e,i))||n.enumerable});return t};var G=(t,e,r)=>(r=t!=null?jI(YI(t)):{},$h(e||!t||!t.__esModule?$a(r,"default",{value:t,enumerable:!0}):r,t)),zI=t=>$h($a({},"__esModule",{value:!0}),t);var hg=j((zl,Zl)=>{"use strict";(function(t,e){typeof zl=="object"&&typeof Zl<"u"?Zl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(zl,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",p="date",m="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,y={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"],N=$%100;return"["+$+(F[(N-20)%10]||F[N]||F[0])+"]"}},T=function($,F,N){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(N)+$},_={s:T,z:function($){var F=-$.utcOffset(),N=Math.abs(F),q=Math.floor(N/60),O=N%60;return(F<=0?"+":"-")+T(q,2,"0")+":"+T(O,2,"0")},m:function $(F,N){if(F.date()<N.date())return-$(N,F);var q=12*(N.year()-F.year())+(N.month()-F.month()),O=F.clone().add(q,c),K=N-O<0,W=F.clone().add(q+(K?-1:1),c);return+(-(q+(N-O)/(K?O-W:W-O))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:p,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},S="en",x={};x[S]=y;var E="$isDayjsObject",I=function($){return $ instanceof de||!(!$||!$[E])},k=function $(F,N,q){var O;if(!F)return S;if(typeof F=="string"){var K=F.toLowerCase();x[K]&&(O=K),N&&(x[K]=N,O=K);var W=F.split("-");if(!O&&W.length>1)return $(W[0])}else{var ue=F.name;x[ue]=F,O=ue}return!q&&O&&(S=O),O||!q&&S},D=function($,F){if(I($))return $.clone();var N=typeof F=="object"?F:{};return N.date=$,N.args=arguments,new de(N)},B=_;B.l=k,B.i=I,B.w=function($,F){return D($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var de=function(){function $(N){this.$L=k(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[E]=!0}var F=$.prototype;return F.parse=function(N){this.$d=function(q){var O=q.date,K=q.utc;if(O===null)return new Date(NaN);if(B.u(O))return new Date;if(O instanceof Date)return new Date(O);if(typeof O=="string"&&!/Z$/i.test(O)){var W=O.match(f);if(W){var ue=W[2]-1||0,Oe=(W[7]||"0").substring(0,3);return K?new Date(Date.UTC(W[1],ue,W[3]||1,W[4]||0,W[5]||0,W[6]||0,Oe)):new Date(W[1],ue,W[3]||1,W[4]||0,W[5]||0,W[6]||0,Oe)}}return new Date(O)}(N),this.init()},F.init=function(){var N=this.$d;this.$y=N.getFullYear(),this.$M=N.getMonth(),this.$D=N.getDate(),this.$W=N.getDay(),this.$H=N.getHours(),this.$m=N.getMinutes(),this.$s=N.getSeconds(),this.$ms=N.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==m},F.isSame=function(N,q){var O=D(N);return this.startOf(q)<=O&&O<=this.endOf(q)},F.isAfter=function(N,q){return D(N)<this.startOf(q)},F.isBefore=function(N,q){return this.endOf(q)<D(N)},F.$g=function(N,q,O){return B.u(N)?this[q]:this.set(O,N)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(N,q){var O=this,K=!!B.u(q)||q,W=B.p(N),ue=function(dn,je){var Or=B.w(O.$u?Date.UTC(O.$y,je,dn):new Date(O.$y,je,dn),O);return K?Or:Or.endOf(a)},Oe=function(dn,je){return B.w(O.toDate()[dn].apply(O.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(je)),O)},Ne=this.$W,ke=this.$M,dt=this.$D,J="set"+(this.$u?"UTC":"");switch(W){case d:return K?ue(1,0):ue(31,11);case c:return K?ue(1,ke):ue(0,ke+1);case u:var ln=this.$locale().weekStart||0,Is=(Ne<ln?Ne+7:Ne)-ln;return ue(K?dt-Is:dt+(6-Is),ke);case a:case p: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()}},F.endOf=function(N){return this.startOf(N,!1)},F.$set=function(N,q){var O,K=B.p(N),W="set"+(this.$u?"UTC":""),ue=(O={},O[a]=W+"Date",O[p]=W+"Date",O[c]=W+"Month",O[d]=W+"FullYear",O[o]=W+"Hours",O[s]=W+"Minutes",O[i]=W+"Seconds",O[n]=W+"Milliseconds",O)[K],Oe=K===a?this.$D+(q-this.$W):q;if(K===c||K===d){var Ne=this.clone().set(p,1);Ne.$d[ue](Oe),Ne.init(),this.$d=Ne.set(p,Math.min(this.$D,Ne.daysInMonth())).$d}else ue&&this.$d[ue](Oe);return this.init(),this},F.set=function(N,q){return this.clone().$set(N,q)},F.get=function(N){return this[B.p(N)]()},F.add=function(N,q){var O,K=this;N=Number(N);var W=B.p(q),ue=function(ke){var dt=D(K);return B.w(dt.date(dt.date()+Math.round(ke*N)),K)};if(W===c)return this.set(c,this.$M+N);if(W===d)return this.set(d,this.$y+N);if(W===a)return ue(1);if(W===u)return ue(7);var Oe=(O={},O[s]=e,O[o]=r,O[i]=t,O)[W]||1,Ne=this.$d.getTime()+N*Oe;return B.w(Ne,this)},F.subtract=function(N,q){return this.add(-1*N,q)},F.format=function(N){var q=this,O=this.$locale();if(!this.isValid())return O.invalidDate||m;var K=N||"YYYY-MM-DDTHH:mm:ssZ",W=B.z(this),ue=this.$H,Oe=this.$m,Ne=this.$M,ke=O.weekdays,dt=O.months,J=O.meridiem,ln=function(je,Or,Os,Va){return je&&(je[Or]||je(q,K))||Os[Or].slice(0,Va)},Is=function(je){return B.s(ue%12||12,je,"0")},dn=J||function(je,Or,Os){var Va=je<12?"AM":"PM";return Os?Va.toLowerCase():Va};return K.replace(g,function(je,Or){return Or||function(Os){switch(Os){case"YY":return String(q.$y).slice(-2);case"YYYY":return B.s(q.$y,4,"0");case"M":return Ne+1;case"MM":return B.s(Ne+1,2,"0");case"MMM":return ln(O.monthsShort,Ne,dt,3);case"MMMM":return ln(dt,Ne);case"D":return q.$D;case"DD":return B.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return ln(O.weekdaysMin,q.$W,ke,2);case"ddd":return ln(O.weekdaysShort,q.$W,ke,3);case"dddd":return ke[q.$W];case"H":return String(ue);case"HH":return B.s(ue,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return dn(ue,Oe,!0);case"A":return dn(ue,Oe,!1);case"m":return String(Oe);case"mm":return B.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return B.s(q.$s,2,"0");case"SSS":return B.s(q.$ms,3,"0");case"Z":return W}return null}(je)||W.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(N,q,O){var K,W=this,ue=B.p(q),Oe=D(N),Ne=(Oe.utcOffset()-this.utcOffset())*e,ke=this-Oe,dt=function(){return B.m(W,Oe)};switch(ue){case d:K=dt()/12;break;case c:K=dt();break;case l:K=dt()/3;break;case u:K=(ke-Ne)/6048e5;break;case a:K=(ke-Ne)/864e5;break;case o:K=ke/r;break;case s:K=ke/e;break;case i:K=ke/t;break;default:K=ke}return O?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return x[this.$L]},F.locale=function(N,q){if(!N)return this.$L;var O=this.clone(),K=k(N,q,!0);return K&&(O.$L=K),O},F.clone=function(){return B.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 D.prototype=cn,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",p]].forEach(function($){cn[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),D.extend=function($,F){return $.$i||($(F,de,D),$.$i=!0),D},D.locale=k,D.isDayjs=I,D.unix=function($){return D(1e3*$)},D.en=x[S],D.Ls=x,D.p={},D})});var Rt=j(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.Err=Ke.Valid=Ke.err=Ke.valid=void 0;var xx=t=>new cu(t);Ke.valid=xx;var Rx=t=>new lu(t);Ke.err=Rx;var cu=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,Ke.valid)(e(this.value))}mapErr(e){return(0,Ke.valid)(this.value)}};Ke.Valid=cu;var lu=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,Ke.err)(this.error)}mapErr(e){return(0,Ke.err)(e(this.error))}};Ke.Err=lu});var wt=j(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0})});var Nr=j(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});qt();var oe=Rt();wt();var wx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],bx=["sun","mon","tue","wed","thu","fri","sat"],Dx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ps=(t,e,r)=>{if(e==="months"&&r.useAliases&&wx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&bx.indexOf(t.toLowerCase())!==-1)return(0,oe.valid)(!0);let n=Number(t);if(isNaN(n))return(0,oe.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,oe.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,oe.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,oe.valid)(!0)},Cx=(t,e,r)=>{if(t==="*")return Dx(e,r)?(0,oe.valid)(!0):(0,oe.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,oe.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,oe.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,oe.valid)(!0):Ps(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,oe.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,oe.valid)(!0):Ps(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,oe.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,oe.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,oe.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ps(n,e,r)}return Ps(t,e,r)},Ag=(t,e,r,n)=>t==="*"?(0,oe.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,oe.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,oe.valid)(!0):Ps(t,e,r),vx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Cx(n[0],e,r);if(n.length===2){let i=Ag(n[0],e,r,0),s=Ag(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,oe.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,oe.valid)(!0)}return(0,oe.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},Nx=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '/')`);let i=vx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,oe.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,oe.valid)(!0)},Px=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,oe.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,oe.valid)(!0):(0,oe.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,oe.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(Nx(o,e,r))}),i.every(o=>o.isValid()))return(0,oe.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,oe.err)(s)};rd.default=Px});var Sg=j(Ls=>{"use strict";var Lx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});qt();var Ux=Rt(),Mx=Lx(Nr());wt();var Fx=(t,e)=>{if(!t.seconds)return(0,Ux.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Mx.default)(r,"seconds",e)};Ls.default=Fx});var _g=j(Us=>{"use strict";var kx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});qt();var Bx=Rt(),Gx=kx(Nr());wt();var Vx=(t,e)=>{if(!t.minutes)return(0,Bx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Gx.default)(r,"minutes",e)};Us.default=Vx});var Ig=j(Ms=>{"use strict";var $x=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});qt();var Wx=Rt(),qx=$x(Nr());wt();var Qx=(t,e)=>{if(!t.hours)return(0,Wx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,qx.default)(r,"hours",e)};Ms.default=Qx});var Og=j(ks=>{"use strict";var jx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});qt();var Fs=Rt(),Hx=jx(Nr());wt();var Kx=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Hx.default)(r,"daysOfMonth",e)};ks.default=Kx});var xg=j(Bs=>{"use strict";var Yx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});qt();var Jx=Rt(),zx=Yx(Nr());wt();var Zx=(t,e)=>{if(!t.months)return(0,Jx.err)(["months field is undefined."]);let{months:r}=t;return(0,zx.default)(r,"months",e)};Bs.default=Zx});var Rg=j(Vs=>{"use strict";var Xx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});qt();var Gs=Rt(),eR=Xx(Nr());wt();var tR=(t,e)=>{if(!t.daysOfWeek)return(0,Gs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Gs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Gs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Gs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Gs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,eR.default)(r,"daysOfWeek",e)};Vs.default=tR});var wg=j($s=>{"use strict";var rR=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});qt();var nR=Rt(),iR=rR(Nr());wt();var sR=(t,e)=>{if(!t.years)return(0,nR.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,iR.default)(r,"years",e)};$s.default=sR});var vg=j((wQ,Cg)=>{"use strict";var nd;try{nd=Map}catch{}var id;try{id=Set}catch{}function bg(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(Dg);if(nd&&t instanceof nd)return new Map(Array.from(t.entries()));if(id&&t instanceof id)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]:bg(t[i],e,r)}return n}return t}function Dg(t){return bg(t,[],[])}Cg.exports=Dg});var Ws=j(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});sd.default=pR;var oR=Object.prototype.toString,aR=Error.prototype.toString,uR=RegExp.prototype.toString,cR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",lR=/^Symbol\((.*)\)(.*)$/;function dR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Ng(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return dR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return cR.call(t).replace(lR,"Symbol($1)");let n=oR.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+aR.call(t)+"]":n==="RegExp"?uR.call(t):null}function pR(t,e){let r=Ng(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Ng(this[n],e);return s!==null?s:i},2)}});var rr=j(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.default=Pe.array=Pe.object=Pe.boolean=Pe.date=Pe.number=Pe.string=Pe.mixed=void 0;var Pg=fR(Ws());function fR(t){return t&&t.__esModule?t:{default:t}}var Lg={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,Pg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Pg.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"};Pe.mixed=Lg;var Ug={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"};Pe.string=Ug;var Mg={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"};Pe.number=Mg;var Fg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Pe.date=Fg;var kg={isValue:"${path} field must be ${value}"};Pe.boolean=kg;var Bg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Pe.object=Bg;var Gg={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"};Pe.array=Gg;var mR=Object.assign(Object.create(null),{mixed:Lg,string:Ug,number:Mg,date:Fg,object:Bg,array:Gg,boolean:kg});Pe.default=mR});var Ci=j(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var hR=t=>t&&t.__isYupSchema__;du.default=hR});var $g=j(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var gR=Vg(require("lodash/has")),yR=Vg(Ci());function Vg(t){return t&&t.__esModule?t:{default:t}}var od=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,gR.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,yR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},ER=od;pu.default=ER});var ud=j(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=TR;function TR(t){return t==null?[]:[].concat(t)}});var Cn=j(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var AR=Wg(Ws()),SR=Wg(ud());function Wg(t){return t&&t.__esModule?t:{default:t}}function cd(){return cd=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},cd.apply(this,arguments)}var _R=/\$\{\s*(\w+)\s*\}/g,ld=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=cd({},r,{path:n})),typeof e=="string"?e.replace(_R,(i,s)=>(0,AR.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,SR.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)}};fu.default=ld});var mu=j(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=xR;var dd=IR(Cn());function IR(t){return t&&t.__esModule?t:{default:t}}var OR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function xR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=OR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new dd.default(o,s,u)):c(null,s);for(let p=0;p<n.length;p++){let m=n[p];m(i,function(g){if(g){if(!dd.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 dd.default(o,s,u),s);return}c(null,s)}})}}});var qs=j((UQ,Kg)=>{"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 RR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Hg=/^\d+$/,wR=/^\d/,bR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DR=/^\s*(['"]?)(.*?)(\1)\s*$/,hd=512,qg=new vn(hd),Qg=new vn(hd),jg=new vn(hd);Kg.exports={Cache:vn,split:md,normalizePath:fd,setter:function(t){var e=fd(t);return Qg.get(t)||Qg.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=fd(t);return jg.get(t)||jg.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+(gd(r)||Hg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){CR(Array.isArray(t)?t:md(t),e,r)}};function fd(t){return qg.get(t)||qg.set(t,md(t).map(function(e){return e.replace(DR,"$2")}))}function md(t){return t.match(RR)||[""]}function CR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(PR(i)&&(i='"'+i+'"'),a=gd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function gd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function vR(t){return t.match(wR)&&!t.match(Hg)}function NR(t){return bR.test(t)}function PR(t){return!gd(t)&&(vR(t)||NR(t))}});var Nn=j(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.create=UR;js.default=void 0;var LR=qs(),hu={context:"$",value:"."};function UR(t,e){return new Qs(t,e)}var Qs=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]===hu.context,this.isValue=this.key[0]===hu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?hu.context:this.isValue?hu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,LR.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}};js.default=Qs;Qs.prototype.__isYupRef=!0});var Yg=j(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.default=BR;var MR=yd(require("lodash/mapValues")),gu=yd(Cn()),FR=yd(Nn());function yd(t){return t&&t.__esModule?t:{default:t}}function yu(){return yu=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},yu.apply(this,arguments)}function kR(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 BR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=kR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:p,params:m,message:f}=t,{parent:g,context:y}=a;function T(I){return FR.default.isRef(I)?I.getValue(i,g,y):I}function _(I={}){let k=(0,MR.default)(yu({value:i,originalValue:u,label:o,path:I.path||s},m,I.params),T),D=new gu.default(gu.default.formatError(I.message||f,k),i,k.path,I.type||d);return D.params=k,D}let S=yu({path:s,parent:g,type:d,createError:_,resolve:T,options:a,originalValue:u},l);if(!c){try{Promise.resolve(p.call(S,i,S)).then(I=>{gu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let x;try{var E;if(x=p.call(S,i,S),typeof((E=x)==null?void 0:E.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}gu.default.isError(x)?n(x):x?n(null,x):n(_())}return e.OPTIONS=t,e}});var Td=j(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.getIn=Jg;Hs.default=void 0;var GR=qs(),VR=t=>t.substr(0,t.length-1).substr(1);function Jg(t,e,r,n=r){let i,s,o;return e?((0,GR.forEach)(e,(a,u,c)=>{let l=u?VR(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 $R=(t,e,r,n)=>Jg(t,e,r,n).schema,WR=$R;Hs.default=WR});var Zg=j(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var zg=qR(Nn());function qR(t){return t&&t.__esModule?t:{default:t}}var Ad=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){zg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){zg.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}};Eu.default=Ad});var ir=j(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.default=void 0;var Xg=nr(vg()),vi=rr(),QR=nr($g()),ey=nr(mu()),Tu=nr(Yg()),ty=nr(Ws()),jR=nr(Nn()),HR=Td(),KR=nr(ud()),ry=nr(Cn()),ny=nr(Zg());function nr(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 bt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new ny.default,this._blacklist=new ny.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(vi.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,Xg.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,ty.default)(e),o=(0,ty.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 g_=Object.create;var No=Object.defineProperty;var y_=Object.getOwnPropertyDescriptor;var T_=Object.getOwnPropertyNames;var A_=Object.getPrototypeOf,S_=Object.prototype.hasOwnProperty;var G=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)No(t,r,{get:e[r],enumerable:!0})},Im=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of T_(e))!S_.call(t,i)&&i!==r&&No(t,i,{get:()=>e[i],enumerable:!(n=y_(e,i))||n.enumerable});return t};var k=(t,e,r)=>(r=t!=null?g_(A_(t)):{},Im(e||!t||!t.__esModule?No(r,"default",{value:t,enumerable:!0}):r,t)),__=t=>Im(No({},"__esModule",{value:!0}),t);var Um=G((Dc,Rc)=>{"use strict";(function(t,e){typeof Dc=="object"&&typeof Rc<"u"?Rc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Dc,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",f="date",m="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,E=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(F){var U=["th","st","nd","rd"],x=F%100;return"["+F+(U[(x-20)%10]||U[x]||U[0])+"]"}},T=function(F,U,x){var $=String(F);return!$||$.length>=U?F:""+Array(U+1-$.length).join(x)+F},_={s:T,z:function(F){var U=-F.utcOffset(),x=Math.abs(U),$=Math.floor(x/60),O=x%60;return(U<=0?"+":"-")+T($,2,"0")+":"+T(O,2,"0")},m:function F(U,x){if(U.date()<x.date())return-F(x,U);var $=12*(x.year()-U.year())+(x.month()-U.month()),O=U.clone().add($,c),W=x-O<0,B=U.clone().add($+(W?-1:1),c);return+(-($+(x-O)/(W?O-B:B-O))||0)},a:function(F){return F<0?Math.ceil(F)||0:Math.floor(F)},p:function(F){return{M:c,y:d,w:u,d:a,D:f,h:o,m:s,s:i,ms:n,Q:l}[F]||String(F||"").toLowerCase().replace(/s$/,"")},u:function(F){return F===void 0}},S="en",w={};w[S]=g;var y="$isDayjsObject",I=function(F){return F instanceof j||!(!F||!F[y])},M=function F(U,x,$){var O;if(!U)return S;if(typeof U=="string"){var W=U.toLowerCase();w[W]&&(O=W),x&&(w[W]=x,O=W);var B=U.split("-");if(!O&&B.length>1)return F(B[0])}else{var z=U.name;w[z]=U,O=z}return!$&&O&&(S=O),O||!$&&S},v=function(F,U){if(I(F))return F.clone();var x=typeof U=="object"?U:{};return x.date=F,x.args=arguments,new j(x)},L=_;L.l=M,L.i=I,L.w=function(F,U){return v(F,{locale:U.$L,utc:U.$u,x:U.$x,$offset:U.$offset})};var j=function(){function F(x){this.$L=M(x.locale,null,!0),this.parse(x),this.$x=this.$x||x.x||{},this[y]=!0}var U=F.prototype;return U.parse=function(x){this.$d=function($){var O=$.date,W=$.utc;if(O===null)return new Date(NaN);if(L.u(O))return new Date;if(O instanceof Date)return new Date(O);if(typeof O=="string"&&!/Z$/i.test(O)){var B=O.match(p);if(B){var z=B[2]-1||0,le=(B[7]||"0").substring(0,3);return W?new Date(Date.UTC(B[1],z,B[3]||1,B[4]||0,B[5]||0,B[6]||0,le)):new Date(B[1],z,B[3]||1,B[4]||0,B[5]||0,B[6]||0,le)}}return new Date(O)}(x),this.init()},U.init=function(){var x=this.$d;this.$y=x.getFullYear(),this.$M=x.getMonth(),this.$D=x.getDate(),this.$W=x.getDay(),this.$H=x.getHours(),this.$m=x.getMinutes(),this.$s=x.getSeconds(),this.$ms=x.getMilliseconds()},U.$utils=function(){return L},U.isValid=function(){return this.$d.toString()!==m},U.isSame=function(x,$){var O=v(x);return this.startOf($)<=O&&O<=this.endOf($)},U.isAfter=function(x,$){return v(x)<this.startOf($)},U.isBefore=function(x,$){return this.endOf($)<v(x)},U.$g=function(x,$,O){return L.u(x)?this[$]:this.set(O,x)},U.unix=function(){return Math.floor(this.valueOf()/1e3)},U.valueOf=function(){return this.$d.getTime()},U.startOf=function(x,$){var O=this,W=!!L.u($)||$,B=L.p(x),z=function(Pr,xe){var zt=L.w(O.$u?Date.UTC(O.$y,xe,Pr):new Date(O.$y,xe,Pr),O);return W?zt:zt.endOf(a)},le=function(Pr,xe){return L.w(O.toDate()[Pr].apply(O.toDate("s"),(W?[0,0,0,0]:[23,59,59,999]).slice(xe)),O)},ge=this.$W,Oe=this.$M,Qe=this.$D,q="set"+(this.$u?"UTC":"");switch(B){case d:return W?z(1,0):z(31,11);case c:return W?z(1,Oe):z(0,Oe+1);case u:var vr=this.$locale().weekStart||0,Ti=(ge<vr?ge+7:ge)-vr;return z(W?Qe-Ti:Qe+(6-Ti),Oe);case a:case f:return le(q+"Hours",0);case o:return le(q+"Minutes",1);case s:return le(q+"Seconds",2);case i:return le(q+"Milliseconds",3);default:return this.clone()}},U.endOf=function(x){return this.startOf(x,!1)},U.$set=function(x,$){var O,W=L.p(x),B="set"+(this.$u?"UTC":""),z=(O={},O[a]=B+"Date",O[f]=B+"Date",O[c]=B+"Month",O[d]=B+"FullYear",O[o]=B+"Hours",O[s]=B+"Minutes",O[i]=B+"Seconds",O[n]=B+"Milliseconds",O)[W],le=W===a?this.$D+($-this.$W):$;if(W===c||W===d){var ge=this.clone().set(f,1);ge.$d[z](le),ge.init(),this.$d=ge.set(f,Math.min(this.$D,ge.daysInMonth())).$d}else z&&this.$d[z](le);return this.init(),this},U.set=function(x,$){return this.clone().$set(x,$)},U.get=function(x){return this[L.p(x)]()},U.add=function(x,$){var O,W=this;x=Number(x);var B=L.p($),z=function(Oe){var Qe=v(W);return L.w(Qe.date(Qe.date()+Math.round(Oe*x)),W)};if(B===c)return this.set(c,this.$M+x);if(B===d)return this.set(d,this.$y+x);if(B===a)return z(1);if(B===u)return z(7);var le=(O={},O[s]=e,O[o]=r,O[i]=t,O)[B]||1,ge=this.$d.getTime()+x*le;return L.w(ge,this)},U.subtract=function(x,$){return this.add(-1*x,$)},U.format=function(x){var $=this,O=this.$locale();if(!this.isValid())return O.invalidDate||m;var W=x||"YYYY-MM-DDTHH:mm:ssZ",B=L.z(this),z=this.$H,le=this.$m,ge=this.$M,Oe=O.weekdays,Qe=O.months,q=O.meridiem,vr=function(xe,zt,Ai,Po){return xe&&(xe[zt]||xe($,W))||Ai[zt].slice(0,Po)},Ti=function(xe){return L.s(z%12||12,xe,"0")},Pr=q||function(xe,zt,Ai){var Po=xe<12?"AM":"PM";return Ai?Po.toLowerCase():Po};return W.replace(E,function(xe,zt){return zt||function(Ai){switch(Ai){case"YY":return String($.$y).slice(-2);case"YYYY":return L.s($.$y,4,"0");case"M":return ge+1;case"MM":return L.s(ge+1,2,"0");case"MMM":return vr(O.monthsShort,ge,Qe,3);case"MMMM":return vr(Qe,ge);case"D":return $.$D;case"DD":return L.s($.$D,2,"0");case"d":return String($.$W);case"dd":return vr(O.weekdaysMin,$.$W,Oe,2);case"ddd":return vr(O.weekdaysShort,$.$W,Oe,3);case"dddd":return Oe[$.$W];case"H":return String(z);case"HH":return L.s(z,2,"0");case"h":return Ti(1);case"hh":return Ti(2);case"a":return Pr(z,le,!0);case"A":return Pr(z,le,!1);case"m":return String(le);case"mm":return L.s(le,2,"0");case"s":return String($.$s);case"ss":return L.s($.$s,2,"0");case"SSS":return L.s($.$ms,3,"0");case"Z":return B}return null}(xe)||B.replace(":","")})},U.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},U.diff=function(x,$,O){var W,B=this,z=L.p($),le=v(x),ge=(le.utcOffset()-this.utcOffset())*e,Oe=this-le,Qe=function(){return L.m(B,le)};switch(z){case d:W=Qe()/12;break;case c:W=Qe();break;case l:W=Qe()/3;break;case u:W=(Oe-ge)/6048e5;break;case a:W=(Oe-ge)/864e5;break;case o:W=Oe/r;break;case s:W=Oe/e;break;case i:W=Oe/t;break;default:W=Oe}return O?W:L.a(W)},U.daysInMonth=function(){return this.endOf(c).$D},U.$locale=function(){return w[this.$L]},U.locale=function(x,$){if(!x)return this.$L;var O=this.clone(),W=M(x,$,!0);return W&&(O.$L=W),O},U.clone=function(){return L.w(this.$d,this)},U.toDate=function(){return new Date(this.valueOf())},U.toJSON=function(){return this.isValid()?this.toISOString():null},U.toISOString=function(){return this.$d.toISOString()},U.toString=function(){return this.$d.toUTCString()},F}(),Dt=j.prototype;return v.prototype=Dt,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",f]].forEach(function(F){Dt[F[1]]=function(U){return this.$g(U,F[0],F[1])}}),v.extend=function(F,U){return F.$i||(F(U,j,v),F.$i=!0),v},v.locale=M,v.isDayjs=I,v.unix=function(F){return v(1e3*F)},v.en=w[S],v.Ls=w,v.p={},v})});var nt=G(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.Err=ve.Valid=ve.err=ve.valid=void 0;var G_=t=>new Wo(t);ve.valid=G_;var W_=t=>new qo(t);ve.err=W_;var Wo=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,ve.valid)(e(this.value))}mapErr(e){return(0,ve.valid)(this.value)}};ve.Valid=Wo;var qo=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,ve.err)(this.error)}mapErr(e){return(0,ve.err)(e(this.error))}};ve.Err=qo});var it=G(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0})});var er=G(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});Tt();var H=nt();it();var q_=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Q_=["sun","mon","tue","wed","thu","fri","sat"],K_=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Oi=(t,e,r)=>{if(e==="months"&&r.useAliases&&q_.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Q_.indexOf(t.toLowerCase())!==-1)return(0,H.valid)(!0);let n=Number(t);if(isNaN(n))return(0,H.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,H.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,H.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,H.valid)(!0)},j_=(t,e,r)=>{if(t==="*")return K_(e,r)?(0,H.valid)(!0):(0,H.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,H.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,H.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,H.valid)(!0):Oi(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,H.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,H.valid)(!0):Oi(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,H.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,H.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,H.err)("Number of occurrence of the day of the week cannot be greater than 5."):Oi(n,e,r)}return Oi(t,e,r)},$m=(t,e,r,n)=>t==="*"?(0,H.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,H.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,H.valid)(!0):Oi(t,e,r),Y_=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,H.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return j_(n[0],e,r);if(n.length===2){let i=$m(n[0],e,r,0),s=$m(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,H.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,H.valid)(!0)}return(0,H.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},H_=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,H.err)(`List element '${t}' is not valid. (More than one '/')`);let i=Y_(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,H.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,H.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,H.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,H.valid)(!0)},z_=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,H.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,H.valid)(!0):(0,H.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,H.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(H_(o,e,r))}),i.every(o=>o.isValid()))return(0,H.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,H.err)(s)};vc.default=z_});var Vm=G(wi=>{"use strict";var J_=wi&&wi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wi,"__esModule",{value:!0});Tt();var Z_=nt(),X_=J_(er());it();var eI=(t,e)=>{if(!t.seconds)return(0,Z_.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,X_.default)(r,"seconds",e)};wi.default=eI});var Gm=G(Di=>{"use strict";var tI=Di&&Di.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Di,"__esModule",{value:!0});Tt();var rI=nt(),nI=tI(er());it();var iI=(t,e)=>{if(!t.minutes)return(0,rI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,nI.default)(r,"minutes",e)};Di.default=iI});var Wm=G(Ri=>{"use strict";var sI=Ri&&Ri.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ri,"__esModule",{value:!0});Tt();var oI=nt(),aI=sI(er());it();var uI=(t,e)=>{if(!t.hours)return(0,oI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,aI.default)(r,"hours",e)};Ri.default=uI});var qm=G(Ci=>{"use strict";var cI=Ci&&Ci.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ci,"__esModule",{value:!0});Tt();var bi=nt(),lI=cI(er());it();var dI=(t,e)=>{if(!t.daysOfMonth)return(0,bi.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,bi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,bi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,bi.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,bi.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,lI.default)(r,"daysOfMonth",e)};Ci.default=dI});var Qm=G(xi=>{"use strict";var fI=xi&&xi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xi,"__esModule",{value:!0});Tt();var pI=nt(),mI=fI(er());it();var hI=(t,e)=>{if(!t.months)return(0,pI.err)(["months field is undefined."]);let{months:r}=t;return(0,mI.default)(r,"months",e)};xi.default=hI});var Km=G(Pi=>{"use strict";var EI=Pi&&Pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pi,"__esModule",{value:!0});Tt();var vi=nt(),gI=EI(er());it();var yI=(t,e)=>{if(!t.daysOfWeek)return(0,vi.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,vi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,vi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,vi.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,vi.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,gI.default)(r,"daysOfWeek",e)};Pi.default=yI});var jm=G(Ni=>{"use strict";var TI=Ni&&Ni.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ni,"__esModule",{value:!0});Tt();var AI=nt(),SI=TI(er());it();var _I=(t,e)=>{if(!t.years)return(0,AI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,SI.default)(r,"years",e)};Ni.default=_I});var Jm=G((AM,zm)=>{"use strict";var Pc;try{Pc=Map}catch{}var Nc;try{Nc=Set}catch{}function Ym(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(Hm);if(Pc&&t instanceof Pc)return new Map(Array.from(t.entries()));if(Nc&&t instanceof Nc)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]:Ym(t[i],e,r)}return n}return t}function Hm(t){return Ym(t,[],[])}zm.exports=Hm});var Ui=G(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Uc.default=CI;var II=Object.prototype.toString,OI=Error.prototype.toString,wI=RegExp.prototype.toString,DI=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",RI=/^Symbol\((.*)\)(.*)$/;function bI(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Zm(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return bI(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return DI.call(t).replace(RI,"Symbol($1)");let n=II.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+OI.call(t)+"]":n==="RegExp"?wI.call(t):null}function CI(t,e){let r=Zm(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Zm(this[n],e);return s!==null?s:i},2)}});var bt=G(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.default=ye.array=ye.object=ye.boolean=ye.date=ye.number=ye.string=ye.mixed=void 0;var Xm=xI(Ui());function xI(t){return t&&t.__esModule?t:{default:t}}var eh={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,Xm.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Xm.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"};ye.mixed=eh;var th={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};ye.string=th;var rh={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"};ye.number=rh;var nh={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};ye.date=nh;var ih={isValue:"${path} field must be ${value}"};ye.boolean=ih;var sh={noUnknown:"${path} field has unspecified keys: ${unknown}"};ye.object=sh;var oh={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"};ye.array=oh;var vI=Object.assign(Object.create(null),{mixed:eh,string:th,number:rh,date:nh,object:sh,array:oh,boolean:ih});ye.default=vI});var wn=G(Qo=>{"use strict";Object.defineProperty(Qo,"__esModule",{value:!0});Qo.default=void 0;var PI=t=>t&&t.__isYupSchema__;Qo.default=PI});var uh=G(Ko=>{"use strict";Object.defineProperty(Ko,"__esModule",{value:!0});Ko.default=void 0;var NI=ah(require("lodash/has")),UI=ah(wn());function ah(t){return t&&t.__esModule?t:{default:t}}var Lc=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,NI.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,UI.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},LI=Lc;Ko.default=LI});var kc=G(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});Mc.default=MI;function MI(t){return t==null?[]:[].concat(t)}});var Ur=G(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.default=void 0;var kI=ch(Ui()),FI=ch(kc());function ch(t){return t&&t.__esModule?t:{default:t}}function Fc(){return Fc=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},Fc.apply(this,arguments)}var BI=/\$\{\s*(\w+)\s*\}/g,Bc=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Fc({},r,{path:n})),typeof e=="string"?e.replace(BI,(i,s)=>(0,kI.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,FI.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)}};jo.default=Bc});var Yo=G(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});Vc.default=GI;var $c=$I(Ur());function $I(t){return t&&t.__esModule?t:{default:t}}var VI=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function GI(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=VI(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new $c.default(o,s,u)):c(null,s);for(let f=0;f<n.length;f++){let m=n[f];m(i,function(E){if(E){if(!$c.default.isError(E))return c(E,s);if(r)return E.value=s,c(E,s);d.push(E)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new $c.default(o,s,u),s);return}c(null,s)}})}}});var Li=G((bM,mh)=>{"use strict";function Lr(t){this._maxSize=t,this.clear()}Lr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Lr.prototype.get=function(t){return this._values[t]};Lr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var WI=/[^.^\]^[]+|(?=\[\]|\.\.)/g,ph=/^\d+$/,qI=/^\d/,QI=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,KI=/^\s*(['"]?)(.*?)(\1)\s*$/,qc=512,lh=new Lr(qc),dh=new Lr(qc),fh=new Lr(qc);mh.exports={Cache:Lr,split:Wc,normalizePath:Gc,setter:function(t){var e=Gc(t);return dh.get(t)||dh.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=Gc(t);return fh.get(t)||fh.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+(Qc(r)||ph.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){jI(Array.isArray(t)?t:Wc(t),e,r)}};function Gc(t){return lh.get(t)||lh.set(t,Wc(t).map(function(e){return e.replace(KI,"$2")}))}function Wc(t){return t.match(WI)||[""]}function jI(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(zI(i)&&(i='"'+i+'"'),a=Qc(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Qc(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function YI(t){return t.match(qI)&&!t.match(ph)}function HI(t){return QI.test(t)}function zI(t){return!Qc(t)&&(YI(t)||HI(t))}});var Mr=G(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.create=ZI;ki.default=void 0;var JI=Li(),Ho={context:"$",value:"."};function ZI(t,e){return new Mi(t,e)}var Mi=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]===Ho.context,this.isValue=this.key[0]===Ho.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?Ho.context:this.isValue?Ho.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,JI.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};ki.default=Mi;Mi.prototype.__isYupRef=!0});var hh=G(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.default=rO;var XI=Kc(require("lodash/mapValues")),zo=Kc(Ur()),eO=Kc(Mr());function Kc(t){return t&&t.__esModule?t:{default:t}}function Jo(){return Jo=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},Jo.apply(this,arguments)}function tO(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 rO(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=tO(r,["value","path","label","options","originalValue","sync"]),{name:d,test:f,params:m,message:p}=t,{parent:E,context:g}=a;function T(I){return eO.default.isRef(I)?I.getValue(i,E,g):I}function _(I={}){let M=(0,XI.default)(Jo({value:i,originalValue:u,label:o,path:I.path||s},m,I.params),T),v=new zo.default(zo.default.formatError(I.message||p,M),i,M.path,I.type||d);return v.params=M,v}let S=Jo({path:s,parent:E,type:d,createError:_,resolve:T,options:a,originalValue:u},l);if(!c){try{Promise.resolve(f.call(S,i,S)).then(I=>{zo.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let w;try{var y;if(w=f.call(S,i,S),typeof((y=w)==null?void 0:y.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}zo.default.isError(w)?n(w):w?n(null,w):n(_())}return e.OPTIONS=t,e}});var Yc=G(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});Fi.getIn=Eh;Fi.default=void 0;var nO=Li(),iO=t=>t.substr(0,t.length-1).substr(1);function Eh(t,e,r,n=r){let i,s,o;return e?((0,nO.forEach)(e,(a,u,c)=>{let l=u?iO(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 sO=(t,e,r,n)=>Eh(t,e,r,n).schema,oO=sO;Fi.default=oO});var yh=G(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.default=void 0;var gh=aO(Mr());function aO(t){return t&&t.__esModule?t:{default:t}}var Hc=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){gh.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){gh.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}};Zo.default=Hc});var xt=G(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.default=void 0;var Th=Ct(Jm()),Dn=bt(),uO=Ct(uh()),Ah=Ct(Yo()),Xo=Ct(hh()),Sh=Ct(Ui()),cO=Ct(Mr()),lO=Yc(),dO=Ct(kc()),_h=Ct(Ur()),Ih=Ct(yh());function Ct(t){return t&&t.__esModule?t:{default:t}}function Ke(){return Ke=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},Ke.apply(this,arguments)}var st=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Ih.default,this._blacklist=new Ih.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Dn.mixed.notType)}),this.type=e?.type||"mixed",this.spec=Ke({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=Ke({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Th.default)(Ke({},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=Ke({},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(Ke({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Sh.default)(e),o=(0,Sh.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},p=[];this._typeError&&p.push(this._typeError),this._whitelistError&&p.push(this._whitelistError),this._blacklistError&&p.push(this._blacklistError),(0,ey.default)({args:d,value:l,path:s,sync:i,tests:p,endEarly:c},m=>{if(m)return void n(m,l);(0,ey.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(ry.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(ry.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Xg.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=vi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=vi.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=vi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Tu.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 jR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new QR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Tu.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=vi.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,Tu.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=vi.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,Tu.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)}}};Au.default=bt;bt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])bt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,HR.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},n,{parent:i,path:e}))};for(let t of["equals","is"])bt.prototype[t]=bt.prototype.oneOf;for(let t of["not","nope"])bt.prototype[t]=bt.prototype.notOneOf;bt.prototype.optional=bt.prototype.notRequired});var sy=j(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=iy;Ks.default=void 0;var YR=JR(ir());function JR(t){return t&&t.__esModule?t:{default:t}}var Sd=YR.default,zR=Sd;Ks.default=zR;function iy(){return new Sd}iy.prototype=Sd.prototype});var Ni=j(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.default=void 0;var ZR=t=>t==null;Su.default=ZR});var ly=j(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=cy;Js.default=void 0;var XR=uy(ir()),oy=rr(),ay=uy(Ni());function uy(t){return t&&t.__esModule?t:{default:t}}function cy(){return new Ys}var Ys=class extends XR.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=oy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,ay.default)(r)||r===!0}})}isFalse(e=oy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,ay.default)(r)||r===!1}})}};Js.default=Ys;cy.prototype=Ys.prototype});var fy=j(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=py;Zs.default=void 0;var Qt=rr(),sr=dy(Ni()),ew=dy(ir());function dy(t){return t&&t.__esModule?t:{default:t}}var tw=/^((([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,rw=/^((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,nw=/^(?:[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,iw=t=>(0,sr.default)(t)||t===t.trim(),sw={}.toString();function py(){return new zs}var zs=class extends ew.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===sw?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,sr.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,sr.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,sr.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,sr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Qt.string.email){return this.matches(tw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Qt.string.url){return this.matches(rw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Qt.string.uuid){return this.matches(nw,{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:iw})}lowercase(e=Qt.string.lowercase){return this.transform(r=>(0,sr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,sr.default)(r)||r===r.toLowerCase()})}uppercase(e=Qt.string.uppercase){return this.transform(r=>(0,sr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,sr.default)(r)||r===r.toUpperCase()})}};Zs.default=zs;py.prototype=zs.prototype});var gy=j(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=hy;eo.default=void 0;var Pn=rr(),Ln=my(Ni()),ow=my(ir());function my(t){return t&&t.__esModule?t:{default:t}}var aw=t=>t!=+t;function hy(){return new Xs}var Xs=class extends ow.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"&&!aw(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))}};eo.default=Xs;hy.prototype=Xs.prototype});var yy=j(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.default=cw;var uw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function cw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=uw.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 Ay=j(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Od;to.default=void 0;var lw=_u(yy()),Ey=rr(),Ty=_u(Ni()),dw=_u(Nn()),pw=_u(ir());function _u(t){return t&&t.__esModule?t:{default:t}}var Id=new Date(""),fw=t=>Object.prototype.toString.call(t)==="[object Date]";function Od(){return new Pi}var Pi=class extends pw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,lw.default)(e),isNaN(e)?Id:new Date(e))})})}_typeCheck(e){return fw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(dw.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=Ey.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Ty.default)(i)||i>=this.resolve(n)}})}max(e,r=Ey.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Ty.default)(i)||i<=this.resolve(n)}})}};to.default=Pi;Pi.INVALID_DATE=Id;Od.prototype=Pi.prototype;Od.INVALID_DATE=Id});var _y=j((KQ,xd)=>{"use strict";xd.exports=function(t){return Sy(mw(t),t)};xd.exports.array=Sy;function Sy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=hw(e),a=gw(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 p;try{p=", node was:"+JSON.stringify(c)}catch{p=""}throw new Error("Cyclic dependency"+p)}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 m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){d.add(c);do{var f=m[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function mw(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 hw(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 gw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Iy=j(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});Rd.default=_w;var yw=Iu(require("lodash/has")),Ew=Iu(_y()),Tw=qs(),Aw=Iu(Nn()),Sw=Iu(Ci());function Iu(t){return t&&t.__esModule?t:{default:t}}function _w(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Tw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,yw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Aw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Sw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Ew.default.array(n,r).reverse()}});var xy=j(wd=>{"use strict";Object.defineProperty(wd,"__esModule",{value:!0});wd.default=Iw;function Oy(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 Iw(t){return(e,r)=>Oy(t,e)-Oy(t,r)}});var Ny=j(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=vy;no.default=void 0;var Ry=jt(require("lodash/has")),wy=jt(require("lodash/snakeCase")),Ow=jt(require("lodash/camelCase")),xw=jt(require("lodash/mapKeys")),Rw=jt(require("lodash/mapValues")),ww=qs(),by=rr(),bw=jt(Iy()),Cy=jt(xy()),Dw=jt(mu()),Cw=jt(Cn()),bd=jt(ir());function jt(t){return t&&t.__esModule?t:{default:t}}function Li(){return Li=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},Li.apply(this,arguments)}var Dy=t=>Object.prototype.toString.call(t)==="[object Object]";function vw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Nw=(0,Cy.default)([]),ro=class extends bd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Nw,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 Dy(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=Li({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let p=s[d],m=(0,Ry.default)(i,d);if(p){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,p=p.resolve({value:g,context:r.context,parent:u});let y="spec"in p?p.spec:void 0,T=y?.strict;if(y?.strip){l=l||d in i;continue}f=!r.__validating||!T?p.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}else m&&!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(!Cw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!Dy(d)){n(i[0]||null,d);return}a=a||d;let p=this._nodes.map(m=>(f,g)=>{let y=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(d[m],Li({},r,{path:y,from:o,strict:!0,parent:d,originalValue:a[m]}),g);return}g(null)});(0,Dw.default)({sync:s,tests:p,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Li({},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 bd.default&&s instanceof bd.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,Cy.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,bw.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,ww.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Ry.default)(s,e)&&(o=Li({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=by.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=vw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=by.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,xw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Ow.default)}snakeCase(){return this.transformKeys(wy.default)}constantCase(){return this.transformKeys(e=>(0,wy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Rw.default)(this.fields,r=>r.describe()),e}};no.default=ro;function vy(t){return new ro(t)}vy.prototype=ro.prototype});var Ly=j(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Py;so.default=void 0;var Dd=Ui(Ni()),Pw=Ui(Ci()),Lw=Ui(Ws()),Cd=rr(),Uw=Ui(mu()),Mw=Ui(Cn()),Fw=Ui(ir());function Ui(t){return t&&t.__esModule?t:{default:t}}function Ou(){return Ou=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},Ou.apply(this,arguments)}function Py(t){return new io(t)}var io=class extends Fw.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,Ou({},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,p=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,f)=>{if(m){if(!Mw.default.isError(m)||l)return void n(m,f);o.push(m)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}p=p||f;let g=new Array(f.length);for(let y=0;y<f.length;y++){let T=f[y],_=`${r.path||""}[${y}]`,S=Ou({},r,{path:_,strict:!0,parent:f,index:y,originalValue:p[y]});g[y]=(x,E)=>c.validate(T,S,E)}(0,Uw.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,Pw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Lw.default)(e));return r.innerType=e,r}length(e,r=Cd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Dd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Cd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Dd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Cd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Dd.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)}};so.default=io;Py.prototype=io.prototype});var Uy=j(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=Gw;oo.default=void 0;var kw=Bw(Ci());function Bw(t){return t&&t.__esModule?t:{default:t}}function Gw(t){return new xu(t)}var xu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,kw.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=xu;oo.default=Vw});var My=j(vd=>{"use strict";Object.defineProperty(vd,"__esModule",{value:!0});vd.default=qw;var $w=Ww(rr());function Ww(t){return t&&t.__esModule?t:{default:t}}function qw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{$w.default[e][r]=t[e][r]})})}});var Pd=j(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.addMethod=zw;Object.defineProperty(me,"MixedSchema",{enumerable:!0,get:function(){return Fy.default}});Object.defineProperty(me,"mixed",{enumerable:!0,get:function(){return Fy.create}});Object.defineProperty(me,"BooleanSchema",{enumerable:!0,get:function(){return Nd.default}});Object.defineProperty(me,"bool",{enumerable:!0,get:function(){return Nd.create}});Object.defineProperty(me,"boolean",{enumerable:!0,get:function(){return Nd.create}});Object.defineProperty(me,"StringSchema",{enumerable:!0,get:function(){return ky.default}});Object.defineProperty(me,"string",{enumerable:!0,get:function(){return ky.create}});Object.defineProperty(me,"NumberSchema",{enumerable:!0,get:function(){return By.default}});Object.defineProperty(me,"number",{enumerable:!0,get:function(){return By.create}});Object.defineProperty(me,"DateSchema",{enumerable:!0,get:function(){return Gy.default}});Object.defineProperty(me,"date",{enumerable:!0,get:function(){return Gy.create}});Object.defineProperty(me,"ObjectSchema",{enumerable:!0,get:function(){return Vy.default}});Object.defineProperty(me,"object",{enumerable:!0,get:function(){return Vy.create}});Object.defineProperty(me,"ArraySchema",{enumerable:!0,get:function(){return $y.default}});Object.defineProperty(me,"array",{enumerable:!0,get:function(){return $y.create}});Object.defineProperty(me,"ref",{enumerable:!0,get:function(){return Qw.create}});Object.defineProperty(me,"lazy",{enumerable:!0,get:function(){return jw.create}});Object.defineProperty(me,"ValidationError",{enumerable:!0,get:function(){return Hw.default}});Object.defineProperty(me,"reach",{enumerable:!0,get:function(){return Kw.default}});Object.defineProperty(me,"isSchema",{enumerable:!0,get:function(){return Wy.default}});Object.defineProperty(me,"setLocale",{enumerable:!0,get:function(){return Yw.default}});Object.defineProperty(me,"BaseSchema",{enumerable:!0,get:function(){return Jw.default}});var Fy=Un(sy()),Nd=Un(ly()),ky=Un(fy()),By=Un(gy()),Gy=Un(Ay()),Vy=Un(Ny()),$y=Un(Ly()),Qw=Nn(),jw=Uy(),Hw=ao(Cn()),Kw=ao(Td()),Wy=ao(Ci()),Yw=ao(My()),Jw=ao(ir());function ao(t){return t&&t.__esModule?t:{default:t}}function qy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return qy=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=qy();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 zw(t,e,r){if(!t||!(0,Wy.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 Qy=j(Ud=>{"use strict";Object.defineProperty(Ud,"__esModule",{value:!0});var Ld=Md();Ud.default=()=>{(0,Ld.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,Ld.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,Ld.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 Md=j(Le=>{"use strict";var Zw=Le&&Le.__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]}),Xw=Le&&Le.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),eb=Le&&Le.__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)&&Zw(e,t,r);return Xw(e,t),e},tb=Le&&Le.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Le,"__esModule",{value:!0});Le.validateOptions=Le.registerOptionPreset=Le.getOptionPresets=Le.getOptionPreset=void 0;var b=eb(Pd());Pd();var uo=Rt(),rb=tb(Qy());wt();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}}},jy=b.object({presetId:b.string().required(),useSeconds:b.boolean().required(),useYears:b.boolean().required(),useAliases:b.boolean(),useBlankDay:b.boolean().required(),allowOnlyOneBlankDayField:b.boolean().required(),mustHaveBlankDayField:b.boolean(),useLastDayOfMonth:b.boolean(),useLastDayOfWeek:b.boolean(),useNearestWeekday:b.boolean(),useNthWeekdayOfMonth:b.boolean(),seconds:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),minutes:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),hours:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),daysOfMonth:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),months:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),daysOfWeek:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),years:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required()}).required(),nb=t=>Mn[t]?(0,uo.valid)(Mn[t]):(0,uo.err)(`Option preset '${t}' not found.`);Le.getOptionPreset=nb;var ib=()=>Mn;Le.getOptionPresets=ib;var sb=(t,e)=>{Mn[t]=jy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Le.registerOptionPreset=sb;var ob=t=>{var e,r,n,i,s,o,a,u,c,l,d,p,m,f,g,y,T,_,S,x;try{(0,rb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Mn[t.preset])return(0,uo.err)([`Option preset ${t.preset} does not exist.`]);E=Mn[t.preset]}else E=t.preset;else E=Mn.default;let I=Object.assign(Object.assign({presetId:E.presetId,preset:E},{useSeconds:E.useSeconds,useYears:E.useYears,useAliases:(e=E.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:E.useBlankDay,allowOnlyOneBlankDayField:E.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=E.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=E.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=E.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=E.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=E.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=E.seconds.lowerLimit)!==null&&a!==void 0?a:E.seconds.minValue,upperLimit:(u=E.seconds.upperLimit)!==null&&u!==void 0?u:E.seconds.maxValue},minutes:{lowerLimit:(c=E.minutes.lowerLimit)!==null&&c!==void 0?c:E.minutes.minValue,upperLimit:(l=E.minutes.upperLimit)!==null&&l!==void 0?l:E.minutes.maxValue},hours:{lowerLimit:(d=E.hours.lowerLimit)!==null&&d!==void 0?d:E.hours.minValue,upperLimit:(p=E.hours.upperLimit)!==null&&p!==void 0?p:E.hours.maxValue},daysOfMonth:{lowerLimit:(m=E.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:E.daysOfMonth.minValue,upperLimit:(f=E.daysOfMonth.upperLimit)!==null&&f!==void 0?f:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(y=E.months.upperLimit)!==null&&y!==void 0?y:E.months.maxValue},daysOfWeek:{lowerLimit:(T=E.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:E.daysOfWeek.minValue,upperLimit:(_=E.daysOfWeek.upperLimit)!==null&&_!==void 0?_:E.daysOfWeek.maxValue},years:{lowerLimit:(S=E.years.lowerLimit)!==null&&S!==void 0?S:E.years.minValue,upperLimit:(x=E.years.upperLimit)!==null&&x!==void 0?x:E.years.maxValue}}),t.override),D=b.object({presetId:b.string().required(),preset:jy.required(),useSeconds:b.boolean().required(),useYears:b.boolean().required(),useAliases:b.boolean(),useBlankDay:b.boolean().required(),allowOnlyOneBlankDayField:b.boolean().required(),mustHaveBlankDayField:b.boolean(),useLastDayOfMonth:b.boolean(),useLastDayOfWeek:b.boolean(),useNearestWeekday:b.boolean(),useNthWeekdayOfMonth:b.boolean(),seconds:b.object({lowerLimit:b.number().min(E.seconds.minValue).max(E.seconds.maxValue),upperLimit:b.number().min(E.seconds.minValue).max(E.seconds.maxValue)}).required(),minutes:b.object({lowerLimit:b.number().min(E.minutes.minValue).max(E.minutes.maxValue),upperLimit:b.number().min(E.minutes.minValue).max(E.minutes.maxValue)}).required(),hours:b.object({lowerLimit:b.number().min(E.hours.minValue).max(E.hours.maxValue),upperLimit:b.number().min(E.hours.minValue).max(E.hours.maxValue)}).required(),daysOfMonth:b.object({lowerLimit:b.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue),upperLimit:b.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue)}).required(),months:b.object({lowerLimit:b.number().min(E.months.minValue).max(E.months.maxValue),upperLimit:b.number().min(E.months.minValue).max(E.months.maxValue)}).required(),daysOfWeek:b.object({lowerLimit:b.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue),upperLimit:b.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue)}).required(),years:b.object({lowerLimit:b.number().min(E.years.minValue).max(E.years.maxValue),upperLimit:b.number().min(E.years.minValue).max(E.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,uo.valid)(D)}catch(E){return(0,uo.err)(E.errors)}};Le.validateOptions=ob});var qt=j((co,kd)=>{"use strict";var kn=co&&co.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(co,"__esModule",{value:!0});var Fn=Rt(),ab=kn(Sg()),ub=kn(_g()),cb=kn(Ig()),lb=kn(Og()),db=kn(xg()),pb=kn(Rg()),fb=kn(wg()),mb=Md();wt();var hb=(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)},Fd=(t,e={})=>{let r=(0,mb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=hb(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,ab.default)(s,n)),o.push((0,ub.default)(s,n)),o.push((0,cb.default)(s,n)),o.push((0,lb.default)(s,n)),o.push((0,db.default)(s,n)),o.push((0,pb.default)(s,n)),n.useYears&&o.push((0,fb.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)};co.default=Fd;kd.exports=Fd;kd.exports.default=Fd});var gT=j(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});var ar=class extends Error{},Hd=class extends ar{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Kd=class extends ar{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Yd=class extends ar{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Vn=class extends ar{},Nu=class extends ar{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends ar{},Ht=class extends ar{constructor(){super("Zone is an abstract class")}},v="numeric",vt="short",st="long",Pu={year:v,month:v,day:v},EE={year:v,month:vt,day:v},gb={year:v,month:vt,day:v,weekday:vt},TE={year:v,month:st,day:v},AE={year:v,month:st,day:v,weekday:st},SE={hour:v,minute:v},_E={hour:v,minute:v,second:v},IE={hour:v,minute:v,second:v,timeZoneName:vt},OE={hour:v,minute:v,second:v,timeZoneName:st},xE={hour:v,minute:v,hourCycle:"h23"},RE={hour:v,minute:v,second:v,hourCycle:"h23"},wE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:vt},bE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:st},DE={year:v,month:v,day:v,hour:v,minute:v},CE={year:v,month:v,day:v,hour:v,minute:v,second:v},vE={year:v,month:vt,day:v,hour:v,minute:v},NE={year:v,month:vt,day:v,hour:v,minute:v,second:v},yb={year:v,month:vt,day:v,weekday:vt,hour:v,minute:v},PE={year:v,month:st,day:v,hour:v,minute:v,timeZoneName:vt},LE={year:v,month:st,day:v,hour:v,minute:v,second:v,timeZoneName:vt},UE={year:v,month:st,day:v,weekday:st,hour:v,minute:v,timeZoneName:st},ME={year:v,month:st,day:v,weekday:st,hour:v,minute:v,second:v,timeZoneName:st},Mr=class{get type(){throw new Ht}get name(){throw new Ht}get ianaName(){return this.name}get isUniversal(){throw new Ht}offsetName(e,r){throw new Ht}formatOffset(e,r){throw new Ht}offset(e){throw new Ht}equals(e){throw new Ht}get isValid(){throw new Ht}},Bd=null,yo=class t extends Mr{static get instance(){return Bd===null&&(Bd=new t),Bd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return kE(e,r,n)}formatOffset(e,r){return go(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Cu={};function Eb(t){return Cu[t]||(Cu[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"})),Cu[t]}var Tb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Ab(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 Sb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Tb[s];s==="era"?n[a]=o:ae(a)||(n[a]=parseInt(o,10))}return n}var Ru={},ur=class t extends Mr{static create(e){return Ru[e]||(Ru[e]=new t(e)),Ru[e]}static resetCache(){Ru={},Cu={}}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 kE(e,r,n,this.name)}formatOffset(e,r){return go(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=Eb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Sb(n,r):Ab(n,r);a==="BC"&&(i=-Math.abs(i)+1);let p=ap({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,f=m%1e3;return m-=f>=0?f:1e3+f,(p-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Hy={};function _b(t,e={}){let r=JSON.stringify([t,e]),n=Hy[r];return n||(n=new Intl.ListFormat(t,e),Hy[r]=n),n}var Jd={};function zd(t,e={}){let r=JSON.stringify([t,e]),n=Jd[r];return n||(n=new Intl.DateTimeFormat(t,e),Jd[r]=n),n}var Zd={};function Ib(t,e={}){let r=JSON.stringify([t,e]),n=Zd[r];return n||(n=new Intl.NumberFormat(t,e),Zd[r]=n),n}var Xd={};function Ob(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Xd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Xd[i]=s),s}var mo=null;function xb(){return mo||(mo=new Intl.DateTimeFormat().resolvedOptions().locale,mo)}function Rb(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=zd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=zd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function wb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function bb(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function Db(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function wu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Cb(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 ep=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=Ib(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):op(e,3);return Re(r,this.padTo)}}},tp=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&&ur.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.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=zd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},rp=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&FE()&&(this.rtf=Ob(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):jb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Se=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":xb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){mo=null,Jd={},Zd={},Xd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Rb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=wb(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=Cb(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 wu(this,e,n,VE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=bb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return wu(this,e,n,qE,()=>{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]=Db(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return wu(this,void 0,e,()=>QE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return wu(this,e,r,jE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.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 ep(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new tp(e,this.intl,r)}relFormatter(e={}){return new rp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return _b(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}},Gd=null,ot=class t extends Mr{static get utcInstance(){return Gd===null&&(Gd=new t(0)),Gd}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(Bu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${go(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${go(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return go(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}},Lu=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(ae(t)||t===null)return e;if(t instanceof Mr)return t;if(vb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?yo.instance:r==="utc"||r==="gmt"?ot.utcInstance:ot.parseSpecifier(r)||ur.create(t)}else return Wn(t)?ot.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Lu(t)}var Ky=()=>Date.now(),Yy="system",Jy=null,zy=null,Zy=null,Xy=60,eE,Ee=class{static get now(){return Ky}static set now(e){Ky=e}static set defaultZone(e){Yy=e}static get defaultZone(){return Ur(Yy,yo.instance)}static get defaultLocale(){return Jy}static set defaultLocale(e){Jy=e}static get defaultNumberingSystem(){return zy}static set defaultNumberingSystem(e){zy=e}static get defaultOutputCalendar(){return Zy}static set defaultOutputCalendar(e){Zy=e}static get twoDigitCutoffYear(){return Xy}static set twoDigitCutoffYear(e){Xy=e%100}static get throwOnInvalid(){return eE}static set throwOnInvalid(e){eE=e}static resetCaches(){Se.resetCache(),ur.resetCache()}};function ae(t){return typeof t>"u"}function Wn(t){return typeof t=="number"}function ku(t){return typeof t=="number"&&t%1===0}function vb(t){return typeof t=="string"}function Nb(t){return Object.prototype.toString.call(t)==="[object Date]"}function FE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Pb(t){return Array.isArray(t)?t:[t]}function tE(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 Lb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Bi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function or(t,e,r){return ku(t)&&t>=e&&t<=r}function Ub(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(!(ae(t)||t===null||t===""))return parseInt(t,10)}function Bn(t){if(!(ae(t)||t===null||t===""))return parseFloat(t)}function sp(t){if(!(ae(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function op(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function Eo(t){return t%4===0&&(t%100!==0||t%400===0)}function ho(t){return Eo(t)?366:365}function Uu(t,e){let r=Ub(e-1,12)+1,n=t+(e-r)/12;return r===2?Eo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function ap(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 Mu(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 np(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function kE(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 Bu(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 Ye(`Invalid unit value ${t}`);return e}function Fu(t,e){let r={};for(let n in t)if(Bi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=BE(i)}return r}function go(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 Gu(t){return Lb(t,["hour","minute","second","millisecond"])}var Mb=["January","February","March","April","May","June","July","August","September","October","November","December"],GE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Fb=["J","F","M","A","M","J","J","A","S","O","N","D"];function VE(t){switch(t){case"narrow":return[...Fb];case"short":return[...GE];case"long":return[...Mb];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 $E=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],WE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],kb=["M","T","W","T","F","S","S"];function qE(t){switch(t){case"narrow":return[...kb];case"short":return[...WE];case"long":return[...$E];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var QE=["AM","PM"],Bb=["Before Christ","Anno Domini"],Gb=["BC","AD"],Vb=["B","A"];function jE(t){switch(t){case"narrow":return[...Vb];case"short":return[...Gb];case"long":return[...Bb];default:return null}}function $b(t){return QE[t.hour<12?0:1]}function Wb(t,e){return qE(e)[t.weekday-1]}function qb(t,e){return VE(e)[t.month-1]}function Qb(t,e){return jE(e)[t.year<0?0:1]}function jb(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 rE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Hb={D:Pu,DD:EE,DDD:TE,DDDD:AE,t:SE,tt:_E,ttt:IE,tttt:OE,T:xE,TT:RE,TTT:wE,TTTT:bE,f:DE,ff:vE,fff:PE,ffff:UE,F:CE,FF:NE,FFF:LE,FFFF:ME},nt=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 Hb[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=(m,f)=>this.loc.extract(e,m,f),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?$b(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,f)=>n?qb(e,m):s(f?{month:m}:{month:m,day:"numeric"},"month"),c=(m,f)=>n?Wb(e,m):s(f?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let f=t.macroTokenToFormatOpts(m);return f?this.formatWithSystemDefault(e,f):m},d=m=>n?Qb(e,m):s({era:m},"era"),p=m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return 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(m)}};return rE(t.parseFormat(r),p)}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 rE(s,i(a))}},it=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},HE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Gi(...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 $i(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 KE(...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 YE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Kb=`(?:${YE.source}?(?:\\[(${HE.source})\\])?)?`,up=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,JE=RegExp(`${up.source}${Kb}`),cp=RegExp(`(?:T${JE.source})?`),Yb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Jb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,zb=/(\d{4})-?(\d{3})/,Zb=KE("weekYear","weekNumber","weekDay"),Xb=KE("year","ordinal"),eD=/(\d{4})-(\d\d)-(\d\d)/,zE=RegExp(`${up.source} ?(?:${YE.source}|(${HE.source}))?`),tD=RegExp(`(?: ${zE.source})?`);function ki(t,e,r){let n=t[e];return ae(n)?r:Lr(n)}function rD(t,e){return[{year:ki(t,e),month:ki(t,e+1,1),day:ki(t,e+2,1)},null,e+3]}function Wi(t,e){return[{hours:ki(t,e,0),minutes:ki(t,e+1,0),seconds:ki(t,e+2,0),milliseconds:sp(t[e+3])},null,e+4]}function To(t,e){let r=!t[e]&&!t[e+1],n=Bu(t[e+1],t[e+2]),i=r?null:ot.instance(n);return[{},i,e+3]}function Ao(t,e){let r=t[e]?ur.create(t[e]):null;return[{},r,e+1]}var nD=RegExp(`^T?${up.source}$`),iD=/^-?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 sD(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",p=(m,f=!1)=>m!==void 0&&(f||m&&l)?-m:m;return[{years:p(Bn(r)),months:p(Bn(n)),weeks:p(Bn(i)),days:p(Bn(s)),hours:p(Bn(o)),minutes:p(Bn(a)),seconds:p(Bn(u),u==="-0"),milliseconds:p(sp(c),d)}]}var oD={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 lp(t,e,r,n,i,s,o){let a={year:e.length===2?np(Lr(e)):Lr(e),month:GE.indexOf(r)+1,day:Lr(n),hour:Lr(i),minute:Lr(s)};return o&&(a.second=Lr(o)),t&&(a.weekday=t.length>3?$E.indexOf(t)+1:WE.indexOf(t)+1),a}var aD=/^(?:(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 uD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,p=lp(e,i,n,r,s,o,a),m;return u?m=oD[u]:c?m=0:m=Bu(l,d),[p,new ot(m)]}function cD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var lD=/^(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$/,dD=/^(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$/,pD=/^(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 nE(t){let[,e,r,n,i,s,o,a]=t;return[lp(e,i,n,r,s,o,a),ot.utcInstance]}function fD(t){let[,e,r,n,i,s,o,a]=t;return[lp(e,a,r,n,i,s,o),ot.utcInstance]}var mD=Gi(Yb,cp),hD=Gi(Jb,cp),gD=Gi(zb,cp),yD=Gi(JE),ZE=Vi(rD,Wi,To,Ao),ED=Vi(Zb,Wi,To,Ao),TD=Vi(Xb,Wi,To,Ao),AD=Vi(Wi,To,Ao);function SD(t){return $i(t,[mD,ZE],[hD,ED],[gD,TD],[yD,AD])}function _D(t){return $i(cD(t),[aD,uD])}function ID(t){return $i(t,[lD,nE],[dD,nE],[pD,fD])}function OD(t){return $i(t,[iD,sD])}var xD=Vi(Wi);function RD(t){return $i(t,[nD,xD])}var wD=Gi(eD,tD),bD=Gi(zE),DD=Vi(Wi,To,Ao);function CD(t){return $i(t,[wD,ZE],[bD,DD])}var vD="Invalid Duration",XE={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}},ND={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},...XE},ht=146097/400,Mi=146097/4800,PD={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:Mi/7,days:Mi,hours:Mi*24,minutes:Mi*24*60,seconds:Mi*24*60*60,milliseconds:Mi*24*60*60*1e3},...XE},Gn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],LD=Gn.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 Ce(n)}function UD(t){return t<0?Math.floor(t):Math.ceil(t)}function eT(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?UD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function MD(t,e){LD.reduce((r,n)=>ae(e[n])?r:(r&&eT(t,e,r,e,n),n),null)}function FD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var Ce=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?PD:ND;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.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:Fu(e,t.normalizeUnit),loc:Se.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]=OD(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]=RD(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 it?e:new it(e,r);if(Ee.throwOnInvalid)throw new Yd(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 Nu(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?nt.create(this.loc,n).formatDurationFromString(this,e):vD}toHuman(e={}){let r=Gn.map(n=>{let i=this.values[n];return ae(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+=op(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)(Bi(r.values,i)||Bi(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]=BE(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,...Fu(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 MD(this.matrix,e),Pr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=FD(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 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;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)Gn.indexOf(c)>Gn.indexOf(o)&&eT(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 Gn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Fi="Invalid Interval";function kD(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 it?e:new it(e,r);if(Ee.throwOnInvalid)throw new Kd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=fo(e),i=fo(r),s=kD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=Ce.fromDurationLike(r),i=fo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Ce.fromDurationLike(r),i=fo(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=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=Ce.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=Ce.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(fo).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=Ce.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()})`:Fi}toLocaleString(e=Pu,r={}){return this.isValid?nt.create(this.s.loc.clone(r),e).formatInterval(this):Fi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Fi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Fi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Fi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Fi}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):Ce.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},$n=class{static hasDST(e=Ee.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ur.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||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:FE()}}};function iE(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(Ce.fromMillis(n).as("days"))}function BD(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=iE(u,c);return(l-l%7)/7}],["days",iE]],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 GD(t,e,r,n){let[i,s,o,a]=BD(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=Ce.fromObject(s,n);return c.length>0?Ce.fromMillis(u,n).shiftTo(...c).plus(l):l}var dp={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"},sE={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=dp.hanidec.replace(/[\[|\]]/g,"").split("");function $D(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(dp.hanidec)!==-1)e+=VD.indexOf(t[r]);else for(let i in sE){let[s,o]=sE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function Dt({numberingSystem:t},e=""){return new RegExp(`${dp[t||"latn"]}${e}`)}var WD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e($D(r))}}var qD=String.fromCharCode(160),tT=`[ ${qD}]`,rT=new RegExp(tT,"g");function QD(t){return t.replace(/\./g,"\\.?").replace(rT,tT)}function oE(t){return t.replace(/\./g,"").replace(rT," ").toLowerCase()}function Ct(t,e){return t===null?null:{regex:RegExp(t.map(QD).join("|")),deser:([r])=>t.findIndex(n=>oE(r)===oE(n))+e}}function aE(t,e){return{regex:t,deser:([,r,n])=>Bu(r,n),groups:e}}function Vd(t){return{regex:t,deser:([e])=>e}}function jD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function HD(t,e){let r=Dt(e),n=Dt(e,"{2}"),i=Dt(e,"{3}"),s=Dt(e,"{4}"),o=Dt(e,"{6}"),a=Dt(e,"{1,2}"),u=Dt(e,"{1,3}"),c=Dt(e,"{1,6}"),l=Dt(e,"{1,9}"),d=Dt(e,"{2,4}"),p=Dt(e,"{4,6}"),m=y=>({regex:RegExp(jD(y.val)),deser:([T])=>T,literal:!0}),g=(y=>{if(t.literal)return m(y);switch(y.val){case"G":return Ct(e.eras("short",!1),0);case"GG":return Ct(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(d,np);case"yyyy":return le(s);case"yyyyy":return le(p);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return Ct(e.months("short",!0,!1),1);case"MMMM":return Ct(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return Ct(e.months("short",!1,!1),1);case"LLLL":return Ct(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 Vd(l);case"uu":return Vd(a);case"uuu":return le(r);case"a":return Ct(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(d,np);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return Ct(e.weekdays("short",!1,!1),1);case"EEEE":return Ct(e.weekdays("long",!1,!1),1);case"ccc":return Ct(e.weekdays("short",!0,!1),1);case"cccc":return Ct(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return aE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return aE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Vd(/[a-z_+-/]{1,256}?/i);default:return m(y)}})(t)||{invalidReason:WD};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 YD(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 JD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function zD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Bi(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 ZD(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 ae(t.z)||(r=ur.create(t.z)),ae(t.Z)||(r||(r=new ot(t.Z)),n=t.Z),ae(t.q)||(t.M=(t.q-1)*3+1),ae(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),ae(t.u)||(t.S=sp(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var $d=null;function XD(){return $d||($d=_e.fromMillis(1555555555555)),$d}function eC(t,e){if(t.literal)return t;let r=nt.macroTokenToFormatOpts(t.val),n=sT(r,e);return n==null||n.includes(void 0)?t:n}function nT(t,e){return Array.prototype.concat(...t.map(r=>eC(r,e)))}function iT(t,e,r){let n=nT(nt.parseFormat(r),t),i=n.map(o=>HD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=JD(i),u=RegExp(o,"i"),[c,l]=zD(e,u,a),[d,p,m]=l?ZD(l):[null,null,void 0];if(Bi(l,"a")&&Bi(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:p,specificOffset:m}}}function tC(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=iT(t,e,r);return[n,i,s,o]}function sT(t,e){return t?nt.create(e,t).formatDateTimeParts(XD()).map(i=>YD(i,t)):null}var oT=[0,31,59,90,120,151,181,212,243,273,304,334],aT=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new it("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function uT(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 cT(t,e,r){return r+(Eo(t)?aT:oT)[e-1]}function lT(t,e){let r=Eo(t)?aT:oT,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function ip(t){let{year:e,month:r,day:n}=t,i=cT(e,r,n),s=uT(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Mu(a)):o>Mu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Gu(t)}}function uE(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=uT(e,1,4),s=ho(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=ho(a)):o>s?(a=e+1,o-=ho(e)):a=e;let{month:u,day:c}=lT(a,o);return{year:a,month:u,day:c,...Gu(t)}}function Wd(t){let{year:e,month:r,day:n}=t,i=cT(e,r,n);return{year:e,ordinal:i,...Gu(t)}}function cE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=lT(e,r);return{year:e,month:n,day:i,...Gu(t)}}function rC(t){let e=ku(t.weekYear),r=or(t.weekNumber,1,Mu(t.weekYear)),n=or(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function nC(t){let e=ku(t.year),r=or(t.ordinal,1,ho(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function dT(t){let e=ku(t.year),r=or(t.month,1,12),n=or(t.day,1,Uu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function pT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=or(e,0,23)||e===24&&r===0&&n===0&&i===0,o=or(r,0,59),a=or(n,0,59),u=or(i,0,999);return s?o?a?u?!1:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}var qd="Invalid DateTime",lE=864e13;function bu(t){return new it("unsupported zone",`the zone "${t.name}" is not supported`)}function Qd(t){return t.weekData===null&&(t.weekData=ip(t.c)),t.weekData}function lo(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function fT(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 dE(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 vu(t,e,r){return fT(ap(t),e,r)}function pE(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,Uu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Ce.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=ap(s),[u,c]=fT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function po(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new it("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Du(t,e,r=!0){return t.isValid?nt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function jd(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 fE(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 mT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},iC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},sC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},hT=["year","month","day","hour","minute","second","millisecond"],oC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],aC=["year","ordinal","hour","minute","second","millisecond"];function mE(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 Nu(t);return e}function hE(t,e){let r=Ur(e.zone,Ee.defaultZone),n=Se.fromObject(e),i=Ee.now(),s,o;if(ae(t.year))s=i;else{for(let c of hT)ae(t[c])&&(t[c]=mT[c]);let a=dT(t)||pT(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=vu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function gE(t,e,r){let n=ae(r.round)?!0:r.round,i=(o,a)=>(o=op(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 yE(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 _e=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new it("invalid input"):null)||(r.isValid?null:bu(r));this.ts=ae(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=dE(this.ts,a),n=Number.isNaN(i.year)?new it("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Se.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]=yE(arguments),[n,i,s,o,a,u,c]=r;return hE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=yE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=ot.utcInstance,hE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Nb(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:Se.fromObject(r)}):t.invalid(bu(i))}static fromMillis(e,r={}){if(Wn(e))return e<-lE||e>lE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ur(r.zone,Ee.defaultZone),loc:Se.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:Se.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(bu(n));let i=Ee.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Fu(e,mE),a=!ae(o.ordinal),u=!ae(o.year),c=!ae(o.month)||!ae(o.day),l=u||c,d=o.weekYear||o.weekNumber,p=Se.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 m=d||o.weekday&&!l,f,g,y=dE(i,s);m?(f=oC,g=iC,y=ip(y)):a?(f=aC,g=sC,y=Wd(y)):(f=hT,g=mT);let T=!1;for(let D of f){let B=o[D];ae(B)?T?o[D]=g[D]:o[D]=y[D]:T=!0}let _=m?rC(o):a?nC(o):dT(o),S=_||pT(o);if(S)return t.invalid(S);let x=m?uE(o):a?cE(o):o,[E,I]=vu(x,s,n),k=new t({ts:E,zone:n,o:I,loc:p});return o.weekday&&l&&e.weekday!==k.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${k.toISO()}`):k}static fromISO(e,r={}){let[n,i]=SD(e);return po(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=_D(e);return po(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=ID(e);return po(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ae(e)||ae(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=tC(o,e,r);return l?t.invalid(l):po(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]=CD(e);return po(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 it?e:new it(e,r);if(Ee.throwOnInvalid)throw new Hd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=sT(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return nT(nt.parseFormat(e),Se.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?Qd(this).weekYear:NaN}get weekNumber(){return this.isValid?Qd(this).weekNumber:NaN}get weekday(){return this.isValid?Qd(this).weekday:NaN}get ordinal(){return this.isValid?Wd(this.c).ordinal:NaN}get monthShort(){return this.isValid?$n.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$n.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$n.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$n.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 Eo(this.year)}get daysInMonth(){return Uu(this.year,this.month)}get daysInYear(){return this.isValid?ho(this.year):NaN}get weeksInWeekYear(){return this.isValid?Mu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=nt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(ot.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]=vu(o,s,e)}return lo(this,{ts:i,zone:e})}else return t.invalid(bu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return lo(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Fu(e,mE),n=!ae(r.weekYear)||!ae(r.weekNumber)||!ae(r.weekday),i=!ae(r.ordinal),s=!ae(r.year),o=!ae(r.month)||!ae(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=uE({...ip(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(Uu(c.year,c.month),c.day))):c=cE({...Wd(this.c),...r});let[l,d]=vu(c,this.o,this.zone);return lo(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e);return lo(this,pE(this,r))}minus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e).negate();return lo(this,pE(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=Ce.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?nt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):qd}toLocaleString(e=Pu,r={}){return this.isValid?nt.create(this.loc.clone(r),e).formatDateTime(this):qd}toLocaleParts(e={}){return this.isValid?nt.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=jd(this,o);return a+="T",a+=fE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?jd(this,e==="extended"):null}toISOWeekDate(){return Du(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":"")+fE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Du(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Du(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?jd(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")),Du(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():qd}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 Ce.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Pb(r).map(Ce.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=GD(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),gE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?gE(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 tE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return tE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return iT(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Pu}static get DATE_MED(){return EE}static get DATE_MED_WITH_WEEKDAY(){return gb}static get DATE_FULL(){return TE}static get DATE_HUGE(){return AE}static get TIME_SIMPLE(){return SE}static get TIME_WITH_SECONDS(){return _E}static get TIME_WITH_SHORT_OFFSET(){return IE}static get TIME_WITH_LONG_OFFSET(){return OE}static get TIME_24_SIMPLE(){return xE}static get TIME_24_WITH_SECONDS(){return RE}static get TIME_24_WITH_SHORT_OFFSET(){return wE}static get TIME_24_WITH_LONG_OFFSET(){return bE}static get DATETIME_SHORT(){return DE}static get DATETIME_SHORT_WITH_SECONDS(){return CE}static get DATETIME_MED(){return vE}static get DATETIME_MED_WITH_SECONDS(){return NE}static get DATETIME_MED_WITH_WEEKDAY(){return yb}static get DATETIME_FULL(){return PE}static get DATETIME_FULL_WITH_SECONDS(){return LE}static get DATETIME_HUGE(){return UE}static get DATETIME_HUGE_WITH_SECONDS(){return ME}};function fo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&Wn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var uC="3.2.1";at.DateTime=_e;at.Duration=Ce;at.FixedOffsetZone=ot;at.IANAZone=ur;at.Info=$n;at.Interval=qn;at.InvalidZone=Lu;at.Settings=Ee;at.SystemZone=yo;at.VERSION=uC;at.Zone=Mr});var ET=j((sj,yT)=>{"use strict";var Qn=gT();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))}yT.exports=z});var ST=j((oj,AT)=>{"use strict";function jn(t){return{start:t,count:1}}function TT(t,e){t.end=e,t.step=e-t.start,t.count=2}function pp(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 cC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(pp(e,r,jn(i)),r=void 0):r?r.count===1?TT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(jn(r.start)),r=jn(r.end),TT(r,i)):(pp(e,r),r=jn(i)):r=jn(i)}return pp(e,r),e}AT.exports=cC});var IT=j((aj,_T)=>{"use strict";var lC=ST();function dC(t,e,r){var n=lC(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(p,m){var f=c.start+m;return(f-c.start)%c.step===0?f:null}).filter(function(p){return p!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}_T.exports=dC});var RT=j((uj,xT)=>{"use strict";var Hn=ET(),pC=IT(),OT=1e4;function U(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=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,y=f.length;g<y;g++){var T=f[g];if(U._isValidConstraintChar(n,T)){c.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);c.push(T)}else{if(U._isValidConstraintChar(n,f)){c.push(f);return}var _=+f;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}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 p=0,m=d.length;p<m;p++)l(o(d[p]));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 p=+d[0],m=+d[1];if(Number.isNaN(p)||Number.isNaN(m)||p<n.min||m>n.max)throw new Error("Constraint error, got range "+p+"-"+m+" expected range "+n.min+"-"+n.max);if(p>m)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"&&m%7===0&&l.push(0);for(var g=p,y=m;g<=y;g++){var T=l.indexOf(g)!==-1;!T&&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(T,_){for(var S=0,x=_.length;S<x;S++)if(_[S]>=T)return _[S]===T;return _[0]===T}function n(T,_){if(_<6){if(T.getDate()<8&&_===1)return!0;var S=T.getDate()%7?1:0,x=T.getDate()-T.getDate()%7,E=Math.floor(x/7)+S;return E===_}return!1}function i(T){return T.length>0&&T.some(function(_){return typeof _=="string"&&_.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 d(T){return T.some(function(_){if(!i([_]))return!1;var S=Number.parseInt(_[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+_);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<OT;){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 p=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||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,y=o.getHours();if(!p&&(!m||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!m){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(y,this.fields.hour)){if(this._dstEnd===y&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==y){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(y-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>=OT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Hn(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 Hn(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(pC(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 Hn(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 p=U.map[l],m=u[u.length>d?l:l-c];if(l<c||!m)a.push(U._parseField(p,U.parseDefaults[l],U.constraints[l]));else{var f=p==="dayOfWeek"?_(m):m;a.push(U._parseField(p,f,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;l++){var y=U.map[l];g[y]=a[l]}var T=U._handleMaxDaysInMonth(g);return g.dayOfMonth=T||g.dayOfMonth,new U(g,o);function _(S){var x=S.split("#");if(x.length>1){var E=+x[x.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(x.length>2||Number.isNaN(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,x[0]}return S}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(p,m,f){if(!m)throw new Error("Validation error, Field "+p+" is missing");if(m.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,y=m.length;g<y;g++){var T=m[g];if(!U._isValidConstraintChar(f,T)&&(typeof T!="number"||Number.isNaN(T)||T<f.min||T>f.max))throw new Error("Constraint error, got value "+T+" 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(p,m,f){return!m||p!==f[m-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||{})};xT.exports=U});var bT=j((cj,wT)=>{"use strict";var Vu=RT();function Fr(){}Fr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Vu.parse(e)};if(r.length>6)return{interval:Vu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Fr.parseExpression=function(e,r){return Vu.parse(e,r)};Fr.fieldsToExpression=function(e,r){return Vu.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()))})};wT.exports=Fr});var rB={};P(rB,{APP_DEV:()=>zu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Ju,BUDIBASE_DATASOURCE_TYPE:()=>Up,BadRequestError:()=>Uc,BudibaseError:()=>ls,Config:()=>Vp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Bp,DEFAULT_EXPENSES_TABLE_ID:()=>kp,DEFAULT_INVENTORY_TABLE_ID:()=>Fp,DEFAULT_JOBS_TABLE_ID:()=>Mp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>ji,DesignDocuments:()=>xo,DocumentType:()=>ye,Duration:()=>De,DurationType:()=>cm,EmailUnavailableError:()=>gr,Endpoint:()=>Ll,EndpointGroup:()=>Ei,EndpointGroupList:()=>Ga,FeatureDisabledError:()=>Bc,ForbiddenError:()=>Mc,GlobalRole:()=>Gp,HTTPError:()=>Ge,Header:()=>tt,InternalTable:()=>Zt,InvalidAPIKeyError:()=>ds,MAX_VALID_DATE:()=>Xu,MIN_VALID_DATE:()=>WT,NotFoundError:()=>Lc,NotImplementedError:()=>Fc,RedisClient:()=>Qe,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Lp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>Oo,UnexpectedError:()=>Pc,UsageLimitError:()=>kc,UserStatus:()=>Zu,ViewName:()=>Br,accounts:()=>ci,auth:()=>Oh,blacklist:()=>bh,cache:()=>ba,configs:()=>yr,constants:()=>$p,context:()=>Ae,csv:()=>Gh,db:()=>Hr,docIds:()=>Pf,docUpdates:()=>Ch,encryption:()=>Sh,env:()=>h,errors:()=>Vc,events:()=>hs,features:()=>ph,getPublicError:()=>Gc,init:()=>tB,installation:()=>Zc,locks:()=>Ss,logging:()=>ua,middleware:()=>Ih,objectStore:()=>Yf,permissions:()=>ch,platform:()=>Yo,plugins:()=>Rh,queue:()=>Am,redis:()=>wh,roles:()=>uh,security:()=>Fm,sessions:()=>nl,setEnv:()=>Do,sql:()=>Bh,tenancy:()=>eB,timers:()=>Yc,userUtils:()=>fm,users:()=>gs,utils:()=>us,withEnv:()=>YT});module.exports=zI(rB);var yr={};P(yr,{analyticsEnabled:()=>Hc,generateConfigID:()=>ul,getAIConfig:()=>yF,getConfig:()=>_t,getDefaultGoogleConfig:()=>Km,getGoogleConfig:()=>cl,getGoogleDatasourceConfig:()=>zm,getOIDCConfig:()=>mF,getOIDCConfigById:()=>Zm,getOIDCLogosDoc:()=>pF,getPlatformUrl:()=>La,getRecaptchaConfig:()=>EF,getSCIMConfig:()=>gF,getSMTPConfig:()=>hF,getSMTPConfigDoc:()=>W_,getSettingsConfig:()=>Jm,getSettingsConfigDoc:()=>ys,save:()=>lF});var ZI=["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"],XI=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Wh=[...ZI,...XI],qh={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"workspace:created":void 0,"workspace:deleted":void 0,"workspace:updated":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0};var Ul=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ul||{}),Ml=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(Ml||{}),Wa=(T=>(T.AIRTABLE="AIRTABLE",T.ARANGODB="ARANGODB",T.BUDIBASE="BUDIBASE",T.COUCHDB="COUCHDB",T.DYNAMODB="DYNAMODB",T.ELASTICSEARCH="ELASTICSEARCH",T.FIRESTORE="FIRESTORE",T.GOOGLE_SHEETS="GOOGLE_SHEETS",T.MONGODB="MONGODB",T.MYSQL="MYSQL",T.ORACLE="ORACLE",T.POSTGRES="POSTGRES",T.REDIS="REDIS",T.REST="REST",T.S3="S3",T.SNOWFLAKE="SNOWFLAKE",T.SQL_SERVER="SQL_SERVER",T))(Wa||{});var Fl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Fl||{});var eO=G(require("lodash/isPlainObject")),xr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(xr||{}),zt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(zt||{}),pn=(e=>(e.RANGE="range",e))(pn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function qa(t){return Object.values(Ti).includes(t)}function Qh(t){return Object.values(xr).includes(t)}function jh(t){return Object.values(zt).includes(t)}function Qa(t){return Object.values(pn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Hh=t=>typeof t=="object"&&t._id&&t._rev;var xs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(xs||{});var Kh={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,WORKSPACES:!0,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var sG={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Rs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Rs||{});var ja=(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))(ja||{});var Ha=t=>t.hosting==="cloud";var Ka=t=>t.authType==="sso";var w="_",Ve="\uFFF0",Rr=t=>`${t}${w}`,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.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.SCIM_LOG="scimlog",J.ROW_ACTIONS="ra",J.OAUTH2_CONFIG="oauth2",J.OAUTH2_CONFIG_LOG="oauth2log",J.AGENT_CHAT="agentchat",J.AGENT_TOOL_SOURCE="agenttoolsource",J.WORKSPACE_APP="workspace_app",J.WORKSPACE_FAVOURITE="workspace_favourite",J))(ye||{});var Zt=(e=>(e.USER_METADATA="ta_users",e))(Zt||{}),kl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(kl||{});var Z=(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))(Z||{}),pe=(x=>(x.TABLE="table",x.ROW="row",x.ROWS="rows",x.WIDE="wide",x.QUERY="query",x.QUERY_PARAMS="queryParams",x.QUERY_LIMIT="queryLimit",x.LOOP_OPTION="loopOption",x.ITEM="item",x.CODE="code",x.FILTERS="filters",x.COLUMN="column",x.TRIGGER_SCHEMA="triggerSchema",x.CRON="cron",x.WEBHOOK_URL="webhookUrl",x.AUTOMATION="automation",x.AUTOMATION_FIELDS="automationFields",x.MULTI_ATTACHMENTS="multi_attachments",x.TRIGGER_FILTER="trigger_filter",x.CATEGORIES="categories",x))(pe||{}),Ot=(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))(Ot||{});var ne=(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.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",O.EXTRACT_STATE="EXTRACT_STATE",O.LOOP_V2="LOOP_V2",O.discord="discord",O.slack="slack",O.zapier="zapier",O.integromat="integromat",O.n8n="n8n",O))(ne||{}),Yh=[...Object.values(ne),...Object.values(Ot)];var Bl=(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))(Bl||{}),Jh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Gl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Gl||{}),Vl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Vl||{});function zh(t){return t.stepId==="BRANCH"}var $l=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))($l||{});var Wl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Wl||{});var ql="bb_internal";var Zh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Ya(t){return!!t.providerType}var Ql=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ql||{});var d$=Object.values(Ql);var g$=["rows","queries","automations"],y$=["queries","automations"];var mn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(mn||{}),Ja=(r=>(r.STRING="string",r.NUMBER="number",r))(Ja||{});var se;(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})(se||(se={}));var Hl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Hl||(Hl={}));var M=se.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}},R=se.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"]),iO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Xe=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,se.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()}};Xe.create=t=>new Xe(t);var Ii=(t,e)=>{let r;switch(t.code){case R.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case R.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,se.jsonStringifyReplacer)}`;break;case R.unrecognized_keys:r=`Unrecognized key(s) in object: ${se.joinValues(t.keys,", ")}`;break;case R.invalid_union:r="Invalid input";break;case R.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${se.joinValues(t.options)}`;break;case R.invalid_enum_value:r=`Invalid enum value. Expected ${se.joinValues(t.options)}, received '${t.received}'`;break;case R.invalid_arguments:r="Invalid function arguments";break;case R.invalid_return_type:r="Invalid function return type";break;case R.invalid_date:r="Invalid date";break;case R.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}"`:se.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case R.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 R.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 R.custom:r="Invalid input";break;case R.invalid_intersection_types:r="Intersection results could not be merged";break;case R.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case R.not_finite:r="Number must be finite";break;default:r=e.defaultError,se.assertNever(t)}return{message:r}},tg=Ii;function sO(t){tg=t}function za(){return tg}var Za=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}},oO=[];function L(t,e){let r=za(),n=Za({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 Be=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 Y;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 Y;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}}},Y=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Kl=t=>t.status==="aborted",Yl=t=>t.status==="dirty",Ds=t=>t.status==="valid",Cs=t=>typeof Promise<"u"&&t instanceof Promise;function Xa(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 rg(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 V;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(V||(V={}));var ws,bs,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}},Xh=(t,e)=>{if(Ds(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 Xe(t.common.issues);return this._error=r,this._error}}};function X(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 ee=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 Be,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(Cs(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 Xh(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(Cs(i)?i:Promise.resolve(i));return Xh(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:R.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 et({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 Wt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return tr.create(this,this._def)}promise(){return Cr.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 et({...X(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new wn({...X(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new vs({typeName:H.ZodBranded,type:this,...X(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new bn({...X(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 Ns.create(this,e)}readonly(){return Dn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},aO=/^c[^\s-]{8,}$/i,uO=/^[0-9a-z]+$/,cO=/^[0-9A-HJKMNP-TV-Z]{26}$/,lO=/^[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,dO=/^[a-z0-9_-]{21}$/i,pO=/^[-+]?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)?)??$/,fO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,mO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",jl,hO=/^(?:(?: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])$/,gO=/^(([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})))$/,yO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ng="((\\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])))",EO=new RegExp(`^${ng}$`);function ig(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 TO(t){return new RegExp(`^${ig(t)}$`)}function sg(t){let e=`${ng}T${ig(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 AO(t,e){return!!((e==="v4"||!e)&&hO.test(t)||(e==="v6"||!e)&&gO.test(t))}var br=class t extends ee{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_type,expected:M.string,received:s.parsedType}),Y}let n=new Be,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:R.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:R.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:R.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&L(i,{code:R.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")fO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"email",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")jl||(jl=new RegExp(mO,"u")),jl.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"emoji",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")lO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"uuid",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")dO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"nanoid",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")aO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"cuid",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")uO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"cuid2",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")cO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"ulid",code:R.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:R.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:R.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:R.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:R.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:R.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?sg(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?EO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?TO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?pO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"duration",code:R.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?AO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"ip",code:R.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?yO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"base64",code:R.invalid_string,message:s.message}),n.dirty()):se.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:R.invalid_string,...V.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...V.errToObj(e)})}url(e){return this._addCheck({kind:"url",...V.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...V.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...V.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...V.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...V.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...V.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...V.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...V.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...V.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,...V.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,...V.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...V.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...V.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...V.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...V.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...V.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...V.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...V.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...V.errToObj(r)})}nonempty(e){return this.min(1,V.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:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...X(t)})};function SO(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 ee{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 L(s,{code:R.invalid_type,expected:M.number,received:s.parsedType}),Y}let n,i=new Be;for(let s of this._def.checks)s.kind==="int"?se.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:R.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:R.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:R.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?SO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),L(n,{code:R.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:R.not_finite,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:V.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:V.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:V.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:V.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:V.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"&&se.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,...X(t)});var gn=class t extends ee{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 L(s,{code:R.invalid_type,expected:M.bigint,received:s.parsedType}),Y}let n,i=new Be;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:R.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:R.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:R.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:V.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:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.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,...X(t)})};var yn=class extends ee{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.boolean,received:n.parsedType}),Y}return $e(e.data)}};yn.create=t=>new yn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...X(t)});var En=class t extends ee{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_type,expected:M.date,received:s.parsedType}),Y}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_date}),Y}let n=new Be,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:R.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:R.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):se.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:V.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:V.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,...X(t)});var Oi=class extends ee{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.symbol,received:n.parsedType}),Y}return $e(e.data)}};Oi.create=t=>new Oi({typeName:H.ZodSymbol,...X(t)});var Tn=class extends ee{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.undefined,received:n.parsedType}),Y}return $e(e.data)}};Tn.create=t=>new Tn({typeName:H.ZodUndefined,...X(t)});var An=class extends ee{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.null,received:n.parsedType}),Y}return $e(e.data)}};An.create=t=>new An({typeName:H.ZodNull,...X(t)});var Dr=class extends ee{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};Dr.create=t=>new Dr({typeName:H.ZodAny,...X(t)});var er=class extends ee{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};er.create=t=>new er({typeName:H.ZodUnknown,...X(t)});var xt=class extends ee{_parse(e){let r=this._getOrReturnCtx(e);return L(r,{code:R.invalid_type,expected:M.never,received:r.parsedType}),Y}};xt.create=t=>new xt({typeName:H.ZodNever,...X(t)});var xi=class extends ee{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.void,received:n.parsedType}),Y}return $e(e.data)}};xi.create=t=>new xi({typeName:H.ZodVoid,...X(t)});var tr=class t extends ee{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return L(r,{code:R.invalid_type,expected:M.array,received:r.parsedType}),Y;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?R.too_big:R.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:R.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:R.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=>Be.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new ft(r,o,r.path,a)));return Be.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:V.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:V.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:V.toString(r)}})}nonempty(e){return this.min(1,e)}};tr.create=(t,e)=>new tr({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...X(e)});function Si(t){if(t instanceof He){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=pt.create(Si(n))}return new He({...t._def,shape:()=>e})}else return t instanceof tr?new tr({...t._def,type:Si(t.element)}):t instanceof pt?pt.create(Si(t.unwrap())):t instanceof Wt?Wt.create(Si(t.unwrap())):t instanceof $t?$t.create(t.items.map(e=>Si(e))):t}var He=class t extends ee{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=se.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return L(c,{code:R.invalid_type,expected:M.object,received:c.parsedType}),Y}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof xt&&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 xt){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:R.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,p=await l.value;c.push({key:d,value:p,alwaysSet:l.alwaysSet})}return c}).then(c=>Be.mergeObjectSync(n,c)):Be.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return V.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=V.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 se.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 se.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 se.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 se.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 og(se.objectKeys(this.shape))}};He.create=(t,e)=>new He({shape:()=>t,unknownKeys:"strip",catchall:xt.create(),typeName:H.ZodObject,...X(e)});He.strictCreate=(t,e)=>new He({shape:()=>t,unknownKeys:"strict",catchall:xt.create(),typeName:H.ZodObject,...X(e)});He.lazycreate=(t,e)=>new He({shape:t,unknownKeys:"strip",catchall:xt.create(),typeName:H.ZodObject,...X(e)});var Sn=class extends ee{_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 Xe(a.ctx.common.issues));return L(r,{code:R.invalid_union,unionErrors:o}),Y}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 Xe(u));return L(r,{code:R.invalid_union,unionErrors:a}),Y}}get options(){return this._def.options}};Sn.create=(t,e)=>new Sn({options:t,typeName:H.ZodUnion,...X(e)});var Xt=t=>t instanceof In?Xt(t.schema):t instanceof et?Xt(t.innerType()):t instanceof On?[t.value]:t instanceof xn?t.options:t instanceof Rn?se.objectValues(t.enum):t instanceof wn?Xt(t._def.innerType):t instanceof Tn?[void 0]:t instanceof An?[null]:t instanceof pt?[void 0,...Xt(t.unwrap())]:t instanceof Wt?[null,...Xt(t.unwrap())]:t instanceof vs||t instanceof Dn?Xt(t.unwrap()):t instanceof bn?Xt(t._def.innerType):[],eu=class t extends ee{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return L(r,{code:R.invalid_type,expected:M.object,received:r.parsedType}),Y;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:R.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Y)}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=Xt(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,...X(n)})}};function Jl(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=se.objectKeys(e),s=se.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Jl(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=Jl(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 _n=class extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Kl(s)||Kl(o))return Y;let a=Jl(s.value,o.value);return a.valid?((Yl(s)||Yl(o))&&r.dirty(),{status:r.value,value:a.data}):(L(n,{code:R.invalid_intersection_types}),Y)};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,...X(r)});var $t=class t extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return L(n,{code:R.invalid_type,expected:M.array,received:n.parsedType}),Y;if(n.data.length<this._def.items.length)return L(n,{code:R.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Y;!this._def.rest&&n.data.length>this._def.items.length&&(L(n,{code:R.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=>Be.mergeArray(r,o)):Be.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,...X(e)})};var tu=class t extends ee{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 L(n,{code:R.invalid_type,expected:M.object,received:n.parsedType}),Y;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?Be.mergeObjectAsync(r,i):Be.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof ee?new t({keyType:e,valueType:r,typeName:H.ZodRecord,...X(n)}):new t({keyType:br.create(),valueType:e,typeName:H.ZodRecord,...X(r)})}},Ri=class extends ee{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 L(n,{code:R.invalid_type,expected:M.map,received:n.parsedType}),Y;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 Y;(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 Y;(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,...X(r)});var wi=class t extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return L(n,{code:R.invalid_type,expected:M.set,received:n.parsedType}),Y;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(L(n,{code:R.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:R.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 Y;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:V.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:V.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,...X(e)});var ru=class t extends ee{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return L(r,{code:R.invalid_type,expected:M.function,received:r.parsedType}),Y;function n(a,u){return Za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,za(),Ii].filter(c=>!!c),issueData:{code:R.invalid_arguments,argumentsError:u}})}function i(a,u){return Za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,za(),Ii].filter(c=>!!c),issueData:{code:R.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 Xe([]),l=await a._def.args.parseAsync(u,s).catch(m=>{throw c.addIssue(n(u,m)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(m=>{throw c.addIssue(i(d,m)),c})})}else{let a=this;return $e(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new Xe([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Xe([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(er.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(er.create()),returns:r||er.create(),typeName:H.ZodFunction,...X(n)})}},In=class extends ee{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,...X(e)});var On=class extends ee{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return L(r,{received:r.data,code:R.invalid_literal,expected:this._def.value}),Y}return{status:"valid",value:e.data}}get value(){return this._def.value}};On.create=(t,e)=>new On({value:t,typeName:H.ZodLiteral,...X(e)});function og(t,e){return new xn({values:t,typeName:H.ZodEnum,...X(e)})}var xn=class t extends ee{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{expected:se.joinValues(n),received:r.parsedType,code:R.invalid_type}),Y}if(Xa(this,ws,"f")||rg(this,ws,new Set(this._def.values),"f"),!Xa(this,ws,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{received:r.data,code:R.invalid_enum_value,options:n}),Y}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})}};ws=new WeakMap;xn.create=og;var Rn=class extends ee{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){let r=se.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=se.objectValues(r);return L(n,{expected:se.joinValues(i),received:n.parsedType,code:R.invalid_type}),Y}if(Xa(this,bs,"f")||rg(this,bs,new Set(se.getValidEnumValues(this._def.values)),"f"),!Xa(this,bs,"f").has(e.data)){let i=se.objectValues(r);return L(n,{received:n.data,code:R.invalid_enum_value,options:i}),Y}return $e(e.data)}get enum(){return this._def.values}};bs=new WeakMap;Rn.create=(t,e)=>new Rn({values:t,typeName:H.ZodNativeEnum,...X(e)});var Cr=class extends ee{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return L(r,{code:R.invalid_type,expected:M.promise,received:r.parsedType}),Y;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:H.ZodPromise,...X(e)});var et=class extends ee{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 Y;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?Y:u.status==="dirty"||r.value==="dirty"?_i(u.value):u});{if(r.value==="aborted")return Y;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?Y: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"?Y:(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"?Y:(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(!Ds(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=>Ds(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);se.assertNever(i)}};et.create=(t,e,r)=>new et({schema:t,typeName:H.ZodEffects,effect:e,...X(r)});et.createWithPreprocess=(t,e,r)=>new et({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...X(r)});var pt=class extends ee{_parse(e){return this._getType(e)===M.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,...X(e)});var Wt=class extends ee{_parse(e){return this._getType(e)===M.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Wt.create=(t,e)=>new Wt({innerType:t,typeName:H.ZodNullable,...X(e)});var wn=class extends ee{_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}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...X(e)});var bn=class extends ee{_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 Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Xe(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Xe(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,...X(e)});var bi=class extends ee{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.nan,received:n.parsedType}),Y}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:H.ZodNaN,...X(t)});var _O=Symbol("zod_brand"),vs=class extends ee{_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}},Ns=class t extends ee{_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"?Y: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"?Y: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 ee{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Ds(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Dn.create=(t,e)=>new Dn({innerType:t,typeName:H.ZodReadonly,...X(e)});function ag(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 IO={object:He.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 OO=(t,e={message:`Input not instance of ${t.name}`})=>ag(r=>r instanceof t,e),ug=br.create,cg=hn.create,xO=bi.create,RO=gn.create,lg=yn.create,wO=En.create,bO=Oi.create,DO=Tn.create,CO=An.create,vO=Dr.create,NO=er.create,PO=xt.create,LO=xi.create,UO=tr.create,MO=He.create,FO=He.strictCreate,kO=Sn.create,BO=eu.create,GO=_n.create,VO=$t.create,$O=tu.create,WO=Ri.create,qO=wi.create,QO=ru.create,jO=In.create,HO=On.create,KO=xn.create,YO=Rn.create,JO=Cr.create,eg=et.create,zO=pt.create,ZO=Wt.create,XO=et.createWithPreprocess,ex=Ns.create,tx=()=>ug().optional(),rx=()=>cg().optional(),nx=()=>lg().optional(),ix={string:t=>br.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})},sx=Y,re=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:sO,getErrorMap:za,makeIssue:Za,EMPTY_PATH:oO,addIssueToContext:L,ParseStatus:Be,INVALID:Y,DIRTY:_i,OK:$e,isAborted:Kl,isDirty:Yl,isValid:Ds,isAsync:Cs,get util(){return se},get objectUtil(){return Hl},ZodParsedType:M,getParsedType:wr,ZodType:ee,datetimeRegex:sg,ZodString:br,ZodNumber:hn,ZodBigInt:gn,ZodBoolean:yn,ZodDate:En,ZodSymbol:Oi,ZodUndefined:Tn,ZodNull:An,ZodAny:Dr,ZodUnknown:er,ZodNever:xt,ZodVoid:xi,ZodArray:tr,ZodObject:He,ZodUnion:Sn,ZodDiscriminatedUnion:eu,ZodIntersection:_n,ZodTuple:$t,ZodRecord:tu,ZodMap:Ri,ZodSet:wi,ZodFunction:ru,ZodLazy:In,ZodLiteral:On,ZodEnum:xn,ZodNativeEnum:Rn,ZodPromise:Cr,ZodEffects:et,ZodTransformer:et,ZodOptional:pt,ZodNullable:Wt,ZodDefault:wn,ZodCatch:bn,ZodNaN:bi,BRAND:_O,ZodBranded:vs,ZodPipeline:Ns,ZodReadonly:Dn,custom:ag,Schema:ee,ZodSchema:ee,late:IO,get ZodFirstPartyTypeKind(){return H},coerce:ix,any:vO,array:UO,bigint:RO,boolean:lg,date:wO,discriminatedUnion:BO,effect:eg,enum:KO,function:QO,instanceof:OO,intersection:GO,lazy:jO,literal:HO,map:WO,nan:xO,nativeEnum:YO,never:PO,null:CO,nullable:ZO,number:cg,object:MO,oboolean:nx,onumber:rx,optional:zO,ostring:tx,pipeline:ex,preprocess:XO,promise:JO,record:$O,set:qO,strictObject:FO,string:ug,symbol:bO,transformer:eg,tuple:VO,undefined:DO,union:kO,unknown:NO,void:LO,NEVER:sx,ZodIssueCode:R,quotelessJson:iO,ZodError:Xe});var ou=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),dg=re.record(ou,re.string()),nu=re.record(ou,re.any()),iu=re.record(ou,re.union([re.any().array(),re.string()])),pg=re.lazy(()=>re.object({conditions:re.array(re.object(fg))})),su=re.union([re.string(),re.number()]),fg={string:dg.optional(),fuzzy:dg.optional(),range:re.record(ou,re.union([re.object({high:su,low:su}),re.object({high:su}),re.object({low:su})])).optional(),equal:nu.optional(),notEqual:nu.optional(),empty:nu.optional(),notEmpty:nu.optional(),oneOf:iu.optional(),contains:iu.optional(),notContains:iu.optional(),containsAny:iu.optional(),$and:pg.optional(),$or:pg.optional()},pW=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Ai).optional(),...fg}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(mn).optional(),sortType:re.nativeEnum(Ja).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var $p={};P($p,{APP_DEV:()=>zu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Ju,BUDIBASE_DATASOURCE_TYPE:()=>Up,Config:()=>Vp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Bp,DEFAULT_EXPENSES_TABLE_ID:()=>kp,DEFAULT_INVENTORY_TABLE_ID:()=>Fp,DEFAULT_JOBS_TABLE_ID:()=>Mp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>ji,DesignDocuments:()=>xo,DocumentType:()=>ye,GlobalRole:()=>Gp,Header:()=>tt,InternalTable:()=>Zt,MAX_VALID_DATE:()=>Xu,MIN_VALID_DATE:()=>WT,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Lp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>Oo,UserStatus:()=>Zu,ViewName:()=>Br});var B1={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 tt=(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.CLIENT="x-budibase-client",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))(tt||{});var W1={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 Y1="darkest",J1="light",ux=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var rt={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"}},mg={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:()=>UT,buildQuery:()=>MT,cleanupQuery:()=>Ip,fixupFilterArrays:()=>xp,getKeyNumbering:()=>Op,getValidOperatorsForType:()=>LC,hasFilters:()=>Sp,limit:()=>kT,recurseLogicalOperators:()=>_p,removeKeyNumbering:()=>au,runQuery:()=>Wu,search:()=>FC,sort:()=>FT,splitFiltersArray:()=>uu});var qi=G(hg());var vr={};P(vr,{filterValueToLabel:()=>mx,hasSchema:()=>hx,isSupportedUserSearch:()=>yg,parallelForeach:()=>fx,processSearchFilters:()=>Xl,toMap:()=>yx,trimOtherProps:()=>gx,unreachable:()=>px});var gg=G(require("lodash/pick")),dx=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function px(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function fx(t,e,r){let n=[],i=Symbol.asyncIterator in t,s=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),o=async()=>{let a=await(i?s.next():Promise.resolve(s.next()));for(;!a.done;)await e(a.value),a=await(i?s.next():Promise.resolve(s.next()))};for(let a=0;a<r;a++)n.push(o());await Promise.all(n)}function mx(){return Object.keys(rt).reduce((t,e)=>{let n=rt[e];return t[n.value]=n.label,t},{})}function hx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function gx(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function yg(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(qa(s)){for(let c of t[s].conditions)if(!yg(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 Xl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=uu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=(0,gg.default)(i,dx);return s.field=au(s.field),s})}]}}function yx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Je={};P(Je,{cancelableTimeout:()=>Eg,cron:()=>fp,deepGet:()=>ed,duplicateName:()=>CC,getSequentialName:()=>vC,getUserColor:()=>Tx,getUserInitials:()=>Ex,getUserLabel:()=>Ax,isGoogleSheets:()=>_x,isSQL:()=>Ix,lists:()=>Ep,retry:()=>Ox,roles:()=>yp,schema:()=>So,views:()=>gp,wait:()=>td,withTimeout:()=>Sx});var ed=(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},Ex=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"},Tx=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%)`},Ax=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Eg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function Sx(t,e){let[r,n]=Eg(t),i=await Promise.race([e(),r]);return n(),i}function _x(t){return t==="GOOGLE_SHEETS"}function Ix(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function td(t){return new Promise(e=>setTimeout(e,t))}async function Ox(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 td(s);try{return await t()}catch(o){n=o}}throw n}var fp={};P(fp,{getNextExecutionDates:()=>hC,validate:()=>gC});var CT=G(qt()),vT=G(bT()),DT="(Input cron: ",fC={"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 mC(t){let e=[];for(let r of t){r.includes(DT)&&(r=r.split(DT)[0].trim());for(let[n,i]of Object.entries(fC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function hC(t,e=4){let r=vT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function gC(t){let e=(0,CT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:mC(e.getError())}}var So={};P(So,{decodeNonAscii:()=>mp,encodeNonAscii:()=>TC,isDeprecatedSingleUserColumn:()=>yC,isNumeric:()=>AC,isRequired:()=>EC});function yC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function EC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function TC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function mp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function AC(t){return t.type==="number"||t.type==="bigint"}var gp={};P(gp,{basicFields:()=>xC,calculationFields:()=>OC,hasCalculationFields:()=>IC,isBasicViewField:()=>SC,isCalculationField:()=>_o,isCalculationView:()=>_C,isV2:()=>RC,isVisible:()=>NT});var hp=G(require("lodash/pickBy"));function _o(t){return"calculationType"in t}function SC(t){return!_o(t)}function _C(t){return t.type==="calculation"}function IC(t){return Object.values(t.schema||{}).some(_o)}function OC(t){return(0,hp.default)(t.schema||{},_o)}function NT(t){return t.visible!==!1}function xC(t,e){let{visible:r=!0}=e||{};return(0,hp.default)(t.schema||{},n=>!_o(n)&&(!r||NT(n)))}function RC(t){return t.version===2}var yp={};P(yp,{checkForRoleInheritanceLoops:()=>bC});function wC(t){return`role${w}${t}`}function bC(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=wC(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 Ep={};P(Ep,{punctuateList:()=>DC});function DC(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 CC=(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}`},vC=(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 $u=G(require("lodash/isPlainObject")),Tp=G(require("lodash/isEmpty"));var NC=/{{([^{].*?)}}/g,LT=Object.values(Ti),PC=[...Object.values(xr),...Object.values(zt),...Object.values(pn)],LC=(t,e,r)=>{let n=rt,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=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],a=[],{type:u,formulaType:c,subtype:l}=t;u==="string"?l==="array"?a=o:a=i:u==="number"||u==="bigint"?a=s:u==="options"?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="array"?a=o:u==="boolean"?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:u==="longform"?a=i:u==="datetime"?a=s:u==="formula"&&c==="static"?a=i.concat([n.MoreThan,n.LessThan]):u==="ai"?a=i.concat([n.MoreThan,n.LessThan]):u==="bb_reference_single"||So.isDeprecatedSingleUserColumn(t)?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="bb_reference"?a=o:u==="barcodeqr"&&(a=i);let d=r?.tableId?.includes("datasource_plus");return e==="_id"&&d&&(a=[n.Equals,n.NotEquals,n.In]),a},UT=[rt.StartsWith.value,rt.Like.value,rt.Equals.value,rt.NotEquals.value,rt.Contains.value,rt.NotContains.value,rt.ContainsAny.value,rt.In.value];function _p(t,e){for(let r of LT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Ip=t=>{for(let e of UT)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===""||UC(s))&&delete t[e][i]}return t=_p(t,Ip),t};function UC(t){return Array.isArray(t)&&t.length===0}var au=t=>Op(t).key,Op=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}=Op(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=mp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function MC(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(NC)||[]).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(Qa(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(Qa(r)){let c=mg[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(Qh(r)||jh(r)||Qa(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 uu(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 MT(t){if(!t)return{};if(Array.isArray(t)&&(t=Xl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=PT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=MT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=uu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=PT(n.logicalOperator)),{[a]:{conditions:o.map(MC).filter(u=>u)}}})},e}function PT(t){return t==="all"?"$and":"$or"}function xp(t){if(!t)return t;for(let e of Object.values(zt)){let r=t[e];if(!(r==null||!(0,$u.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return _p(t,xp),t}function FC(t,e){let r=Wu(t,e.query);e.sort&&(r=FT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=kT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Wu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Ip(e),e=xp(e),!Sp(e)&&e.onEmptyFilter==="none")return[];let r=(E,I)=>k=>{for(let[D,B]of Object.entries(e[E]||{})){let de=qa(E)?k:ed(k,au(D)),cn=I(de,B);if(e.allOr&&cn)return!0;if(!e.allOr&&!cn)return!1}return!e.allOr},n=r("string",(E,I)=>typeof E!="string"||typeof I!="string"?!1:E.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(E,I)=>typeof E!="string"||typeof I!="string"?!1:E.toLowerCase().includes(I.toLowerCase())),s=r("range",(E,I)=>{if(E==null||E===""||((0,$u.default)(I.low)&&(0,Tp.default)(I.low)&&(I.low=void 0),(0,$u.default)(I.high)&&(0,Tp.default)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let k=+E;if(!isNaN(k)){let B=+I.low,de=+I.high;if(!isNaN(B)&&!isNaN(de))return k>=B&&k<=de;if(isNaN(B)){if(!isNaN(de))return k<=de}else return k>=B}let D=(0,qi.default)(E);if(D.isValid()){let B=(0,qi.default)(I.low||"0000-00-00T00:00:00.000Z"),de=(0,qi.default)(I.high||"9999-00-00T00:00:00.000Z");if(B.isValid()&&de.isValid())return D.isAfter(B)&&D.isBefore(de)||D.isSame(B)||D.isSame(de);if(B.isValid())return D.isAfter(B)||D.isSame(B);if(de.isValid())return D.isBefore(de)||D.isSame(de)}return I.low!=null&&I.high!=null?E>=I.low&&E<=I.high:I.low!=null?E>=I.low:I.high!=null?E<=I.high:!1}),o=(E,I)=>{if(Array.isArray(E)){for(let D of E)if(o(D,I))return!0;return!1}if(E&&typeof E=="object"&&typeof I=="string")return E._id===I;if(E===I)return!0;if(E==null&&I!=null||E!=null&&I==null)return!1;let k=(0,qi.default)(E);if(k.isValid()){let D=(0,qi.default)(I);if(D.isValid())return k.isSame(D)}return!1},a=E=>(...I)=>!E(...I),u=r("equal",o),c=r("notEqual",a(o)),l=E=>typeof E=="string"?E==="":Array.isArray(E)?E.length===0:E&&typeof E=="object"?Object.keys(E).length===0:E==null,d=r("empty",l),p=r("notEmpty",a(l)),m=r("oneOf",(E,I)=>(typeof I=="string"&&(I=I.split(",")),typeof E=="number"&&(I=I.map(k=>parseFloat(k))),Array.isArray(I)?I.some(k=>o(E,k)):!1)),f=E=>(I,k)=>!Array.isArray(I)||(typeof k=="string"&&(k=k.split(","),typeof I[0]=="number"&&(k=k.map(D=>parseFloat(D)))),!Array.isArray(k))?!1:k.length===0?!0:k[E](D=>o(I,D)),g=r("contains",(E,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(E,I)),y=r("notContains",(E,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(E,I)),T=r("containsAny",f("some")),_=r("$and",(E,I)=>{if(!I.length)return!1;for(let k of I)if(!Wu([E],k).length)return!1;return!0}),S=r("$or",(E,I)=>{if(!I.length)return!1;for(let k of I)if(Wu([E],{...k,allOr:!0}).length)return!0;return!1}),x=E=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:p,oneOf:m,contains:g,containsAny:T,notContains:y,$and:_,$or:S},k=Object.entries(e||{}).filter(([D,B])=>!["allOr","onEmptyFilter"].includes(D)&&B&&Object.keys(B).length>0).map(([D])=>I[D]?.(E)??!1);return Sp(e)?e.allOr?k.some(D=>D===!0):k.every(D=>D===!0):!0};return t.filter(x)}function FT(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 kT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Sp=t=>{if(!t)return!1;let e=r=>{for(let n of LT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of PC){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 ut={};P(ut,{applications:()=>wp,automations:()=>bp,screens:()=>Pp,users:()=>Np});var wp={};P(wp,{getDevAppID:()=>kC,getProdAppID:()=>qu});var Rp=Rr("app"),Io=Rr("app_dev");function kC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(Rp);e.shift();let r=e.join(Rp);return`${Io}${r}`}function qu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Io))return t;let e=t.split(Io);e.shift();let r=e.join(Io);return`${Rp}${r}`}var bp={};P(bp,{checkForCollectStep:()=>$C,isAppAction:()=>VC,isRowAction:()=>BC,isWebhookAction:()=>GC});function BC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function GC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function VC(t){return t.definition.trigger?.stepId==="APP"}function BT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(zh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(BT(r))return!0}}return!1}function $C(t){return BT(t.definition.steps)}var Np={};P(Np,{canCreateApps:()=>WC,containsUserID:()=>JC,getGlobalUserID:()=>YC,getUserAppGroups:()=>zC,getUserGroups:()=>vp,hasAdminPermissions:()=>Cp,hasAppBuilderPermissions:()=>Hu,hasBuilderPermissions:()=>HC,hasCreatorPermissions:()=>Ku,isAdmin:()=>ju,isAdminOrBuilder:()=>qC,isAdminOrGlobalBuilder:()=>QC,isBuilder:()=>Dp,isCreator:()=>KC,isGlobalBuilder:()=>Qu,userAppAccessList:()=>ZC});function Dp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(qu(e))):!1}function Qu(t){return Dp(t)&&!Hu(t)||ju(t)}function WC(t){return Qu(t)||Ku(t)}function ju(t){return t?Cp(t):!1}function qC(t,e){return Dp(t,e)||ju(t)}function QC(t){return Qu(t)||ju(t)}function Hu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function jC(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}function HC(t){return t?t.builder?.global||Hu(t)||Ku(t):!1}function Cp(t){return t?!!t.admin?.global:!1}function Ku(t){return t?!!t.builder?.creator:!1}function KC(t){return t?Qu(t)||Cp(t)||Ku(t)||Hu(t)||jC(t):!1}function YC(t){if(typeof t!="string")return t;let e=`ro${w}ta_users${w}`;return t.startsWith(e)?t.split(e)[1]:t}function JC(t){return typeof t!="string"?!1:t.includes(`us${w}`)}function vp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function zC(t,e,r){let n=qu(t);return vp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function ZC(t,e){let n=vp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Pp={};P(Pp,{findInSettings:()=>XC});function XC(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 pH={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},fH={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},mH={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 _H={name:"Bash Scripting",tagline:"Execute a bash command",icon:"git-branch",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 xH={name:"Branch",icon:"git-branch",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 bH={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"stack",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 vH={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"rows-plus-bottom",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 LH={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 FH={description:"Delete a row from your database",icon:"trash-simple",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 GH={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 WH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"database",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 jH={name:"API Request",tagline:"Execute a REST request",icon:"globe",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 YH={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 ZH={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"brackets-angle",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 dv={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},tK={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"git-branch",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($l),pretty:Object.values(dv)},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 iK={name:"Looping",icon:"recycle",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 aK={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 lK={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(Wl)},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 GT=(a=>(a.GPT_4O_MINI="gpt-4o-mini",a.GPT_4O="gpt-4o",a.GPT_4="gpt-4",a.GPT_35_TURBO="gpt-3.5-turbo",a.GPT_5_MINI="gpt-5-mini",a.GPT_5="gpt-5",a.GPT_5_NANO="gpt-5-nano",a))(GT||{}),fK={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"flow-arrow",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(GT)}},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 VT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(VT||{}),gK={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",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(VT),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 Ev={ascending:"Ascending",descending:"Descending"},TK={description:"Query rows from the database",icon:"magnifying-glass",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(mn),pretty:Object.values(Ev)},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 _K={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"envelope",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 xK={name:"Backend log",tagline:"Console log a value in the backend",icon:"activity",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 bK={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 vK={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"arrows-clockwise",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 LK={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"arrow-clockwise",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 FK={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 GK={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:{},features:{LOOPING:!0},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 WK={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 jK={name:"Translate",tagline:"Translate text to a different language",icon:"globe",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 $T=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))($T||{}),YK={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($T)}},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 ZK={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"},features:{LOOPING:!0},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(Bl),pretty:Object.values(Jh)},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 t2={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:{},features:{LOOPING:!0},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(Gl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Vl),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 i2={name:"State",tagline:"Extract automation state",icon:"brackets-curly",description:"Extract automation state into a named variable",type:"ACTION",internal:!0,new:!1,stepId:"EXTRACT_STATE",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{key:{type:"string",title:"Key"},value:{type:"longform",title:"Value"}},required:["value","key"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var a2={name:"Loop",icon:"recycle",tagline:"Loop the block",description:"Loop",stepId:"LOOP_V2",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{children:{type:"array"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}}},outputs:{properties:{success:{type:"boolean",description:"Loop success"}},required:["success"]}},type:"LOGIC"};var Uv={name:"User action",event:"app:trigger",icon:"cursor-click",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 Fv={name:"CRON / Schedule",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 Bv={name:"Row Deleted",event:"row:delete",icon:"trash-simple",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 Vv={name:"Row Created",event:"row:save",icon:"rows-plus-bottom",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 Wv={name:"Row Updated",event:"row:update",icon:"arrow-clockwise",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 Qv={name:"Webhook",event:"web:trigger",icon:"paper-plane-right",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 Hv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"tree-structure",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"row action workflow",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 I2=Object.values(ye).sort((t,e)=>e.length-t.length);var O2=Object.values(kl).sort((t,e)=>e.length-t.length);var x2=new RegExp("^datasource_plus_(.+)__(.+)$"),Yu=t=>e=>!!e&&e.startsWith(`${t}${w}`);var R2=Yu("ta"),w2=Yu("view"),b2=Yu("datasource"),D2=Yu("query");var Ju=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ju||{}),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_2",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||{}),ji={by_email2:["by_email"]},xe={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"),zu=Rr("app_dev"),Et=zu,Lp="internal",Up="budibase",Kt="_design/sqlite",Mp="ta_bb_jobs",Fp="ta_bb_inventory",kp="ta_bb_expenses",Bp="ta_bb_employee",Oo=`ro${w}ta_users${w}`,xo=(r=>(r[r.SQLITE=Kt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(xo||{});var Zu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Zu||{}),Kn=(a=>(a.Auth="budibase:auth",a.Init="budibase:init",a.ACCOUNT_RETURN_URL="budibase:account:returnurl",a.DatasourceAuth="budibase:datasourceauth",a.OIDC_CONFIG="budibase:oidc:config",a.FeatureFlags="budibase:featureflags",a.RecaptchaSession="budibase:recaptcha",a))(Kn||{}),Gp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Gp||{}),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||{}),WT=new Date(-2147483647e3),Xu=new Date(2147483647e3),Te="default";var ba={};P(ba,{CacheKey:()=>ve,TTL:()=>ni,app:()=>Zo,bustCache:()=>ts,destroy:()=>Qo,docWritethrough:()=>Hm,generic:()=>jo,get:()=>ii,invite:()=>dm,keys:()=>gc,passwordReset:()=>Qm,store:()=>lr,user:()=>nn,withCache:()=>Qr,withCacheWithDynamicTTL:()=>gA,writethrough:()=>qm});var jo={};P(jo,{CacheKey:()=>ve,TTL:()=>ni,bustCache:()=>ts,destroy:()=>Qo,get:()=>ii,keys:()=>gc,store:()=>lr,withCache:()=>Qr,withCacheWithDynamicTTL:()=>gA});var Ae={};P(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Lo,doInAppContext:()=>UN,doInAppMigrationContext:()=>FN,doInAutomationContext:()=>CN,doInContext:()=>cf,doInEnvironmentContext:()=>GN,doInFeatureFlagOverrideContext:()=>gf,doInIPContext:()=>pf,doInIdentityContext:()=>wo,doInLicenseContext:()=>NN,doInScimContext:()=>VN,doInSelfHostTenantUsingCloud:()=>vN,doInTenant:()=>qe,ensureSnippetContext:()=>pA,getAppDB:()=>Xi,getAppId:()=>Ue,getAuditLogDBName:()=>lA,getAuditLogsDB:()=>WN,getAutomationId:()=>lf,getCurrentContext:()=>zn,getDevAppDB:()=>QN,getDevAppId:()=>kN,getEnvironmentVariables:()=>$N,getFeatureFlagOverrides:()=>hf,getFeatureFlags:()=>ff,getGlobalDB:()=>ie,getGlobalDBName:()=>Jn,getIP:()=>df,getIdentity:()=>cr,getLicense:()=>PN,getPlatformURL:()=>uf,getProdAppDB:()=>qN,getProdAppId:()=>BN,getScimDBName:()=>RN,getSelfHostCloudDB:()=>LN,getTableForView:()=>jN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>Q,identity:()=>Ro,isMultiTenant:()=>$r,isScim:()=>Ut,isSelfHostUsingCloud:()=>cc,isTenancyEnabled:()=>bN,isTenantIdSet:()=>wN,setFeatureFlags:()=>mf,setTableForView:()=>HN});var Ro={};P(Ro,{doInAccountContext:()=>zv,doInIdentityContext:()=>qp,doInUserContext:()=>Qp,getAccountUserId:()=>qT,getIdentity:()=>Wp});function Wp(){return cr()}function qp(t,e){return wo(t,e)}function Qp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return qp(n,r)}function zv(t,e){let r=qT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return qp(i,e)}function qT(t){let e;return Ha(t)?e=t.budibaseUserId:e=t.accountId,e}var rc=require("fs");var HT=require("lodash"),jp=require("crypto"),bo=require("path"),Zv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,bo.resolve)((0,bo.join)(__dirname,"..","..","..")),QT=!1;!QT&&tc()&&!Hp()&&(require("dotenv").config({path:(0,bo.join)(Zv,".env")}),QT=!0);function Hp(){return KT()}function KT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function tc(){return process.env.NODE_ENV!=="production"}function Xv(t){if(t)return parseInt(t)}var Hi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},jT=!!parseInt(process.env.SELF_HOSTED||"");function eN(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function tN(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function rN(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,rc.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,rc.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(tc()&&!Hp())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 nN(){return Nt.SERVICE_TYPE==="worker"}function iN(){return Nt.SERVICE_TYPE==="apps"}function sN(){return Nt.BUDIBASE_ENVIRONMENT==="QA"}function oN(){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 Nt={isTest:Hp,isJest:KT,isDev:tc,isWorker:nN,isApps:iN,isQA:sN,isProd:()=>!tc(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,jp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,jp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:eN(),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",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:jT,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||Hi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Hi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Hi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Hi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Hi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Hi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:oN(),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:tN(),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:jT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...rN(),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,Nt[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:Xv(process.env.BSON_BUFFER_SIZE)};function Do(t){let e=(0,HT.cloneDeep)(Nt),r;for(r in t)Nt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Nt._set(n,i)}}function YT(t,e){let r=Do(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var JT=["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(Nt))e==="0"&&(Nt[t]=0),e==="false"&&(Nt[t]=0);var h=Nt;var zT=require("async_hooks"),be=class t{static{this.storage=new zT.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(Et)}function aN(t){if(!t)throw Kp;return t.startsWith(yt)&&!Gr(t)}function Co(t){if(!t)throw Kp;return Gr(t.appId)}function nc(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var Ki=nc;function ct(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function uN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Pt=t=>{let e=Yp(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:Yp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Yp=(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 uA=G(require("@budibase/nano"));var ZT=G(require("node-fetch"));function ic(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function XT(t,e="GET",r){let{url:n,cookie:i}=Pt(),s=`${n}/${t}`;return await vo({url:s,cookie:i,method:e,body:r})}async function vo({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,ZT.default)(ic(encodeURI(t)),i)}async function Jp(t,e="GET",r){let n=await XT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=G(require("pouchdb"));var eA,tA=!1,zp=(t={})=>{let{url:e,cookie:r}=Pt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function sc(t){eA=zp(t),tA=!0}var lN=()=>{if(!tA)throw new Error("init has not been called")};function Tt(t,e){lN();let r=new eA(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 No(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var rA=require("uuid");function fe(){return(0,rA.v4)().replace(/-/g,"")}var Ie=G(require("dd-trace")),Yi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Ie.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 Ie.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Ie.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 Ie.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 Ie.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 Ie.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 Ie.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return Ie.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return Ie.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return Ie.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 Ie.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 Ie.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 Ie.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 Ie.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 Ie.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Ie.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Ie.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Ie.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Ie.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 Ie.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 Ie.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var of={};P(of,{breakExternalTableId:()=>ef,breakRowIdField:()=>IN,buildExternalTableId:()=>yN,convertRowId:()=>_N,encodeTableId:()=>EN,encodeViewId:()=>TN,extractDate:()=>rf,generateRowIdField:()=>AN,getNativeSql:()=>Ji,isExternalTable:()=>Xp,isExternalTableID:()=>oc,isInternalTableID:()=>gN,isRowId:()=>SN,isValidFilter:()=>uc,isValidISODateString:()=>ac,isValidISODateStringWithoutTimezone:()=>tf,isValidTime:()=>nf,sqlLog:()=>Po,validateManyToMany:()=>sf});var Zp=`${w}${w}`,iA=/^\[.*]$/g,dN=encodeURIComponent(" "),pN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,fN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,mN=/(\d{4}-\d{2}-\d{2})/,hN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function oc(t){return t.startsWith("datasource"+w)}function gN(t){return!oc(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 Xp(t){return t?.sourceId&&t.sourceId.includes("datasource"+w)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&oc(t._id))}function yN(t,e){return`${t}${Zp}${encodeURIComponent(e)}`}function EN(t){return oc(t)?encodeURIComponent(t):t}function TN(t){return encodeURIComponent(t)}function ef(t){let e=t.split(Zp),r=e.shift(),n=e.join(Zp);if(n.includes(dN)&&(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 SN(t){return Array.isArray(t)||typeof t=="string"&&t.match(iA)!=null}function _N(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(iA)!=null?t.substring(1,t.length-1):t}function IN(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 ac(t){let e=t.trim();if(!pN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function tf(t){let e=t.trim();if(!fN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function rf(t){let e=t.match(mN);if(e)return e[0]}function uc(t){return t!=null&&t!==""}function nf(t){return hN.test(t)}function Po(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 sf(t){if(ON(t))return t}var sA="Database does not exist.";function oA(t){return(0,uA.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 xN(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=Pt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Pt(n),this.instanceNano=oA(this.couchInfo)),t.nano||t.init()}static init(){let e=Pt();t.nano=oA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await vo({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===sA)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(Hh(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=fe()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===sA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=ic(`${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 vo(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}/${Kt}`;return Po("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(Kt)){let e=await this.get(Kt);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 We(t,e){return new Yi(new zi(t,e))}async function lt(t,e,r){let n=We(t,r);return await e(n)}async function af(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Jp(e)}var cA=null;function Jn(t){return t||(t=Q()),Lo(t)}function lA(t){return t||(t=Q()),t===Te?xe.AUDIT_LOGS.name:`${t}${w}${xe.AUDIT_LOGS.name}`}function RN(t){return t||(t=Q()),t===Te?xe.SCIM_LOGS.name:`${t}${w}${xe.SCIM_LOGS.name}`}function Lo(t){return!t||t===Te?xe.GLOBAL.name:`${t}${w}${xe.GLOBAL.name}`}function uf(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function wN(){return!!be.get()?.tenantId}function bN(){return h.MULTI_TENANCY}function Zi(t){if(!t)return;if(!$r())return Te;let e=t.split(w),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=be.get()}catch{e={}}return e={...e,...t},e}async function Lt(t,e){MN();let r=DN(t);return be.run(r,e)}async function CN(t){return await pA(),await Lt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function cf(t,e){let r=Zi(t);return Lt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Te),Lt(t?{tenantId:t}:{},e)}async function vN(t,e){return Lt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function NN(t,e){return Lt({license:t},e)}function PN(){return be.get()?.license}function cc(){return!!be.get()?.isSelfHostUsingCloud}function LN(){let t=be.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return We(xe.SELF_HOST_CLOUD.name)}async function UN(t,e){return dA(t,e)}async function dA(t,e,r){if(!t)throw new Error("appId is required");let n=Zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Lt(i,e)}async function wo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Lt(r,e)}function MN(){if(be.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function FN(t,e){return dA(t,e,{isMigrating:!0})}function cr(){try{return be.get()?.identity}catch{}}function Q(){if(!$r())return Te;let e=be.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function lf(){return be.get()?.automationId}function Ue(){let e=be.get()?.appId;return!e&&h.isTest()&&cA?cA:e}function df(){return be.get()?.ip}var kN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return Ki(t)},BN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return ct(t)};function GN(t,e){if(!t)throw new Error("Must supply environment variables.");return Lt({environmentVariables:t},e)}function VN(t){return Lt({isScim:!0},t)}function pf(t,e){return Lt({ip:t},e)}async function pA(){let t=zn();if(!t||t.snippets)return;let e,r=Xi();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function $N(){let t=be.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=be.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 We(Lo(t?.tenantId))}function WN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return We(lA())}function Xi(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(cc())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return We(e,t)}function qN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return We(ct(e),t)}function QN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return We(nc(e),t)}function Ut(){return!!be.get()?.isScim}function zn(){try{return be.get()}catch{return}}function ff(t){let e=zn();if(e)return e.featureFlagCache?.[t]}function mf(t,e){let r=zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function hf(){return zn()?.featureFlagOverrides||{}}async function gf(t,e){return await Lt({featureFlagOverrides:t},e)}function jN(t){let e=zn();if(e)return e.viewToTableCache?.[t]}function HN(t,e){let r=zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var qr={};P(qr,{getAppClient:()=>hc,getCacheClient:()=>_f,getDocWritethroughClient:()=>ZN,getInviteClient:()=>ei,getLockClient:()=>Of,getPasswordResetClient:()=>qo,getSessionClient:()=>Wr,getSocketClient:()=>zN,getUserClient:()=>Wo,getWritethroughClient:()=>If,init:()=>Mt,shutdown:()=>hA});var mc=G(require("ioredis"));var pc={};P(pc,{Databases:()=>yf,SEPARATOR:()=>es,SelectableDatabase:()=>lc,getRedisClusterOptions:()=>Ef,getRedisConnectionDetails:()=>dc,getRedisOptions:()=>Zn,removeDbPrefix:()=>Tf});var es="-",yf=(_=>(_.PW_RESETS="pwReset",_.VERIFICATIONS="verification",_.INVITATIONS="invitation",_.DEV_LOCKS="devLocks",_.DEBOUNCE="debounce",_.SESSIONS="session",_.USER_CACHE="users",_.FLAGS="flags",_.APP_METADATA="appMetadata",_.QUERY_VARS="queryVars",_.LICENSES="license",_.GENERIC_CACHE="data_cache",_.WRITE_THROUGH="writeThrough",_.LOCKS="locks",_.SOCKET_IO="socket_io",_.BPM_EVENTS="bpmEvents",_.DOC_WRITE_THROUGH="docWriteThrough",_.RECAPTCHA_SESSION="recaptchaSession",_))(yf||{}),lc=(y=>(y[y.DEFAULT=0]="DEFAULT",y[y.SOCKET_IO=1]="SOCKET_IO",y[y.RATE_LIMITING=2]="RATE_LIMITING",y[y.UNUSED_2=3]="UNUSED_2",y[y.UNUSED_3=4]="UNUSED_3",y[y.UNUSED_4=5]="UNUSED_4",y[y.UNUSED_5=6]="UNUSED_5",y[y.UNUSED_6=7]="UNUSED_6",y[y.UNUSED_7=8]="UNUSED_7",y[y.UNUSED_8=9]="UNUSED_8",y[y.UNUSED_9=10]="UNUSED_9",y[y.UNUSED_10=11]="UNUSED_10",y[y.UNUSED_11=12]="UNUSED_11",y[y.UNUSED_12=13]="UNUSED_12",y[y.UNUSED_13=14]="UNUSED_13",y[y.UNUSED_14=15]="UNUSED_14",y))(lc||{});function dc(){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 Ef(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zn(),tls:{}}}}function Zn(){let{host:t,password:e,port:r}=dc();return{connectTimeout:3e4,port:r,host:t,password:e}}function Tf(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var fc=require("dd-trace"),mA=require("lodash"),fA;if(h.MOCK_REDIS)try{fA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function KN(t=0){return await fc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new fA(Zn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=dc();r=new mc.Cluster([{host:n,port:i}],Ef())}else r=new mc.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 YN(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:Tf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function JN(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 fc.tracer.trace("RedisWrapper.init",async n=>{let i=await KN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return fc.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;JN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await YN(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,mA.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,Ke({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Ah.default)({args:d,value:l,path:s,sync:i,tests:f,endEarly:c},m=>{if(m)return void n(m,l);(0,Ah.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(Ke({},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(Ke({},r,{value:e})),i;return n._validate(e,Ke({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(_h.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(_h.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Th.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=Dn.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Dn.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=Dn.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Xo.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,dO.default)(e).map(s=>new cO.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new uO.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Xo.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=Dn.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,Xo.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=Dn.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,Xo.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)}}};ea.default=st;st.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])st.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,lO.getIn)(this,e,r,n.context);return o[t](i&&i[s],Ke({},n,{parent:i,path:e}))};for(let t of["equals","is"])st.prototype[t]=st.prototype.oneOf;for(let t of["not","nope"])st.prototype[t]=st.prototype.notOneOf;st.prototype.optional=st.prototype.notRequired});var wh=G(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.create=Oh;Bi.default=void 0;var fO=pO(xt());function pO(t){return t&&t.__esModule?t:{default:t}}var zc=fO.default,mO=zc;Bi.default=mO;function Oh(){return new zc}Oh.prototype=zc.prototype});var Rn=G(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.default=void 0;var hO=t=>t==null;ta.default=hO});var xh=G(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.create=Ch;Vi.default=void 0;var EO=bh(xt()),Dh=bt(),Rh=bh(Rn());function bh(t){return t&&t.__esModule?t:{default:t}}function Ch(){return new $i}var $i=class extends EO.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=Dh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Rh.default)(r)||r===!0}})}isFalse(e=Dh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Rh.default)(r)||r===!1}})}};Vi.default=$i;Ch.prototype=$i.prototype});var Nh=G(Wi=>{"use strict";Object.defineProperty(Wi,"__esModule",{value:!0});Wi.create=Ph;Wi.default=void 0;var At=bt(),vt=vh(Rn()),gO=vh(xt());function vh(t){return t&&t.__esModule?t:{default:t}}var yO=/^((([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,TO=/^((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,AO=/^(?:[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,SO=t=>(0,vt.default)(t)||t===t.trim(),_O={}.toString();function Ph(){return new Gi}var Gi=class extends gO.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===_O?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=At.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,vt.default)(n)||n.length===this.resolve(e)}})}min(e,r=At.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,vt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=At.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,vt.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||At.string.matches,params:{regex:e},test:o=>(0,vt.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=At.string.email){return this.matches(yO,{name:"email",message:e,excludeEmptyString:!0})}url(e=At.string.url){return this.matches(TO,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=At.string.uuid){return this.matches(AO,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=At.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:SO})}lowercase(e=At.string.lowercase){return this.transform(r=>(0,vt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,vt.default)(r)||r===r.toLowerCase()})}uppercase(e=At.string.uppercase){return this.transform(r=>(0,vt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,vt.default)(r)||r===r.toUpperCase()})}};Wi.default=Gi;Ph.prototype=Gi.prototype});var Mh=G(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.create=Lh;Qi.default=void 0;var kr=bt(),Fr=Uh(Rn()),IO=Uh(xt());function Uh(t){return t&&t.__esModule?t:{default:t}}var OO=t=>t!=+t;function Lh(){return new qi}var qi=class extends IO.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"&&!OO(e)}min(e,r=kr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Fr.default)(n)||n>=this.resolve(e)}})}max(e,r=kr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Fr.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=kr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Fr.default)(n)||n<this.resolve(e)}})}moreThan(e,r=kr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Fr.default)(n)||n>this.resolve(e)}})}positive(e=kr.number.positive){return this.moreThan(0,e)}negative(e=kr.number.negative){return this.lessThan(0,e)}integer(e=kr.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Fr.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Fr.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,Fr.default)(i)?i:Math[e](i))}};Qi.default=qi;Lh.prototype=qi.prototype});var kh=G(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});Jc.default=DO;var wO=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function DO(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=wO.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 $h=G(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.create=Xc;Ki.default=void 0;var RO=ra(kh()),Fh=bt(),Bh=ra(Rn()),bO=ra(Mr()),CO=ra(xt());function ra(t){return t&&t.__esModule?t:{default:t}}var Zc=new Date(""),xO=t=>Object.prototype.toString.call(t)==="[object Date]";function Xc(){return new bn}var bn=class extends CO.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,RO.default)(e),isNaN(e)?Zc:new Date(e))})})}_typeCheck(e){return xO(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(bO.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=Fh.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Bh.default)(i)||i>=this.resolve(n)}})}max(e,r=Fh.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Bh.default)(i)||i<=this.resolve(n)}})}};Ki.default=bn;bn.INVALID_DATE=Zc;Xc.prototype=bn.prototype;Xc.INVALID_DATE=Zc});var Gh=G((VM,el)=>{"use strict";el.exports=function(t){return Vh(vO(t),t)};el.exports.array=Vh;function Vh(t,e){var r=t.length,n=new Array(r),i={},s=r,o=PO(e),a=NO(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 f;try{f=", node was:"+JSON.stringify(c)}catch{f=""}throw new Error("Cyclic dependency"+f)}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 m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){d.add(c);do{var p=m[--l];u(p,a.get(p),d)}while(l);d.delete(c)}n[--r]=c}}}function vO(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 PO(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 NO(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Wh=G(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});tl.default=BO;var UO=na(require("lodash/has")),LO=na(Gh()),MO=Li(),kO=na(Mr()),FO=na(wn());function na(t){return t&&t.__esModule?t:{default:t}}function BO(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,MO.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,UO.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),kO.default.isRef(o)&&o.isSibling?i(o.path,s):(0,FO.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return LO.default.array(n,r).reverse()}});var Qh=G(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});rl.default=$O;function qh(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 $O(t){return(e,r)=>qh(t,e)-qh(t,r)}});var Zh=G(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.create=Jh;Yi.default=void 0;var Kh=St(require("lodash/has")),jh=St(require("lodash/snakeCase")),VO=St(require("lodash/camelCase")),GO=St(require("lodash/mapKeys")),WO=St(require("lodash/mapValues")),qO=Li(),Yh=bt(),QO=St(Wh()),zh=St(Qh()),KO=St(Yo()),jO=St(Ur()),nl=St(xt());function St(t){return t&&t.__esModule?t:{default:t}}function Cn(){return Cn=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},Cn.apply(this,arguments)}var Hh=t=>Object.prototype.toString.call(t)==="[object Object]";function YO(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var HO=(0,zh.default)([]),ji=class extends nl.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=HO,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 Hh(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=Cn({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let f=s[d],m=(0,Kh.default)(i,d);if(f){let p,E=i[d];c.path=(r.path?`${r.path}.`:"")+d,f=f.resolve({value:E,context:r.context,parent:u});let g="spec"in f?f.spec:void 0,T=g?.strict;if(g?.strip){l=l||d in i;continue}p=!r.__validating||!T?f.cast(i[d],c):i[d],p!==void 0&&(u[d]=p)}else m&&!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(!jO.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!Hh(d)){n(i[0]||null,d);return}a=a||d;let f=this._nodes.map(m=>(p,E)=>{let g=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(d[m],Cn({},r,{path:g,from:o,strict:!0,parent:d,originalValue:a[m]}),E);return}E(null)});(0,KO.default)({sync:s,tests:f,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Cn({},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 nl.default&&s instanceof nl.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,zh.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,QO.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,qO.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Kh.default)(s,e)&&(o=Cn({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Yh.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=YO(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Yh.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,GO.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(VO.default)}snakeCase(){return this.transformKeys(jh.default)}constantCase(){return this.transformKeys(e=>(0,jh.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,WO.default)(this.fields,r=>r.describe()),e}};Yi.default=ji;function Jh(t){return new ji(t)}Jh.prototype=ji.prototype});var eE=G(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.create=Xh;zi.default=void 0;var il=xn(Rn()),zO=xn(wn()),JO=xn(Ui()),sl=bt(),ZO=xn(Yo()),XO=xn(Ur()),ew=xn(xt());function xn(t){return t&&t.__esModule?t:{default:t}}function ia(){return ia=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ia.apply(this,arguments)}function Xh(t){return new Hi(t)}var Hi=class extends ew.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,ia({},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,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,p)=>{if(m){if(!XO.default.isError(m)||l)return void n(m,p);o.push(m)}if(!d||!c||!this._typeCheck(p)){n(o[0]||null,p);return}f=f||p;let E=new Array(p.length);for(let g=0;g<p.length;g++){let T=p[g],_=`${r.path||""}[${g}]`,S=ia({},r,{path:_,strict:!0,parent:p,index:g,originalValue:f[g]});E[g]=(w,y)=>c.validate(T,S,y)}(0,ZO.default)({sync:a,path:u,value:p,errors:o,endEarly:l,tests:E},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,zO.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,JO.default)(e));return r.innerType=e,r}length(e,r=sl.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,il.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||sl.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,il.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||sl.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,il.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,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)}};zi.default=Hi;Xh.prototype=Hi.prototype});var tE=G(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=nw;Ji.default=void 0;var tw=rw(wn());function rw(t){return t&&t.__esModule?t:{default:t}}function nw(t){return new sa(t)}var sa=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,tw.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)}},iw=sa;Ji.default=iw});var rE=G(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});ol.default=aw;var sw=ow(bt());function ow(t){return t&&t.__esModule?t:{default:t}}function aw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{sw.default[e][r]=t[e][r]})})}});var ul=G(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.addMethod=mw;Object.defineProperty(te,"MixedSchema",{enumerable:!0,get:function(){return nE.default}});Object.defineProperty(te,"mixed",{enumerable:!0,get:function(){return nE.create}});Object.defineProperty(te,"BooleanSchema",{enumerable:!0,get:function(){return al.default}});Object.defineProperty(te,"bool",{enumerable:!0,get:function(){return al.create}});Object.defineProperty(te,"boolean",{enumerable:!0,get:function(){return al.create}});Object.defineProperty(te,"StringSchema",{enumerable:!0,get:function(){return iE.default}});Object.defineProperty(te,"string",{enumerable:!0,get:function(){return iE.create}});Object.defineProperty(te,"NumberSchema",{enumerable:!0,get:function(){return sE.default}});Object.defineProperty(te,"number",{enumerable:!0,get:function(){return sE.create}});Object.defineProperty(te,"DateSchema",{enumerable:!0,get:function(){return oE.default}});Object.defineProperty(te,"date",{enumerable:!0,get:function(){return oE.create}});Object.defineProperty(te,"ObjectSchema",{enumerable:!0,get:function(){return aE.default}});Object.defineProperty(te,"object",{enumerable:!0,get:function(){return aE.create}});Object.defineProperty(te,"ArraySchema",{enumerable:!0,get:function(){return uE.default}});Object.defineProperty(te,"array",{enumerable:!0,get:function(){return uE.create}});Object.defineProperty(te,"ref",{enumerable:!0,get:function(){return uw.create}});Object.defineProperty(te,"lazy",{enumerable:!0,get:function(){return cw.create}});Object.defineProperty(te,"ValidationError",{enumerable:!0,get:function(){return lw.default}});Object.defineProperty(te,"reach",{enumerable:!0,get:function(){return dw.default}});Object.defineProperty(te,"isSchema",{enumerable:!0,get:function(){return cE.default}});Object.defineProperty(te,"setLocale",{enumerable:!0,get:function(){return fw.default}});Object.defineProperty(te,"BaseSchema",{enumerable:!0,get:function(){return pw.default}});var nE=Br(wh()),al=Br(xh()),iE=Br(Nh()),sE=Br(Mh()),oE=Br($h()),aE=Br(Zh()),uE=Br(eE()),uw=Mr(),cw=tE(),lw=Zi(Ur()),dw=Zi(Yc()),cE=Zi(wn()),fw=Zi(rE()),pw=Zi(xt());function Zi(t){return t&&t.__esModule?t:{default:t}}function lE(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return lE=function(){return t},t}function Br(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=lE();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 mw(t,e,r){if(!t||!(0,cE.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 dE=G(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});var cl=dl();ll.default=()=>{(0,cl.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,cl.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,cl.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 dl=G(Te=>{"use strict";var hw=Te&&Te.__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]}),Ew=Te&&Te.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gw=Te&&Te.__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)&&hw(e,t,r);return Ew(e,t),e},yw=Te&&Te.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Te,"__esModule",{value:!0});Te.validateOptions=Te.registerOptionPreset=Te.getOptionPresets=Te.getOptionPreset=void 0;var D=gw(ul());ul();var Xi=nt(),Tw=yw(dE());it();var $r={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}}},fE=D.object({presetId:D.string().required(),useSeconds:D.boolean().required(),useYears:D.boolean().required(),useAliases:D.boolean(),useBlankDay:D.boolean().required(),allowOnlyOneBlankDayField:D.boolean().required(),mustHaveBlankDayField:D.boolean(),useLastDayOfMonth:D.boolean(),useLastDayOfWeek:D.boolean(),useNearestWeekday:D.boolean(),useNthWeekdayOfMonth:D.boolean(),seconds:D.object({minValue:D.number().min(0).required(),maxValue:D.number().min(0).required(),lowerLimit:D.number().min(0),upperLimit:D.number().min(0)}).required(),minutes:D.object({minValue:D.number().min(0).required(),maxValue:D.number().min(0).required(),lowerLimit:D.number().min(0),upperLimit:D.number().min(0)}).required(),hours:D.object({minValue:D.number().min(0).required(),maxValue:D.number().min(0).required(),lowerLimit:D.number().min(0),upperLimit:D.number().min(0)}).required(),daysOfMonth:D.object({minValue:D.number().min(0).required(),maxValue:D.number().min(0).required(),lowerLimit:D.number().min(0),upperLimit:D.number().min(0)}).required(),months:D.object({minValue:D.number().min(0).required(),maxValue:D.number().min(0).required(),lowerLimit:D.number().min(0),upperLimit:D.number().min(0)}).required(),daysOfWeek:D.object({minValue:D.number().min(0).required(),maxValue:D.number().min(0).required(),lowerLimit:D.number().min(0),upperLimit:D.number().min(0)}).required(),years:D.object({minValue:D.number().min(0).required(),maxValue:D.number().min(0).required(),lowerLimit:D.number().min(0),upperLimit:D.number().min(0)}).required()}).required(),Aw=t=>$r[t]?(0,Xi.valid)($r[t]):(0,Xi.err)(`Option preset '${t}' not found.`);Te.getOptionPreset=Aw;var Sw=()=>$r;Te.getOptionPresets=Sw;var _w=(t,e)=>{$r[t]=fE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Te.registerOptionPreset=_w;var Iw=t=>{var e,r,n,i,s,o,a,u,c,l,d,f,m,p,E,g,T,_,S,w;try{(0,Tw.default)();let y;if(t.preset)if(typeof t.preset=="string"){if(!$r[t.preset])return(0,Xi.err)([`Option preset ${t.preset} does not exist.`]);y=$r[t.preset]}else y=t.preset;else y=$r.default;let I=Object.assign(Object.assign({presetId:y.presetId,preset:y},{useSeconds:y.useSeconds,useYears:y.useYears,useAliases:(e=y.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:y.useBlankDay,allowOnlyOneBlankDayField:y.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=y.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=y.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=y.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=y.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=y.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=y.seconds.lowerLimit)!==null&&a!==void 0?a:y.seconds.minValue,upperLimit:(u=y.seconds.upperLimit)!==null&&u!==void 0?u:y.seconds.maxValue},minutes:{lowerLimit:(c=y.minutes.lowerLimit)!==null&&c!==void 0?c:y.minutes.minValue,upperLimit:(l=y.minutes.upperLimit)!==null&&l!==void 0?l:y.minutes.maxValue},hours:{lowerLimit:(d=y.hours.lowerLimit)!==null&&d!==void 0?d:y.hours.minValue,upperLimit:(f=y.hours.upperLimit)!==null&&f!==void 0?f:y.hours.maxValue},daysOfMonth:{lowerLimit:(m=y.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:y.daysOfMonth.minValue,upperLimit:(p=y.daysOfMonth.upperLimit)!==null&&p!==void 0?p:y.daysOfMonth.maxValue},months:{lowerLimit:(E=y.months.lowerLimit)!==null&&E!==void 0?E:y.months.minValue,upperLimit:(g=y.months.upperLimit)!==null&&g!==void 0?g:y.months.maxValue},daysOfWeek:{lowerLimit:(T=y.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:y.daysOfWeek.minValue,upperLimit:(_=y.daysOfWeek.upperLimit)!==null&&_!==void 0?_:y.daysOfWeek.maxValue},years:{lowerLimit:(S=y.years.lowerLimit)!==null&&S!==void 0?S:y.years.minValue,upperLimit:(w=y.years.upperLimit)!==null&&w!==void 0?w:y.years.maxValue}}),t.override),v=D.object({presetId:D.string().required(),preset:fE.required(),useSeconds:D.boolean().required(),useYears:D.boolean().required(),useAliases:D.boolean(),useBlankDay:D.boolean().required(),allowOnlyOneBlankDayField:D.boolean().required(),mustHaveBlankDayField:D.boolean(),useLastDayOfMonth:D.boolean(),useLastDayOfWeek:D.boolean(),useNearestWeekday:D.boolean(),useNthWeekdayOfMonth:D.boolean(),seconds:D.object({lowerLimit:D.number().min(y.seconds.minValue).max(y.seconds.maxValue),upperLimit:D.number().min(y.seconds.minValue).max(y.seconds.maxValue)}).required(),minutes:D.object({lowerLimit:D.number().min(y.minutes.minValue).max(y.minutes.maxValue),upperLimit:D.number().min(y.minutes.minValue).max(y.minutes.maxValue)}).required(),hours:D.object({lowerLimit:D.number().min(y.hours.minValue).max(y.hours.maxValue),upperLimit:D.number().min(y.hours.minValue).max(y.hours.maxValue)}).required(),daysOfMonth:D.object({lowerLimit:D.number().min(y.daysOfMonth.minValue).max(y.daysOfMonth.maxValue),upperLimit:D.number().min(y.daysOfMonth.minValue).max(y.daysOfMonth.maxValue)}).required(),months:D.object({lowerLimit:D.number().min(y.months.minValue).max(y.months.maxValue),upperLimit:D.number().min(y.months.minValue).max(y.months.maxValue)}).required(),daysOfWeek:D.object({lowerLimit:D.number().min(y.daysOfWeek.minValue).max(y.daysOfWeek.maxValue),upperLimit:D.number().min(y.daysOfWeek.minValue).max(y.daysOfWeek.maxValue)}).required(),years:D.object({lowerLimit:D.number().min(y.years.minValue).max(y.years.maxValue),upperLimit:D.number().min(y.years.minValue).max(y.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,Xi.valid)(v)}catch(y){return(0,Xi.err)(y.errors)}};Te.validateOptions=Iw});var Tt=G((es,pl)=>{"use strict";var Gr=es&&es.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(es,"__esModule",{value:!0});var Vr=nt(),Ow=Gr(Vm()),ww=Gr(Gm()),Dw=Gr(Wm()),Rw=Gr(qm()),bw=Gr(Qm()),Cw=Gr(Km()),xw=Gr(jm()),vw=dl();it();var Pw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Vr.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Vr.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Vr.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,Vr.valid)(n)},fl=(t,e={})=>{let r=(0,vw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Pw(t,n);if(i.isError())return(0,Vr.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Ow.default)(s,n)),o.push((0,ww.default)(s,n)),o.push((0,Dw.default)(s,n)),o.push((0,Rw.default)(s,n)),o.push((0,bw.default)(s,n)),o.push((0,Cw.default)(s,n)),n.useYears&&o.push((0,xw.default)(s,n)),o.every(u=>u.isValid()))return(0,Vr.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,Vr.err)(a)};es.default=fl;pl.exports=fl;pl.exports.default=fl});var Gg=G(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});var Nt=class extends Error{},Il=class extends Nt{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ol=class extends Nt{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},wl=class extends Nt{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},nr=class extends Nt{},pa=class extends Nt{constructor(e){super(`Invalid unit ${e}`)}},Ae=class extends Nt{},_t=class extends Nt{constructor(){super("Zone is an abstract class")}},C="numeric",ut="short",Be="long",ma={year:C,month:C,day:C},WE={year:C,month:ut,day:C},Nw={year:C,month:ut,day:C,weekday:ut},qE={year:C,month:Be,day:C},QE={year:C,month:Be,day:C,weekday:Be},KE={hour:C,minute:C},jE={hour:C,minute:C,second:C},YE={hour:C,minute:C,second:C,timeZoneName:ut},HE={hour:C,minute:C,second:C,timeZoneName:Be},zE={hour:C,minute:C,hourCycle:"h23"},JE={hour:C,minute:C,second:C,hourCycle:"h23"},ZE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:ut},XE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Be},eg={year:C,month:C,day:C,hour:C,minute:C},tg={year:C,month:C,day:C,hour:C,minute:C,second:C},rg={year:C,month:ut,day:C,hour:C,minute:C},ng={year:C,month:ut,day:C,hour:C,minute:C,second:C},Uw={year:C,month:ut,day:C,weekday:ut,hour:C,minute:C},ig={year:C,month:Be,day:C,hour:C,minute:C,timeZoneName:ut},sg={year:C,month:Be,day:C,hour:C,minute:C,second:C,timeZoneName:ut},og={year:C,month:Be,day:C,weekday:Be,hour:C,minute:C,timeZoneName:Be},ag={year:C,month:Be,day:C,weekday:Be,hour:C,minute:C,second:C,timeZoneName:Be},sr=class{get type(){throw new _t}get name(){throw new _t}get ianaName(){return this.name}get isUniversal(){throw new _t}offsetName(e,r){throw new _t}formatOffset(e,r){throw new _t}offset(e){throw new _t}equals(e){throw new _t}get isValid(){throw new _t}},ml=null,os=class t extends sr{static get instance(){return ml===null&&(ml=new t),ml}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return yg(e,r,n)}formatOffset(e,r){return ss(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Dl=new Map;function Lw(t){let e=Dl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),Dl.set(t,e)),e}var Mw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function kw(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 Fw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Mw[s];s==="era"?n[a]=o:Q(a)||(n[a]=parseInt(o,10))}return n}var hl=new Map,Ut=class t extends sr{static create(e){let r=hl.get(e);return r===void 0&&hl.set(e,r=new t(e)),r}static resetCache(){hl.clear(),Dl.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return yg(e,r,n,this.name)}formatOffset(e,r){return ss(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=Lw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Fw(n,r):kw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let f=Sa({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,p=m%1e3;return m-=p>=0?p:1e3+p,(f-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},pE={};function Bw(t,e={}){let r=JSON.stringify([t,e]),n=pE[r];return n||(n=new Intl.ListFormat(t,e),pE[r]=n),n}var Rl=new Map;function bl(t,e={}){let r=JSON.stringify([t,e]),n=Rl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Rl.set(r,n)),n}var Cl=new Map;function $w(t,e={}){let r=JSON.stringify([t,e]),n=Cl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Cl.set(r,n)),n}var xl=new Map;function Vw(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=xl.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(t,e),xl.set(i,s)),s}var rs=null;function Gw(){return rs||(rs=new Intl.DateTimeFormat().resolvedOptions().locale,rs)}var vl=new Map;function ug(t){let e=vl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),vl.set(t,e)),e}var Pl=new Map;function Ww(t){let e=Pl.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...cg,...e}),Pl.set(t,e)}return e}function qw(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=bl(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=bl(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Qw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Kw(t){let e=[];for(let r=1;r<=12;r++){let n=se.utc(2009,r,1);e.push(t(n))}return e}function jw(t){let e=[];for(let r=1;r<=7;r++){let n=se.utc(2016,11,13+r);e.push(t(n))}return e}function oa(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}function Yw(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||ug(t.locale).numberingSystem==="latn"}var Nl=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=$w(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):ql(e,3);return fe(r,this.padTo)}}},Ul=class{constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&Ut.create(a).valid?(i=a,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=bl(r,s)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},Ll=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&Eg()&&(this.rtf=Vw(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):hD(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},cg={firstDay:1,minimalDays:4,weekend:[6,7]},X=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,s=!1){let o=e||re.defaultLocale,a=o||(s?"en-US":Gw()),u=r||re.defaultNumberingSystem,c=n||re.defaultOutputCalendar,l=kl(i)||re.defaultWeekSettings;return new t(a,u,c,l,o)}static resetCache(){rs=null,Rl.clear(),Cl.clear(),xl.clear(),vl.clear(),Pl.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,s){let[o,a,u]=qw(e);this.locale=o,this.numberingSystem=r||a||null,this.outputCalendar=n||u||null,this.weekSettings=i,this.intl=Qw(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Yw(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,kl(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return oa(this,e,Sg,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";if(!this.monthsCache[s][e]){let o=n?a=>this.dtFormatter(a,i).format():a=>this.extract(a,i,"month");this.monthsCache[s][e]=Kw(o)}return this.monthsCache[s][e]})}weekdays(e,r=!1){return oa(this,e,Og,()=>{let n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=r?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=jw(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return oa(this,void 0,()=>wg,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[se.utc(2016,11,13,9),se.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return oa(this,e,Dg,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[se.utc(-40,1,1),se.utc(2017,1,1)].map(n=>this.extract(n,r,"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 Nl(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Ul(e,this.intl,r)}relFormatter(e={}){return new Ll(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Bw(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||ug(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:gg()?Ww(this.locale):cg}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},El=null,$e=class t extends sr{static get utcInstance(){return El===null&&(El=new t(0)),El}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(_a(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ss(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ss(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ss(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}},ha=class extends sr{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 rr(t,e){if(Q(t)||t===null)return e;if(t instanceof sr)return t;if(eD(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?os.instance:r==="utc"||r==="gmt"?$e.utcInstance:$e.parseSpecifier(r)||Ut.create(t)}else return ir(t)?$e.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new ha(t)}var $l={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"},mE={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]},Hw=$l.hanidec.replace(/[\[|\]]/g,"").split("");function zw(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($l.hanidec)!==-1)e+=Hw.indexOf(t[r]);else for(let i in mE){let[s,o]=mE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}var Ml=new Map;function Jw(){Ml.clear()}function ot({numberingSystem:t},e=""){let r=t||"latn",n=Ml.get(r);n===void 0&&(n=new Map,Ml.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${$l[r]}${e}`),n.set(e,i)),i}var hE=()=>Date.now(),EE="system",gE=null,yE=null,TE=null,AE=60,SE,_E=null,re=class{static get now(){return hE}static set now(e){hE=e}static set defaultZone(e){EE=e}static get defaultZone(){return rr(EE,os.instance)}static get defaultLocale(){return gE}static set defaultLocale(e){gE=e}static get defaultNumberingSystem(){return yE}static set defaultNumberingSystem(e){yE=e}static get defaultOutputCalendar(){return TE}static set defaultOutputCalendar(e){TE=e}static get defaultWeekSettings(){return _E}static set defaultWeekSettings(e){_E=kl(e)}static get twoDigitCutoffYear(){return AE}static set twoDigitCutoffYear(e){AE=e%100}static get throwOnInvalid(){return SE}static set throwOnInvalid(e){SE=e}static resetCaches(){X.resetCache(),Ut.resetCache(),se.resetCache(),Jw()}},Fe=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},lg=[0,31,59,90,120,151,181,212,243,273,304,334],dg=[0,31,60,91,121,152,182,213,244,274,305,335];function Ye(t,e){return new Fe("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function Vl(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 fg(t,e,r){return r+(us(t)?dg:lg)[e-1]}function pg(t,e){let r=us(t)?dg:lg,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Gl(t,e){return(t-e+7)%7+1}function Ea(t,e=4,r=1){let{year:n,month:i,day:s}=t,o=fg(n,i,s),a=Gl(Vl(n,i,s),r),u=Math.floor((o-a+14-e)/7),c;return u<1?(c=n-1,u=as(c,e,r)):u>as(n,e,r)?(c=n+1,u=1):c=n,{weekYear:c,weekNumber:u,weekday:a,...Ia(t)}}function IE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:s}=t,o=Gl(Vl(n,1,e),r),a=Un(n),u=i*7+s-o-7+e,c;u<1?(c=n-1,u+=Un(c)):u>a?(c=n+1,u-=Un(n)):c=n;let{month:l,day:d}=pg(c,u);return{year:c,month:l,day:d,...Ia(t)}}function gl(t){let{year:e,month:r,day:n}=t,i=fg(e,r,n);return{year:e,ordinal:i,...Ia(t)}}function OE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=pg(e,r);return{year:e,month:n,day:i,...Ia(t)}}function wE(t,e){if(!Q(t.localWeekday)||!Q(t.localWeekNumber)||!Q(t.localWeekYear)){if(!Q(t.weekday)||!Q(t.weekNumber)||!Q(t.weekYear))throw new nr("Cannot mix locale-based week fields with ISO-based week fields");return Q(t.localWeekday)||(t.weekday=t.localWeekday),Q(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Q(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function Zw(t,e=4,r=1){let n=Aa(t.weekYear),i=He(t.weekNumber,1,as(t.weekYear,e,r)),s=He(t.weekday,1,7);return n?i?s?!1:Ye("weekday",t.weekday):Ye("week",t.weekNumber):Ye("weekYear",t.weekYear)}function Xw(t){let e=Aa(t.year),r=He(t.ordinal,1,Un(t.year));return e?r?!1:Ye("ordinal",t.ordinal):Ye("year",t.year)}function mg(t){let e=Aa(t.year),r=He(t.month,1,12),n=He(t.day,1,ga(t.year,t.month));return e?r?n?!1:Ye("day",t.day):Ye("month",t.month):Ye("year",t.year)}function hg(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=He(e,0,23)||e===24&&r===0&&n===0&&i===0,o=He(r,0,59),a=He(n,0,59),u=He(i,0,999);return s?o?a?u?!1:Ye("millisecond",i):Ye("second",n):Ye("minute",r):Ye("hour",e)}function Q(t){return typeof t>"u"}function ir(t){return typeof t=="number"}function Aa(t){return typeof t=="number"&&t%1===0}function eD(t){return typeof t=="string"}function tD(t){return Object.prototype.toString.call(t)==="[object Date]"}function Eg(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function gg(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function rD(t){return Array.isArray(t)?t:[t]}function DE(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 nD(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Mn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function kl(t){if(t==null)return null;if(typeof t!="object")throw new Ae("Week settings must be an object");if(!He(t.firstDay,1,7)||!He(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!He(e,1,7)))throw new Ae("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function He(t,e,r){return Aa(t)&&t>=e&&t<=r}function iD(t,e){return t-e*Math.floor(t/e)}function fe(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function tr(t){if(!(Q(t)||t===null||t===""))return parseInt(t,10)}function Wr(t){if(!(Q(t)||t===null||t===""))return parseFloat(t)}function Wl(t){if(!(Q(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function ql(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}function us(t){return t%4===0&&(t%100!==0||t%400===0)}function Un(t){return us(t)?366:365}function ga(t,e){let r=iD(e-1,12)+1,n=t+(e-r)/12;return r===2?us(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Sa(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function RE(t,e,r){return-Gl(Vl(t,1,e),r)+e-1}function as(t,e=4,r=1){let n=RE(t,e,r),i=RE(t+1,e,r);return(Un(t)-n+i)/7}function Fl(t){return t>99?t:t>re.twoDigitCutoffYear?1900+t:2e3+t}function yg(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 _a(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 Tg(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new Ae(`Invalid unit value ${t}`);return e}function ya(t,e){let r={};for(let n in t)if(Mn(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=Tg(i)}return r}function ss(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}${fe(r,2)}:${fe(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${fe(r,2)}${fe(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Ia(t){return nD(t,["hour","minute","second","millisecond"])}var sD=["January","February","March","April","May","June","July","August","September","October","November","December"],Ag=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],oD=["J","F","M","A","M","J","J","A","S","O","N","D"];function Sg(t){switch(t){case"narrow":return[...oD];case"short":return[...Ag];case"long":return[...sD];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 _g=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Ig=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],aD=["M","T","W","T","F","S","S"];function Og(t){switch(t){case"narrow":return[...aD];case"short":return[...Ig];case"long":return[..._g];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var wg=["AM","PM"],uD=["Before Christ","Anno Domini"],cD=["BC","AD"],lD=["B","A"];function Dg(t){switch(t){case"narrow":return[...lD];case"short":return[...cD];case"long":return[...uD];default:return null}}function dD(t){return wg[t.hour<12?0:1]}function fD(t,e){return Og(e)[t.weekday-1]}function pD(t,e){return Sg(e)[t.month-1]}function mD(t,e){return Dg(e)[t.year<0?0:1]}function hD(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 bE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var ED={D:ma,DD:WE,DDD:qE,DDDD:QE,t:KE,tt:jE,ttt:YE,tttt:HE,T:zE,TT:JE,TTT:ZE,TTTT:XE,f:eg,ff:rg,fff:ig,ffff:og,F:tg,FF:ng,FFF:sg,FFFF:ag},ke=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||i)&&s.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||a===r?n+=a:(n.length>0&&s.push({literal:/^\s+$/.test(n),val:n}),n=a,r=a)}return n.length>0&&s.push({literal:i||/^\s+$/.test(n),val:n}),s}static macroTokenToFormatOpts(e){return ED[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return fe(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(m,p)=>this.loc.extract(e,m,p),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?dD(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,p)=>n?pD(e,m):s(p?{month:m}:{month:m,day:"numeric"},"month"),c=(m,p)=>n?fD(e,m):s(p?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let p=t.macroTokenToFormatOpts(m);return p?this.formatWithSystemDefault(e,p):m},d=m=>n?mD(e,m):s({era:m},"era"),f=m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return 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"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(m)}};return bE(t.parseFormat(r),f)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=l=>{switch(l[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},s=(l,d)=>f=>{let m=i(f);if(m){let p=d.isNegativeDuration&&m!==d.largestUnit?n:1,E;return this.opts.signMode==="negativeLargestOnly"&&m!==d.largestUnit?E="never":this.opts.signMode==="all"?E="always":E="auto",this.num(l.get(m)*p,f.length,E)}else return f},o=t.parseFormat(r),a=o.reduce((l,{literal:d,val:f})=>d?l:l.concat(f),[]),u=e.shiftTo(...a.map(i).filter(l=>l)),c={isNegativeDuration:u<0,largestUnit:Object.keys(u.values)[0]};return bE(o,s(u,c))}},Rg=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function kn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Fn(...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 Bn(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 bg(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=tr(e[r+i]);return[n,null,r+i]}}var Cg=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,gD=`(?:${Cg.source}?(?:\\[(${Rg.source})\\])?)?`,Ql=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,xg=RegExp(`${Ql.source}${gD}`),Kl=RegExp(`(?:[Tt]${xg.source})?`),yD=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,TD=/(\d{4})-?W(\d\d)(?:-?(\d))?/,AD=/(\d{4})-?(\d{3})/,SD=bg("weekYear","weekNumber","weekDay"),_D=bg("year","ordinal"),ID=/(\d{4})-(\d\d)-(\d\d)/,vg=RegExp(`${Ql.source} ?(?:${Cg.source}|(${Rg.source}))?`),OD=RegExp(`(?: ${vg.source})?`);function Ln(t,e,r){let n=t[e];return Q(n)?r:tr(n)}function wD(t,e){return[{year:Ln(t,e),month:Ln(t,e+1,1),day:Ln(t,e+2,1)},null,e+3]}function $n(t,e){return[{hours:Ln(t,e,0),minutes:Ln(t,e+1,0),seconds:Ln(t,e+2,0),milliseconds:Wl(t[e+3])},null,e+4]}function cs(t,e){let r=!t[e]&&!t[e+1],n=_a(t[e+1],t[e+2]),i=r?null:$e.instance(n);return[{},i,e+3]}function ls(t,e){let r=t[e]?Ut.create(t[e]):null;return[{},r,e+1]}var DD=RegExp(`^T?${Ql.source}$`),RD=/^-?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 bD(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",f=(m,p=!1)=>m!==void 0&&(p||m&&l)?-m:m;return[{years:f(Wr(r)),months:f(Wr(n)),weeks:f(Wr(i)),days:f(Wr(s)),hours:f(Wr(o)),minutes:f(Wr(a)),seconds:f(Wr(u),u==="-0"),milliseconds:f(Wl(c),d)}]}var CD={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 jl(t,e,r,n,i,s,o){let a={year:e.length===2?Fl(tr(e)):tr(e),month:Ag.indexOf(r)+1,day:tr(n),hour:tr(i),minute:tr(s)};return o&&(a.second=tr(o)),t&&(a.weekday=t.length>3?_g.indexOf(t)+1:Ig.indexOf(t)+1),a}var xD=/^(?:(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 vD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,f=jl(e,i,n,r,s,o,a),m;return u?m=CD[u]:c?m=0:m=_a(l,d),[f,new $e(m)]}function PD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var ND=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,UD=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,LD=/^(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 CE(t){let[,e,r,n,i,s,o,a]=t;return[jl(e,i,n,r,s,o,a),$e.utcInstance]}function MD(t){let[,e,r,n,i,s,o,a]=t;return[jl(e,a,r,n,i,s,o),$e.utcInstance]}var kD=kn(yD,Kl),FD=kn(TD,Kl),BD=kn(AD,Kl),$D=kn(xg),Pg=Fn(wD,$n,cs,ls),VD=Fn(SD,$n,cs,ls),GD=Fn(_D,$n,cs,ls),WD=Fn($n,cs,ls);function qD(t){return Bn(t,[kD,Pg],[FD,VD],[BD,GD],[$D,WD])}function QD(t){return Bn(PD(t),[xD,vD])}function KD(t){return Bn(t,[ND,CE],[UD,CE],[LD,MD])}function jD(t){return Bn(t,[RD,bD])}var YD=Fn($n);function HD(t){return Bn(t,[DD,YD])}var zD=kn(ID,OD),JD=kn(vg),ZD=Fn($n,cs,ls);function XD(t){return Bn(t,[zD,Pg],[JD,ZD])}var xE="Invalid Duration",Ng={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}},eR={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},...Ng},je=146097/400,vn=146097/4800,tR={years:{quarters:4,months:12,weeks:je/7,days:je,hours:je*24,minutes:je*24*60,seconds:je*24*60*60,milliseconds:je*24*60*60*1e3},quarters:{months:3,weeks:je/28,days:je/4,hours:je*24/4,minutes:je*24*60/4,seconds:je*24*60*60/4,milliseconds:je*24*60*60*1e3/4},months:{weeks:vn/7,days:vn,hours:vn*24,minutes:vn*24*60,seconds:vn*24*60*60,milliseconds:vn*24*60*60*1e3},...Ng},Qr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],rR=Qr.slice(0).reverse();function Pt(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 he(n)}function Ug(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of rR.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}function vE(t,e){let r=Ug(t,e)<0?-1:1;Qr.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let s=e[n]*r,o=t[i][n],a=Math.floor(s/o);e[i]+=a*r,e[n]-=a*o*r}return i},null),Qr.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let s=e[n]%1;e[n]-=s,e[i]+=s*t[n][i]}return i},null)}function PE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var he=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?tR:eR;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||X.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 Ae(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:ya(e,t.normalizeUnit),loc:X.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(ir(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ae(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=jD(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]=HD(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 Ae("need to specify a reason the Duration is invalid");let n=e instanceof Fe?e:new Fe(e,r);if(re.throwOnInvalid)throw new wl(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 pa(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?ke.create(this.loc,n).formatDurationFromString(this,e):xE}toHuman(e={}){if(!this.isValid)return xE;let r=e.showZeros!==!1,n=Qr.map(i=>{let s=this.values[i];return Q(s)||s===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(s)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=ql(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},se.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Ug(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Qr)(Mn(r.values,i)||Mn(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Pt(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]=Tg(e(this.values[n],n));return Pt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...ya(e,t.normalizeUnit)};return Pt(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 Pt(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return vE(this.matrix,e),Pt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=PE(this.normalize().shiftToAll().toObject());return Pt(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 Qr)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;ir(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3}else ir(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 vE(this.matrix,r),Pt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Pt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=PE(this.values);return Pt(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 Qr)if(!r(this.values[n],e.values[n]))return!1;return!0}},Pn="Invalid Interval";function nR(t,e){return!t||!t.isValid?jr.invalid("missing or invalid start"):!e||!e.isValid?jr.invalid("missing or invalid end"):e<t?jr.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 jr=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 Ae("need to specify a reason the Interval is invalid");let n=e instanceof Fe?e:new Fe(e,r);if(re.throwOnInvalid)throw new Ol(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ts(e),i=ts(r),s=nR(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=he.fromDurationLike(r),i=ts(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=he.fromDurationLike(r),i=ts(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=se.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=se.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=he.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=he.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 lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(ts).filter(o=>this.contains(o)).sort((o,a)=>o.toMillis()-a.toMillis()),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=he.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()})`:Pn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=ma,r={}){return this.isValid?ke.create(this.s.loc.clone(r),e).formatInterval(this):Pn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Pn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Pn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Pn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Pn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):he.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Kr=class{static hasDST(e=re.defaultZone){let r=se.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Ut.isValidZone(e)}static normalizeZone(e){return rr(e,re.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||X.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||X.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||X.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||X.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||X.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||X.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||X.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return X.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return X.create(r,null,"gregory").eras(e)}static features(){return{relative:Eg(),localeWeek:gg()}}};function NE(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(he.fromMillis(n).as("days"))}function iR(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=NE(u,c);return(l-l%7)/7}],["days",NE]],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>e&&(a=t,i[u]--,t=s.plus(i))):t=a);return[t,i,a,o]}function sR(t,e,r,n){let[i,s,o,a]=iR(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=he.fromObject(s,n);return c.length>0?he.fromMillis(u,n).shiftTo(...c).plus(l):l}var oR="missing Intl.DateTimeFormat.formatToParts support";function Z(t,e=r=>r){return{regex:t,deser:([r])=>e(zw(r))}}var aR=String.fromCharCode(160),Lg=`[ ${aR}]`,Mg=new RegExp(Lg,"g");function uR(t){return t.replace(/\./g,"\\.?").replace(Mg,Lg)}function UE(t){return t.replace(/\./g,"").replace(Mg," ").toLowerCase()}function at(t,e){return t===null?null:{regex:RegExp(t.map(uR).join("|")),deser:([r])=>t.findIndex(n=>UE(r)===UE(n))+e}}function LE(t,e){return{regex:t,deser:([,r,n])=>_a(r,n),groups:e}}function aa(t){return{regex:t,deser:([e])=>e}}function cR(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function lR(t,e){let r=ot(e),n=ot(e,"{2}"),i=ot(e,"{3}"),s=ot(e,"{4}"),o=ot(e,"{6}"),a=ot(e,"{1,2}"),u=ot(e,"{1,3}"),c=ot(e,"{1,6}"),l=ot(e,"{1,9}"),d=ot(e,"{2,4}"),f=ot(e,"{4,6}"),m=g=>({regex:RegExp(cR(g.val)),deser:([T])=>T,literal:!0}),E=(g=>{if(t.literal)return m(g);switch(g.val){case"G":return at(e.eras("short"),0);case"GG":return at(e.eras("long"),0);case"y":return Z(c);case"yy":return Z(d,Fl);case"yyyy":return Z(s);case"yyyyy":return Z(f);case"yyyyyy":return Z(o);case"M":return Z(a);case"MM":return Z(n);case"MMM":return at(e.months("short",!0),1);case"MMMM":return at(e.months("long",!0),1);case"L":return Z(a);case"LL":return Z(n);case"LLL":return at(e.months("short",!1),1);case"LLLL":return at(e.months("long",!1),1);case"d":return Z(a);case"dd":return Z(n);case"o":return Z(u);case"ooo":return Z(i);case"HH":return Z(n);case"H":return Z(a);case"hh":return Z(n);case"h":return Z(a);case"mm":return Z(n);case"m":return Z(a);case"q":return Z(a);case"qq":return Z(n);case"s":return Z(a);case"ss":return Z(n);case"S":return Z(u);case"SSS":return Z(i);case"u":return aa(l);case"uu":return aa(a);case"uuu":return Z(r);case"a":return at(e.meridiems(),0);case"kkkk":return Z(s);case"kk":return Z(d,Fl);case"W":return Z(a);case"WW":return Z(n);case"E":case"c":return Z(r);case"EEE":return at(e.weekdays("short",!1),1);case"EEEE":return at(e.weekdays("long",!1),1);case"ccc":return at(e.weekdays("short",!0),1);case"cccc":return at(e.weekdays("long",!0),1);case"Z":case"ZZ":return LE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return LE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return aa(/[a-z_+-/]{1,256}?/i);case" ":return aa(/[^\S\n\r]/);default:return m(g)}})(t)||{invalidReason:oR};return E.token=t,E}var dR={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function fR(t,e,r){let{type:n,value:i}=t;if(n==="literal"){let u=/^\s+$/.test(i);return{literal:!u,val:u?" ":i}}let s=e[n],o=n;n==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=r.hour12?"hour12":"hour24");let a=dR[o];if(typeof a=="object"&&(a=a[s]),a)return{literal:!1,val:a}}function pR(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function mR(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Mn(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 hR(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 Q(t.z)||(r=Ut.create(t.z)),Q(t.Z)||(r||(r=new $e(t.Z)),n=t.Z),Q(t.q)||(t.M=(t.q-1)*3+1),Q(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),Q(t.u)||(t.S=Wl(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var yl=null;function ER(){return yl||(yl=se.fromMillis(1555555555555)),yl}function gR(t,e){if(t.literal)return t;let r=ke.macroTokenToFormatOpts(t.val),n=Bg(r,e);return n==null||n.includes(void 0)?t:n}function kg(t,e){return Array.prototype.concat(...t.map(r=>gR(r,e)))}var Ta=class{constructor(e,r){if(this.locale=e,this.format=r,this.tokens=kg(ke.parseFormat(r),e),this.units=this.tokens.map(n=>lR(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=pR(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=mR(e,this.regex,this.handlers),[i,s,o]=n?hR(n):[null,null,void 0];if(Mn(n,"a")&&Mn(n,"H"))throw new nr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:s,specificOffset:o}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function Fg(t,e,r){return new Ta(t,r).explainFromTokens(e)}function yR(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=Fg(t,e,r);return[n,i,s,o]}function Bg(t,e){if(!t)return null;let n=ke.create(e,t).dtFormatter(ER()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(o=>fR(o,t,s))}var Tl="Invalid DateTime",ME=864e13;function ns(t){return new Fe("unsupported zone",`the zone "${t.name}" is not supported`)}function Al(t){return t.weekData===null&&(t.weekData=Ea(t.c)),t.weekData}function Sl(t){return t.localWeekData===null&&(t.localWeekData=Ea(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function qr(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new se({...r,...e,old:r})}function $g(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 ua(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 la(t,e,r){return $g(Sa(t),e,r)}function kE(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,ga(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=he.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=Sa(s),[u,c]=$g(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function Nn(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0||e){let u=e||a,c=se.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return se.invalid(new Fe("unparsable",`the input "${i}" can't be parsed as ${n}`))}function ca(t,e,r=!0){return t.isValid?ke.create(X.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function _l(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=fe(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=fe(t.c.month),r==="month")return i;i+="-"}else if(i+=fe(t.c.month),r==="month")return i;return i+=fe(t.c.day),i}function FE(t,e,r,n,i,s,o){let a=!r||t.c.millisecond!==0||t.c.second!==0,u="";switch(o){case"day":case"month":case"year":break;default:if(u+=fe(t.c.hour),o==="hour")break;if(e){if(u+=":",u+=fe(t.c.minute),o==="minute")break;a&&(u+=":",u+=fe(t.c.second))}else{if(u+=fe(t.c.minute),o==="minute")break;a&&(u+=fe(t.c.second))}if(o==="second")break;a&&(!n||t.c.millisecond!==0)&&(u+=".",u+=fe(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!s?u+="Z":t.o<0?(u+="-",u+=fe(Math.trunc(-t.o/60)),u+=":",u+=fe(Math.trunc(-t.o%60))):(u+="+",u+=fe(Math.trunc(t.o/60)),u+=":",u+=fe(Math.trunc(t.o%60)))),s&&(u+="["+t.zone.ianaName+"]"),u}var Vg={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},TR={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},AR={ordinal:1,hour:0,minute:0,second:0,millisecond:0},da=["year","month","day","hour","minute","second","millisecond"],SR=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],_R=["year","ordinal","hour","minute","second","millisecond"];function fa(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 pa(t);return e}function BE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return fa(t)}}function IR(t){if(is===void 0&&(is=re.now()),t.type!=="iana")return t.offset(is);let e=t.name,r=Bl.get(e);return r===void 0&&(r=t.offset(is),Bl.set(e,r)),r}function $E(t,e){let r=rr(e.zone,re.defaultZone);if(!r.isValid)return se.invalid(ns(r));let n=X.fromObject(e),i,s;if(Q(t.year))i=re.now();else{for(let u of da)Q(t[u])&&(t[u]=Vg[u]);let o=mg(t)||hg(t);if(o)return se.invalid(o);let a=IR(r);[i,s]=la(t,a,r)}return new se({ts:i,zone:r,loc:n,o:s})}function VE(t,e,r){let n=Q(r.round)?!0:r.round,i=Q(r.rounding)?"trunc":r.rounding,s=(a,u)=>(a=ql(a,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(a,u)),o=a=>r.calendary?e.hasSame(t,a)?0:e.startOf(a).diff(t.startOf(a),a).get(a):e.diff(t,a).get(a);if(r.unit)return s(o(r.unit),r.unit);for(let a of r.units){let u=o(a);if(Math.abs(u)>=1)return s(u,a)}return s(t>e?-0:0,r.units[r.units.length-1])}function GE(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 is,Bl=new Map,se=class t{constructor(e){let r=e.zone||re.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Fe("invalid input"):null)||(r.isValid?null:ns(r));this.ts=Q(e.ts)?re.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=ir(e.o)&&!e.old?e.o:r.offset(this.ts);i=ua(this.ts,a),n=Number.isNaN(i.year)?new Fe("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||X.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=GE(arguments),[n,i,s,o,a,u,c]=r;return $E({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=GE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=$e.utcInstance,$E({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=tD(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=rr(r.zone,re.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:X.fromObject(r)}):t.invalid(ns(i))}static fromMillis(e,r={}){if(ir(e))return e<-ME||e>ME?t.invalid("Timestamp out of range"):new t({ts:e,zone:rr(r.zone,re.defaultZone),loc:X.fromObject(r)});throw new Ae(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(ir(e))return new t({ts:e*1e3,zone:rr(r.zone,re.defaultZone),loc:X.fromObject(r)});throw new Ae("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=rr(r.zone,re.defaultZone);if(!n.isValid)return t.invalid(ns(n));let i=X.fromObject(r),s=ya(e,BE),{minDaysInFirstWeek:o,startOfWeek:a}=wE(s,i),u=re.now(),c=Q(r.specificOffset)?n.offset(u):r.specificOffset,l=!Q(s.ordinal),d=!Q(s.year),f=!Q(s.month)||!Q(s.day),m=d||f,p=s.weekYear||s.weekNumber;if((m||l)&&p)throw new nr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(f&&l)throw new nr("Can't mix ordinal dates with month/day");let E=p||s.weekday&&!m,g,T,_=ua(u,c);E?(g=SR,T=TR,_=Ea(_,o,a)):l?(g=_R,T=AR,_=gl(_)):(g=da,T=Vg);let S=!1;for(let j of g){let Dt=s[j];Q(Dt)?S?s[j]=T[j]:s[j]=_[j]:S=!0}let w=E?Zw(s,o,a):l?Xw(s):mg(s),y=w||hg(s);if(y)return t.invalid(y);let I=E?IE(s,o,a):l?OE(s):s,[M,v]=la(I,c,n),L=new t({ts:M,zone:n,o:v,loc:i});return s.weekday&&m&&e.weekday!==L.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${L.toISO()}`):L.isValid?L:t.invalid(L.invalid)}static fromISO(e,r={}){let[n,i]=qD(e);return Nn(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=QD(e);return Nn(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=KD(e);return Nn(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(Q(e)||Q(r))throw new Ae("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=X.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=yR(o,e,r);return l?t.invalid(l):Nn(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]=XD(e);return Nn(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ae("need to specify a reason the DateTime is invalid");let n=e instanceof Fe?e:new Fe(e,r);if(re.throwOnInvalid)throw new Il(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=Bg(e,X.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return kg(ke.parseFormat(e),X.fromObject(r)).map(i=>i.val).join("")}static resetCache(){is=void 0,Bl.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Al(this).weekYear:NaN}get weekNumber(){return this.isValid?Al(this).weekNumber:NaN}get weekday(){return this.isValid?Al(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Sl(this).weekday:NaN}get localWeekNumber(){return this.isValid?Sl(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Sl(this).weekYear:NaN}get ordinal(){return this.isValid?gl(this.c).ordinal:NaN}get monthShort(){return this.isValid?Kr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Kr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Kr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Kr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=Sa(this.c),i=this.zone.offset(n-e),s=this.zone.offset(n+e),o=this.zone.offset(n-i*r),a=this.zone.offset(n-s*r);if(o===a)return[this];let u=n-o*r,c=n-a*r,l=ua(u,o),d=ua(c,a);return l.hour===d.hour&&l.minute===d.minute&&l.second===d.second&&l.millisecond===d.millisecond?[qr(this,{ts:u}),qr(this,{ts:c})]:[this]}get isInLeapYear(){return us(this.year)}get daysInMonth(){return ga(this.year,this.month)}get daysInYear(){return this.isValid?Un(this.year):NaN}get weeksInWeekYear(){return this.isValid?as(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?as(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=ke.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone($e.instance(e),r)}toLocal(){return this.setZone(re.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=rr(e,re.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]=la(o,s,e)}return qr(this,{ts:i,zone:e})}else return t.invalid(ns(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return qr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=ya(e,BE),{minDaysInFirstWeek:n,startOfWeek:i}=wE(r,this.loc),s=!Q(r.weekYear)||!Q(r.weekNumber)||!Q(r.weekday),o=!Q(r.ordinal),a=!Q(r.year),u=!Q(r.month)||!Q(r.day),c=a||u,l=r.weekYear||r.weekNumber;if((c||o)&&l)throw new nr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(u&&o)throw new nr("Can't mix ordinal dates with month/day");let d;s?d=IE({...Ea(this.c,n,i),...r},n,i):Q(r.ordinal)?(d={...this.toObject(),...r},Q(r.day)&&(d.day=Math.min(ga(d.year,d.month),d.day))):d=OE({...gl(this.c),...r});let[f,m]=la(d,this.o,this.zone);return qr(this,{ts:f,o:m})}plus(e){if(!this.isValid)return this;let r=he.fromDurationLike(e);return qr(this,kE(this,r))}minus(e){if(!this.isValid)return this;let r=he.fromDurationLike(e).negate();return qr(this,kE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=he.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let s=this.loc.getStartOfWeek(),{weekday:o}=this;o<s&&(n.weekNumber=this.weekNumber-1),n.weekday=s}else n.weekday=1;if(i==="quarters"){let s=Math.ceil(this.month/3);n.month=(s-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?ke.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Tl}toLocaleString(e=ma,r={}){return this.isValid?ke.create(this.loc.clone(r),e).formatDateTime(this):Tl}toLocaleParts(e={}){return this.isValid?ke.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1,precision:o="milliseconds"}={}){if(!this.isValid)return null;o=fa(o);let a=e==="extended",u=_l(this,a,o);return da.indexOf(o)>=3&&(u+="T"),u+=FE(this,a,r,n,i,s,o),u}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?_l(this,e==="extended",fa(r)):null}toISOWeekDate(){return ca(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended",precision:a="milliseconds"}={}){return this.isValid?(a=fa(a),(i&&da.indexOf(a)>=3?"T":"")+FE(this,o==="extended",r,e,n,s,a)):null}toRFC2822(){return ca(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ca(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?_l(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")),ca(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Tl}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return he.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=rD(r).map(he.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=sR(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?jr.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(r,n)<=i&&i<=s.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),VE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?VE(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 Ae("min requires all arguments be DateTimes");return DE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ae("max requires all arguments be DateTimes");return DE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=X.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return Fg(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,s=X.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Ta(s,e)}static fromFormatParser(e,r,n={}){if(Q(e)||Q(r))throw new Ae("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:s=null}=n,o=X.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});if(!o.equals(r.locale))throw new Ae(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${r.locale}`);let{result:a,zone:u,specificOffset:c,invalidReason:l}=r.explainFromTokens(e);return l?t.invalid(l):Nn(a,u,n,`format ${r.format}`,e,c)}static get DATE_SHORT(){return ma}static get DATE_MED(){return WE}static get DATE_MED_WITH_WEEKDAY(){return Nw}static get DATE_FULL(){return qE}static get DATE_HUGE(){return QE}static get TIME_SIMPLE(){return KE}static get TIME_WITH_SECONDS(){return jE}static get TIME_WITH_SHORT_OFFSET(){return YE}static get TIME_WITH_LONG_OFFSET(){return HE}static get TIME_24_SIMPLE(){return zE}static get TIME_24_WITH_SECONDS(){return JE}static get TIME_24_WITH_SHORT_OFFSET(){return ZE}static get TIME_24_WITH_LONG_OFFSET(){return XE}static get DATETIME_SHORT(){return eg}static get DATETIME_SHORT_WITH_SECONDS(){return tg}static get DATETIME_MED(){return rg}static get DATETIME_MED_WITH_SECONDS(){return ng}static get DATETIME_MED_WITH_WEEKDAY(){return Uw}static get DATETIME_FULL(){return ig}static get DATETIME_FULL_WITH_SECONDS(){return sg}static get DATETIME_HUGE(){return og}static get DATETIME_HUGE_WITH_SECONDS(){return ag}};function ts(t){if(se.isDateTime(t))return t;if(t&&t.valueOf&&ir(t.valueOf()))return se.fromJSDate(t);if(t&&typeof t=="object")return se.fromObject(t);throw new Ae(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var OR="3.7.1";Ve.DateTime=se;Ve.Duration=he;Ve.FixedOffsetZone=$e;Ve.IANAZone=Ut;Ve.Info=Kr;Ve.Interval=jr;Ve.InvalidZone=ha;Ve.Settings=re;Ve.SystemZone=os;Ve.VERSION=OR;Ve.Zone=sr});var qg=G((ZM,Wg)=>{"use strict";var Yr=Gg();K.prototype.addYear=function(){this._date=this._date.plus({years:1})};K.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};K.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};K.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}))};K.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}))};K.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}))};K.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};K.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};K.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};K.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}))};K.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}))};K.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}))};K.prototype.getDate=function(){return this._date.day};K.prototype.getFullYear=function(){return this._date.year};K.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};K.prototype.getMonth=function(){return this._date.month-1};K.prototype.getHours=function(){return this._date.hour};K.prototype.getMinutes=function(){return this._date.minute};K.prototype.getSeconds=function(){return this._date.second};K.prototype.getMilliseconds=function(){return this._date.millisecond};K.prototype.getTime=function(){return this._date.valueOf()};K.prototype.getUTCDate=function(){return this._getUTC().day};K.prototype.getUTCFullYear=function(){return this._getUTC().year};K.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};K.prototype.getUTCMonth=function(){return this._getUTC().month-1};K.prototype.getUTCHours=function(){return this._getUTC().hour};K.prototype.getUTCMinutes=function(){return this._getUTC().minute};K.prototype.getUTCSeconds=function(){return this._getUTC().second};K.prototype.toISOString=function(){return this._date.toUTC().toISO()};K.prototype.toJSON=function(){return this._date.toJSON()};K.prototype.setDate=function(t){this._date=this._date.set({day:t})};K.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};K.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};K.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};K.prototype.setHours=function(t){this._date=this._date.set({hour:t})};K.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};K.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};K.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};K.prototype._getUTC=function(){return this._date.toUTC()};K.prototype.toString=function(){return this.toDate().toString()};K.prototype.toDate=function(){return this._date.toJSDate()};K.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};K.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function K(t,e){var r={zone:e};if(t?t instanceof K?this._date=t._date:t instanceof Date?this._date=Yr.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Yr.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Yr.DateTime.fromISO(t,r),this._date.isValid||(this._date=Yr.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Yr.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Yr.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Yr.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))}Wg.exports=K});var jg=G((XM,Kg)=>{"use strict";function Hr(t){return{start:t,count:1}}function Qg(t,e){t.end=e,t.step=e-t.start,t.count=2}function Yl(t,e,r){e&&(e.count===2?(t.push(Hr(e.start)),t.push(Hr(e.end))):t.push(e)),r&&t.push(r)}function wR(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Yl(e,r,Hr(i)),r=void 0):r?r.count===1?Qg(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Hr(r.start)),r=Hr(r.end),Qg(r,i)):(Yl(e,r),r=Hr(i)):r=Hr(i)}return Yl(e,r),e}Kg.exports=wR});var Hg=G((ek,Yg)=>{"use strict";var DR=jg();function RR(t,e,r){var n=DR(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(f,m){var p=c.start+m;return(p-c.start)%c.step===0?p:null}).filter(function(f){return f!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}Yg.exports=RR});var Zg=G((tk,Jg)=>{"use strict";var zr=qg(),bR=Hg(),zg=1e4;function N(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new zr(e.currentDate,this._tz),this._startDate=e.startDate?new zr(e.startDate,this._tz):null,this._endDate=e.endDate?new zr(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=N._freezeFields(t)}N.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];N.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};N.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"]}];N.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];N.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}};N.parseDefaults=["0","*","*","*","*","*"];N.standardValidCharacters=/^[,*\d/-]+$/;N.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;N.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;N.validCharacters={second:N.standardValidCharacters,minute:N.standardValidCharacters,hour:N.standardValidCharacters,dayOfMonth:N.dayOfMonthValidCharacters,month:N.standardValidCharacters,dayOfWeek:N.dayOfWeekValidCharacters};N._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};N._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=N.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(!N.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(p){if(p instanceof Array)for(var E=0,g=p.length;E<g;E++){var T=p[E];if(N._isValidConstraintChar(n,T)){c.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);c.push(T)}else{if(N._isValidConstraintChar(n,p)){c.push(p);return}var _=+p;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+p+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}var d=u.split(",");if(!d.every(function(p){return p.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var f=0,m=d.length;f<m;f++)l(o(d[f]));else l(o(u));return c.sort(N._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 f=+d[0],m=+d[1];if(Number.isNaN(f)||Number.isNaN(m)||f<n.min||m>n.max)throw new Error("Constraint error, got range "+f+"-"+m+" expected range "+n.min+"-"+n.max);if(f>m)throw new Error("Invalid range: "+u);var p=+c;if(Number.isNaN(p)||p<=0)throw new Error("Constraint error, cannot repeat at every "+p+" time.");e==="dayOfWeek"&&m%7===0&&l.push(0);for(var E=f,g=m;E<=g;E++){var T=l.indexOf(E)!==-1;!T&&p>0&&p%c===0?(p=1,l.push(E)):p++}return l}return Number.isNaN(+u)?u:+u}return s(r)};N._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)};N._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=N.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(N._sortCompareFn)}};N._freezeFields=function(t){for(var e=0,r=N.map.length;e<r;++e){var n=N.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};N.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)}};N.prototype._findSchedule=function(e){function r(T,_){for(var S=0,w=_.length;S<w;S++)if(_[S]>=T)return _[S]===T;return _[0]===T}function n(T,_){if(_<6){if(T.getDate()<8&&_===1)return!0;var S=T.getDate()%7?1:0,w=T.getDate()-T.getDate()%7,y=Math.floor(w/7)+S;return y===_}return!1}function i(T){return T.length>0&&T.some(function(_){return typeof _=="string"&&_.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new zr(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(T){return T.some(function(_){if(!i([_]))return!1;var S=Number.parseInt(_[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+_);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<zg;){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 f=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(f=f||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||d(this.fields.dayOfWeek));var p=this.fields.dayOfMonth.length>=N.daysInMonth[o.getMonth()],E=this.fields.dayOfWeek.length===N.constraints[5].max-N.constraints[5].min+1,g=o.getHours();if(!f&&(!m||E)){this._applyTimezoneShift(o,s,"Day");continue}if(!p&&E&&!f){this._applyTimezoneShift(o,s,"Day");continue}if(p&&!E&&!m){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(g,this.fields.hour)){if(this._dstEnd===g&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==g){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(g-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>=zg)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new zr(o,this._tz),this._hasIterated=!0,o};N.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};N.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};N.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}};N.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}};N.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};N.prototype.reset=function(e){this._currentDate=new zr(e||this._options.currentDate)};N.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=N.map.length;n<i;++n){var s=N.map[n],o=this.fields[s],a=N.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:N.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(bR(o,a.min,a.max))}return r.join(" ")};N.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new zr(void 0,n._tz)),N.predefined[s]&&(s=N.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=N.map.length-u.length,l=0,d=N.map.length;l<d;++l){var f=N.map[l],m=u[u.length>d?l:l-c];if(l<c||!m)a.push(N._parseField(f,N.parseDefaults[l],N.constraints[l]));else{var p=f==="dayOfWeek"?_(m):m;a.push(N._parseField(f,p,N.constraints[l]))}}for(var E={},l=0,d=N.map.length;l<d;l++){var g=N.map[l];E[g]=a[l]}var T=N._handleMaxDaysInMonth(E);return E.dayOfMonth=T||E.dayOfMonth,new N(E,o);function _(S){var w=S.split("#");if(w.length>1){var y=+w[w.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(w.length>2||Number.isNaN(y)||y<1||y>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=y,w[0]}return S}}return i(e,r)};N.fieldsToExpression=function(e,r){function n(f,m,p){if(!m)throw new Error("Validation error, Field "+f+" is missing");if(m.length===0)throw new Error("Validation error, Field "+f+" contains no values");for(var E=0,g=m.length;E<g;E++){var T=m[E];if(!N._isValidConstraintChar(p,T)&&(typeof T!="number"||Number.isNaN(T)||T<p.min||T>p.max))throw new Error("Constraint error, got value "+T+" expected range "+p.min+"-"+p.max)}}for(var i={},s=0,o=N.map.length;s<o;++s){var a=N.map[s],u=e[a];n(a,u,N.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(N._sortCompareFn).filter(function(f,m,p){return!m||f!==p[m-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=N._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new N(i,r||{})};Jg.exports=N});var ey=G((rk,Xg)=>{"use strict";var Oa=Zg();function or(){}or._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Oa.parse(e)};if(r.length>6)return{interval:Oa.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};or.parseExpression=function(e,r){return Oa.parse(e,r)};or.fieldsToExpression=function(e,r){return Oa.fieldsToExpression(e,r)};or.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=or._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};or.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,or.parseString(i.toString()))})};Xg.exports=or});var S0={};P(S0,{APP_DEV:()=>Ua,APP_DEV_PREFIX:()=>Je,APP_PREFIX:()=>ze,AutomationViewMode:()=>Na,BUDIBASE_DATASOURCE_TYPE:()=>Ed,BadRequestError:()=>yu,BudibaseError:()=>oi,Config:()=>_d,Cookie:()=>Jr,DEFAULT_BB_DATASOURCE_ID:()=>On,DEFAULT_EMPLOYEE_TABLE_ID:()=>Ad,DEFAULT_EXPENSES_TABLE_ID:()=>Td,DEFAULT_INVENTORY_TABLE_ID:()=>yd,DEFAULT_JOBS_TABLE_ID:()=>gd,DEFAULT_TENANT_ID:()=>oe,DeprecatedViews:()=>Gn,DesignDocuments:()=>hs,DocumentType:()=>ue,Duration:()=>me,DurationType:()=>qf,EmailUnavailableError:()=>Gt,Endpoint:()=>gc,EndpointGroup:()=>_n,EndpointGroupList:()=>vo,FeatureDisabledError:()=>_u,ForbiddenError:()=>Tu,GlobalRole:()=>Sd,HTTPError:()=>we,Header:()=>Le,InternalTable:()=>Rt,InvalidAPIKeyError:()=>ai,MAX_VALID_DATE:()=>Ma,MIN_VALID_DATE:()=>my,NotFoundError:()=>gu,NotImplementedError:()=>Au,RedisClient:()=>Ce,SEPARATOR:()=>R,SQLITE_DESIGN_DOC_ID:()=>It,SQS_DATASOURCE_INTERNAL:()=>hd,StaticDatabases:()=>de,UNICODE_MAX:()=>De,USER_METADATA_PREFIX:()=>ms,UnexpectedError:()=>Eu,UsageLimitError:()=>Su,UserStatus:()=>La,ViewName:()=>ur,accounts:()=>pn,auth:()=>sm,blacklist:()=>cm,cache:()=>To,configs:()=>Wt,constants:()=>Id,context:()=>ae,csv:()=>Sm,db:()=>Er,docIds:()=>pf,docUpdates:()=>dm,encryption:()=>rm,env:()=>h,errors:()=>Ou,events:()=>di,features:()=>jp,getPublicError:()=>Iu,init:()=>A0,installation:()=>Lu,locks:()=>gi,logging:()=>Zs,middleware:()=>im,objectStore:()=>xf,permissions:()=>qp,platform:()=>Bs,plugins:()=>am,queue:()=>tp,redis:()=>um,roles:()=>Wp,security:()=>yp,sessions:()=>$u,setEnv:()=>Ts,sql:()=>Am,tenancy:()=>T0,timers:()=>Pu,userUtils:()=>Yf,users:()=>fi,utils:()=>ii,withEnv:()=>Ay});module.exports=__(S0);var Wt={};P(Wt,{analyticsEnabled:()=>xu,generateConfigID:()=>Qu,getAIConfig:()=>MU,getConfig:()=>tt,getDefaultGoogleConfig:()=>Cp,getGoogleConfig:()=>Ku,getGoogleDatasourceConfig:()=>Pp,getOIDCConfig:()=>NU,getOIDCConfigById:()=>Np,getOIDCLogosDoc:()=>vU,getPlatformUrl:()=>wo,getRecaptchaConfig:()=>kU,getSCIMConfig:()=>LU,getSMTPConfig:()=>UU,getSMTPConfigDoc:()=>mS,getSettingsConfig:()=>vp,getSettingsConfigDoc:()=>pi,save:()=>CU});var I_=["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"],O_=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Om=[...I_,...O_],wm={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"workspace:created":void 0,"workspace:deleted":void 0,"workspace:updated":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0};var yc=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(yc||{}),Tc=(f=>(f.STRING="string",f.CODE="code",f.LONGFORM="longForm",f.BOOLEAN="boolean",f.NUMBER="number",f.PASSWORD="password",f.LIST="list",f.OBJECT="object",f.JSON="json",f.FILE="file",f.FIELD_GROUP="fieldGroup",f.SELECT="select",f))(Tc||{}),Uo=(T=>(T.AIRTABLE="AIRTABLE",T.ARANGODB="ARANGODB",T.BUDIBASE="BUDIBASE",T.COUCHDB="COUCHDB",T.DYNAMODB="DYNAMODB",T.ELASTICSEARCH="ELASTICSEARCH",T.FIRESTORE="FIRESTORE",T.GOOGLE_SHEETS="GOOGLE_SHEETS",T.MONGODB="MONGODB",T.MYSQL="MYSQL",T.ORACLE="ORACLE",T.POSTGRES="POSTGRES",T.REDIS="REDIS",T.REST="REST",T.S3="S3",T.SNOWFLAKE="SNOWFLAKE",T.SQL_SERVER="SQL_SERVER",T))(Uo||{});var Ac=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Ac||{});var w_=k(require("lodash/isPlainObject")),Nr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Nr||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),In=(e=>(e.RANGE="range",e))(In||{}),Si=(r=>(r.AND="$and",r.OR="$or",r))(Si||{});function Lo(t){return Object.values(Si).includes(t)}function Dm(t){return Object.values(Nr).includes(t)}function Rm(t){return Object.values(Jt).includes(t)}function Mo(t){return Object.values(In).includes(t)}var bm=t=>typeof t=="object"&&t._id&&t._rev;var _i=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(_i||{});var Cm={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var Ii=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ii||{});var ko=(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))(ko||{});var Fo=t=>t.hosting==="cloud";var Bo=t=>t.authType==="sso";var R="_",De="\uFFF0",Zt=t=>`${t}${R}`,ue=(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.WORKSPACE_FAVOURITE="workspace_favourite",q))(ue||{});var Rt=(e=>(e.USER_METADATA="ta_users",e))(Rt||{});var Sc=(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))(Sc||{}),_c=(w=>(w.TABLE="table",w.ROW="row",w.ROWS="rows",w.WIDE="wide",w.QUERY="query",w.QUERY_PARAMS="queryParams",w.QUERY_LIMIT="queryLimit",w.LOOP_OPTION="loopOption",w.ITEM="item",w.CODE="code",w.FILTERS="filters",w.COLUMN="column",w.TRIGGER_SCHEMA="triggerSchema",w.CRON="cron",w.WEBHOOK_URL="webhookUrl",w.AUTOMATION="automation",w.AUTOMATION_FIELDS="automationFields",w.MULTI_ATTACHMENTS="multi_attachments",w.TRIGGER_FILTER="trigger_filter",w.CATEGORIES="categories",w))(_c||{}),Ic=(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))(Ic||{});var Oc=(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.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",O.EXTRACT_STATE="EXTRACT_STATE",O.LOOP_V2="LOOP_V2",O.discord="discord",O.slack="slack",O.zapier="zapier",O.integromat="integromat",O.n8n="n8n",O))(Oc||{}),xm=[...Object.values(Oc),...Object.values(Ic)];function vm(t){return t.stepId==="BRANCH"}var wc="bb_internal";var Pm=["attachment_single","attachment","signature_single","bb_reference","json","array"];function $o(t){return!!t.providerType}var Id={};P(Id,{APP_DEV:()=>Ua,APP_DEV_PREFIX:()=>Je,APP_PREFIX:()=>ze,AutomationViewMode:()=>Na,BUDIBASE_DATASOURCE_TYPE:()=>Ed,Config:()=>_d,Cookie:()=>Jr,DEFAULT_BB_DATASOURCE_ID:()=>On,DEFAULT_EMPLOYEE_TABLE_ID:()=>Ad,DEFAULT_EXPENSES_TABLE_ID:()=>Td,DEFAULT_INVENTORY_TABLE_ID:()=>yd,DEFAULT_JOBS_TABLE_ID:()=>gd,DEFAULT_TENANT_ID:()=>oe,DeprecatedViews:()=>Gn,DesignDocuments:()=>hs,DocumentType:()=>ue,GlobalRole:()=>Sd,Header:()=>Le,InternalTable:()=>Rt,MAX_VALID_DATE:()=>Ma,MIN_VALID_DATE:()=>my,SEPARATOR:()=>R,SQLITE_DESIGN_DOC_ID:()=>It,SQS_DATASOURCE_INTERNAL:()=>hd,StaticDatabases:()=>de,UNICODE_MAX:()=>De,USER_METADATA_PREFIX:()=>ms,UserStatus:()=>La,ViewName:()=>ur});var Le=(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.CLIENT="x-budibase-client",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))(Le||{});var Me={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"}},Nm={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var On="datasource_internal_bb_default";var ar={};P(ar,{ColumnSplitter:()=>td,NoEmptyFilterStrings:()=>cy,buildQuery:()=>ly,cleanupQuery:()=>id,fixupFilterArrays:()=>od,getKeyNumbering:()=>sd,getValidOperatorsForType:()=>zR,hasFilters:()=>rd,limit:()=>fy,recurseLogicalOperators:()=>nd,removeKeyNumbering:()=>Vo,runQuery:()=>Ra,search:()=>XR,sort:()=>dy,splitFiltersArray:()=>Go});var Vn=k(Um());var Xt={};P(Xt,{filterValueToLabel:()=>v_,hasSchema:()=>P_,isSupportedUserSearch:()=>km,parallelForeach:()=>x_,processSearchFilters:()=>bc,toMap:()=>U_,trimOtherProps:()=>N_,unreachable:()=>C_});var Mm=k(require("lodash/pick")),b_=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function C_(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function x_(t,e,r){let n=[],i=Symbol.asyncIterator in t,s=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),o=async()=>{let a=await(i?s.next():Promise.resolve(s.next()));for(;!a.done;)await e(a.value),a=await(i?s.next():Promise.resolve(s.next()))};for(let a=0;a<r;a++)n.push(o());await Promise.all(n)}function v_(){return Object.keys(Me).reduce((t,e)=>{let n=Me[e];return t[n.value]=n.label,t},{})}function P_(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function N_(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function km(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(Lo(s)){for(let c of t[s].conditions)if(!km(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 bc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Go(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=(0,Mm.default)(i,b_);return s.field=Vo(s.field),s})}]}}function U_(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Pe={};P(Pe,{cancelableTimeout:()=>Fm,cron:()=>KR,deepGet:()=>Cc,duplicateName:()=>qR,getSequentialName:()=>QR,getUserColor:()=>M_,getUserInitials:()=>L_,getUserLabel:()=>k_,isGoogleSheets:()=>B_,isSQL:()=>$_,lists:()=>Xl,retry:()=>V_,roles:()=>Zl,schema:()=>ds,views:()=>Jl,wait:()=>xc,withTimeout:()=>F_});var Cc=(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},L_=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"},M_=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%)`},k_=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Fm(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function F_(t,e){let[r,n]=Fm(t),i=await Promise.race([e(),r]);return n(),i}function B_(t){return t==="GOOGLE_SHEETS"}function $_(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function xc(t){return new Promise(e=>setTimeout(e,t))}async function V_(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 xc(s);try{return await t()}catch(o){n=o}}throw n}var ry=k(Tt()),ny=k(ey()),ty="(Input cron: ",CR={"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 xR(t){let e=[];for(let r of t){r.includes(ty)&&(r=r.split(ty)[0].trim());for(let[n,i]of Object.entries(CR))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function iy(t,e=4){let r=ny.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function sy(t){let e=(0,ry.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:xR(e.getError())}}var ds={};P(ds,{decodeNonAscii:()=>Hl,encodeNonAscii:()=>NR,isDeprecatedSingleUserColumn:()=>vR,isNumeric:()=>UR,isRequired:()=>PR});function vR(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function PR(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function NR(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Hl(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function UR(t){return t.type==="number"||t.type==="bigint"}var Jl={};P(Jl,{basicFields:()=>BR,calculationFields:()=>FR,hasCalculationFields:()=>kR,isBasicViewField:()=>LR,isCalculationField:()=>fs,isCalculationView:()=>MR,isV2:()=>$R,isVisible:()=>oy});var zl=k(require("lodash/pickBy"));function fs(t){return"calculationType"in t}function LR(t){return!fs(t)}function MR(t){return t.type==="calculation"}function kR(t){return Object.values(t.schema||{}).some(fs)}function FR(t){return(0,zl.default)(t.schema||{},fs)}function oy(t){return t.visible!==!1}function BR(t,e){let{visible:r=!0}=e||{};return(0,zl.default)(t.schema||{},n=>!fs(n)&&(!r||oy(n)))}function $R(t){return t.version===2}var Zl={};P(Zl,{checkForRoleInheritanceLoops:()=>GR});function VR(t){return`role${R}${t}`}function GR(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=VR(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 Xl={};P(Xl,{punctuateList:()=>WR});function WR(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 qR=(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}`},QR=(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 KR={getNextExecutionDates:iy,validate:sy};var Da=k(require("lodash/isPlainObject")),ed=k(require("lodash/isEmpty"));var YR=/{{([^{].*?)}}/g,uy=Object.values(Si),HR=[...Object.values(Nr),...Object.values(Jt),...Object.values(In)],zR=(t,e,r)=>{let n=Me,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=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],a=[],{type:u,formulaType:c,subtype:l}=t;u==="string"?l==="array"?a=o:a=i:u==="number"||u==="bigint"?a=s:u==="options"?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="array"?a=o:u==="boolean"?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:u==="longform"?a=i:u==="datetime"?a=s:u==="formula"&&c==="static"?a=i.concat([n.MoreThan,n.LessThan]):u==="ai"?a=i.concat([n.MoreThan,n.LessThan]):u==="bb_reference_single"||ds.isDeprecatedSingleUserColumn(t)?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="bb_reference"?a=o:u==="barcodeqr"&&(a=i);let d=r?.tableId?.includes("datasource_plus");return e==="_id"&&d&&(a=[n.Equals,n.NotEquals,n.In]),a},cy=[Me.StartsWith.value,Me.Like.value,Me.Equals.value,Me.NotEquals.value,Me.Contains.value,Me.NotContains.value,Me.ContainsAny.value,Me.In.value];function nd(t,e){for(let r of uy)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var id=t=>{for(let e of cy)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===""||JR(s))&&delete t[e][i]}return t=nd(t,id),t};function JR(t){return Array.isArray(t)&&t.length===0}var Vo=t=>sd(t).key,sd=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}},td=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}=sd(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=Hl(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function ZR(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(YR)||[]).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(Mo(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(Mo(r)){let c=Nm[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(Dm(r)||Rm(r)||Mo(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 Go(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 ly(t){if(!t)return{};if(Array.isArray(t)&&(t=bc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=ay(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=ly(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=Go(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=ay(n.logicalOperator)),{[a]:{conditions:o.map(ZR).filter(u=>u)}}})},e}function ay(t){return t==="all"?"$and":"$or"}function od(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Da.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return nd(t,od),t}function XR(t,e){let r=Ra(t,e.query);e.sort&&(r=dy(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=fy(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Ra(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=id(e),e=od(e),!rd(e)&&e.onEmptyFilter==="none")return[];let r=(y,I)=>M=>{for(let[v,L]of Object.entries(e[y]||{})){let j=Lo(y)?M:Cc(M,Vo(v)),Dt=I(j,L);if(e.allOr&&Dt)return!0;if(!e.allOr&&!Dt)return!1}return!e.allOr},n=r("string",(y,I)=>typeof y!="string"||typeof I!="string"?!1:y.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(y,I)=>typeof y!="string"||typeof I!="string"?!1:y.toLowerCase().includes(I.toLowerCase())),s=r("range",(y,I)=>{if(y==null||y===""||((0,Da.default)(I.low)&&(0,ed.default)(I.low)&&(I.low=void 0),(0,Da.default)(I.high)&&(0,ed.default)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let M=+y;if(!isNaN(M)){let L=+I.low,j=+I.high;if(!isNaN(L)&&!isNaN(j))return M>=L&&M<=j;if(isNaN(L)){if(!isNaN(j))return M<=j}else return M>=L}let v=(0,Vn.default)(y);if(v.isValid()){let L=(0,Vn.default)(I.low||"0000-00-00T00:00:00.000Z"),j=(0,Vn.default)(I.high||"9999-00-00T00:00:00.000Z");if(L.isValid()&&j.isValid())return v.isAfter(L)&&v.isBefore(j)||v.isSame(L)||v.isSame(j);if(L.isValid())return v.isAfter(L)||v.isSame(L);if(j.isValid())return v.isBefore(j)||v.isSame(j)}return I.low!=null&&I.high!=null?y>=I.low&&y<=I.high:I.low!=null?y>=I.low:I.high!=null?y<=I.high:!1}),o=(y,I)=>{if(Array.isArray(y)){for(let v of y)if(o(v,I))return!0;return!1}if(y&&typeof y=="object"&&typeof I=="string")return y._id===I;if(y===I)return!0;if(y==null&&I!=null||y!=null&&I==null)return!1;let M=(0,Vn.default)(y);if(M.isValid()){let v=(0,Vn.default)(I);if(v.isValid())return M.isSame(v)}return!1},a=y=>(...I)=>!y(...I),u=r("equal",o),c=r("notEqual",a(o)),l=y=>typeof y=="string"?y==="":Array.isArray(y)?y.length===0:y&&typeof y=="object"?Object.keys(y).length===0:y==null,d=r("empty",l),f=r("notEmpty",a(l)),m=r("oneOf",(y,I)=>(typeof I=="string"&&(I=I.split(",")),typeof y=="number"&&(I=I.map(M=>parseFloat(M))),Array.isArray(I)?I.some(M=>o(y,M)):!1)),p=y=>(I,M)=>!Array.isArray(I)||(typeof M=="string"&&(M=M.split(","),typeof I[0]=="number"&&(M=M.map(v=>parseFloat(v)))),!Array.isArray(M))?!1:M.length===0?!0:M[y](v=>o(I,v)),E=r("contains",(y,I)=>Array.isArray(I)&&I.length===0?!0:p("every")(y,I)),g=r("notContains",(y,I)=>Array.isArray(I)&&I.length===0?!0:a(p("every"))(y,I)),T=r("containsAny",p("some")),_=r("$and",(y,I)=>{if(!I.length)return!1;for(let M of I)if(!Ra([y],M).length)return!1;return!0}),S=r("$or",(y,I)=>{if(!I.length)return!1;for(let M of I)if(Ra([y],{...M,allOr:!0}).length)return!0;return!1}),w=y=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:f,oneOf:m,contains:E,containsAny:T,notContains:g,$and:_,$or:S},M=Object.entries(e||{}).filter(([v,L])=>!["allOr","onEmptyFilter"].includes(v)&&L&&Object.keys(L).length>0).map(([v])=>I[v]?.(y)??!1);return rd(e)?e.allOr?M.some(v=>v===!0):M.every(v=>v===!0):!0};return t.filter(w)}function dy(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 fy(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var rd=t=>{if(!t)return!1;let e=r=>{for(let n of uy)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of HR){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 Ge={};P(Ge,{applications:()=>ud,automations:()=>cd,screens:()=>md,users:()=>pd});var ud={};P(ud,{getDevAppID:()=>eb,getProdAppID:()=>ba});var ad=Zt("app"),ps=Zt("app_dev");function eb(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(ps))return t;let e=t.split(ad);e.shift();let r=e.join(ad);return`${ps}${r}`}function ba(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(ps))return t;let e=t.split(ps);e.shift();let r=e.join(ps);return`${ad}${r}`}var cd={};P(cd,{checkForCollectStep:()=>ib,isAppAction:()=>nb,isRowAction:()=>tb,isWebhookAction:()=>rb});function tb(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function rb(t){return t.definition.trigger?.stepId==="WEBHOOK"}function nb(t){return t.definition.trigger?.stepId==="APP"}function py(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(vm(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(py(r))return!0}}return!1}function ib(t){return py(t.definition.steps)}var pd={};P(pd,{canCreateApps:()=>sb,containsUserID:()=>fb,getGlobalUserID:()=>db,getUserAppGroups:()=>pb,getUserGroups:()=>fd,hasAdminPermissions:()=>dd,hasAppBuilderPermissions:()=>va,hasBuilderPermissions:()=>cb,hasCreatorPermissions:()=>Pa,isAdmin:()=>xa,isAdminOrBuilder:()=>ob,isAdminOrGlobalBuilder:()=>ab,isBuilder:()=>ld,isCreator:()=>lb,isGlobalBuilder:()=>Ca,userAppAccessList:()=>mb});function ld(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ba(e))):!1}function Ca(t){return ld(t)&&!va(t)||xa(t)}function sb(t){return Ca(t)||Pa(t)}function xa(t){return t?dd(t):!1}function ob(t,e){return ld(t,e)||xa(t)}function ab(t){return Ca(t)||xa(t)}function va(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function ub(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}function cb(t){return t?t.builder?.global||va(t)||Pa(t):!1}function dd(t){return t?!!t.admin?.global:!1}function Pa(t){return t?!!t.builder?.creator:!1}function lb(t){return t?Ca(t)||dd(t)||Pa(t)||va(t)||ub(t):!1}function db(t){if(typeof t!="string")return t;let e=`ro${R}ta_users${R}`;return t.startsWith(e)?t.split(e)[1]:t}function fb(t){return typeof t!="string"?!1:t.includes(`us${R}`)}function fd(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function pb(t,e,r){let n=ba(t);return fd(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function mb(t,e){let n=fd(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var md={};P(md,{findInSettings:()=>hb});function hb(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 Na=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Na||{}),ur=(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_2",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))(ur||{}),Gn={by_email2:["by_email"]},de={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"}},ze=Zt("app"),Ua=Zt("app_dev"),Je=Ua,hd="internal",Ed="budibase",It="_design/sqlite",gd="ta_bb_jobs",yd="ta_bb_inventory",Td="ta_bb_expenses",Ad="ta_bb_employee",ms=`ro${R}ta_users${R}`,hs=(r=>(r[r.SQLITE=It]="SQLITE",r.MIGRATIONS="_design/migrations",r))(hs||{});var La=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(La||{}),Jr=(a=>(a.Auth="budibase:auth",a.Init="budibase:init",a.ACCOUNT_RETURN_URL="budibase:account:returnurl",a.DatasourceAuth="budibase:datasourceauth",a.OIDC_CONFIG="budibase:oidc:config",a.FeatureFlags="budibase:featureflags",a.RecaptchaSession="budibase:recaptcha",a))(Jr||{}),Sd=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Sd||{}),_d=(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))(_d||{}),my=new Date(-2147483647e3),Ma=new Date(2147483647e3),oe="default";var To={};P(To,{CacheKey:()=>Ee,TTL:()=>an,app:()=>Vs,bustCache:()=>Jn,destroy:()=>Ls,docWritethrough:()=>bp,generic:()=>Ms,get:()=>un,invite:()=>Kf,keys:()=>Xa,passwordReset:()=>Dp,store:()=>Mt,user:()=>Dr,withCache:()=>mr,withCacheWithDynamicTTL:()=>Vy,writethrough:()=>wp});var Ms={};P(Ms,{CacheKey:()=>Ee,TTL:()=>an,bustCache:()=>Jn,destroy:()=>Ls,get:()=>un,keys:()=>Xa,store:()=>Mt,withCache:()=>mr,withCacheWithDynamicTTL:()=>Vy});var ae={};P(ae,{DEFAULT_TENANT_ID:()=>oe,baseGlobalDBName:()=>Os,doInAppContext:()=>eC,doInAppMigrationContext:()=>rC,doInAutomationContext:()=>Hb,doInContext:()=>Wd,doInEnvironmentContext:()=>sC,doInFeatureFlagOverrideContext:()=>zd,doInIPContext:()=>Kd,doInIdentityContext:()=>gs,doInLicenseContext:()=>Jb,doInScimContext:()=>oC,doInSelfHostTenantUsingCloud:()=>zb,doInTenant:()=>be,ensureSnippetContext:()=>ky,getAppDB:()=>Hn,getAppId:()=>Se,getAuditLogDBName:()=>Ly,getAuditLogsDB:()=>uC,getAutomationId:()=>qd,getCurrentContext:()=>en,getDevAppDB:()=>lC,getDevAppId:()=>nC,getEnvironmentVariables:()=>aC,getFeatureFlagOverrides:()=>Hd,getFeatureFlags:()=>jd,getGlobalDB:()=>Y,getGlobalDBName:()=>Xr,getIP:()=>Qd,getIdentity:()=>Lt,getLicense:()=>Zb,getPlatformURL:()=>Gd,getProdAppDB:()=>cC,getProdAppId:()=>iC,getScimDBName:()=>Qb,getSelfHostCloudDB:()=>Xb,getTableForView:()=>dC,getTenantIDFromAppID:()=>Yn,getTenantId:()=>V,identity:()=>Es,isMultiTenant:()=>dr,isScim:()=>ft,isSelfHostUsingCloud:()=>Ka,isTenancyEnabled:()=>jb,isTenantIdSet:()=>Kb,setFeatureFlags:()=>Yd,setTableForView:()=>fC});var Es={};P(Es,{doInAccountContext:()=>Eb,doInIdentityContext:()=>wd,doInUserContext:()=>Dd,getAccountUserId:()=>hy,getIdentity:()=>Od});function Od(){return Lt()}function wd(t,e){return gs(t,e)}function Dd(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return wd(n,r)}function Eb(t,e){let r=hy(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return wd(i,e)}function hy(t){let e;return Fo(t)?e=t.budibaseUserId:e=t.accountId,e}var Ba=require("fs");var yy=require("lodash"),Rd=require("crypto"),ys=require("path"),gb=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,ys.resolve)((0,ys.join)(__dirname,"..","..","..")),Ey=!1;!Ey&&Fa()&&!bd()&&(require("dotenv").config({path:(0,ys.join)(gb,".env")}),Ey=!0);function bd(){return Ty()}function Ty(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Fa(){return process.env.NODE_ENV!=="production"}function yb(t){if(t)return parseInt(t)}var Wn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},gy=!!parseInt(process.env.SELF_HOSTED||"");function Tb(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Ab(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Sb(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Ba.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Ba.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Fa()&&!bd())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 _b(){return ct.SERVICE_TYPE==="worker"}function Ib(){return ct.SERVICE_TYPE==="apps"}function Ob(){return ct.BUDIBASE_ENVIRONMENT==="QA"}function wb(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}var ct={isTest:bd,isJest:Ty,isDev:Fa,isWorker:_b,isApps:Ib,isQA:Ob,isProd:()=>!Fa(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Rd.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Rd.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Tb(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_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",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:gy,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||Wn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Wn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Wn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Wn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Wn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Wn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:wb(),LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:Ab(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:gy?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Sb(),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:yb(process.env.BSON_BUFFER_SIZE)};function Ts(t){let e=(0,yy.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 Ay(t,e){let r=Ts(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var Sy=["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 lt=t=>{let e=Cd(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:Cd(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Cd=(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 Py=k(require("@budibase/nano"));var _y=k(require("node-fetch"));function $a(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function Iy(t,e="GET",r){let{url:n,cookie:i}=lt(),s=`${n}/${t}`;return await As({url:s,cookie:i,method:e,body:r})}async function As({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,_y.default)($a(encodeURI(t)),i)}async function xd(t,e="GET",r){let n=await Iy(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Zr=k(require("pouchdb"));var Oy,wy=!1,vd=(t={})=>{let{url:e,cookie:r}=lt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Zr.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Zr.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Zr.default.plugin(i.plugin),Zr.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Zr.default.plugin(i)}return Zr.default.defaults(n)};function Va(t){Oy=vd(t),wy=!0}var Db=()=>{if(!wy)throw new Error("init has not been called")};function Ze(t,e){Db();let r=new Oy(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 Ss(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var Dy=require("uuid");function ee(){return(0,Dy.v4)().replace(/-/g,"")}var ce=k(require("dd-trace")),qn=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return ce.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 ce.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return ce.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 ce.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 ce.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 ce.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 ce.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return ce.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return ce.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return ce.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 ce.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 ce.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 ce.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 ce.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 ce.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return ce.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return ce.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return ce.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return ce.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 ce.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 ce.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Bd={};P(Bd,{breakExternalTableId:()=>Ud,breakRowIdField:()=>Bb,buildExternalTableId:()=>Nb,convertRowId:()=>Fb,encodeTableId:()=>Ub,encodeViewId:()=>Lb,extractDate:()=>Md,generateRowIdField:()=>Mb,getNativeSql:()=>Qn,isExternalTable:()=>Nd,isExternalTableID:()=>Ga,isInternalTableID:()=>Pb,isRowId:()=>kb,isValidFilter:()=>qa,isValidISODateString:()=>Wa,isValidISODateStringWithoutTimezone:()=>Ld,isValidTime:()=>kd,sqlLog:()=>_s,validateManyToMany:()=>Fd});var Pd=`${R}${R}`,by=/^\[.*]$/g,Rb=encodeURIComponent(" "),bb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Cb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,xb=/(\d{4}-\d{2}-\d{2})/,vb=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Ga(t){return t.startsWith("datasource"+R)}function Pb(t){return!Ga(t)}function Qn(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 Nd(t){return t?.sourceId&&t.sourceId.includes("datasource"+R)&&t?.sourceId!==On||t?.sourceType==="external"?!0:!!(t?._id&&Ga(t._id))}function Nb(t,e){return`${t}${Pd}${encodeURIComponent(e)}`}function Ub(t){return Ga(t)?encodeURIComponent(t):t}function Lb(t){return encodeURIComponent(t)}function Ud(t){let e=t.split(Pd),r=e.shift(),n=e.join(Pd);if(n.includes(Rb)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function Mb(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 kb(t){return Array.isArray(t)||typeof t=="string"&&t.match(by)!=null}function Fb(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(by)!=null?t.substring(1,t.length-1):t}function Bb(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 Wa(t){let e=t.trim();if(!bb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Ld(t){let e=t.trim();if(!Cb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Md(t){let e=t.match(xb);if(e)return e[0]}function qa(t){return t!=null&&t!==""}function kd(t){return vb.test(t)}function _s(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 $b(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Fd(t){if($b(t))return t}var Cy="Database does not exist.";function xy(t){return(0,Py.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var cr=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 Vb(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Kn(t,r,e);return new qn(n)}var Kn=class t{constructor(e,r,n){this.couchInfo=lt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=lt(n),this.instanceNano=xy(this.couchInfo)),t.nano||t.init()}static init(){let e=lt();t.nano=xy(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await As({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 cr(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===Cy)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new cr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new cr(`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(bm(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 cr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ee()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===Cy)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=$a(`${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 As(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new cr("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}/${It}`;return _s("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(It)){let e=await this.get(It);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 cr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Ze(this.name).dump(e,r)}async load(e){return Ze(this.name).load(e)}async createIndex(e){return Ze(this.name).createIndex(e)}async deleteIndex(e){return Ze(this.name).deleteIndex(e)}async getIndexes(){return Ze(this.name).getIndexes()}};function Re(t,e){return new qn(new Kn(t,e))}async function We(t,e,r){let n=Re(t,r);return await e(n)}async function $d(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await xd(e)}var Vd="No app provided";function lr(t){if(!t)throw Vd;return t.startsWith(Je)}function Gb(t){if(!t)throw Vd;return t.startsWith(ze)&&!lr(t)}function Is(t){if(!t)throw Vd;return lr(t.appId)}function Qa(t){if(!t||t.startsWith(Je))return t;let e=t.split(ze);e.shift();let r=e.join(ze);return`${Je}${r}`}var jn=Qa;function qe(t){if(!t||!t.startsWith(Je))return t;let e=t.split(Je);e.shift();let r=e.join(Je);return`${ze}${r}`}function Wb(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Ny=require("async_hooks"),pe=class t{static{this.storage=new Ny.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Uy=null;function Xr(t){return t||(t=V()),Os(t)}function Ly(t){return t||(t=V()),t===oe?de.AUDIT_LOGS.name:`${t}${R}${de.AUDIT_LOGS.name}`}function Qb(t){return t||(t=V()),t===oe?de.SCIM_LOGS.name:`${t}${R}${de.SCIM_LOGS.name}`}function Os(t){return!t||t===oe?de.GLOBAL.name:`${t}${R}${de.GLOBAL.name}`}function Gd(){return h.PLATFORM_URL}function dr(){return!!h.MULTI_TENANCY}function Kb(){return!!pe.get()?.tenantId}function jb(){return h.MULTI_TENANCY}function Yn(t){if(!t)return;if(!dr())return oe;let e=t.split(R),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Yb(t){let e;try{e=pe.get()}catch{e={}}return e={...e,...t},e}async function dt(t,e){tC();let r=Yb(t);return pe.run(r,e)}async function Hb(t){return await ky(),await dt({tenantId:Yn(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Wd(t,e){let r=Yn(t);return dt({tenantId:r,appId:t},e)}async function be(t,e){return h.MULTI_TENANCY||(t=t||oe),dt(t?{tenantId:t}:{},e)}async function zb(t,e){return dt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function Jb(t,e){return dt({license:t},e)}function Zb(){return pe.get()?.license}function Ka(){return!!pe.get()?.isSelfHostUsingCloud}function Xb(){let t=pe.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Re(de.SELF_HOST_CLOUD.name)}async function eC(t,e){return My(t,e)}async function My(t,e,r){if(!t)throw new Error("appId is required");let n=Yn(t),i={appId:t,...r};return n&&(i.tenantId=n),dt(i,e)}async function gs(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),dt(r,e)}function tC(){if(pe.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function rC(t,e){return My(t,e,{isMigrating:!0})}function Lt(){try{return pe.get()?.identity}catch{}}function V(){if(!dr())return oe;let e=pe.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function qd(){return pe.get()?.automationId}function Se(){let e=pe.get()?.appId;return!e&&h.isTest()&&Uy?Uy:e}function Qd(){return pe.get()?.ip}var nC=()=>{let t=Se();if(!t)throw new Error("Could not get appId");return jn(t)},iC=()=>{let t=Se();if(!t)throw new Error("Could not get appId");return qe(t)};function sC(t,e){if(!t)throw new Error("Must supply environment variables.");return dt({environmentVariables:t},e)}function oC(t){return dt({isScim:!0},t)}function Kd(t,e){return dt({ip:t},e)}async function ky(){let t=en();if(!t||t.snippets)return;let e,r=Hn();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function aC(){let t=pe.get();return t.environmentVariables?t.environmentVariables:null}function Y(){let t=pe.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 Re(Os(t?.tenantId))}function uC(){if(!V())throw new Error("No tenant ID found - cannot open audit log DB");return Re(Ly())}function Hn(t){let e=Se();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(Ka())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Re(e,t)}function cC(t){let e=Se();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Re(qe(e),t)}function lC(t){let e=Se();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Re(Qa(e),t)}function ft(){return!!pe.get()?.isScim}function en(){try{return pe.get()}catch{return}}function jd(t){let e=en();if(e)return e.featureFlagCache?.[t]}function Yd(t,e){let r=en();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function Hd(){return en()?.featureFlagOverrides||{}}async function zd(t,e){return await dt({featureFlagOverrides:t},e)}function dC(t){let e=en();if(e)return e.viewToTableCache?.[t]}function fC(t,e){let r=en();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var pr={};P(pr,{getAppClient:()=>Za,getCacheClient:()=>rf,getDocWritethroughClient:()=>gC,getInviteClient:()=>nn,getLockClient:()=>sf,getPasswordResetClient:()=>Us,getSessionClient:()=>fr,getSocketClient:()=>EC,getUserClient:()=>Ns,getWritethroughClient:()=>nf,init:()=>pt,shutdown:()=>$y});var Ja=k(require("ioredis"));var Ha={};P(Ha,{Databases:()=>Jd,SEPARATOR:()=>zn,SelectableDatabase:()=>ja,getRedisClusterOptions:()=>Zd,getRedisConnectionDetails:()=>Ya,getRedisOptions:()=>tn,removeDbPrefix:()=>Xd});var zn="-",Jd=(_=>(_.PW_RESETS="pwReset",_.VERIFICATIONS="verification",_.INVITATIONS="invitation",_.DEV_LOCKS="devLocks",_.DEBOUNCE="debounce",_.SESSIONS="session",_.USER_CACHE="users",_.FLAGS="flags",_.APP_METADATA="appMetadata",_.QUERY_VARS="queryVars",_.LICENSES="license",_.GENERIC_CACHE="data_cache",_.WRITE_THROUGH="writeThrough",_.LOCKS="locks",_.SOCKET_IO="socket_io",_.BPM_EVENTS="bpmEvents",_.DOC_WRITE_THROUGH="docWriteThrough",_.RECAPTCHA_SESSION="recaptchaSession",_))(Jd||{}),ja=(g=>(g[g.DEFAULT=0]="DEFAULT",g[g.SOCKET_IO=1]="SOCKET_IO",g[g.RATE_LIMITING=2]="RATE_LIMITING",g[g.UNUSED_2=3]="UNUSED_2",g[g.UNUSED_3=4]="UNUSED_3",g[g.UNUSED_4=5]="UNUSED_4",g[g.UNUSED_5=6]="UNUSED_5",g[g.UNUSED_6=7]="UNUSED_6",g[g.UNUSED_7=8]="UNUSED_7",g[g.UNUSED_8=9]="UNUSED_8",g[g.UNUSED_9=10]="UNUSED_9",g[g.UNUSED_10=11]="UNUSED_10",g[g.UNUSED_11=12]="UNUSED_11",g[g.UNUSED_12=13]="UNUSED_12",g[g.UNUSED_13=14]="UNUSED_13",g[g.UNUSED_14=15]="UNUSED_14",g))(ja||{});function Ya(){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 Zd(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...tn(),tls:{}}}}function tn(){let{host:t,password:e,port:r}=Ya();return{connectTimeout:3e4,port:r,host:t,password:e}}function Xd(t){let e=t.split(zn);return e.length>=2?(e.shift(),e.join(zn)):e[0]}var za=require("dd-trace"),By=require("lodash"),Fy;if(h.MOCK_REDIS)try{Fy=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function pC(t=0){return await za.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new Fy(tn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=Ya();r=new Ja.Cluster([{host:n,port:i}],Zd())}else r=new Ja.default(tn());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 mC(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:Xd(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function hC(t){return t.isCluster}var ef=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await za.tracer.trace("RedisWrapper.init",async n=>{let i=await pC(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return za.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${zn}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${zn}${e}`;let n;hC(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await mC(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,By.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)})}},Qe=Af;var Uo,Mo,Fo,ko,Xn,Bo,Go,Vo,$o,Sf;async function Mt(){Uo=await Qe.init("users"),Mo=await Qe.init("session"),Fo=await Qe.init("appMetadata"),ko=await Qe.init("data_cache"),Bo=await Qe.init("locks"),Xn=await Qe.init("writeThrough"),Vo=await Qe.init("invitation"),$o=await Qe.init("pwReset"),Go=await Qe.init("socket_io",1),Sf=await Qe.init("docWriteThrough")}async function hA(){Uo&&await Uo.finish(),Mo&&await Mo.finish(),Fo&&await Fo.finish(),ko&&await ko.finish(),Xn&&await Xn.finish(),Bo&&await Bo.finish(),Vo&&await Vo.finish(),$o&&await $o.finish(),Go&&await Go.finish(),Sf&&await Sf.finish()}process.on("exit",async()=>{await hA()});async function Wo(){return Uo||await Mt(),Uo}async function Wr(){return Mo||await Mt(),Mo}async function hc(){return Fo||await Mt(),Fo}async function _f(){return ko||await Mt(),ko}async function If(){return Xn||await Mt(),Xn}async function Of(){return Bo||await Mt(),Bo}async function zN(){return Go||await Mt(),Go}async function ei(){return Vo||await Mt(),Vo}async function qo(){return $o||await Mt(),$o}async function ZN(){return Xn||await Mt(),Xn}function Yt(t){let e=Q();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await _f()}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 ri=new ti,ve={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||{}),gc=(...t)=>ri.keys(...t),ii=(...t)=>ri.get(...t),lr=(...t)=>ri.store(...t),Qo=(...t)=>ri.delete(...t),Qr=(...t)=>ri.withCache(...t),gA=(...t)=>ri.withCacheWithDynamicTTL(...t),ts=(...t)=>ri.bustCache(...t);var nn={};P(nn,{getUser:()=>Ca,getUsers:()=>J0,invalidateUser:()=>va});var Ko={};P(Ko,{addTenantToUrl:()=>XN,getTenantDB:()=>xf,getTenantIDFromCtx:()=>Ho,isUserInAppTenant:()=>eP});function xf(t){return We(Jn(t))}function XN(t){let e=Q();if($r()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var eP=(t,e)=>{let r;return e?r=e.tenantId||Te:r=Q(),(Zi(t)||Te)===r},tP=Object.values(xs),Ho=(t,e)=>{if(!$r())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=tP),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(uf()).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 Yo={};P(Yo,{getPlatformDB:()=>jr,users:()=>Ft});var Ft={};P(Ft,{addSsoUser:()=>EA,addUser:()=>aP,getUserDoc:()=>yA,lookupTenantId:()=>rP,removeUser:()=>uP,updateUserDoc:()=>nP});function jr(){return We(xe.PLATFORM_INFO.name)}async function rP(t){return h.MULTI_TENANCY?(await yA(t)).tenantId:Te}async function yA(t){return jr().get(t)}async function nP(t){await jr().put(t)}function iP(t,e){return{_id:t,tenantId:e}}function sP(t,e,r){return{_id:e,userId:t,tenantId:r}}function oP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Rf(t,e){let r=jr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function EA(t,e,r,n){return Rf(t,()=>oP(t,e,r,n))}async function aP(t,e,r,n){let i=[Rf(e,()=>iP(e,t)),Rf(r,()=>sP(e,r,t))];n&&i.push(EA(n,r,e,t)),await Promise.all(i)}async function uP(t){let e=jr(),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 ci={};P(ci,{getAccount:()=>Xr,getAccountByTenantId:()=>as,getStatus:()=>nL});var CS=G(require("node-fetch"));var ua={};P(ua,{correlation:()=>Jo,logAlert:()=>ui,logAlertWithInfo:()=>rL,logWarn:()=>os,logger:()=>bc,system:()=>Zf});var Jo={};P(Jo,{getId:()=>wf,setHeader:()=>cP});var TA=require("correlation-id"),cP=t=>{let e=TA.getId();e&&(t["x-budibase-correlation-id"]=e)};function wf(){return TA.getId()}var wc=G(require("pino")),bS=G(require("pino-pretty"));var Xf=G(require("dd-trace")),DS=require("dd-trace/ext");var Zf={};P(Zf,{getLogReadStream:()=>JP,getSingleFileMaxSizeInfo:()=>wS,localFileDestination:()=>zf});var aa=G(require("fs")),Jf=G(require("path")),IS=G(require("rotating-file-stream"));var Yf={};P(Yf,{ObjectStore:()=>kt,ObjectStoreBuckets:()=>dP,SIGNED_FILE_PREFIX:()=>Qf,bucketTTLConfig:()=>yc,budibaseTempDir:()=>si,clientLibraryCDNUrl:()=>WP,clientLibraryPath:()=>mS,clientLibraryUrl:()=>qP,createBucketIfNotExists:()=>oa,deleteFile:()=>MP,deleteFiles:()=>FP,deleteFolder:()=>dS,downloadTarball:()=>BP,downloadTarballDirect:()=>kP,enrichPWAImages:()=>QP,enrichPluginURLs:()=>HP,extractBucketAndPath:()=>bf,getAppFileUrl:()=>hS,getGlobalFileS3Key:()=>gS,getGlobalFileUrl:()=>jP,getObjectMetadata:()=>GP,getPluginIconKey:()=>TS,getPluginJSKey:()=>ES,getPluginS3Dir:()=>SS,getPresignedUrl:()=>zr,getReadStream:()=>Ec,listAllObjects:()=>lS,processAutomationAttachment:()=>fP,processObjectStoreAttachment:()=>OA,retrieve:()=>cS,retrieveDirectory:()=>UP,retrieveToTmp:()=>LP,sanitizeBucket:()=>ze,sanitizeKey:()=>Me,streamUpload:()=>uS,upload:()=>PP,uploadDirectory:()=>jf});var Oc=require("@aws-sdk/client-s3"),Gf=require("@aws-sdk/lib-storage"),aS=require("@aws-sdk/s3-request-presigner"),xc=G(require("stream")),Vf=G(require("node-fetch")),$f=G(require("tar-fs")),Wf=G(require("zlib")),Yr=require("path"),is=G(require("fs"));var zo=G(require("path")),AA=require("os"),SA=G(require("fs"));var _A=G(require("stream")),dP={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},IA=(0,zo.join)((0,AA.tmpdir)(),".budibase");try{SA.default.mkdirSync(IA)}catch(t){if(t.code!=="EEXIST")throw t}function si(){return IA}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 pP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=zo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:_A.default.Readable.fromWeb(e.body)}}async function OA(t){let e=bf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Ec(r,n),s=zo.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 pP(t):await OA(t)}var qf=require("uuid");var Hr={};P(Hr,{APP_DEV:()=>zu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Ju,BUDIBASE_DATASOURCE_TYPE:()=>Up,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Bp,DEFAULT_EXPENSES_TABLE_ID:()=>kp,DEFAULT_INVENTORY_TABLE_ID:()=>Fp,DEFAULT_JOBS_TABLE_ID:()=>Mp,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>xN,DeprecatedViews:()=>ji,DesignDocuments:()=>xo,DocumentType:()=>ye,InternalTable:()=>Zt,QueryBuilder:()=>mr,Replication:()=>rS,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Lp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>Oo,ViewName:()=>Br,baseGlobalDBName:()=>Lo,checkErrorCode:()=>oS,closePouchDB:()=>No,createApiKeyView:()=>zA,createNewUserEmailView:()=>YA,createPlatformAccountEmailView:()=>XA,createPlatformUserView:()=>eS,createUserAppView:()=>JA,createView:()=>ns,dbExists:()=>IP,directCouchAllDbs:()=>af,directCouchCall:()=>XT,directCouchQuery:()=>Jp,directCouchUrlCall:()=>vo,doWithDB:()=>lt,extractAppUUID:()=>uN,fullSearch:()=>wP,generateAgentChatID:()=>MA,generateAgentToolSourceID:()=>FA,generateAppID:()=>RA,generateAppUserID:()=>Sc,generateDevInfoID:()=>PA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>UA,generatePluginID:()=>LA,generateRoleID:()=>vf,generateRowID:()=>Cf,generateTableID:()=>wA,generateTemplateID:()=>NA,generateUserMetadataID:()=>CA,generateWorkspaceAppID:()=>kA,generateWorkspaceFavouriteID:()=>BA,generateWorkspaceID:()=>bA,getAllApps:()=>ea,getAllDbs:()=>KA,getAppsByIDs:()=>TP,getCouchInfo:()=>Pt,getDB:()=>We,getDevAppID:()=>Ki,getDevAppIDs:()=>SP,getDevelopmentAppID:()=>nc,getDocParams:()=>pr,getGlobalDBName:()=>Jn,getGlobalIDFromUserMetadataID:()=>vA,getGlobalUserParams:()=>oi,getOAuth2ConfigParams:()=>QA,getPluginParams:()=>qA,getPouch:()=>zp,getPouchDB:()=>Tt,getProdAppID:()=>ct,getProdAppIDs:()=>AP,getQueryIndex:()=>GA,getRoleParams:()=>Ic,getRowParams:()=>Nf,getStartEndKeyURL:()=>Xo,getTemplateParams:()=>WA,getUrlInfo:()=>Yp,getUserMetadataParams:()=>$A,getUsersByAppParams:()=>_c,getWorkspaceAppParams:()=>jA,getWorkspaceFavouriteParams:()=>HA,getWorkspaceParams:()=>VA,init:()=>sc,isDevApp:()=>Co,isDevAppID:()=>Gr,isDocumentConflictError:()=>DP,isGlobalUserID:()=>DA,isProdAppID:()=>aN,isSameAppID:()=>_P,paginatedSearch:()=>RP,pagination:()=>Lf,prefixRoleID:()=>dr,queryGlobalView:()=>fr,queryGlobalViewRaw:()=>Ff,queryPlatformView:()=>ra,queryView:()=>Mf,queryViewRaw:()=>ta,removeKeyNumbering:()=>na,searchIndexes:()=>Bf});var Zo={};P(Zo,{AppState:()=>Df,getAppMetadata:()=>Ac,invalidateAppMetadata:()=>yP});var Df=(e=>(e.INVALID="invalid",e))(Df||{}),xA=3600,mP=60;async function hP(t){return lt(t,e=>e.get("app_metadata"),{skip_setup:!0})}function gP(t){return!t||t.state==="invalid"}async function Ac(t){let e=await hc(),r=await e.get(t);if(!r){let n=xA;try{r=await hP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=mP;else throw i}if(gP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function yP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await hc();await r.delete(t),e&&await r.store(t,e,xA)}var Pf={};P(Pf,{generateAgentChatID:()=>MA,generateAgentToolSourceID:()=>FA,generateAppID:()=>RA,generateAppUserID:()=>Sc,generateDevInfoID:()=>PA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>UA,generatePluginID:()=>LA,generateRoleID:()=>vf,generateRowID:()=>Cf,generateTableID:()=>wA,generateTemplateID:()=>NA,generateUserMetadataID:()=>CA,generateWorkspaceAppID:()=>kA,generateWorkspaceFavouriteID:()=>BA,generateWorkspaceID:()=>bA,getDocParams:()=>pr,getGlobalIDFromUserMetadataID:()=>vA,getGlobalUserParams:()=>oi,getOAuth2ConfigParams:()=>QA,getPluginParams:()=>qA,getQueryIndex:()=>GA,getRoleParams:()=>Ic,getRowParams:()=>Nf,getStartEndKeyURL:()=>Xo,getTemplateParams:()=>WA,getUserMetadataParams:()=>$A,getUsersByAppParams:()=>_c,getWorkspaceAppParams:()=>jA,getWorkspaceFavouriteParams:()=>HA,getWorkspaceParams:()=>VA,isGlobalUserID:()=>DA,prefixRoleID:()=>dr});var RA=t=>{let e=yt;return t&&(e+=`${t}${w}`),`${e}${fe()}`};function wA(){return`ta${w}${fe()}`}function Cf(t,e){return e=e||fe(),`ro${w}${t}${w}${e}`}function bA(){return`workspace${w}${fe()}`}function rs(t){return`us${w}${t||fe()}`}var EP=new RegExp(`^us${w}.+`);function DA(t){return EP.test(t)}function CA(t){return Cf("ta_users",t)}function vA(t){let e=`ro${w}ta_users${w}`;return!t||!t.includes(e)?t:t.split(e)[1]}function NA(t){return`template${w}${t}${w}${fe()}`}function Sc(t,e){return`${t}${w}${e}`}function vf(t){let e=`role${w}`;return t.startsWith(e)?t:`${e}${t}`}function dr(t){return vf(t)}var PA=t=>`devinfo${w}${t}`,LA=t=>`plg${w}${t}`,UA=t=>`oauth2log${w}${t}`,MA=()=>`agentchat${w}${fe()}`,FA=()=>`agenttoolsource${w}${fe()}`,kA=()=>`workspace_app${w}${fe()}`,BA=()=>`workspace_favourite${w}${fe()}`;function pr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${w}${e}`,endkey:`${t}${w}${e}${Ve}`}}function Nf(t,e,r={}){if(t==null)return pr("ro",null,r);let n=e??`${t}${w}`;return pr("ro",n,r)}function GA(t){return`database/${t}`}function VA(t="",e={}){return{...e,startkey:`workspace${w}${t}`,endkey:`workspace${w}${t}${Ve}`}}function oi(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${w}${t}`,endkey:`us${w}${t}${Ve}`}}function $A(t,e={}){return Nf("ta_users",t,e)}function _c(t,e={}){let r=ct(t);return{...e,startkey:r,endkey:`${r}${Ve}`}}function WA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${w}${t}${w}`,{...r,startkey:n,endkey:`${n}${Ve}`}}function Ic(t,e={}){return pr("role",t,e)}function Xo(t,e){let r=e?`${w}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ve}"`}var qA=(t,e={})=>pr("plg",t,e),QA=(t,e={})=>pr("oauth2",t,e),jA=(t,e={})=>pr("workspace_app",t,e),HA=(t,e={})=>pr("workspace_favourite",t,e);async function KA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await af(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(Xo("app",i)),await n(Xo("app_dev",i)),r.push(Jn(i))),r}async function ea({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=Te);let o=(await KA({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(w);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Te&&d||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=>Ac(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:Co(l)?"development":"published"})):c.filter(l=>t?Co(l):!Co(l))}}async function TP(t){return(await Promise.allSettled(t.map(r=>Ac(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function AP(){return(await ea({idsOnly:!0})).filter(e=>!Gr(e))}async function SP(){return(await ea({idsOnly:!0})).filter(e=>Gr(e))}function _P(t,e){return t==null||e==null?!1:ct(t)===ct(e)}async function IP(t){return lt(t,async e=>await e.exists(),{skip_setup:!0})}function Lf(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 Uf="_design/database";function OP(){return{_id:Uf,views:{}}}async function xP(t,e){if(ji[e])try{let r=await t.get(Uf);for(let n of ji[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(Uf)}catch{n=OP()}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 YA=async()=>{let t=ie(),e=`function(doc) {
10
- if (doc._id.startsWith("us${w}")) {
9
+ `;await this.client.eval(i,1,this.prefixed(e),r)})}},Ce=ef;var ws,Ds,Rs,bs,rn,Cs,xs,vs,Ps,tf;async function pt(){ws=await Ce.init("users"),Ds=await Ce.init("session"),Rs=await Ce.init("appMetadata"),bs=await Ce.init("data_cache"),Cs=await Ce.init("locks"),rn=await Ce.init("writeThrough"),vs=await Ce.init("invitation"),Ps=await Ce.init("pwReset"),xs=await Ce.init("socket_io",1),tf=await Ce.init("docWriteThrough")}async function $y(){ws&&await ws.finish(),Ds&&await Ds.finish(),Rs&&await Rs.finish(),bs&&await bs.finish(),rn&&await rn.finish(),Cs&&await Cs.finish(),vs&&await vs.finish(),Ps&&await Ps.finish(),xs&&await xs.finish(),tf&&await tf.finish()}process.on("exit",async()=>{await $y()});async function Ns(){return ws||await pt(),ws}async function fr(){return Ds||await pt(),Ds}async function Za(){return Rs||await pt(),Rs}async function rf(){return bs||await pt(),bs}async function nf(){return rn||await pt(),rn}async function sf(){return Cs||await pt(),Cs}async function EC(){return xs||await pt(),xs}async function nn(){return vs||await pt(),vs}async function Us(){return Ps||await pt(),Ps}async function gC(){return rn||await pt(),rn}function Ot(t){let e=V();return`${t}:${e}`}var sn=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await rf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Ot(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Ot(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Ot(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ot(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Ot(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[Ot(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Ot(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ot(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(Ot(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Ot(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var on=new sn,Ee={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}`},an=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(an||{}),Xa=(...t)=>on.keys(...t),un=(...t)=>on.get(...t),Mt=(...t)=>on.store(...t),Ls=(...t)=>on.delete(...t),mr=(...t)=>on.withCache(...t),Vy=(...t)=>on.withCacheWithDynamicTTL(...t),Jn=(...t)=>on.bustCache(...t);var Dr={};P(Dr,{getUser:()=>So,getUsers:()=>hU,invalidateUser:()=>_o});var Fs={};P(Fs,{addTenantToUrl:()=>yC,getTenantDB:()=>of,getTenantIDFromCtx:()=>ks,isUserInAppTenant:()=>TC});function of(t){return Re(Xr(t))}function yC(t){let e=V();if(dr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var TC=(t,e)=>{let r;return e?r=e.tenantId||oe:r=V(),(Yn(t)||oe)===r},AC=Object.values(_i),ks=(t,e)=>{if(!dr())return oe;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=AC),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(Gd()).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 Bs={};P(Bs,{getPlatformDB:()=>hr,users:()=>mt});var mt={};P(mt,{addSsoUser:()=>Wy,addUser:()=>DC,getUserDoc:()=>Gy,lookupTenantId:()=>SC,removeUser:()=>RC,updateUserDoc:()=>_C});function hr(){return Re(de.PLATFORM_INFO.name)}async function SC(t){return h.MULTI_TENANCY?(await Gy(t)).tenantId:oe}async function Gy(t){return hr().get(t)}async function _C(t){await hr().put(t)}function IC(t,e){return{_id:t,tenantId:e}}function OC(t,e,r){return{_id:e,userId:t,tenantId:r}}function wC(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function af(t,e){let r=hr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function Wy(t,e,r,n){return af(t,()=>wC(t,e,r,n))}async function DC(t,e,r,n){let i=[af(e,()=>IC(e,t)),af(r,()=>OC(e,r,t))];n&&i.push(Wy(n,r,e,t)),await Promise.all(i)}async function RC(t){let e=hr(),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 pn={};P(pn,{getAccount:()=>_r,getAccountByTenantId:()=>ni,getStatus:()=>_x});var tA=k(require("node-fetch"));var Zs={};P(Zs,{correlation:()=>$s,logAlert:()=>fn,logAlertWithInfo:()=>Sx,logWarn:()=>ri,logger:()=>du,system:()=>Nf});var $s={};P($s,{getId:()=>uf,setHeader:()=>bC});var qy=require("correlation-id"),bC=t=>{let e=qy.getId();e&&(t["x-budibase-correlation-id"]=e)};function uf(){return qy.getId()}var lu=k(require("pino")),XT=k(require("pino-pretty"));var Uf=k(require("dd-trace")),eA=require("dd-trace/ext");var Nf={};P(Nf,{getLogReadStream:()=>hx,getSingleFileMaxSizeInfo:()=>ZT,localFileDestination:()=>Pf});var Js=k(require("fs")),vf=k(require("path")),YT=k(require("rotating-file-stream"));var xf={};P(xf,{ObjectStore:()=>ht,ObjectStoreBuckets:()=>KC,SIGNED_FILE_PREFIX:()=>Df,bucketTTLConfig:()=>iu,budibaseTempDir:()=>dn,clientLibraryCDNUrl:()=>ux,clientLibraryPath:()=>BT,clientLibraryUrl:()=>cx,createBucketIfNotExists:()=>zs,deleteFile:()=>tx,deleteFiles:()=>rx,deleteFolder:()=>MT,downloadTarball:()=>ix,downloadTarballDirect:()=>nx,enrichPWAImages:()=>lx,enrichPluginURLs:()=>fx,extractBucketAndPath:()=>Af,getAppFileUrl:()=>$T,getGlobalFileS3Key:()=>VT,getGlobalFileUrl:()=>dx,getObjectMetadata:()=>sx,getPluginIconKey:()=>qT,getPluginJSKey:()=>WT,getPluginS3Dir:()=>KT,getPresignedUrl:()=>Ar,getReadStream:()=>su,listAllObjects:()=>LT,processAutomationAttachment:()=>YC,processObjectStoreAttachment:()=>vT,retrieve:()=>UT,retrieveDirectory:()=>ex,retrieveToTmp:()=>XC,sanitizeBucket:()=>Ne,sanitizeKey:()=>_e,streamUpload:()=>NT,upload:()=>ZC,uploadDirectory:()=>Rf});var au=require("@aws-sdk/client-s3"),Sf=require("@aws-sdk/lib-storage"),PT=require("@aws-sdk/s3-request-presigner");var Tr=k(require("dd-trace")),ei=k(require("fs")),Ys=k(require("fs/promises")),_f=k(require("node-fetch")),yr=require("path"),uu=k(require("stream")),Hs=require("stream/promises"),If=k(require("tar-fs")),Of=require("uuid"),wf=k(require("zlib"));var Er={};P(Er,{APP_DEV:()=>Ua,APP_DEV_PREFIX:()=>Je,APP_PREFIX:()=>ze,AutomationViewMode:()=>Na,BUDIBASE_DATASOURCE_TYPE:()=>Ed,DEFAULT_BB_DATASOURCE_ID:()=>On,DEFAULT_EMPLOYEE_TABLE_ID:()=>Ad,DEFAULT_EXPENSES_TABLE_ID:()=>Td,DEFAULT_INVENTORY_TABLE_ID:()=>yd,DEFAULT_JOBS_TABLE_ID:()=>gd,DatabaseImpl:()=>Kn,DatabaseWithConnection:()=>Vb,DeprecatedViews:()=>Gn,DesignDocuments:()=>hs,DocumentType:()=>ue,InternalTable:()=>Rt,QueryBuilder:()=>$t,Replication:()=>_T,SEPARATOR:()=>R,SQLITE_DESIGN_DOC_ID:()=>It,SQS_DATASOURCE_INTERNAL:()=>hd,StaticDatabases:()=>de,UNICODE_MAX:()=>De,USER_METADATA_PREFIX:()=>ms,ViewName:()=>ur,baseGlobalDBName:()=>Os,checkErrorCode:()=>DT,closePouchDB:()=>Ss,createApiKeyView:()=>gT,createNewUserEmailView:()=>hT,createPlatformAccountEmailView:()=>TT,createPlatformUserView:()=>AT,createUserAppView:()=>ET,createView:()=>Xn,dbExists:()=>BC,directCouchAllDbs:()=>$d,directCouchCall:()=>Iy,directCouchQuery:()=>xd,directCouchUrlCall:()=>As,doWithDB:()=>We,extractAppUUID:()=>Wb,fullSearch:()=>WC,generateAgentChatID:()=>rT,generateAgentToolSourceID:()=>nT,generateAppID:()=>Ky,generateAppUserID:()=>tu,generateDevInfoID:()=>Xy,generateGlobalUserID:()=>Zn,generateOAuth2LogID:()=>tT,generatePluginID:()=>eT,generateRoleID:()=>df,generateRowID:()=>lf,generateTableID:()=>jy,generateTemplateID:()=>Zy,generateUserMetadataID:()=>zy,generateWorkspaceAppID:()=>iT,generateWorkspaceFavouriteID:()=>sT,generateWorkspaceID:()=>Yy,getAllApps:()=>Ws,getAllDbs:()=>mT,getAppsByIDs:()=>LC,getCouchInfo:()=>lt,getDB:()=>Re,getDevAppID:()=>jn,getDevAppIDs:()=>kC,getDevelopmentAppID:()=>Qa,getDocParams:()=>Ft,getGlobalDBName:()=>Xr,getGlobalIDFromUserMetadataID:()=>Jy,getGlobalUserParams:()=>cn,getOAuth2ConfigParams:()=>dT,getPluginParams:()=>lT,getPouch:()=>vd,getPouchDB:()=>Ze,getProdAppID:()=>qe,getProdAppIDs:()=>MC,getQueryIndex:()=>oT,getRoleParams:()=>nu,getRowParams:()=>ff,getStartEndKeyURL:()=>Gs,getTemplateParams:()=>cT,getUrlInfo:()=>Cd,getUserMetadataParams:()=>uT,getUsersByAppParams:()=>ru,getWorkspaceAppParams:()=>fT,getWorkspaceFavouriteParams:()=>pT,getWorkspaceParams:()=>aT,init:()=>Va,isDevApp:()=>Is,isDevAppID:()=>lr,isDocumentConflictError:()=>QC,isGlobalUserID:()=>Hy,isProdAppID:()=>Gb,isSameAppID:()=>FC,paginatedSearch:()=>GC,pagination:()=>mf,prefixRoleID:()=>kt,queryGlobalView:()=>Bt,queryGlobalViewRaw:()=>gf,queryPlatformView:()=>Qs,queryView:()=>Ef,queryViewRaw:()=>qs,removeKeyNumbering:()=>Ks,searchIndexes:()=>Tf});var Vs={};P(Vs,{AppState:()=>cf,getAppMetadata:()=>eu,invalidateAppMetadata:()=>NC});var cf=(e=>(e.INVALID="invalid",e))(cf||{}),Qy=3600,xC=60;async function vC(t){return We(t,e=>e.get("app_metadata"),{skip_setup:!0})}function PC(t){return!t||t.state==="invalid"}async function eu(t){let e=await Za(),r=await e.get(t);if(!r){let n=Qy;try{r=await vC(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=xC;else throw i}if(PC(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function NC(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await Za();await r.delete(t),e&&await r.store(t,e,Qy)}var pf={};P(pf,{generateAgentChatID:()=>rT,generateAgentToolSourceID:()=>nT,generateAppID:()=>Ky,generateAppUserID:()=>tu,generateDevInfoID:()=>Xy,generateGlobalUserID:()=>Zn,generateOAuth2LogID:()=>tT,generatePluginID:()=>eT,generateRoleID:()=>df,generateRowID:()=>lf,generateTableID:()=>jy,generateTemplateID:()=>Zy,generateUserMetadataID:()=>zy,generateWorkspaceAppID:()=>iT,generateWorkspaceFavouriteID:()=>sT,generateWorkspaceID:()=>Yy,getDocParams:()=>Ft,getGlobalIDFromUserMetadataID:()=>Jy,getGlobalUserParams:()=>cn,getOAuth2ConfigParams:()=>dT,getPluginParams:()=>lT,getQueryIndex:()=>oT,getRoleParams:()=>nu,getRowParams:()=>ff,getStartEndKeyURL:()=>Gs,getTemplateParams:()=>cT,getUserMetadataParams:()=>uT,getUsersByAppParams:()=>ru,getWorkspaceAppParams:()=>fT,getWorkspaceFavouriteParams:()=>pT,getWorkspaceParams:()=>aT,isGlobalUserID:()=>Hy,prefixRoleID:()=>kt});var Ky=t=>{let e=ze;return t&&(e+=`${t}${R}`),`${e}${ee()}`};function jy(){return`ta${R}${ee()}`}function lf(t,e){return e=e||ee(),`ro${R}${t}${R}${e}`}function Yy(){return`workspace${R}${ee()}`}function Zn(t){return`us${R}${t||ee()}`}var UC=new RegExp(`^us${R}.+`);function Hy(t){return UC.test(t)}function zy(t){return lf("ta_users",t)}function Jy(t){let e=`ro${R}ta_users${R}`;return!t||!t.includes(e)?t:t.split(e)[1]}function Zy(t){return`template${R}${t}${R}${ee()}`}function tu(t,e){return`${t}${R}${e}`}function df(t){let e=`role${R}`;return t.startsWith(e)?t:`${e}${t}`}function kt(t){return df(t)}var Xy=t=>`devinfo${R}${t}`,eT=t=>`plg${R}${t}`,tT=t=>`oauth2log${R}${t}`,rT=()=>`agentchat${R}${ee()}`,nT=()=>`agenttoolsource${R}${ee()}`,iT=()=>`workspace_app${R}${ee()}`,sT=()=>`workspace_favourite${R}${ee()}`;function Ft(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${R}${e}`,endkey:`${t}${R}${e}${De}`}}function ff(t,e,r={}){if(t==null)return Ft("ro",null,r);let n=e??`${t}${R}`;return Ft("ro",n,r)}function oT(t){return`database/${t}`}function aT(t="",e={}){return{...e,startkey:`workspace${R}${t}`,endkey:`workspace${R}${t}${De}`}}function cn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${R}${t}`,endkey:`us${R}${t}${De}`}}function uT(t,e={}){return ff("ta_users",t,e)}function ru(t,e={}){let r=qe(t);return{...e,startkey:r,endkey:`${r}${De}`}}function cT(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${R}${t}${R}`,{...r,startkey:n,endkey:`${n}${De}`}}function nu(t,e={}){return Ft("role",t,e)}function Gs(t,e){let r=e?`${R}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${De}"`}var lT=(t,e={})=>Ft("plg",t,e),dT=(t,e={})=>Ft("oauth2",t,e),fT=(t,e={})=>Ft("workspace_app",t,e),pT=(t,e={})=>Ft("workspace_favourite",t,e);async function mT(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await $d(s);r=r.concat(o)}let i=V();return!h.MULTI_TENANCY||!e&&i===oe?await n():(await n(Gs("app",i)),await n(Gs("app_dev",i)),r.push(Xr(i))),r}async function Ws({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=V();!h.MULTI_TENANCY&&!i&&(i=oe);let o=(await mT({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(R);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===oe&&d||l===i}return!1});if(r){let u=o.filter(l=>lr(l)),c=o.filter(l=>!lr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>eu(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:Is(l)?"development":"published"})):c.filter(l=>t?Is(l):!Is(l))}}async function LC(t){return(await Promise.allSettled(t.map(r=>eu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function MC(){return(await Ws({idsOnly:!0})).filter(e=>!lr(e))}async function kC(){return(await Ws({idsOnly:!0})).filter(e=>lr(e))}function FC(t,e){return t==null||e==null?!1:qe(t)===qe(e)}async function BC(t){return We(t,async e=>await e.exists(),{skip_setup:!0})}function mf(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 hf="_design/database";function $C(){return{_id:hf,views:{}}}async function VC(t,e){if(Gn[e])try{let r=await t.get(hf);for(let n of Gn[e])delete r.views?.[n];await t.put(r)}catch{}}async function Xn(t,e,r){let n;try{n=await t.get(hf)}catch{n=$C()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await Xn(t,e,r);throw s}}var hT=async()=>{let t=Y(),e=`function(doc) {
10
+ if (doc._id.startsWith("us${R}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await ns(t,e,"by_email2")},JA=async()=>{let t=ie(),e=`function(doc) {
14
- if (doc._id.startsWith("us${w}") && doc.roles) {
13
+ }`;await Xn(t,e,"by_email2")},ET=async()=>{let t=Y(),e=`function(doc) {
14
+ if (doc._id.startsWith("us${R}") && doc.roles) {
15
15
  for (let prodAppId of Object.keys(doc.roles)) {
16
- let emitted = prodAppId + "${w}" + doc._id
16
+ let emitted = prodAppId + "${R}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await ns(t,e,"by_app")},zA=async()=>{let t=ie(),e=`function(doc) {
20
+ }`;await Xn(t,e,"by_app")},gT=async()=>{let t=Y(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await ns(t,e,"by_api_key")};async function ta(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 xP(r,t),await n(),ta(t,e,r,n,i);if(s.status===409)return ta(t,e,r,n,i);throw s}}var Mf=async(t,e,r,n,i)=>{let a=(await ta(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 ZA(t,e){try{await lt(xe.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var XA=async()=>{let t=`function(doc) {
25
- if (doc._id.startsWith("acc_metadata${w}")) {
24
+ }`;await Xn(t,e,"by_api_key")};async function qs(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 VC(r,t),await n(),qs(t,e,r,n,i);if(s.status===409)return qs(t,e,r,n,i);throw s}}var Ef=async(t,e,r,n,i)=>{let a=(await qs(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 yT(t,e){try{await We(de.PLATFORM_INFO.name,async r=>{await Xn(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var TT=async()=>{let t=`function(doc) {
25
+ if (doc._id.startsWith("acc_metadata${R}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await ZA(t,"account_by_email")},eS=async()=>{await ZA(`function(doc) {
28
+ }`;await yT(t,"account_by_email")},AT=async()=>{await yT(`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")},ra=async(t,e)=>{let r={account_by_email:XA,platform_users_lowercase_2:eS};return lt(xe.PLATFORM_INFO.name,async n=>{let i=r[t];return Mf(t,e,n,i,{arrayResponse:!0})})},tS={by_email2:YA,by_api_key:zA,by_app:JA},fr=async(t,e,r,n)=>{r||(r=ie());let i=tS[t];return Mf(t,e,r,i,n)};async function Ff(t,e,r){let n=ie(),i=tS[t];return ta(t,e,n,i,r)}var kf=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([No(this.source),No(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";delete e.filter;let s=e.isCreation,o=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let a=!1,u;typeof o=="string"&&o==="all"?a=!0:o&&(u=o);let c=(d,p)=>d?.startsWith(p+w),l=d=>c(d,"ro")||c(d,"li");return{...e,filter:(d,p)=>!s&&d._id==="_design/migrations"||i&&d._id.startsWith("_design")?!1:d._deleted||c(d._id,Oo)?!0:l(d._id)?!!u?.find(m=>d._id.includes(m))||a:c(d._id,"log_au")||d._id==="app_metadata"?!1:r?r(d,p):!0}}async rollback(){await this.target.destroy(),this.target=Tt(this.target.name),await this.replicate()}},rS=kf;var iS=G(require("node-fetch"));var na=kr.removeKeyNumbering;function ai(t){return t==null||t===""}var mr=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=na(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,y="AND")=>{if(ai(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let T=`${e.preprocess(g[0],{escape:!0})}`;for(let _=1;_<g.length;_++)T+=` ${y} ${e.preprocess(g[_],{escape:!0})}`;return`${f}:(${T})`},c=(f,g)=>ai(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let y=r?"*:* AND ":"",T=r?"AND":void 0;return y+"NOT "+u(f,g,T)},d=(f,g)=>u(f,g,"OR"),p=(f,g)=>{if(ai(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let y=`${e.preprocess(g[0],s)}`;for(let T=1;T<g.length;T++)y+=` OR ${e.preprocess(g[T],s)}`;return`${f}:(${y})`};function m(f,g,y){let T="";for(let[_,S]of Object.entries(f)){_=na(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let x=g(_,S);if(x!=null){if(T.length>0||n.length>0){let E=y?.mode?y.mode:r?"OR":"AND";T+=` ${E} `}T+=x,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(y?.returnBuilt)return T;n+=T}if(this.#e.string&&m(this.#e.string,(f,g)=>ai(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&m(this.#e.range,(f,g)=>{if(ai(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let y=e.preprocess(g.low,s),T=e.preprocess(g.high,s);return`${f}:[${y} TO ${T}]`}),this.#e.fuzzy&&m(this.#e.fuzzy,c),this.#e.equal&&m(this.#e.equal,a),this.#e.notEqual&&m(this.#e.notEqual,(f,g)=>ai(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&m(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,p),this.#e.contains&&m(this.#e.contains,u),this.#e.notContains&&m(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&m(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,m({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}=Pt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await nS(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await nS(n,i,r);throw s}}};async function nS(t,e,r){let n=await(0,iS.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 sS(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=mr.maxLimit;n.limit&&s.length>n.limit-mr.maxLimit&&(o=n.limit-s.length);let a=new mr(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<mr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await sS(t,e,r,c)}async function RP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,mr.maxLimit);let s=new mr(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 wP(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 sS(t,e,r,n)}}var Bf={};P(Bf,{createUserIndex:()=>bP});async function bP(){let t=ie(),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 oS(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 DP(t){return oS(t,409)}var ia=G(require("fs/promises")),Jr=G(require("dd-trace")),sa=require("stream/promises");var CP=require("sanitize-s3-objectkey"),vP={bucketCreationPromises:{}},Qf="/files/signed",Kr={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"},NP=[Kr.html,Kr.css,Kr.js,Kr.json];function Me(t){return CP(ze(t)).replace(/\\/g,"/")}function ze(t){return t.replace(new RegExp(Et,"g"),yt)}function kt(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 Oc.S3(e)}async function oa(t,e){e=ze(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=vP.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 PP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await ia.default.open(r)).createReadStream():s,c=kt(),l=await oa(c,t);if(o&&l.created){let g=yc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,p=d||(a?Kr[a.toLowerCase()]:Kr.txt),m={Bucket:ze(t),Key:Me(e),Body:u,ContentType:p};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];m.Metadata=i}return new Gf.Upload({client:c,params:m}).done()}async function uS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){return await Jr.default.trace("streamUpload",async o=>{if(o.addTags({bucketName:t,filename:r,type:n,ttl:s}),!e)throw new Error("Stream to upload is invalid/undefined");let a=r.split(".").pop(),u=kt(),c=await oa(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=yc(t,s);await u.putBucketLifecycleConfiguration(T)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let l=n;l||(l=a?Kr[a.toLowerCase()]:Kr.txt),o.addTags({contentType:l});let d=ze(t),p=Me(r),m={Bucket:d,Key:p,Body:e,ContentType:l,...i},g=await new Gf.Upload({client:u,params:m}).done(),y=await u.headObject({Bucket:d,Key:p});return o.addTags({contentLength:y.ContentLength}),{...g,ContentLength:y.ContentLength}})}async function cS(t,e){return await Jr.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=kt(),i={Bucket:ze(t),Key:Me(e)},s=await n.getObject(i);if(!s.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),NP.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return xc.default.Readable.fromWeb(o)}})}async function*lS(t,e){let r=kt(),n=(o={})=>r.listObjectsV2({...o,Bucket:ze(t),Prefix:Me(e)}),i=!1,s;do{let o={};s&&(o.ContinuationToken=s);let a=await n(o);if(a.Contents)for(let u of a.Contents)yield u;i=!!a.IsTruncated,s=a.NextContinuationToken}while(i&&s)}async function zr(t,e,r=3600){let n=kt({presigning:!0}),i={Bucket:ze(t),Key:Me(e)},s=await(0,aS.getSignedUrl)(n,new Oc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Qf}${a}${u}`}else return s}async function LP(t,e){return await Jr.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=ze(t),e=Me(e);let n=await cS(t,e),i=(0,Yr.join)(si(),(0,qf.v4)());return r.addTags({outputPath:i}),n instanceof xc.default.Readable?(r.addTags({stream:!0}),await(0,sa.pipeline)(n,is.default.createWriteStream(i))):(r.addTags({stream:!1}),is.default.writeFileSync(i,n)),i})}async function UP(t,e){return await Jr.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,Yr.join)(si(),(0,qf.v4)());await ia.default.mkdir(n,{recursive:!0});let i=0;return await vr.parallelForeach(lS(t,e),async s=>{i++,await Jr.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await Ec(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,Yr.join)(n,...l);c.length>1&&!is.default.existsSync(d)&&await ia.default.mkdir(d,{recursive:!0}),await(0,sa.pipeline)(u,is.default.createWriteStream((0,Yr.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function MP(t,e){let r=kt();await oa(r,t);let n={Bucket:t,Key:Me(e)};return r.deleteObject(n)}async function FP(t,e){let r=kt();await oa(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Me(i)}))}};return r.deleteObjects(n)}async function dS(t,e){t=ze(t),e=Me(e);let r=kt(),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 jf(t,e,r){return await Jr.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=ze(t);let i=await ia.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=Me((0,Yr.join)(r,s.name)),a=(0,Yr.join)(e,s.name);s.isDirectory()?await jf(t,a,o):await uS({bucket:t,filename:o,stream:is.default.createReadStream(a)})}return i})}async function kP(t,e,r={}){e=Me(e);let n=await(0,Vf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,sa.pipeline)(n.body,Wf.default.createUnzip(),$f.default.extract(e))}async function BP(t,e,r){e=ze(e),r=Me(r);let n=await(0,Vf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Yr.join)(si(),r);return await(0,sa.pipeline)(n.body,Wf.default.createUnzip(),$f.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await jf(e,i,r),i}async function Ec(t,e){return await Jr.default.trace("getReadStream",async r=>{t=ze(t),e=Me(e),r.addTags({bucketName:t,path:e});let n=kt(),i={Bucket:t,Key:e},s=await n.getObject(i);if(!s.Body||!(s.Body instanceof xc.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function GP(t,e){t=ze(t),e=Me(e);let r=kt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function bf(t){let e=t.split("?")[0],r=new RegExp(`^${Qf}/(?<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=G(require("aws-cloudfront-sign")),Rc;function VP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Rc||(Rc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Rc)}var $P=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:VP(),expireTime:new Date().getTime()+1e3*60*60*24}),ss=t=>{let e=Hf(t);return pS.getSignedUrl(e,$P())},Hf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var fS=G(require("querystring"));function mS(t){return`${Me(t)}/budibase-client.js`}async function WP(t,e){let r=mS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Hf(r)):await zr(h.APPS_BUCKET_NAME,r)}function qP(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${fS.default.encode(n)}`}async function hS(t){return h.CLOUDFRONT_CDN?ss(t):await zr(h.APPS_BUCKET_NAME,t)}async function QP(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 jP=async(t,e,r)=>{let n=gS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ss(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 HP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await KP(e),n=await YP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function KP(t){let e=ES(t);return yS(e)}async function YP(t){let e=TS(t);if(e)return yS(e)}async function yS(t){return h.CLOUDFRONT_CDN?ss(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=Jf.default.join(si(),"systemlogs");function _S(t){return Jf.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 zf(){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 JP(){let t=[],e=_S(xS);if(aa.default.existsSync(e)){let i=aa.default.readFileSync(e,"utf-8").split(`
37
- `);for(let s of i.filter(o=>o))t.push(aa.default.readFileSync(s))}return t.push(aa.default.readFileSync(_S(OS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}function zP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function ZP(t){return t instanceof Error}function XP(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,bS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:zf(),level:t}),Zr=r.length?(0,wc.default)(e,wc.default.multistream(r)):(0,wc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(y=>{XP(y)&&(d=`${d} ${y}`.trimStart()),zP(y)&&l.push(y),ZP(y)&&(c=y)});let p=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:p?._id,identityType:p?.type,correlationId:wf()};let f=Xf.default.scope().active();f&&Xf.default.inject(f.context(),DS.formats.LOG,m);let g={err:c,pid:process.pid,...m};if(l.length){let y={},T=0;for(let _=0;_<l.length;_++){let S=l[_],x=S._logKey;x?(delete S._logKey,g[x]=S):(y[T]=S,T++)}Object.keys(y).length&&(g.data=y)}return[g,d]};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=Q()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=lf()}catch{}return u},a=()=>{let u;try{u=cr()}catch{}return u}}var bc=Zr;var eL=["AccountError"];function tL(t){return t&&t.suppressAlert}function ui(t,e){e&&eL.includes(e.name)&&tL(e)||console.error(`bb-alert: ${t}`,e)}function rL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,ui(t,n)}function os(t,e){console.warn(`bb-warn: ${t}`,e)}var ca=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";Jo.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 em=new ca(h.INTERNAL_ACCOUNT_PORTAL_URL),tm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Xr=async t=>{if(tm)return;let e={email:t},r=await em.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]},as=async t=>{if(tm)return;let e={tenantId:t},r=await em.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]},nL=async()=>{if(tm)return;let t=await em.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 gs={};P(gs,{UserDB:()=>Jt,addAppBuilder:()=>j0,bulkGetGlobalUsersById:()=>il,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>Bm,creatorsInList:()=>li,doesUserExist:()=>V0,getAccountHolderFromUsers:()=>qc,getAllUserIds:()=>B0,getAllUsers:()=>G0,getById:()=>fi,getCreatorCount:()=>q0,getExistingAccounts:()=>cs,getExistingPlatformUsers:()=>GS,getExistingTenantUsers:()=>BS,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>U_,getGlobalUserByEmail:()=>Vt,getPlatformUsers:()=>Nc,getUserCount:()=>W0,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>WS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>$S,isBuilder:()=>ps,isCreatorAsync:()=>pa,isCreatorSync:()=>$c,isGlobalBuilder:()=>VS,paginatedUsers:()=>F_,removeAppBuilder:()=>H0,removePortalUserPermissions:()=>Q0,searchExistingEmails:()=>pm,searchGlobalUsersByApp:()=>sl,searchGlobalUsersByAppAccess:()=>km,searchGlobalUsersByEmail:()=>M_,validateUniqueUser:()=>Wc});var fm={};P(fm,{creatorsInList:()=>li,getAccountHolderFromUsers:()=>qc,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>WS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>$S,isBuilder:()=>ps,isCreatorAsync:()=>pa,isCreatorSync:()=>$c,isGlobalBuilder:()=>VS,validateUniqueUser:()=>Wc});var dm={};P(dm,{createCode:()=>yL,deleteCode:()=>TL,getCode:()=>EL,getExistingInvites:()=>lm,getInviteCodes:()=>kS,updateCode:()=>gL});var us={};P(us,{Duration:()=>De,DurationType:()=>cm,clearCookie:()=>en,compare:()=>im,getAppIdFromCtx:()=>dL,getCookie:()=>hr,hasCircularStructure:()=>fL,hash:()=>nm,isAudited:()=>am,isClient:()=>pL,isPublicApiRequest:()=>lL,isServingApp:()=>aL,isServingBuilder:()=>uL,isServingBuilderPreview:()=>cL,isValidInternalAPIKey:()=>la,newid:()=>fe,openJwt:()=>Cc,resolveAppUrl:()=>US,setCookie:()=>MS,time:()=>hL,timeout:()=>om,urlHasProtocol:()=>mL,validEmail:()=>um});var rm=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),iL=h.SALT_ROUNDS||10;async function nm(t){let e=await rm.genSalt(iL);return rm.hash(t,e)}async function im(t,e){return rm.compare(t,e)}var Dc=G(require("jsonwebtoken")),sm="app"+w,NS="/app/",PS="/app/preview",sL="/builder",LS=`${sL}/workspace/`,oL="/api/public/v";async function US(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Ho(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>ea({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function aL(t){return t.path.startsWith(`/${sm}`)?!0:t.path.startsWith(NS)}function uL(t){return t.path.startsWith(LS)}function cL(t){return t.path.startsWith(PS)}function lL(t){return t.path.startsWith(oL)}async function dL(t){let e=[t.request.headers["x-budibase-app-id"]],r;function n(u){return!u||!u.startsWith(sm)?r:(r&&Ki(r)!==Ki(u)&&t.throw("App id conflict",403),r??u)}for(let u of e)if(r=n(u),r)break;t.request.body&&t.request.body.appId&&(r=n(t.request.body.appId));let i=vS(t.path);i&&(r=n(i)),t.query?.appId&&(r=n(t.query?.appId));let s=t.path.startsWith(PS);if(t.path.startsWith(NS)&&!s&&(r=n(await US(t))),t.request.headers.referer?.includes(LS)){let u=vS(t.request.headers.referer);r=n(u)}return r}function vS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(sm))}function Cc(t){if(t)try{return Dc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Dc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function la(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function hr(t,e){let r=t.cookies.get(e);if(r)return Cc(r)}function MS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Dc.default.sign(e,h.JWT_SECRET));let i={expires:Xu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function en(t,e){MS(t,null,e)}function pL(t){return t.headers["x-budibase-type"]==="client"}function om(t){return new Promise(e=>setTimeout(e,t))}function am(t){return!!qh[t]}function fL(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 mL(t){return!!t.match(/^.+:\/\/.+$/)}function um(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 cm=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(cm||{}),vc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},De=class t{constructor(e){this.ms=e}to(e){return this.ms/vc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*vc[e]/vc[r]}static from(e,r){return new t(r*vc[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 hL(t){let e=performance.now();return[await t(),De.fromMilliseconds(performance.now()-e)]}var FS=De.fromDays(7).toSeconds();async function gL(t,e){await(await ei()).store(t,e,FS)}async function yL(t,e){let r=fe();return await(await ei()).store(r,{email:t,info:e},FS),r}async function EL(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 TL(t){await(await ei()).delete(t)}async function kS(){let r=(await(await ei()).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 lm(t){return(await kS()).filter(e=>t.includes(e.email))}async function pm(t){let e=[],r=await BS(t);e.push(...r.map(o=>o.email));let n=await GS(t);e.push(...n.map(o=>o._id));let i=await cs(t);e.push(...i.map(o=>o.email));let s=await lm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Nc(t){return await ra("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Nc(t))[0]??null}async function BS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await fr("by_email2",r,void 0,n)}async function GS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ra("platform_users_lowercase_2",r)}async function cs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ra("account_by_email",r)}var Vc={};P(Vc,{BadRequestError:()=>Uc,BudibaseError:()=>ls,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>Bc,ForbiddenError:()=>Mc,HTTPError:()=>Ge,InvalidAPIKeyError:()=>ds,NotFoundError:()=>Lc,NotImplementedError:()=>Fc,UnexpectedError:()=>Pc,UsageLimitError:()=>kc,getPublicError:()=>Gc});var ls=class extends Error{constructor(r,n){super(r);this.code=n}},Gc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},Ge=class t extends ls{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)}},Pc=class extends Ge{constructor(e){super(e,500)}},Lc=class extends Ge{constructor(e){super(e,404)}},Uc=class extends Ge{constructor(e){super(e,400)}},Mc=class extends Ge{constructor(e){super(e,403)}},Fc=class extends Ge{constructor(e){super(e,501)}},kc=class extends Ge{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Bc=class extends Ge{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},ds=class extends ls{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 ps=ut.users.isBuilder,tn=ut.users.isAdmin,VS=ut.users.isGlobalBuilder,$S=ut.users.isAdminOrBuilder,rn=ut.users.hasAdminPermissions,At=ut.users.hasBuilderPermissions,WS=ut.users.hasAppBuilderPermissions;async function li(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ie().getMultiple(r,{allowMissing:!0}),t.map(i=>$c(i,e))}async function pa(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),$c(t,e)}function $c(t,e){let r=ut.users.isCreator(t);return!r&&t?SL(t,e):r}function SL(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 Wc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new gr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Xr(t);if(r&&r.verified&&r.tenantId!==e)throw new gr(t)}}async function qc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await cs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var hs={};P(hs,{account:()=>o_,action:()=>a_,ai:()=>p_,analytics:()=>jc,app:()=>u_,auditLog:()=>w_,auth:()=>rl,automation:()=>c_,backfill:()=>__,backfillCache:()=>el,backup:()=>x_,datasource:()=>l_,email:()=>d_,environmentVariable:()=>R_,group:()=>I_,identification:()=>Gt,initAsyncEvents:()=>x0,installation:()=>Aa,layout:()=>m_,license:()=>f_,org:()=>h_,plugin:()=>O_,processors:()=>Sm,publishEvent:()=>A,query:()=>g_,role:()=>xa,rowAction:()=>b_,rows:()=>E_,screen:()=>y_,serve:()=>A_,shutdown:()=>R0,table:()=>T_,user:()=>Ze,view:()=>S_,workspace:()=>D_});var Sm={};P(Sm,{analyticsProcessor:()=>t_,init:()=>VL,processors:()=>Tr});var jc={};P(jc,{enabled:()=>Qc});var Qc=async()=>Hc();var KS=require("posthog-node");var _L=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",IL=t=>t==="served:app:preview"||t==="served:app";var QS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},jS=async t=>{if(!_L(t))return!1;let e=await OL(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 qS(t,{timestamp:Date.now()}),!1):!0}}else return await qS(t,{timestamp:Date.now()}),!1},HS=t=>{let e=`${ve.EVENTS_RATE_LIMIT}:${t}`;return IL(t)&&(e=e+":"+Ue()),e},OL=async t=>{let e=HS(t);return await ii(e)},qS=async(t,e)=>{let r=HS(t),n=QS[t],i;switch(n){case"calendarDay":i=86400}await lr(r,e,i)};var RL=["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"],fa=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new KS.PostHog(e)}async processEvent(e,r,n,i){if(RL.includes(e)||await jS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Ue();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 YS=fa;var wL=["installation:version:upgraded","installation:version:downgraded"],bL=["installation","tenant"],ma=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new YS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!wL.includes(e)&&!await Qc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!bL.includes(e.type)&&!await Qc()||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 mm=h.SELF_HOSTED&&!h.isDev(),ha=class{async processEvent(e,r,n){mm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){mm||console.log("[audit] identified",e)}async identifyGroup(e){mm||console.log("[audit] group identified",e)}async shutdown(){}};var Am={};P(Am,{BudibaseQueue:()=>Bt,InMemoryQueue:()=>Kc,JobQueue:()=>fs,QueuedProcessor:()=>Tm,UnretriableError:()=>zc,shutdown:()=>kL});var JS=G(require("events"));function DL(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 JS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((u,c)=>{r(n,(d,p)=>{d?c(d):u(p)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await Je.wait(100*c),await o(i(),c);throw l}}try{let u=await o(i());this._emitter.emit("completed",n,u);let c=this._messages.indexOf(n);if(c===-1)throw"Failed deleting a processed message";this._messages.splice(c,1)}catch(u){console.error(u),this._emitter.emit("error",n,u)}this._runCount++;let a=n.opts?.jobId?.toString();a&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}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=fe(),o=()=>{let u={id:s,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{u._isDiscarded=!0}};this._messages.push(u),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",u)},a=n?.delay;return a?setTimeout(o,a):o(),{id:i,finished:()=>new Promise((u,c)=>{let l=(p,m)=>{p.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),c(m))},d=(p,m)=>{p.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),u(m))};this._emitter.on("error",l),this._emitter.on("completed",d)})}}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=>DL(e))}async whenCurrentJobsFinished(){do await om(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},zS=Kc;var ym=G(require("bull"));var fs=(a=>(a.AUTOMATION="automationQueue",a.APP_BACKUP="appBackupQueue",a.AUDIT_LOG="auditLogQueue",a.SYSTEM_EVENT_QUEUE="systemEventQueue",a.APP_MIGRATION="appMigration",a.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",a.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",a))(fs||{});function ZS(t,e,r){NL(t,e),r&&CL(t,r)}function CL(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 vL={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event"};function NL(t,e){let r=vL[e];function n(i,s){let o=i.data.event?.appId;if(o)return cf(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 Yc={};P(Yc,{cleanup:()=>PL,clear:()=>gm,set:()=>hm});var ga=[];function hm(t,e){let r=setInterval(t,e);return ga.push(r),r}function gm(t){let e=ga.indexOf(t);e!==-1&&ga.splice(e,1),clearInterval(t)}function PL(){for(let t of ga)clearInterval(t);ga=[]}var Er=G(require("dd-trace")),ya=G(require("object-sizeof")),LL=De.fromMinutes(5).toMs(),UL=De.fromSeconds(30).toMs(),Em=De.fromSeconds(60).toMs(),Ea=[],Jc;async function XS(){for(let t of Ea)await t.clean(Em,"completed"),await t.clean(Em,"failed")}async function ML(t,e,r){let n=performance.now();try{let i=await e();return Er.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw Er.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;Er.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),Er.default.dogstatsd.increment(t,1,r)}}function e_(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 FL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,ya.default)(t.data),...e_(t.opts||{})}}var Bt=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:Zn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:LL,lockRenewTime:UL}};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 ym.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new zS(this.jobQueue,r):n=new ym.default(this.jobQueue,r),ZS(n,this.jobQueue,this.opts.removeStalledCb),Ea.push(n),!Jc&&!h.isTest()&&(Jc=hm(XS,Em),XS().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(o,a)=>{await Er.default.trace("queue.process",async u=>{if(o.data._parentSpanContext){let c=o.data._parentSpanContext,l={traceId:c.traceId,spanId:c.spanId,toTraceId:()=>c.traceId,toSpanId:()=>c.spanId,toTraceparent:()=>""};u.addLink(l)}u.addTags({"queue.name":this.jobQueue,...FL(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),Er.default.dogstatsd.distribution("queue.process.sizeBytes",(0,ya.default)(o.data),this.metricTags()),await this.withMetrics("queue.process",()=>a?n(o,a):n(o))})},s;return n.length===1?s=o=>i(o):s=i,r?this.queue.process(r,s):this.queue.process(s)}async add(e,r){return await Er.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ya.default)(e),...e_(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},Er.default.dogstatsd.distribution("queue.add.sizeBytes",(0,ya.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return ML(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function kL(){Jc&&gm(Jc),console.log("Waiting for current queue jobs to finish...");for(let t of Ea)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Ea)await t.close();Ea=[],console.log("Queues shutdown")}var zc=class extends Error{constructor(e){super(e),this.name="PermanentError"}},Tm=class{constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:s=!0,maxStalledCount:o=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new Bt(e,{maxStalledCount:o,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:s}}),this._queue.process(async(a,u)=>{try{let c=await this.processFn(a.data);u?.(null,c)}catch(c){c instanceof zc&&await a.discard(),ui(`Failed to process job in ${this._queue.name}`,c),u?.(c)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await Je.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var ms=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new Bt("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&&am(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var Ta=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 t_=new ma,BL=new ha,GL=new ms;function VL(t){return ms.init(t)}var Tr=new Ta([t_,BL,GL]);var Zc={};P(Zc,{checkInstallVersion:()=>qL,getInstall:()=>Sa,getInstallFromDB:()=>Im});var _m=G(require("semver"));var Sa=async()=>Qr(ve.INSTALLATION,86400,Im,{useTenancy:!1});async function $L(t){let e={_id:xe.PLATFORM_INFO.docs.install,installId:fe(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Im();throw r}}var Im=async()=>lt(xe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(xe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await $L(t);else throw r}return e}),WL=async t=>{try{await lt(xe.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await ts(ve.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},qL=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=_m.default.gt(r,e),i=_m.default.lt(r,e);await WL(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await Gt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?ui(`Invalid version "${r}" - is it semver?`):ui("Failed to retrieve version",n)}};var QL=async()=>{let t=Wp(),e=Oa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await di(),i=_a();return{id:r_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await di(),i=await Xc(Q()),s=_a();return{id:r_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Xc(Q()),s=await di(),o=n.account,a;return o?a=o.hosting:a=_a(),{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")},jL=async(t,e)=>{let r=t,n="installation",i=_a(),s=h.VERSION,o=Oa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Om(a,e),await Ia({...a,id:`$${n}_${r}`},e)},HL=async(t,e,r,n=h.VERSION)=>{let i=await Xc(t),s="tenant",o=await di(),a=Oa(),u={id:i,type:s,hosting:e,environment:a,installationId:o,createdAt:r,createdVersion:n};await Om(u,r),await Ia({...u,id:`$${s}_${i}`},r)},KL=async(t,e,r)=>{let n=t._id,i=await Xc(t.tenantId),s="user",o=At(t),a=rn(t),u;Ya(t)&&(u=t.providerType);let l=(await cs([t.email])).length>0,d=!!e&&l&&e.verified,p=await di(),m=e?e.hosting:_a(),f=Oa();await Ia({id:n,type:s,hosting:m,installationId:p,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},YL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ka(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await di(),c=Oa();if(Ha(t)){let d=await Vt(t.email);d?._id&&(e=d._id)}await Ia({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ia=async(t,e)=>{await Tr.identify(t,e)},Om=async(t,e)=>{await Tr.identifyGroup(t,e)},Oa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,_a=()=>h.SELF_HOSTED?"self":"cloud",di=async()=>JL()?"account-portal":(await Sa()).installId,Xc=async t=>h.SELF_HOSTED?n_(t):t,n_=async t=>qe(t,()=>Qr(ve.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await ys(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${fe()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=h.VERSION,await e.put(r),n)})),JL=()=>h.SERVICE==="account-portal",r_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Gt={getCurrentIdentity:QL,identifyInstallationGroup:jL,identifyTenantGroup:HL,identifyUser:KL,identifyAccount:YL,identify:Ia,identifyGroup:Om,getInstallationId:di,getUniqueTenantId:n_};var el={};P(el,{end:()=>ZL,isAlreadySent:()=>wm,isBackfillingEvent:()=>Rm,recordEvent:()=>xm,start:()=>zL});var zL=async t=>eU({eventWhitelist:t}),xm=async(t,e)=>{let r=bm(t,e);await lr(r,e,void 0,{useTenancy:!1})},ZL=async()=>{await tU(),await rU()},XL=async()=>ii(ve.BACKFILL_METADATA),eU=async t=>lr(ve.BACKFILL_METADATA,t),tU=async()=>{await Qo(ve.BACKFILL_METADATA)},rU=async()=>{let t=bm(),e=await gc(t);for(let r of e)await Qo(r,{useTenancy:!1})},Rm=async t=>{let r=(await XL())?.eventWhitelist;return!!(r&&r.includes(t))},wm=async(t,e)=>{let r=bm(t,e);return!!await ii(r,{useTenancy:!1})},nU={"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}`},bm=(t,e)=>{let r,n=Q();if(t){r=`${ve.EVENTS}:${n}:${t}`;let i=nU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${ve.EVENTS}:${n}:*`;return r};var Ar;function tl(){Ar=new Bt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function i_(){Ar&&await Ar.close()}async function s_(t){Ar||tl();let{event:e,identity:r}=t;Wh.indexOf(e)!==-1&&r.tenantId&&await Ar.add(t)}var A=async(t,e,r,n)=>{let i=n||await Gt.getCurrentIdentity();if(!(n?!1:await Rm(t))){await s_({event:t,identity:i,properties:e,timestamp:r}),await Tr.processEvent(t,i,e,r);return}await wm(t,e)||(await Tr.processEvent(t,i,e,r),await xm(t,e))};async function iU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function sU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function oU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var o_={created:iU,deleted:sU,verified:oU};async function aU(t,e){await A("action:automation_step:executed",t,e)}async function uU(t,e){await A("action:crud:executed",t,e)}async function cU(t,e){await A("action:ai_agent:executed",t,e)}var a_={aiAgentExecuted:cU,automationStepExecuted:aU,crudExecuted:uU};var lU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function dU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function pU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function fU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function mU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function hU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function gU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function yU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function EU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function TU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function AU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function SU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var u_={created:lU,updated:dU,deleted:pU,published:fU,unpublished:mU,fileImported:hU,duplicated:gU,templateImported:yU,versionUpdated:EU,versionReverted:TU,reverted:AU,exported:SU};async function _U(t,e){let n={userId:(await Gt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function IU(t){let r={userId:(await Gt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function OU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function xU(t){let e={type:t};await A("auth:sso:updated",e)}async function RU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function wU(t){let e={type:t};await A("auth:sso:deactivated",e)}var rl={login:_U,logout:IU,SSOCreated:OU,SSOUpdated:xU,SSOActivated:RU,SSODeactivated:wU};async function bU(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 DU(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 CU(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 vU(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 NU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function PU(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 LU(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 c_={created:bU,triggerUpdated:DU,deleted:CU,tested:vU,run:NU,stepCreated:PU,stepDeleted:LU};function Dm(t){return!Object.values(Wa).includes(t.source)}async function UU(t,e){let r={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:created",r,e)}async function MU(t){let e={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:updated",e)}async function FU(t){let e={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:deleted",e)}var l_={created:UU,updated:MU,deleted:FU};async function kU(t){let e={};await A("email:smtp:created",e,t)}async function BU(){let t={};await A("email:smtp:updated",t)}var d_={SMTPCreated:kU,SMTPUpdated:BU};async function GU(t){let e={};await A("ai:config:created",e,t)}async function VU(){let t={};await A("ai:config:updated",t)}var p_={AIConfigCreated:GU,AIConfigUpdated:VU};async function $U(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function WU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function qU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function QU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function jU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function HU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function KU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var f_={planChanged:$U,activated:WU,checkoutOpened:qU,checkoutSuccess:QU,portalOpened:jU,paymentFailed:HU,paymentRecovered:KU};async function YU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function JU(t){let e={layoutId:t};await A("layout:deleted",e)}var m_={created:YU,deleted:JU};async function zU(t){let e={};await A("org:info:name:updated",e,t)}async function ZU(t){let e={};await A("org:info:logo:updated",e,t)}async function XU(t){let e={};await A("org:platformurl:updated",e,t)}async function eM(){let t={};await A("analytics:opt:out",t)}async function tM(){let t={};await A("analytics:opt:out",t)}var h_={nameUpdated:zU,logoUpdated:ZU,platformURLUpdated:XU,analyticsOptOut:eM,analyticsOptIn:tM};var rM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},nM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},iM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await A("query:deleted",n)},sM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},oM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},aM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},g_={created:rM,updated:nM,deleted:iM,imported:sM,run:oM,previewed:aM};async function uM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function cM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function lM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function dM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function pM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var xa={created:uM,updated:cM,deleted:lM,assigned:dM,unassigned:pM};async function fM(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 mM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var y_={created:fM,deleted:mM};var hM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},gM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},E_={created:hM,imported:gM};async function yM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function EM(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 TM(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}async function AM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function SM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var T_={created:yM,updated:EM,deleted:TM,exported:AM,imported:SM};async function _M(t){let e={timezone:t};await A("served:builder",e)}async function IM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function OM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var A_={servedBuilder:_M,servedApp:IM,servedAppPreview:OM};async function xM(t,e){let r={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:created",r,e)}async function RM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:updated",e)}async function wM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:deleted",e)}async function bM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function DM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function CM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function vM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function NM(t){let e={audited:{email:t}};await A("user:invited",e)}async function PM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function LM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function UM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function MM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function FM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function kM(t){let e={users:t};await A("user:data:collaboration",e)}var Ze={created:xM,updated:RM,deleted:wM,permissionAdminAssigned:bM,permissionAdminRemoved:DM,permissionBuilderAssigned:CM,permissionBuilderRemoved:vM,invited:NM,inviteAccepted:PM,passwordForceReset:LM,passwordUpdated:UM,passwordResetRequested:MM,passwordReset:FM,dataCollaboration:kM};async function BM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function GM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function VM(t,e){let r={...Je.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}async function $M(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function WM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function qM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function QM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function jM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function HM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function KM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function YM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var S_={created:BM,updated:GM,deleted:VM,exported:$M,filterCreated:WM,filterUpdated:qM,filterDeleted:QM,calculationCreated:jM,calculationUpdated:HM,calculationDeleted:KM,viewJoinCreated:YM};async function JM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function zM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function ZM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function XM(){let t={};await A("installation:firstStartup",t)}var Aa={versionChecked:JM,upgraded:zM,downgraded:ZM,firstStartup:XM};var Es=!h.SELF_HOSTED&&!h.isDev();async function e0(t){Es||await A("app:backfill:succeeded",t)}async function t0(t){if(Es)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function r0(t){Es||await A("tenant:backfill:succeeded",t)}async function n0(t){if(Es)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function i0(){if(Es)return;let t={};await A("installation:backfill:succeeded",t)}async function s0(t){if(Es)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var __={appSucceeded:e0,appFailed:t0,tenantSucceeded:r0,tenantFailed:n0,installationSucceeded:i0,installationFailed:s0};async function o0(t,e){let r={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:created",r,e)}async function a0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:updated",e)}async function u0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:deleted",e)}async function c0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:user_added",r)}async function l0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function d0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function p0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var I_={created:o0,updated:a0,deleted:u0,usersAdded:c0,usersDeleted:l0,createdOnboarding:d0,permissionsEdited:p0};async function f0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function m0(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 h0(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 O_={init:f0,imported:m0,deleted:h0};async function g0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function y0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var x_={appBackupRestored:g0,appBackupTriggered:y0};async function E0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function T0(t){let e={name:t};await A("environment_variable:deleted",e)}async function A0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var R_={created:E0,deleted:T0,upgradePanelOpened:A0};async function S0(t){let e={filters:t};await A("audit_log:filtered",e)}async function _0(t){let e={filters:t};await A("audit_log:downloaded",e)}var w_={filtered:S0,downloaded:_0};async function I0(t,e){await A("row_action:created",t,e)}var b_={created:I0};async function O0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}var D_={deleted:O0};function x0(){}var R0=async()=>{await Tr.shutdown(),console.log("Events shutdown")};var Cm=async t=>{await Ze.deleted(t),At(t)&&await Ze.permissionBuilderRemoved(t),rn(t)&&await Ze.permissionAdminRemoved(t)},w0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},b0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},D0=async(t,e)=>{let r=t.roles,n=e?.roles;await w0(t,r,n),await b0(t,r,n)},vm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await as(r)),await Gt.identifyUser(t,n),e?(await Ze.updated(t),v0(t,e)&&await Ze.permissionBuilderRemoved(t),P0(t,e)&&await Ze.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Ze.passwordForceReset(t),t.password!==e.password&&await Ze.passwordUpdated(t)):await Ze.created(t),C0(t,e)&&await Ze.permissionBuilderAssigned(t),N0(t,e)&&await Ze.permissionAdminAssigned(t),await D0(t,e)},C0=(t,e)=>C_(t,e,At),v0=(t,e)=>v_(t,e,At),N0=(t,e)=>C_(t,e,rn),P0=(t,e)=>v_(t,e,rn),C_=(t,e,r)=>!(!r(t)||e&&r(e)),v_=(t,e,r)=>!(r(t)||!e||!r(e));var nl={};P(nl,{createASession:()=>U0,endSession:()=>M0,getSession:()=>Pm,getSessionsForUser:()=>Ra,invalidateSessions:()=>pi,updateSessionTTL:()=>Nm});var P_=require("uuid");var L_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):De.fromDays(7).toSeconds();function Ts(t,e){return`${t}/${e}`}async function Ra(t){return t?(await(await Wr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function pi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Ra(t)).map(o=>({key:Ts(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ts(t,s)}))),i&&i.length>0){let s=await Wr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||os(`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 U0(t,e){let r=await Ra(t),n=0;if(r.length>=3){let c=r.sort((p,m)=>new Date(p.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,d=c.slice(0,l).map(p=>p.sessionId);n=d.length,await pi(t,{sessionIds:d,reason:"session limit exceeded"})}let i=await Wr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,P_.v4)(),a=Ts(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,L_),{session:u,invalidatedSessionCount:n}}async function Nm(t){let e=await Wr(),r=Ts(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,L_)}async function M0(t,e){await(await Wr()).delete(Ts(t,e))}async function Pm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Wr()).get(Ts(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Fm={};P(Fm,{PASSWORD_MAX_LENGTH:()=>Um,PASSWORD_MIN_LENGTH:()=>Lm,validatePassword:()=>Mm});var Lm=+(h.PASSWORD_MIN_LENGTH||12),Um=+(h.PASSWORD_MAX_LENGTH||512);function Mm(t){return!t||t.length<Lm?{valid:!1,error:`Password invalid. Minimum ${Lm} characters.`}:t.length>Um?{valid:!1,error:`Password invalid. Maximum ${Um} characters.`}:{valid:!0}}var F0=async t=>{let e=t._id;await Ft.removeUser(t),await Cm(t),await nn.invalidateUser(e),await pi(e,{reason:"bulk-deletion"})},Jt=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()||Ya(e)?!0:(r||(r=await as(Q())),!!(r&&r.email===e.email&&Ka(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 Ge("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Mm(o);if(!d.valid)throw new Ge(d.error,400)}u=r.hashPassword?await nm(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 ie().allDocs(oi(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await sl(e,{})).length}}static async getUsersByAppAccess(e){return await km(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Vt(e)}static async getUser(e){let r=await fi(e);return r&&delete r.password,r}static async bulkGet(e){return await il(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ie(),{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 fi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!c&&s&&(c=await Vt(s),c&&c._id!==o))throw new gr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[p,m]=await li([c,e]);d=p!==m?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Wc(s,n);let p=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(p=Bm(p,c)),!c&&u?.length&&(p.roles={...u});let m=[];if(!o&&a.length>0)for(let f of a)m.push(t.groups.addUsers(f,[p._id]));try{let f=await i.put(p);return p._rev=f.rev,await vm(p,c),c&&p.email!==c.email&&await Ft.removeUser({email:c.email}),await Ft.addUser(n,p._id,p.email,p.ssoId),await nn.invalidateUser(f.id),await Promise.all(m),i.get(p._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(p=>p.email),u=await pm(a),c=[];for(let p of e){let m=s.find(g=>g.email.toLowerCase()===p.email.toLowerCase()),f=u.includes(p.email.toLowerCase());if(m||f){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await pa(p)&&o.push(p)}let l=await as(n),d=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let f of s)d&&delete f.password,i.push(t.buildUser(f,{hashPassword:!0,requirePassword:!d},n,void 0,l));let p=await Promise.all(i);await wa(p);for(let f of p)await Ft.addUser(n,f._id,f.email),await vm(f,void 0);let m=p.map(f=>({_id:f._id,email:f.email}));if(Array.isArray(m)&&r){let f=[],g=m.map(y=>y._id);for(let y of r)f.push(t.groups.addUsers(y,g));await Promise.all(f)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await qc(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),a=o.map(m=>({...m,_deleted:!0})),u=await wa(a),l=(await li(o)).filter(m=>m).length,d=[];for(let m of o){let g=(await da(m._id)).ssoId;g&&(await Nc(g)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await F0(m)}await jr().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let p={};return o.reduce((m,f)=>(m[f._id]=f,m),p),u.forEach(m=>{let f=p[m.id].email;m.ok?n.successful.push({_id:m.id,email:f}):n.unsuccessful.push({_id:m.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ie(),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===cr()._id?new Ge('Please visit "Account" to delete this user',400):new Ge("Account holder cannot be deleted",400)}await Ft.removeUser(n),await r.remove(i,n._rev);let s=await pa(n)?1:0;await t.quotas.removeUsers(1,s),await Cm(n),await nn.invalidateUser(i),await pi(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(ve.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 Da(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function il(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function B0(){let t=ie(),e=`us${w}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ve}`})).rows.map(n=>n.id)}async function G0(){let t=ie(),e=`us${w}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ve}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(t){return await ie().bulkDocs(t)}async function fi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Da(n)),n}async function Vt(t,e){if(t==null)throw"Must supply an email address to view";let r=await fr("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=Da(n)),n}async function V0(t){try{let e=await Vt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function sl(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=_c(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await fr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Da(s)),s}async function km(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}return(await ie().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function U_(t,e){if(e)return Sc(ct(t),e._id)}async function M_(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 fr("by_email2",{...e,startkey:i,endkey:`${n}${Ve}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Da(o)),o}var $0=8;async function F_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??$0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await fi(e.equal._id)]:r?(u=await sl(r,a),l=d=>U_(r,d)):e?.string?.email?(u=await M_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await il(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(oi(null,{...a,limit:void 0}))).rows.map(p=>p.doc),u=kr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(oi(null,a))).rows.map(p=>p.doc),Lf(u,s,{paginate:!0,property:c,getKey:l})}async function W0(){return(await Ff("by_email2",{limit:0,include_docs:!1})).total_rows}async function q0(){let t=0;async function e(r){let n=await F_({bookmark:r}),i=await li(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function Q0(t){return delete t.admin,delete t.builder,t}function Bm(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 j0(t,e){let r=ct(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Jt.save(t,{hashPassword:!1})}async function H0(t,e){let r=ct(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Jt.save(t,{hashPassword:!1})}var k_=3600;async function K0(t,e){let n=await xf(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 Y0(t){let e=await Jt.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 Ca({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=K0),!e)try{e=Q()}catch{e=await Ft.lookupTenantId(t)}let i=await Wo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,k_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ut.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Jt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function J0(t){let e=await Wo(),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 Y0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,k_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await Wo()).delete(t)}var qm={};P(qm,{Writethrough:()=>$m});var Ss={};P(Ss,{AUTO_EXTEND_POLLING_MS:()=>G_,doWithLock:()=>Gm,newRedlock:()=>mi});var B_=G(require("redlock"));async function Z0(t,e){if(t==="custom")return mi(e);switch(t){case"try_once":return mi(As.TRY_ONCE);case"try_twice":return mi(As.TRY_TWICE);case"default":return mi(As.DEFAULT);case"delay_500":return mi(As.DELAY_500);case"auto_extend":return mi(As.AUTO_EXTEND);default:throw vr.unreachable(t)}}var As={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 mi(t={}){let e={...As.DEFAULT,...t},n=(await Of()).client;return new B_.default([n],e)}function X0(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var G_=De.fromSeconds(10).toMs();async function Gm(t,e){let r=await Z0(t.type,t.customOptions),n,i;try{let s=X0(t),o=t.type==="auto_extend"?G_: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 V_=1e4,Vm=null;async function ol(){if(!Vm){let t=await If();Vm=new ti(t)}return Vm}function Na(t,e){return t.name+e}function Wm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function eF(t,e,r=V_){let n=await ol(),i=e._id,s;i&&(s=await n.get(Na(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await Gm({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;os("Ignoring conflict in write-through cache")}})).executed||os("Ignoring redlock conflict in write-through cache")),s=Wm(a,o?null:s?.lastWrite),a._id&&await n.store(Na(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function tF(t,e){let r=await ol(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Wm(s),await r.store(n,i)}return i.doc}async function rF(t,e){let r=await ol(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Wm(s),await r.store(n,i)}return i.doc}async function nF(t,e,r){let n=await ol();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(Na(t,i))}finally{await t.remove(i,r)}}var $m=class{constructor(e,r=V_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return eF(this.db,e,r)}async get(e){return tF(this.db,e)}async tryGet(e){return rF(this.db,e)}async remove(e,r){return nF(this.db,e,r)}};var Qm={};P(Qm,{createCode:()=>sF,getCode:()=>oF,invalidateCode:()=>aF});var iF=De.fromHours(1).toSeconds();async function sF(t,e){let r=fe();return await(await qo()).store(r,{userId:t,info:e},iF),r}async function oF(t){let r=await(await qo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function aF(t){await(await qo()).delete(t)}var Hm={};P(Hm,{DocWritethrough:()=>jm,DocWritethroughProcessor:()=>Pa,getProcessor:()=>cF,init:()=>$_});var uF=100,al,Pa=class t{static get queue(){return t._queue||(t._queue=new Bt("docWritethroughQueue",{jobOptions:{attempts:uF}})),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=We(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},jm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Pa.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function $_(){return al=new Pa().init(),al}function cF(){return al||$_()}function ul(t){return`config${w}${t}`}async function _t(t){let e=ie();try{return await e.get(ul(t))}catch(r){if(r.status===404)return;throw r}}async function lF(t){return t._id||(t._id=ul(t.type)),ie().put(t)}async function ys(){let t=await _t("settings");return t||(t={_id:ul("settings"),type:"settings",config:{}}),t.config.platformUrl=await La({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Hc({config:t.config}),t}async function Jm(){return(await ys()).config}async function La(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 _t("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Hc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Qr(ve.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await _t("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 dF(){return await _t("google")}async function cl(){return(await dF())?.config}async function zm(){if(!h.SELF_HOSTED)return Km();let t=await cl();return(!t||!t.activated)&&(t=Km()),t}function Km(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function pF(){return _t("logos_oidc")}async function fF(){return _t("oidc")}async function mF(){let t=(await fF())?.config;return t?.configs&&t.configs[0]}async function Zm(t){let e=(await _t("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function W_(){return _t("smtp")}async function hF(t){let e=await W_();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 gF(){return(await _t("scim"))?.config}async function yF(){return _t("ai")}async function EF(){return _t("recaptcha")}var uh={};P(uh,{AccessController:()=>th,BUILTIN_ROLE_IDS:()=>rh,Role:()=>sn,RoleHierarchyTraversal:()=>ll,RoleIDVersion:()=>nh,builtinRoleToNumber:()=>Ua,checkForRoleResourceArray:()=>H_,externalRole:()=>OF,findRole:()=>Ma,getAllRoleIds:()=>bF,getAllRoles:()=>ah,getBuiltinRole:()=>Q_,getBuiltinRoles:()=>sh,getDBRoleID:()=>K_,getExternalRoleID:()=>on,getExternalRoleIDs:()=>Y_,getRole:()=>xF,getUserRoleHierarchy:()=>oh,getUserRoleIdHierarchy:()=>j_,isBuiltin:()=>hi,lowerBuiltinRoleID:()=>IF,prefixRoleIDNoBuiltin:()=>eh,roleIDsAreEqual:()=>It,roleToNumber:()=>_F,saveRoles:()=>RF,validInherits:()=>SF});var Xm=G(require("semver"));var dl=G(require("lodash/fp/cloneDeep"));var q_=require("lodash");var rh={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...rh,BUILDER:"BUILDER"},nh={UUID:void 0,NAME:"name"};function AF(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=nh.NAME}addInheritance(e){return e&&typeof e=="string"?e=eh(e):e&&Array.isArray(e)&&(e=e.map(eh)),this.inherits=e,this}},ll=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=Ma(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!AF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ma(o.inherits,n,r),o&&i.push(o),Je.roles.checkForRoleInheritanceLoops(i))break}}return(0,q_.uniqBy)(i,s=>s._id)}},ih={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 sh(){return(0,dl.default)(ih)}function hi(t){return Object.values(rh).includes(t)}function eh(t){return hi(t)?t:dr(t)}function Q_(t){let e=Object.values(ih).find(r=>t.includes(r._id));if(e)return(0,dl.default)(e)}function SF(t,e){if(!e)return!1;let r=n=>t.find(i=>It(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 Ua(t){let e=sh(),r=Object.values(e).length+1;if(It(t,he.ADMIN)||It(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 _F(t){if(hi(t))return Ua(t);let e=await oh(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=>It(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 Ua(n.inherits)+1;return 0};return Math.max(...e.map(r))}function IF(t,e){return t?e&&Ua(t)>Ua(e)?e:t:e}function It(t,e){return dr(t)===dr(e)}function OF(t){let e;return t._id&&(e=on(t._id)),{...t,_id:e,inherits:Y_(t.inherits,t.version)}}function Ma(t,e,r){let n=Q_(t);n||(t=dr(t));let i=e.find(s=>s._id&&It(s._id,t));return!i&&!hi(t)&&r?.defaultPublic?(0,dl.default)(ih.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 xF(t,e){let r=Xi(),n=[];if(!hi(t)){let i=await r.tryGet(K_(t));i&&n.push(i)}return Ma(t,n,e)}async function RF(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:dr(r._id)})))}async function wF(t,e){let r=await ah();if(It(t,he.ADMIN))return r;let n=Ma(t,r,e),i=[];return n&&(i=new ll(r,e).walk(n)),i}async function j_(t){return(await oh(t)).map(r=>r._id)}async function oh(t,e){return wF(t,e)}function H_(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 bF(t){return(await ah(t)).map(r=>r._id)}async function ah(t){if(t)return lt(t,e);{let r;try{r=Xi()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(Ic(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=on(a._id,a.version)));let i=sh(),s=[];!r||await DF(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=>It(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=H_(o.permissions,a);return n}}async function DF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Xm.default.valid(r)?!0:!Xm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var th=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||It(e,he.BUILDER)||It(r,e)||It(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await j_(r),this.userHierarchies[r]=n),n?.find(i=>It(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 K_(t){return t?.startsWith("role")?t:dr(t)}function on(t,e){if(t.startsWith(`role${w}`)&&(hi(t)||e===nh.NAME)){let r=t.split(w);return r.shift(),r.join(w)}return t}function Y_(t,e){return t&&(typeof t=="string"?on(t,e):t.map(r=>on(r,e)))}var ch={};P(ch,{BUILDER:()=>LF,BUILTIN_PERMISSIONS:()=>pl,CREATOR:()=>UF,GLOBAL_BUILDER:()=>MF,PermissionImpl:()=>ge,PermissionLevel:()=>Rs,PermissionType:()=>ja,doesHaveBasePermission:()=>NF,getAllowedLevels:()=>X_,getBuiltinPermissionByID:()=>vF,getBuiltinPermissions:()=>CF,isPermissionLevelHigherThanRead:()=>PF,levelToNumber:()=>Z_});var J_=G(require("lodash/flatten")),z_=G(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function Z_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function X_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var pl={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 CF(){return(0,z_.default)(pl)}function vF(t){return Object.values(pl).find(r=>r._id===t)}function NF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(pl),s=(0,J_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&X_(o.level).indexOf(e)!==-1)return!0;return!1}function PF(t){return Z_(t)>1}var LF="builder",UF="creator",MF="globalBuilder";var ph={};P(ph,{FlagSet:()=>ml,all:()=>GF,flags:()=>lh,getEnvFlags:()=>nI,init:()=>FF,isEnabled:()=>BF,parseEnvFlags:()=>gl,shutdown:()=>kF,testutils:()=>dh});var hl=G(require("crypto"));var eI=require("posthog-node"),tI=G(require("dd-trace"));var rI=require("lodash");var fl;function FF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),fl=new eI.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:De.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function kF(){fl?.shutdown()}function gl(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 nI(){return gl(h.TENANT_FEATURE_FLAGS||"")}var ml=class{constructor(e){this.flagSchema=e;this.setId=hl.randomUUID()}defaults(){return(0,rI.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await tI.default.trace("features.fetch",async e=>{let r=ff(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;if(cc())return i;for(let{tenantId:d,key:p,value:m}of nI())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=m,n[`flags.${p}.source`]="environment"}let a=cr(),u=a?._id;if(!u){let d=df();d&&(u=hl.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,fl&&u){n.readFromPostHog=!0;let d=await ys(),p={tenantId:c},m={tenant:{id:c}};d.config.createdVersion&&(m.tenant.createdVersion=d.config.createdVersion),d.createdAt&&(m.tenant.createdAt=`${d.createdAt}`);let f=await fl.getAllFlags(u,{personProperties:p,onlyEvaluateLocally:!0,groups:{tenant:c},groupProperties:m});for(let[g,y]of Object.entries(f))if(this.isFlagName(g)){if(typeof y!="boolean"){console.warn(`Invalid value for posthog flag "${g}": ${y}`);continue}if(!(i[g]===!0||o.has(g)))try{i[g]=y,n[`flags.${g}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${g}": ${y}`,T)}}}let l=hf();for(let[d,p]of Object.entries(l))this.isFlagName(d)&&typeof p=="boolean"&&(i[d]=p,n[`flags.${d}.source`]="override");mf(this.setId,i);for(let[d,p]of Object.entries(i))n[`flags.${d}.value`]=p;return e?.addTags(n),i})}},lh=new ml(Kh);async function BF(t){return await lh.isEnabled(t)}async function GF(){return await lh.fetch()}var dh={};P(dh,{setFeatureFlags:()=>iI,withFeatureFlags:()=>WF});function VF(){let t={};for(let{tenantId:e,key:r,value:n}of gl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function $F(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 iI(t,e){let r=VF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=$F(r);return Do({TENANT_FEATURE_FLAGS:n})}function WF(t,e,r){let n=iI(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Oh={};P(Oh,{adminOnly:()=>wl,auditLog:()=>Il,authError:()=>Fe,buildAuthMiddleware:()=>Rk,buildCsrfMiddleware:()=>bk,buildTenancyMiddleware:()=>wk,builderOnly:()=>Dl,builderOrAdmin:()=>bl,google:()=>Sr,internalApi:()=>xl,joiValidator:()=>ka,oidc:()=>_r,passport:()=>Dk,platformLogout:()=>Lk,refreshOAuthToken:()=>Nk,ssoCallbackUrl:()=>an,updateUserOAuth:()=>Pk});var Ih={};P(Ih,{adminOnly:()=>wl,auditLog:()=>Il,authError:()=>Fe,authenticated:()=>_l,builderOnly:()=>Dl,builderOrAdmin:()=>bl,correlation:()=>EI,csp:()=>OI,csrf:()=>Rl,datasource:()=>Ok,errorHandling:()=>AI,featureFlagCookie:()=>xI,google:()=>Sr,internalApi:()=>xl,ip:()=>wI,joiValidator:()=>ka,local:()=>_s,oidc:()=>_r,pino:()=>gI,querystringToBody:()=>SI,ssoCallbackUrl:()=>an,tenancy:()=>Ol});var _s={};P(_s,{authenticate:()=>jF,options:()=>QF});function Fe(t,e,r){return t(r,null,{message:e})}async function an(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Jm(),n="/api/global/auth";return $r()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var fh="Invalid credentials",qF="This account has expired. Please reset your password",QF={passReqToCallback:!0};async function jF(t,e,r,n){if(!e)return Fe(n,"Email Required");if(!r)return Fe(n,"Password Required");let i=await Vt(e);return i==null?(console.info(`user=${e} could not be found`),Fe(n,fh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Fe(n,fh)):i.password?await im(r,i.password)?(delete i.password,n(null,i)):Fe(n,fh):(console.info(`user=${e} has no password set`,i),Fe(n,qF))}var Sr={};P(Sr,{buildVerifyFn:()=>aI,getCallbackUrl:()=>YF,strategyFactory:()=>mh});var Fa=t=>Promise.resolve(t);async function yl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Fe(r,"sso user id required");if(!t.email)return Fe(r,"sso user email required");let i=rs(t.userId),s;try{s=await fi(i)}catch(a){if(!a.status||a.status!==404)return Fe(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Vt(t.email)),!s&&e)return Fe(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 HF(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Fe(r,"Error saving user",a)}return r(null,o)}async function HF(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 KF=require("passport-google-oauth").OAuth2Strategy;function aI(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 yl(s,!0,i,t)}}async function mh(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=aI(r);return new KF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function YF(t){return an("google",t)}var _r={};P(_r,{buildVerifyFn:()=>cI,fetchStrategyConfig:()=>XF,getCallbackUrl:()=>ek,strategyFactory:()=>ZF});var uI=G(require("node-fetch"));var JF=require("@techpass/passport-openidconnect").Strategy;function cI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:zF(n,i),oauth2:{accessToken:s,refreshToken:o}};return yl(l,!1,c,t)}}function zF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&um(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function ZF(t,e){try{let r=cI(e),n=new JF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function XF(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:s}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let o=await(0,uI.default)(i);if(!o.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${o.statusText}`);let a=await o.json();return{issuer:a.issuer,authorizationURL:a.authorization_endpoint,tokenURL:a.token_endpoint,userInfoURL:a.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:s}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function ek(){return an("oidc")}var hh={};P(hh,{postAuth:()=>nk,preAuth:()=>rk});var tk=require("passport-google-oauth").OAuth2Strategy;async function lI(){let t=await zm();if(!t)throw new Error("No google configuration found");return t}async function rk(t,e,r){let n=await lI(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await mh(n,s,Fa);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 nk(t,e,r){let n=await lI(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=hr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new tk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{en(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=fe();await lr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var ik=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(ik);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 Sh={};P(Sh,{SecretOption:()=>fI,decrypt:()=>Ah,decryptFile:()=>lk,encrypt:()=>ak,encryptFile:()=>uk,getSecret:()=>Th});var Ir=G(require("crypto")),un=G(require("fs")),yh=G(require("zlib"));var gh=require("path"),El="aes-256-ctr",pI="-",sk=1e4,ok=32,Tl=16,Eh=16,fI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(fI||{});function Th(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 Al(t,e){return Ir.default.pbkdf2Sync(t,new Uint8Array(e),sk,ok,"sha512")}function ak(t,e="api"){let r=Ir.default.randomBytes(Tl),n=Al(Th(e),r),i=Ir.default.createCipheriv(El,new Uint8Array(n),new Uint8Array(r)),s=i.update(t,"utf8"),o=i.final(),a=Buffer.concat([new Uint8Array(s),new Uint8Array(o)]).toString("hex");return`${r.toString("hex")}${pI}${a}`}function Ah(t,e="api"){let[r,n]=t.split(pI),i=Buffer.from(r,"hex"),s=Al(Th(e),i),o=Ir.default.createDecipheriv(El,new Uint8Array(s),new Uint8Array(i)),a=o.update(n,"hex"),u=o.final();return Buffer.concat([new Uint8Array(a),new Uint8Array(u)]).toString()}async function uk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,gh.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,gh.join)(t,n)),a=Ir.default.randomBytes(Tl),u=Ir.default.randomBytes(Eh),c=Al(r,a),l=Ir.default.createCipheriv(El,new Uint8Array(c),new Uint8Array(u));return o.write(a),o.write(u),s.pipe(yh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function ck(t){let e=un.default.createReadStream(t),r=await dI(e,Tl),n=await dI(e,Eh);return e.close(),{salt:r,iv:n}}async function lk(t,e,r){if(un.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await ck(t),s=un.default.createReadStream(t,{start:Tl+Eh}),o=un.default.createWriteStream(e),a=Al(r,n),u=Ir.default.createDecipheriv(El,new Uint8Array(a),new Uint8Array(i)),c=yh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",p=>{o.close(),d(p)}),u.on("error",p=>{o.close(),d(p)}),c.on("error",p=>{o.close(),d(p)}),o.on("error",p=>{o.close(),d(p)})})}function dI(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.map(a=>new Uint8Array(a))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var hI=G(require("dd-trace")),dk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function pk(){return new Date(Date.now()-dk).toISOString()}function mI(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 fk(t,e){if(la(t))return{valid:!0,user:void 0};let n=Ah(t).split(w)[0];return qe(n,async()=>{let i;try{let s=ie();i=await fr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Ca({userId:i,tenantId:n,populateUser:e})};throw new ds})}function Sl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function _l(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=Sl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=Sl(n,"x-budibase-token"),c=hr(n,"budibase:auth")||Cc(u),l=Sl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=Sl(n,"x-budibase-tenant-id"),p=!1,m,f=!1,g;if(c&&!l){let T=c.sessionId,_=c.userId,S;try{S=await Pm(_,T),e&&e.populateUser?m=await Ca({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await Ca({userId:_,tenantId:S.tenantId,email:S.email}),m.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<pk()&&await Nm(S),p=!0}catch(x){p=!1,console.error(`Auth Error: ${x.message}`),en(n,"budibase:auth")}}if(!p&&l){let T=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await fk(l,T);_&&(p=!0,g="api_key",m=S,f=!S)}!m&&d?m={tenantId:d}:m&&"password"in m&&delete m.password,p||(p=!1);let y=T=>T&&T.email;return y(m)&&hI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),mI(n,{authenticated:p,user:m,internal:f,version:o,publicEndpoint:s,loginMethod:g}),y(m)?Qp(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?en(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return mI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Il=async(t,e)=>e();function Ol(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=Ho(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}async function xl(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),la(r)||t.throw(403,"Unauthorized"),e()}var mk=["GET","HEAD","OPTIONS"],hk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Rl(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||mk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!hk.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 wl=async(t,e)=>(!t.internal&&!tn(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function bl(t,e){let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?ps: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()}async function Dl(t,e){let r=Ue(),n;if(h.isWorker()||!r?n=At:h.isApps()&&(n=ps),!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 gk=require("koa-pino-logger"),yk=require("correlation-id");function Ek(){return{logger:bc,genReqId:yk.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 Tk(){return h.HTTP_LOGGING?gk(Ek()):(t,e)=>e()}var gI=Tk();var yI=require("uuid"),Ak=require("correlation-id"),EI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,yI.v4)()),Ak.withId(r,()=>e())};function TI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of JT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function AI(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:Gc(r)};if(TI(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}}function SI(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 II=G(require("crypto"));var _I={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","https://www.google.com/recaptcha/api.js"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com"],"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'"]},Sk=/^[A-Za-z0-9-*:/.]+$/,OI=async(t,e)=>{let r=II.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={..._I};if(n["script-src"]=[..._I["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Zo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
- `).filter(c=>Sk.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()};var xI=async(t,e)=>{let n=hr(t,"budibase:featureflags")?.flags||{};await gf(n,async()=>{await e()})};var ka={};P(ka,{body:()=>_k,params:()=>Ik});var _h=G(require("joi"));function RI(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:_h.default.any().optional(),updatedAt:_h.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 _k(t,e){return RI(t,"body",e)}function Ik(t,e){return RI(t,"params",e)}async function wI(t,e){return t.ip?await pf(t.ip,()=>e()):e()}var Ok={google:hh};var bI=require("koa-passport"),xk=require("passport-local").Strategy,Cl=require("passport-oauth2-refresh"),Rk=_l,wk=Ol,bk=Rl,Dk=bI;bI.use(new xk(_s.options,_s.authenticate));async function Ck(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,Fa)}catch{throw new Error("Could not refresh OAuth Token")}return Cl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Cl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function vk(t,e){let r=await Sr.getCallbackUrl(t),n;try{n=await Sr.strategyFactory(t,r,Fa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Cl.use(n),new Promise(i=>{Cl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Nk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Zm(r);return n?Ck(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await cl();return n?vk(n,t):{err:{data:"Google configuration not found"}}}}}async function Pk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Lk(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=hr(e,"budibase:auth"),s=await Ra(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):en(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await pi(r,{sessionIds:o,reason:"logout"}),await rl.logout(e.user?.email),await va(r)}var Rh={};P(Rh,{validate:()=>Bk});var C=G(require("joi")),Uk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function xh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Mk(t){let e=C.default.object({type:C.default.string().allow("component").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),settings:C.default.array().items(C.default.object().unknown(!0)).required()}).unknown(!0)});xh(e,t)}function Fk(t){let e=C.default.object({type:C.default.string().allow(...Object.values(Ml)).required(),required:C.default.boolean().required(),default:C.default.any(),display:C.default.string()}),r=C.default.object({type:C.default.string().allow(...Object.values(Ul)),readable:C.default.boolean(),displayName:C.default.string(),fields:C.default.object().pattern(C.default.string(),e)}).required(),n=C.default.object({type:C.default.string().allow("datasource").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({docs:C.default.string(),plus:C.default.boolean().optional(),isSQL:C.default.boolean().optional(),auth:C.default.object({type:C.default.string().required()}).optional(),features:C.default.object(Object.fromEntries(Object.values(Fl).map(i=>[i,C.default.boolean().optional()]))).optional(),relationships:C.default.boolean().optional(),description:C.default.string().required(),friendlyName:C.default.string().required(),type:C.default.string().allow(...Uk),datasource:C.default.object().pattern(C.default.string(),e).required(),query:C.default.object().pattern(C.default.string(),r).unknown(!0).required(),extra:C.default.object().pattern(C.default.string(),C.default.object({type:C.default.string().required(),displayName:C.default.string().required(),required:C.default.boolean(),data:C.default.object()}))})});xh(n,t)}function kk(t){let e=C.default.object().pattern(C.default.string(),{type:C.default.string().allow(...Object.values(Z)).required(),customType:C.default.string().allow(...Object.values(pe)),title:C.default.string(),description:C.default.string(),enum:C.default.array().items(C.default.string()),pretty:C.default.array().items(C.default.string())}),r=C.default.object({properties:e,required:C.default.array().items(C.default.string())}).concat(e).required(),n=C.default.object({type:C.default.string().allow("automation").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),tagline:C.default.string().required(),icon:C.default.string().required(),description:C.default.string().required(),type:C.default.string().allow("ACTION","LOGIC").required(),stepId:C.default.string().disallow(...Yh).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});xh(n,t)}function Bk(t){switch(t?.type){case"component":Mk(t);break;case"datasource":Fk(t);break;case"automation":kk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var wh={};P(wh,{Client:()=>Qe,clients:()=>qr,locks:()=>Ss,utils:()=>pc});var bh={};P(bh,{isBlacklisted:()=>Vk,refreshBlacklist:()=>NI});var DI=G(require("dns")),Nl=G(require("net"));var CI=require("util"),vl,Gk=(0,CI.promisify)(DI.default.lookup);async function vI(t){return Nl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Gk(t,{all:!0})).map(r=>r.address)}async function NI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Nl.default.isIP(i))r.push(i);else{let s=await vI(i);r=r.concat(s)}}vl=r}async function Vk(t){if(vl||await NI(),vl?.length===0)return!1;let e;return Nl.default.isIP(t)?e=[t]:e=await vI(t),!!vl?.find(r=>e.includes(r))}var Ch={};P(Ch,{init:()=>Wk});var $k={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};function PI(t,e){let r=$k[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ba=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=PI(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,appId:n.appId})})}shutdown(){return i_()}};var LI,Dh;function Wk(t){Ar||tl(),Dh||(Dh=new Ba(t)),LI||(LI=Ar.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Dh.processEvent(r,n,i)}))}var Bh={};P(Bh,{COUNT_FIELD_NAME:()=>Fh,Sql:()=>WI,SqlTable:()=>Pl,designDoc:()=>kh,utils:()=>of});var kI=require("knex");var qk=require("knex");function vh(t){return["link","formula","ai"].indexOf(t)!==-1}function UI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(p=>p.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(p=>p.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(p=>p.foreignKey);for(let[p,m]of Object.entries(e.schema)){let f=n?.schema[p];if(f&&f.type||c.includes(p)||i?.updated===p)continue;let g=m.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(p)?t.string(p,255):t.text(p);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:y,toTable:T}=m.meta;t.integer(p).unsigned(),t.foreign(p).references(`${T}.${y}`)}else l.indexOf(p)===-1&&t.float(p);break;case"bigint":t.bigint(p);break;case"boolean":t.boolean(p);break;case"datetime":m.timeOnly?t.time(p):t.datetime(p,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":Je.schema.isDeprecatedSingleUserColumn(m)?t.text(p):t.json(p);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:y}=ef(m.tableId),T=r[y];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let _=T.primary[0],S=T.schema[_].externalType;S?t.specificType(m.foreignKey,S):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${y}.${_}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(p);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:vr.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!vh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,f])=>!vh(f.type)&&e.schema[m]==null).forEach(([m,f])=>{i?.old===m||vh(f.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function jk(t,e,r){return t.createTable(e.name,n=>{UI(n,e,r)})}function Hk(t,e,r,n,i){return t.alterTable(e.name,s=>{UI(s,e,r,n,i)})}function Kk(t,e){return t.dropTable(e.name)}var Nh=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,qk.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=jk(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=Hk(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=Kk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},Pl=Nh;var BI=require("lodash"),Fh="__bb_total";function MI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Ph(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Yk(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 GI(t){return Array.isArray(t)?t.map(e=>GI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function FI(t){return t.sourceType==="internal"||t.sourceId===ql}function Jk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function VI(t,e='"'){return`${e}${Jk(t,e)}${e}`}function Lh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=VI(t[r],e));return`[${t.join(",")}]`}function $I(t){return Zh.includes(t.type)&&!Je.schema.isDeprecatedSingleUserColumn(t)}var zk={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},Uh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array",POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new 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(".")}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()&&$I(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${e}}`;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),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(!nf(e))return null}else if(r.dateOnly){let n=rf(e);return n?new Date(n):null}else return r.ignoreTimezones?ac(e)?new Date(e):tf(e)?new Date(e+"Z"):null:ac(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(zt)){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=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let p=d.tableName,m=a?.[p]||p,f=l(p)||l(m),g=l(d.column);if((f||g)&&d.to&&d.tableName){let y=this.knex.select(this.knex.raw(1)).from({[m]:p}),T=y.clone(),_=sf(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let x=a?.[_.through]||d.through,E=this.tableNameWithSchema(_.through,{alias:x,schema:o});T=T.innerJoin(E,function(){this.on(`${m}.${_.toPrimary}`,"=",`${x}.${_.to}`)}).where(`${x}.${_.from}`,"=",this.rawQuotedIdentifier(`${c}.${_.fromPrimary}`)),this.client==="sqlite3"&&(T=this.addJoinFieldCheck(T,_)),e=e.where(I=>{I.whereExists(i(S,T)),r&&I.orWhereNotExists(y.clone().innerJoin(E,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${x}.${_.from}`)}))})}else{let x=`${m}.${d.to}`,E=`${c}.${d.from}`;T=T.where(x,"=",this.rawQuotedIdentifier(E)),e=e.where(I=>{I.whereExists(i(S,T.clone())),r&&I.orWhereNotExists(T)})}}}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,y,T){let _=(S,x,E)=>{let[I,...k]=x.split("."),D=k.join("."),B=c(I);return S.andWhere(de=>y(de,B?`${B}.${D}`:D,E))};for(let S in f){let x=f[S],E=na(S),I=E.includes("."),k=n?.relationship&&I,D;if(S==="_complexIdOperator"&&(D=f[S])&&T){let B=c(u);e=T(e,D.id.map(de=>B?`${B}.${de}`:de),D.values)}else if(I)k&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,zk[g],E,(B,de)=>_(de,B,x)));else{let B=c(u);e=y(e,B?`${B}.${E}`:E,x)}}}let d=(f,g,y)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),p=(f,g=!1)=>{function y(T){return(o||f===r?.containsAny)&&(T=T.or),f===r?.notContains&&(T=T.not),T}this.client==="pg"?l(f,"contains",(T,_,S)=>{T=y(T);let x=this.getFieldSchema(_),E="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(x)&&(E="",S=`{${S.map(k=>k.substring(1,k.length-1))}}`),g?T.whereRaw(E?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(_),E?this.knex.raw(Lh(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${E} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),E?this.knex.raw(Lh(S)):this.knex.raw(S)])}):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(T,_,S)=>y(T).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw(VI(Lh(S)))])):l(f,"contains",(T,_,S)=>(S.length===0||(T=T.where(x=>(f===r?.notContains&&(x=x.not),x=x.where(E=>{for(let I of S){f===r?.containsAny?E=E.or:E=E.and;let k=typeof I=="string"?`"${I.toLowerCase()}"`:I;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${k}%`)}}),f===r?.notContains&&(x=x.or.whereNull(this.rawQuotedIdentifier(_))),x))),T))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let y of f.conditions)g.orWhere(T=>this.addFilters(T,{...y,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,y)=>{let T=this.getFieldSchema(g),_=Array.isArray(y)?y:[y];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly){for(let S of _)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,_)},(f,g,y)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(T=>this.convertClobs(T))),f.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&l(r.string,"string",(f,g,y)=>{if(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3")return f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let T=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?f.whereRaw(`??::text ilike '${y}%'`,[this.knex.raw(this.quote(T.name))]):f.whereILike(g,`${y}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,y)=>{let T=D=>D&&Object.keys(D).length===0&&Object.getPrototypeOf(D)===Object.prototype;T(y.low)&&(y.low=""),T(y.high)&&(y.high="");let _=uc(y.low),S=uc(y.high),x=this.getFieldSchema(g),E=g,I=y.high,k=y.low;return this.client==="sqlite3"&&x?.type==="datetime"&&x.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),k!=null&&(k=k.toISOString().slice(0,10))),this.client==="oracledb"?E=this.convertClobs(g):this.client==="sqlite3"&&x?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[y.high]),k=this.knex.raw("CAST(? AS INTEGER)",[y.low])),o&&(f=f.or),_&&S?f.whereBetween(E,[k,I]):_?f.where(E,">=",k):S?f.where(E,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,y)=>{let T=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),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.whereNotNull(_).andWhere(_,y))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?f.whereLike(g,`${y.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,y)=>{let T=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),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.not.whereNull(_).and.where(_,"!=",y)).or.whereNull(_)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?f.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),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&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!Xp(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Rr(r.documentType)}%`),e}isSqs(){return FI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;FI(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 ${Fh}`)}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}`,p;this.isAggregateField(a)?p=this.rawQuotedIdentifier(a):this.client==="oracledb"?p=this.convertClobs(d):p=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[p,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:p,through:m,to:f,from:g,fromPrimary:y,toPrimary:T}=d;if(!p||!r)continue;let _=c[p];if(!_)throw new Error(`related table "${p}" not found in datasource`);let S=a?.[p]||p,x=a?.[r]||r,E=m&&a?.[m]||m,I=this.tableNameWithSchema(p,{alias:S,schema:u}),k=[..._?.primary||[],_?.primaryDisplay].filter(W=>W),D=Yk(l.filter(W=>W.split(".")[0]===S),k);D=D.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=D.map(W=>this.buildJsonField(_,W));if(!B.length)continue;let de=B.map(W=>{let ue=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ue}??`,[W[0],W[1]]).toString()}).join(","),cn=`${S}.${T||f}`,$=s.from(I).orderBy(cn),F=m&&T&&y,N=F?`${E}.${g}`:`${S}.${f}`,q=F?`${x}.${y}`:`${x}.${g}`;if(F){let W=this.tableNameWithSchema(m,{alias:E,schema:u});$=$.join(W,function(){this.on(`${S}.${T}`,"=",`${E}.${f}`)})}$=$.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(q));let O=W=>($=$.select(D.map(ue=>this.rawQuotedIdentifier(ue))).limit(Ph()),s.select(W).from({[S]:$})),K;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),K=O(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":K=O(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":K=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${Ph()})`));break;case"mysql2":case"oracledb":K=O(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let W=s.select("*").from({[x]:$.select(B.map(ue=>s.ref(ue[1]).as(ue[0]))).limit(Ph())});K=s.raw(`(SELECT ?? = (${W} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}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,p=this.tableNameWithSchema(o,{alias:c,schema:s}),m=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(m,function(){for(let f of n){let g=f.fromPrimary,y=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${y}`)}}).leftJoin(p,function(){for(let f of n){let g=f.toPrimary,y=f.to;this.orOn(`${c}.${g}`,`${l}.${y}`)}}):e=e.leftJoin(p,function(){for(let f of n){let g=f.from,y=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${y}`)}}),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 m=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=m}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 p=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[p]:"paginated"}));return this.addJsonRelationships(m,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())}},Mh=class extends Pl{constructor(r,n=MI()){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=GI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,kI.knex)(s),a,u=new Uh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:MI()}});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 p of a)d.push(await n(p,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===ql){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(!$I(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){Po(this.getSqlClient(),r,n)}},WI=Mh;var kh={};P(kh,{base:()=>Zk});function Zk(t){return{_id:Kt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Gh={};P(Gh,{jsonFromCsvString:()=>Xk});var qI=G(require("csvtojson"));async function Xk(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let s of i){let o,a=!1;try{let u=await(0,qI.default)({ignoreEmpty:r,delimiter:s}).fromString(t);for(let[,c]of u.entries()){let l=Object.keys(c);if(o==null&&(o=l),!n&&l.length===1){a=!0;break}if(o.length!==l.length){a=!0;break}for(let d of o)(c[d]===void 0||c[d]==="")&&(c[d]=null)}if(a)continue;return u}catch{continue}}throw new Error("Unable to determine delimiter")}var Vh=class{constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,s=this.controller,o=this.outputMiddlewares,a=()=>{},u=[n,...i,s,...o,a];e[r](...u)}},Ll=Vh;var QI=G(require("@koa/router")),Ei=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),s=new Ll(e,r,i);if(n.length!==0)for(let o of n)s.addMiddleware(o);return this.endpoints.push(s),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new QI.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var Ga=class{constructor(){this.groups=[]}group(...e){let r=new Ei;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var eB={...Ko,...Ae},tB=(t={})=>{sc(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,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,USER_METADATA_PREFIX,UnexpectedError,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,csv,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")},Qs=async(t,e)=>{let r={account_by_email:TT,platform_users_lowercase_2:AT};return We(de.PLATFORM_INFO.name,async n=>{let i=r[t];return Ef(t,e,n,i,{arrayResponse:!0})})},ST={by_email2:hT,by_api_key:gT,by_app:ET},Bt=async(t,e,r,n)=>{r||(r=Y());let i=ST[t];return Ef(t,e,r,i,n)};async function gf(t,e,r){let n=Y(),i=ST[t];return qs(t,e,n,i,r)}var yf=class{constructor({source:e,target:r}){this.source=Ze(e),this.target=Ze(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([Ss(this.source),Ss(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";delete e.filter;let s=e.isCreation,o=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let a=!1,u;typeof o=="string"&&o==="all"?a=!0:o&&(u=o);let c=(d,f)=>d?.startsWith(f+R),l=d=>c(d,"ro")||c(d,"li");return{...e,filter:(d,f)=>!s&&d._id==="_design/migrations"||i&&d._id.startsWith("_design")?!1:d._deleted||c(d._id,ms)?!0:l(d._id)?!!u?.find(m=>d._id.includes(m))||a:c(d._id,"log_au")||d._id==="app_metadata"?!1:r?r(d,f):!0}}async rollback(){await this.target.destroy(),this.target=Ze(this.target.name),await this.replicate()}},_T=yf;var OT=k(require("node-fetch"));var Ks=ar.removeKeyNumbering;function ln(t){return t==null||t===""}var $t=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#f,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=Ks(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=(p,E)=>ln(E)?null:`${p}:${e.preprocess(E,s)}`,u=(p,E,g="AND")=>{if(ln(E))return null;if(!Array.isArray(E))return`${p}:${E}`;let T=`${e.preprocess(E[0],{escape:!0})}`;for(let _=1;_<E.length;_++)T+=` ${g} ${e.preprocess(E[_],{escape:!0})}`;return`${p}:(${T})`},c=(p,E)=>ln(E)?null:(E=e.preprocess(E,{escape:!0,lowercase:!0,type:"fuzzy"}),`${p}:/.*${E}.*/`),l=(p,E)=>{let g=r?"*:* AND ":"",T=r?"AND":void 0;return g+"NOT "+u(p,E,T)},d=(p,E)=>u(p,E,"OR"),f=(p,E)=>{if(ln(E))return"*:*";if(!Array.isArray(E))if(typeof E=="string")E=E.split(",");else return"";let g=`${e.preprocess(E[0],s)}`;for(let T=1;T<E.length;T++)g+=` OR ${e.preprocess(E[T],s)}`;return`${p}:(${g})`};function m(p,E,g){let T="";for(let[_,S]of Object.entries(p)){_=Ks(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let w=E(_,S);if(w!=null){if(T.length>0||n.length>0){let y=g?.mode?g.mode:r?"OR":"AND";T+=` ${y} `}T+=w,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(g?.returnBuilt)return T;n+=T}if(this.#e.string&&m(this.#e.string,(p,E)=>ln(E)?null:(E=e.preprocess(E,{escape:!0,lowercase:!0,type:"string"}),`${p}:${E}*`)),this.#e.range&&m(this.#e.range,(p,E)=>{if(ln(E)||E.low==null||E.low===""||E.high==null||E.high==="")return null;let g=e.preprocess(E.low,s),T=e.preprocess(E.high,s);return`${p}:[${g} TO ${T}]`}),this.#e.fuzzy&&m(this.#e.fuzzy,c),this.#e.equal&&m(this.#e.equal,a),this.#e.notEqual&&m(this.#e.notEqual,(p,E)=>ln(E)?null:typeof E=="boolean"?`(*:* AND !${p}:${E})`:`!${p}:${e.preprocess(E,s)}`),this.#e.empty&&m(this.#e.empty,p=>(i=!1,`(*:* -${p}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,p=>(i=!1,`${p}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,f),this.#e.contains&&m(this.#e.contains,u),this.#e.notContains&&m(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&m(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,m({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.#p()}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.#p();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=lt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await IT(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await IT(n,i,r);throw s}}};async function IT(t,e,r){let n=await(0,OT.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 wT(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=$t.maxLimit;n.limit&&s.length>n.limit-$t.maxLimit&&(o=n.limit-s.length);let a=new $t(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<$t.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await wT(t,e,r,c)}async function GC(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,$t.maxLimit);let s=new $t(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 WC(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 wT(t,e,r,n)}}var Tf={};P(Tf,{createUserIndex:()=>qC});async function qC(){let t=Y(),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 DT(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 QC(t){return DT(t,409)}var js=k(require("path")),RT=require("os"),bT=k(require("fs"));var CT=k(require("stream")),KC={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},xT=(0,js.join)((0,RT.tmpdir)(),".budibase");try{bT.default.mkdirSync(xT)}catch(t){if(t.code!=="EEXIST")throw t}function dn(){return xT}var iu=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function jC(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=js.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:CT.default.Readable.fromWeb(e.body)}}async function vT(t){let e=Af(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await su(r,n),s=js.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function YC(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await jC(t):await vT(t)}var HC=require("sanitize-s3-objectkey"),zC={bucketCreationPromises:{}},Df="/files/signed",gr={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"},JC=[gr.html,gr.css,gr.js,gr.json];function _e(t){return HC(Ne(t)).replace(/\\/g,"/")}function Ne(t){return t.replace(new RegExp(Je,"g"),ze)}function ht(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 au.S3(e)}async function zs(t,e){e=Ne(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=zC.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}).catch(a=>{if(a.Code!=="BucketAlreadyOwnedByYou")throw a}),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 ZC({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await Ys.default.open(r)).createReadStream():s,c=ht(),l=await zs(c,t);if(o&&l.created){let E=iu(t,o);await c.putBucketLifecycleConfiguration(E)}let d=n,f=d||(a?gr[a.toLowerCase()]:gr.txt),m={Bucket:Ne(t),Key:_e(e),Body:u,ContentType:f};if(i&&typeof i=="object"){for(let E of Object.keys(i))(!i[E]||typeof i[E]!="string")&&delete i[E];m.Metadata=i}return new Sf.Upload({client:c,params:m}).done()}async function NT({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){return await Tr.default.trace("streamUpload",async o=>{if(o.addTags({bucketName:t,filename:r,type:n,ttl:s}),!e)throw new Error("Stream to upload is invalid/undefined");let a=r.split(".").pop(),u=ht(),c=await zs(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=iu(t,s);await u.putBucketLifecycleConfiguration(T)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let l=n;l||(l=a?gr[a.toLowerCase()]:gr.txt),o.addTags({contentType:l});let d=Ne(t),f=_e(r),m={Bucket:d,Key:f,Body:e,ContentType:l,...i},E=await new Sf.Upload({client:u,params:m}).done(),g=await u.headObject({Bucket:d,Key:f});return o.addTags({contentLength:g.ContentLength}),{...E,ContentLength:g.ContentLength}})}async function UT(t,e){return await Tr.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=ht(),i={Bucket:Ne(t),Key:_e(e)},s=await n.getObject(i);if(!s.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),JC.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return uu.default.Readable.fromWeb(o)}})}async function*LT(t,e){let r=ht(),n=(o={})=>r.listObjectsV2({...o,Bucket:Ne(t),Prefix:_e(e)}),i=!1,s;do{let o={};s&&(o.ContinuationToken=s);let a=await n(o);if(a.Contents)for(let u of a.Contents)yield u;i=!!a.IsTruncated,s=a.NextContinuationToken}while(i&&s)}async function Ar(t,e,r=3600){let n=ht({presigning:!0}),i={Bucket:Ne(t),Key:_e(e)},s=await(0,PT.getSignedUrl)(n,new au.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Df}${a}${u}`}else return s}async function XC(t,e){return await Tr.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=Ne(t),e=_e(e);let n=await UT(t,e),i=(0,yr.join)(dn(),(0,Of.v4)());return r.addTags({outputPath:i}),n instanceof uu.default.Readable?(r.addTags({stream:!0}),await(0,Hs.pipeline)(n,ei.default.createWriteStream(i))):(r.addTags({stream:!1}),ei.default.writeFileSync(i,n)),i})}async function ex(t,e){return await Tr.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,yr.join)(dn(),(0,Of.v4)());await Ys.default.mkdir(n,{recursive:!0});let i=0;return await Xt.parallelForeach(LT(t,e),async s=>{i++,await Tr.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await su(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,yr.join)(n,...l);c.length>1&&!ei.default.existsSync(d)&&await Ys.default.mkdir(d,{recursive:!0}),await(0,Hs.pipeline)(u,ei.default.createWriteStream((0,yr.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function tx(t,e){let r=ht();await zs(r,t);let n={Bucket:t,Key:_e(e)};return r.deleteObject(n)}async function rx(t,e){let r=ht();await zs(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:_e(i)}))}};return r.deleteObjects(n)}async function MT(t,e){t=Ne(t),e=_e(e);let r=ht(),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 MT(t,e)}async function Rf(t,e,r){return await Tr.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=Ne(t);let i=await Ys.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=_e((0,yr.join)(r,s.name)),a=(0,yr.join)(e,s.name);s.isDirectory()?await Rf(t,a,o):await NT({bucket:t,filename:o,stream:ei.default.createReadStream(a)})}return i})}async function nx(t,e,r={}){e=_e(e);let n=await(0,_f.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,Hs.pipeline)(n.body,wf.default.createUnzip(),If.default.extract(e))}async function ix(t,e,r){e=Ne(e),r=_e(r);let n=await(0,_f.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,yr.join)(dn(),r);return await(0,Hs.pipeline)(n.body,wf.default.createUnzip(),If.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Rf(e,i,r),i}async function su(t,e){return await Tr.default.trace("getReadStream",async r=>{t=Ne(t),e=_e(e),r.addTags({bucketName:t,path:e});let n=ht(),i={Bucket:t,Key:e},s=await n.getObject(i);if(!s.Body||!(s.Body instanceof uu.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function sx(t,e){t=Ne(t),e=_e(e);let r=ht(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Af(t){let e=t.split("?")[0],r=new RegExp(`^${Df}/(?<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 kT=k(require("aws-cloudfront-sign")),cu;function ox(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return cu||(cu=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),cu)}var ax=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:ox(),expireTime:new Date().getTime()+1e3*60*60*24}),ti=t=>{let e=bf(t);return kT.getSignedUrl(e,ax())},bf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var FT=k(require("querystring"));function BT(t){return`${_e(t)}/budibase-client.js`}async function ux(t,e){let r=BT(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),bf(r)):await Ar(h.APPS_BUCKET_NAME,r)}function cx(t,e){let r,n;try{r=V()}finally{n={appId:t,version:e}}return r&&r!==oe&&(n.tenantId=r),`/api/assets/client?${FT.default.encode(n)}`}async function $T(t){return h.CLOUDFRONT_CDN?ti(t):await Ar(h.APPS_BUCKET_NAME,t)}async function lx(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await $T(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var dx=async(t,e,r)=>{let n=VT(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ti(n)):await Ar(h.GLOBAL_BUCKET_NAME,n)},VT=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${V()}/${r}`),r};async function fx(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await px(e),n=await mx(e);return{...e,jsUrl:r,iconUrl:n}}))}async function px(t){let e=WT(t);return GT(e)}async function mx(t){let e=qT(t);if(e)return GT(e)}async function GT(t){return h.CLOUDFRONT_CDN?ti(t):await Ar(h.PLUGIN_BUCKET_NAME,t)}function WT(t){return QT(t,"plugin.min.js")}function qT(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return QT(t,e)}function QT(t,e){return`${KT(t.name)}/${e}`}function KT(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${V()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var HT="budibase.log",zT="budibase-logs-history.txt",JT=vf.default.join(dn(),"systemlogs");function jT(t){return vf.default.join(JT,t)}function ZT(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 Pf(){let t=ZT(h.ROLLING_LOG_MAX_SIZE);return YT.createStream(HT,{size:t?.size,path:JT,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:zT,initialRotation:!1})}function hx(){let t=[],e=jT(zT);if(Js.default.existsSync(e)){let i=Js.default.readFileSync(e,"utf-8").split(`
37
+ `);for(let s of i.filter(o=>o))t.push(Js.default.readFileSync(s))}return t.push(Js.default.readFileSync(jT(HT))),Buffer.concat(t.map(n=>new Uint8Array(n)))}function Ex(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function gx(t){return t instanceof Error}function yx(t){return typeof t=="string"}var Sr;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,XT.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Pf(),level:t}),Sr=r.length?(0,lu.default)(e,lu.default.multistream(r)):(0,lu.default)(e);let n=u=>{let c,l=[],d="";u.forEach(g=>{yx(g)&&(d=`${d} ${g}`.trimStart()),Ex(g)&&l.push(g),gx(g)&&(c=g)});let f=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:f?._id,identityType:f?.type,correlationId:uf()};let p=Uf.default.scope().active();p&&Uf.default.inject(p.context(),eA.formats.LOG,m);let E={err:c,pid:process.pid,...m};if(l.length){let g={},T=0;for(let _=0;_<l.length;_++){let S=l[_],w=S._logKey;w?(delete S._logKey,E[w]=S):(g[T]=S,T++)}Object.keys(g).length&&(E.data=g)}return[E,d]};console.log=(...u)=>{let[c,l]=n(u);Sr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Sr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Sr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Sr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Sr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Sr?.debug(c,l)};let i=()=>{let u;try{u=V()}catch{}return u},s=()=>{let u;try{u=Se()}catch{}return u},o=()=>{let u;try{u=qd()}catch{}return u},a=()=>{let u;try{u=Lt()}catch{}return u}}var du=Sr;var Tx=["AccountError"];function Ax(t){return t&&t.suppressAlert}function fn(t,e){e&&Tx.includes(e.name)&&Ax(e)||console.error(`bb-alert: ${t}`,e)}function Sx(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,fn(t,n)}function ri(t,e){console.warn(`bb-warn: ${t}`,e)}var Xs=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";$s.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,tA.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 Lf=new Xs(h.INTERNAL_ACCOUNT_PORTAL_URL),Mf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,_r=async t=>{if(Mf)return;let e={email:t},r=await Lf.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]},ni=async t=>{if(Mf)return;let e={tenantId:t},r=await Lf.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]},_x=async()=>{if(Mf)return;let t=await Lf.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 fi={};P(fi,{UserDB:()=>wt,addAppBuilder:()=>dU,bulkGetGlobalUsersById:()=>Vu,bulkUpdateGlobalUsers:()=>yo,cleanseUserObject:()=>Ap,creatorsInList:()=>mn,doesUserExist:()=>oU,getAccountHolderFromUsers:()=>Ru,getAllUserIds:()=>iU,getAllUsers:()=>sU,getById:()=>gn,getCreatorCount:()=>cU,getExistingAccounts:()=>si,getExistingPlatformUsers:()=>dA,getExistingTenantUsers:()=>lA,getFirstPlatformUser:()=>to,getGlobalUserByAppPage:()=>oS,getGlobalUserByEmail:()=>yt,getPlatformUsers:()=>hu,getUserCount:()=>uU,hasAdminPermissions:()=>wr,hasAppBuilderPermissions:()=>mA,hasBuilderPermissions:()=>Xe,isAdmin:()=>Or,isAdminOrBuilder:()=>pA,isBuilder:()=>ui,isCreatorAsync:()=>ro,isCreatorSync:()=>wu,isGlobalBuilder:()=>fA,paginatedUsers:()=>uS,removeAppBuilder:()=>fU,removePortalUserPermissions:()=>lU,searchExistingEmails:()=>jf,searchGlobalUsersByApp:()=>Gu,searchGlobalUsersByAppAccess:()=>Tp,searchGlobalUsersByEmail:()=>aS,validateUniqueUser:()=>Du});var Yf={};P(Yf,{creatorsInList:()=>mn,getAccountHolderFromUsers:()=>Ru,hasAdminPermissions:()=>wr,hasAppBuilderPermissions:()=>mA,hasBuilderPermissions:()=>Xe,isAdmin:()=>Or,isAdminOrBuilder:()=>pA,isBuilder:()=>ui,isCreatorAsync:()=>ro,isCreatorSync:()=>wu,isGlobalBuilder:()=>fA,validateUniqueUser:()=>Du});var Kf={};P(Kf,{createCode:()=>Mx,deleteCode:()=>Fx,getCode:()=>kx,getExistingInvites:()=>Qf,getInviteCodes:()=>cA,updateCode:()=>Lx});var ii={};P(ii,{Duration:()=>me,DurationType:()=>qf,clearCookie:()=>Ir,compare:()=>Bf,getAppIdFromCtx:()=>xx,getCookie:()=>Vt,hasCircularStructure:()=>Px,hash:()=>Ff,isAudited:()=>Gf,isClient:()=>vx,isPublicApiRequest:()=>Cx,isServingApp:()=>Dx,isServingBuilder:()=>Rx,isServingBuilderPreview:()=>bx,isValidInternalAPIKey:()=>eo,newid:()=>ee,openJwt:()=>pu,resolveAppUrl:()=>oA,setCookie:()=>aA,time:()=>Ux,timeout:()=>Vf,urlHasProtocol:()=>Nx,validEmail:()=>Wf});var kf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),Ix=h.SALT_ROUNDS||10;async function Ff(t){let e=await kf.genSalt(Ix);return kf.hash(t,e)}async function Bf(t,e){return kf.compare(t,e)}var fu=k(require("jsonwebtoken"));var $f="app"+R,nA="/app/",iA="/app/preview",Ox="/builder",sA=`${Ox}/workspace/`,wx="/api/public/v";async function oA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=V();!h.isDev()&&h.MULTI_TENANCY&&(n=ks(t,{includeStrategies:["subdomain"]}));let s=(await be(n,()=>Ws({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function Dx(t){return t.path.startsWith(`/${$f}`)?!0:t.path.startsWith(nA)}function Rx(t){return t.path.startsWith(sA)}function bx(t){return t.path.startsWith(iA)}function Cx(t){return t.path.startsWith(wx)}async function xx(t){let e=[t.request.headers["x-budibase-app-id"]],r;function n(u){return!u||!u.startsWith($f)?r:(r&&jn(r)!==jn(u)&&t.throw("App id conflict",403),r??u)}for(let u of e)if(r=n(u),r)break;t.request.body&&t.request.body.appId&&(r=n(t.request.body.appId));let i=rA(t.path);i&&(r=n(i)),t.query?.appId&&(r=n(t.query?.appId));let s=t.path.startsWith(iA);if(t.path.startsWith(nA)&&!s&&(r=n(await oA(t))),t.request.headers.referer?.includes(sA)){let u=rA(t.request.headers.referer);r=n(u)}return r}function rA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith($f))}function pu(t){if(t)try{return fu.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return fu.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function eo(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function Vt(t,e){let r=t.cookies.get(e);if(r)return pu(r)}function aA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=fu.default.sign(e,h.JWT_SECRET));let i={expires:Ma,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Ir(t,e){aA(t,null,e)}function vx(t){return t.headers["x-budibase-type"]==="client"}function Vf(t){return new Promise(e=>setTimeout(e,t))}function Gf(t){return!!wm[t]}function Px(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 Nx(t){return!!t.match(/^.+:\/\/.+$/)}function Wf(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 qf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(qf||{}),mu={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},me=class t{constructor(e){this.ms=e}to(e){return this.ms/mu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*mu[e]/mu[r]}static from(e,r){return new t(r*mu[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 Ux(t){let e=performance.now();return[await t(),me.fromMilliseconds(performance.now()-e)]}var uA=me.fromDays(7).toSeconds();async function Lx(t,e){await(await nn()).store(t,e,uA)}async function Mx(t,e){let r=ee();return await(await nn()).store(r,{email:t,info:e},uA),r}async function kx(t){let r=await(await nn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function Fx(t){await(await nn()).delete(t)}async function cA(){let r=(await(await nn()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=V();return r.filter(i=>n===i.info.tenantId)}async function Qf(t){return(await cA()).filter(e=>t.includes(e.email))}async function jf(t){let e=[],r=await lA(t);e.push(...r.map(o=>o.email));let n=await dA(t);e.push(...n.map(o=>o._id));let i=await si(t);e.push(...i.map(o=>o.email));let s=await Qf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function hu(t){return await Qs("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function to(t){return(await hu(t))[0]??null}async function lA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await Bt("by_email2",r,void 0,n)}async function dA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Qs("platform_users_lowercase_2",r)}async function si(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Qs("account_by_email",r)}var Ou={};P(Ou,{BadRequestError:()=>yu,BudibaseError:()=>oi,EmailUnavailableError:()=>Gt,FeatureDisabledError:()=>_u,ForbiddenError:()=>Tu,HTTPError:()=>we,InvalidAPIKeyError:()=>ai,NotFoundError:()=>gu,NotImplementedError:()=>Au,UnexpectedError:()=>Eu,UsageLimitError:()=>Su,getPublicError:()=>Iu});var oi=class extends Error{constructor(r,n){super(r);this.code=n}},Iu=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},we=class t extends oi{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)}},Eu=class extends we{constructor(e){super(e,500)}},gu=class extends we{constructor(e){super(e,404)}},yu=class extends we{constructor(e){super(e,400)}},Tu=class extends we{constructor(e){super(e,403)}},Au=class extends we{constructor(e){super(e,501)}},Su=class extends we{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},_u=class extends we{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},ai=class extends oi{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},Gt=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ui=Ge.users.isBuilder,Or=Ge.users.isAdmin,fA=Ge.users.isGlobalBuilder,pA=Ge.users.isAdminOrBuilder,wr=Ge.users.hasAdminPermissions,Xe=Ge.users.hasBuilderPermissions,mA=Ge.users.hasAppBuilderPermissions;async function mn(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await Y().getMultiple(r,{allowMissing:!0}),t.map(i=>wu(i,e))}async function ro(t){let e=[];return t.userGroups&&(e=await Y().getMultiple(t.userGroups)),wu(t,e)}function wu(t,e){let r=Ge.users.isCreator(t);return!r&&t?$x(t,e):r}function $x(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 Du(t,e){if(h.MULTI_TENANCY){let r=await to(t);if(r!=null&&r.tenantId!==e)throw new Gt(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await _r(t);if(r&&r.verified&&r.tenantId!==e)throw new Gt(t)}}async function Ru(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await si(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var di={};P(di,{account:()=>vA,action:()=>PA,ai:()=>kA,analytics:()=>Cu,app:()=>NA,auditLog:()=>ZA,auth:()=>Bu,automation:()=>UA,backfill:()=>jA,backfillCache:()=>ku,backup:()=>zA,datasource:()=>LA,email:()=>MA,environmentVariable:()=>JA,group:()=>YA,identification:()=>gt,initAsyncEvents:()=>qN,installation:()=>lo,layout:()=>BA,license:()=>FA,org:()=>$A,plugin:()=>HA,processors:()=>rp,publishEvent:()=>A,query:()=>VA,role:()=>Eo,rowAction:()=>XA,rows:()=>WA,screen:()=>GA,serve:()=>QA,shutdown:()=>QN,table:()=>qA,user:()=>Ue,view:()=>KA,workspace:()=>eS});var rp={};P(rp,{analyticsProcessor:()=>DA,init:()=>ov,processors:()=>Qt});var Cu={};P(Cu,{enabled:()=>bu});var bu=async()=>xu();var TA=require("posthog-node");var Vx=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",Gx=t=>t==="served:app:preview"||t==="served:app";var EA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},gA=async t=>{if(!Vx(t))return!1;let e=await Wx(t);if(e){let r=new Date(e.timestamp);switch(EA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await hA(t,{timestamp:Date.now()}),!1):!0}}else return await hA(t,{timestamp:Date.now()}),!1},yA=t=>{let e=`${Ee.EVENTS_RATE_LIMIT}:${t}`;return Gx(t)&&(e=e+":"+Se()),e},Wx=async t=>{let e=yA(t);return await un(e)},hA=async(t,e)=>{let r=yA(t),n=EA[t],i;switch(n){case"calendarDay":i=86400}await Mt(r,e,i)};var Qx=["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"],no=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new TA.PostHog(e)}async processEvent(e,r,n,i){if(Qx.includes(e)||await gA(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Se();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 AA=no;var Kx=["installation:version:upgraded","installation:version:downgraded"],jx=["installation","tenant"],io=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new AA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!Kx.includes(e)&&!await bu()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!jx.includes(e.type)&&!await bu()||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 Hf=h.SELF_HOSTED&&!h.isDev(),so=class{async processEvent(e,r,n){Hf||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Hf||console.log("[audit] identified",e)}async identifyGroup(e){Hf||console.log("[audit] group identified",e)}async shutdown(){}};var tp={};P(tp,{BudibaseQueue:()=>Et,InMemoryQueue:()=>vu,JobQueue:()=>ci,QueuedProcessor:()=>ep,UnretriableError:()=>Uu,shutdown:()=>nv});var SA=k(require("events"));function Yx(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 vu=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new SA.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((u,c)=>{r(n,(d,f)=>{d?c(d):u(f)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await Pe.wait(100*c),await o(i(),c);throw l}}try{let u=await o(i());this._emitter.emit("completed",n,u);let c=this._messages.indexOf(n);if(c===-1)throw"Failed deleting a processed message";this._messages.splice(c,1)}catch(u){console.error(u),this._emitter.emit("error",n,u)}this._runCount++;let a=n.opts?.jobId?.toString();a&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}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=ee(),o=()=>{let u={id:s,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{u._isDiscarded=!0}};this._messages.push(u),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",u)},a=n?.delay;return a?setTimeout(o,a):o(),{id:i,finished:()=>new Promise((u,c)=>{let l=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),c(m))},d=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),u(m))};this._emitter.on("error",l),this._emitter.on("completed",d)})}}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=>Yx(e))}async whenCurrentJobsFinished(){do await Vf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},_A=vu;var Zf=k(require("bull"));var ci=(a=>(a.AUTOMATION="automationQueue",a.APP_BACKUP="appBackupQueue",a.AUDIT_LOG="auditLogQueue",a.SYSTEM_EVENT_QUEUE="systemEventQueue",a.APP_MIGRATION="appMigration",a.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",a.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",a))(ci||{});function IA(t,e,r){Jx(t,e),r&&Hx(t,r)}function Hx(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 et(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 zx={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event"};function Jx(t,e){let r=zx[e];function n(i,s){let o=i.data.event?.appId;if(o)return Wd(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...et(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...et(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...et(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...et(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...et(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...et(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...et(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...et(r,"paused"))}).on("resumed",()=>{console.info(...et(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...et(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...et(r,"drained"))}).on("removed",i=>{console.info(...et(r,"removed",{job:i}))})}var Pu={};P(Pu,{cleanup:()=>Zx,clear:()=>Jf,set:()=>zf});var oo=[];function zf(t,e){let r=setInterval(t,e);return oo.push(r),r}function Jf(t){let e=oo.indexOf(t);e!==-1&&oo.splice(e,1),clearInterval(t)}function Zx(){for(let t of oo)clearInterval(t);oo=[]}var qt=k(require("dd-trace")),ao=k(require("object-sizeof")),Xx=me.fromMinutes(5).toMs(),ev=me.fromSeconds(30).toMs(),Xf=me.fromSeconds(60).toMs(),uo=[],Nu;async function OA(){for(let t of uo)await t.clean(Xf,"completed"),await t.clean(Xf,"failed")}async function tv(t,e,r){let n=performance.now();try{let i=await e();return qt.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw qt.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;qt.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),qt.default.dogstatsd.increment(t,1,r)}}function wA(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 rv(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,ao.default)(t.data),...wA(t.opts||{})}}var Et=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:tn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:Xx,lockRenewTime:ev}};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 Zf.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new _A(this.jobQueue,r):n=new Zf.default(this.jobQueue,r),IA(n,this.jobQueue,this.opts.removeStalledCb),uo.push(n),!Nu&&!h.isTest()&&(Nu=zf(OA,Xf),OA().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(o,a)=>{await qt.default.trace("queue.process",async u=>{if(o.data._parentSpanContext){let c=o.data._parentSpanContext,l={traceId:c.traceId,spanId:c.spanId,toTraceId:()=>c.traceId,toSpanId:()=>c.spanId,toTraceparent:()=>""};u.addLink(l)}u.addTags({"queue.name":this.jobQueue,...rv(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),qt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,ao.default)(o.data),this.metricTags()),await this.withMetrics("queue.process",()=>a?n(o,a):n(o))})},s;return n.length===1?s=o=>i(o):s=i,r?this.queue.process(r,s):this.queue.process(s)}async add(e,r){return await qt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ao.default)(e),...wA(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},qt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,ao.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return tv(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function nv(){Nu&&Jf(Nu),console.log("Waiting for current queue jobs to finish...");for(let t of uo)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of uo)await t.close();uo=[],console.log("Queues shutdown")}var Uu=class extends Error{constructor(e){super(e),this.name="PermanentError"}},ep=class{constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:s=!0,maxStalledCount:o=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new Et(e,{maxStalledCount:o,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:s}}),this._queue.process(async(a,u)=>{try{let c=await this.processFn(a.data);u?.(null,c)}catch(c){c instanceof Uu&&await a.discard(),fn(`Failed to process job in ${this._queue.name}`,c),u?.(c)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await Pe.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var li=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new Et("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await be(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&&Gf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Se(),hostInfo:r.hostInfo},tenantId:V()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var co=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 DA=new io,iv=new so,sv=new li;function ov(t){return li.init(t)}var Qt=new co([DA,iv,sv]);var Lu={};P(Lu,{checkInstallVersion:()=>cv,getInstall:()=>fo,getInstallFromDB:()=>ip});var np=k(require("semver"));var fo=async()=>mr(Ee.INSTALLATION,86400,ip,{useTenancy:!1});async function av(t){let e={_id:de.PLATFORM_INFO.docs.install,installId:ee(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return ip();throw r}}var ip=async()=>We(de.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(de.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await av(t);else throw r}return e}),uv=async t=>{try{await We(de.PLATFORM_INFO.name,async e=>{let r=await fo();r.version=t,await e.put(r),await Jn(Ee.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},cv=async()=>{let t=await fo(),e=t.version,r=h.VERSION;try{if(e!==r){let n=np.default.gt(r,e),i=np.default.lt(r,e);await uv(r)&&(await gs({_id:t.installId,type:"installation"},async()=>{n?await lo.upgraded(e,r):i&&await lo.downgraded(e,r)}),await gt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?fn(`Invalid version "${r}" - is it semver?`):fn("Failed to retrieve version",n)}};var lv=async()=>{let t=Od(),e=ho(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await hn(),i=po();return{id:RA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await hn(),i=await Mu(V()),s=po();return{id:RA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:V(),environment:e}}else if(r==="user"){let n=t,i=await Mu(V()),s=await hn(),o=n.account,a;return o?a=o.hosting:a=po(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:V(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},dv=async(t,e)=>{let r=t,n="installation",i=po(),s=h.VERSION,o=ho(),a={id:r,type:n,hosting:i,version:s,environment:o};await sp(a,e),await mo({...a,id:`$${n}_${r}`},e)},fv=async(t,e,r,n=h.VERSION)=>{let i=await Mu(t),s="tenant",o=await hn(),a=ho(),u={id:i,type:s,hosting:e,environment:a,installationId:o,createdAt:r,createdVersion:n};await sp(u,r),await mo({...u,id:`$${s}_${i}`},r)},pv=async(t,e,r)=>{let n=t._id,i=await Mu(t.tenantId),s="user",o=Xe(t),a=wr(t),u;$o(t)&&(u=t.providerType);let l=(await si([t.email])).length>0,d=!!e&&l&&e.verified,f=await hn(),m=e?e.hosting:po(),p=ho();await mo({id:n,type:s,hosting:m,installationId:f,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:p},r)},mv=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Bo(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await hn(),c=ho();if(Fo(t)){let d=await yt(t.email);d?._id&&(e=d._id)}await mo({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},mo=async(t,e)=>{await Qt.identify(t,e)},sp=async(t,e)=>{await Qt.identifyGroup(t,e)},ho=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,po=()=>h.SELF_HOSTED?"self":"cloud",hn=async()=>hv()?"account-portal":(await fo()).installId,Mu=async t=>h.SELF_HOSTED?bA(t):t,bA=async t=>be(t,()=>mr(Ee.UNIQUE_TENANT_ID,86400,async()=>{let e=Y(),r=await pi(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ee()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=h.VERSION,await e.put(r),n)})),hv=()=>h.SERVICE==="account-portal",RA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,gt={getCurrentIdentity:lv,identifyInstallationGroup:dv,identifyTenantGroup:fv,identifyUser:pv,identifyAccount:mv,identify:mo,identifyGroup:sp,getInstallationId:hn,getUniqueTenantId:bA};var ku={};P(ku,{end:()=>gv,isAlreadySent:()=>up,isBackfillingEvent:()=>ap,recordEvent:()=>op,start:()=>Ev});var Ev=async t=>Tv({eventWhitelist:t}),op=async(t,e)=>{let r=cp(t,e);await Mt(r,e,void 0,{useTenancy:!1})},gv=async()=>{await Av(),await Sv()},yv=async()=>un(Ee.BACKFILL_METADATA),Tv=async t=>Mt(Ee.BACKFILL_METADATA,t),Av=async()=>{await Ls(Ee.BACKFILL_METADATA)},Sv=async()=>{let t=cp(),e=await Xa(t);for(let r of e)await Ls(r,{useTenancy:!1})},ap=async t=>{let r=(await yv())?.eventWhitelist;return!!(r&&r.includes(t))},up=async(t,e)=>{let r=cp(t,e);return!!await un(r,{useTenancy:!1})},_v={"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}`},cp=(t,e)=>{let r,n=V();if(t){r=`${Ee.EVENTS}:${n}:${t}`;let i=_v[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ee.EVENTS}:${n}:*`;return r};var Kt;function Fu(){Kt=new Et("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function CA(){Kt&&await Kt.close()}async function xA(t){Kt||Fu();let{event:e,identity:r}=t;Om.indexOf(e)!==-1&&r.tenantId&&await Kt.add(t)}var A=async(t,e,r,n)=>{let i=n||await gt.getCurrentIdentity();if(!(n?!1:await ap(t))){await xA({event:t,identity:i,properties:e,timestamp:r}),await Qt.processEvent(t,i,e,r);return}await up(t,e)||(await Qt.processEvent(t,i,e,r),await op(t,e))};async function Iv(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function Ov(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function wv(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var vA={created:Iv,deleted:Ov,verified:wv};async function Dv(t,e){await A("action:automation_step:executed",t,e)}async function Rv(t,e){await A("action:crud:executed",t,e)}async function bv(t,e){await A("action:ai_agent:executed",t,e)}var PA={aiAgentExecuted:bv,automationStepExecuted:Dv,crudExecuted:Rv};var Cv=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function xv(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function vv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function Pv(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function Nv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function Uv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function Lv(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function Mv(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function kv(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function Fv(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function Bv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function $v(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var NA={created:Cv,updated:xv,deleted:vv,published:Pv,unpublished:Nv,fileImported:Uv,duplicated:Lv,templateImported:Mv,versionUpdated:kv,versionReverted:Fv,reverted:Bv,exported:$v};async function Vv(t,e){let n={userId:(await gt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function Gv(t){let r={userId:(await gt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function Wv(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function qv(t){let e={type:t};await A("auth:sso:updated",e)}async function Qv(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function Kv(t){let e={type:t};await A("auth:sso:deactivated",e)}var Bu={login:Vv,logout:Gv,SSOCreated:Wv,SSOUpdated:qv,SSOActivated:Qv,SSODeactivated:Kv};async function jv(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 Yv(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 Hv(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 zv(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 Jv=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function Zv(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 Xv(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 UA={created:jv,triggerUpdated:Yv,deleted:Hv,tested:zv,run:Jv,stepCreated:Zv,stepDeleted:Xv};function lp(t){return!Object.values(Uo).includes(t.source)}async function eP(t,e){let r={datasourceId:t._id,source:t.source,custom:lp(t)};await A("datasource:created",r,e)}async function tP(t){let e={datasourceId:t._id,source:t.source,custom:lp(t)};await A("datasource:updated",e)}async function rP(t){let e={datasourceId:t._id,source:t.source,custom:lp(t)};await A("datasource:deleted",e)}var LA={created:eP,updated:tP,deleted:rP};async function nP(t){let e={};await A("email:smtp:created",e,t)}async function iP(){let t={};await A("email:smtp:updated",t)}var MA={SMTPCreated:nP,SMTPUpdated:iP};async function sP(t){let e={};await A("ai:config:created",e,t)}async function oP(){let t={};await A("ai:config:updated",t)}var kA={AIConfigCreated:sP,AIConfigUpdated:oP};async function aP(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function uP(t){let e={accountId:t.accountId};await A("license:activated",e)}async function cP(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function lP(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function dP(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function fP(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function pP(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var FA={planChanged:aP,activated:uP,checkoutOpened:cP,checkoutSuccess:lP,portalOpened:dP,paymentFailed:fP,paymentRecovered:pP};async function mP(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function hP(t){let e={layoutId:t};await A("layout:deleted",e)}var BA={created:mP,deleted:hP};async function EP(t){let e={};await A("org:info:name:updated",e,t)}async function gP(t){let e={};await A("org:info:logo:updated",e,t)}async function yP(t){let e={};await A("org:platformurl:updated",e,t)}async function TP(){let t={};await A("analytics:opt:out",t)}async function AP(){let t={};await A("analytics:opt:out",t)}var $A={nameUpdated:EP,logoUpdated:gP,platformURLUpdated:yP,analyticsOptOut:TP,analyticsOptIn:AP};var SP=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},_P=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},IP=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await A("query:deleted",n)},OP=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},wP=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},DP=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},VA={created:SP,updated:_P,deleted:IP,imported:OP,run:wP,previewed:DP};async function RP(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function bP(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function CP(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function xP(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function vP(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Eo={created:RP,updated:bP,deleted:CP,assigned:xP,unassigned:vP};async function PP(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 NP(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var GA={created:PP,deleted:NP};var UP=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},LP=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},WA={created:UP,imported:LP};async function MP(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function kP(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 FP(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}async function BP(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function $P(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var qA={created:MP,updated:kP,deleted:FP,exported:BP,imported:$P};async function VP(t){let e={timezone:t};await A("served:builder",e)}async function GP(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function WP(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var QA={servedBuilder:VP,servedApp:GP,servedAppPreview:WP};async function qP(t,e){let r={userId:t._id,viaScim:ft(),audited:{email:t.email}};await A("user:created",r,e)}async function QP(t){let e={userId:t._id,viaScim:ft(),audited:{email:t.email}};await A("user:updated",e)}async function KP(t){let e={userId:t._id,viaScim:ft(),audited:{email:t.email}};await A("user:deleted",e)}async function jP(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function YP(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function HP(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function zP(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function JP(t){let e={audited:{email:t}};await A("user:invited",e)}async function ZP(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function XP(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function eN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function tN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function rN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function nN(t){let e={users:t};await A("user:data:collaboration",e)}var Ue={created:qP,updated:QP,deleted:KP,permissionAdminAssigned:jP,permissionAdminRemoved:YP,permissionBuilderAssigned:HP,permissionBuilderRemoved:zP,invited:JP,inviteAccepted:ZP,passwordForceReset:XP,passwordUpdated:eN,passwordResetRequested:tN,passwordReset:rN,dataCollaboration:nN};async function iN(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function sN(t){let e={tableId:t.tableId};await A("view:updated",e)}async function oN(t,e){let r={...Pe.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}async function aN(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function uN({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function cN({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function lN(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function dN({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function fN(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function pN(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function mN(t,e){let r={tableId:t};await A("view:join:created",r,e)}var KA={created:iN,updated:sN,deleted:oN,exported:aN,filterCreated:uN,filterUpdated:cN,filterDeleted:lN,calculationCreated:dN,calculationUpdated:fN,calculationDeleted:pN,viewJoinCreated:mN};async function hN(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function EN(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function gN(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function yN(){let t={};await A("installation:firstStartup",t)}var lo={versionChecked:hN,upgraded:EN,downgraded:gN,firstStartup:yN};var mi=!h.SELF_HOSTED&&!h.isDev();async function TN(t){mi||await A("app:backfill:succeeded",t)}async function AN(t){if(mi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function SN(t){mi||await A("tenant:backfill:succeeded",t)}async function _N(t){if(mi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function IN(){if(mi)return;let t={};await A("installation:backfill:succeeded",t)}async function ON(t){if(mi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var jA={appSucceeded:TN,appFailed:AN,tenantSucceeded:SN,tenantFailed:_N,installationSucceeded:IN,installationFailed:ON};async function wN(t,e){let r={groupId:t._id,viaScim:ft(),audited:{name:t.name}};await A("user_group:created",r,e)}async function DN(t){let e={groupId:t._id,viaScim:ft(),audited:{name:t.name}};await A("user_group:updated",e)}async function RN(t){let e={groupId:t._id,viaScim:ft(),audited:{name:t.name}};await A("user_group:deleted",e)}async function bN(t,e){let r={count:t,groupId:e._id,viaScim:ft(),audited:{name:e.name}};await A("user_group:user_added",r)}async function CN(t,e){let r={count:t,groupId:e._id,viaScim:ft(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function xN(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function vN(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var YA={created:wN,updated:DN,deleted:RN,usersAdded:bN,usersDeleted:CN,createdOnboarding:xN,permissionsEdited:vN};async function PN(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function NN(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 UN(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 HA={init:PN,imported:NN,deleted:UN};async function LN(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function MN(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var zA={appBackupRestored:LN,appBackupTriggered:MN};async function kN(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function FN(t){let e={name:t};await A("environment_variable:deleted",e)}async function BN(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var JA={created:kN,deleted:FN,upgradePanelOpened:BN};async function $N(t){let e={filters:t};await A("audit_log:filtered",e)}async function VN(t){let e={filters:t};await A("audit_log:downloaded",e)}var ZA={filtered:$N,downloaded:VN};async function GN(t,e){await A("row_action:created",t,e)}var XA={created:GN};async function WN(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}var eS={deleted:WN};function qN(){}var QN=async()=>{await Qt.shutdown(),console.log("Events shutdown")};var dp=async t=>{await Ue.deleted(t),Xe(t)&&await Ue.permissionBuilderRemoved(t),wr(t)&&await Ue.permissionAdminRemoved(t)},KN=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Eo.assigned(t,i)},jN=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Eo.unassigned(t,i)},YN=async(t,e)=>{let r=t.roles,n=e?.roles;await KN(t,r,n),await jN(t,r,n)},fp=async(t,e)=>{let r=V(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ni(r)),await gt.identifyUser(t,n),e?(await Ue.updated(t),zN(t,e)&&await Ue.permissionBuilderRemoved(t),ZN(t,e)&&await Ue.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Ue.passwordForceReset(t),t.password!==e.password&&await Ue.passwordUpdated(t)):await Ue.created(t),HN(t,e)&&await Ue.permissionBuilderAssigned(t),JN(t,e)&&await Ue.permissionAdminAssigned(t),await YN(t,e)},HN=(t,e)=>tS(t,e,Xe),zN=(t,e)=>rS(t,e,Xe),JN=(t,e)=>tS(t,e,wr),ZN=(t,e)=>rS(t,e,wr),tS=(t,e,r)=>!(!r(t)||e&&r(e)),rS=(t,e,r)=>!(r(t)||!e||!r(e));var $u={};P($u,{createASession:()=>eU,endSession:()=>tU,getSession:()=>mp,getSessionsForUser:()=>go,invalidateSessions:()=>En,updateSessionTTL:()=>pp});var iS=require("uuid");var sS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):me.fromDays(7).toSeconds();function hi(t,e){return`${t}/${e}`}async function go(t){return t?(await(await fr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function En(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await go(t)).map(o=>({key:hi(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:hi(t,s)}))),i&&i.length>0){let s=await fr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ri(`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 eU(t,e){let r=await go(t),n=0;if(r.length>=3){let c=r.sort((f,m)=>new Date(f.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,d=c.slice(0,l).map(f=>f.sessionId);n=d.length,await En(t,{sessionIds:d,reason:"session limit exceeded"})}let i=await fr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,iS.v4)(),a=hi(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,sS),{session:u,invalidatedSessionCount:n}}async function pp(t){let e=await fr(),r=hi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,sS)}async function tU(t,e){await(await fr()).delete(hi(t,e))}async function mp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await fr()).get(hi(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var yp={};P(yp,{PASSWORD_MAX_LENGTH:()=>Ep,PASSWORD_MIN_LENGTH:()=>hp,validatePassword:()=>gp});var hp=+(h.PASSWORD_MIN_LENGTH||12),Ep=+(h.PASSWORD_MAX_LENGTH||512);function gp(t){return!t||t.length<hp?{valid:!1,error:`Password invalid. Minimum ${hp} characters.`}:t.length>Ep?{valid:!1,error:`Password invalid. Maximum ${Ep} characters.`}:{valid:!0}}var rU=async t=>{let e=t._id;await mt.removeUser(t),await dp(t),await Dr.invalidateUser(e),await En(e,{reason:"bulk-deletion"})},wt=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&&Or(e)?!1:await t.features.isSSOEnforced()||$o(e)?!0:(r||(r=await ni(V())),!!(r&&r.email===e.email&&Bo(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 we("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=gp(o);if(!d.valid)throw new we(d.error,400)}u=r.hashPassword?await Ff(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||Zn();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 Y().allDocs(cn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Gu(e,{})).length}}static async getUsersByAppAccess(e){return await Tp(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return yt(e)}static async getUser(e){let r=await gn(e);return r&&delete r.password,r}static async bulkGet(e){return await Vu(e)}static async bulkUpdate(e){return await yo(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=V(),i=Y(),{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 gn(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(f){if(f.status!==404)throw f}if(!c&&s&&(c=await yt(s),c&&c._id!==o))throw new Gt(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[f,m]=await mn([c,e]);d=f!==m?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Du(s,n);let f=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(f=Ap(f,c)),!c&&u?.length&&(f.roles={...u});let m=[];if(!o&&a.length>0)for(let p of a)m.push(t.groups.addUsers(p,[f._id]));try{let p=await i.put(f);return f._rev=p.rev,await fp(f,c),c&&f.email!==c.email&&await mt.removeUser({email:c.email}),await mt.addUser(n,f._id,f.email,f.ssoId),await Dr.invalidateUser(p.id),await Promise.all(m),i.get(f._id)}catch(p){throw p.status===409?"User exists already":p}})}static async bulkCreate(e,r){let n=V(),i=[],s=[],o=[],a=e.map(f=>f.email),u=await jf(a),c=[];for(let f of e){let m=s.find(E=>E.email.toLowerCase()===f.email.toLowerCase()),p=u.includes(f.email.toLowerCase());if(m||p){c.push({email:f.email,reason:"Unavailable"});continue}f.userGroups=r||[],s.push(f),await ro(f)&&o.push(f)}let l=await ni(n),d=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let p of s)d&&delete p.password,i.push(t.buildUser(p,{hashPassword:!0,requirePassword:!d},n,void 0,l));let f=await Promise.all(i);await yo(f);for(let p of f)await mt.addUser(n,p._id,p.email),await fp(p,void 0);let m=f.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],E=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,E));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=Y(),n={successful:[],unsuccessful:[]},i=await Ru(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),a=o.map(m=>({...m,_deleted:!0})),u=await yo(a),l=(await mn(o)).filter(m=>m).length,d=[];for(let m of o){let E=(await to(m._id)).ssoId;E&&(await hu(E)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await rU(m)}await hr().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let f={};return o.reduce((m,p)=>(m[p._id]=p,m),f),u.forEach(m=>{let p=f[m.id].email;m.ok?n.successful.push({_id:m.id,email:p}):n.unsuccessful.push({_id:m.id,email:p,reason:"Database error"})}),n}static async destroy(e){let r=Y(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await _r(o))throw n.userId===Lt()._id?new we('Please visit "Account" to delete this user',400):new we("Account holder cannot be deleted",400)}await mt.removeUser(n),await r.remove(i,n._rev);let s=await ro(n)?1:0;await t.quotas.removeUsers(1,s),await dp(n),await Dr.invalidateUser(i),await En(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 Jn(Ee.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 Ao(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Vu(t,e){let n=(await Y().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Ao(n)),n}async function iU(){let t=Y(),e=`us${R}`;return(await t.allDocs({startkey:e,endkey:`${e}${De}`})).rows.map(n=>n.id)}async function sU(){let t=Y(),e=`us${R}`;return(await t.allDocs({startkey:e,endkey:`${e}${De}`,include_docs:!0})).rows.map(n=>n.doc)}async function yo(t){return await Y().bulkDocs(t)}async function gn(t,e){let n=await Y().get(t);return e?.cleanup&&(n=Ao(n)),n}async function yt(t,e){if(t==null)throw"Must supply an email address to view";let r=await Bt("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=Ao(n)),n}async function oU(t){try{let e=await yt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Gu(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=ru(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await Bt("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Ao(s)),s}async function Tp(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}return(await Y().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function oS(t,e){if(e)return tu(qe(t),e._id)}async function aS(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 Bt("by_email2",{...e,startkey:i,endkey:`${n}${De}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Ao(o)),o}var aU=8;async function uS({bookmark:t,query:e,appId:r,limit:n}={}){let i=Y(),s=n??aU,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await gn(e.equal._id)]:r?(u=await Gu(r,a),l=d=>oS(r,d)):e?.string?.email?(u=await aS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Vu(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(cn(null,{...a,limit:void 0}))).rows.map(f=>f.doc),u=ar.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(cn(null,a))).rows.map(f=>f.doc),mf(u,s,{paginate:!0,property:c,getKey:l})}async function uU(){return(await gf("by_email2",{limit:0,include_docs:!1})).total_rows}async function cU(){let t=0;async function e(r){let n=await uS({bookmark:r}),i=await mn(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function lU(t){return delete t.admin,delete t.builder,t}function Ap(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 dU(t,e){let r=qe(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await wt.save(t,{hashPassword:!1})}async function fU(t,e){let r=qe(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await wt.save(t,{hashPassword:!1})}var cS=3600;async function pU(t,e){let n=await of(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await _r(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function mU(t){let e=await wt.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 _r(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function So({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=pU),!e)try{e=V()}catch{e=await mt.lookupTenantId(t)}let i=await Ns(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,cS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!Ge.users.isGlobalBuilder(s)&&await be(e,async()=>{let o=await wt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function hU(t){let e=await Ns(),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 mU(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,cS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function _o(t){await(await Ns()).delete(t)}var wp={};P(wp,{Writethrough:()=>Ip});var gi={};P(gi,{AUTO_EXTEND_POLLING_MS:()=>dS,doWithLock:()=>Sp,newRedlock:()=>yn});var lS=k(require("redlock"));async function gU(t,e){if(t==="custom")return yn(e);switch(t){case"try_once":return yn(Ei.TRY_ONCE);case"try_twice":return yn(Ei.TRY_TWICE);case"default":return yn(Ei.DEFAULT);case"delay_500":return yn(Ei.DELAY_500);case"auto_extend":return yn(Ei.AUTO_EXTEND);default:throw Xt.unreachable(t)}}var Ei={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 yn(t={}){let e={...Ei.DEFAULT,...t},n=(await sf()).client;return new lS.default([n],e)}function yU(t){let r=`lock:${t.systemLock?"system":V()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var dS=me.fromSeconds(10).toMs();async function Sp(t,e){let r=await gU(t.type,t.customOptions),n,i;try{let s=yU(t),o=t.type==="auto_extend"?dS: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 fS=1e4,_p=null;async function Wu(){if(!_p){let t=await nf();_p=new sn(t)}return _p}function Io(t,e){return t.name+e}function Op(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function TU(t,e,r=fS){let n=await Wu(),i=e._id,s;i&&(s=await n.get(Io(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await Sp({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;ri("Ignoring conflict in write-through cache")}})).executed||ri("Ignoring redlock conflict in write-through cache")),s=Op(a,o?null:s?.lastWrite),a._id&&await n.store(Io(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function AU(t,e){let r=await Wu(),n=Io(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Op(s),await r.store(n,i)}return i.doc}async function SU(t,e){let r=await Wu(),n=Io(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Op(s),await r.store(n,i)}return i.doc}async function _U(t,e,r){let n=await Wu();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(Io(t,i))}finally{await t.remove(i,r)}}var Ip=class{constructor(e,r=fS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return TU(this.db,e,r)}async get(e){return AU(this.db,e)}async tryGet(e){return SU(this.db,e)}async remove(e,r){return _U(this.db,e,r)}};var Dp={};P(Dp,{createCode:()=>OU,getCode:()=>wU,invalidateCode:()=>DU});var IU=me.fromHours(1).toSeconds();async function OU(t,e){let r=ee();return await(await Us()).store(r,{userId:t,info:e},IU),r}async function wU(t){let r=await(await Us()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function DU(t){await(await Us()).delete(t)}var bp={};P(bp,{DocWritethrough:()=>Rp,DocWritethroughProcessor:()=>Oo,getProcessor:()=>bU,init:()=>pS});var RU=100,qu,Oo=class t{static get queue(){return t._queue||(t._queue=new Et("docWritethroughQueue",{jobOptions:{attempts:RU}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){if(r.startsWith("scimlog"))return;let i=Re(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Rp=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Oo.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function pS(){return qu=new Oo().init(),qu}function bU(){return qu||pS()}function Qu(t){return`config${R}${t}`}async function tt(t){let e=Y();try{return await e.get(Qu(t))}catch(r){if(r.status===404)return;throw r}}async function CU(t){return t._id||(t._id=Qu(t.type)),Y().put(t)}async function pi(){let t=await tt("settings");return t||(t={_id:Qu("settings"),type:"settings",config:{}}),t.config.platformUrl=await wo({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await xu({config:t.config}),t}async function vp(){return(await pi()).config}async function wo(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=V();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await tt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var xu=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await mr(Ee.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await tt("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 xU(){return await tt("google")}async function Ku(){return(await xU())?.config}async function Pp(){if(!h.SELF_HOSTED)return Cp();let t=await Ku();return(!t||!t.activated)&&(t=Cp()),t}function Cp(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function vU(){return tt("logos_oidc")}async function PU(){return tt("oidc")}async function NU(){let t=(await PU())?.config;return t?.configs&&t.configs[0]}async function Np(t){let e=(await tt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function mS(){return tt("smtp")}async function UU(t){let e=await mS();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 LU(){return(await tt("scim"))?.config}async function MU(){return tt("ai")}async function kU(){return tt("recaptcha")}var Wp={};P(Wp,{AccessController:()=>Mp,BUILTIN_ROLE_IDS:()=>kp,Role:()=>Rr,RoleHierarchyTraversal:()=>ju,RoleIDVersion:()=>Fp,builtinRoleToNumber:()=>Do,checkForRoleResourceArray:()=>yS,externalRole:()=>WU,findRole:()=>Ro,getAllRoleIds:()=>jU,getAllRoles:()=>Gp,getBuiltinRole:()=>ES,getBuiltinRoles:()=>$p,getDBRoleID:()=>TS,getExternalRoleID:()=>br,getExternalRoleIDs:()=>AS,getRole:()=>qU,getUserRoleHierarchy:()=>Vp,getUserRoleIdHierarchy:()=>gS,isBuiltin:()=>Tn,lowerBuiltinRoleID:()=>GU,prefixRoleIDNoBuiltin:()=>Lp,roleIDsAreEqual:()=>rt,roleToNumber:()=>VU,saveRoles:()=>QU,validInherits:()=>$U});var hS=require("lodash"),Yu=k(require("lodash/fp/cloneDeep")),Up=k(require("semver"));var kp={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ne={...kp,BUILDER:"BUILDER"},Fp={UUID:void 0,NAME:"name"};function BU(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var Rr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Fp.NAME}addInheritance(e){return e&&typeof e=="string"?e=Lp(e):e&&Array.isArray(e)&&(e=e.map(Lp)),this.inherits=e,this}},ju=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=Ro(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!BU(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ro(o.inherits,n,r),o&&i.push(o),Pe.roles.checkForRoleInheritanceLoops(i))break}}return(0,hS.uniqBy)(i,s=>s._id)}},Bp={ADMIN:new Rr(ne.ADMIN,ne.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ne.POWER),POWER:new Rr(ne.POWER,ne.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ne.BASIC),BASIC:new Rr(ne.BASIC,ne.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ne.PUBLIC),PUBLIC:new Rr(ne.PUBLIC,ne.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Rr(ne.BUILDER,ne.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function $p(){return(0,Yu.default)(Bp)}function Tn(t){return Object.values(kp).includes(t)}function Lp(t){return Tn(t)?t:kt(t)}function ES(t){let e=Object.values(Bp).find(r=>t.includes(r._id));if(e)return(0,Yu.default)(e)}function $U(t,e){if(!e)return!1;let r=n=>t.find(i=>rt(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 Do(t){let e=$p(),r=Object.values(e).length+1;if(rt(t,ne.ADMIN)||rt(t,ne.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function VU(t){if(Tn(t))return Do(t);let e=await Vp(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=>rt(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(Tn(n.inherits))return Do(n.inherits)+1;return 0};return Math.max(...e.map(r))}function GU(t,e){return t?e&&Do(t)>Do(e)?e:t:e}function rt(t,e){return kt(t)===kt(e)}function WU(t){let e;return t._id&&(e=br(t._id)),{...t,_id:e,inherits:AS(t.inherits,t.version)}}function Ro(t,e,r){let n=ES(t);n||(t=kt(t));let i=e.find(s=>s._id&&rt(s._id,t));return!i&&!Tn(t)&&r?.defaultPublic?(0,Yu.default)(Bp.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=br(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function qU(t,e){let r=Hn(),n=[];if(!Tn(t)){let i=await r.tryGet(TS(t));i&&n.push(i)}return Ro(t,n,e)}async function QU(t){await Hn().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:kt(r._id)})))}async function KU(t,e){let r=await Gp();if(rt(t,ne.ADMIN))return r;let n=Ro(t,r,e),i=[];return n&&(i=new ju(r,e).walk(n)),i}async function gS(t){return(await Vp(t)).map(r=>r._id)}async function Vp(t,e){return KU(t,e)}function yS(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 jU(t){return(await Gp(t)).map(r=>r._id)}async function Gp(t){if(t)return We(t,e);{let r;try{r=Hn()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(nu(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=br(a._id,a.version)));let i=$p(),s=[];!r||await YU(r)?s=[ne.ADMIN,ne.POWER,ne.BASIC,ne.PUBLIC]:s=[ne.ADMIN,ne.BASIC,ne.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>rt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=br(a._id,u.version),n.push({...a,...u,name:a.name,_id:br(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=yS(o.permissions,a);return n}}async function YU(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Up.default.valid(r)?!0:!Up.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Mp=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||rt(e,ne.BUILDER)||rt(r,e)||rt(r,ne.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await gS(r),this.userHierarchies[r]=n),n?.find(i=>rt(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 TS(t){return t?.startsWith("role")?t:kt(t)}function br(t,e){if(t.startsWith(`role${R}`)&&(Tn(t)||e===Fp.NAME)){let r=t.split(R);return r.shift(),r.join(R)}return t}function AS(t,e){return t&&(typeof t=="string"?br(t,e):t.map(r=>br(r,e)))}var qp={};P(qp,{BUILDER:()=>XU,BUILTIN_PERMISSIONS:()=>Hu,CREATOR:()=>eL,GLOBAL_BUILDER:()=>tL,PermissionImpl:()=>ie,PermissionLevel:()=>Ii,PermissionType:()=>ko,doesHaveBasePermission:()=>JU,getAllowedLevels:()=>OS,getBuiltinPermissionByID:()=>zU,getBuiltinPermissions:()=>HU,isPermissionLevelHigherThanRead:()=>ZU,levelToNumber:()=>IS});var SS=k(require("lodash/flatten")),_S=k(require("lodash/fp/cloneDeep")),ie=class{constructor(e,r){this.type=e,this.level=r}};function IS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function OS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Hu={PUBLIC:{_id:"public",name:"Public",permissions:[new ie("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new ie("query","read"),new ie("table","read"),new ie("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new ie("query","write"),new ie("table","write"),new ie("automation","execute"),new ie("legacy_view","read"),new ie("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new ie("table","write"),new ie("user","read"),new ie("automation","execute"),new ie("webhook","read"),new ie("legacy_view","read"),new ie("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new ie("table","admin"),new ie("user","admin"),new ie("automation","admin"),new ie("webhook","read"),new ie("query","admin"),new ie("legacy_view","read"),new ie("app","read")]}};function HU(){return(0,_S.default)(Hu)}function zU(t){return Object.values(Hu).find(r=>r._id===t)}function JU(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Hu),s=(0,SS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&OS(o.level).indexOf(e)!==-1)return!0;return!1}function ZU(t){return IS(t)>1}var XU="builder",eL="creator",tL="globalBuilder";var jp={};P(jp,{FlagSet:()=>Ju,all:()=>sL,flags:()=>Qp,getEnvFlags:()=>bS,init:()=>rL,isEnabled:()=>iL,parseEnvFlags:()=>Xu,shutdown:()=>nL,testutils:()=>Kp});var Zu=k(require("crypto"));var wS=require("posthog-node"),DS=k(require("dd-trace"));var RS=require("lodash");var zu;function rL(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),zu=new wS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:me.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function nL(){zu?.shutdown()}function Xu(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 bS(){return Xu(h.TENANT_FEATURE_FLAGS||"")}var Ju=class{constructor(e){this.flagSchema=e;this.setId=Zu.randomUUID()}defaults(){return(0,RS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await DS.default.trace("features.fetch",async e=>{let r=jd(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=V(),o=new Set;if(Ka())return i;for(let{tenantId:d,key:f,value:m}of bS())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(f),!!this.isFlagName(f))){if(typeof i[f]!="boolean")throw new Error(`Feature: ${f} is not a boolean`);i[f]=m,n[`flags.${f}.source`]="environment"}let a=Lt(),u=a?._id;if(!u){let d=Qd();d&&(u=Zu.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,zu&&u){n.readFromPostHog=!0;let d=await pi(),f={tenantId:c},m={tenant:{id:c}};d.config.createdVersion&&(m.tenant.createdVersion=d.config.createdVersion),d.createdAt&&(m.tenant.createdAt=`${d.createdAt}`);let p=await zu.getAllFlags(u,{personProperties:f,onlyEvaluateLocally:!0,groups:{tenant:c},groupProperties:m});for(let[E,g]of Object.entries(p))if(this.isFlagName(E)){if(typeof g!="boolean"){console.warn(`Invalid value for posthog flag "${E}": ${g}`);continue}if(!(i[E]===!0||o.has(E)))try{i[E]=g,n[`flags.${E}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${E}": ${g}`,T)}}}let l=Hd();for(let[d,f]of Object.entries(l))this.isFlagName(d)&&typeof f=="boolean"&&(i[d]=f,n[`flags.${d}.source`]="override");Yd(this.setId,i);for(let[d,f]of Object.entries(i))n[`flags.${d}.value`]=f;return e?.addTags(n),i})}},Qp=new Ju(Cm);async function iL(t){return await Qp.isEnabled(t)}async function sL(){return await Qp.fetch()}var Kp={};P(Kp,{setFeatureFlags:()=>CS,withFeatureFlags:()=>uL});function oL(){let t={};for(let{tenantId:e,key:r,value:n}of Xu(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function aL(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 CS(t,e){let r=oL();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=aL(r);return Ts({TENANT_FEATURE_FLAGS:n})}function uL(t,e,r){let n=CS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var sm={};P(sm,{adminOnly:()=>lc,auditLog:()=>oc,authError:()=>Ie,buildAuthMiddleware:()=>QL,buildCsrfMiddleware:()=>jL,buildTenancyMiddleware:()=>KL,builderOnly:()=>fc,builderOrAdmin:()=>dc,google:()=>jt,internalApi:()=>uc,joiValidator:()=>Co,oidc:()=>Yt,passport:()=>YL,platformLogout:()=>XL,refreshOAuthToken:()=>JL,ssoCallbackUrl:()=>Cr,updateUserOAuth:()=>ZL});var im={};P(im,{adminOnly:()=>lc,auditLog:()=>oc,authError:()=>Ie,authenticated:()=>sc,builderOnly:()=>fc,builderOrAdmin:()=>dc,correlation:()=>WS,csp:()=>HS,csrf:()=>cc,datasource:()=>WL,errorHandling:()=>QS,featureFlagCookie:()=>zS,google:()=>jt,internalApi:()=>uc,ip:()=>ZS,joiValidator:()=>Co,local:()=>yi,oidc:()=>Yt,pino:()=>VS,querystringToBody:()=>KS,ssoCallbackUrl:()=>Cr,tenancy:()=>ac});var yi={};P(yi,{authenticate:()=>dL,options:()=>lL});function Ie(t,e,r){return t(r,null,{message:e})}async function Cr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await vp(),n="/api/global/auth";return dr()&&(n+=`/${V()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Yp="Invalid credentials",cL="This account has expired. Please reset your password",lL={passReqToCallback:!0};async function dL(t,e,r,n){if(!e)return Ie(n,"Email Required");if(!r)return Ie(n,"Password Required");let i=await yt(e);return i==null?(console.info(`user=${e} could not be found`),Ie(n,Yp)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ie(n,Yp)):i.password?await Bf(r,i.password)?(delete i.password,n(null,i)):Ie(n,Yp):(console.info(`user=${e} has no password set`,i),Ie(n,cL))}var jt={};P(jt,{buildVerifyFn:()=>PS,getCallbackUrl:()=>mL,strategyFactory:()=>Hp});var bo=t=>Promise.resolve(t);async function ec(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ie(r,"sso user id required");if(!t.email)return Ie(r,"sso user email required");let i=Zn(t.userId),s;try{s=await gn(i)}catch(a){if(!a.status||a.status!==404)return Ie(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await yt(t.email)),!s&&e)return Ie(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:V()});let o=await fL(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Ie(r,"Error saving user",a)}return r(null,o)}async function fL(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 pL=require("passport-google-oauth").OAuth2Strategy;function PS(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 ec(s,!0,i,t)}}async function Hp(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=PS(r);return new pL({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function mL(t){return Cr("google",t)}var Yt={};P(Yt,{buildVerifyFn:()=>US,fetchStrategyConfig:()=>yL,getCallbackUrl:()=>TL,strategyFactory:()=>gL});var NS=k(require("node-fetch"));var hL=require("@techpass/passport-openidconnect").Strategy;function US(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:EL(n,i),oauth2:{accessToken:s,refreshToken:o}};return ec(l,!1,c,t)}}function EL(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Wf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function gL(t,e){try{let r=US(e),n=new hL(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function yL(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:s}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let o=await(0,NS.default)(i);if(!o.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${o.statusText}`);let a=await o.json();return{issuer:a.issuer,authorizationURL:a.authorization_endpoint,tokenURL:a.token_endpoint,userInfoURL:a.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:s}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function TL(){return Cr("oidc")}var zp={};P(zp,{postAuth:()=>_L,preAuth:()=>SL});var AL=require("passport-google-oauth").OAuth2Strategy;async function LS(){let t=await Pp();if(!t)throw new Error("No google configuration found");return t}async function SL(t,e,r){let n=await LS(),s=`${await wo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Hp(n,s,bo);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 _L(t,e,r){let n=await LS(),s=`${await wo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=Vt(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new AL({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Ir(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=ee();await Mt(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var IL=/\/:(.*?)(\/.*)?$/g,An=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(IL);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}}):[],Sn=(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 rm={};P(rm,{SecretOption:()=>FS,decrypt:()=>tm,decryptFile:()=>CL,encrypt:()=>DL,encryptFile:()=>RL,getSecret:()=>em});var Ht=k(require("crypto")),xr=k(require("fs")),Zp=k(require("zlib"));var Jp=require("path"),tc="aes-256-ctr",kS="-",OL=1e4,wL=32,rc=16,Xp=16,FS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(FS||{});function em(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 nc(t,e){return Ht.default.pbkdf2Sync(t,new Uint8Array(e),OL,wL,"sha512")}function DL(t,e="api"){let r=Ht.default.randomBytes(rc),n=nc(em(e),r),i=Ht.default.createCipheriv(tc,new Uint8Array(n),new Uint8Array(r)),s=i.update(t,"utf8"),o=i.final(),a=Buffer.concat([new Uint8Array(s),new Uint8Array(o)]).toString("hex");return`${r.toString("hex")}${kS}${a}`}function tm(t,e="api"){let[r,n]=t.split(kS),i=Buffer.from(r,"hex"),s=nc(em(e),i),o=Ht.default.createDecipheriv(tc,new Uint8Array(s),new Uint8Array(i)),a=o.update(n,"hex"),u=o.final();return Buffer.concat([new Uint8Array(a),new Uint8Array(u)]).toString()}async function RL({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Jp.join)(t,e);if(xr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=xr.default.createReadStream(i),o=xr.default.createWriteStream((0,Jp.join)(t,n)),a=Ht.default.randomBytes(rc),u=Ht.default.randomBytes(Xp),c=nc(r,a),l=Ht.default.createCipheriv(tc,new Uint8Array(c),new Uint8Array(u));return o.write(a),o.write(u),s.pipe(Zp.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function bL(t){let e=xr.default.createReadStream(t),r=await MS(e,rc),n=await MS(e,Xp);return e.close(),{salt:r,iv:n}}async function CL(t,e,r){if(xr.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await bL(t),s=xr.default.createReadStream(t,{start:rc+Xp}),o=xr.default.createWriteStream(e),a=nc(r,n),u=Ht.default.createDecipheriv(tc,new Uint8Array(a),new Uint8Array(i)),c=Zp.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",f=>{o.close(),d(f)}),u.on("error",f=>{o.close(),d(f)}),c.on("error",f=>{o.close(),d(f)}),o.on("error",f=>{o.close(),d(f)})})}function MS(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.map(a=>new Uint8Array(a))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var $S=k(require("dd-trace")),xL=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function vL(){return new Date(Date.now()-xL).toISOString()}function BS(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 PL(t,e){if(eo(t))return{valid:!0,user:void 0};let n=tm(t).split(R)[0];return be(n,async()=>{let i;try{let s=Y();i=await Bt("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await So({userId:i,tenantId:n,populateUser:e})};throw new ai})}function ic(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function sc(t=[],e={publicAllowed:!1}){let r=t?An(t):[];return async(n,i)=>{let s=!1,o=ic(n,"x-budibase-api-version");Sn(n,r)&&(s=!0);try{let u=ic(n,"x-budibase-token"),c=Vt(n,"budibase:auth")||pu(u),l=ic(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=ic(n,"x-budibase-tenant-id"),f=!1,m,p=!1,E;if(c&&!l){let T=c.sessionId,_=c.userId,S;try{S=await mp(_,T),e&&e.populateUser?m=await So({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await So({userId:_,tenantId:S.tenantId,email:S.email}),m.csrfToken=S.csrfToken,E="cookie",S?.lastAccessedAt<vL()&&await pp(S),f=!0}catch(w){f=!1,console.error(`Auth Error: ${w.message}`),Ir(n,"budibase:auth")}}if(!f&&l){let T=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await PL(l,T);_&&(f=!0,E="api_key",m=S,p=!S)}!m&&d?m={tenantId:d}:m&&"password"in m&&delete m.password,f||(f=!1);let g=T=>T&&T.email;return g(m)&&$S.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),BS(n,{authenticated:f,user:m,internal:p,version:o,publicEndpoint:s,loginMethod:E}),g(m)?Dd(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Ir(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return BS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var oc=async(t,e)=>e();function ac(t,e,r={noTenancyRequired:!1}){let n=An(t),i=An(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Sn(s,i)};!!Sn(s,n)||(u.excludeStrategies=["query"]);let l=ks(s,u);return s.set("x-budibase-tenant-id",l),be(l,o)}}async function uc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),eo(r)||t.throw(403,"Unauthorized"),e()}var NL=["GET","HEAD","OPTIONS"],UL=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function cc(t={noCsrfPatterns:[]}){let e=An(t.noCsrfPatterns);return async(r,n)=>{if(Sn(r,e)||NL.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!UL.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 lc=async(t,e)=>(!t.internal&&!Or(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function dc(t,e){let r=Se(),n=h.isWorker()||!r?Xe:h.isApps()?ui:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Or(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}async function fc(t,e){let r=Se(),n;if(h.isWorker()||!r?n=Xe:h.isApps()&&(n=ui),!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 LL=require("koa-pino-logger"),ML=require("correlation-id");function kL(){return{logger:du,genReqId:ML.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 FL(){return h.HTTP_LOGGING?LL(kL()):(t,e)=>e()}var VS=FL();var GS=require("uuid"),BL=require("correlation-id"),WS=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,GS.v4)()),BL.withId(r,()=>e())};function qS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of Sy){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function QS(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:Iu(r)};if(qS(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}}function KS(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 YS=k(require("crypto"));var jS={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","https://www.google.com/recaptcha/api.js"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com"],"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'"]},$L=/^[A-Za-z0-9-*:/.]+$/,HS=async(t,e)=>{let r=YS.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...jS};if(n["script-src"]=[...jS["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Vs.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
+ `).filter(c=>$L.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()};var zS=async(t,e)=>{let n=Vt(t,"budibase:featureflags")?.flags||{};await zd(n,async()=>{await e()})};var Co={};P(Co,{body:()=>VL,params:()=>GL});var nm=k(require("joi"));function JS(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:nm.default.any().optional(),updatedAt:nm.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 VL(t,e){return JS(t,"body",e)}function GL(t,e){return JS(t,"params",e)}async function ZS(t,e){return t.ip?await Kd(t.ip,()=>e()):e()}var WL={google:zp};var XS=require("koa-passport"),qL=require("passport-local").Strategy,pc=require("passport-oauth2-refresh"),QL=sc,KL=ac,jL=cc,YL=XS;XS.use(new qL(yi.options,yi.authenticate));async function HL(t,e){let r=await Yt.getCallbackUrl(),n,i;try{if(n=await Yt.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Yt.strategyFactory(n,bo)}catch{throw new Error("Could not refresh OAuth Token")}return pc.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{pc.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function zL(t,e){let r=await jt.getCallbackUrl(t),n;try{n=await jt.strategyFactory(t,r,bo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return pc.use(n),new Promise(i=>{pc.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function JL(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Np(r);return n?HL(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Ku();return n?zL(n,t):{err:{data:"Google configuration not found"}}}}}async function ZL(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=Y(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await _o(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function XL(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=Vt(e,"budibase:auth"),s=await go(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Ir(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await En(r,{sessionIds:o,reason:"logout"}),await Bu.logout(e.user?.email),await _o(r)}var am={};P(am,{validate:()=>i0});var b=k(require("joi")),e0=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function om(t,e){let{error:r}=t.validate(e);if(r)throw r}function t0(t){let e=b.default.object({type:b.default.string().allow("component").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),settings:b.default.array().items(b.default.object().unknown(!0)).required()}).unknown(!0)});om(e,t)}function r0(t){let e=b.default.object({type:b.default.string().allow(...Object.values(Tc)).required(),required:b.default.boolean().required(),default:b.default.any(),display:b.default.string()}),r=b.default.object({type:b.default.string().allow(...Object.values(yc)),readable:b.default.boolean(),displayName:b.default.string(),fields:b.default.object().pattern(b.default.string(),e)}).required(),n=b.default.object({type:b.default.string().allow("datasource").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({docs:b.default.string(),plus:b.default.boolean().optional(),isSQL:b.default.boolean().optional(),auth:b.default.object({type:b.default.string().required()}).optional(),features:b.default.object(Object.fromEntries(Object.values(Ac).map(i=>[i,b.default.boolean().optional()]))).optional(),relationships:b.default.boolean().optional(),description:b.default.string().required(),friendlyName:b.default.string().required(),type:b.default.string().allow(...e0),datasource:b.default.object().pattern(b.default.string(),e).required(),query:b.default.object().pattern(b.default.string(),r).unknown(!0).required(),extra:b.default.object().pattern(b.default.string(),b.default.object({type:b.default.string().required(),displayName:b.default.string().required(),required:b.default.boolean(),data:b.default.object()}))})});om(n,t)}function n0(t){let e=b.default.object().pattern(b.default.string(),{type:b.default.string().allow(...Object.values(Sc)).required(),customType:b.default.string().allow(...Object.values(_c)),title:b.default.string(),description:b.default.string(),enum:b.default.array().items(b.default.string()),pretty:b.default.array().items(b.default.string())}),r=b.default.object({properties:e,required:b.default.array().items(b.default.string())}).concat(e).required(),n=b.default.object({type:b.default.string().allow("automation").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),tagline:b.default.string().required(),icon:b.default.string().required(),description:b.default.string().required(),type:b.default.string().allow("ACTION","LOGIC").required(),stepId:b.default.string().disallow(...xm).required(),inputs:b.default.object().optional(),schema:b.default.object({inputs:r,outputs:r}).required()})});om(n,t)}function i0(t){switch(t?.type){case"component":t0(t);break;case"datasource":r0(t);break;case"automation":n0(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var um={};P(um,{Client:()=>Ce,clients:()=>pr,locks:()=>gi,utils:()=>Ha});var cm={};P(cm,{isBlacklisted:()=>o0,refreshBlacklist:()=>n_});var e_=k(require("dns")),hc=k(require("net"));var t_=require("util"),mc,s0=(0,t_.promisify)(e_.default.lookup);async function r_(t){return hc.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await s0(t,{all:!0})).map(r=>r.address)}async function n_(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(hc.default.isIP(i))r.push(i);else{let s=await r_(i);r=r.concat(s)}}mc=r}async function o0(t){if(mc||await n_(),mc?.length===0)return!1;let e;return hc.default.isIP(t)?e=[t]:e=await r_(t),!!mc?.find(r=>e.includes(r))}var dm={};P(dm,{init:()=>u0});var a0={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};function i_(t,e){let r=a0[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var xo=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 be(i,async()=>{await a({id:s,tenantId:i,appId:n.appId})})}shutdown(){return CA()}};var s_,lm;function u0(t){Kt||Fu(),lm||(lm=new xo(t)),s_||(s_=Kt.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await lm.processEvent(r,n,i)}))}var Am={};P(Am,{COUNT_FIELD_NAME:()=>ym,Sql:()=>m_,SqlTable:()=>Ec,designDoc:()=>Tm,utils:()=>Bd});var c_=require("knex");var c0=require("knex");function fm(t){return["link","formula","ai"].indexOf(t)!==-1}function o_(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(f=>f.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(f=>f.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(f=>f.foreignKey);for(let[f,m]of Object.entries(e.schema)){let p=n?.schema[f];if(p&&p.type||c.includes(f)||i?.updated===f)continue;let E=m.type;switch(E){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(f)?t.string(f,255):t.text(f);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:g,toTable:T}=m.meta;t.integer(f).unsigned(),t.foreign(f).references(`${T}.${g}`)}else l.indexOf(f)===-1&&t.float(f);break;case"bigint":t.bigint(f);break;case"boolean":t.boolean(f);break;case"datetime":m.timeOnly?t.time(f):t.datetime(f,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":Pe.schema.isDeprecatedSingleUserColumn(m)?t.text(f):t.json(f);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:g}=Ud(m.tableId),T=r[g];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let _=T.primary[0],S=T.schema[_].externalType;S?t.specificType(m.foreignKey,S):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${g}.${_}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(f);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:Xt.unreachable(E)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!fm(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,p])=>!fm(p.type)&&e.schema[m]==null).forEach(([m,p])=>{i?.old===m||fm(p.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function d0(t,e,r){return t.createTable(e.name,n=>{o_(n,e,r)})}function f0(t,e,r,n,i){return t.alterTable(e.name,s=>{o_(s,e,r,n,i)})}function p0(t,e){return t.dropTable(e.name)}var pm=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,c0.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=d0(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=f0(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=Qn(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=p0(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Qn(n)}},Ec=pm;var l_=require("lodash"),ym="__bb_total";function a_(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function mm(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function m0(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 d_(t){return Array.isArray(t)?t.map(e=>d_(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function u_(t){return t.sourceType==="internal"||t.sourceId===wc}function h0(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function f_(t,e='"'){return`${e}${h0(t,e)}${e}`}function hm(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=f_(t[r],e));return`[${t.join(",")}]`}function p_(t){return Pm.includes(t.type)&&!Pe.schema.isDeprecatedSingleUserColumn(t)}var E0={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},Em=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array",POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new ar.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(".")}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()&&p_(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${e}}`;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),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(!kd(e))return null}else if(r.dateOnly){let n=Md(e);return n?new Date(n):null}else return r.ignoreTimezones?Wa(e)?new Date(e):Ld(e)?new Date(e+"Z"):null:Wa(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,l_.cloneDeep)(e);for(let r of Object.values(Nr)){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(In)){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 f=d.tableName,m=a?.[f]||f,p=l(f)||l(m),E=l(d.column);if((p||E)&&d.to&&d.tableName){let g=this.knex.select(this.knex.raw(1)).from({[m]:f}),T=g.clone(),_=Fd(d),S;if(p?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let w=a?.[_.through]||d.through,y=this.tableNameWithSchema(_.through,{alias:w,schema:o});T=T.innerJoin(y,function(){this.on(`${m}.${_.toPrimary}`,"=",`${w}.${_.to}`)}).where(`${w}.${_.from}`,"=",this.rawQuotedIdentifier(`${c}.${_.fromPrimary}`)),this.client==="sqlite3"&&(T=this.addJoinFieldCheck(T,_)),e=e.where(I=>{I.whereExists(i(S,T)),r&&I.orWhereNotExists(g.clone().innerJoin(y,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${w}.${_.from}`)}))})}else{let w=`${m}.${d.to}`,y=`${c}.${d.from}`;T=T.where(w,"=",this.rawQuotedIdentifier(y)),e=e.where(I=>{I.whereExists(i(S,T.clone())),r&&I.orWhereNotExists(T)})}}}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(p){return s?.[p]||p}function l(p,E,g,T){let _=(S,w,y)=>{let[I,...M]=w.split("."),v=M.join("."),L=c(I);return S.andWhere(j=>g(j,L?`${L}.${v}`:v,y))};for(let S in p){let w=p[S],y=Ks(S),I=y.includes("."),M=n?.relationship&&I,v;if(S==="_complexIdOperator"&&(v=p[S])&&T){let L=c(u);e=T(e,v.id.map(j=>L?`${L}.${j}`:j),v.values)}else if(I)M&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,E0[E],y,(L,j)=>_(j,L,w)));else{let L=c(u);e=g(e,L?`${L}.${y}`:y,w)}}}let d=(p,E,g)=>((r?.fuzzyOr||o)&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3"?p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(E),`%${g.toLowerCase()}%`]):p.whereILike(this.rawQuotedIdentifier(E),this.knex.raw("?",[`%${g}%`]))),f=(p,E=!1)=>{function g(T){return(o||p===r?.containsAny)&&(T=T.or),p===r?.notContains&&(T=T.not),T}this.client==="pg"?l(p,"contains",(T,_,S)=>{T=g(T);let w=this.getFieldSchema(_),y="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(w)&&(y="",S=`{${S.map(M=>M.substring(1,M.length-1))}}`),E?T.whereRaw(y?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(_),y?this.knex.raw(hm(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${y} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),y?this.knex.raw(hm(S)):this.knex.raw(S)])}):this.client==="mysql2"||this.client==="mariadb"?l(p,"contains",(T,_,S)=>g(T).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(E?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw(f_(hm(S)))])):l(p,"contains",(T,_,S)=>(S.length===0||(T=T.where(w=>(p===r?.notContains&&(w=w.not),w=w.where(y=>{for(let I of S){p===r?.containsAny?y=y.or:y=y.and;let M=typeof I=="string"?`"${I.toLowerCase()}"`:I;y=y.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${M}%`)}}),p===r?.notContains&&(w=w.or.whereNull(this.rawQuotedIdentifier(_))),w))),T))};if(r.$and){let{$and:p}=r;for(let E of p.conditions)e=e.where(g=>{this.addFilters(g,E,n)})}if(r.$or){let{$or:p}=r;e=e.where(E=>{for(let g of p.conditions)E.orWhere(T=>this.addFilters(T,{...g,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(p,E,g)=>{let T=this.getFieldSchema(E),_=Array.isArray(g)?g:[g];if(o&&(p=p.or),this.client==="oracledb")E=this.convertClobs(E);else if(this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly){for(let S of _)S!=null?p=p.or.whereLike(E,`${S.toISOString().slice(0,10)}%`):p=p.or.whereNull(E);return p}return p.whereIn(E,_)},(p,E,g)=>(o&&(p=p.or),this.client==="oracledb"&&(E=E.map(T=>this.convertClobs(T))),p.whereIn(E,Array.isArray(g)?g:[g]))),r.string&&l(r.string,"string",(p,E,g)=>{if(o&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3")return p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(E),`${g.toLowerCase()}%`]);{let T=this.getFieldSchema(E);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?p.whereRaw(`??::text ilike '${g}%'`,[this.knex.raw(this.quote(T.name))]):p.whereILike(E,`${g}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(p,E,g)=>{let T=v=>v&&Object.keys(v).length===0&&Object.getPrototypeOf(v)===Object.prototype;T(g.low)&&(g.low=""),T(g.high)&&(g.high="");let _=qa(g.low),S=qa(g.high),w=this.getFieldSchema(E),y=E,I=g.high,M=g.low;return this.client==="sqlite3"&&w?.type==="datetime"&&w.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),M!=null&&(M=M.toISOString().slice(0,10))),this.client==="oracledb"?y=this.convertClobs(E):this.client==="sqlite3"&&w?.type==="bigint"&&(y=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(E)]),I=this.knex.raw("CAST(? AS INTEGER)",[g.high]),M=this.knex.raw("CAST(? AS INTEGER)",[g.low])),o&&(p=p.or),_&&S?p.whereBetween(y,[M,I]):_?p.where(y,">=",M):S?p.where(y,"<=",I):p}),r.equal&&l(r.equal,"equal",(p,E,g)=>{let T=this.getFieldSchema(E);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(E),g]);if(this.client==="oracledb"){let _=this.convertClobs(E);return p.where(S=>S.whereNotNull(_).andWhere(_,g))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?g!=null?p.whereLike(E,`${g.toISOString().slice(0,10)}%`):p.whereNull(E):p.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(E),g])}),r.notEqual&&l(r.notEqual,"notEqual",(p,E,g)=>{let T=this.getFieldSchema(E);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(E),g]);if(this.client==="oracledb"){let _=this.convertClobs(E);return p.where(S=>S.not.whereNull(_).and.where(_,"!=",g)).or.whereNull(_)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?g!=null?p.not.whereLike(E,`${g.toISOString().slice(0,10)}%`).or.whereNull(E):p.not.whereNull(E):p.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(E),g])}),r.empty&&l(r.empty,"empty",(p,E)=>(o&&(p=p.or),p.whereNull(E))),r.notEmpty&&l(r.notEmpty,"notEmpty",(p,E)=>(o&&(p=p.or),p.whereNotNull(E))),r.contains&&f(r.contains),r.notContains&&f(r.notContains),r.containsAny&&f(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!Nd(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Zt(r.documentType)}%`),e}isSqs(){return u_(this.table)}getTableName(e){e||(e=this.table);let r=e.name;u_(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 ${ym}`)}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}`,f;this.isAggregateField(a)?f=this.rawQuotedIdentifier(a):this.client==="oracledb"?f=this.convertClobs(d):f=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[f,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:f,through:m,to:p,from:E,fromPrimary:g,toPrimary:T}=d;if(!f||!r)continue;let _=c[f];if(!_)throw new Error(`related table "${f}" not found in datasource`);let S=a?.[f]||f,w=a?.[r]||r,y=m&&a?.[m]||m,I=this.tableNameWithSchema(f,{alias:S,schema:u}),M=[..._?.primary||[],_?.primaryDisplay].filter(B=>B),v=m0(l.filter(B=>B.split(".")[0]===S),M);v=v.slice(0,Math.floor(this.maxFunctionParameters()/2));let L=v.map(B=>this.buildJsonField(_,B));if(!L.length)continue;let j=L.map(B=>{let z=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${z}??`,[B[0],B[1]]).toString()}).join(","),Dt=`${S}.${T||p}`,F=s.from(I).orderBy(Dt),U=m&&T&&g,x=U?`${y}.${E}`:`${S}.${p}`,$=U?`${w}.${g}`:`${w}.${E}`;if(U){let B=this.tableNameWithSchema(m,{alias:y,schema:u});F=F.join(B,function(){this.on(`${S}.${T}`,"=",`${y}.${p}`)})}F=F.where(this.rawQuotedIdentifier(x),"=",this.rawQuotedIdentifier($));let O=B=>(F=F.select(v.map(z=>this.rawQuotedIdentifier(z))).limit(mm()),s.select(B).from({[S]:F})),W;switch(i){case"sqlite3":F=this.addJoinFieldCheck(F,d),W=O(this.knex.raw(`json_group_array(json_object(${j}))`));break;case"pg":W=O(this.knex.raw(`json_agg(json_build_object(${j}))`));break;case"mariadb":W=F.select(s.raw(`json_arrayagg(json_object(${j}) LIMIT ${mm()})`));break;case"mysql2":case"oracledb":W=O(this.knex.raw(`json_arrayagg(json_object(${j}))`));break;case"mssql":{let B=s.select("*").from({[w]:F.select(L.map(z=>s.ref(z[1]).as(z[0]))).limit(mm())});W=s.raw(`(SELECT ?? = (${B} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:W})}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,f=this.tableNameWithSchema(o,{alias:c,schema:s}),m=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(m,function(){for(let p of n){let E=p.fromPrimary,g=p.from;this.orOn(`${d}.${E}`,"=",`${l}.${g}`)}}).leftJoin(f,function(){for(let p of n){let E=p.toPrimary,g=p.to;this.orOn(`${c}.${E}`,`${l}.${g}`)}}):e=e.leftJoin(f,function(){for(let p of n){let E=p.from,g=p.to;this.orOn(`${d}.${E}`,"=",`${c}.${g}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[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 m=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=m}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 f=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[f]:"paginated"}));return this.addJsonRelationships(m,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())}},gm=class extends Ec{constructor(r,n=a_()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Qn(r);return i==="sqlite3"&&(s=d_(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,c_.knex)(s),a,u=new Em(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:a_()}});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 f of a)d.push(await n(f,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===wc){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(!p_(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){_s(this.getSqlClient(),r,n)}},m_=gm;var Tm={};P(Tm,{base:()=>g0});function g0(t){return{_id:It,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Sm={};P(Sm,{jsonFromCsvString:()=>y0});var h_=k(require("csvtojson"));async function y0(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let s of i){let o,a=!1;try{let u=await(0,h_.default)({ignoreEmpty:r,delimiter:s}).fromString(t);for(let[,c]of u.entries()){let l=Object.keys(c);if(o==null&&(o=l),!n&&l.length===1){a=!0;break}if(o.length!==l.length){a=!0;break}for(let d of o)(c[d]===void 0||c[d]==="")&&(c[d]=null)}if(a)continue;return u}catch{continue}}throw new Error("Unable to determine delimiter")}var _m=class{constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,s=this.controller,o=this.outputMiddlewares,a=()=>{},u=[n,...i,s,...o,a];e[r](...u)}},gc=_m;var E_=k(require("@koa/router")),_n=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),s=new gc(e,r,i);if(n.length!==0)for(let o of n)s.addMiddleware(o);return this.endpoints.push(s),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new E_.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var vo=class{constructor(){this.groups=[]}group(...e){let r=new _n;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var T0={...Fs,...ae},A0=(t={})=>{Va(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,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,USER_METADATA_PREFIX,UnexpectedError,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,csv,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