@budibase/backend-core 3.18.2 → 3.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +15 -15
- package/dist/index.js.map +4 -4
- package/dist/package.json +2 -2
- package/dist/plugins.js +1 -1
- package/dist/plugins.js.map +4 -4
- package/dist/src/cache/appMetadata.d.ts +2 -2
- package/dist/src/cache/appMetadata.js +1 -1
- package/dist/src/cache/appMetadata.js.map +1 -1
- package/dist/src/context/mainContext.d.ts +1 -1
- package/dist/src/context/mainContext.js +3 -5
- package/dist/src/context/mainContext.js.map +1 -1
- package/dist/src/db/utils.d.ts +3 -3
- package/dist/src/db/utils.js +4 -4
- package/dist/src/db/utils.js.map +1 -1
- package/dist/src/docIds/conversions.d.ts +2 -2
- package/dist/src/docIds/conversions.js.map +1 -1
- package/dist/src/events/publishers/app.d.ts +13 -13
- package/dist/src/events/publishers/app.js +1 -1
- package/dist/src/events/publishers/app.js.map +1 -1
- package/dist/src/events/publishers/serve.d.ts +3 -3
- package/dist/src/events/publishers/serve.js +1 -1
- package/dist/src/events/publishers/serve.js.map +1 -1
- package/dist/src/objectStore/objectStore.d.ts +2 -2
- package/dist/src/objectStore/objectStore.js +17 -10
- package/dist/src/objectStore/objectStore.js.map +1 -1
- package/dist/src/security/roles.d.ts +1 -1
- package/dist/src/utils/utils.d.ts +0 -1
- package/dist/src/utils/utils.js +17 -25
- package/dist/src/utils/utils.js.map +1 -1
- package/dist/tests/core/utilities/structures/apps.d.ts +2 -2
- package/dist/tests/core/utilities/structures/apps.js.map +1 -1
- package/dist/tests/core/utilities/structures/licenses.js +1 -1
- package/dist/tests/core/utilities/structures/licenses.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
"use strict";var aO=Object.create;var Qa=Object.defineProperty;var uO=Object.getOwnPropertyDescriptor;var cO=Object.getOwnPropertyNames;var lO=Object.getPrototypeOf,dO=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Qa(t,r,{get:e[r],enumerable:!0})},Zh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of cO(e))!dO.call(t,i)&&i!==r&&Qa(t,i,{get:()=>e[i],enumerable:!(n=uO(e,i))||n.enumerable});return t};var V=(t,e,r)=>(r=t!=null?aO(lO(t)):{},Zh(e||!t||!t.__esModule?Qa(r,"default",{value:t,enumerable:!0}):r,t)),pO=t=>Zh(Qa({},"__esModule",{value:!0}),t);var Og=H((ed,td)=>{"use strict";(function(t,e){typeof ed=="object"&&typeof td<"u"?td.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(ed,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 k=["th","st","nd","rd"],P=$%100;return"["+$+(k[(P-20)%10]||k[P]||k[0])+"]"}},T=function($,k,P){var q=String($);return!q||q.length>=k?$:""+Array(k+1-q.length).join(P)+$},_={s:T,z:function($){var k=-$.utcOffset(),P=Math.abs(k),q=Math.floor(P/60),O=P%60;return(k<=0?"+":"-")+T(q,2,"0")+":"+T(O,2,"0")},m:function $(k,P){if(k.date()<P.date())return-$(P,k);var q=12*(P.year()-k.year())+(P.month()-k.month()),O=k.clone().add(q,c),Y=P-O<0,W=k.clone().add(q+(Y?-1:1),c);return+(-(q+(P-O)/(Y?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",R={};R[S]=y;var E="$isDayjsObject",I=function($){return $ instanceof se||!(!$||!$[E])},B=function $(k,P,q){var O;if(!k)return S;if(typeof k=="string"){var Y=k.toLowerCase();R[Y]&&(O=Y),P&&(R[Y]=P,O=Y);var W=k.split("-");if(!O&&W.length>1)return $(W[0])}else{var ce=k.name;R[ce]=k,O=ce}return!q&&O&&(S=O),O||!q&&S},L=function($,k){if(I($))return $.clone();var P=typeof k=="object"?k:{};return P.date=$,P.args=arguments,new se(P)},F=_;F.l=B,F.i=I,F.w=function($,k){return L($,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var se=function(){function $(P){this.$L=B(P.locale,null,!0),this.parse(P),this.$x=this.$x||P.x||{},this[E]=!0}var k=$.prototype;return k.parse=function(P){this.$d=function(q){var O=q.date,Y=q.utc;if(O===null)return new Date(NaN);if(F.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 ce=W[2]-1||0,Oe=(W[7]||"0").substring(0,3);return Y?new Date(Date.UTC(W[1],ce,W[3]||1,W[4]||0,W[5]||0,W[6]||0,Oe)):new Date(W[1],ce,W[3]||1,W[4]||0,W[5]||0,W[6]||0,Oe)}}return new Date(O)}(P),this.init()},k.init=function(){var P=this.$d;this.$y=P.getFullYear(),this.$M=P.getMonth(),this.$D=P.getDate(),this.$W=P.getDay(),this.$H=P.getHours(),this.$m=P.getMinutes(),this.$s=P.getSeconds(),this.$ms=P.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==m},k.isSame=function(P,q){var O=L(P);return this.startOf(q)<=O&&O<=this.endOf(q)},k.isAfter=function(P,q){return L(P)<this.startOf(q)},k.isBefore=function(P,q){return this.endOf(q)<L(P)},k.$g=function(P,q,O){return F.u(P)?this[q]:this.set(O,P)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(P,q){var O=this,Y=!!F.u(q)||q,W=F.p(P),ce=function(hn,He){var br=F.w(O.$u?Date.UTC(O.$y,He,hn):new Date(O.$y,He,hn),O);return Y?br:br.endOf(a)},Oe=function(hn,He){return F.w(O.toDate()[hn].apply(O.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(He)),O)},Ne=this.$W,Ge=this.$M,lt=this.$D,J="set"+(this.$u?"UTC":"");switch(W){case d:return Y?ce(1,0):ce(31,11);case c:return Y?ce(1,Ge):ce(0,Ge+1);case u:var mn=this.$locale().weekStart||0,Ds=(Ne<mn?Ne+7:Ne)-mn;return ce(Y?lt-Ds:lt+(6-Ds),Ge);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()}},k.endOf=function(P){return this.startOf(P,!1)},k.$set=function(P,q){var O,Y=F.p(P),W="set"+(this.$u?"UTC":""),ce=(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)[Y],Oe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===d){var Ne=this.clone().set(p,1);Ne.$d[ce](Oe),Ne.init(),this.$d=Ne.set(p,Math.min(this.$D,Ne.daysInMonth())).$d}else ce&&this.$d[ce](Oe);return this.init(),this},k.set=function(P,q){return this.clone().$set(P,q)},k.get=function(P){return this[F.p(P)]()},k.add=function(P,q){var O,Y=this;P=Number(P);var W=F.p(q),ce=function(Ge){var lt=L(Y);return F.w(lt.date(lt.date()+Math.round(Ge*P)),Y)};if(W===c)return this.set(c,this.$M+P);if(W===d)return this.set(d,this.$y+P);if(W===a)return ce(1);if(W===u)return ce(7);var Oe=(O={},O[s]=e,O[o]=r,O[i]=t,O)[W]||1,Ne=this.$d.getTime()+P*Oe;return F.w(Ne,this)},k.subtract=function(P,q){return this.add(-1*P,q)},k.format=function(P){var q=this,O=this.$locale();if(!this.isValid())return O.invalidDate||m;var Y=P||"YYYY-MM-DDTHH:mm:ssZ",W=F.z(this),ce=this.$H,Oe=this.$m,Ne=this.$M,Ge=O.weekdays,lt=O.months,J=O.meridiem,mn=function(He,br,Cs,qa){return He&&(He[br]||He(q,Y))||Cs[br].slice(0,qa)},Ds=function(He){return F.s(ce%12||12,He,"0")},hn=J||function(He,br,Cs){var qa=He<12?"AM":"PM";return Cs?qa.toLowerCase():qa};return Y.replace(g,function(He,br){return br||function(Cs){switch(Cs){case"YY":return String(q.$y).slice(-2);case"YYYY":return F.s(q.$y,4,"0");case"M":return Ne+1;case"MM":return F.s(Ne+1,2,"0");case"MMM":return mn(O.monthsShort,Ne,lt,3);case"MMMM":return mn(lt,Ne);case"D":return q.$D;case"DD":return F.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return mn(O.weekdaysMin,q.$W,Ge,2);case"ddd":return mn(O.weekdaysShort,q.$W,Ge,3);case"dddd":return Ge[q.$W];case"H":return String(ce);case"HH":return F.s(ce,2,"0");case"h":return Ds(1);case"hh":return Ds(2);case"a":return hn(ce,Oe,!0);case"A":return hn(ce,Oe,!1);case"m":return String(Oe);case"mm":return F.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return F.s(q.$s,2,"0");case"SSS":return F.s(q.$ms,3,"0");case"Z":return W}return null}(He)||W.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(P,q,O){var Y,W=this,ce=F.p(q),Oe=L(P),Ne=(Oe.utcOffset()-this.utcOffset())*e,Ge=this-Oe,lt=function(){return F.m(W,Oe)};switch(ce){case d:Y=lt()/12;break;case c:Y=lt();break;case l:Y=lt()/3;break;case u:Y=(Ge-Ne)/6048e5;break;case a:Y=(Ge-Ne)/864e5;break;case o:Y=Ge/r;break;case s:Y=Ge/e;break;case i:Y=Ge/t;break;default:Y=Ge}return O?Y:F.a(Y)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return R[this.$L]},k.locale=function(P,q){if(!P)return this.$L;var O=this.clone(),Y=B(P,q,!0);return Y&&(O.$L=Y),O},k.clone=function(){return F.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},$}(),Xt=se.prototype;return L.prototype=Xt,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",p]].forEach(function($){Xt[$[1]]=function(k){return this.$g(k,$[0],$[1])}}),L.extend=function($,k){return $.$i||($(k,se,L),$.$i=!0),L},L.locale=B,L.isDayjs=I,L.unix=function($){return L(1e3*$)},L.en=R[S],L.Ls=R,L.p={},L})});var wt=H(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.Err=Je.Valid=Je.err=Je.valid=void 0;var Kx=t=>new du(t);Je.valid=Kx;var Yx=t=>new pu(t);Je.err=Yx;var du=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,Je.valid)(e(this.value))}mapErr(e){return(0,Je.valid)(this.value)}};Je.Valid=du;var pu=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,Je.err)(this.error)}mapErr(e){return(0,Je.err)(e(this.error))}};Je.Err=pu});var bt=H(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0})});var Mr=H(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});jt();var ue=wt();bt();var Jx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],zx=["sun","mon","tue","wed","thu","fri","sat"],Zx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ms=(t,e,r)=>{if(e==="months"&&r.useAliases&&Jx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&zx.indexOf(t.toLowerCase())!==-1)return(0,ue.valid)(!0);let n=Number(t);if(isNaN(n))return(0,ue.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,ue.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,ue.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,ue.valid)(!0)},Xx=(t,e,r)=>{if(t==="*")return Zx(e,r)?(0,ue.valid)(!0):(0,ue.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,ue.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,ue.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,ue.valid)(!0):Ms(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,ue.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,ue.valid)(!0):Ms(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,ue.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,ue.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,ue.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ms(n,e,r)}return Ms(t,e,r)},Dg=(t,e,r,n)=>t==="*"?(0,ue.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,ue.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,ue.valid)(!0):Ms(t,e,r),eR=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,ue.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Xx(n[0],e,r);if(n.length===2){let i=Dg(n[0],e,r,0),s=Dg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,ue.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,ue.valid)(!0)}return(0,ue.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},tR=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,ue.err)(`List element '${t}' is not valid. (More than one '/')`);let i=eR(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,ue.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,ue.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,ue.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,ue.valid)(!0)},rR=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,ue.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,ue.valid)(!0):(0,ue.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,ue.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(tR(o,e,r))}),i.every(o=>o.isValid()))return(0,ue.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,ue.err)(s)};sd.default=rR});var Cg=H(ks=>{"use strict";var nR=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});jt();var iR=wt(),sR=nR(Mr());bt();var oR=(t,e)=>{if(!t.seconds)return(0,iR.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,sR.default)(r,"seconds",e)};ks.default=oR});var vg=H(Fs=>{"use strict";var aR=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});jt();var uR=wt(),cR=aR(Mr());bt();var lR=(t,e)=>{if(!t.minutes)return(0,uR.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,cR.default)(r,"minutes",e)};Fs.default=lR});var Ng=H(Bs=>{"use strict";var dR=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});jt();var pR=wt(),fR=dR(Mr());bt();var mR=(t,e)=>{if(!t.hours)return(0,pR.err)(["hours field is undefined."]);let{hours:r}=t;return(0,fR.default)(r,"hours",e)};Bs.default=mR});var Pg=H(Vs=>{"use strict";var hR=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});jt();var Gs=wt(),gR=hR(Mr());bt();var yR=(t,e)=>{if(!t.daysOfMonth)return(0,Gs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&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.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Gs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Gs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,gR.default)(r,"daysOfMonth",e)};Vs.default=yR});var Lg=H($s=>{"use strict";var ER=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});jt();var TR=wt(),AR=ER(Mr());bt();var SR=(t,e)=>{if(!t.months)return(0,TR.err)(["months field is undefined."]);let{months:r}=t;return(0,AR.default)(r,"months",e)};$s.default=SR});var Ug=H(qs=>{"use strict";var _R=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});jt();var Ws=wt(),IR=_R(Mr());bt();var OR=(t,e)=>{if(!t.daysOfWeek)return(0,Ws.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ws.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ws.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ws.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ws.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,IR.default)(r,"daysOfWeek",e)};qs.default=OR});var Mg=H(Qs=>{"use strict";var xR=Qs&&Qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qs,"__esModule",{value:!0});jt();var RR=wt(),wR=xR(Mr());bt();var bR=(t,e)=>{if(!t.years)return(0,RR.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,wR.default)(r,"years",e)};Qs.default=bR});var Gg=H((Aj,Bg)=>{"use strict";var od;try{od=Map}catch{}var ad;try{ad=Set}catch{}function kg(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(Fg);if(od&&t instanceof od)return new Map(Array.from(t.entries()));if(ad&&t instanceof ad)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]:kg(t[i],e,r)}return n}return t}function Fg(t){return kg(t,[],[])}Bg.exports=Fg});var js=H(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=UR;var DR=Object.prototype.toString,CR=Error.prototype.toString,vR=RegExp.prototype.toString,NR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",PR=/^Symbol\((.*)\)(.*)$/;function LR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Vg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return LR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return NR.call(t).replace(PR,"Symbol($1)");let n=DR.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+CR.call(t)+"]":n==="RegExp"?vR.call(t):null}function UR(t,e){let r=Vg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Vg(this[n],e);return s!==null?s:i},2)}});var or=H(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 $g=MR(js());function MR(t){return t&&t.__esModule?t:{default:t}}var Wg={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,$g.default)(r,!0)}\``+(i?` (cast from the value \`${(0,$g.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Pe.mixed=Wg;var qg={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=qg;var Qg={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=Qg;var jg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Pe.date=jg;var Hg={isValue:"${path} field must be ${value}"};Pe.boolean=Hg;var Kg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Pe.object=Kg;var Yg={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=Yg;var kR=Object.assign(Object.create(null),{mixed:Wg,string:qg,number:Qg,date:jg,object:Kg,array:Yg,boolean:Hg});Pe.default=kR});var Li=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var FR=t=>t&&t.__isYupSchema__;fu.default=FR});var zg=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var BR=Jg(require("lodash/has")),GR=Jg(Li());function Jg(t){return t&&t.__esModule?t:{default:t}}var cd=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,BR.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,GR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},VR=cd;mu.default=VR});var dd=H(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=$R;function $R(t){return t==null?[]:[].concat(t)}});var Un=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var WR=Zg(js()),qR=Zg(dd());function Zg(t){return t&&t.__esModule?t:{default:t}}function pd(){return pd=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},pd.apply(this,arguments)}var QR=/\$\{\s*(\w+)\s*\}/g,fd=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=pd({},r,{path:n})),typeof e=="string"?e.replace(QR,(i,s)=>(0,WR.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,qR.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)}};hu.default=fd});var gu=H(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=KR;var md=jR(Un());function jR(t){return t&&t.__esModule?t:{default:t}}var HR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function KR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=HR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new md.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(!md.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 md.default(o,s,u),s);return}c(null,s)}})}}});var Hs=H((bj,ny)=>{"use strict";function Mn(t){this._maxSize=t,this.clear()}Mn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Mn.prototype.get=function(t){return this._values[t]};Mn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var YR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,ry=/^\d+$/,JR=/^\d/,zR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,ZR=/^\s*(['"]?)(.*?)(\1)\s*$/,Ed=512,Xg=new Mn(Ed),ey=new Mn(Ed),ty=new Mn(Ed);ny.exports={Cache:Mn,split:yd,normalizePath:gd,setter:function(t){var e=gd(t);return ey.get(t)||ey.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=gd(t);return ty.get(t)||ty.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+(Td(r)||ry.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){XR(Array.isArray(t)?t:yd(t),e,r)}};function gd(t){return Xg.get(t)||Xg.set(t,yd(t).map(function(e){return e.replace(ZR,"$2")}))}function yd(t){return t.match(YR)||[""]}function XR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(rw(i)&&(i='"'+i+'"'),a=Td(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Td(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function ew(t){return t.match(JR)&&!t.match(ry)}function tw(t){return zR.test(t)}function rw(t){return!Td(t)&&(ew(t)||tw(t))}});var kn=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=iw;Ys.default=void 0;var nw=Hs(),yu={context:"$",value:"."};function iw(t,e){return new Ks(t,e)}var Ks=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]===yu.context,this.isValue=this.key[0]===yu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?yu.context:this.isValue?yu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,nw.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}};Ys.default=Ks;Ks.prototype.__isYupRef=!0});var iy=H(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.default=uw;var sw=Ad(require("lodash/mapValues")),Eu=Ad(Un()),ow=Ad(kn());function Ad(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=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},Tu.apply(this,arguments)}function aw(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 uw(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=aw(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 ow.default.isRef(I)?I.getValue(i,g,y):I}function _(I={}){let B=(0,sw.default)(Tu({value:i,originalValue:u,label:o,path:I.path||s},m,I.params),T),L=new Eu.default(Eu.default.formatError(I.message||f,B),i,B.path,I.type||d);return L.params=B,L}let S=Tu({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=>{Eu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let R;try{var E;if(R=p.call(S,i,S),typeof((E=R)==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}Eu.default.isError(R)?n(R):R?n(null,R):n(_())}return e.OPTIONS=t,e}});var _d=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.getIn=sy;Js.default=void 0;var cw=Hs(),lw=t=>t.substr(0,t.length-1).substr(1);function sy(t,e,r,n=r){let i,s,o;return e?((0,cw.forEach)(e,(a,u,c)=>{let l=u?lw(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 dw=(t,e,r,n)=>sy(t,e,r,n).schema,pw=dw;Js.default=pw});var ay=H(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.default=void 0;var oy=fw(kn());function fw(t){return t&&t.__esModule?t:{default:t}}var Id=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){oy.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){oy.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}};Au.default=Id});var ur=H(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.default=void 0;var uy=ar(Gg()),Ui=or(),mw=ar(zg()),cy=ar(gu()),Su=ar(iy()),ly=ar(js()),hw=ar(kn()),gw=_d(),yw=ar(dd()),dy=ar(Un()),py=ar(ay());function ar(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 Dt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new py.default,this._blacklist=new py.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ui.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,uy.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,ly.default)(e),o=(0,ly.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 m_=Object.create;var Po=Object.defineProperty;var h_=Object.getOwnPropertyDescriptor;var E_=Object.getOwnPropertyNames;var g_=Object.getPrototypeOf,y_=Object.prototype.hasOwnProperty;var G=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)Po(t,r,{get:e[r],enumerable:!0})},Im=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of E_(e))!y_.call(t,i)&&i!==r&&Po(t,i,{get:()=>e[i],enumerable:!(n=h_(e,i))||n.enumerable});return t};var k=(t,e,r)=>(r=t!=null?m_(g_(t)):{},Im(e||!t||!t.__esModule?Po(r,"default",{value:t,enumerable:!0}):r,t)),T_=t=>Im(Po({},"__esModule",{value:!0}),t);var Um=G((wc,Dc)=>{"use strict";(function(t,e){typeof wc=="object"&&typeof Dc<"u"?Dc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(wc,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,yi=(ge<vr?ge+7:ge)-vr;return z(W?Qe-yi:Qe+(6-yi),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,Ti,vo){return xe&&(xe[zt]||xe($,W))||Ti[zt].slice(0,vo)},yi=function(xe){return L.s(z%12||12,xe,"0")},Pr=q||function(xe,zt,Ti){var vo=xe<12?"AM":"PM";return Ti?vo.toLowerCase():vo};return W.replace(E,function(xe,zt){return zt||function(Ti){switch(Ti){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 yi(1);case"hh":return yi(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 B_=t=>new Go(t);ve.valid=B_;var $_=t=>new Wo(t);ve.err=$_;var Go=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=Go;var Wo=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=Wo});var it=G(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0})});var er=G(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});Tt();var H=nt();it();var V_=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],G_=["sun","mon","tue","wed","thu","fri","sat"],W_=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ii=(t,e,r)=>{if(e==="months"&&r.useAliases&&V_.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&G_.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)},q_=(t,e,r)=>{if(t==="*")return W_(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):Ii(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):Ii(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."):Ii(n,e,r)}return Ii(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):Ii(t,e,r),Q_=(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 q_(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)")},K_=(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=Q_(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)},j_=(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(K_(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)};xc.default=j_});var Vm=G(Oi=>{"use strict";var Y_=Oi&&Oi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Oi,"__esModule",{value:!0});Tt();var H_=nt(),z_=Y_(er());it();var J_=(t,e)=>{if(!t.seconds)return(0,H_.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,z_.default)(r,"seconds",e)};Oi.default=J_});var Gm=G(wi=>{"use strict";var Z_=wi&&wi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wi,"__esModule",{value:!0});Tt();var X_=nt(),eI=Z_(er());it();var tI=(t,e)=>{if(!t.minutes)return(0,X_.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,eI.default)(r,"minutes",e)};wi.default=tI});var Wm=G(Di=>{"use strict";var rI=Di&&Di.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Di,"__esModule",{value:!0});Tt();var nI=nt(),iI=rI(er());it();var sI=(t,e)=>{if(!t.hours)return(0,nI.err)(["hours field is undefined."]);let{hours:r}=t;return(0,iI.default)(r,"hours",e)};Di.default=sI});var qm=G(bi=>{"use strict";var oI=bi&&bi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bi,"__esModule",{value:!0});Tt();var Ri=nt(),aI=oI(er());it();var uI=(t,e)=>{if(!t.daysOfMonth)return(0,Ri.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ri.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ri.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ri.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ri.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,aI.default)(r,"daysOfMonth",e)};bi.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 lI=nt(),dI=cI(er());it();var fI=(t,e)=>{if(!t.months)return(0,lI.err)(["months field is undefined."]);let{months:r}=t;return(0,dI.default)(r,"months",e)};Ci.default=fI});var Km=G(vi=>{"use strict";var pI=vi&&vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vi,"__esModule",{value:!0});Tt();var xi=nt(),mI=pI(er());it();var hI=(t,e)=>{if(!t.daysOfWeek)return(0,xi.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,xi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,xi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,xi.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,xi.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,mI.default)(r,"daysOfWeek",e)};vi.default=hI});var jm=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 gI=nt(),yI=EI(er());it();var TI=(t,e)=>{if(!t.years)return(0,gI.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,yI.default)(r,"years",e)};Pi.default=TI});var Jm=G((AM,zm)=>{"use strict";var vc;try{vc=Map}catch{}var Pc;try{Pc=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(vc&&t instanceof vc)return new Map(Array.from(t.entries()));if(Pc&&t instanceof Pc)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 Ni=G(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});Nc.default=DI;var AI=Object.prototype.toString,SI=Error.prototype.toString,_I=RegExp.prototype.toString,II=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",OI=/^Symbol\((.*)\)(.*)$/;function wI(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 wI(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return II.call(t).replace(OI,"Symbol($1)");let n=AI.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+SI.call(t)+"]":n==="RegExp"?_I.call(t):null}function DI(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=RI(Ni());function RI(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 bI=Object.assign(Object.create(null),{mixed:eh,string:th,number:rh,date:nh,object:sh,array:oh,boolean:ih});ye.default=bI});var wn=G(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.default=void 0;var CI=t=>t&&t.__isYupSchema__;qo.default=CI});var uh=G(Qo=>{"use strict";Object.defineProperty(Qo,"__esModule",{value:!0});Qo.default=void 0;var xI=ah(require("lodash/has")),vI=ah(wn());function ah(t){return t&&t.__esModule?t:{default:t}}var Uc=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,xI.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,vI.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},PI=Uc;Qo.default=PI});var Mc=G(Lc=>{"use strict";Object.defineProperty(Lc,"__esModule",{value:!0});Lc.default=NI;function NI(t){return t==null?[]:[].concat(t)}});var Ur=G(Ko=>{"use strict";Object.defineProperty(Ko,"__esModule",{value:!0});Ko.default=void 0;var UI=ch(Ni()),LI=ch(Mc());function ch(t){return t&&t.__esModule?t:{default:t}}function kc(){return kc=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},kc.apply(this,arguments)}var MI=/\$\{\s*(\w+)\s*\}/g,Fc=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=kc({},r,{path:n})),typeof e=="string"?e.replace(MI,(i,s)=>(0,UI.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,LI.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)}};Ko.default=Fc});var jo=G($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});$c.default=BI;var Bc=kI(Ur());function kI(t){return t&&t.__esModule?t:{default:t}}var FI=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function BI(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=FI(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Bc.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(!Bc.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 Bc.default(o,s,u),s);return}c(null,s)}})}}});var Ui=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 $I=/[^.^\]^[]+|(?=\[\]|\.\.)/g,ph=/^\d+$/,VI=/^\d/,GI=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,WI=/^\s*(['"]?)(.*?)(\1)\s*$/,Wc=512,lh=new Lr(Wc),dh=new Lr(Wc),fh=new Lr(Wc);mh.exports={Cache:Lr,split:Gc,normalizePath:Vc,setter:function(t){var e=Vc(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=Vc(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){qI(Array.isArray(t)?t:Gc(t),e,r)}};function Vc(t){return lh.get(t)||lh.set(t,Gc(t).map(function(e){return e.replace(WI,"$2")}))}function Gc(t){return t.match($I)||[""]}function qI(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(jI(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 QI(t){return t.match(VI)&&!t.match(ph)}function KI(t){return GI.test(t)}function jI(t){return!qc(t)&&(QI(t)||KI(t))}});var Mr=G(Mi=>{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.create=HI;Mi.default=void 0;var YI=Ui(),Yo={context:"$",value:"."};function HI(t,e){return new Li(t,e)}var Li=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]===Yo.context,this.isValue=this.key[0]===Yo.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?Yo.context:this.isValue?Yo.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,YI.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}};Mi.default=Li;Li.prototype.__isYupRef=!0});var hh=G(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.default=XI;var zI=Qc(require("lodash/mapValues")),Ho=Qc(Ur()),JI=Qc(Mr());function Qc(t){return t&&t.__esModule?t:{default:t}}function zo(){return zo=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},zo.apply(this,arguments)}function ZI(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 XI(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=ZI(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 JI.default.isRef(I)?I.getValue(i,E,g):I}function _(I={}){let M=(0,zI.default)(zo({value:i,originalValue:u,label:o,path:I.path||s},m,I.params),T),v=new Ho.default(Ho.default.formatError(I.message||p,M),i,M.path,I.type||d);return v.params=M,v}let S=zo({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=>{Ho.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}Ho.default.isError(w)?n(w):w?n(null,w):n(_())}return e.OPTIONS=t,e}});var jc=G(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.getIn=Eh;ki.default=void 0;var eO=Ui(),tO=t=>t.substr(0,t.length-1).substr(1);function Eh(t,e,r,n=r){let i,s,o;return e?((0,eO.forEach)(e,(a,u,c)=>{let l=u?tO(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 rO=(t,e,r,n)=>Eh(t,e,r,n).schema,nO=rO;ki.default=nO});var yh=G(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.default=void 0;var gh=iO(Mr());function iO(t){return t&&t.__esModule?t:{default:t}}var Yc=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}};Jo.default=Yc});var xt=G(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.default=void 0;var Th=Ct(Jm()),Dn=bt(),sO=Ct(uh()),Ah=Ct(jo()),Zo=Ct(hh()),Sh=Ct(Ni()),oO=Ct(Mr()),aO=jc(),uO=Ct(Mc()),_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,cy.default)({args:d,value:l,path:s,sync:i,tests:p,endEarly:c},m=>{if(m)return void n(m,l);(0,cy.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(dy.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(dy.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,uy.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=Ui.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ui.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=Ui.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Su.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,yw.default)(e).map(s=>new hw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new mw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Su.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=Ui.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,Su.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=Ui.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,Su.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)}}};_u.default=Dt;Dt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Dt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,gw.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},n,{parent:i,path:e}))};for(let t of["equals","is"])Dt.prototype[t]=Dt.prototype.oneOf;for(let t of["not","nope"])Dt.prototype[t]=Dt.prototype.notOneOf;Dt.prototype.optional=Dt.prototype.notRequired});var my=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=fy;zs.default=void 0;var Ew=Tw(ur());function Tw(t){return t&&t.__esModule?t:{default:t}}var Od=Ew.default,Aw=Od;zs.default=Aw;function fy(){return new Od}fy.prototype=Od.prototype});var Mi=H(Iu=>{"use strict";Object.defineProperty(Iu,"__esModule",{value:!0});Iu.default=void 0;var Sw=t=>t==null;Iu.default=Sw});var Ty=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Ey;Xs.default=void 0;var _w=yy(ur()),hy=or(),gy=yy(Mi());function yy(t){return t&&t.__esModule?t:{default:t}}function Ey(){return new Zs}var Zs=class extends _w.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=hy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,gy.default)(r)||r===!0}})}isFalse(e=hy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,gy.default)(r)||r===!1}})}};Xs.default=Zs;Ey.prototype=Zs.prototype});var _y=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Sy;to.default=void 0;var Ht=or(),cr=Ay(Mi()),Iw=Ay(ur());function Ay(t){return t&&t.__esModule?t:{default:t}}var Ow=/^((([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,xw=/^((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,Rw=/^(?:[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,ww=t=>(0,cr.default)(t)||t===t.trim(),bw={}.toString();function Sy(){return new eo}var eo=class extends Iw.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===bw?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=Ht.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,cr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Ht.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,cr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Ht.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,cr.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||Ht.string.matches,params:{regex:e},test:o=>(0,cr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Ht.string.email){return this.matches(Ow,{name:"email",message:e,excludeEmptyString:!0})}url(e=Ht.string.url){return this.matches(xw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Ht.string.uuid){return this.matches(Rw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Ht.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:ww})}lowercase(e=Ht.string.lowercase){return this.transform(r=>(0,cr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,cr.default)(r)||r===r.toLowerCase()})}uppercase(e=Ht.string.uppercase){return this.transform(r=>(0,cr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,cr.default)(r)||r===r.toUpperCase()})}};to.default=eo;Sy.prototype=eo.prototype});var xy=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=Oy;no.default=void 0;var Fn=or(),Bn=Iy(Mi()),Dw=Iy(ur());function Iy(t){return t&&t.__esModule?t:{default:t}}var Cw=t=>t!=+t;function Oy(){return new ro}var ro=class extends Dw.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"&&!Cw(e)}min(e,r=Fn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Bn.default)(n)||n>=this.resolve(e)}})}max(e,r=Fn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Bn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Fn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Bn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Fn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Bn.default)(n)||n>this.resolve(e)}})}positive(e=Fn.number.positive){return this.moreThan(0,e)}negative(e=Fn.number.negative){return this.lessThan(0,e)}integer(e=Fn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Bn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Bn.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,Bn.default)(i)?i:Math[e](i))}};no.default=ro;Oy.prototype=ro.prototype});var Ry=H(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});xd.default=Nw;var vw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Nw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=vw.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 Dy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=wd;io.default=void 0;var Pw=Ou(Ry()),wy=or(),by=Ou(Mi()),Lw=Ou(kn()),Uw=Ou(ur());function Ou(t){return t&&t.__esModule?t:{default:t}}var Rd=new Date(""),Mw=t=>Object.prototype.toString.call(t)==="[object Date]";function wd(){return new ki}var ki=class extends Uw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Pw.default)(e),isNaN(e)?Rd:new Date(e))})})}_typeCheck(e){return Mw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Lw.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=wy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,by.default)(i)||i>=this.resolve(n)}})}max(e,r=wy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,by.default)(i)||i<=this.resolve(n)}})}};io.default=ki;ki.INVALID_DATE=Rd;wd.prototype=ki.prototype;wd.INVALID_DATE=Rd});var vy=H((Vj,bd)=>{"use strict";bd.exports=function(t){return Cy(kw(t),t)};bd.exports.array=Cy;function Cy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=Fw(e),a=Bw(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 kw(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 Fw(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 Bw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Ny=H(Dd=>{"use strict";Object.defineProperty(Dd,"__esModule",{value:!0});Dd.default=Qw;var Gw=xu(require("lodash/has")),Vw=xu(vy()),$w=Hs(),Ww=xu(kn()),qw=xu(Li());function xu(t){return t&&t.__esModule?t:{default:t}}function Qw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,$w.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Gw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Ww.default.isRef(o)&&o.isSibling?i(o.path,s):(0,qw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Vw.default.array(n,r).reverse()}});var Ly=H(Cd=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});Cd.default=jw;function Py(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 jw(t){return(e,r)=>Py(t,e)-Py(t,r)}});var Vy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=Gy;oo.default=void 0;var Uy=Kt(require("lodash/has")),My=Kt(require("lodash/snakeCase")),Hw=Kt(require("lodash/camelCase")),Kw=Kt(require("lodash/mapKeys")),Yw=Kt(require("lodash/mapValues")),Jw=Hs(),ky=or(),zw=Kt(Ny()),By=Kt(Ly()),Zw=Kt(gu()),Xw=Kt(Un()),vd=Kt(ur());function Kt(t){return t&&t.__esModule?t:{default:t}}function Fi(){return Fi=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},Fi.apply(this,arguments)}var Fy=t=>Object.prototype.toString.call(t)==="[object Object]";function eb(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var tb=(0,By.default)([]),so=class extends vd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=tb,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 Fy(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=Fi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let p=s[d],m=(0,Uy.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(!Xw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!Fy(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],Fi({},r,{path:y,from:o,strict:!0,parent:d,originalValue:a[m]}),g);return}g(null)});(0,Zw.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=Fi({},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 vd.default&&s instanceof vd.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,By.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,zw.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,Jw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Uy.default)(s,e)&&(o=Fi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=ky.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=eb(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=ky.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Kw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Hw.default)}snakeCase(){return this.transformKeys(My.default)}constantCase(){return this.transformKeys(e=>(0,My.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Yw.default)(this.fields,r=>r.describe()),e}};oo.default=so;function Gy(t){return new so(t)}Gy.prototype=so.prototype});var Wy=H(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.create=$y;uo.default=void 0;var Nd=Bi(Mi()),rb=Bi(Li()),nb=Bi(js()),Pd=or(),ib=Bi(gu()),sb=Bi(Un()),ob=Bi(ur());function Bi(t){return t&&t.__esModule?t:{default:t}}function Ru(){return Ru=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},Ru.apply(this,arguments)}function $y(t){return new ao(t)}var ao=class extends ob.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,Ru({},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(!sb.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=Ru({},r,{path:_,strict:!0,parent:f,index:y,originalValue:p[y]});g[y]=(R,E)=>c.validate(T,S,E)}(0,ib.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,rb.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,nb.default)(e));return r.innerType=e,r}length(e,r=Pd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Nd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Pd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Nd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Pd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Nd.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)}};uo.default=ao;$y.prototype=ao.prototype});var qy=H(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.create=cb;co.default=void 0;var ab=ub(Li());function ub(t){return t&&t.__esModule?t:{default:t}}function cb(t){return new wu(t)}var wu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,ab.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)}},lb=wu;co.default=lb});var Qy=H(Ld=>{"use strict";Object.defineProperty(Ld,"__esModule",{value:!0});Ld.default=fb;var db=pb(or());function pb(t){return t&&t.__esModule?t:{default:t}}function fb(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{db.default[e][r]=t[e][r]})})}});var Md=H(he=>{"use strict";Object.defineProperty(he,"__esModule",{value:!0});he.addMethod=Ab;Object.defineProperty(he,"MixedSchema",{enumerable:!0,get:function(){return jy.default}});Object.defineProperty(he,"mixed",{enumerable:!0,get:function(){return jy.create}});Object.defineProperty(he,"BooleanSchema",{enumerable:!0,get:function(){return Ud.default}});Object.defineProperty(he,"bool",{enumerable:!0,get:function(){return Ud.create}});Object.defineProperty(he,"boolean",{enumerable:!0,get:function(){return Ud.create}});Object.defineProperty(he,"StringSchema",{enumerable:!0,get:function(){return Hy.default}});Object.defineProperty(he,"string",{enumerable:!0,get:function(){return Hy.create}});Object.defineProperty(he,"NumberSchema",{enumerable:!0,get:function(){return Ky.default}});Object.defineProperty(he,"number",{enumerable:!0,get:function(){return Ky.create}});Object.defineProperty(he,"DateSchema",{enumerable:!0,get:function(){return Yy.default}});Object.defineProperty(he,"date",{enumerable:!0,get:function(){return Yy.create}});Object.defineProperty(he,"ObjectSchema",{enumerable:!0,get:function(){return Jy.default}});Object.defineProperty(he,"object",{enumerable:!0,get:function(){return Jy.create}});Object.defineProperty(he,"ArraySchema",{enumerable:!0,get:function(){return zy.default}});Object.defineProperty(he,"array",{enumerable:!0,get:function(){return zy.create}});Object.defineProperty(he,"ref",{enumerable:!0,get:function(){return mb.create}});Object.defineProperty(he,"lazy",{enumerable:!0,get:function(){return hb.create}});Object.defineProperty(he,"ValidationError",{enumerable:!0,get:function(){return gb.default}});Object.defineProperty(he,"reach",{enumerable:!0,get:function(){return yb.default}});Object.defineProperty(he,"isSchema",{enumerable:!0,get:function(){return Zy.default}});Object.defineProperty(he,"setLocale",{enumerable:!0,get:function(){return Eb.default}});Object.defineProperty(he,"BaseSchema",{enumerable:!0,get:function(){return Tb.default}});var jy=Gn(my()),Ud=Gn(Ty()),Hy=Gn(_y()),Ky=Gn(xy()),Yy=Gn(Dy()),Jy=Gn(Vy()),zy=Gn(Wy()),mb=kn(),hb=qy(),gb=lo(Un()),yb=lo(_d()),Zy=lo(Li()),Eb=lo(Qy()),Tb=lo(ur());function lo(t){return t&&t.__esModule?t:{default:t}}function Xy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Xy=function(){return t},t}function Gn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Xy();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 Ab(t,e,r){if(!t||!(0,Zy.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 eE=H(Fd=>{"use strict";Object.defineProperty(Fd,"__esModule",{value:!0});var kd=Bd();Fd.default=()=>{(0,kd.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,kd.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,kd.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 Bd=H(Le=>{"use strict";var Sb=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]}),_b=Le&&Le.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ib=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)&&Sb(e,t,r);return _b(e,t),e},Ob=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=Ib(Md());Md();var po=wt(),xb=Ob(eE());bt();var Vn={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},tE=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(),Rb=t=>Vn[t]?(0,po.valid)(Vn[t]):(0,po.err)(`Option preset '${t}' not found.`);Le.getOptionPreset=Rb;var wb=()=>Vn;Le.getOptionPresets=wb;var bb=(t,e)=>{Vn[t]=tE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Le.registerOptionPreset=bb;var Db=t=>{var e,r,n,i,s,o,a,u,c,l,d,p,m,f,g,y,T,_,S,R;try{(0,xb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Vn[t.preset])return(0,po.err)([`Option preset ${t.preset} does not exist.`]);E=Vn[t.preset]}else E=t.preset;else E=Vn.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:(R=E.years.upperLimit)!==null&&R!==void 0?R:E.years.maxValue}}),t.override),L=b.object({presetId:b.string().required(),preset:tE.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,po.valid)(L)}catch(E){return(0,po.err)(E.errors)}};Le.validateOptions=Db});var jt=H((fo,Vd)=>{"use strict";var Wn=fo&&fo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fo,"__esModule",{value:!0});var $n=wt(),Cb=Wn(Cg()),vb=Wn(vg()),Nb=Wn(Ng()),Pb=Wn(Pg()),Lb=Wn(Lg()),Ub=Wn(Ug()),Mb=Wn(Mg()),kb=Bd();bt();var Fb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,$n.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,$n.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,$n.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,$n.valid)(n)},Gd=(t,e={})=>{let r=(0,kb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Fb(t,n);if(i.isError())return(0,$n.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Cb.default)(s,n)),o.push((0,vb.default)(s,n)),o.push((0,Nb.default)(s,n)),o.push((0,Pb.default)(s,n)),o.push((0,Lb.default)(s,n)),o.push((0,Ub.default)(s,n)),n.useYears&&o.push((0,Mb.default)(s,n)),o.every(u=>u.isValid()))return(0,$n.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,$n.err)(a)};fo.default=Gd;Vd.exports=Gd;Vd.exports.default=Gd});var vT=H(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});var dr=class extends Error{},zd=class extends dr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Zd=class extends dr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Xd=class extends dr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Br=class extends dr{},Uu=class extends dr{constructor(e){super(`Invalid unit ${e}`)}},Ue=class extends dr{},Yt=class extends dr{constructor(){super("Zone is an abstract class")}},v="numeric",Nt="short",it="long",Mu={year:v,month:v,day:v},NE={year:v,month:Nt,day:v},Bb={year:v,month:Nt,day:v,weekday:Nt},PE={year:v,month:it,day:v},LE={year:v,month:it,day:v,weekday:it},UE={hour:v,minute:v},ME={hour:v,minute:v,second:v},kE={hour:v,minute:v,second:v,timeZoneName:Nt},FE={hour:v,minute:v,second:v,timeZoneName:it},BE={hour:v,minute:v,hourCycle:"h23"},GE={hour:v,minute:v,second:v,hourCycle:"h23"},VE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:Nt},$E={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:it},WE={year:v,month:v,day:v,hour:v,minute:v},qE={year:v,month:v,day:v,hour:v,minute:v,second:v},QE={year:v,month:Nt,day:v,hour:v,minute:v},jE={year:v,month:Nt,day:v,hour:v,minute:v,second:v},Gb={year:v,month:Nt,day:v,weekday:Nt,hour:v,minute:v},HE={year:v,month:it,day:v,hour:v,minute:v,timeZoneName:Nt},KE={year:v,month:it,day:v,hour:v,minute:v,second:v,timeZoneName:Nt},YE={year:v,month:it,day:v,weekday:it,hour:v,minute:v,timeZoneName:it},JE={year:v,month:it,day:v,weekday:it,hour:v,minute:v,second:v,timeZoneName:it},Vr=class{get type(){throw new Yt}get name(){throw new Yt}get ianaName(){return this.name}get isUniversal(){throw new Yt}offsetName(e,r){throw new Yt}formatOffset(e,r){throw new Yt}offset(e){throw new Yt}equals(e){throw new Yt}get isValid(){throw new Yt}},$d=null,To=class t extends Vr{static get instance(){return $d===null&&($d=new t),$d}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return aT(e,r,n)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},ep=new Map;function Vb(t){let e=ep.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"}),ep.set(t,e)),e}var $b={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Wb(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 qb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=$b[s];s==="era"?n[a]=o:z(a)||(n[a]=parseInt(o,10))}return n}var Wd=new Map,pr=class t extends Vr{static create(e){let r=Wd.get(e);return r===void 0&&Wd.set(e,r=new t(e)),r}static resetCache(){Wd.clear(),ep.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 aT(e,r,n,this.name)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=Vb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?qb(n,r):Wb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let p=Wu({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}},rE={};function Qb(t,e={}){let r=JSON.stringify([t,e]),n=rE[r];return n||(n=new Intl.ListFormat(t,e),rE[r]=n),n}var tp=new Map;function rp(t,e={}){let r=JSON.stringify([t,e]),n=tp.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),tp.set(r,n)),n}var np=new Map;function jb(t,e={}){let r=JSON.stringify([t,e]),n=np.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),np.set(r,n)),n}var ip=new Map;function Hb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=ip.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(t,e),ip.set(i,s)),s}var ho=null;function Kb(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}var sp=new Map;function zE(t){let e=sp.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),sp.set(t,e)),e}var op=new Map;function Yb(t){let e=op.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...ZE,...e}),op.set(t,e)}return e}function Jb(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=rp(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=rp(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function zb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Zb(t){let e=[];for(let r=1;r<=12;r++){let n=Ae.utc(2009,r,1);e.push(t(n))}return e}function Xb(t){let e=[];for(let r=1;r<=7;r++){let n=Ae.utc(2016,11,13+r);e.push(t(n))}return e}function bu(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}function eD(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||zE(t.locale).numberingSystem==="latn"}var ap=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=jb(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):Ep(e,3);return Re(r,this.padTo)}}},up=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&&pr.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=rp(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()}},cp=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&sT()&&(this.rtf=Hb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):SD(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},ZE={firstDay:1,minimalDays:4,weekend:[6,7]},pe=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||ge.defaultLocale,a=o||(s?"en-US":Kb()),u=r||ge.defaultNumberingSystem,c=n||ge.defaultOutputCalendar,l=dp(i)||ge.defaultWeekSettings;return new t(a,u,c,l,o)}static resetCache(){ho=null,tp.clear(),np.clear(),ip.clear(),sp.clear(),op.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]=Jb(e);this.locale=o,this.numberingSystem=r||a||null,this.outputCalendar=n||u||null,this.weekSettings=i,this.intl=zb(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=eD(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,dp(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 bu(this,e,lT,()=>{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]=Zb(o)}return this.monthsCache[s][e]})}weekdays(e,r=!1){return bu(this,e,fT,()=>{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]=Xb(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return bu(this,void 0,()=>mT,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ae.utc(2016,11,13,9),Ae.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return bu(this,e,hT,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ae.utc(-40,1,1),Ae.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 ap(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new up(e,this.intl,r)}relFormatter(e={}){return new cp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Qb(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||zE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:oT()?Yb(this.locale):ZE}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})`}},qd=null,st=class t extends Vr{static get utcInstance(){return qd===null&&(qd=new t(0)),qd}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(qu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Eo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Eo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Eo(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}},ku=class extends Vr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Fr(t,e){if(z(t)||t===null)return e;if(t instanceof Vr)return t;if(oD(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?To.instance:r==="utc"||r==="gmt"?st.utcInstance:st.parseSpecifier(r)||pr.create(t)}else return Gr(t)?st.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new ku(t)}var mp={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},nE={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},tD=mp.hanidec.replace(/[\[|\]]/g,"").split("");function rD(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(mp.hanidec)!==-1)e+=tD.indexOf(t[r]);else for(let i in nE){let[s,o]=nE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}var lp=new Map;function nD(){lp.clear()}function Ct({numberingSystem:t},e=""){let r=t||"latn",n=lp.get(r);n===void 0&&(n=new Map,lp.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${mp[r]}${e}`),n.set(e,i)),i}var iE=()=>Date.now(),sE="system",oE=null,aE=null,uE=null,cE=60,lE,dE=null,ge=class{static get now(){return iE}static set now(e){iE=e}static set defaultZone(e){sE=e}static get defaultZone(){return Fr(sE,To.instance)}static get defaultLocale(){return oE}static set defaultLocale(e){oE=e}static get defaultNumberingSystem(){return aE}static set defaultNumberingSystem(e){aE=e}static get defaultOutputCalendar(){return uE}static set defaultOutputCalendar(e){uE=e}static get defaultWeekSettings(){return dE}static set defaultWeekSettings(e){dE=dp(e)}static get twoDigitCutoffYear(){return cE}static set twoDigitCutoffYear(e){cE=e%100}static get throwOnInvalid(){return lE}static set throwOnInvalid(e){lE=e}static resetCaches(){pe.resetCache(),pr.resetCache(),Ae.resetCache(),nD()}},nt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},XE=[0,31,59,90,120,151,181,212,243,273,304,334],eT=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new nt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function hp(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 tT(t,e,r){return r+(So(t)?eT:XE)[e-1]}function rT(t,e){let r=So(t)?eT:XE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function gp(t,e){return(t-e+7)%7+1}function Fu(t,e=4,r=1){let{year:n,month:i,day:s}=t,o=tT(n,i,s),a=gp(hp(n,i,s),r),u=Math.floor((o-a+14-e)/7),c;return u<1?(c=n-1,u=Ao(c,e,r)):u>Ao(n,e,r)?(c=n+1,u=1):c=n,{weekYear:c,weekNumber:u,weekday:a,...Qu(t)}}function pE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:s}=t,o=gp(hp(n,1,e),r),a=Wi(n),u=i*7+s-o-7+e,c;u<1?(c=n-1,u+=Wi(c)):u>a?(c=n+1,u-=Wi(n)):c=n;let{month:l,day:d}=rT(c,u);return{year:c,month:l,day:d,...Qu(t)}}function Qd(t){let{year:e,month:r,day:n}=t,i=tT(e,r,n);return{year:e,ordinal:i,...Qu(t)}}function fE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=rT(e,r);return{year:e,month:n,day:i,...Qu(t)}}function mE(t,e){if(!z(t.localWeekday)||!z(t.localWeekNumber)||!z(t.localWeekYear)){if(!z(t.weekday)||!z(t.weekNumber)||!z(t.weekYear))throw new Br("Cannot mix locale-based week fields with ISO-based week fields");return z(t.localWeekday)||(t.weekday=t.localWeekday),z(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),z(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 iD(t,e=4,r=1){let n=$u(t.weekYear),i=yt(t.weekNumber,1,Ao(t.weekYear,e,r)),s=yt(t.weekday,1,7);return n?i?s?!1:gt("weekday",t.weekday):gt("week",t.weekNumber):gt("weekYear",t.weekYear)}function sD(t){let e=$u(t.year),r=yt(t.ordinal,1,Wi(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function nT(t){let e=$u(t.year),r=yt(t.month,1,12),n=yt(t.day,1,Bu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function iT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=yt(e,0,23)||e===24&&r===0&&n===0&&i===0,o=yt(r,0,59),a=yt(n,0,59),u=yt(i,0,999);return s?o?a?u?!1:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}function z(t){return typeof t>"u"}function Gr(t){return typeof t=="number"}function $u(t){return typeof t=="number"&&t%1===0}function oD(t){return typeof t=="string"}function aD(t){return Object.prototype.toString.call(t)==="[object Date]"}function sT(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function oT(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function uD(t){return Array.isArray(t)?t:[t]}function hE(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 cD(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Qi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function dp(t){if(t==null)return null;if(typeof t!="object")throw new Ue("Week settings must be an object");if(!yt(t.firstDay,1,7)||!yt(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!yt(e,1,7)))throw new Ue("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function yt(t,e,r){return $u(t)&&t>=e&&t<=r}function lD(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 kr(t){if(!(z(t)||t===null||t===""))return parseInt(t,10)}function qn(t){if(!(z(t)||t===null||t===""))return parseFloat(t)}function yp(t){if(!(z(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Ep(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 So(t){return t%4===0&&(t%100!==0||t%400===0)}function Wi(t){return So(t)?366:365}function Bu(t,e){let r=lD(e-1,12)+1,n=t+(e-r)/12;return r===2?So(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Wu(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 gE(t,e,r){return-gp(hp(t,1,e),r)+e-1}function Ao(t,e=4,r=1){let n=gE(t,e,r),i=gE(t+1,e,r);return(Wi(t)-n+i)/7}function pp(t){return t>99?t:t>ge.twoDigitCutoffYear?1900+t:2e3+t}function aT(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 qu(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 uT(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new Ue(`Invalid unit value ${t}`);return e}function Gu(t,e){let r={};for(let n in t)if(Qi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=uT(i)}return r}function Eo(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 Qu(t){return cD(t,["hour","minute","second","millisecond"])}var dD=["January","February","March","April","May","June","July","August","September","October","November","December"],cT=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],pD=["J","F","M","A","M","J","J","A","S","O","N","D"];function lT(t){switch(t){case"narrow":return[...pD];case"short":return[...cT];case"long":return[...dD];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 dT=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],pT=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],fD=["M","T","W","T","F","S","S"];function fT(t){switch(t){case"narrow":return[...fD];case"short":return[...pT];case"long":return[...dT];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var mT=["AM","PM"],mD=["Before Christ","Anno Domini"],hD=["BC","AD"],gD=["B","A"];function hT(t){switch(t){case"narrow":return[...gD];case"short":return[...hD];case"long":return[...mD];default:return null}}function yD(t){return mT[t.hour<12?0:1]}function ED(t,e){return fT(e)[t.weekday-1]}function TD(t,e){return lT(e)[t.month-1]}function AD(t,e){return hT(e)[t.year<0?0:1]}function SD(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 yE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var _D={D:Mu,DD:NE,DDD:PE,DDDD:LE,t:UE,tt:ME,ttt:kE,tttt:FE,T:BE,TT:GE,TTT:VE,TTTT:$E,f:WE,ff:QE,fff:HE,ffff:YE,F:qE,FF:jE,FFF:KE,FFFF:JE},rt=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 _D[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 Re(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,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?yD(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,f)=>n?TD(e,m):s(f?{month:m}:{month:m,day:"numeric"},"month"),c=(m,f)=>n?ED(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?AD(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"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 yE(t.parseFormat(r),p)}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)=>p=>{let m=i(p);if(m){let f=d.isNegativeDuration&&m!==d.largestUnit?n:1,g;return this.opts.signMode==="negativeLargestOnly"&&m!==d.largestUnit?g="never":this.opts.signMode==="all"?g="always":g="auto",this.num(l.get(m)*f,p.length,g)}else return p},o=t.parseFormat(r),a=o.reduce((l,{literal:d,val:p})=>d?l:l.concat(p),[]),u=e.shiftTo(...a.map(i).filter(l=>l)),c={isNegativeDuration:u<0,largestUnit:Object.keys(u.values)[0]};return yE(o,s(u,c))}},gT=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function ji(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Hi(...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 Ki(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 yT(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=kr(e[r+i]);return[n,null,r+i]}}var ET=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,ID=`(?:${ET.source}?(?:\\[(${gT.source})\\])?)?`,Tp=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,TT=RegExp(`${Tp.source}${ID}`),Ap=RegExp(`(?:[Tt]${TT.source})?`),OD=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,xD=/(\d{4})-?W(\d\d)(?:-?(\d))?/,RD=/(\d{4})-?(\d{3})/,wD=yT("weekYear","weekNumber","weekDay"),bD=yT("year","ordinal"),DD=/(\d{4})-(\d\d)-(\d\d)/,AT=RegExp(`${Tp.source} ?(?:${ET.source}|(${gT.source}))?`),CD=RegExp(`(?: ${AT.source})?`);function qi(t,e,r){let n=t[e];return z(n)?r:kr(n)}function vD(t,e){return[{year:qi(t,e),month:qi(t,e+1,1),day:qi(t,e+2,1)},null,e+3]}function Yi(t,e){return[{hours:qi(t,e,0),minutes:qi(t,e+1,0),seconds:qi(t,e+2,0),milliseconds:yp(t[e+3])},null,e+4]}function _o(t,e){let r=!t[e]&&!t[e+1],n=qu(t[e+1],t[e+2]),i=r?null:st.instance(n);return[{},i,e+3]}function Io(t,e){let r=t[e]?pr.create(t[e]):null;return[{},r,e+1]}var ND=RegExp(`^T?${Tp.source}$`),PD=/^-?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 LD(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(qn(r)),months:p(qn(n)),weeks:p(qn(i)),days:p(qn(s)),hours:p(qn(o)),minutes:p(qn(a)),seconds:p(qn(u),u==="-0"),milliseconds:p(yp(c),d)}]}var UD={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 Sp(t,e,r,n,i,s,o){let a={year:e.length===2?pp(kr(e)):kr(e),month:cT.indexOf(r)+1,day:kr(n),hour:kr(i),minute:kr(s)};return o&&(a.second=kr(o)),t&&(a.weekday=t.length>3?dT.indexOf(t)+1:pT.indexOf(t)+1),a}var MD=/^(?:(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 kD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,p=Sp(e,i,n,r,s,o,a),m;return u?m=UD[u]:c?m=0:m=qu(l,d),[p,new st(m)]}function FD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var BD=/^(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$/,GD=/^(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$/,VD=/^(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 EE(t){let[,e,r,n,i,s,o,a]=t;return[Sp(e,i,n,r,s,o,a),st.utcInstance]}function $D(t){let[,e,r,n,i,s,o,a]=t;return[Sp(e,a,r,n,i,s,o),st.utcInstance]}var WD=ji(OD,Ap),qD=ji(xD,Ap),QD=ji(RD,Ap),jD=ji(TT),ST=Hi(vD,Yi,_o,Io),HD=Hi(wD,Yi,_o,Io),KD=Hi(bD,Yi,_o,Io),YD=Hi(Yi,_o,Io);function JD(t){return Ki(t,[WD,ST],[qD,HD],[QD,KD],[jD,YD])}function zD(t){return Ki(FD(t),[MD,kD])}function ZD(t){return Ki(t,[BD,EE],[GD,EE],[VD,$D])}function XD(t){return Ki(t,[PD,LD])}var eC=Hi(Yi);function tC(t){return Ki(t,[ND,eC])}var rC=ji(DD,CD),nC=ji(AT),iC=Hi(Yi,_o,Io);function sC(t){return Ki(t,[rC,ST],[nC,iC])}var TE="Invalid Duration",_T={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}},oC={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},..._T},ht=146097/400,Gi=146097/4800,aC={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:Gi/7,days:Gi,hours:Gi*24,minutes:Gi*24*60,seconds:Gi*24*60*60,milliseconds:Gi*24*60*60*1e3},..._T},jn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],uC=jn.slice(0).reverse();function lr(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 IT(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of uC.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}function AE(t,e){let r=IT(t,e)<0?-1:1;jn.reduceRight((n,i)=>{if(z(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),jn.reduce((n,i)=>{if(z(e[i]))return n;if(n){let s=e[n]%1;e[n]-=s,e[i]+=s*t[n][i]}return i},null)}function SE(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?aC:oC;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||pe.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 Ue(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Gu(e,t.normalizeUnit),loc:pe.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Gr(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ue(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=XD(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]=tC(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 Ue("need to specify a reason the Duration is invalid");let n=e instanceof nt?e:new nt(e,r);if(ge.throwOnInvalid)throw new Xd(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 Uu(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?rt.create(this.loc,n).formatDurationFromString(this,e):TE}toHuman(e={}){if(!this.isValid)return TE;let r=e.showZeros!==!1,n=jn.map(i=>{let s=this.values[i];return z(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+=Ep(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},Ae.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?IT(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 jn)(Qi(r.values,i)||Qi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return lr(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]=uT(e(this.values[n],n));return lr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Gu(e,t.normalizeUnit)};return lr(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 lr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return AE(this.matrix,e),lr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=SE(this.normalize().shiftToAll().toObject());return lr(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 jn)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;Gr(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3}else Gr(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 AE(this.matrix,r),lr(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 lr(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=SE(this.values);return lr(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 jn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Vi="Invalid Interval";function cC(t,e){return!t||!t.isValid?Kn.invalid("missing or invalid start"):!e||!e.isValid?Kn.invalid("missing or invalid end"):e<t?Kn.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 Kn=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 Ue("need to specify a reason the Interval is invalid");let n=e instanceof nt?e:new nt(e,r);if(ge.throwOnInvalid)throw new Zd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=cC(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=Ce.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Ce.fromDurationLike(r),i=mo(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=Ae.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ae.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 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(mo).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=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()})`:Vi}[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=Mu,r={}){return this.isValid?rt.create(this.s.loc.clone(r),e).formatInterval(this):Vi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Vi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Vi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Vi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Vi}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))}},Hn=class{static hasDST(e=ge.defaultZone){let r=Ae.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return pr.isValidZone(e)}static normalizeZone(e){return Fr(e,ge.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||pe.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||pe.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||pe.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||pe.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||pe.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||pe.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||pe.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return pe.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return pe.create(r,null,"gregory").eras(e)}static features(){return{relative:sT(),localeWeek:oT()}}};function _E(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 lC(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=_E(u,c);return(l-l%7)/7}],["days",_E]],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 dC(t,e,r,n){let[i,s,o,a]=lC(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 pC="missing Intl.DateTimeFormat.formatToParts support";function de(t,e=r=>r){return{regex:t,deser:([r])=>e(rD(r))}}var fC=String.fromCharCode(160),OT=`[ ${fC}]`,xT=new RegExp(OT,"g");function mC(t){return t.replace(/\./g,"\\.?").replace(xT,OT)}function IE(t){return t.replace(/\./g,"").replace(xT," ").toLowerCase()}function vt(t,e){return t===null?null:{regex:RegExp(t.map(mC).join("|")),deser:([r])=>t.findIndex(n=>IE(r)===IE(n))+e}}function OE(t,e){return{regex:t,deser:([,r,n])=>qu(r,n),groups:e}}function Du(t){return{regex:t,deser:([e])=>e}}function hC(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gC(t,e){let r=Ct(e),n=Ct(e,"{2}"),i=Ct(e,"{3}"),s=Ct(e,"{4}"),o=Ct(e,"{6}"),a=Ct(e,"{1,2}"),u=Ct(e,"{1,3}"),c=Ct(e,"{1,6}"),l=Ct(e,"{1,9}"),d=Ct(e,"{2,4}"),p=Ct(e,"{4,6}"),m=y=>({regex:RegExp(hC(y.val)),deser:([T])=>T,literal:!0}),g=(y=>{if(t.literal)return m(y);switch(y.val){case"G":return vt(e.eras("short"),0);case"GG":return vt(e.eras("long"),0);case"y":return de(c);case"yy":return de(d,pp);case"yyyy":return de(s);case"yyyyy":return de(p);case"yyyyyy":return de(o);case"M":return de(a);case"MM":return de(n);case"MMM":return vt(e.months("short",!0),1);case"MMMM":return vt(e.months("long",!0),1);case"L":return de(a);case"LL":return de(n);case"LLL":return vt(e.months("short",!1),1);case"LLLL":return vt(e.months("long",!1),1);case"d":return de(a);case"dd":return de(n);case"o":return de(u);case"ooo":return de(i);case"HH":return de(n);case"H":return de(a);case"hh":return de(n);case"h":return de(a);case"mm":return de(n);case"m":return de(a);case"q":return de(a);case"qq":return de(n);case"s":return de(a);case"ss":return de(n);case"S":return de(u);case"SSS":return de(i);case"u":return Du(l);case"uu":return Du(a);case"uuu":return de(r);case"a":return vt(e.meridiems(),0);case"kkkk":return de(s);case"kk":return de(d,pp);case"W":return de(a);case"WW":return de(n);case"E":case"c":return de(r);case"EEE":return vt(e.weekdays("short",!1),1);case"EEEE":return vt(e.weekdays("long",!1),1);case"ccc":return vt(e.weekdays("short",!0),1);case"cccc":return vt(e.weekdays("long",!0),1);case"Z":case"ZZ":return OE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return OE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Du(/[a-z_+-/]{1,256}?/i);case" ":return Du(/[^\S\n\r]/);default:return m(y)}})(t)||{invalidReason:pC};return g.token=t,g}var yC={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 EC(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=yC[o];if(typeof a=="object"&&(a=a[s]),a)return{literal:!1,val:a}}function TC(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function AC(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Qi(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 SC(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 z(t.z)||(r=pr.create(t.z)),z(t.Z)||(r||(r=new st(t.Z)),n=t.Z),z(t.q)||(t.M=(t.q-1)*3+1),z(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),z(t.u)||(t.S=yp(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var jd=null;function _C(){return jd||(jd=Ae.fromMillis(1555555555555)),jd}function IC(t,e){if(t.literal)return t;let r=rt.macroTokenToFormatOpts(t.val),n=bT(r,e);return n==null||n.includes(void 0)?t:n}function RT(t,e){return Array.prototype.concat(...t.map(r=>IC(r,e)))}var Vu=class{constructor(e,r){if(this.locale=e,this.format=r,this.tokens=RT(rt.parseFormat(r),e),this.units=this.tokens.map(n=>gC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=TC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=AC(e,this.regex,this.handlers),[i,s,o]=n?SC(n):[null,null,void 0];if(Qi(n,"a")&&Qi(n,"H"))throw new Br("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 wT(t,e,r){return new Vu(t,r).explainFromTokens(e)}function OC(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=wT(t,e,r);return[n,i,s,o]}function bT(t,e){if(!t)return null;let n=rt.create(e,t).dtFormatter(_C()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(o=>EC(o,t,s))}var Hd="Invalid DateTime",xE=864e13;function go(t){return new nt("unsupported zone",`the zone "${t.name}" is not supported`)}function Kd(t){return t.weekData===null&&(t.weekData=Fu(t.c)),t.weekData}function Yd(t){return t.localWeekData===null&&(t.localWeekData=Fu(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function Qn(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ae({...r,...e,old:r})}function DT(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 Cu(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 Nu(t,e,r){return DT(Wu(t),e,r)}function RE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Bu(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=Wu(s),[u,c]=DT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function $i(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=Ae.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ae.invalid(new nt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function vu(t,e,r=!0){return t.isValid?rt.create(pe.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Jd(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=Re(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=Re(t.c.month),r==="month")return i;i+="-"}else if(i+=Re(t.c.month),r==="month")return i;return i+=Re(t.c.day),i}function wE(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+=Re(t.c.hour),o==="hour")break;if(e){if(u+=":",u+=Re(t.c.minute),o==="minute")break;a&&(u+=":",u+=Re(t.c.second))}else{if(u+=Re(t.c.minute),o==="minute")break;a&&(u+=Re(t.c.second))}if(o==="second")break;a&&(!n||t.c.millisecond!==0)&&(u+=".",u+=Re(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!s?u+="Z":t.o<0?(u+="-",u+=Re(Math.trunc(-t.o/60)),u+=":",u+=Re(Math.trunc(-t.o%60))):(u+="+",u+=Re(Math.trunc(t.o/60)),u+=":",u+=Re(Math.trunc(t.o%60)))),s&&(u+="["+t.zone.ianaName+"]"),u}var CT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},xC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},RC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Pu=["year","month","day","hour","minute","second","millisecond"],wC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],bC=["year","ordinal","hour","minute","second","millisecond"];function Lu(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 Uu(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 Lu(t)}}function DC(t){if(yo===void 0&&(yo=ge.now()),t.type!=="iana")return t.offset(yo);let e=t.name,r=fp.get(e);return r===void 0&&(r=t.offset(yo),fp.set(e,r)),r}function DE(t,e){let r=Fr(e.zone,ge.defaultZone);if(!r.isValid)return Ae.invalid(go(r));let n=pe.fromObject(e),i,s;if(z(t.year))i=ge.now();else{for(let u of Pu)z(t[u])&&(t[u]=CT[u]);let o=nT(t)||iT(t);if(o)return Ae.invalid(o);let a=DC(r);[i,s]=Nu(t,a,r)}return new Ae({ts:i,zone:r,loc:n,o:s})}function CE(t,e,r){let n=z(r.round)?!0:r.round,i=z(r.rounding)?"trunc":r.rounding,s=(a,u)=>(a=Ep(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 vE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var yo,fp=new Map,Ae=class t{constructor(e){let r=e.zone||ge.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new nt("invalid input"):null)||(r.isValid?null:go(r));this.ts=z(e.ts)?ge.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=Gr(e.o)&&!e.old?e.o:r.offset(this.ts);i=Cu(this.ts,a),n=Number.isNaN(i.year)?new nt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||pe.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]=vE(arguments),[n,i,s,o,a,u,c]=r;return DE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=vE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=st.utcInstance,DE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=aD(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Fr(r.zone,ge.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:pe.fromObject(r)}):t.invalid(go(i))}static fromMillis(e,r={}){if(Gr(e))return e<-xE||e>xE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Fr(r.zone,ge.defaultZone),loc:pe.fromObject(r)});throw new Ue(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Gr(e))return new t({ts:e*1e3,zone:Fr(r.zone,ge.defaultZone),loc:pe.fromObject(r)});throw new Ue("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Fr(r.zone,ge.defaultZone);if(!n.isValid)return t.invalid(go(n));let i=pe.fromObject(r),s=Gu(e,bE),{minDaysInFirstWeek:o,startOfWeek:a}=mE(s,i),u=ge.now(),c=z(r.specificOffset)?n.offset(u):r.specificOffset,l=!z(s.ordinal),d=!z(s.year),p=!z(s.month)||!z(s.day),m=d||p,f=s.weekYear||s.weekNumber;if((m||l)&&f)throw new Br("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&l)throw new Br("Can't mix ordinal dates with month/day");let g=f||s.weekday&&!m,y,T,_=Cu(u,c);g?(y=wC,T=xC,_=Fu(_,o,a)):l?(y=bC,T=RC,_=Qd(_)):(y=Pu,T=CT);let S=!1;for(let se of y){let Xt=s[se];z(Xt)?S?s[se]=T[se]:s[se]=_[se]:S=!0}let R=g?iD(s,o,a):l?sD(s):nT(s),E=R||iT(s);if(E)return t.invalid(E);let I=g?pE(s,o,a):l?fE(s):s,[B,L]=Nu(I,c,n),F=new t({ts:B,zone:n,o:L,loc:i});return s.weekday&&m&&e.weekday!==F.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${F.toISO()}`):F.isValid?F:t.invalid(F.invalid)}static fromISO(e,r={}){let[n,i]=JD(e);return $i(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=zD(e);return $i(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=ZD(e);return $i(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(z(e)||z(r))throw new Ue("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=pe.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=OC(o,e,r);return l?t.invalid(l):$i(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]=sC(e);return $i(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ue("need to specify a reason the DateTime is invalid");let n=e instanceof nt?e:new nt(e,r);if(ge.throwOnInvalid)throw new zd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=bT(e,pe.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return RT(rt.parseFormat(e),pe.fromObject(r)).map(i=>i.val).join("")}static resetCache(){yo=void 0,fp.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?Kd(this).weekYear:NaN}get weekNumber(){return this.isValid?Kd(this).weekNumber:NaN}get weekday(){return this.isValid?Kd(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Yd(this).weekday:NaN}get localWeekNumber(){return this.isValid?Yd(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Yd(this).weekYear:NaN}get ordinal(){return this.isValid?Qd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Hn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Hn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Hn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Hn.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=Wu(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=Cu(u,o),d=Cu(c,a);return l.hour===d.hour&&l.minute===d.minute&&l.second===d.second&&l.millisecond===d.millisecond?[Qn(this,{ts:u}),Qn(this,{ts:c})]:[this]}get isInLeapYear(){return So(this.year)}get daysInMonth(){return Bu(this.year,this.month)}get daysInYear(){return this.isValid?Wi(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ao(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ao(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=rt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(st.instance(e),r)}toLocal(){return this.setZone(ge.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Fr(e,ge.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]=Nu(o,s,e)}return Qn(this,{ts:i,zone:e})}else return t.invalid(go(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return Qn(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Gu(e,bE),{minDaysInFirstWeek:n,startOfWeek:i}=mE(r,this.loc),s=!z(r.weekYear)||!z(r.weekNumber)||!z(r.weekday),o=!z(r.ordinal),a=!z(r.year),u=!z(r.month)||!z(r.day),c=a||u,l=r.weekYear||r.weekNumber;if((c||o)&&l)throw new Br("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(u&&o)throw new Br("Can't mix ordinal dates with month/day");let d;s?d=pE({...Fu(this.c,n,i),...r},n,i):z(r.ordinal)?(d={...this.toObject(),...r},z(r.day)&&(d.day=Math.min(Bu(d.year,d.month),d.day))):d=fE({...Qd(this.c),...r});let[p,m]=Nu(d,this.o,this.zone);return Qn(this,{ts:p,o:m})}plus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e);return Qn(this,RE(this,r))}minus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e).negate();return Qn(this,RE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=Ce.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?rt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Hd}toLocaleString(e=Mu,r={}){return this.isValid?rt.create(this.loc.clone(r),e).formatDateTime(this):Hd}toLocaleParts(e={}){return this.isValid?rt.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=Lu(o);let a=e==="extended",u=Jd(this,a,o);return Pu.indexOf(o)>=3&&(u+="T"),u+=wE(this,a,r,n,i,s,o),u}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?Jd(this,e==="extended",Lu(r)):null}toISOWeekDate(){return vu(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=Lu(a),(i&&Pu.indexOf(a)>=3?"T":"")+wE(this,o==="extended",r,e,n,s,a)):null}toRFC2822(){return vu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return vu(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")),vu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Hd}[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 Ce.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=uD(r).map(Ce.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=dC(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?Kn.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),CE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?CE(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 Ue("min requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ue("max requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=pe.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return wT(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=pe.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Vu(s,e)}static fromFormatParser(e,r,n={}){if(z(e)||z(r))throw new Ue("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:s=null}=n,o=pe.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});if(!o.equals(r.locale))throw new Ue(`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):$i(a,u,n,`format ${r.format}`,e,c)}static get DATE_SHORT(){return Mu}static get DATE_MED(){return NE}static get DATE_MED_WITH_WEEKDAY(){return Bb}static get DATE_FULL(){return PE}static get DATE_HUGE(){return LE}static get TIME_SIMPLE(){return UE}static get TIME_WITH_SECONDS(){return ME}static get TIME_WITH_SHORT_OFFSET(){return kE}static get TIME_WITH_LONG_OFFSET(){return FE}static get TIME_24_SIMPLE(){return BE}static get TIME_24_WITH_SECONDS(){return GE}static get TIME_24_WITH_SHORT_OFFSET(){return VE}static get TIME_24_WITH_LONG_OFFSET(){return $E}static get DATETIME_SHORT(){return WE}static get DATETIME_SHORT_WITH_SECONDS(){return qE}static get DATETIME_MED(){return QE}static get DATETIME_MED_WITH_SECONDS(){return jE}static get DATETIME_MED_WITH_WEEKDAY(){return Gb}static get DATETIME_FULL(){return HE}static get DATETIME_FULL_WITH_SECONDS(){return KE}static get DATETIME_HUGE(){return YE}static get DATETIME_HUGE_WITH_SECONDS(){return JE}};function mo(t){if(Ae.isDateTime(t))return t;if(t&&t.valueOf&&Gr(t.valueOf()))return Ae.fromJSDate(t);if(t&&typeof t=="object")return Ae.fromObject(t);throw new Ue(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var CC="3.7.1";ot.DateTime=Ae;ot.Duration=Ce;ot.FixedOffsetZone=st;ot.IANAZone=pr;ot.Info=Hn;ot.Interval=Kn;ot.InvalidZone=ku;ot.Settings=ge;ot.SystemZone=To;ot.VERSION=CC;ot.Zone=Vr});var PT=H((Zj,NT)=>{"use strict";var Yn=vT();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=Yn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Yn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Yn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Yn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Yn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Yn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Yn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}NT.exports=Z});var MT=H((Xj,UT)=>{"use strict";function Jn(t){return{start:t,count:1}}function LT(t,e){t.end=e,t.step=e-t.start,t.count=2}function _p(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 vC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(_p(e,r,Jn(i)),r=void 0):r?r.count===1?LT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Jn(r.start)),r=Jn(r.end),LT(r,i)):(_p(e,r),r=Jn(i)):r=Jn(i)}return _p(e,r),e}UT.exports=vC});var FT=H((e2,kT)=>{"use strict";var NC=MT();function PC(t,e,r){var n=NC(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(",")}kT.exports=PC});var VT=H((t2,GT)=>{"use strict";var zn=PT(),LC=FT(),BT=1e4;function M(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new zn(e.currentDate,this._tz),this._startDate=e.startDate?new zn(e.startDate,this._tz):null,this._endDate=e.endDate?new zn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=M._freezeFields(t)}M.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];M.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};M.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"]}];M.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];M.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}};M.parseDefaults=["0","*","*","*","*","*"];M.standardValidCharacters=/^[,*\d/-]+$/;M.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;M.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;M.validCharacters={second:M.standardValidCharacters,minute:M.standardValidCharacters,hour:M.standardValidCharacters,dayOfMonth:M.dayOfMonthValidCharacters,month:M.standardValidCharacters,dayOfWeek:M.dayOfWeekValidCharacters};M._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};M._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=M.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(!M.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(M._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(M._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(M._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)};M._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)};M._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=M.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(M._sortCompareFn)}};M._freezeFields=function(t){for(var e=0,r=M.map.length;e<r;++e){var n=M.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};M.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)}};M.prototype._findSchedule=function(e){function r(T,_){for(var S=0,R=_.length;S<R;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,R=T.getDate()-T.getDate()%7,E=Math.floor(R/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 zn(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<BT;){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>=M.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===M.constraints[5].max-M.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>=BT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new zn(o,this._tz),this._hasIterated=!0,o};M.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};M.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};M.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}};M.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}};M.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};M.prototype.reset=function(e){this._currentDate=new zn(e||this._options.currentDate)};M.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=M.map.length;n<i;++n){var s=M.map[n],o=this.fields[s],a=M.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:M.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(LC(o,a.min,a.max))}return r.join(" ")};M.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new zn(void 0,n._tz)),M.predefined[s]&&(s=M.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=M.map.length-u.length,l=0,d=M.map.length;l<d;++l){var p=M.map[l],m=u[u.length>d?l:l-c];if(l<c||!m)a.push(M._parseField(p,M.parseDefaults[l],M.constraints[l]));else{var f=p==="dayOfWeek"?_(m):m;a.push(M._parseField(p,f,M.constraints[l]))}}for(var g={},l=0,d=M.map.length;l<d;l++){var y=M.map[l];g[y]=a[l]}var T=M._handleMaxDaysInMonth(g);return g.dayOfMonth=T||g.dayOfMonth,new M(g,o);function _(S){var R=S.split("#");if(R.length>1){var E=+R[R.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(R.length>2||Number.isNaN(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,R[0]}return S}}return i(e,r)};M.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(!M._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=M.map.length;s<o;++s){var a=M.map[s],u=e[a];n(a,u,M.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(M._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=M._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new M(i,r||{})};GT.exports=M});var WT=H((r2,$T)=>{"use strict";var ju=VT();function $r(){}$r._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:ju.parse(e)};if(r.length>6)return{interval:ju.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};$r.parseExpression=function(e,r){return ju.parse(e,r)};$r.fieldsToExpression=function(e,r){return ju.fieldsToExpression(e,r)};$r.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=$r._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};$r.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,$r.parseString(i.toString()))})};$T.exports=$r});var OB={};N(OB,{APP_DEV:()=>rc,APP_DEV_PREFIX:()=>Tt,APP_PREFIX:()=>Et,AutomationViewMode:()=>tc,BUDIBASE_DATASOURCE_TYPE:()=>Qp,BadRequestError:()=>Gc,BudibaseError:()=>gs,Config:()=>zp,Cookie:()=>Zn,DEFAULT_BB_DATASOURCE_ID:()=>Pi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Yp,DEFAULT_EXPENSES_TABLE_ID:()=>Kp,DEFAULT_INVENTORY_TABLE_ID:()=>Hp,DEFAULT_JOBS_TABLE_ID:()=>jp,DEFAULT_TENANT_ID:()=>Se,DeprecatedViews:()=>Zi,DesignDocuments:()=>bo,DocumentType:()=>Te,Duration:()=>De,DurationType:()=>Tm,EmailUnavailableError:()=>Ar,Endpoint:()=>Bl,EndpointGroup:()=>_i,EndpointGroupList:()=>Wa,FeatureDisabledError:()=>qc,ForbiddenError:()=>Vc,GlobalRole:()=>Jp,HTTPError:()=>$e,Header:()=>et,InternalTable:()=>tr,InvalidAPIKeyError:()=>ys,MAX_VALID_DATE:()=>ic,MIN_VALID_DATE:()=>iA,NotFoundError:()=>Bc,NotImplementedError:()=>$c,RedisClient:()=>je,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Jt,SQS_DATASOURCE_INTERNAL:()=>qp,StaticDatabases:()=>xe,UNICODE_MAX:()=>We,USER_METADATA_PREFIX:()=>wo,UnexpectedError:()=>Fc,UsageLimitError:()=>Wc,UserStatus:()=>nc,ViewName:()=>qr,accounts:()=>fi,auth:()=>Lh,blacklist:()=>Fh,cache:()=>va,configs:()=>Sr,constants:()=>Zp,context:()=>_e,csv:()=>Jh,db:()=>Zr,docIds:()=>Wf,docUpdates:()=>Gh,encryption:()=>vh,env:()=>h,errors:()=>jc,events:()=>Ss,features:()=>_h,getPublicError:()=>Qc,init:()=>IB,installation:()=>nl,locks:()=>ws,logging:()=>da,middleware:()=>Ph,objectStore:()=>sm,permissions:()=>Th,platform:()=>Zo,plugins:()=>Mh,queue:()=>Cm,redis:()=>kh,roles:()=>Eh,security:()=>Hm,sessions:()=>ul,setEnv:()=>No,sql:()=>Yh,tenancy:()=>_B,timers:()=>el,userUtils:()=>Im,users:()=>_s,utils:()=>ms,withEnv:()=>lA});module.exports=pO(OB);var Sr={};N(Sr,{analyticsEnabled:()=>Zc,generateConfigID:()=>fl,getAIConfig:()=>B0,getConfig:()=>It,getDefaultGoogleConfig:()=>ih,getGoogleConfig:()=>ml,getGoogleDatasourceConfig:()=>ah,getOIDCConfig:()=>M0,getOIDCConfigById:()=>uh,getOIDCLogosDoc:()=>L0,getPlatformUrl:()=>ka,getRecaptchaConfig:()=>G0,getSCIMConfig:()=>F0,getSMTPConfig:()=>k0,getSMTPConfigDoc:()=>iI,getSettingsConfig:()=>oh,getSettingsConfigDoc:()=>Is,save:()=>N0});var fO=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],mO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Xh=[...fO,...mO],eg={"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 Gl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Gl||{}),Vl=(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))(Vl||{}),ja=(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))(ja||{});var $l=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))($l||{});var hO=V(require("lodash/isPlainObject")),Dr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Dr||{}),er=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(er||{}),gn=(e=>(e.RANGE="range",e))(gn||{}),Ii=(r=>(r.AND="$and",r.OR="$or",r))(Ii||{});function Ha(t){return Object.values(Ii).includes(t)}function tg(t){return Object.values(Dr).includes(t)}function rg(t){return Object.values(er).includes(t)}function Ka(t){return Object.values(gn).includes(t)}var Oi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Oi||{});var ng=t=>typeof t=="object"&&t._id&&t._rev;var vs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(vs||{});var ig={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,WORKSPACES:!0,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var wG={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Ns=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ns||{});var Ya=(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))(Ya||{});var Ja=t=>t.hosting==="cloud";var za=t=>t.authType==="sso";var w="_",We="\uFFF0",Cr=t=>`${t}${w}`,Te=(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))(Te||{});var tr=(e=>(e.USER_METADATA="ta_users",e))(tr||{}),Wl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Wl||{});var X=(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))(X||{}),fe=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R))(fe||{}),xt=(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))(xt||{});var oe=(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))(oe||{}),sg=[...Object.values(oe),...Object.values(xt)];var ql=(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))(ql||{}),og={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Ql=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Ql||{}),jl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(jl||{});function ag(t){return t.stepId==="BRANCH"}var Hl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Hl||{});var Kl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Kl||{});var Yl="bb_internal";var ug=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Za(t){return!!t.providerType}var Jl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Jl||{});var P$=Object.values(Jl);var F$=["rows","queries","automations"],B$=["queries","automations"];var En=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(En||{}),Xa=(r=>(r.STRING="string",r.NUMBER="number",r))(Xa||{});var ne={};N(ne,{BRAND:()=>qO,DIRTY:()=>Tn,EMPTY_PATH:()=>_O,INVALID:()=>j,NEVER:()=>bx,OK:()=>Ve,ParseStatus:()=>ke,Schema:()=>re,ZodAny:()=>Pr,ZodArray:()=>sr,ZodBigInt:()=>Sn,ZodBoolean:()=>_n,ZodBranded:()=>Ls,ZodCatch:()=>Pn,ZodDate:()=>In,ZodDefault:()=>Nn,ZodDiscriminatedUnion:()=>ru,ZodEffects:()=>ft,ZodEnum:()=>Cn,ZodError:()=>Ke,ZodFirstPartyTypeKind:()=>K,ZodFunction:()=>iu,ZodIntersection:()=>wn,ZodIssueCode:()=>x,ZodLazy:()=>bn,ZodLiteral:()=>Dn,ZodMap:()=>Ci,ZodNaN:()=>Ni,ZodNativeEnum:()=>vn,ZodNever:()=>Rt,ZodNull:()=>xn,ZodNullable:()=>Qt,ZodNumber:()=>An,ZodObject:()=>Ye,ZodOptional:()=>dt,ZodParsedType:()=>U,ZodPipeline:()=>Us,ZodPromise:()=>Lr,ZodReadonly:()=>Ln,ZodRecord:()=>nu,ZodSchema:()=>re,ZodSet:()=>vi,ZodString:()=>Nr,ZodSymbol:()=>bi,ZodTransformer:()=>ft,ZodTuple:()=>qt,ZodType:()=>re,ZodUndefined:()=>On,ZodUnion:()=>Rn,ZodUnknown:()=>ir,ZodVoid:()=>Di,addIssueToContext:()=>D,any:()=>XO,array:()=>nx,bigint:()=>KO,boolean:()=>Tg,coerce:()=>wx,custom:()=>gg,date:()=>YO,datetimeRegex:()=>mg,defaultErrorMap:()=>rr,discriminatedUnion:()=>ax,effect:()=>Tx,enum:()=>gx,function:()=>fx,getErrorMap:()=>xi,getParsedType:()=>Wt,instanceof:()=>jO,intersection:()=>ux,isAborted:()=>eu,isAsync:()=>Ri,isDirty:()=>tu,isValid:()=>vr,late:()=>QO,lazy:()=>mx,literal:()=>hx,makeIssue:()=>Ps,map:()=>dx,nan:()=>HO,nativeEnum:()=>yx,never:()=>tx,null:()=>ZO,nullable:()=>Sx,number:()=>Eg,object:()=>ix,objectUtil:()=>zl,oboolean:()=>Rx,onumber:()=>xx,optional:()=>Ax,ostring:()=>Ox,pipeline:()=>Ix,preprocess:()=>_x,promise:()=>Ex,quotelessJson:()=>TO,record:()=>lx,set:()=>px,setErrorMap:()=>SO,strictObject:()=>sx,string:()=>yg,symbol:()=>JO,transformer:()=>Tx,tuple:()=>cx,undefined:()=>zO,union:()=>ox,unknown:()=>ex,util:()=>ie,void:()=>rx});var ie;(function(t){t.assertEqual=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"&&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})(ie||(ie={}));var zl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(zl||(zl={}));var U=ie.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Wt=t=>{switch(typeof t){case"undefined":return U.undefined;case"string":return U.string;case"number":return Number.isNaN(t)?U.nan:U.number;case"boolean":return U.boolean;case"function":return U.function;case"bigint":return U.bigint;case"symbol":return U.symbol;case"object":return Array.isArray(t)?U.array:t===null?U.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?U.promise:typeof Map<"u"&&t instanceof Map?U.map:typeof Set<"u"&&t instanceof Set?U.set:typeof Date<"u"&&t instanceof Date?U.date:U.object;default:return U.unknown}};var x=ie.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"]),TO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Ke=class t extends Error{get errors(){return this.issues}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}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,ie.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];r[s]=r[s]||[],r[s].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Ke.create=t=>new Ke(t);var AO=(t,e)=>{let r;switch(t.code){case x.invalid_type:t.received===U.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ie.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${ie.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ie.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${ie.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:ie.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case x.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,ie.assertNever(t)}return{message:r}},rr=AO;var cg=rr;function SO(t){cg=t}function xi(){return cg}var Ps=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}},_O=[];function D(t,e){let r=xi(),n=Ps({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===rr?void 0:rr].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return j;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return j;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},j=Object.freeze({status:"aborted"}),Tn=t=>({status:"dirty",value:t}),Ve=t=>({status:"valid",value:t}),eu=t=>t.status==="aborted",tu=t=>t.status==="dirty",vr=t=>t.status==="valid",Ri=t=>typeof Promise<"u"&&t instanceof Promise;var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},lg=(t,e)=>{if(vr(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 Ke(t.common.issues);return this._error=r,this._error}}};function ee(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)=>{let{message:u}=t;return o.code==="invalid_enum_value"?{message:u??a.defaultError}:typeof a.data>"u"?{message:u??n??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:u??r??a.defaultError}},description:i}}var re=class{get description(){return this._def.description}_getType(e){return Wt(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Wt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:Wt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ri(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){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wt(e)},i=this._parseSync({data:e,path:n.path,parent:n});return lg(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wt(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return vr(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>vr(n)?{value:n.value}:{issues:r.common.issues})}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:Wt(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ri(i)?i:Promise.resolve(i));return lg(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:x.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new ft({schema:this,typeName:K.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}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),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return dt.create(this,this._def)}nullable(){return Qt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return sr.create(this)}promise(){return Lr.create(this,this._def)}or(e){return Rn.create([this,e],this._def)}and(e){return wn.create(this,e,this._def)}transform(e){return new ft({...ee(this._def),schema:this,typeName:K.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Nn({...ee(this._def),innerType:this,defaultValue:r,typeName:K.ZodDefault})}brand(){return new Ls({typeName:K.ZodBranded,type:this,...ee(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Pn({...ee(this._def),innerType:this,catchValue:r,typeName:K.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Us.create(this,e)}readonly(){return Ln.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},IO=/^c[^\s-]{8,}$/i,OO=/^[0-9a-z]+$/,xO=/^[0-9A-HJKMNP-TV-Z]{26}$/i,RO=/^[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,wO=/^[a-z0-9_-]{21}$/i,bO=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,DO=/^[-+]?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)?)??$/,CO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,vO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Zl,NO=/^(?:(?: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])$/,PO=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,LO=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,UO=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,MO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kO=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,pg="((\\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])))",FO=new RegExp(`^${pg}$`);function fg(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function BO(t){return new RegExp(`^${fg(t)}$`)}function mg(t){let e=`${pg}T${fg(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 GO(t,e){return!!((e==="v4"||!e)&&NO.test(t)||(e==="v6"||!e)&&LO.test(t))}function VO(t,e){if(!bO.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function $O(t,e){return!!((e==="v4"||!e)&&PO.test(t)||(e==="v6"||!e)&&UO.test(t))}var Nr=class t extends re{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==U.string){let s=this._getOrReturnCtx(e);return D(s,{code:x.invalid_type,expected:U.string,received:s.parsedType}),j}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),D(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),D(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?D(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&D(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")CO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Zl||(Zl=new RegExp(vO,"u")),Zl.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")RO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")wO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")IO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")OO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")xO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"ulid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),D(i,{validation:"url",code:x.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"regex",code:x.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?mg(s).test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?FO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?BO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?DO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?GO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="jwt"?VO(e.data,s.alg)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"jwt",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="cidr"?$O(e.data,s.version)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"cidr",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?MO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64url"?kO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"base64url",code:x.invalid_string,message:s.message}),n.dirty()):ie.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:x.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...G.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...G.errToObj(e)})}datetime(e){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:e?.offset??!1,local:e?.local??!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}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}};Nr.create=t=>new Nr({checks:[],typeName:K.ZodString,coerce:t?.coerce??!1,...ee(t)});function WO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}var An=class t extends re{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)!==U.number){let s=this._getOrReturnCtx(e);return D(s,{code:x.invalid_type,expected:U.number,received:s.parsedType}),j}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?ie.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),D(n,{code:x.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),D(n,{code:x.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),D(n,{code:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?WO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),D(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),D(n,{code:x.not_finite,message:s.message}),i.dirty()):ie.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&ie.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)}};An.create=t=>new An({checks:[],typeName:K.ZodNumber,coerce:t?.coerce||!1,...ee(t)});var Sn=class t extends re{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==U.bigint)return this._getInvalidInput(e);let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),D(n,{code:x.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),D(n,{code:x.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),D(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ie.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return D(r,{code:x.invalid_type,expected:U.bigint,received:r.parsedType}),j}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Sn.create=t=>new Sn({checks:[],typeName:K.ZodBigInt,coerce:t?.coerce??!1,...ee(t)});var _n=class extends re{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==U.boolean){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.boolean,received:n.parsedType}),j}return Ve(e.data)}};_n.create=t=>new _n({typeName:K.ZodBoolean,coerce:t?.coerce||!1,...ee(t)});var In=class t extends re{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==U.date){let s=this._getOrReturnCtx(e);return D(s,{code:x.invalid_type,expected:U.date,received:s.parsedType}),j}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return D(s,{code:x.invalid_date}),j}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),D(i,{code:x.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),D(i,{code:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ie.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};In.create=t=>new In({checks:[],coerce:t?.coerce||!1,typeName:K.ZodDate,...ee(t)});var bi=class extends re{_parse(e){if(this._getType(e)!==U.symbol){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.symbol,received:n.parsedType}),j}return Ve(e.data)}};bi.create=t=>new bi({typeName:K.ZodSymbol,...ee(t)});var On=class extends re{_parse(e){if(this._getType(e)!==U.undefined){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.undefined,received:n.parsedType}),j}return Ve(e.data)}};On.create=t=>new On({typeName:K.ZodUndefined,...ee(t)});var xn=class extends re{_parse(e){if(this._getType(e)!==U.null){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.null,received:n.parsedType}),j}return Ve(e.data)}};xn.create=t=>new xn({typeName:K.ZodNull,...ee(t)});var Pr=class extends re{constructor(){super(...arguments),this._any=!0}_parse(e){return Ve(e.data)}};Pr.create=t=>new Pr({typeName:K.ZodAny,...ee(t)});var ir=class extends re{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ve(e.data)}};ir.create=t=>new ir({typeName:K.ZodUnknown,...ee(t)});var Rt=class extends re{_parse(e){let r=this._getOrReturnCtx(e);return D(r,{code:x.invalid_type,expected:U.never,received:r.parsedType}),j}};Rt.create=t=>new Rt({typeName:K.ZodNever,...ee(t)});var Di=class extends re{_parse(e){if(this._getType(e)!==U.undefined){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.void,received:n.parsedType}),j}return Ve(e.data)}};Di.create=t=>new Di({typeName:K.ZodVoid,...ee(t)});var sr=class t extends re{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==U.array)return D(r,{code:x.invalid_type,expected:U.array,received:r.parsedType}),j;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(D(r,{code:o?x.too_big:x.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(D(r,{code:x.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(D(r,{code:x.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return ke.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};sr.create=(t,e)=>new sr({type:t,minLength:null,maxLength:null,exactLength:null,typeName:K.ZodArray,...ee(e)});function wi(t){if(t instanceof Ye){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(wi(n))}return new Ye({...t._def,shape:()=>e})}else return t instanceof sr?new sr({...t._def,type:wi(t.element)}):t instanceof dt?dt.create(wi(t.unwrap())):t instanceof Qt?Qt.create(wi(t.unwrap())):t instanceof qt?qt.create(t.items.map(e=>wi(e))):t}var Ye=class t extends re{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=ie.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==U.object){let c=this._getOrReturnCtx(e);return D(c,{code:x.invalid_type,expected:U.object,received:c.parsedType}),j}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Rt&&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 pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Rt){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&&(D(i,{code:x.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(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=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:G.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:K.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of ie.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of ie.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return wi(this)}partial(e){let r={};for(let n of ie.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of ie.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return hg(ie.objectKeys(this.shape))}};Ye.create=(t,e)=>new Ye({shape:()=>t,unknownKeys:"strip",catchall:Rt.create(),typeName:K.ZodObject,...ee(e)});Ye.strictCreate=(t,e)=>new Ye({shape:()=>t,unknownKeys:"strict",catchall:Rt.create(),typeName:K.ZodObject,...ee(e)});Ye.lazycreate=(t,e)=>new Ye({shape:t,unknownKeys:"strip",catchall:Rt.create(),typeName:K.ZodObject,...ee(e)});var Rn=class extends re{_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 Ke(a.ctx.common.issues));return D(r,{code:x.invalid_union,unionErrors:o}),j}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new Ke(u));return D(r,{code:x.invalid_union,unionErrors:a}),j}}get options(){return this._def.options}};Rn.create=(t,e)=>new Rn({options:t,typeName:K.ZodUnion,...ee(e)});var nr=t=>t instanceof bn?nr(t.schema):t instanceof ft?nr(t.innerType()):t instanceof Dn?[t.value]:t instanceof Cn?t.options:t instanceof vn?ie.objectValues(t.enum):t instanceof Nn?nr(t._def.innerType):t instanceof On?[void 0]:t instanceof xn?[null]:t instanceof dt?[void 0,...nr(t.unwrap())]:t instanceof Qt?[null,...nr(t.unwrap())]:t instanceof Ls||t instanceof Ln?nr(t.unwrap()):t instanceof Pn?nr(t._def.innerType):[],ru=class t extends re{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.object)return D(r,{code:x.invalid_type,expected:U.object,received:r.parsedType}),j;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(D(r,{code:x.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),j)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=nr(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:K.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...ee(n)})}};function Xl(t,e){let r=Wt(t),n=Wt(e);if(t===e)return{valid:!0,data:t};if(r===U.object&&n===U.object){let i=ie.objectKeys(e),s=ie.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Xl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===U.array&&n===U.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=Xl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===U.date&&n===U.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var wn=class extends re{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(eu(s)||eu(o))return j;let a=Xl(s.value,o.value);return a.valid?((tu(s)||tu(o))&&r.dirty(),{status:r.value,value:a.data}):(D(n,{code:x.invalid_intersection_types}),j)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};wn.create=(t,e,r)=>new wn({left:t,right:e,typeName:K.ZodIntersection,...ee(r)});var qt=class t extends re{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.array)return D(n,{code:x.invalid_type,expected:U.array,received:n.parsedType}),j;if(n.data.length<this._def.items.length)return D(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),j;!this._def.rest&&n.data.length>this._def.items.length&&(D(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};qt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new qt({items:t,typeName:K.ZodTuple,rest:null,...ee(e)})};var nu=class t extends re{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!==U.object)return D(n,{code:x.invalid_type,expected:U.object,received:n.parsedType}),j;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?ke.mergeObjectAsync(r,i):ke.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof re?new t({keyType:e,valueType:r,typeName:K.ZodRecord,...ee(n)}):new t({keyType:Nr.create(),valueType:e,typeName:K.ZodRecord,...ee(r)})}},Ci=class extends re{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!==U.map)return D(n,{code:x.invalid_type,expected:U.map,received:n.parsedType}),j;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return j;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return j;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ci.create=(t,e,r)=>new Ci({valueType:e,keyType:t,typeName:K.ZodMap,...ee(r)});var vi=class t extends re{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.set)return D(n,{code:x.invalid_type,expected:U.set,received:n.parsedType}),j;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(D(n,{code:x.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(D(n,{code:x.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return j;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};vi.create=(t,e)=>new vi({valueType:t,minSize:null,maxSize:null,typeName:K.ZodSet,...ee(e)});var iu=class t extends re{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.function)return D(r,{code:x.invalid_type,expected:U.function,received:r.parsedType}),j;function n(a,u){return Ps({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,xi(),rr].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return Ps({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,xi(),rr].filter(c=>!!c),issueData:{code:x.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Lr){let a=this;return Ve(async function(...u){let c=new Ke([]),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 Ve(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new Ke([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Ke([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:qt.create(e).rest(ir.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||qt.create([]).rest(ir.create()),returns:r||ir.create(),typeName:K.ZodFunction,...ee(n)})}},bn=class extends re{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})}};bn.create=(t,e)=>new bn({getter:t,typeName:K.ZodLazy,...ee(e)});var Dn=class extends re{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return D(r,{received:r.data,code:x.invalid_literal,expected:this._def.value}),j}return{status:"valid",value:e.data}}get value(){return this._def.value}};Dn.create=(t,e)=>new Dn({value:t,typeName:K.ZodLiteral,...ee(e)});function hg(t,e){return new Cn({values:t,typeName:K.ZodEnum,...ee(e)})}var Cn=class t extends re{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return D(r,{expected:ie.joinValues(n),received:r.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return D(r,{received:r.data,code:x.invalid_enum_value,options:n}),j}return Ve(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})}};Cn.create=hg;var vn=class extends re{_parse(e){let r=ie.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==U.string&&n.parsedType!==U.number){let i=ie.objectValues(r);return D(n,{expected:ie.joinValues(i),received:n.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(ie.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=ie.objectValues(r);return D(n,{received:n.data,code:x.invalid_enum_value,options:i}),j}return Ve(e.data)}get enum(){return this._def.values}};vn.create=(t,e)=>new vn({values:t,typeName:K.ZodNativeEnum,...ee(e)});var Lr=class extends re{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.promise&&r.common.async===!1)return D(r,{code:x.invalid_type,expected:U.promise,received:r.parsedType}),j;let n=r.parsedType===U.promise?r.data:Promise.resolve(r.data);return Ve(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Lr.create=(t,e)=>new Lr({type:t,typeName:K.ZodPromise,...ee(e)});var ft=class extends re{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===K.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{D(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return j;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?j:u.status==="dirty"?Tn(u.value):r.value==="dirty"?Tn(u.value):u});{if(r.value==="aborted")return j;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?j:a.status==="dirty"?Tn(a.value):r.value==="dirty"?Tn(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?j:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?j:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vr(o))return j;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=>vr(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):j);ie.assertNever(i)}};ft.create=(t,e,r)=>new ft({schema:t,typeName:K.ZodEffects,effect:e,...ee(r)});ft.createWithPreprocess=(t,e,r)=>new ft({schema:e,effect:{type:"preprocess",transform:t},typeName:K.ZodEffects,...ee(r)});var dt=class extends re{_parse(e){return this._getType(e)===U.undefined?Ve(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:K.ZodOptional,...ee(e)});var Qt=class extends re{_parse(e){return this._getType(e)===U.null?Ve(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Qt.create=(t,e)=>new Qt({innerType:t,typeName:K.ZodNullable,...ee(e)});var Nn=class extends re{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===U.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Nn.create=(t,e)=>new Nn({innerType:t,typeName:K.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...ee(e)});var Pn=class extends re{_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 Ri(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Ke(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ke(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Pn.create=(t,e)=>new Pn({innerType:t,typeName:K.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...ee(e)});var Ni=class extends re{_parse(e){if(this._getType(e)!==U.nan){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.nan,received:n.parsedType}),j}return{status:"valid",value:e.data}}};Ni.create=t=>new Ni({typeName:K.ZodNaN,...ee(t)});var qO=Symbol("zod_brand"),Ls=class extends re{_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}},Us=class t extends re{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?j:s.status==="dirty"?(r.dirty(),Tn(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?j:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:K.ZodPipeline})}},Ln=class extends re{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vr(i)&&(i.value=Object.freeze(i.value)),i);return Ri(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Ln.create=(t,e)=>new Ln({innerType:t,typeName:K.ZodReadonly,...ee(e)});function dg(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function gg(t,e={},r){return t?Pr.create().superRefine((n,i)=>{let s=t(n);if(s instanceof Promise)return s.then(o=>{if(!o){let a=dg(e,n),u=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:u})}});if(!s){let o=dg(e,n),a=o.fatal??r??!0;i.addIssue({code:"custom",...o,fatal:a})}}):Pr.create()}var QO={object:Ye.lazycreate},K;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(K||(K={}));var jO=(t,e={message:`Input not instance of ${t.name}`})=>gg(r=>r instanceof t,e),yg=Nr.create,Eg=An.create,HO=Ni.create,KO=Sn.create,Tg=_n.create,YO=In.create,JO=bi.create,zO=On.create,ZO=xn.create,XO=Pr.create,ex=ir.create,tx=Rt.create,rx=Di.create,nx=sr.create,ix=Ye.create,sx=Ye.strictCreate,ox=Rn.create,ax=ru.create,ux=wn.create,cx=qt.create,lx=nu.create,dx=Ci.create,px=vi.create,fx=iu.create,mx=bn.create,hx=Dn.create,gx=Cn.create,yx=vn.create,Ex=Lr.create,Tx=ft.create,Ax=dt.create,Sx=Qt.create,_x=ft.createWithPreprocess,Ix=Us.create,Ox=()=>yg().optional(),xx=()=>Eg().optional(),Rx=()=>Tg().optional(),wx={string:t=>Nr.create({...t,coerce:!0}),number:t=>An.create({...t,coerce:!0}),boolean:t=>_n.create({...t,coerce:!0}),bigint:t=>Sn.create({...t,coerce:!0}),date:t=>In.create({...t,coerce:!0})};var bx=j;var uu=ne.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Ag=ne.record(uu,ne.string()),su=ne.record(uu,ne.any()),ou=ne.record(uu,ne.union([ne.any().array(),ne.string()])),Sg=ne.lazy(()=>ne.object({conditions:ne.array(ne.object(_g))})),au=ne.union([ne.string(),ne.number()]),_g={string:Ag.optional(),fuzzy:Ag.optional(),range:ne.record(uu,ne.union([ne.object({high:au,low:au}),ne.object({high:au}),ne.object({low:au})])).optional(),equal:su.optional(),notEqual:su.optional(),empty:su.optional(),notEmpty:su.optional(),oneOf:ou.optional(),contains:ou.optional(),notContains:ou.optional(),containsAny:ou.optional(),$and:Sg.optional(),$or:Sg.optional()},s1=ne.object({query:ne.object({allOr:ne.boolean().optional(),onEmptyFilter:ne.nativeEnum(Oi).optional(),..._g}).optional(),paginate:ne.boolean().optional(),bookmark:ne.union([ne.string(),ne.number()]).nullish(),limit:ne.number().optional(),sort:ne.string().nullish(),sortOrder:ne.nativeEnum(En).optional(),sortType:ne.nativeEnum(Xa).nullish(),version:ne.string().optional(),disableEscaping:ne.boolean().optional(),countRows:ne.boolean().optional()});var Zp={};N(Zp,{APP_DEV:()=>rc,APP_DEV_PREFIX:()=>Tt,APP_PREFIX:()=>Et,AutomationViewMode:()=>tc,BUDIBASE_DATASOURCE_TYPE:()=>Qp,Config:()=>zp,Cookie:()=>Zn,DEFAULT_BB_DATASOURCE_ID:()=>Pi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Yp,DEFAULT_EXPENSES_TABLE_ID:()=>Kp,DEFAULT_INVENTORY_TABLE_ID:()=>Hp,DEFAULT_JOBS_TABLE_ID:()=>jp,DEFAULT_TENANT_ID:()=>Se,DeprecatedViews:()=>Zi,DesignDocuments:()=>bo,DocumentType:()=>Te,GlobalRole:()=>Jp,Header:()=>et,InternalTable:()=>tr,MAX_VALID_DATE:()=>ic,MIN_VALID_DATE:()=>iA,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Jt,SQS_DATASOURCE_INTERNAL:()=>qp,StaticDatabases:()=>xe,UNICODE_MAX:()=>We,USER_METADATA_PREFIX:()=>wo,UserStatus:()=>nc,ViewName:()=>qr});var NQ={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 et=(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))(et||{});var MQ={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 $Q="darkest",WQ="light",vx=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var tt={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"}},Ig={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Pi="datasource_internal_bb_default";var Wr={};N(Wr,{ColumnSplitter:()=>Cp,NoEmptyFilterStrings:()=>JT,buildQuery:()=>zT,cleanupQuery:()=>Pp,fixupFilterArrays:()=>Up,getKeyNumbering:()=>Lp,getValidOperatorsForType:()=>rv,hasFilters:()=>vp,limit:()=>XT,recurseLogicalOperators:()=>Np,removeKeyNumbering:()=>cu,runQuery:()=>Ku,search:()=>sv,sort:()=>ZT,splitFiltersArray:()=>lu});var Ji=V(Og());var Ur={};N(Ur,{filterValueToLabel:()=>kx,hasSchema:()=>Fx,isSupportedUserSearch:()=>Rg,parallelForeach:()=>Mx,processSearchFilters:()=>rd,toMap:()=>Gx,trimOtherProps:()=>Bx,unreachable:()=>Ux});var xg=V(require("lodash/pick")),Lx=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function Ux(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function Mx(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 kx(){return Object.keys(tt).reduce((t,e)=>{let n=tt[e];return t[n.value]=n.label,t},{})}function Fx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function Bx(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Rg(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(Ha(s)){for(let c of t[s].conditions)if(!Rg(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 rd(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=lu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=(0,xg.default)(i,Lx);return s.field=cu(s.field),s})}]}}function Gx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var ze={};N(ze,{cancelableTimeout:()=>wg,cron:()=>Ip,deepGet:()=>nd,duplicateName:()=>ZC,getSequentialName:()=>XC,getUserColor:()=>$x,getUserInitials:()=>Vx,getUserLabel:()=>Wx,isGoogleSheets:()=>Qx,isSQL:()=>jx,lists:()=>bp,retry:()=>Hx,roles:()=>wp,schema:()=>Oo,views:()=>Rp,wait:()=>id,withTimeout:()=>qx});var nd=(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},Vx=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"},$x=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%)`},Wx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function wg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function qx(t,e){let[r,n]=wg(t),i=await Promise.race([e(),r]);return n(),i}function Qx(t){return t==="GOOGLE_SHEETS"}function jx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function id(t){return new Promise(e=>setTimeout(e,t))}async function Hx(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 id(s);try{return await t()}catch(o){n=o}}throw n}var Ip={};N(Ip,{getNextExecutionDates:()=>kC,validate:()=>FC});var QT=V(jt()),jT=V(WT()),qT="(Input cron: ",UC={"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(qT)&&(r=r.split(qT)[0].trim());for(let[n,i]of Object.entries(UC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function kC(t,e=4){let r=jT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function FC(t){let e=(0,QT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:MC(e.getError())}}var Oo={};N(Oo,{decodeNonAscii:()=>Op,encodeNonAscii:()=>VC,isDeprecatedSingleUserColumn:()=>BC,isNumeric:()=>$C,isRequired:()=>GC});function BC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function GC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function VC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Op(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function $C(t){return t.type==="number"||t.type==="bigint"}var Rp={};N(Rp,{basicFields:()=>HC,calculationFields:()=>jC,hasCalculationFields:()=>QC,isBasicViewField:()=>WC,isCalculationField:()=>xo,isCalculationView:()=>qC,isV2:()=>KC,isVisible:()=>HT});var xp=V(require("lodash/pickBy"));function xo(t){return"calculationType"in t}function WC(t){return!xo(t)}function qC(t){return t.type==="calculation"}function QC(t){return Object.values(t.schema||{}).some(xo)}function jC(t){return(0,xp.default)(t.schema||{},xo)}function HT(t){return t.visible!==!1}function HC(t,e){let{visible:r=!0}=e||{};return(0,xp.default)(t.schema||{},n=>!xo(n)&&(!r||HT(n)))}function KC(t){return t.version===2}var wp={};N(wp,{checkForRoleInheritanceLoops:()=>JC});function YC(t){return`role${w}${t}`}function JC(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=YC(s);if(n.has(s)||n.has(o))return!0;if(r.has(s)||r.has(o))return!1;n.add(s);let a=e.get(o)||e.get(s);if(!a)return n.delete(s),!1;let u=Array.isArray(a.inherits)?a.inherits:[a.inherits];for(let c of u)if(c&&i(c))return!0;return n.delete(s),r.add(s),!1}return!!t.find(s=>i(s._id))}var bp={};N(bp,{punctuateList:()=>zC});function zC(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 ZC=(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}`},XC=(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 Hu=V(require("lodash/isPlainObject")),Dp=V(require("lodash/isEmpty"));var ev=/{{([^{].*?)}}/g,YT=Object.values(Ii),tv=[...Object.values(Dr),...Object.values(er),...Object.values(gn)],rv=(t,e,r)=>{let n=tt,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"||Oo.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},JT=[tt.StartsWith.value,tt.Like.value,tt.Equals.value,tt.NotEquals.value,tt.Contains.value,tt.NotContains.value,tt.ContainsAny.value,tt.In.value];function Np(t,e){for(let r of YT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Pp=t=>{for(let e of JT)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===""||nv(s))&&delete t[e][i]}return t=Np(t,Pp),t};function nv(t){return Array.isArray(t)&&t.length===0}var cu=t=>Lp(t).key,Lp=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}},Cp=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}=Lp(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=Op(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function iv(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(ev)||[]).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(Ka(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(Ka(r)){let c=Ig[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(tg(r)||rg(r)||Ka(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 lu(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 zT(t){if(!t)return{};if(Array.isArray(t)&&(t=rd(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=KT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=zT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=lu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=KT(n.logicalOperator)),{[a]:{conditions:o.map(iv).filter(u=>u)}}})},e}function KT(t){return t==="all"?"$and":"$or"}function Up(t){if(!t)return t;for(let e of Object.values(er)){let r=t[e];if(!(r==null||!(0,Hu.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 Np(t,Up),t}function sv(t,e){let r=Ku(t,e.query);e.sort&&(r=ZT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=XT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Ku(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Pp(e),e=Up(e),!vp(e)&&e.onEmptyFilter==="none")return[];let r=(E,I)=>B=>{for(let[L,F]of Object.entries(e[E]||{})){let se=Ha(E)?B:nd(B,cu(L)),Xt=I(se,F);if(e.allOr&&Xt)return!0;if(!e.allOr&&!Xt)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,Hu.default)(I.low)&&(0,Dp.default)(I.low)&&(I.low=void 0),(0,Hu.default)(I.high)&&(0,Dp.default)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let B=+E;if(!isNaN(B)){let F=+I.low,se=+I.high;if(!isNaN(F)&&!isNaN(se))return B>=F&&B<=se;if(isNaN(F)){if(!isNaN(se))return B<=se}else return B>=F}let L=(0,Ji.default)(E);if(L.isValid()){let F=(0,Ji.default)(I.low||"0000-00-00T00:00:00.000Z"),se=(0,Ji.default)(I.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&se.isValid())return L.isAfter(F)&&L.isBefore(se)||L.isSame(F)||L.isSame(se);if(F.isValid())return L.isAfter(F)||L.isSame(F);if(se.isValid())return L.isBefore(se)||L.isSame(se)}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 L of E)if(o(L,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 B=(0,Ji.default)(E);if(B.isValid()){let L=(0,Ji.default)(I);if(L.isValid())return B.isSame(L)}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(B=>parseFloat(B))),Array.isArray(I)?I.some(B=>o(E,B)):!1)),f=E=>(I,B)=>!Array.isArray(I)||(typeof B=="string"&&(B=B.split(","),typeof I[0]=="number"&&(B=B.map(L=>parseFloat(L)))),!Array.isArray(B))?!1:B.length===0?!0:B[E](L=>o(I,L)),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 B of I)if(!Ku([E],B).length)return!1;return!0}),S=r("$or",(E,I)=>{if(!I.length)return!1;for(let B of I)if(Ku([E],{...B,allOr:!0}).length)return!0;return!1}),R=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},B=Object.entries(e||{}).filter(([L,F])=>!["allOr","onEmptyFilter"].includes(L)&&F&&Object.keys(F).length>0).map(([L])=>I[L]?.(E)??!1);return vp(e)?e.allOr?B.some(L=>L===!0):B.every(L=>L===!0):!0};return t.filter(R)}function ZT(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 XT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var vp=t=>{if(!t)return!1;let e=r=>{for(let n of YT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of tv){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 at={};N(at,{applications:()=>kp,automations:()=>Fp,screens:()=>Wp,users:()=>$p});var kp={};N(kp,{getDevAppID:()=>ov,getProdAppID:()=>Yu});var Mp=Cr("app"),Ro=Cr("app_dev");function ov(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Ro))return t;let e=t.split(Mp);e.shift();let r=e.join(Mp);return`${Ro}${r}`}function Yu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Ro))return t;let e=t.split(Ro);e.shift();let r=e.join(Ro);return`${Mp}${r}`}var Fp={};N(Fp,{checkForCollectStep:()=>lv,isAppAction:()=>cv,isRowAction:()=>av,isWebhookAction:()=>uv});function av(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function uv(t){return t.definition.trigger?.stepId==="WEBHOOK"}function cv(t){return t.definition.trigger?.stepId==="APP"}function eA(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(ag(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(eA(r))return!0}}return!1}function lv(t){return eA(t.definition.steps)}var $p={};N($p,{canCreateApps:()=>dv,containsUserID:()=>Ev,getGlobalUserID:()=>yv,getUserAppGroups:()=>Tv,getUserGroups:()=>Vp,hasAdminPermissions:()=>Gp,hasAppBuilderPermissions:()=>Zu,hasBuilderPermissions:()=>hv,hasCreatorPermissions:()=>Xu,isAdmin:()=>zu,isAdminOrBuilder:()=>pv,isAdminOrGlobalBuilder:()=>fv,isBuilder:()=>Bp,isCreator:()=>gv,isGlobalBuilder:()=>Ju,userAppAccessList:()=>Av});function Bp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Yu(e))):!1}function Ju(t){return Bp(t)&&!Zu(t)||zu(t)}function dv(t){return Ju(t)||Xu(t)}function zu(t){return t?Gp(t):!1}function pv(t,e){return Bp(t,e)||zu(t)}function fv(t){return Ju(t)||zu(t)}function Zu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function mv(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}function hv(t){return t?t.builder?.global||Zu(t)||Xu(t):!1}function Gp(t){return t?!!t.admin?.global:!1}function Xu(t){return t?!!t.builder?.creator:!1}function gv(t){return t?Ju(t)||Gp(t)||Xu(t)||Zu(t)||mv(t):!1}function yv(t){if(typeof t!="string")return t;let e=`ro${w}ta_users${w}`;return t.startsWith(e)?t.split(e)[1]:t}function Ev(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 Tv(t,e,r){let n=Yu(t);return Vp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function Av(t,e){let n=Vp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Wp={};N(Wp,{findInSettings:()=>Sv});function Sv(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 sH={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},oH={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},aH={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 hH={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 EH={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 SH={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 OH={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 wH={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 CH={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 PH={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 MH={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 BH={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 $H={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 QH={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 Pv={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},KH={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(Hl),pretty:Object.values(Pv)},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 zH={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 eK={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 nK={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(Kl)},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 tA=(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))(tA||{}),oK={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(tA)}},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 rA=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(rA||{}),cK={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(rA),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 Gv={ascending:"Ascending",descending:"Descending"},pK={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(En),pretty:Object.values(Gv)},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 hK={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 EK={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 SK={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var OK={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"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 wK={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 CK={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 PK={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 MK={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 BK={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 nA=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(nA||{}),$K={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(nA)}},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 QK={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(ql),pretty:Object.values(og)},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 KK={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(Ql),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(jl),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 zK={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 eY={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 nN={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 sN={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 aN={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 cN={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 dN={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 fN={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 hN={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 gY=Object.values(Te).sort((t,e)=>e.length-t.length);var yY=Object.values(Wl).sort((t,e)=>e.length-t.length);var EY=new RegExp("^datasource_plus_(.+)__(.+)$"),ec=t=>e=>!!e&&e.startsWith(`${t}${w}`);var TY=ec("ta"),AY=ec("view"),SY=ec("datasource"),_Y=ec("query");var tc=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(tc||{}),qr=(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))(qr||{}),Zi={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"}},Et=Cr("app"),rc=Cr("app_dev"),Tt=rc,qp="internal",Qp="budibase",Jt="_design/sqlite",jp="ta_bb_jobs",Hp="ta_bb_inventory",Kp="ta_bb_expenses",Yp="ta_bb_employee",wo=`ro${w}ta_users${w}`,bo=(r=>(r[r.SQLITE=Jt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(bo||{});var nc=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(nc||{}),Zn=(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))(Zn||{}),Jp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Jp||{}),zp=(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))(zp||{}),iA=new Date(-2147483647e3),ic=new Date(2147483647e3),Se="default";var va={};N(va,{CacheKey:()=>ve,TTL:()=>ai,app:()=>ta,bustCache:()=>as,destroy:()=>Ko,docWritethrough:()=>nh,generic:()=>Yo,get:()=>ui,invite:()=>Sm,keys:()=>Sc,passwordReset:()=>th,store:()=>mr,user:()=>cn,withCache:()=>Jr,withCacheWithDynamicTTL:()=>vA,writethrough:()=>eh});var Yo={};N(Yo,{CacheKey:()=>ve,TTL:()=>ai,bustCache:()=>as,destroy:()=>Ko,get:()=>ui,keys:()=>Sc,store:()=>mr,withCache:()=>Jr,withCacheWithDynamicTTL:()=>vA});var _e={};N(_e,{DEFAULT_TENANT_ID:()=>Se,baseGlobalDBName:()=>ko,doInAppContext:()=>nP,doInAppMigrationContext:()=>sP,doInAutomationContext:()=>ZN,doInContext:()=>Tf,doInEnvironmentContext:()=>uP,doInFeatureFlagOverrideContext:()=>Rf,doInIPContext:()=>_f,doInIdentityContext:()=>Co,doInLicenseContext:()=>eP,doInScimContext:()=>cP,doInSelfHostTenantUsingCloud:()=>XN,doInTenant:()=>Qe,ensureSnippetContext:()=>wA,getAppDB:()=>ss,getAppId:()=>Me,getAuditLogDBName:()=>xA,getAuditLogsDB:()=>dP,getAutomationId:()=>Af,getCurrentContext:()=>ti,getDevAppDB:()=>fP,getDevAppId:()=>oP,getEnvironmentVariables:()=>lP,getFeatureFlagOverrides:()=>xf,getFeatureFlags:()=>If,getGlobalDB:()=>ae,getGlobalDBName:()=>ei,getIP:()=>Sf,getIdentity:()=>fr,getLicense:()=>tP,getPlatformURL:()=>Ef,getProdAppDB:()=>pP,getProdAppId:()=>aP,getScimDBName:()=>KN,getSelfHostCloudDB:()=>rP,getTableForView:()=>mP,getTenantIDFromAppID:()=>is,getTenantId:()=>Q,identity:()=>Do,isMultiTenant:()=>Hr,isScim:()=>Mt,isSelfHostUsingCloud:()=>mc,isTenancyEnabled:()=>JN,isTenantIdSet:()=>YN,setFeatureFlags:()=>Of,setTableForView:()=>hP});var Do={};N(Do,{doInAccountContext:()=>TN,doInIdentityContext:()=>ef,doInUserContext:()=>tf,getAccountUserId:()=>sA,getIdentity:()=>Xp});function Xp(){return fr()}function ef(t,e){return Co(t,e)}function tf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return ef(n,r)}function TN(t,e){let r=sA(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return ef(i,e)}function sA(t){let e;return Ja(t)?e=t.budibaseUserId:e=t.accountId,e}var ac=require("fs");var uA=require("lodash"),rf=require("crypto"),vo=require("path"),AN=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,vo.resolve)((0,vo.join)(__dirname,"..","..","..")),oA=!1;!oA&&oc()&&!nf()&&(require("dotenv").config({path:(0,vo.join)(AN,".env")}),oA=!0);function nf(){return cA()}function cA(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function oc(){return process.env.NODE_ENV!=="production"}function SN(t){if(t)return parseInt(t)}var Xi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},aA=!!parseInt(process.env.SELF_HOSTED||"");function _N(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function IN(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function ON(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,ac.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,ac.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(oc()&&!nf())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 xN(){return Pt.SERVICE_TYPE==="worker"}function RN(){return Pt.SERVICE_TYPE==="apps"}function wN(){return Pt.BUDIBASE_ENVIRONMENT==="QA"}function bN(){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 Pt={isTest:nf,isJest:cA,isDev:oc,isWorker:xN,isApps:RN,isQA:wN,isProd:()=>!oc(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,rf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,rf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:_N(),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:aA,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||Xi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Xi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Xi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Xi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Xi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Xi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:bN(),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:IN(),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:aA?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...ON(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Pt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",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:SN(process.env.BSON_BUFFER_SIZE)};function No(t){let e=(0,uA.cloneDeep)(Pt),r;for(r in t)Pt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Pt._set(n,i)}}function lA(t,e){let r=No(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var dA=["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(Pt))e==="0"&&(Pt[t]=0),e==="false"&&(Pt[t]=0);var h=Pt;var pA=require("async_hooks"),be=class t{static{this.storage=new pA.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var sf="No app provided";function Qr(t){if(!t)throw sf;return t.startsWith(Tt)}function DN(t){if(!t)throw sf;return t.startsWith(Et)&&!Qr(t)}function Po(t){if(!t)throw sf;return Qr(t.appId)}function uc(t){if(!t||t.startsWith(Tt))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${Tt}${r}`}var es=uc;function ut(t){if(!t||!t.startsWith(Tt))return t;let e=t.split(Tt);e.shift();let r=e.join(Tt);return`${Et}${r}`}function CN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Lt=t=>{let e=of(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:of(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},of=(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 IA=V(require("@budibase/nano"));var fA=V(require("node-fetch"));function cc(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function mA(t,e="GET",r){let{url:n,cookie:i}=Lt(),s=`${n}/${t}`;return await Lo({url:s,cookie:i,method:e,body:r})}async function Lo({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,fA.default)(cc(encodeURI(t)),i)}async function af(t,e="GET",r){let n=await mA(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Xn=V(require("pouchdb"));var hA,gA=!1,uf=(t={})=>{let{url:e,cookie:r}=Lt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Xn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Xn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Xn.default.plugin(i.plugin),Xn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Xn.default.plugin(i)}return Xn.default.defaults(n)};function lc(t){hA=uf(t),gA=!0}var NN=()=>{if(!gA)throw new Error("init has not been called")};function At(t,e){NN();let r=new hA(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 Uo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var yA=require("uuid");function me(){return(0,yA.v4)().replace(/-/g,"")}var Ie=V(require("dd-trace")),ts=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 gf={};N(gf,{breakExternalTableId:()=>df,breakRowIdField:()=>QN,buildExternalTableId:()=>BN,convertRowId:()=>qN,encodeTableId:()=>GN,encodeViewId:()=>VN,extractDate:()=>ff,generateRowIdField:()=>$N,getNativeSql:()=>rs,isExternalTable:()=>lf,isExternalTableID:()=>dc,isInternalTableID:()=>FN,isRowId:()=>WN,isValidFilter:()=>fc,isValidISODateString:()=>pc,isValidISODateStringWithoutTimezone:()=>pf,isValidTime:()=>mf,sqlLog:()=>Mo,validateManyToMany:()=>hf});var cf=`${w}${w}`,TA=/^\[.*]$/g,PN=encodeURIComponent(" "),LN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,UN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,MN=/(\d{4}-\d{2}-\d{2})/,kN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function dc(t){return t.startsWith("datasource"+w)}function FN(t){return!dc(t)}function rs(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 lf(t){return t?.sourceId&&t.sourceId.includes("datasource"+w)&&t?.sourceId!==Pi||t?.sourceType==="external"?!0:!!(t?._id&&dc(t._id))}function BN(t,e){return`${t}${cf}${encodeURIComponent(e)}`}function GN(t){return dc(t)?encodeURIComponent(t):t}function VN(t){return encodeURIComponent(t)}function df(t){let e=t.split(cf),r=e.shift(),n=e.join(cf);if(n.includes(PN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function $N(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 WN(t){return Array.isArray(t)||typeof t=="string"&&t.match(TA)!=null}function qN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(TA)!=null?t.substring(1,t.length-1):t}function QN(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 pc(t){let e=t.trim();if(!LN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function pf(t){let e=t.trim();if(!UN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function ff(t){let e=t.match(MN);if(e)return e[0]}function fc(t){return t!=null&&t!==""}function mf(t){return kN.test(t)}function Mo(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 jN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function hf(t){if(jN(t))return t}var AA="Database does not exist.";function SA(t){return(0,IA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var jr=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 HN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new ns(t,r,e);return new ts(n)}var ns=class t{constructor(e,r,n){this.couchInfo=Lt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Lt(n),this.instanceNano=SA(this.couchInfo)),t.nano||t.init()}static init(){let e=Lt();t.nano=SA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Lo({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 jr(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===AA)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new jr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new jr(`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(ng(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 jr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=me()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return 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===AA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=cc(`${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 Lo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new jr("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}/${Jt}`;return Mo("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(Jt)){let e=await this.get(Jt);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 jr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return At(this.name).dump(e,r)}async load(e){return At(this.name).load(e)}async createIndex(e){return At(this.name).createIndex(e)}async deleteIndex(e){return At(this.name).deleteIndex(e)}async getIndexes(){return At(this.name).getIndexes()}};function qe(t,e){return new ts(new ns(t,e))}async function ct(t,e,r){let n=qe(t,r);return await e(n)}async function yf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await af(e)}var OA=null;function ei(t){return t||(t=Q()),ko(t)}function xA(t){return t||(t=Q()),t===Se?xe.AUDIT_LOGS.name:`${t}${w}${xe.AUDIT_LOGS.name}`}function KN(t){return t||(t=Q()),t===Se?xe.SCIM_LOGS.name:`${t}${w}${xe.SCIM_LOGS.name}`}function ko(t){return!t||t===Se?xe.GLOBAL.name:`${t}${w}${xe.GLOBAL.name}`}function Ef(){return h.PLATFORM_URL}function Hr(){return!!h.MULTI_TENANCY}function YN(){return!!be.get()?.tenantId}function JN(){return h.MULTI_TENANCY}function is(t){if(!t)return;if(!Hr())return Se;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 zN(t){let e;try{e=be.get()}catch{e={}}return e={...e,...t},e}async function Ut(t,e){iP();let r=zN(t);return be.run(r,e)}async function ZN(t){return await wA(),await Ut({tenantId:is(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Tf(t,e){let r=is(t);return Ut({tenantId:r,appId:t},e)}async function Qe(t,e){return h.MULTI_TENANCY||(t=t||Se),Ut(t?{tenantId:t}:{},e)}async function XN(t,e){return Ut({tenantId:t,isSelfHostUsingCloud:!0},e)}async function eP(t,e){return Ut({license:t},e)}function tP(){return be.get()?.license}function mc(){return!!be.get()?.isSelfHostUsingCloud}function rP(){let t=be.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return qe(xe.SELF_HOST_CLOUD.name)}async function nP(t,e){return RA(t,e)}async function RA(t,e,r){if(!t)throw new Error("appId is required");let n=is(t),i={appId:t,...r};return n&&(i.tenantId=n),Ut(i,e)}async function Co(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Ut(r,e)}function iP(){if(be.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function sP(t,e){return RA(t,e,{isMigrating:!0})}function fr(){try{return be.get()?.identity}catch{}}function Q(){if(!Hr())return Se;let e=be.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Af(){return be.get()?.automationId}function Me(){let e=be.get()?.appId;return!e&&h.isTest()&&OA?OA:e}function Sf(){return be.get()?.ip}var oP=()=>{let t=Me();if(!t)throw new Error("Could not get appId");return es(t)},aP=()=>{let t=Me();if(!t)throw new Error("Could not get appId");return ut(t)};function uP(t,e){if(!t)throw new Error("Must supply environment variables.");return Ut({environmentVariables:t},e)}function cP(t){return Ut({isScim:!0},t)}function _f(t,e){return Ut({ip:t},e)}async function wA(){let t=ti();if(!t||t.snippets)return;let e,r=ss();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function lP(){let t=be.get();return t.environmentVariables?t.environmentVariables:null}function ae(){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 qe(ko(t?.tenantId))}function dP(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return qe(xA())}function ss(t){let e=Me();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(mc())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return qe(e,t)}function pP(t){let e=Me();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return qe(ut(e),t)}function fP(t){let e=Me();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return qe(uc(e),t)}function Mt(){return!!be.get()?.isScim}function ti(){try{return be.get()}catch{return}}function If(t){let e=ti();if(e)return e.featureFlagCache?.[t]}function Of(t,e){let r=ti();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function xf(){return ti()?.featureFlagOverrides||{}}async function Rf(t,e){return await Ut({featureFlagOverrides:t},e)}function mP(t){let e=ti();if(e)return e.viewToTableCache?.[t]}function hP(t,e){let r=ti();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Yr={};N(Yr,{getAppClient:()=>Ac,getCacheClient:()=>Nf,getDocWritethroughClient:()=>AP,getInviteClient:()=>ii,getLockClient:()=>Lf,getPasswordResetClient:()=>Ho,getSessionClient:()=>Kr,getSocketClient:()=>TP,getUserClient:()=>jo,getWritethroughClient:()=>Pf,init:()=>kt,shutdown:()=>CA});var Tc=V(require("ioredis"));var yc={};N(yc,{Databases:()=>wf,SEPARATOR:()=>os,SelectableDatabase:()=>hc,getRedisClusterOptions:()=>bf,getRedisConnectionDetails:()=>gc,getRedisOptions:()=>ri,removeDbPrefix:()=>Df});var os="-",wf=(_=>(_.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",_))(wf||{}),hc=(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))(hc||{});function gc(){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 bf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...ri(),tls:{}}}}function ri(){let{host:t,password:e,port:r}=gc();return{connectTimeout:3e4,port:r,host:t,password:e}}function Df(t){let e=t.split(os);return e.length>=2?(e.shift(),e.join(os)):e[0]}var Ec=require("dd-trace"),DA=require("lodash"),bA;if(h.MOCK_REDIS)try{bA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function gP(t=0){return await Ec.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new bA(ri());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=gc();r=new Tc.Cluster([{host:n,port:i}],bf())}else r=new Tc.default(ri());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 yP(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:Df(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function EP(t){return t.isCluster}var Cf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await Ec.tracer.trace("RedisWrapper.init",async n=>{let i=await gP(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return Ec.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${os}${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}${os}${e}`;let n;EP(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await yP(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,DA.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,Zo.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,uO.default)(e).map(s=>new oO.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new sO.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Zo.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,Zo.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,Zo.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)}}};Xo.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,aO.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(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});Fi.create=Oh;Fi.default=void 0;var cO=lO(xt());function lO(t){return t&&t.__esModule?t:{default:t}}var Hc=cO.default,dO=Hc;Fi.default=dO;function Oh(){return new Hc}Oh.prototype=Hc.prototype});var Rn=G(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.default=void 0;var fO=t=>t==null;ea.default=fO});var xh=G($i=>{"use strict";Object.defineProperty($i,"__esModule",{value:!0});$i.create=Ch;$i.default=void 0;var pO=bh(xt()),Dh=bt(),Rh=bh(Rn());function bh(t){return t&&t.__esModule?t:{default:t}}function Ch(){return new Bi}var Bi=class extends pO.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}})}};$i.default=Bi;Ch.prototype=Bi.prototype});var Nh=G(Gi=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.create=Ph;Gi.default=void 0;var At=bt(),vt=vh(Rn()),mO=vh(xt());function vh(t){return t&&t.__esModule?t:{default:t}}var hO=/^((([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,EO=/^((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,gO=/^(?:[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,yO=t=>(0,vt.default)(t)||t===t.trim(),TO={}.toString();function Ph(){return new Vi}var Vi=class extends mO.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===TO?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(hO,{name:"email",message:e,excludeEmptyString:!0})}url(e=At.string.url){return this.matches(EO,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=At.string.uuid){return this.matches(gO,{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:yO})}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()})}};Gi.default=Vi;Ph.prototype=Vi.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()),AO=Uh(xt());function Uh(t){return t&&t.__esModule?t:{default:t}}var SO=t=>t!=+t;function Lh(){return new Wi}var Wi=class extends AO.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"&&!SO(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=Wi;Lh.prototype=Wi.prototype});var kh=G(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.default=IO;var _O=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function IO(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=_O.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(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.create=Zc;Qi.default=void 0;var OO=ta(kh()),Fh=bt(),Bh=ta(Rn()),wO=ta(Mr()),DO=ta(xt());function ta(t){return t&&t.__esModule?t:{default:t}}var Jc=new Date(""),RO=t=>Object.prototype.toString.call(t)==="[object Date]";function Zc(){return new bn}var bn=class extends DO.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,OO.default)(e),isNaN(e)?Jc:new Date(e))})})}_typeCheck(e){return RO(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(wO.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)}})}};Qi.default=bn;bn.INVALID_DATE=Jc;Zc.prototype=bn.prototype;Zc.INVALID_DATE=Jc});var Gh=G((VM,Xc)=>{"use strict";Xc.exports=function(t){return Vh(bO(t),t)};Xc.exports.array=Vh;function Vh(t,e){var r=t.length,n=new Array(r),i={},s=r,o=CO(e),a=xO(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 bO(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 CO(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 xO(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Wh=G(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});el.default=MO;var vO=ra(require("lodash/has")),PO=ra(Gh()),NO=Ui(),UO=ra(Mr()),LO=ra(wn());function ra(t){return t&&t.__esModule?t:{default:t}}function MO(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,NO.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,vO.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),UO.default.isRef(o)&&o.isSibling?i(o.path,s):(0,LO.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return PO.default.array(n,r).reverse()}});var Qh=G(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});tl.default=kO;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 kO(t){return(e,r)=>qh(t,e)-qh(t,r)}});var Zh=G(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.create=Jh;ji.default=void 0;var Kh=St(require("lodash/has")),jh=St(require("lodash/snakeCase")),FO=St(require("lodash/camelCase")),BO=St(require("lodash/mapKeys")),$O=St(require("lodash/mapValues")),VO=Ui(),Yh=bt(),GO=St(Wh()),zh=St(Qh()),WO=St(jo()),qO=St(Ur()),rl=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 QO(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var KO=(0,zh.default)([]),Ki=class extends rl.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=KO,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(!qO.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,WO.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 rl.default&&s instanceof rl.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,GO.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,VO.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=QO(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,BO.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(FO.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,$O.default)(this.fields,r=>r.describe()),e}};ji.default=Ki;function Jh(t){return new Ki(t)}Jh.prototype=Ki.prototype});var eE=G(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.create=Xh;Hi.default=void 0;var nl=xn(Rn()),jO=xn(wn()),YO=xn(Ni()),il=bt(),HO=xn(jo()),zO=xn(Ur()),JO=xn(xt());function xn(t){return t&&t.__esModule?t:{default:t}}function na(){return na=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},na.apply(this,arguments)}function Xh(t){return new Yi(t)}var Yi=class extends JO.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,na({},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(!zO.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=na({},r,{path:_,strict:!0,parent:p,index:g,originalValue:f[g]});E[g]=(w,y)=>c.validate(T,S,y)}(0,HO.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,jO.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,YO.default)(e));return r.innerType=e,r}length(e,r=il.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,nl.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||il.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,nl.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||il.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,nl.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)}};Hi.default=Yi;Xh.prototype=Yi.prototype});var tE=G(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.create=ew;zi.default=void 0;var ZO=XO(wn());function XO(t){return t&&t.__esModule?t:{default:t}}function ew(t){return new ia(t)}var ia=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,ZO.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)}},tw=ia;zi.default=tw});var rE=G(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.default=iw;var rw=nw(bt());function nw(t){return t&&t.__esModule?t:{default:t}}function iw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{rw.default[e][r]=t[e][r]})})}});var al=G(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.addMethod=dw;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 ol.default}});Object.defineProperty(te,"bool",{enumerable:!0,get:function(){return ol.create}});Object.defineProperty(te,"boolean",{enumerable:!0,get:function(){return ol.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 sw.create}});Object.defineProperty(te,"lazy",{enumerable:!0,get:function(){return ow.create}});Object.defineProperty(te,"ValidationError",{enumerable:!0,get:function(){return aw.default}});Object.defineProperty(te,"reach",{enumerable:!0,get:function(){return uw.default}});Object.defineProperty(te,"isSchema",{enumerable:!0,get:function(){return cE.default}});Object.defineProperty(te,"setLocale",{enumerable:!0,get:function(){return cw.default}});Object.defineProperty(te,"BaseSchema",{enumerable:!0,get:function(){return lw.default}});var nE=Br(wh()),ol=Br(xh()),iE=Br(Nh()),sE=Br(Mh()),oE=Br($h()),aE=Br(Zh()),uE=Br(eE()),sw=Mr(),ow=tE(),aw=Ji(Ur()),uw=Ji(jc()),cE=Ji(wn()),cw=Ji(rE()),lw=Ji(xt());function Ji(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 dw(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(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var ul=ll();cl.default=()=>{(0,ul.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,ul.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,ul.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 ll=G(Te=>{"use strict";var fw=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]}),pw=Te&&Te.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),mw=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)&&fw(e,t,r);return pw(e,t),e},hw=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=mw(al());al();var Zi=nt(),Ew=hw(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(),gw=t=>$r[t]?(0,Zi.valid)($r[t]):(0,Zi.err)(`Option preset '${t}' not found.`);Te.getOptionPreset=gw;var yw=()=>$r;Te.getOptionPresets=yw;var Tw=(t,e)=>{$r[t]=fE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Te.registerOptionPreset=Tw;var Aw=t=>{var e,r,n,i,s,o,a,u,c,l,d,f,m,p,E,g,T,_,S,w;try{(0,Ew.default)();let y;if(t.preset)if(typeof t.preset=="string"){if(!$r[t.preset])return(0,Zi.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,Zi.valid)(v)}catch(y){return(0,Zi.err)(y.errors)}};Te.validateOptions=Aw});var Tt=G((Xi,fl)=>{"use strict";var Gr=Xi&&Xi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Xi,"__esModule",{value:!0});var Vr=nt(),Sw=Gr(Vm()),_w=Gr(Gm()),Iw=Gr(Wm()),Ow=Gr(qm()),ww=Gr(Qm()),Dw=Gr(Km()),Rw=Gr(jm()),bw=ll();it();var Cw=(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)},dl=(t,e={})=>{let r=(0,bw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Cw(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,Sw.default)(s,n)),o.push((0,_w.default)(s,n)),o.push((0,Iw.default)(s,n)),o.push((0,Ow.default)(s,n)),o.push((0,ww.default)(s,n)),o.push((0,Dw.default)(s,n)),n.useYears&&o.push((0,Rw.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)};Xi.default=dl;fl.exports=dl;fl.exports.default=dl});var Gg=G(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});var Nt=class extends Error{},_l=class extends Nt{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Il=class extends Nt{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Ol=class extends Nt{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},nr=class extends Nt{},fa=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",pa={year:C,month:C,day:C},WE={year:C,month:ut,day:C},xw={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},vw={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}},pl=null,ss=class t extends sr{static get instance(){return pl===null&&(pl=new t),pl}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 is(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},wl=new Map;function Pw(t){let e=wl.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"}),wl.set(t,e)),e}var Nw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Uw(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 Lw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Nw[s];s==="era"?n[a]=o:Q(a)||(n[a]=parseInt(o,10))}return n}var ml=new Map,Ut=class t extends sr{static create(e){let r=ml.get(e);return r===void 0&&ml.set(e,r=new t(e)),r}static resetCache(){ml.clear(),wl.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 is(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=Pw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Lw(n,r):Uw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let f=Aa({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 Mw(t,e={}){let r=JSON.stringify([t,e]),n=pE[r];return n||(n=new Intl.ListFormat(t,e),pE[r]=n),n}var Dl=new Map;function Rl(t,e={}){let r=JSON.stringify([t,e]),n=Dl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Dl.set(r,n)),n}var bl=new Map;function kw(t,e={}){let r=JSON.stringify([t,e]),n=bl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),bl.set(r,n)),n}var Cl=new Map;function Fw(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Cl.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(t,e),Cl.set(i,s)),s}var ts=null;function Bw(){return ts||(ts=new Intl.DateTimeFormat().resolvedOptions().locale,ts)}var xl=new Map;function ug(t){let e=xl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),xl.set(t,e)),e}var vl=new Map;function $w(t){let e=vl.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...cg,...e}),vl.set(t,e)}return e}function Vw(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=Rl(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Rl(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Gw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Ww(t){let e=[];for(let r=1;r<=12;r++){let n=se.utc(2009,r,1);e.push(t(n))}return e}function qw(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 sa(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}function Qw(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||ug(t.locale).numberingSystem==="latn"}var Pl=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=kw(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):Wl(e,3);return fe(r,this.padTo)}}},Nl=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=Rl(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()}},Ul=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&Eg()&&(this.rtf=Fw(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):fD(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":Bw()),u=r||re.defaultNumberingSystem,c=n||re.defaultOutputCalendar,l=Ml(i)||re.defaultWeekSettings;return new t(a,u,c,l,o)}static resetCache(){ts=null,Dl.clear(),bl.clear(),Cl.clear(),xl.clear(),vl.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]=Vw(e);this.locale=o,this.numberingSystem=r||a||null,this.outputCalendar=n||u||null,this.weekSettings=i,this.intl=Gw(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=Qw(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,Ml(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 sa(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]=Ww(o)}return this.monthsCache[s][e]})}weekdays(e,r=!1){return sa(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]=qw(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return sa(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 sa(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 Pl(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Nl(e,this.intl,r)}relFormatter(e={}){return new Ul(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Mw(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()?$w(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})`}},hl=null,$e=class t extends sr{static get utcInstance(){return hl===null&&(hl=new t(0)),hl}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(Sa(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${is(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${is(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return is(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}},ma=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(Jw(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?ss.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 ma(t)}var Bl={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]},Kw=Bl.hanidec.replace(/[\[|\]]/g,"").split("");function jw(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(Bl.hanidec)!==-1)e+=Kw.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 Ll=new Map;function Yw(){Ll.clear()}function ot({numberingSystem:t},e=""){let r=t||"latn",n=Ll.get(r);n===void 0&&(n=new Map,Ll.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${Bl[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,ss.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=Ml(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(),Yw()}},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 $l(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+(as(t)?dg:lg)[e-1]}function pg(t,e){let r=as(t)?dg:lg,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Vl(t,e){return(t-e+7)%7+1}function ha(t,e=4,r=1){let{year:n,month:i,day:s}=t,o=fg(n,i,s),a=Vl($l(n,i,s),r),u=Math.floor((o-a+14-e)/7),c;return u<1?(c=n-1,u=os(c,e,r)):u>os(n,e,r)?(c=n+1,u=1):c=n,{weekYear:c,weekNumber:u,weekday:a,..._a(t)}}function IE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:s}=t,o=Vl($l(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,..._a(t)}}function El(t){let{year:e,month:r,day:n}=t,i=fg(e,r,n);return{year:e,ordinal:i,..._a(t)}}function OE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=pg(e,r);return{year:e,month:n,day:i,..._a(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 Hw(t,e=4,r=1){let n=Ta(t.weekYear),i=He(t.weekNumber,1,os(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 zw(t){let e=Ta(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=Ta(t.year),r=He(t.month,1,12),n=He(t.day,1,Ea(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 Ta(t){return typeof t=="number"&&t%1===0}function Jw(t){return typeof t=="string"}function Zw(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 Xw(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 eD(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Mn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Ml(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 Ta(t)&&t>=e&&t<=r}function tD(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 Gl(t){if(!(Q(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Wl(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 as(t){return t%4===0&&(t%100!==0||t%400===0)}function Un(t){return as(t)?366:365}function Ea(t,e){let r=tD(e-1,12)+1,n=t+(e-r)/12;return r===2?as(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Aa(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-Vl($l(t,1,e),r)+e-1}function os(t,e=4,r=1){let n=RE(t,e,r),i=RE(t+1,e,r);return(Un(t)-n+i)/7}function kl(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 Sa(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 ga(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 is(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 _a(t){return eD(t,["hour","minute","second","millisecond"])}var rD=["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"],nD=["J","F","M","A","M","J","J","A","S","O","N","D"];function Sg(t){switch(t){case"narrow":return[...nD];case"short":return[...Ag];case"long":return[...rD];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"],iD=["M","T","W","T","F","S","S"];function Og(t){switch(t){case"narrow":return[...iD];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"],sD=["Before Christ","Anno Domini"],oD=["BC","AD"],aD=["B","A"];function Dg(t){switch(t){case"narrow":return[...aD];case"short":return[...oD];case"long":return[...sD];default:return null}}function uD(t){return wg[t.hour<12?0:1]}function cD(t,e){return Og(e)[t.weekday-1]}function lD(t,e){return Sg(e)[t.month-1]}function dD(t,e){return Dg(e)[t.year<0?0:1]}function fD(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 pD={D:pa,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 pD[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?uD(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,p)=>n?lD(e,m):s(p?{month:m}:{month:m,day:"numeric"},"month"),c=(m,p)=>n?cD(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?dD(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))?)/,mD=`(?:${Cg.source}?(?:\\[(${Rg.source})\\])?)?`,ql=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,xg=RegExp(`${ql.source}${mD}`),Ql=RegExp(`(?:[Tt]${xg.source})?`),hD=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,ED=/(\d{4})-?W(\d\d)(?:-?(\d))?/,gD=/(\d{4})-?(\d{3})/,yD=bg("weekYear","weekNumber","weekDay"),TD=bg("year","ordinal"),AD=/(\d{4})-(\d\d)-(\d\d)/,vg=RegExp(`${ql.source} ?(?:${Cg.source}|(${Rg.source}))?`),SD=RegExp(`(?: ${vg.source})?`);function Ln(t,e,r){let n=t[e];return Q(n)?r:tr(n)}function _D(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:Gl(t[e+3])},null,e+4]}function us(t,e){let r=!t[e]&&!t[e+1],n=Sa(t[e+1],t[e+2]),i=r?null:$e.instance(n);return[{},i,e+3]}function cs(t,e){let r=t[e]?Ut.create(t[e]):null;return[{},r,e+1]}var ID=RegExp(`^T?${ql.source}$`),OD=/^-?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 wD(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(Gl(c),d)}]}var DD={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 Kl(t,e,r,n,i,s,o){let a={year:e.length===2?kl(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 RD=/^(?:(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 bD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,f=Kl(e,i,n,r,s,o,a),m;return u?m=DD[u]:c?m=0:m=Sa(l,d),[f,new $e(m)]}function CD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var xD=/^(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$/,vD=/^(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 CE(t){let[,e,r,n,i,s,o,a]=t;return[Kl(e,i,n,r,s,o,a),$e.utcInstance]}function ND(t){let[,e,r,n,i,s,o,a]=t;return[Kl(e,a,r,n,i,s,o),$e.utcInstance]}var UD=kn(hD,Ql),LD=kn(ED,Ql),MD=kn(gD,Ql),kD=kn(xg),Pg=Fn(_D,$n,us,cs),FD=Fn(yD,$n,us,cs),BD=Fn(TD,$n,us,cs),$D=Fn($n,us,cs);function VD(t){return Bn(t,[UD,Pg],[LD,FD],[MD,BD],[kD,$D])}function GD(t){return Bn(CD(t),[RD,bD])}function WD(t){return Bn(t,[xD,CE],[vD,CE],[PD,ND])}function qD(t){return Bn(t,[OD,wD])}var QD=Fn($n);function KD(t){return Bn(t,[ID,QD])}var jD=kn(AD,SD),YD=kn(vg),HD=Fn($n,us,cs);function zD(t){return Bn(t,[jD,Pg],[YD,HD])}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}},JD={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,ZD={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"],XD=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 XD.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?ZD:JD;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:ga(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]=qD(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]=KD(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 Ol(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 fa(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+=Wl(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,...ga(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 eR(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 Il(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=es(e),i=es(r),s=eR(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=he.fromDurationLike(r),i=es(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=he.fromDurationLike(r),i=es(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(es).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=pa,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 tR(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 rR(t,e,r,n){let[i,s,o,a]=tR(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 nR="missing Intl.DateTimeFormat.formatToParts support";function Z(t,e=r=>r){return{regex:t,deser:([r])=>e(jw(r))}}var iR=String.fromCharCode(160),Lg=`[ ${iR}]`,Mg=new RegExp(Lg,"g");function sR(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(sR).join("|")),deser:([r])=>t.findIndex(n=>UE(r)===UE(n))+e}}function LE(t,e){return{regex:t,deser:([,r,n])=>Sa(r,n),groups:e}}function oa(t){return{regex:t,deser:([e])=>e}}function oR(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function aR(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(oR(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,kl);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 oa(l);case"uu":return oa(a);case"uuu":return Z(r);case"a":return at(e.meridiems(),0);case"kkkk":return Z(s);case"kk":return Z(d,kl);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 oa(/[a-z_+-/]{1,256}?/i);case" ":return oa(/[^\S\n\r]/);default:return m(g)}})(t)||{invalidReason:nR};return E.token=t,E}var uR={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 cR(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=uR[o];if(typeof a=="object"&&(a=a[s]),a)return{literal:!1,val:a}}function lR(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function dR(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 fR(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=Gl(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var gl=null;function pR(){return gl||(gl=se.fromMillis(1555555555555)),gl}function mR(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=>mR(r,e)))}var ya=class{constructor(e,r){if(this.locale=e,this.format=r,this.tokens=kg(ke.parseFormat(r),e),this.units=this.tokens.map(n=>aR(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=lR(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=dR(e,this.regex,this.handlers),[i,s,o]=n?fR(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 ya(t,r).explainFromTokens(e)}function hR(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(pR()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(o=>cR(o,t,s))}var yl="Invalid DateTime",ME=864e13;function rs(t){return new Fe("unsupported zone",`the zone "${t.name}" is not supported`)}function Tl(t){return t.weekData===null&&(t.weekData=ha(t.c)),t.weekData}function Al(t){return t.localWeekData===null&&(t.localWeekData=ha(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 aa(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 ca(t,e,r){return $g(Aa(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,Ea(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=Aa(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 ua(t,e,r=!0){return t.isValid?ke.create(X.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Sl(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},ER={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},gR={ordinal:1,hour:0,minute:0,second:0,millisecond:0},la=["year","month","day","hour","minute","second","millisecond"],yR=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],TR=["year","ordinal","hour","minute","second","millisecond"];function da(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 fa(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 da(t)}}function AR(t){if(ns===void 0&&(ns=re.now()),t.type!=="iana")return t.offset(ns);let e=t.name,r=Fl.get(e);return r===void 0&&(r=t.offset(ns),Fl.set(e,r)),r}function $E(t,e){let r=rr(e.zone,re.defaultZone);if(!r.isValid)return se.invalid(rs(r));let n=X.fromObject(e),i,s;if(Q(t.year))i=re.now();else{for(let u of la)Q(t[u])&&(t[u]=Vg[u]);let o=mg(t)||hg(t);if(o)return se.invalid(o);let a=AR(r);[i,s]=ca(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=Wl(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 ns,Fl=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:rs(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=aa(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=Zw(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(rs(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(rs(n));let i=X.fromObject(r),s=ga(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,_=aa(u,c);E?(g=yR,T=ER,_=ha(_,o,a)):l?(g=TR,T=gR,_=El(_)):(g=la,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?Hw(s,o,a):l?zw(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]=ca(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]=VD(e);return Nn(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=GD(e);return Nn(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=WD(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]=hR(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]=zD(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 _l(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(){ns=void 0,Fl.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?Tl(this).weekYear:NaN}get weekNumber(){return this.isValid?Tl(this).weekNumber:NaN}get weekday(){return this.isValid?Tl(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Al(this).weekday:NaN}get localWeekNumber(){return this.isValid?Al(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Al(this).weekYear:NaN}get ordinal(){return this.isValid?El(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=Aa(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=aa(u,o),d=aa(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 as(this.year)}get daysInMonth(){return Ea(this.year,this.month)}get daysInYear(){return this.isValid?Un(this.year):NaN}get weeksInWeekYear(){return this.isValid?os(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?os(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]=ca(o,s,e)}return qr(this,{ts:i,zone:e})}else return t.invalid(rs(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=ga(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({...ha(this.c,n,i),...r},n,i):Q(r.ordinal)?(d={...this.toObject(),...r},Q(r.day)&&(d.day=Math.min(Ea(d.year,d.month),d.day))):d=OE({...El(this.c),...r});let[f,m]=ca(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):yl}toLocaleString(e=pa,r={}){return this.isValid?ke.create(this.loc.clone(r),e).formatDateTime(this):yl}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=da(o);let a=e==="extended",u=Sl(this,a,o);return la.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?Sl(this,e==="extended",da(r)):null}toISOWeekDate(){return ua(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=da(a),(i&&la.indexOf(a)>=3?"T":"")+FE(this,o==="extended",r,e,n,s,a)):null}toRFC2822(){return ua(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ua(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Sl(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")),ua(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():yl}[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=Xw(r).map(he.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=rR(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 ya(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 pa}static get DATE_MED(){return WE}static get DATE_MED_WITH_WEEKDAY(){return xw}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 vw}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 es(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 SR="3.7.1";Ve.DateTime=se;Ve.Duration=he;Ve.FixedOffsetZone=$e;Ve.IANAZone=Ut;Ve.Info=Kr;Ve.Interval=jr;Ve.InvalidZone=ma;Ve.Settings=re;Ve.SystemZone=ss;Ve.VERSION=SR;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 jl(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 _R(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(jl(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)):(jl(e,r),r=Hr(i)):r=Hr(i)}return jl(e,r),e}Kg.exports=_R});var Hg=G((ek,Yg)=>{"use strict";var IR=jg();function OR(t,e,r){var n=IR(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=OR});var Zg=G((tk,Jg)=>{"use strict";var zr=qg(),wR=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(wR(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 Ia=Zg();function or(){}or._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Ia.parse(e)};if(r.length>6)return{interval:Ia.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};or.parseExpression=function(e,r){return Ia.parse(e,r)};or.fieldsToExpression=function(e,r){return Ia.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:()=>Na,APP_DEV_PREFIX:()=>Je,APP_PREFIX:()=>ze,AutomationViewMode:()=>Pa,BUDIBASE_DATASOURCE_TYPE:()=>hd,BadRequestError:()=>gu,BudibaseError:()=>si,Config:()=>Sd,Cookie:()=>Jr,DEFAULT_BB_DATASOURCE_ID:()=>On,DEFAULT_EMPLOYEE_TABLE_ID:()=>Td,DEFAULT_EXPENSES_TABLE_ID:()=>yd,DEFAULT_INVENTORY_TABLE_ID:()=>gd,DEFAULT_JOBS_TABLE_ID:()=>Ed,DEFAULT_TENANT_ID:()=>oe,DeprecatedViews:()=>Gn,DesignDocuments:()=>ms,DocumentType:()=>ue,Duration:()=>me,DurationType:()=>qf,EmailUnavailableError:()=>Gt,Endpoint:()=>Ec,EndpointGroup:()=>_n,EndpointGroupList:()=>xo,FeatureDisabledError:()=>Su,ForbiddenError:()=>yu,GlobalRole:()=>Ad,HTTPError:()=>we,Header:()=>Le,InternalTable:()=>Rt,InvalidAPIKeyError:()=>oi,MAX_VALID_DATE:()=>La,MIN_VALID_DATE:()=>my,NotFoundError:()=>Eu,NotImplementedError:()=>Tu,RedisClient:()=>Ce,SEPARATOR:()=>R,SQLITE_DESIGN_DOC_ID:()=>It,SQS_DATASOURCE_INTERNAL:()=>md,StaticDatabases:()=>de,UNICODE_MAX:()=>De,USER_METADATA_PREFIX:()=>ps,UnexpectedError:()=>hu,UsageLimitError:()=>Au,UserStatus:()=>Ua,ViewName:()=>ur,accounts:()=>pn,auth:()=>sm,blacklist:()=>cm,cache:()=>yo,configs:()=>Wt,constants:()=>_d,context:()=>ae,csv:()=>Sm,db:()=>Er,docIds:()=>pf,docUpdates:()=>dm,encryption:()=>rm,env:()=>h,errors:()=>Iu,events:()=>li,features:()=>jp,getPublicError:()=>_u,init:()=>A0,installation:()=>Uu,locks:()=>Ei,logging:()=>Js,middleware:()=>im,objectStore:()=>xf,permissions:()=>qp,platform:()=>Fs,plugins:()=>am,queue:()=>tp,redis:()=>um,roles:()=>Wp,security:()=>yp,sessions:()=>Bu,setEnv:()=>ys,sql:()=>Am,tenancy:()=>T0,timers:()=>vu,userUtils:()=>Yf,users:()=>di,utils:()=>ni,withEnv:()=>Ay});module.exports=T_(S0);var Wt={};P(Wt,{analyticsEnabled:()=>Cu,generateConfigID:()=>qu,getAIConfig:()=>MU,getConfig:()=>tt,getDefaultGoogleConfig:()=>Cp,getGoogleConfig:()=>Qu,getGoogleDatasourceConfig:()=>Pp,getOIDCConfig:()=>NU,getOIDCConfigById:()=>Np,getOIDCLogosDoc:()=>vU,getPlatformUrl:()=>Oo,getRecaptchaConfig:()=>kU,getSCIMConfig:()=>LU,getSMTPConfig:()=>UU,getSMTPConfigDoc:()=>dS,getSettingsConfig:()=>vp,getSettingsConfigDoc:()=>fi,save:()=>CU});var A_=["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"],S_=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Om=[...A_,...S_],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 gc=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(gc||{}),yc=(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))(yc||{}),No=(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))(No||{});var Tc=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Tc||{});var __=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||{}),Ai=(r=>(r.AND="$and",r.OR="$or",r))(Ai||{});function Uo(t){return Object.values(Ai).includes(t)}function Dm(t){return Object.values(Nr).includes(t)}function Rm(t){return Object.values(Jt).includes(t)}function Lo(t){return Object.values(In).includes(t)}var bm=t=>typeof t=="object"&&t._id&&t._rev;var Si=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Si||{});var Cm={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var _i=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(_i||{});var Mo=(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))(Mo||{});var ko=t=>t.hosting==="cloud";var Fo=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 Ac=(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))(Ac||{}),Sc=(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))(Sc||{}),_c=(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))(_c||{});var Ic=(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))(Ic||{}),xm=[...Object.values(Ic),...Object.values(_c)];function vm(t){return t.stepId==="BRANCH"}var Oc="bb_internal";var Pm=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Bo(t){return!!t.providerType}var _d={};P(_d,{APP_DEV:()=>Na,APP_DEV_PREFIX:()=>Je,APP_PREFIX:()=>ze,AutomationViewMode:()=>Pa,BUDIBASE_DATASOURCE_TYPE:()=>hd,Config:()=>Sd,Cookie:()=>Jr,DEFAULT_BB_DATASOURCE_ID:()=>On,DEFAULT_EMPLOYEE_TABLE_ID:()=>Td,DEFAULT_EXPENSES_TABLE_ID:()=>yd,DEFAULT_INVENTORY_TABLE_ID:()=>gd,DEFAULT_JOBS_TABLE_ID:()=>Ed,DEFAULT_TENANT_ID:()=>oe,DeprecatedViews:()=>Gn,DesignDocuments:()=>ms,DocumentType:()=>ue,GlobalRole:()=>Ad,Header:()=>Le,InternalTable:()=>Rt,MAX_VALID_DATE:()=>La,MIN_VALID_DATE:()=>my,SEPARATOR:()=>R,SQLITE_DESIGN_DOC_ID:()=>It,SQS_DATASOURCE_INTERNAL:()=>md,StaticDatabases:()=>de,UNICODE_MAX:()=>De,USER_METADATA_PREFIX:()=>ps,UserStatus:()=>Ua,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:()=>ed,NoEmptyFilterStrings:()=>cy,buildQuery:()=>ly,cleanupQuery:()=>nd,fixupFilterArrays:()=>sd,getKeyNumbering:()=>id,getValidOperatorsForType:()=>jR,hasFilters:()=>td,limit:()=>fy,recurseLogicalOperators:()=>rd,removeKeyNumbering:()=>$o,runQuery:()=>Da,search:()=>zR,sort:()=>dy,splitFiltersArray:()=>Vo});var Vn=k(Um());var Xt={};P(Xt,{filterValueToLabel:()=>b_,hasSchema:()=>C_,isSupportedUserSearch:()=>km,parallelForeach:()=>R_,processSearchFilters:()=>Rc,toMap:()=>v_,trimOtherProps:()=>x_,unreachable:()=>D_});var Mm=k(require("lodash/pick")),w_=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function D_(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function R_(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 b_(){return Object.keys(Me).reduce((t,e)=>{let n=Me[e];return t[n.value]=n.label,t},{})}function C_(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function x_(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(Uo(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 Rc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Vo(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=(0,Mm.default)(i,w_);return s.field=$o(s.field),s})}]}}function v_(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Pe={};P(Pe,{cancelableTimeout:()=>Fm,cron:()=>WR,deepGet:()=>bc,duplicateName:()=>VR,getSequentialName:()=>GR,getUserColor:()=>N_,getUserInitials:()=>P_,getUserLabel:()=>U_,isGoogleSheets:()=>M_,isSQL:()=>k_,lists:()=>Zl,retry:()=>F_,roles:()=>Jl,schema:()=>ls,views:()=>zl,wait:()=>Cc,withTimeout:()=>L_});var bc=(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},P_=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"},N_=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%)`},U_=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 L_(t,e){let[r,n]=Fm(t),i=await Promise.race([e(),r]);return n(),i}function M_(t){return t==="GOOGLE_SHEETS"}function k_(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Cc(t){return new Promise(e=>setTimeout(e,t))}async function F_(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 Cc(s);try{return await t()}catch(o){n=o}}throw n}var ry=k(Tt()),ny=k(ey()),ty="(Input cron: ",DR={"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 RR(t){let e=[];for(let r of t){r.includes(ty)&&(r=r.split(ty)[0].trim());for(let[n,i]of Object.entries(DR))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:RR(e.getError())}}var ls={};P(ls,{decodeNonAscii:()=>Yl,encodeNonAscii:()=>xR,isDeprecatedSingleUserColumn:()=>bR,isNumeric:()=>vR,isRequired:()=>CR});function bR(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function CR(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function xR(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Yl(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function vR(t){return t.type==="number"||t.type==="bigint"}var zl={};P(zl,{basicFields:()=>MR,calculationFields:()=>LR,hasCalculationFields:()=>UR,isBasicViewField:()=>PR,isCalculationField:()=>ds,isCalculationView:()=>NR,isV2:()=>kR,isVisible:()=>oy});var Hl=k(require("lodash/pickBy"));function ds(t){return"calculationType"in t}function PR(t){return!ds(t)}function NR(t){return t.type==="calculation"}function UR(t){return Object.values(t.schema||{}).some(ds)}function LR(t){return(0,Hl.default)(t.schema||{},ds)}function oy(t){return t.visible!==!1}function MR(t,e){let{visible:r=!0}=e||{};return(0,Hl.default)(t.schema||{},n=>!ds(n)&&(!r||oy(n)))}function kR(t){return t.version===2}var Jl={};P(Jl,{checkForRoleInheritanceLoops:()=>BR});function FR(t){return`role${R}${t}`}function BR(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=FR(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 Zl={};P(Zl,{punctuateList:()=>$R});function $R(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 VR=(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}`},GR=(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 WR={getNextExecutionDates:iy,validate:sy};var wa=k(require("lodash/isPlainObject")),Xl=k(require("lodash/isEmpty"));var QR=/{{([^{].*?)}}/g,uy=Object.values(Ai),KR=[...Object.values(Nr),...Object.values(Jt),...Object.values(In)],jR=(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"||ls.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 rd(t,e){for(let r of uy)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var nd=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===""||YR(s))&&delete t[e][i]}return t=rd(t,nd),t};function YR(t){return Array.isArray(t)&&t.length===0}var $o=t=>id(t).key,id=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}},ed=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}=id(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=Yl(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function HR(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(QR)||[]).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(Lo(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(Lo(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)||Lo(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 Vo(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=Rc(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}=Vo(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=ay(n.logicalOperator)),{[a]:{conditions:o.map(HR).filter(u=>u)}}})},e}function ay(t){return t==="all"?"$and":"$or"}function sd(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,wa.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 rd(t,sd),t}function zR(t,e){let r=Da(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 Da(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=nd(e),e=sd(e),!td(e)&&e.onEmptyFilter==="none")return[];let r=(y,I)=>M=>{for(let[v,L]of Object.entries(e[y]||{})){let j=Uo(y)?M:bc(M,$o(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,wa.default)(I.low)&&(0,Xl.default)(I.low)&&(I.low=void 0),(0,wa.default)(I.high)&&(0,Xl.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(!Da([y],M).length)return!1;return!0}),S=r("$or",(y,I)=>{if(!I.length)return!1;for(let M of I)if(Da([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 td(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 td=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 KR){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:()=>ad,automations:()=>ud,screens:()=>pd,users:()=>fd});var ad={};P(ad,{getDevAppID:()=>JR,getProdAppID:()=>Ra});var od=Zt("app"),fs=Zt("app_dev");function JR(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(fs))return t;let e=t.split(od);e.shift();let r=e.join(od);return`${fs}${r}`}function Ra(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(fs))return t;let e=t.split(fs);e.shift();let r=e.join(fs);return`${od}${r}`}var ud={};P(ud,{checkForCollectStep:()=>tb,isAppAction:()=>eb,isRowAction:()=>ZR,isWebhookAction:()=>XR});function ZR(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function XR(t){return t.definition.trigger?.stepId==="WEBHOOK"}function eb(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 tb(t){return py(t.definition.steps)}var fd={};P(fd,{canCreateApps:()=>rb,containsUserID:()=>cb,getGlobalUserID:()=>ub,getUserAppGroups:()=>lb,getUserGroups:()=>dd,hasAdminPermissions:()=>ld,hasAppBuilderPermissions:()=>xa,hasBuilderPermissions:()=>ob,hasCreatorPermissions:()=>va,isAdmin:()=>Ca,isAdminOrBuilder:()=>nb,isAdminOrGlobalBuilder:()=>ib,isBuilder:()=>cd,isCreator:()=>ab,isGlobalBuilder:()=>ba,userAppAccessList:()=>db});function cd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Ra(e))):!1}function ba(t){return cd(t)&&!xa(t)||Ca(t)}function rb(t){return ba(t)||va(t)}function Ca(t){return t?ld(t):!1}function nb(t,e){return cd(t,e)||Ca(t)}function ib(t){return ba(t)||Ca(t)}function xa(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function sb(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}function ob(t){return t?t.builder?.global||xa(t)||va(t):!1}function ld(t){return t?!!t.admin?.global:!1}function va(t){return t?!!t.builder?.creator:!1}function ab(t){return t?ba(t)||ld(t)||va(t)||xa(t)||sb(t):!1}function ub(t){if(typeof t!="string")return t;let e=`ro${R}ta_users${R}`;return t.startsWith(e)?t.split(e)[1]:t}function cb(t){return typeof t!="string"?!1:t.includes(`us${R}`)}function dd(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function lb(t,e,r){let n=Ra(t);return dd(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function db(t,e){let n=dd(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var pd={};P(pd,{findInSettings:()=>fb});function fb(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 Pa=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Pa||{}),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"),Na=Zt("app_dev"),Je=Na,md="internal",hd="budibase",It="_design/sqlite",Ed="ta_bb_jobs",gd="ta_bb_inventory",yd="ta_bb_expenses",Td="ta_bb_employee",ps=`ro${R}ta_users${R}`,ms=(r=>(r[r.SQLITE=It]="SQLITE",r.MIGRATIONS="_design/migrations",r))(ms||{});var Ua=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Ua||{}),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||{}),Ad=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Ad||{}),Sd=(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))(Sd||{}),my=new Date(-2147483647e3),La=new Date(2147483647e3),oe="default";var yo={};P(yo,{CacheKey:()=>Ee,TTL:()=>an,app:()=>$s,bustCache:()=>zn,destroy:()=>Us,docWritethrough:()=>bp,generic:()=>Ls,get:()=>un,invite:()=>Kf,keys:()=>Za,passwordReset:()=>Dp,store:()=>Mt,user:()=>Dr,withCache:()=>mr,withCacheWithDynamicTTL:()=>Vy,writethrough:()=>wp});var Ls={};P(Ls,{CacheKey:()=>Ee,TTL:()=>an,bustCache:()=>zn,destroy:()=>Us,get:()=>un,keys:()=>Za,store:()=>Mt,withCache:()=>mr,withCacheWithDynamicTTL:()=>Vy});var ae={};P(ae,{DEFAULT_TENANT_ID:()=>oe,baseGlobalDBName:()=>Is,doInAppContext:()=>Jb,doInAppMigrationContext:()=>Xb,doInAutomationContext:()=>Kb,doInContext:()=>Wd,doInEnvironmentContext:()=>rC,doInFeatureFlagOverrideContext:()=>zd,doInIPContext:()=>Kd,doInIdentityContext:()=>Es,doInLicenseContext:()=>Yb,doInScimContext:()=>nC,doInSelfHostTenantUsingCloud:()=>jb,doInTenant:()=>be,ensureSnippetContext:()=>ky,getAppDB:()=>Yn,getAppId:()=>Se,getAuditLogDBName:()=>Ly,getAuditLogsDB:()=>sC,getAutomationId:()=>qd,getCurrentContext:()=>en,getDevAppDB:()=>aC,getDevAppId:()=>eC,getEnvironmentVariables:()=>iC,getFeatureFlagOverrides:()=>Hd,getFeatureFlags:()=>jd,getGlobalDB:()=>Y,getGlobalDBName:()=>Xr,getIP:()=>Qd,getIdentity:()=>Lt,getLicense:()=>Hb,getPlatformURL:()=>Gd,getProdAppDB:()=>oC,getProdAppId:()=>tC,getScimDBName:()=>Gb,getSelfHostCloudDB:()=>zb,getTableForView:()=>uC,getTenantIDFromAppID:()=>jn,getTenantId:()=>V,identity:()=>hs,isMultiTenant:()=>dr,isScim:()=>ft,isSelfHostUsingCloud:()=>Qa,isTenancyEnabled:()=>qb,isTenantIdSet:()=>Wb,setFeatureFlags:()=>Yd,setTableForView:()=>cC});var hs={};P(hs,{doInAccountContext:()=>pb,doInIdentityContext:()=>Od,doInUserContext:()=>wd,getAccountUserId:()=>hy,getIdentity:()=>Id});function Id(){return Lt()}function Od(t,e){return Es(t,e)}function wd(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Od(n,r)}function pb(t,e){let r=hy(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Od(i,e)}function hy(t){let e;return ko(t)?e=t.budibaseUserId:e=t.accountId,e}var Fa=require("fs");var yy=require("lodash"),Dd=require("crypto"),gs=require("path"),mb=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,gs.resolve)((0,gs.join)(__dirname,"..","..","..")),Ey=!1;!Ey&&ka()&&!Rd()&&(require("dotenv").config({path:(0,gs.join)(mb,".env")}),Ey=!0);function Rd(){return Ty()}function Ty(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function ka(){return process.env.NODE_ENV!=="production"}function hb(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 Eb(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function gb(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function yb(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Fa.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Fa.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ka()&&!Rd())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 Tb(){return ct.SERVICE_TYPE==="worker"}function Ab(){return ct.SERVICE_TYPE==="apps"}function Sb(){return ct.BUDIBASE_ENVIRONMENT==="QA"}function _b(){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:Rd,isJest:Ty,isDev:ka,isWorker:Tb,isApps:Ab,isQA:Sb,isProd:()=>!ka(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Dd.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Dd.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Eb(),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:_b(),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:gb(),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,...yb(),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:hb(process.env.BSON_BUFFER_SIZE)};function ys(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=ys(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=bd(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:bd(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},bd=(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 Ba(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 Ts({url:s,cookie:i,method:e,body:r})}async function Ts({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)(Ba(encodeURI(t)),i)}async function Cd(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,xd=(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 $a(t){Oy=xd(t),wy=!0}var Ib=()=>{if(!wy)throw new Error("init has not been called")};function Ze(t,e){Ib();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 As(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 Fd={};P(Fd,{breakExternalTableId:()=>Nd,breakRowIdField:()=>Mb,buildExternalTableId:()=>xb,convertRowId:()=>Lb,encodeTableId:()=>vb,encodeViewId:()=>Pb,extractDate:()=>Ld,generateRowIdField:()=>Nb,getNativeSql:()=>Qn,isExternalTable:()=>Pd,isExternalTableID:()=>Va,isInternalTableID:()=>Cb,isRowId:()=>Ub,isValidFilter:()=>Wa,isValidISODateString:()=>Ga,isValidISODateStringWithoutTimezone:()=>Ud,isValidTime:()=>Md,sqlLog:()=>Ss,validateManyToMany:()=>kd});var vd=`${R}${R}`,by=/^\[.*]$/g,Ob=encodeURIComponent(" "),wb=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Db=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Rb=/(\d{4}-\d{2}-\d{2})/,bb=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Va(t){return t.startsWith("datasource"+R)}function Cb(t){return!Va(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 Pd(t){return t?.sourceId&&t.sourceId.includes("datasource"+R)&&t?.sourceId!==On||t?.sourceType==="external"?!0:!!(t?._id&&Va(t._id))}function xb(t,e){return`${t}${vd}${encodeURIComponent(e)}`}function vb(t){return Va(t)?encodeURIComponent(t):t}function Pb(t){return encodeURIComponent(t)}function Nd(t){let e=t.split(vd),r=e.shift(),n=e.join(vd);if(n.includes(Ob)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function Nb(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 Ub(t){return Array.isArray(t)||typeof t=="string"&&t.match(by)!=null}function Lb(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(by)!=null?t.substring(1,t.length-1):t}function Mb(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 Ga(t){let e=t.trim();if(!wb.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Ud(t){let e=t.trim();if(!Db.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Ld(t){let e=t.match(Rb);if(e)return e[0]}function Wa(t){return t!=null&&t!==""}function Md(t){return bb.test(t)}function Ss(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 kb(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function kd(t){if(kb(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 Fb(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 Ts({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=Ba(`${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 Ts(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 Ss("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 Bd(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Cd(e)}var $d="No app provided";function lr(t){if(!t)throw $d;return t.startsWith(Je)}function Bb(t){if(!t)throw $d;return t.startsWith(ze)&&!lr(t)}function _s(t){if(!t)throw $d;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 Vd=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 $b(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()),Is(t)}function Ly(t){return t||(t=V()),t===oe?de.AUDIT_LOGS.name:`${t}${R}${de.AUDIT_LOGS.name}`}function Gb(t){return t||(t=V()),t===oe?de.SCIM_LOGS.name:`${t}${R}${de.SCIM_LOGS.name}`}function Is(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 Wb(){return!!pe.get()?.tenantId}function qb(){return h.MULTI_TENANCY}function jn(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 Qb(t){let e;try{e=pe.get()}catch{e={}}return e={...e,...t},e}async function dt(t,e){Zb();let r=Qb(t);return pe.run(r,e)}async function Kb(t){return await ky(),await dt({tenantId:jn(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Wd(t,e){let r=jn(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 jb(t,e){return dt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function Yb(t,e){return dt({license:t},e)}function Hb(){return pe.get()?.license}function Qa(){return!!pe.get()?.isSelfHostUsingCloud}function zb(){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 Jb(t,e){return My(t,e)}async function My(t,e,r){if(!t)throw new Error("appId is required");let n=jn(t),i={appId:t,...r};return n&&(i.tenantId=n),dt(i,e)}async function Es(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 Zb(){if(pe.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function Xb(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 eC=()=>{let t=Se();if(!t)throw new Error("Could not get appId");return Vd(t)},tC=()=>{let t=Se();if(!t)throw new Error("Could not get appId");return qe(t)};function rC(t,e){if(!t)throw new Error("Must supply environment variables.");return dt({environmentVariables:t},e)}function nC(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=Yn();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function iC(){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(Is(t?.tenantId))}function sC(){if(!V())throw new Error("No tenant ID found - cannot open audit log DB");return Re(Ly())}function Yn(t){let e=Se();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(Qa())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Re(e,t)}function oC(t){let e=Se();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Re(qe(e),t)}function aC(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 uC(t){let e=en();if(e)return e.viewToTableCache?.[t]}function cC(t,e){let r=en();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var pr={};P(pr,{getAppClient:()=>Ja,getCacheClient:()=>rf,getDocWritethroughClient:()=>mC,getInviteClient:()=>nn,getLockClient:()=>sf,getPasswordResetClient:()=>Ns,getSessionClient:()=>fr,getSocketClient:()=>pC,getUserClient:()=>Ps,getWritethroughClient:()=>nf,init:()=>pt,shutdown:()=>$y});var za=k(require("ioredis"));var Ya={};P(Ya,{Databases:()=>Jd,SEPARATOR:()=>Hn,SelectableDatabase:()=>Ka,getRedisClusterOptions:()=>Zd,getRedisConnectionDetails:()=>ja,getRedisOptions:()=>tn,removeDbPrefix:()=>Xd});var Hn="-",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||{}),Ka=(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))(Ka||{});function ja(){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}=ja();return{connectTimeout:3e4,port:r,host:t,password:e}}function Xd(t){let e=t.split(Hn);return e.length>=2?(e.shift(),e.join(Hn)):e[0]}var Ha=require("dd-trace"),By=require("lodash"),Fy;if(h.MOCK_REDIS)try{Fy=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function lC(t=0){return await Ha.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}=ja();r=new za.Cluster([{host:n,port:i}],Zd())}else r=new za.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 dC(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 fC(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 Ha.tracer.trace("RedisWrapper.init",async n=>{let i=await lC(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return Ha.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Hn}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${Hn}${e}`;let n;fC(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await dC(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)})}},je=Cf;var Fo,Bo,Go,Vo,ni,$o,Wo,qo,Qo,vf;async function kt(){Fo=await je.init("users"),Bo=await je.init("session"),Go=await je.init("appMetadata"),Vo=await je.init("data_cache"),$o=await je.init("locks"),ni=await je.init("writeThrough"),qo=await je.init("invitation"),Qo=await je.init("pwReset"),Wo=await je.init("socket_io",1),vf=await je.init("docWriteThrough")}async function CA(){Fo&&await Fo.finish(),Bo&&await Bo.finish(),Go&&await Go.finish(),Vo&&await Vo.finish(),ni&&await ni.finish(),$o&&await $o.finish(),qo&&await qo.finish(),Qo&&await Qo.finish(),Wo&&await Wo.finish(),vf&&await vf.finish()}process.on("exit",async()=>{await CA()});async function jo(){return Fo||await kt(),Fo}async function Kr(){return Bo||await kt(),Bo}async function Ac(){return Go||await kt(),Go}async function Nf(){return Vo||await kt(),Vo}async function Pf(){return ni||await kt(),ni}async function Lf(){return $o||await kt(),$o}async function TP(){return Wo||await kt(),Wo}async function ii(){return qo||await kt(),qo}async function Ho(){return Qo||await kt(),Qo}async function AP(){return ni||await kt(),ni}function zt(t){let e=Q();return`${t}:${e}`}var si=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Nf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?zt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?zt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?zt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>zt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?zt(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[zt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?zt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>zt(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(zt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?zt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var oi=new si,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}`},ai=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ai||{}),Sc=(...t)=>oi.keys(...t),ui=(...t)=>oi.get(...t),mr=(...t)=>oi.store(...t),Ko=(...t)=>oi.delete(...t),Jr=(...t)=>oi.withCache(...t),vA=(...t)=>oi.withCacheWithDynamicTTL(...t),as=(...t)=>oi.bustCache(...t);var cn={};N(cn,{getUser:()=>Pa,getUsers:()=>E0,invalidateUser:()=>La});var zo={};N(zo,{addTenantToUrl:()=>SP,getTenantDB:()=>Uf,getTenantIDFromCtx:()=>Jo,isUserInAppTenant:()=>_P});function Uf(t){return qe(ei(t))}function SP(t){let e=Q();if(Hr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var _P=(t,e)=>{let r;return e?r=e.tenantId||Se:r=Q(),(is(t)||Se)===r},IP=Object.values(vs),Jo=(t,e)=>{if(!Hr())return Se;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=IP),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(Ef()).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 Zo={};N(Zo,{getPlatformDB:()=>zr,users:()=>Ft});var Ft={};N(Ft,{addSsoUser:()=>PA,addUser:()=>DP,getUserDoc:()=>NA,lookupTenantId:()=>OP,removeUser:()=>CP,updateUserDoc:()=>xP});function zr(){return qe(xe.PLATFORM_INFO.name)}async function OP(t){return h.MULTI_TENANCY?(await NA(t)).tenantId:Se}async function NA(t){return zr().get(t)}async function xP(t){await zr().put(t)}function RP(t,e){return{_id:t,tenantId:e}}function wP(t,e,r){return{_id:e,userId:t,tenantId:r}}function bP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Mf(t,e){let r=zr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function PA(t,e,r,n){return Mf(t,()=>bP(t,e,r,n))}async function DP(t,e,r,n){let i=[Mf(e,()=>RP(e,t)),Mf(r,()=>wP(e,r,t))];n&&i.push(PA(n,r,e,t)),await Promise.all(i)}async function CP(t){let e=zr(),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 fi={};N(fi,{getAccount:()=>sn,getAccountByTenantId:()=>fs,getStatus:()=>xL});var QS=V(require("node-fetch"));var da={};N(da,{correlation:()=>Xo,logAlert:()=>pi,logAlertWithInfo:()=>OL,logWarn:()=>ps,logger:()=>Pc,system:()=>um});var Xo={};N(Xo,{getId:()=>kf,setHeader:()=>vP});var LA=require("correlation-id"),vP=t=>{let e=LA.getId();e&&(t["x-budibase-correlation-id"]=e)};function kf(){return LA.getId()}var Nc=V(require("pino")),WS=V(require("pino-pretty"));var cm=V(require("dd-trace")),qS=require("dd-trace/ext");var um={};N(um,{getLogReadStream:()=>EL,getSingleFileMaxSizeInfo:()=>$S,localFileDestination:()=>am});var la=V(require("fs")),om=V(require("path")),FS=V(require("rotating-file-stream"));var sm={};N(sm,{ObjectStore:()=>Bt,ObjectStoreBuckets:()=>PP,SIGNED_FILE_PREFIX:()=>tm,bucketTTLConfig:()=>_c,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>dL,clientLibraryPath:()=>DS,clientLibraryUrl:()=>pL,createBucketIfNotExists:()=>ca,deleteFile:()=>iL,deleteFiles:()=>sL,deleteFolder:()=>RS,downloadTarball:()=>aL,downloadTarballDirect:()=>oL,enrichPWAImages:()=>fL,enrichPluginURLs:()=>hL,extractBucketAndPath:()=>Ff,getAppFileUrl:()=>CS,getGlobalFileS3Key:()=>vS,getGlobalFileUrl:()=>mL,getObjectMetadata:()=>uL,getPluginIconKey:()=>LS,getPluginJSKey:()=>PS,getPluginS3Dir:()=>MS,getPresignedUrl:()=>rn,getReadStream:()=>Ic,listAllObjects:()=>xS,processAutomationAttachment:()=>UP,processObjectStoreAttachment:()=>BA,retrieve:()=>OS,retrieveDirectory:()=>nL,retrieveToTmp:()=>rL,sanitizeBucket:()=>Ze,sanitizeKey:()=>Fe,streamUpload:()=>IS,upload:()=>tL,uploadDirectory:()=>rm});var Dc=require("@aws-sdk/client-s3"),Jf=require("@aws-sdk/lib-storage"),_S=require("@aws-sdk/s3-request-presigner"),Cc=V(require("stream")),zf=V(require("node-fetch")),Zf=V(require("tar-fs")),Xf=V(require("zlib")),en=require("path"),ls=V(require("fs"));var ea=V(require("path")),UA=require("os"),MA=V(require("fs"));var kA=V(require("stream")),PP={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},FA=(0,ea.join)((0,UA.tmpdir)(),".budibase");try{MA.default.mkdirSync(FA)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return FA}var _c=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function LP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ea.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:kA.default.Readable.fromWeb(e.body)}}async function BA(t){let e=Ff(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Ic(r,n),s=ea.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function UP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await LP(t):await BA(t)}var em=require("uuid");var Zr={};N(Zr,{APP_DEV:()=>rc,APP_DEV_PREFIX:()=>Tt,APP_PREFIX:()=>Et,AutomationViewMode:()=>tc,BUDIBASE_DATASOURCE_TYPE:()=>Qp,DEFAULT_BB_DATASOURCE_ID:()=>Pi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Yp,DEFAULT_EXPENSES_TABLE_ID:()=>Kp,DEFAULT_INVENTORY_TABLE_ID:()=>Hp,DEFAULT_JOBS_TABLE_ID:()=>jp,DatabaseImpl:()=>ns,DatabaseWithConnection:()=>HN,DeprecatedViews:()=>Zi,DesignDocuments:()=>bo,DocumentType:()=>Te,InternalTable:()=>tr,QueryBuilder:()=>Er,Replication:()=>yS,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Jt,SQS_DATASOURCE_INTERNAL:()=>qp,StaticDatabases:()=>xe,UNICODE_MAX:()=>We,USER_METADATA_PREFIX:()=>wo,ViewName:()=>qr,baseGlobalDBName:()=>ko,checkErrorCode:()=>SS,closePouchDB:()=>Uo,createApiKeyView:()=>pS,createNewUserEmailView:()=>lS,createPlatformAccountEmailView:()=>mS,createPlatformUserView:()=>hS,createUserAppView:()=>dS,createView:()=>cs,dbExists:()=>QP,directCouchAllDbs:()=>yf,directCouchCall:()=>mA,directCouchQuery:()=>af,directCouchUrlCall:()=>Lo,doWithDB:()=>ct,extractAppUUID:()=>CN,fullSearch:()=>YP,generateAgentChatID:()=>zA,generateAgentToolSourceID:()=>ZA,generateAppID:()=>VA,generateAppUserID:()=>Rc,generateDevInfoID:()=>KA,generateGlobalUserID:()=>us,generateOAuth2LogID:()=>JA,generatePluginID:()=>YA,generateRoleID:()=>Vf,generateRowID:()=>Gf,generateTableID:()=>$A,generateTemplateID:()=>HA,generateUserMetadataID:()=>QA,generateWorkspaceAppID:()=>XA,generateWorkspaceFavouriteID:()=>eS,generateWorkspaceID:()=>WA,getAllApps:()=>na,getAllDbs:()=>cS,getAppsByIDs:()=>VP,getCouchInfo:()=>Lt,getDB:()=>qe,getDevAppID:()=>es,getDevAppIDs:()=>WP,getDevelopmentAppID:()=>uc,getDocParams:()=>gr,getGlobalDBName:()=>ei,getGlobalIDFromUserMetadataID:()=>jA,getGlobalUserParams:()=>li,getOAuth2ConfigParams:()=>oS,getPluginParams:()=>sS,getPouch:()=>uf,getPouchDB:()=>At,getProdAppID:()=>ut,getProdAppIDs:()=>$P,getQueryIndex:()=>tS,getRoleParams:()=>bc,getRowParams:()=>$f,getStartEndKeyURL:()=>ra,getTemplateParams:()=>iS,getUrlInfo:()=>of,getUserMetadataParams:()=>nS,getUsersByAppParams:()=>wc,getWorkspaceAppParams:()=>aS,getWorkspaceFavouriteParams:()=>uS,getWorkspaceParams:()=>rS,init:()=>lc,isDevApp:()=>Po,isDevAppID:()=>Qr,isDocumentConflictError:()=>zP,isGlobalUserID:()=>qA,isProdAppID:()=>DN,isSameAppID:()=>qP,paginatedSearch:()=>KP,pagination:()=>qf,prefixRoleID:()=>hr,queryGlobalView:()=>yr,queryGlobalViewRaw:()=>Hf,queryPlatformView:()=>sa,queryView:()=>jf,queryViewRaw:()=>ia,removeKeyNumbering:()=>oa,searchIndexes:()=>Yf});var ta={};N(ta,{AppState:()=>Bf,getAppMetadata:()=>xc,invalidateAppMetadata:()=>BP});var Bf=(e=>(e.INVALID="invalid",e))(Bf||{}),GA=3600,MP=60;async function kP(t){return ct(t,e=>e.get("app_metadata"),{skip_setup:!0})}function FP(t){return!t||t.state==="invalid"}async function xc(t){let e=await Ac(),r=await e.get(t);if(!r){let n=GA;try{r=await kP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=MP;else throw i}if(FP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function BP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await Ac();await r.delete(t),e&&await r.store(t,e,GA)}var Wf={};N(Wf,{generateAgentChatID:()=>zA,generateAgentToolSourceID:()=>ZA,generateAppID:()=>VA,generateAppUserID:()=>Rc,generateDevInfoID:()=>KA,generateGlobalUserID:()=>us,generateOAuth2LogID:()=>JA,generatePluginID:()=>YA,generateRoleID:()=>Vf,generateRowID:()=>Gf,generateTableID:()=>$A,generateTemplateID:()=>HA,generateUserMetadataID:()=>QA,generateWorkspaceAppID:()=>XA,generateWorkspaceFavouriteID:()=>eS,generateWorkspaceID:()=>WA,getDocParams:()=>gr,getGlobalIDFromUserMetadataID:()=>jA,getGlobalUserParams:()=>li,getOAuth2ConfigParams:()=>oS,getPluginParams:()=>sS,getQueryIndex:()=>tS,getRoleParams:()=>bc,getRowParams:()=>$f,getStartEndKeyURL:()=>ra,getTemplateParams:()=>iS,getUserMetadataParams:()=>nS,getUsersByAppParams:()=>wc,getWorkspaceAppParams:()=>aS,getWorkspaceFavouriteParams:()=>uS,getWorkspaceParams:()=>rS,isGlobalUserID:()=>qA,prefixRoleID:()=>hr});var VA=t=>{let e=Et;return t&&(e+=`${t}${w}`),`${e}${me()}`};function $A(){return`ta${w}${me()}`}function Gf(t,e){return e=e||me(),`ro${w}${t}${w}${e}`}function WA(){return`workspace${w}${me()}`}function us(t){return`us${w}${t||me()}`}var GP=new RegExp(`^us${w}.+`);function qA(t){return GP.test(t)}function QA(t){return Gf("ta_users",t)}function jA(t){let e=`ro${w}ta_users${w}`;return!t||!t.includes(e)?t:t.split(e)[1]}function HA(t){return`template${w}${t}${w}${me()}`}function Rc(t,e){return`${t}${w}${e}`}function Vf(t){let e=`role${w}`;return t.startsWith(e)?t:`${e}${t}`}function hr(t){return Vf(t)}var KA=t=>`devinfo${w}${t}`,YA=t=>`plg${w}${t}`,JA=t=>`oauth2log${w}${t}`,zA=()=>`agentchat${w}${me()}`,ZA=()=>`agenttoolsource${w}${me()}`,XA=()=>`workspace_app${w}${me()}`,eS=()=>`workspace_favourite${w}${me()}`;function gr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${w}${e}`,endkey:`${t}${w}${e}${We}`}}function $f(t,e,r={}){if(t==null)return gr("ro",null,r);let n=e??`${t}${w}`;return gr("ro",n,r)}function tS(t){return`database/${t}`}function rS(t="",e={}){return{...e,startkey:`workspace${w}${t}`,endkey:`workspace${w}${t}${We}`}}function li(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${w}${t}`,endkey:`us${w}${t}${We}`}}function nS(t,e={}){return $f("ta_users",t,e)}function wc(t,e={}){let r=ut(t);return{...e,startkey:r,endkey:`${r}${We}`}}function iS(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${w}${t}${w}`,{...r,startkey:n,endkey:`${n}${We}`}}function bc(t,e={}){return gr("role",t,e)}function ra(t,e){let r=e?`${w}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${We}"`}var sS=(t,e={})=>gr("plg",t,e),oS=(t,e={})=>gr("oauth2",t,e),aS=(t,e={})=>gr("workspace_app",t,e),uS=(t,e={})=>gr("workspace_favourite",t,e);async function cS(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await yf(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Se?await n():(await n(ra("app",i)),await n(ra("app_dev",i)),r.push(ei(i))),r}async function na({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=Se);let o=(await cS({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===Se&&d||l===i}return!1});if(r){let u=o.filter(l=>Qr(l)),c=o.filter(l=>!Qr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>xc(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:Po(l)?"development":"published"})):c.filter(l=>t?Po(l):!Po(l))}}async function VP(t){return(await Promise.allSettled(t.map(r=>xc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function $P(){return(await na({idsOnly:!0})).filter(e=>!Qr(e))}async function WP(){return(await na({idsOnly:!0})).filter(e=>Qr(e))}function qP(t,e){return t==null||e==null?!1:ut(t)===ut(e)}async function QP(t){return ct(t,async e=>await e.exists(),{skip_setup:!0})}function qf(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 Qf="_design/database";function jP(){return{_id:Qf,views:{}}}async function HP(t,e){if(Zi[e])try{let r=await t.get(Qf);for(let n of Zi[e])delete r.views?.[n];await t.put(r)}catch{}}async function cs(t,e,r){let n;try{n=await t.get(Qf)}catch{n=jP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await cs(t,e,r);throw s}}var lS=async()=>{let t=ae(),e=`function(doc) {
|
|
10
|
-
if (doc._id.startsWith("us${
|
|
9
|
+
`;await this.client.eval(i,1,this.prefixed(e),r)})}},Ce=ef;var Os,ws,Ds,Rs,rn,bs,Cs,xs,vs,tf;async function pt(){Os=await Ce.init("users"),ws=await Ce.init("session"),Ds=await Ce.init("appMetadata"),Rs=await Ce.init("data_cache"),bs=await Ce.init("locks"),rn=await Ce.init("writeThrough"),xs=await Ce.init("invitation"),vs=await Ce.init("pwReset"),Cs=await Ce.init("socket_io",1),tf=await Ce.init("docWriteThrough")}async function $y(){Os&&await Os.finish(),ws&&await ws.finish(),Ds&&await Ds.finish(),Rs&&await Rs.finish(),rn&&await rn.finish(),bs&&await bs.finish(),xs&&await xs.finish(),vs&&await vs.finish(),Cs&&await Cs.finish(),tf&&await tf.finish()}process.on("exit",async()=>{await $y()});async function Ps(){return Os||await pt(),Os}async function fr(){return ws||await pt(),ws}async function Ja(){return Ds||await pt(),Ds}async function rf(){return Rs||await pt(),Rs}async function nf(){return rn||await pt(),rn}async function sf(){return bs||await pt(),bs}async function pC(){return Cs||await pt(),Cs}async function nn(){return xs||await pt(),xs}async function Ns(){return vs||await pt(),vs}async function mC(){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||{}),Za=(...t)=>on.keys(...t),un=(...t)=>on.get(...t),Mt=(...t)=>on.store(...t),Us=(...t)=>on.delete(...t),mr=(...t)=>on.withCache(...t),Vy=(...t)=>on.withCacheWithDynamicTTL(...t),zn=(...t)=>on.bustCache(...t);var Dr={};P(Dr,{getUser:()=>Ao,getUsers:()=>hU,invalidateUser:()=>So});var ks={};P(ks,{addTenantToUrl:()=>hC,getTenantDB:()=>of,getTenantIDFromCtx:()=>Ms,isUserInAppTenant:()=>EC});function of(t){return Re(Xr(t))}function hC(t){let e=V();if(dr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var EC=(t,e)=>{let r;return e?r=e.tenantId||oe:r=V(),(jn(t)||oe)===r},gC=Object.values(Si),Ms=(t,e)=>{if(!dr())return oe;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=gC),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 Fs={};P(Fs,{getPlatformDB:()=>hr,users:()=>mt});var mt={};P(mt,{addSsoUser:()=>Wy,addUser:()=>IC,getUserDoc:()=>Gy,lookupTenantId:()=>yC,removeUser:()=>OC,updateUserDoc:()=>TC});function hr(){return Re(de.PLATFORM_INFO.name)}async function yC(t){return h.MULTI_TENANCY?(await Gy(t)).tenantId:oe}async function Gy(t){return hr().get(t)}async function TC(t){await hr().put(t)}function AC(t,e){return{_id:t,tenantId:e}}function SC(t,e,r){return{_id:e,userId:t,tenantId:r}}function _C(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,()=>_C(t,e,r,n))}async function IC(t,e,r,n){let i=[af(e,()=>AC(e,t)),af(r,()=>SC(e,r,t))];n&&i.push(Wy(n,r,e,t)),await Promise.all(i)}async function OC(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:()=>ri,getStatus:()=>Tx});var tA=k(require("node-fetch"));var Js={};P(Js,{correlation:()=>Bs,logAlert:()=>fn,logAlertWithInfo:()=>yx,logWarn:()=>ti,logger:()=>lu,system:()=>Nf});var Bs={};P(Bs,{getId:()=>uf,setHeader:()=>wC});var qy=require("correlation-id"),wC=t=>{let e=qy.getId();e&&(t["x-budibase-correlation-id"]=e)};function uf(){return qy.getId()}var cu=k(require("pino")),XT=k(require("pino-pretty"));var Uf=k(require("dd-trace")),eA=require("dd-trace/ext");var Nf={};P(Nf,{getLogReadStream:()=>fx,getSingleFileMaxSizeInfo:()=>ZT,localFileDestination:()=>Pf});var zs=k(require("fs")),vf=k(require("path")),YT=k(require("rotating-file-stream"));var xf={};P(xf,{ObjectStore:()=>ht,ObjectStoreBuckets:()=>WC,SIGNED_FILE_PREFIX:()=>Df,bucketTTLConfig:()=>nu,budibaseTempDir:()=>dn,clientLibraryCDNUrl:()=>sx,clientLibraryPath:()=>BT,clientLibraryUrl:()=>ox,createBucketIfNotExists:()=>Hs,deleteFile:()=>ZC,deleteFiles:()=>XC,deleteFolder:()=>MT,downloadTarball:()=>tx,downloadTarballDirect:()=>ex,enrichPWAImages:()=>ax,enrichPluginURLs:()=>cx,extractBucketAndPath:()=>Af,getAppFileUrl:()=>$T,getGlobalFileS3Key:()=>VT,getGlobalFileUrl:()=>ux,getObjectMetadata:()=>rx,getPluginIconKey:()=>qT,getPluginJSKey:()=>WT,getPluginS3Dir:()=>KT,getPresignedUrl:()=>Ar,getReadStream:()=>iu,listAllObjects:()=>LT,processAutomationAttachment:()=>QC,processObjectStoreAttachment:()=>vT,retrieve:()=>UT,retrieveDirectory:()=>JC,retrieveToTmp:()=>zC,sanitizeBucket:()=>Ne,sanitizeKey:()=>_e,streamUpload:()=>NT,upload:()=>HC,uploadDirectory:()=>Rf});var ou=require("@aws-sdk/client-s3"),Sf=require("@aws-sdk/lib-storage"),PT=require("@aws-sdk/s3-request-presigner");var Tr=k(require("dd-trace")),Xn=k(require("fs")),js=k(require("fs/promises")),_f=k(require("node-fetch")),yr=require("path"),au=k(require("stream")),Ys=require("stream/promises"),If=k(require("tar-fs")),Of=require("uuid"),wf=k(require("zlib"));var Er={};P(Er,{APP_DEV:()=>Na,APP_DEV_PREFIX:()=>Je,APP_PREFIX:()=>ze,AutomationViewMode:()=>Pa,BUDIBASE_DATASOURCE_TYPE:()=>hd,DEFAULT_BB_DATASOURCE_ID:()=>On,DEFAULT_EMPLOYEE_TABLE_ID:()=>Td,DEFAULT_EXPENSES_TABLE_ID:()=>yd,DEFAULT_INVENTORY_TABLE_ID:()=>gd,DEFAULT_JOBS_TABLE_ID:()=>Ed,DatabaseImpl:()=>Kn,DatabaseWithConnection:()=>Fb,DeprecatedViews:()=>Gn,DesignDocuments:()=>ms,DocumentType:()=>ue,InternalTable:()=>Rt,QueryBuilder:()=>$t,Replication:()=>_T,SEPARATOR:()=>R,SQLITE_DESIGN_DOC_ID:()=>It,SQS_DATASOURCE_INTERNAL:()=>md,StaticDatabases:()=>de,UNICODE_MAX:()=>De,USER_METADATA_PREFIX:()=>ps,ViewName:()=>ur,baseGlobalDBName:()=>Is,checkErrorCode:()=>DT,closePouchDB:()=>As,createApiKeyView:()=>gT,createNewUserEmailView:()=>hT,createPlatformAccountEmailView:()=>TT,createPlatformUserView:()=>AT,createUserAppView:()=>ET,createView:()=>Zn,dbExists:()=>MC,directCouchAllDbs:()=>Bd,directCouchCall:()=>Iy,directCouchQuery:()=>Cd,directCouchUrlCall:()=>Ts,doWithDB:()=>We,extractAppUUID:()=>$b,fullSearch:()=>$C,generateAgentChatID:()=>rT,generateAgentToolSourceID:()=>nT,generateAppID:()=>Ky,generateAppUserID:()=>eu,generateDevInfoID:()=>Xy,generateGlobalUserID:()=>Jn,generateOAuth2LogID:()=>tT,generatePluginID:()=>eT,generateRoleID:()=>df,generateRowID:()=>lf,generateTableID:()=>jy,generateTemplateID:()=>Zy,generateUserMetadataID:()=>zy,generateWorkspaceAppID:()=>iT,generateWorkspaceFavouriteID:()=>sT,generateWorkspaceID:()=>Yy,getAllApps:()=>Gs,getAllDbs:()=>mT,getAppsByIDs:()=>PC,getCouchInfo:()=>lt,getDB:()=>Re,getDevAppID:()=>Vd,getDevAppIDs:()=>UC,getDevelopmentAppID:()=>qa,getDocParams:()=>Ft,getGlobalDBName:()=>Xr,getGlobalIDFromUserMetadataID:()=>Jy,getGlobalUserParams:()=>cn,getOAuth2ConfigParams:()=>dT,getPluginParams:()=>lT,getPouch:()=>xd,getPouchDB:()=>Ze,getProdAppID:()=>qe,getProdAppIDs:()=>NC,getQueryIndex:()=>oT,getRoleParams:()=>ru,getRowParams:()=>ff,getStartEndKeyURL:()=>Vs,getTemplateParams:()=>cT,getUrlInfo:()=>bd,getUserMetadataParams:()=>uT,getUsersByAppParams:()=>tu,getWorkspaceAppParams:()=>fT,getWorkspaceFavouriteParams:()=>pT,getWorkspaceParams:()=>aT,init:()=>$a,isDevApp:()=>_s,isDevAppID:()=>lr,isDocumentConflictError:()=>GC,isGlobalUserID:()=>Hy,isProdAppID:()=>Bb,isSameAppID:()=>LC,paginatedSearch:()=>BC,pagination:()=>mf,prefixRoleID:()=>kt,queryGlobalView:()=>Bt,queryGlobalViewRaw:()=>gf,queryPlatformView:()=>qs,queryView:()=>Ef,queryViewRaw:()=>Ws,removeKeyNumbering:()=>Qs,searchIndexes:()=>Tf});var $s={};P($s,{AppState:()=>cf,getAppMetadata:()=>Xa,invalidateAppMetadata:()=>xC});var cf=(e=>(e.INVALID="invalid",e))(cf||{}),Qy=3600,RC=60;async function bC(t){return We(t,e=>e.get("app_metadata"),{skip_setup:!0})}function CC(t){return!t||t.state==="invalid"}async function Xa(t){let e=await Ja(),r=await e.get(t);if(!r){let n=Qy;try{r=await bC(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=RC;else throw i}if(CC(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function xC(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await Ja();await r.delete(t),e&&await r.store(t,e,Qy)}var pf={};P(pf,{generateAgentChatID:()=>rT,generateAgentToolSourceID:()=>nT,generateAppID:()=>Ky,generateAppUserID:()=>eu,generateDevInfoID:()=>Xy,generateGlobalUserID:()=>Jn,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:()=>ru,getRowParams:()=>ff,getStartEndKeyURL:()=>Vs,getTemplateParams:()=>cT,getUserMetadataParams:()=>uT,getUsersByAppParams:()=>tu,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 Jn(t){return`us${R}${t||ee()}`}var vC=new RegExp(`^us${R}.+`);function Hy(t){return vC.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 eu(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 tu(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 ru(t,e={}){return Ft("role",t,e)}function Vs(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 Bd(s);r=r.concat(o)}let i=V();return!h.MULTI_TENANCY||!e&&i===oe?await n():(await n(Vs("app",i)),await n(Vs("app_dev",i)),r.push(Xr(i))),r}async function Gs({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=>Xa(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:_s(l)?"development":"published"})):c.filter(l=>t?_s(l):!_s(l))}}async function PC(t){return(await Promise.allSettled(t.map(r=>Xa(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function NC(){return(await Gs({idsOnly:!0})).filter(e=>!lr(e))}async function UC(){return(await Gs({idsOnly:!0})).filter(e=>lr(e))}function LC(t,e){return t==null||e==null?!1:qe(t)===qe(e)}async function MC(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 kC(){return{_id:hf,views:{}}}async function FC(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 Zn(t,e,r){let n;try{n=await t.get(hf)}catch{n=kC()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await Zn(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
|
|
14
|
-
if (doc._id.startsWith("us${
|
|
13
|
+
}`;await Zn(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 + "${
|
|
16
|
+
let emitted = prodAppId + "${R}" + doc._id
|
|
17
17
|
emit(emitted, null)
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
}`;await
|
|
20
|
+
}`;await Zn(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
|
|
25
|
-
if (doc._id.startsWith("acc_metadata${
|
|
24
|
+
}`;await Zn(t,e,"by_api_key")};async function Ws(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 FC(r,t),await n(),Ws(t,e,r,n,i);if(s.status===409)return Ws(t,e,r,n,i);throw s}}var Ef=async(t,e,r,n,i)=>{let a=(await Ws(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 Zn(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
|
|
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")},sa=async(t,e)=>{let r={account_by_email:mS,platform_users_lowercase_2:hS};return ct(xe.PLATFORM_INFO.name,async n=>{let i=r[t];return jf(t,e,n,i,{arrayResponse:!0})})},gS={by_email2:lS,by_api_key:pS,by_app:dS},yr=async(t,e,r,n)=>{r||(r=ae());let i=gS[t];return jf(t,e,r,i,n)};async function Hf(t,e,r){let n=ae(),i=gS[t];return ia(t,e,n,i,r)}var Kf=class{constructor({source:e,target:r}){this.source=At(e),this.target=At(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([Uo(this.source),Uo(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,wo)?!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=At(this.target.name),await this.replicate()}},yS=Kf;var TS=V(require("node-fetch"));var oa=Wr.removeKeyNumbering;function di(t){return t==null||t===""}var Er=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=oa(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)=>di(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,y="AND")=>{if(di(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)=>di(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(di(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)){_=oa(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let R=g(_,S);if(R!=null){if(T.length>0||n.length>0){let E=y?.mode?y.mode:r?"OR":"AND";T+=` ${E} `}T+=R,(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)=>di(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&m(this.#e.range,(f,g)=>{if(di(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)=>di(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}=Lt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await ES(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await ES(n,i,r);throw s}}};async function ES(t,e,r){let n=await(0,TS.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 AS(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=Er.maxLimit;n.limit&&s.length>n.limit-Er.maxLimit&&(o=n.limit-s.length);let a=new Er(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<Er.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await AS(t,e,r,c)}async function KP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Er.maxLimit);let s=new Er(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 YP(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 AS(t,e,r,n)}}var Yf={};N(Yf,{createUserIndex:()=>JP});async function JP(){let t=ae(),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 SS(t,e){let r=e.toString();if(typeof t=="object")return t.status===e||t.message?.includes(r);if(typeof t=="number")return t===e;if(typeof t=="string")return t.includes(r)}function zP(t){return SS(t,409)}var aa=V(require("fs/promises")),tn=V(require("dd-trace")),ua=require("stream/promises");var ZP=require("sanitize-s3-objectkey"),XP={bucketCreationPromises:{}},tm="/files/signed",Xr={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"},eL=[Xr.html,Xr.css,Xr.js,Xr.json];function Fe(t){return ZP(Ze(t)).replace(/\\/g,"/")}function Ze(t){return t.replace(new RegExp(Tt,"g"),Et)}function Bt(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 Dc.S3(e)}async function ca(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=XP.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 tL({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await aa.default.open(r)).createReadStream():s,c=Bt(),l=await ca(c,t);if(o&&l.created){let g=_c(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,p=d||(a?Xr[a.toLowerCase()]:Xr.txt),m={Bucket:Ze(t),Key:Fe(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 Jf.Upload({client:c,params:m}).done()}async function IS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){return await tn.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=Bt(),c=await ca(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=_c(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?Xr[a.toLowerCase()]:Xr.txt),o.addTags({contentType:l});let d=Ze(t),p=Fe(r),m={Bucket:d,Key:p,Body:e,ContentType:l,...i},g=await new Jf.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 OS(t,e){return await tn.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=Bt(),i={Bucket:Ze(t),Key:Fe(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}),eL.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return Cc.default.Readable.fromWeb(o)}})}async function*xS(t,e){let r=Bt(),n=(o={})=>r.listObjectsV2({...o,Bucket:Ze(t),Prefix:Fe(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 rn(t,e,r=3600){let n=Bt({presigning:!0}),i={Bucket:Ze(t),Key:Fe(e)},s=await(0,_S.getSignedUrl)(n,new Dc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${tm}${a}${u}`}else return s}async function rL(t,e){return await tn.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=Ze(t),e=Fe(e);let n=await OS(t,e),i=(0,en.join)(ci(),(0,em.v4)());return r.addTags({outputPath:i}),n instanceof Cc.default.Readable?(r.addTags({stream:!0}),await(0,ua.pipeline)(n,ls.default.createWriteStream(i))):(r.addTags({stream:!1}),ls.default.writeFileSync(i,n)),i})}async function nL(t,e){return await tn.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,en.join)(ci(),(0,em.v4)());await aa.default.mkdir(n,{recursive:!0});let i=0;return await Ur.parallelForeach(xS(t,e),async s=>{i++,await tn.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await Ic(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,en.join)(n,...l);c.length>1&&!ls.default.existsSync(d)&&await aa.default.mkdir(d,{recursive:!0}),await(0,ua.pipeline)(u,ls.default.createWriteStream((0,en.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function iL(t,e){let r=Bt();await ca(r,t);let n={Bucket:t,Key:Fe(e)};return r.deleteObject(n)}async function sL(t,e){let r=Bt();await ca(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Fe(i)}))}};return r.deleteObjects(n)}async function RS(t,e){t=Ze(t),e=Fe(e);let r=Bt(),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 RS(t,e)}async function rm(t,e,r){return await tn.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=Ze(t);let i=await aa.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=Fe((0,en.join)(r,s.name)),a=(0,en.join)(e,s.name);s.isDirectory()?await rm(t,a,o):await IS({bucket:t,filename:o,stream:ls.default.createReadStream(a)})}return i})}async function oL(t,e,r={}){e=Fe(e);let n=await(0,zf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,ua.pipeline)(n.body,Xf.default.createUnzip(),Zf.default.extract(e))}async function aL(t,e,r){e=Ze(e),r=Fe(r);let n=await(0,zf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,en.join)(ci(),r);return await(0,ua.pipeline)(n.body,Xf.default.createUnzip(),Zf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await rm(e,i,r),i}async function Ic(t,e){return await tn.default.trace("getReadStream",async r=>{t=Ze(t),e=Fe(e),r.addTags({bucketName:t,path:e});let n=Bt(),i={Bucket:t,Key:e},s=await n.getObject(i);if(!s.Body||!(s.Body instanceof Cc.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function uL(t,e){t=Ze(t),e=Fe(e);let r=Bt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Ff(t){let e=t.split("?")[0],r=new RegExp(`^${tm}/(?<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 wS=V(require("aws-cloudfront-sign")),vc;function cL(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return vc||(vc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),vc)}var lL=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:cL(),expireTime:new Date().getTime()+1e3*60*60*24}),ds=t=>{let e=nm(t);return wS.getSignedUrl(e,lL())},nm=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var bS=V(require("querystring"));function DS(t){return`${Fe(t)}/budibase-client.js`}async function dL(t,e){let r=DS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),nm(r)):await rn(h.APPS_BUCKET_NAME,r)}function pL(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==Se&&(n.tenantId=r),`/api/assets/client?${bS.default.encode(n)}`}async function CS(t){return h.CLOUDFRONT_CDN?ds(t):await rn(h.APPS_BUCKET_NAME,t)}async function fL(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await CS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var mL=async(t,e,r)=>{let n=vS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ds(n)):await rn(h.GLOBAL_BUCKET_NAME,n)},vS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function hL(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await gL(e),n=await yL(e);return{...e,jsUrl:r,iconUrl:n}}))}async function gL(t){let e=PS(t);return NS(e)}async function yL(t){let e=LS(t);if(e)return NS(e)}async function NS(t){return h.CLOUDFRONT_CDN?ds(t):await rn(h.PLUGIN_BUCKET_NAME,t)}function PS(t){return US(t,"plugin.min.js")}function LS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return US(t,e)}function US(t,e){return`${MS(t.name)}/${e}`}function MS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var BS="budibase.log",GS="budibase-logs-history.txt",VS=om.default.join(ci(),"systemlogs");function kS(t){return om.default.join(VS,t)}function $S(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}function am(){let t=$S(h.ROLLING_LOG_MAX_SIZE);return FS.createStream(BS,{size:t?.size,path:VS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:GS,initialRotation:!1})}function EL(){let t=[],e=kS(GS);if(la.default.existsSync(e)){let i=la.default.readFileSync(e,"utf-8").split(`
|
|
37
|
-
`);for(let s of i.filter(o=>o))t.push(la.default.readFileSync(s))}return t.push(la.default.readFileSync(kS(BS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}function TL(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function AL(t){return t instanceof Error}function SL(t){return typeof t=="string"}var nn;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,WS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:am(),level:t}),nn=r.length?(0,Nc.default)(e,Nc.default.multistream(r)):(0,Nc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(y=>{SL(y)&&(d=`${d} ${y}`.trimStart()),TL(y)&&l.push(y),AL(y)&&(c=y)});let p=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:p?._id,identityType:p?.type,correlationId:kf()};let f=cm.default.scope().active();f&&cm.default.inject(f.context(),qS.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[_],R=S._logKey;R?(delete S._logKey,g[R]=S):(y[T]=S,T++)}Object.keys(y).length&&(g.data=y)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);nn?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);nn?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);nn?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);nn?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),nn?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);nn?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Me()}catch{}return u},o=()=>{let u;try{u=Af()}catch{}return u},a=()=>{let u;try{u=fr()}catch{}return u}}var Pc=nn;var _L=["AccountError"];function IL(t){return t&&t.suppressAlert}function pi(t,e){e&&_L.includes(e.name)&&IL(e)||console.error(`bb-alert: ${t}`,e)}function OL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,pi(t,n)}function ps(t,e){console.warn(`bb-warn: ${t}`,e)}var pa=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";Xo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,QS.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 lm=new pa(h.INTERNAL_ACCOUNT_PORTAL_URL),dm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,sn=async t=>{if(dm)return;let e={email:t},r=await lm.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]},fs=async t=>{if(dm)return;let e={tenantId:t},r=await lm.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]},xL=async()=>{if(dm)return;let t=await lm.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 _s={};N(_s,{UserDB:()=>Zt,addAppBuilder:()=>m0,bulkGetGlobalUsersById:()=>cl,bulkUpdateGlobalUsers:()=>Ca,cleanseUserObject:()=>Ym,creatorsInList:()=>mi,doesUserExist:()=>c0,getAccountHolderFromUsers:()=>Yc,getAllUserIds:()=>a0,getAllUsers:()=>u0,getById:()=>yi,getCreatorCount:()=>p0,getExistingAccounts:()=>hs,getExistingPlatformUsers:()=>t_,getExistingTenantUsers:()=>e_,getFirstPlatformUser:()=>ma,getGlobalUserByAppPage:()=>J_,getGlobalUserByEmail:()=>$t,getPlatformUsers:()=>kc,getUserCount:()=>d0,hasAdminPermissions:()=>un,hasAppBuilderPermissions:()=>i_,hasBuilderPermissions:()=>St,isAdmin:()=>an,isAdminOrBuilder:()=>n_,isBuilder:()=>Es,isCreatorAsync:()=>ha,isCreatorSync:()=>Hc,isGlobalBuilder:()=>r_,paginatedUsers:()=>Z_,removeAppBuilder:()=>h0,removePortalUserPermissions:()=>f0,searchExistingEmails:()=>_m,searchGlobalUsersByApp:()=>ll,searchGlobalUsersByAppAccess:()=>Km,searchGlobalUsersByEmail:()=>z_,validateUniqueUser:()=>Kc});var Im={};N(Im,{creatorsInList:()=>mi,getAccountHolderFromUsers:()=>Yc,hasAdminPermissions:()=>un,hasAppBuilderPermissions:()=>i_,hasBuilderPermissions:()=>St,isAdmin:()=>an,isAdminOrBuilder:()=>n_,isBuilder:()=>Es,isCreatorAsync:()=>ha,isCreatorSync:()=>Hc,isGlobalBuilder:()=>r_,validateUniqueUser:()=>Kc});var Sm={};N(Sm,{createCode:()=>BL,deleteCode:()=>VL,getCode:()=>GL,getExistingInvites:()=>Am,getInviteCodes:()=>XS,updateCode:()=>FL});var ms={};N(ms,{Duration:()=>De,DurationType:()=>Tm,clearCookie:()=>on,compare:()=>mm,getAppIdFromCtx:()=>PL,getCookie:()=>Tr,hasCircularStructure:()=>UL,hash:()=>fm,isAudited:()=>ym,isClient:()=>LL,isPublicApiRequest:()=>NL,isServingApp:()=>DL,isServingBuilder:()=>CL,isServingBuilderPreview:()=>vL,isValidInternalAPIKey:()=>fa,newid:()=>me,openJwt:()=>Uc,resolveAppUrl:()=>JS,setCookie:()=>zS,time:()=>kL,timeout:()=>gm,urlHasProtocol:()=>ML,validEmail:()=>Em});var pm=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),RL=h.SALT_ROUNDS||10;async function fm(t){let e=await pm.genSalt(RL);return pm.hash(t,e)}async function mm(t,e){return pm.compare(t,e)}var Lc=V(require("jsonwebtoken")),hm="app"+w,HS="/app/",KS="/app/preview",wL="/builder",YS=`${wL}/workspace/`,bL="/api/public/v";async function JS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Jo(t,{includeStrategies:["subdomain"]}));let s=(await Qe(n,()=>na({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function DL(t){return t.path.startsWith(`/${hm}`)?!0:t.path.startsWith(HS)}function CL(t){return t.path.startsWith(YS)}function vL(t){return t.path.startsWith(KS)}function NL(t){return t.path.startsWith(bL)}async function PL(t){let e=[t.request.headers["x-budibase-app-id"]],r;function n(u){return!u||!u.startsWith(hm)?r:(r&&es(r)!==es(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=jS(t.path);i&&(r=n(i)),t.query?.appId&&(r=n(t.query?.appId));let s=t.path.startsWith(KS);if(t.path.startsWith(HS)&&!s&&(r=n(await JS(t))),t.request.headers.referer?.includes(YS)){let u=jS(t.request.headers.referer);r=n(u)}return r}function jS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(hm))}function Uc(t){if(t)try{return Lc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Lc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function fa(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function Tr(t,e){let r=t.cookies.get(e);if(r)return Uc(r)}function zS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Lc.default.sign(e,h.JWT_SECRET));let i={expires:ic,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function on(t,e){zS(t,null,e)}function LL(t){return t.headers["x-budibase-type"]==="client"}function gm(t){return new Promise(e=>setTimeout(e,t))}function ym(t){return!!eg[t]}function UL(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 Em(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 Tm=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Tm||{}),Mc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},De=class t{constructor(e){this.ms=e}to(e){return this.ms/Mc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Mc[e]/Mc[r]}static from(e,r){return new t(r*Mc[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 kL(t){let e=performance.now();return[await t(),De.fromMilliseconds(performance.now()-e)]}var ZS=De.fromDays(7).toSeconds();async function FL(t,e){await(await ii()).store(t,e,ZS)}async function BL(t,e){let r=me();return await(await ii()).store(r,{email:t,info:e},ZS),r}async function GL(t){let r=await(await ii()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function VL(t){await(await ii()).delete(t)}async function XS(){let r=(await(await ii()).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 Am(t){return(await XS()).filter(e=>t.includes(e.email))}async function _m(t){let e=[],r=await e_(t);e.push(...r.map(o=>o.email));let n=await t_(t);e.push(...n.map(o=>o._id));let i=await hs(t);e.push(...i.map(o=>o.email));let s=await Am(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function kc(t){return await sa("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function ma(t){return(await kc(t))[0]??null}async function e_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await yr("by_email2",r,void 0,n)}async function t_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await sa("platform_users_lowercase_2",r)}async function hs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await sa("account_by_email",r)}var jc={};N(jc,{BadRequestError:()=>Gc,BudibaseError:()=>gs,EmailUnavailableError:()=>Ar,FeatureDisabledError:()=>qc,ForbiddenError:()=>Vc,HTTPError:()=>$e,InvalidAPIKeyError:()=>ys,NotFoundError:()=>Bc,NotImplementedError:()=>$c,UnexpectedError:()=>Fc,UsageLimitError:()=>Wc,getPublicError:()=>Qc});var gs=class extends Error{constructor(r,n){super(r);this.code=n}},Qc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},$e=class t extends gs{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)}},Fc=class extends $e{constructor(e){super(e,500)}},Bc=class extends $e{constructor(e){super(e,404)}},Gc=class extends $e{constructor(e){super(e,400)}},Vc=class extends $e{constructor(e){super(e,403)}},$c=class extends $e{constructor(e){super(e,501)}},Wc=class extends $e{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},qc=class extends $e{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},ys=class extends gs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},Ar=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var Es=at.users.isBuilder,an=at.users.isAdmin,r_=at.users.isGlobalBuilder,n_=at.users.isAdminOrBuilder,un=at.users.hasAdminPermissions,St=at.users.hasBuilderPermissions,i_=at.users.hasAppBuilderPermissions;async function mi(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ae().getMultiple(r,{allowMissing:!0}),t.map(i=>Hc(i,e))}async function ha(t){let e=[];return t.userGroups&&(e=await ae().getMultiple(t.userGroups)),Hc(t,e)}function Hc(t,e){let r=at.users.isCreator(t);return!r&&t?WL(t,e):r}function WL(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes("CREATOR")):!1}async function Kc(t,e){if(h.MULTI_TENANCY){let r=await ma(t);if(r!=null&&r.tenantId!==e)throw new Ar(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await sn(t);if(r&&r.verified&&r.tenantId!==e)throw new Ar(t)}}async function Yc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await hs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ss={};N(Ss,{account:()=>S_,action:()=>__,ai:()=>w_,analytics:()=>zc,app:()=>I_,auditLog:()=>$_,auth:()=>al,automation:()=>O_,backfill:()=>k_,backfillCache:()=>sl,backup:()=>G_,datasource:()=>x_,email:()=>R_,environmentVariable:()=>V_,group:()=>F_,identification:()=>Vt,initAsyncEvents:()=>Hk,installation:()=>Ia,layout:()=>D_,license:()=>b_,org:()=>C_,plugin:()=>B_,processors:()=>vm,publishEvent:()=>A,query:()=>v_,role:()=>ba,rowAction:()=>W_,rows:()=>P_,screen:()=>N_,serve:()=>U_,shutdown:()=>Kk,table:()=>L_,user:()=>Xe,view:()=>M_,workspace:()=>q_});var vm={};N(vm,{analyticsProcessor:()=>g_,init:()=>cU,processors:()=>Ir});var zc={};N(zc,{enabled:()=>Jc});var Jc=async()=>Zc();var c_=require("posthog-node");var qL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",QL=t=>t==="served:app:preview"||t==="served:app";var o_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},a_=async t=>{if(!qL(t))return!1;let e=await jL(t);if(e){let r=new Date(e.timestamp);switch(o_[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await s_(t,{timestamp:Date.now()}),!1):!0}}else return await s_(t,{timestamp:Date.now()}),!1},u_=t=>{let e=`${ve.EVENTS_RATE_LIMIT}:${t}`;return QL(t)&&(e=e+":"+Me()),e},jL=async t=>{let e=u_(t);return await ui(e)},s_=async(t,e)=>{let r=u_(t),n=o_[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var KL=["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"],ga=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new c_.PostHog(e)}async processEvent(e,r,n,i){if(KL.includes(e)||await a_(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Me();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 l_=ga;var YL=["installation:version:upgraded","installation:version:downgraded"],JL=["installation","tenant"],ya=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new l_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!YL.includes(e)&&!await Jc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!JL.includes(e.type)&&!await Jc()||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 Om=h.SELF_HOSTED&&!h.isDev(),Ea=class{async processEvent(e,r,n){Om||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Om||console.log("[audit] identified",e)}async identifyGroup(e){Om||console.log("[audit] group identified",e)}async shutdown(){}};var Cm={};N(Cm,{BudibaseQueue:()=>Gt,InMemoryQueue:()=>Xc,JobQueue:()=>Ts,QueuedProcessor:()=>Dm,UnretriableError:()=>rl,shutdown:()=>oU});var d_=V(require("events"));function zL(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 Xc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new d_.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 ze.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=me(),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=>zL(e))}async whenCurrentJobsFinished(){do await gm(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},p_=Xc;var wm=V(require("bull"));var Ts=(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))(Ts||{});function f_(t,e,r){eU(t,e),r&&ZL(t,r)}function ZL(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 _t(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 XL={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 eU(t,e){let r=XL[e];function n(i,s){let o=i.data.event?.appId;if(o)return Tf(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(..._t(r,"stalled",{job:i}))})}).on("error",i=>{console.error(..._t(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(..._t(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(..._t(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(..._t(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(..._t(r,"paused"))}).on("resumed",()=>{console.info(..._t(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(..._t(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(..._t(r,"drained"))}).on("removed",i=>{console.info(..._t(r,"removed",{job:i}))})}var el={};N(el,{cleanup:()=>tU,clear:()=>Rm,set:()=>xm});var Ta=[];function xm(t,e){let r=setInterval(t,e);return Ta.push(r),r}function Rm(t){let e=Ta.indexOf(t);e!==-1&&Ta.splice(e,1),clearInterval(t)}function tU(){for(let t of Ta)clearInterval(t);Ta=[]}var _r=V(require("dd-trace")),Aa=V(require("object-sizeof")),rU=De.fromMinutes(5).toMs(),nU=De.fromSeconds(30).toMs(),bm=De.fromSeconds(60).toMs(),Sa=[],tl;async function m_(){for(let t of Sa)await t.clean(bm,"completed"),await t.clean(bm,"failed")}async function iU(t,e,r){let n=performance.now();try{let i=await e();return _r.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw _r.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;_r.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),_r.default.dogstatsd.increment(t,1,r)}}function h_(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 sU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Aa.default)(t.data),...h_(t.opts||{})}}var Gt=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:ri(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:rU,lockRenewTime:nU}};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 wm.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new p_(this.jobQueue,r):n=new wm.default(this.jobQueue,r),f_(n,this.jobQueue,this.opts.removeStalledCb),Sa.push(n),!tl&&!h.isTest()&&(tl=xm(m_,bm),m_().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 _r.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,...sU(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),_r.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Aa.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 _r.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Aa.default)(e),...h_(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},_r.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Aa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return iU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function oU(){tl&&Rm(tl),console.log("Waiting for current queue jobs to finish...");for(let t of Sa)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Sa)await t.close();Sa=[],console.log("Queues shutdown")}var rl=class extends Error{constructor(e){super(e),this.name="PermanentError"}},Dm=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 Gt(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 rl&&await a.discard(),pi(`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 ze.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var As=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new Gt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await 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&&ym(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Me(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var _a=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 g_=new ya,aU=new Ea,uU=new As;function cU(t){return As.init(t)}var Ir=new _a([g_,aU,uU]);var nl={};N(nl,{checkInstallVersion:()=>pU,getInstall:()=>Oa,getInstallFromDB:()=>Pm});var Nm=V(require("semver"));var Oa=async()=>Jr(ve.INSTALLATION,86400,Pm,{useTenancy:!1});async function lU(t){let e={_id:xe.PLATFORM_INFO.docs.install,installId:me(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Pm();throw r}}var Pm=async()=>ct(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 lU(t);else throw r}return e}),dU=async t=>{try{await ct(xe.PLATFORM_INFO.name,async e=>{let r=await Oa();r.version=t,await e.put(r),await as(ve.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},pU=async()=>{let t=await Oa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Nm.default.gt(r,e),i=Nm.default.lt(r,e);await dU(r)&&(await Co({_id:t.installId,type:"installation"},async()=>{n?await Ia.upgraded(e,r):i&&await Ia.downgraded(e,r)}),await Vt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?pi(`Invalid version "${r}" - is it semver?`):pi("Failed to retrieve version",n)}};var fU=async()=>{let t=Xp(),e=wa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await hi(),i=xa();return{id:y_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await hi(),i=await il(Q()),s=xa();return{id:y_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await il(Q()),s=await hi(),o=n.account,a;return o?a=o.hosting:a=xa(),{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")},mU=async(t,e)=>{let r=t,n="installation",i=xa(),s=h.VERSION,o=wa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Lm(a,e),await Ra({...a,id:`$${n}_${r}`},e)},hU=async(t,e,r,n=h.VERSION)=>{let i=await il(t),s="tenant",o=await hi(),a=wa(),u={id:i,type:s,hosting:e,environment:a,installationId:o,createdAt:r,createdVersion:n};await Lm(u,r),await Ra({...u,id:`$${s}_${i}`},r)},gU=async(t,e,r)=>{let n=t._id,i=await il(t.tenantId),s="user",o=St(t),a=un(t),u;Za(t)&&(u=t.providerType);let l=(await hs([t.email])).length>0,d=!!e&&l&&e.verified,p=await hi(),m=e?e.hosting:xa(),f=wa();await Ra({id:n,type:s,hosting:m,installationId:p,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},yU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=za(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await hi(),c=wa();if(Ja(t)){let d=await $t(t.email);d?._id&&(e=d._id)}await Ra({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ra=async(t,e)=>{await Ir.identify(t,e)},Lm=async(t,e)=>{await Ir.identifyGroup(t,e)},wa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,xa=()=>h.SELF_HOSTED?"self":"cloud",hi=async()=>EU()?"account-portal":(await Oa()).installId,il=async t=>h.SELF_HOSTED?E_(t):t,E_=async t=>Qe(t,()=>Jr(ve.UNIQUE_TENANT_ID,86400,async()=>{let e=ae(),r=await Is(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=h.VERSION,await e.put(r),n)})),EU=()=>h.SERVICE==="account-portal",y_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Vt={getCurrentIdentity:fU,identifyInstallationGroup:mU,identifyTenantGroup:hU,identifyUser:gU,identifyAccount:yU,identify:Ra,identifyGroup:Lm,getInstallationId:hi,getUniqueTenantId:E_};var sl={};N(sl,{end:()=>AU,isAlreadySent:()=>km,isBackfillingEvent:()=>Mm,recordEvent:()=>Um,start:()=>TU});var TU=async t=>_U({eventWhitelist:t}),Um=async(t,e)=>{let r=Fm(t,e);await mr(r,e,void 0,{useTenancy:!1})},AU=async()=>{await IU(),await OU()},SU=async()=>ui(ve.BACKFILL_METADATA),_U=async t=>mr(ve.BACKFILL_METADATA,t),IU=async()=>{await Ko(ve.BACKFILL_METADATA)},OU=async()=>{let t=Fm(),e=await Sc(t);for(let r of e)await Ko(r,{useTenancy:!1})},Mm=async t=>{let r=(await SU())?.eventWhitelist;return!!(r&&r.includes(t))},km=async(t,e)=>{let r=Fm(t,e);return!!await ui(r,{useTenancy:!1})},xU={"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}`},Fm=(t,e)=>{let r,n=Q();if(t){r=`${ve.EVENTS}:${n}:${t}`;let i=xU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${ve.EVENTS}:${n}:*`;return r};var Or;function ol(){Or=new Gt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function T_(){Or&&await Or.close()}async function A_(t){Or||ol();let{event:e,identity:r}=t;Xh.indexOf(e)!==-1&&r.tenantId&&await Or.add(t)}var A=async(t,e,r,n)=>{let i=n||await Vt.getCurrentIdentity();if(!(n?!1:await Mm(t))){await A_({event:t,identity:i,properties:e,timestamp:r}),await Ir.processEvent(t,i,e,r);return}await km(t,e)||(await Ir.processEvent(t,i,e,r),await Um(t,e))};async function RU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function wU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function bU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var S_={created:RU,deleted:wU,verified:bU};async function DU(t,e){await A("action:automation_step:executed",t,e)}async function CU(t,e){await A("action:crud:executed",t,e)}async function vU(t,e){await A("action:ai_agent:executed",t,e)}var __={aiAgentExecuted:vU,automationStepExecuted:DU,crudExecuted:CU};var NU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function PU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function LU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function UU(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 kU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function FU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function BU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function GU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function VU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function $U(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function WU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var I_={created:NU,updated:PU,deleted:LU,published:UU,unpublished:MU,fileImported:kU,duplicated:FU,templateImported:BU,versionUpdated:GU,versionReverted:VU,reverted:$U,exported:WU};async function qU(t,e){let n={userId:(await Vt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function QU(t){let r={userId:(await Vt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function jU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function HU(t){let e={type:t};await A("auth:sso:updated",e)}async function KU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function YU(t){let e={type:t};await A("auth:sso:deactivated",e)}var al={login:qU,logout:QU,SSOCreated:jU,SSOUpdated:HU,SSOActivated:KU,SSODeactivated:YU};async function JU(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 zU(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 ZU(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 XU(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 eM=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function tM(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 rM(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var O_={created:JU,triggerUpdated:zU,deleted:ZU,tested:XU,run:eM,stepCreated:tM,stepDeleted:rM};function Bm(t){return!Object.values(ja).includes(t.source)}async function nM(t,e){let r={datasourceId:t._id,source:t.source,custom:Bm(t)};await A("datasource:created",r,e)}async function iM(t){let e={datasourceId:t._id,source:t.source,custom:Bm(t)};await A("datasource:updated",e)}async function sM(t){let e={datasourceId:t._id,source:t.source,custom:Bm(t)};await A("datasource:deleted",e)}var x_={created:nM,updated:iM,deleted:sM};async function oM(t){let e={};await A("email:smtp:created",e,t)}async function aM(){let t={};await A("email:smtp:updated",t)}var R_={SMTPCreated:oM,SMTPUpdated:aM};async function uM(t){let e={};await A("ai:config:created",e,t)}async function cM(){let t={};await A("ai:config:updated",t)}var w_={AIConfigCreated:uM,AIConfigUpdated:cM};async function lM(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function dM(t){let e={accountId:t.accountId};await A("license:activated",e)}async function pM(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function fM(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function mM(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function hM(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function gM(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var b_={planChanged:lM,activated:dM,checkoutOpened:pM,checkoutSuccess:fM,portalOpened:mM,paymentFailed:hM,paymentRecovered:gM};async function yM(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function EM(t){let e={layoutId:t};await A("layout:deleted",e)}var D_={created:yM,deleted:EM};async function TM(t){let e={};await A("org:info:name:updated",e,t)}async function AM(t){let e={};await A("org:info:logo:updated",e,t)}async function SM(t){let e={};await A("org:platformurl:updated",e,t)}async function _M(){let t={};await A("analytics:opt:out",t)}async function IM(){let t={};await A("analytics:opt:out",t)}var C_={nameUpdated:TM,logoUpdated:AM,platformURLUpdated:SM,analyticsOptOut:_M,analyticsOptIn:IM};var OM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},xM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},RM=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)},wM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},bM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},DM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},v_={created:OM,updated:xM,deleted:RM,imported:wM,run:bM,previewed:DM};async function CM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function vM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function NM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function PM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function LM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var ba={created:CM,updated:vM,deleted:NM,assigned:PM,unassigned:LM};async function UM(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 N_={created:UM,deleted:MM};var kM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},FM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},P_={created:kM,imported:FM};async function BM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function GM(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 VM(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}async function $M(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function WM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var L_={created:BM,updated:GM,deleted:VM,exported:$M,imported:WM};async function qM(t){let e={timezone:t};await A("served:builder",e)}async function QM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function jM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var U_={servedBuilder:qM,servedApp:QM,servedAppPreview:jM};async function HM(t,e){let r={userId:t._id,viaScim:Mt(),audited:{email:t.email}};await A("user:created",r,e)}async function KM(t){let e={userId:t._id,viaScim:Mt(),audited:{email:t.email}};await A("user:updated",e)}async function YM(t){let e={userId:t._id,viaScim:Mt(),audited:{email:t.email}};await A("user:deleted",e)}async function JM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function zM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function ZM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function XM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function ek(t){let e={audited:{email:t}};await A("user:invited",e)}async function tk(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function rk(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function nk(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function ik(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function sk(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function ok(t){let e={users:t};await A("user:data:collaboration",e)}var Xe={created:HM,updated:KM,deleted:YM,permissionAdminAssigned:JM,permissionAdminRemoved:zM,permissionBuilderAssigned:ZM,permissionBuilderRemoved:XM,invited:ek,inviteAccepted:tk,passwordForceReset:rk,passwordUpdated:nk,passwordResetRequested:ik,passwordReset:sk,dataCollaboration:ok};async function ak(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function uk(t){let e={tableId:t.tableId};await A("view:updated",e)}async function ck(t,e){let r={...ze.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}async function lk(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function dk({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function pk({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function fk(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function mk({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function hk(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function gk(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function yk(t,e){let r={tableId:t};await A("view:join:created",r,e)}var M_={created:ak,updated:uk,deleted:ck,exported:lk,filterCreated:dk,filterUpdated:pk,filterDeleted:fk,calculationCreated:mk,calculationUpdated:hk,calculationDeleted:gk,viewJoinCreated:yk};async function Ek(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function Tk(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function Ak(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function Sk(){let t={};await A("installation:firstStartup",t)}var Ia={versionChecked:Ek,upgraded:Tk,downgraded:Ak,firstStartup:Sk};var Os=!h.SELF_HOSTED&&!h.isDev();async function _k(t){Os||await A("app:backfill:succeeded",t)}async function Ik(t){if(Os)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function Ok(t){Os||await A("tenant:backfill:succeeded",t)}async function xk(t){if(Os)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function Rk(){if(Os)return;let t={};await A("installation:backfill:succeeded",t)}async function wk(t){if(Os)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var k_={appSucceeded:_k,appFailed:Ik,tenantSucceeded:Ok,tenantFailed:xk,installationSucceeded:Rk,installationFailed:wk};async function bk(t,e){let r={groupId:t._id,viaScim:Mt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function Dk(t){let e={groupId:t._id,viaScim:Mt(),audited:{name:t.name}};await A("user_group:updated",e)}async function Ck(t){let e={groupId:t._id,viaScim:Mt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function vk(t,e){let r={count:t,groupId:e._id,viaScim:Mt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function Nk(t,e){let r={count:t,groupId:e._id,viaScim:Mt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function Pk(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function Lk(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var F_={created:bk,updated:Dk,deleted:Ck,usersAdded:vk,usersDeleted:Nk,createdOnboarding:Pk,permissionsEdited:Lk};async function Uk(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function Mk(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 kk(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 B_={init:Uk,imported:Mk,deleted:kk};async function Fk(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function Bk(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var G_={appBackupRestored:Fk,appBackupTriggered:Bk};async function Gk(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function Vk(t){let e={name:t};await A("environment_variable:deleted",e)}async function $k(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var V_={created:Gk,deleted:Vk,upgradePanelOpened:$k};async function Wk(t){let e={filters:t};await A("audit_log:filtered",e)}async function qk(t){let e={filters:t};await A("audit_log:downloaded",e)}var $_={filtered:Wk,downloaded:qk};async function Qk(t,e){await A("row_action:created",t,e)}var W_={created:Qk};async function jk(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}var q_={deleted:jk};function Hk(){}var Kk=async()=>{await Ir.shutdown(),console.log("Events shutdown")};var Gm=async t=>{await Xe.deleted(t),St(t)&&await Xe.permissionBuilderRemoved(t),un(t)&&await Xe.permissionAdminRemoved(t)},Yk=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await ba.assigned(t,i)},Jk=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await ba.unassigned(t,i)},zk=async(t,e)=>{let r=t.roles,n=e?.roles;await Yk(t,r,n),await Jk(t,r,n)},Vm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await fs(r)),await Vt.identifyUser(t,n),e?(await Xe.updated(t),Xk(t,e)&&await Xe.permissionBuilderRemoved(t),t0(t,e)&&await Xe.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Xe.passwordForceReset(t),t.password!==e.password&&await Xe.passwordUpdated(t)):await Xe.created(t),Zk(t,e)&&await Xe.permissionBuilderAssigned(t),e0(t,e)&&await Xe.permissionAdminAssigned(t),await zk(t,e)},Zk=(t,e)=>Q_(t,e,St),Xk=(t,e)=>j_(t,e,St),e0=(t,e)=>Q_(t,e,un),t0=(t,e)=>j_(t,e,un),Q_=(t,e,r)=>!(!r(t)||e&&r(e)),j_=(t,e,r)=>!(r(t)||!e||!r(e));var ul={};N(ul,{createASession:()=>n0,endSession:()=>i0,getSession:()=>Wm,getSessionsForUser:()=>Da,invalidateSessions:()=>gi,updateSessionTTL:()=>$m});var K_=require("uuid");var Y_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):De.fromDays(7).toSeconds();function xs(t,e){return`${t}/${e}`}async function Da(t){return t?(await(await Kr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function gi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Da(t)).map(o=>({key:xs(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:xs(t,s)}))),i&&i.length>0){let s=await Kr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ps(`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 n0(t,e){let r=await Da(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 gi(t,{sessionIds:d,reason:"session limit exceeded"})}let i=await Kr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,K_.v4)(),a=xs(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,Y_),{session:u,invalidatedSessionCount:n}}async function $m(t){let e=await Kr(),r=xs(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,Y_)}async function i0(t,e){await(await Kr()).delete(xs(t,e))}async function Wm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Kr()).get(xs(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Hm={};N(Hm,{PASSWORD_MAX_LENGTH:()=>Qm,PASSWORD_MIN_LENGTH:()=>qm,validatePassword:()=>jm});var qm=+(h.PASSWORD_MIN_LENGTH||12),Qm=+(h.PASSWORD_MAX_LENGTH||512);function jm(t){return!t||t.length<qm?{valid:!1,error:`Password invalid. Minimum ${qm} characters.`}:t.length>Qm?{valid:!1,error:`Password invalid. Maximum ${Qm} characters.`}:{valid:!0}}var s0=async t=>{let e=t._id;await Ft.removeUser(t),await Gm(t),await cn.invalidateUser(e),await gi(e,{reason:"bulk-deletion"})},Zt=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&&an(e)?!1:await t.features.isSSOEnforced()||Za(e)?!0:(r||(r=await fs(Q())),!!(r&&r.email===e.email&&za(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 $e("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=jm(o);if(!d.valid)throw new $e(d.error,400)}u=r.hashPassword?await fm(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||us();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 ae().allDocs(li(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await ll(e,{})).length}}static async getUsersByAppAccess(e){return await Km(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return $t(e)}static async getUser(e){let r=await yi(e);return r&&delete r.password,r}static async bulkGet(e){return await cl(e)}static async bulkUpdate(e){return await Ca(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ae(),{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 yi(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 $t(s),c&&c._id!==o))throw new Ar(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[p,m]=await mi([c,e]);d=p!==m?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Kc(s,n);let p=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(p=Ym(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 cn.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 _m(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 ha(p)&&o.push(p)}let l=await fs(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 Ca(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=ae(),n={successful:[],unsuccessful:[]},i=await Yc(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 Ca(a),l=(await mi(o)).filter(m=>m).length,d=[];for(let m of o){let g=(await ma(m._id)).ssoId;g&&(await kc(g)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await s0(m)}await zr().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=ae(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await sn(o))throw n.userId===fr()._id?new $e('Please visit "Account" to delete this user',400):new $e("Account holder cannot be deleted",400)}await Ft.removeUser(n),await r.remove(i,n._rev);let s=await ha(n)?1:0;await t.quotas.removeUsers(1,s),await Gm(n),await cn.invalidateUser(i),await gi(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 as(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 Na(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function cl(t,e){let n=(await ae().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Na(n)),n}async function a0(){let t=ae(),e=`us${w}`;return(await t.allDocs({startkey:e,endkey:`${e}${We}`})).rows.map(n=>n.id)}async function u0(){let t=ae(),e=`us${w}`;return(await t.allDocs({startkey:e,endkey:`${e}${We}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ca(t){return await ae().bulkDocs(t)}async function yi(t,e){let n=await ae().get(t);return e?.cleanup&&(n=Na(n)),n}async function $t(t,e){if(t==null)throw"Must supply an email address to view";let r=await yr("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=Na(n)),n}async function c0(t){try{let e=await $t(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function ll(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=wc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await yr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Na(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 ae().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function J_(t,e){if(e)return Rc(ut(t),e._id)}async function z_(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 yr("by_email2",{...e,startkey:i,endkey:`${n}${We}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Na(o)),o}var l0=8;async function Z_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ae(),s=n??l0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await yi(e.equal._id)]:r?(u=await ll(r,a),l=d=>J_(r,d)):e?.string?.email?(u=await z_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await cl(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(li(null,{...a,limit:void 0}))).rows.map(p=>p.doc),u=Wr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(li(null,a))).rows.map(p=>p.doc),qf(u,s,{paginate:!0,property:c,getKey:l})}async function d0(){return(await Hf("by_email2",{limit:0,include_docs:!1})).total_rows}async function p0(){let t=0;async function e(r){let n=await Z_({bookmark:r}),i=await mi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function f0(t){return delete t.admin,delete t.builder,t}function Ym(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 m0(t,e){let r=ut(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Zt.save(t,{hashPassword:!1})}async function h0(t,e){let r=ut(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Zt.save(t,{hashPassword:!1})}var X_=3600;async function g0(t,e){let n=await Uf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await sn(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function y0(t){let e=await Zt.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 sn(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Pa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=g0),!e)try{e=Q()}catch{e=await Ft.lookupTenantId(t)}let i=await jo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,X_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!at.users.isGlobalBuilder(s)&&await Qe(e,async()=>{let o=await Zt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function E0(t){let e=await jo(),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,X_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function La(t){await(await jo()).delete(t)}var eh={};N(eh,{Writethrough:()=>Zm});var ws={};N(ws,{AUTO_EXTEND_POLLING_MS:()=>tI,doWithLock:()=>Jm,newRedlock:()=>Ei});var eI=V(require("redlock"));async function A0(t,e){if(t==="custom")return Ei(e);switch(t){case"try_once":return Ei(Rs.TRY_ONCE);case"try_twice":return Ei(Rs.TRY_TWICE);case"default":return Ei(Rs.DEFAULT);case"delay_500":return Ei(Rs.DELAY_500);case"auto_extend":return Ei(Rs.AUTO_EXTEND);default:throw Ur.unreachable(t)}}var Rs={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 Ei(t={}){let e={...Rs.DEFAULT,...t},n=(await Lf()).client;return new eI.default([n],e)}function S0(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var tI=De.fromSeconds(10).toMs();async function Jm(t,e){let r=await A0(t.type,t.customOptions),n,i;try{let s=S0(t),o=t.type==="auto_extend"?tI: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 rI=1e4,zm=null;async function dl(){if(!zm){let t=await Pf();zm=new si(t)}return zm}function Ua(t,e){return t.name+e}function Xm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function _0(t,e,r=rI){let n=await dl(),i=e._id,s;i&&(s=await n.get(Ua(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await Jm({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;ps("Ignoring conflict in write-through cache")}})).executed||ps("Ignoring redlock conflict in write-through cache")),s=Xm(a,o?null:s?.lastWrite),a._id&&await n.store(Ua(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function I0(t,e){let r=await dl(),n=Ua(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Xm(s),await r.store(n,i)}return i.doc}async function O0(t,e){let r=await dl(),n=Ua(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Xm(s),await r.store(n,i)}return i.doc}async function x0(t,e,r){let n=await dl();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(Ua(t,i))}finally{await t.remove(i,r)}}var Zm=class{constructor(e,r=rI){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return _0(this.db,e,r)}async get(e){return I0(this.db,e)}async tryGet(e){return O0(this.db,e)}async remove(e,r){return x0(this.db,e,r)}};var th={};N(th,{createCode:()=>w0,getCode:()=>b0,invalidateCode:()=>D0});var R0=De.fromHours(1).toSeconds();async function w0(t,e){let r=me();return await(await Ho()).store(r,{userId:t,info:e},R0),r}async function b0(t){let r=await(await Ho()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function D0(t){await(await Ho()).delete(t)}var nh={};N(nh,{DocWritethrough:()=>rh,DocWritethroughProcessor:()=>Ma,getProcessor:()=>v0,init:()=>nI});var C0=100,pl,Ma=class t{static get queue(){return t._queue||(t._queue=new Gt("docWritethroughQueue",{jobOptions:{attempts:C0}})),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=qe(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},rh=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ma.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function nI(){return pl=new Ma().init(),pl}function v0(){return pl||nI()}function fl(t){return`config${w}${t}`}async function It(t){let e=ae();try{return await e.get(fl(t))}catch(r){if(r.status===404)return;throw r}}async function N0(t){return t._id||(t._id=fl(t.type)),ae().put(t)}async function Is(){let t=await It("settings");return t||(t={_id:fl("settings"),type:"settings",config:{}}),t.config.platformUrl=await ka({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Zc({config:t.config}),t}async function oh(){return(await Is()).config}async function ka(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 It("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Zc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Jr(ve.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await It("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 P0(){return await It("google")}async function ml(){return(await P0())?.config}async function ah(){if(!h.SELF_HOSTED)return ih();let t=await ml();return(!t||!t.activated)&&(t=ih()),t}function ih(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function L0(){return It("logos_oidc")}async function U0(){return It("oidc")}async function M0(){let t=(await U0())?.config;return t?.configs&&t.configs[0]}async function uh(t){let e=(await It("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function iI(){return It("smtp")}async function k0(t){let e=await iI();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 F0(){return(await It("scim"))?.config}async function B0(){return It("ai")}async function G0(){return It("recaptcha")}var Eh={};N(Eh,{AccessController:()=>dh,BUILTIN_ROLE_IDS:()=>ph,Role:()=>ln,RoleHierarchyTraversal:()=>hl,RoleIDVersion:()=>fh,builtinRoleToNumber:()=>Fa,checkForRoleResourceArray:()=>uI,externalRole:()=>j0,findRole:()=>Ba,getAllRoleIds:()=>J0,getAllRoles:()=>yh,getBuiltinRole:()=>oI,getBuiltinRoles:()=>hh,getDBRoleID:()=>cI,getExternalRoleID:()=>dn,getExternalRoleIDs:()=>lI,getRole:()=>H0,getUserRoleHierarchy:()=>gh,getUserRoleIdHierarchy:()=>aI,isBuiltin:()=>Ti,lowerBuiltinRoleID:()=>Q0,prefixRoleIDNoBuiltin:()=>lh,roleIDsAreEqual:()=>Ot,roleToNumber:()=>q0,saveRoles:()=>K0,validInherits:()=>W0});var ch=V(require("semver"));var gl=V(require("lodash/fp/cloneDeep"));var sI=require("lodash");var ph={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ye={...ph,BUILDER:"BUILDER"},fh={UUID:void 0,NAME:"name"};function $0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var ln=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=fh.NAME}addInheritance(e){return e&&typeof e=="string"?e=lh(e):e&&Array.isArray(e)&&(e=e.map(lh)),this.inherits=e,this}},hl=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=Ba(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!$0(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ba(o.inherits,n,r),o&&i.push(o),ze.roles.checkForRoleInheritanceLoops(i))break}}return(0,sI.uniqBy)(i,s=>s._id)}},mh={ADMIN:new ln(ye.ADMIN,ye.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ye.POWER),POWER:new ln(ye.POWER,ye.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ye.BASIC),BASIC:new ln(ye.BASIC,ye.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ye.PUBLIC),PUBLIC:new ln(ye.PUBLIC,ye.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new ln(ye.BUILDER,ye.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function hh(){return(0,gl.default)(mh)}function Ti(t){return Object.values(ph).includes(t)}function lh(t){return Ti(t)?t:hr(t)}function oI(t){let e=Object.values(mh).find(r=>t.includes(r._id));if(e)return(0,gl.default)(e)}function W0(t,e){if(!e)return!1;let r=n=>t.find(i=>Ot(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 Fa(t){let e=hh(),r=Object.values(e).length+1;if(Ot(t,ye.ADMIN)||Ot(t,ye.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 q0(t){if(Ti(t))return Fa(t);let e=await gh(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=>Ot(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(Ti(n.inherits))return Fa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function Q0(t,e){return t?e&&Fa(t)>Fa(e)?e:t:e}function Ot(t,e){return hr(t)===hr(e)}function j0(t){let e;return t._id&&(e=dn(t._id)),{...t,_id:e,inherits:lI(t.inherits,t.version)}}function Ba(t,e,r){let n=oI(t);n||(t=hr(t));let i=e.find(s=>s._id&&Ot(s._id,t));return!i&&!Ti(t)&&r?.defaultPublic?(0,gl.default)(mh.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=dn(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function H0(t,e){let r=ss(),n=[];if(!Ti(t)){let i=await r.tryGet(cI(t));i&&n.push(i)}return Ba(t,n,e)}async function K0(t){await ss().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:hr(r._id)})))}async function Y0(t,e){let r=await yh();if(Ot(t,ye.ADMIN))return r;let n=Ba(t,r,e),i=[];return n&&(i=new hl(r,e).walk(n)),i}async function aI(t){return(await gh(t)).map(r=>r._id)}async function gh(t,e){return Y0(t,e)}function uI(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 J0(t){return(await yh(t)).map(r=>r._id)}async function yh(t){if(t)return ct(t,e);{let r;try{r=ss()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(bc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=dn(a._id,a.version)));let i=hh(),s=[];!r||await z0(r)?s=[ye.ADMIN,ye.POWER,ye.BASIC,ye.PUBLIC]:s=[ye.ADMIN,ye.BASIC,ye.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Ot(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=dn(a._id,u.version),n.push({...a,...u,name:a.name,_id:dn(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=uI(o.permissions,a);return n}}async function z0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!ch.default.valid(r)?!0:!ch.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var dh=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Ot(e,ye.BUILDER)||Ot(r,e)||Ot(r,ye.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await aI(r),this.userHierarchies[r]=n),n?.find(i=>Ot(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let 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 cI(t){return t?.startsWith("role")?t:hr(t)}function dn(t,e){if(t.startsWith(`role${w}`)&&(Ti(t)||e===fh.NAME)){let r=t.split(w);return r.shift(),r.join(w)}return t}function lI(t,e){return t&&(typeof t=="string"?dn(t,e):t.map(r=>dn(r,e)))}var Th={};N(Th,{BUILDER:()=>rF,BUILTIN_PERMISSIONS:()=>yl,CREATOR:()=>nF,GLOBAL_BUILDER:()=>iF,PermissionImpl:()=>Ee,PermissionLevel:()=>Ns,PermissionType:()=>Ya,doesHaveBasePermission:()=>eF,getAllowedLevels:()=>mI,getBuiltinPermissionByID:()=>X0,getBuiltinPermissions:()=>Z0,isPermissionLevelHigherThanRead:()=>tF,levelToNumber:()=>fI});var dI=V(require("lodash/flatten")),pI=V(require("lodash/fp/cloneDeep")),Ee=class{constructor(e,r){this.type=e,this.level=r}};function fI(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function mI(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var yl={PUBLIC:{_id:"public",name:"Public",permissions:[new Ee("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new Ee("query","read"),new Ee("table","read"),new Ee("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new Ee("query","write"),new Ee("table","write"),new Ee("automation","execute"),new Ee("legacy_view","read"),new Ee("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new Ee("table","write"),new Ee("user","read"),new Ee("automation","execute"),new Ee("webhook","read"),new Ee("legacy_view","read"),new Ee("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new Ee("table","admin"),new Ee("user","admin"),new Ee("automation","admin"),new Ee("webhook","read"),new Ee("query","admin"),new Ee("legacy_view","read"),new Ee("app","read")]}};function Z0(){return(0,pI.default)(yl)}function X0(t){return Object.values(yl).find(r=>r._id===t)}function eF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(yl),s=(0,dI.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&mI(o.level).indexOf(e)!==-1)return!0;return!1}function tF(t){return fI(t)>1}var rF="builder",nF="creator",iF="globalBuilder";var _h={};N(_h,{FlagSet:()=>Tl,all:()=>uF,flags:()=>Ah,getEnvFlags:()=>EI,init:()=>sF,isEnabled:()=>aF,parseEnvFlags:()=>Sl,shutdown:()=>oF,testutils:()=>Sh});var Al=V(require("crypto"));var hI=require("posthog-node"),gI=V(require("dd-trace"));var yI=require("lodash");var El;function sF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),El=new hI.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 oF(){El?.shutdown()}function Sl(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 EI(){return Sl(h.TENANT_FEATURE_FLAGS||"")}var Tl=class{constructor(e){this.flagSchema=e;this.setId=Al.randomUUID()}defaults(){return(0,yI.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await gI.default.trace("features.fetch",async e=>{let r=If(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;if(mc())return i;for(let{tenantId:d,key:p,value:m}of EI())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=fr(),u=a?._id;if(!u){let d=Sf();d&&(u=Al.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,El&&u){n.readFromPostHog=!0;let d=await Is(),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 El.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=xf();for(let[d,p]of Object.entries(l))this.isFlagName(d)&&typeof p=="boolean"&&(i[d]=p,n[`flags.${d}.source`]="override");Of(this.setId,i);for(let[d,p]of Object.entries(i))n[`flags.${d}.value`]=p;return e?.addTags(n),i})}},Ah=new Tl(ig);async function aF(t){return await Ah.isEnabled(t)}async function uF(){return await Ah.fetch()}var Sh={};N(Sh,{setFeatureFlags:()=>TI,withFeatureFlags:()=>dF});function cF(){let t={};for(let{tenantId:e,key:r,value:n}of Sl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function lF(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 TI(t,e){let r=cF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=lF(r);return No({TENANT_FEATURE_FLAGS:n})}function dF(t,e,r){let n=TI(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Lh={};N(Lh,{adminOnly:()=>Nl,auditLog:()=>bl,authError:()=>Be,buildAuthMiddleware:()=>KF,buildCsrfMiddleware:()=>JF,buildTenancyMiddleware:()=>YF,builderOnly:()=>Ll,builderOrAdmin:()=>Pl,google:()=>xr,internalApi:()=>Cl,joiValidator:()=>Va,oidc:()=>Rr,passport:()=>zF,platformLogout:()=>rB,refreshOAuthToken:()=>eB,ssoCallbackUrl:()=>pn,updateUserOAuth:()=>tB});var Ph={};N(Ph,{adminOnly:()=>Nl,auditLog:()=>bl,authError:()=>Be,authenticated:()=>wl,builderOnly:()=>Ll,builderOrAdmin:()=>Pl,correlation:()=>PI,csp:()=>BI,csrf:()=>vl,datasource:()=>jF,errorHandling:()=>UI,featureFlagCookie:()=>GI,google:()=>xr,internalApi:()=>Cl,ip:()=>$I,joiValidator:()=>Va,local:()=>bs,oidc:()=>Rr,pino:()=>vI,querystringToBody:()=>MI,ssoCallbackUrl:()=>pn,tenancy:()=>Dl});var bs={};N(bs,{authenticate:()=>mF,options:()=>fF});function Be(t,e,r){return t(r,null,{message:e})}async function pn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await oh(),n="/api/global/auth";return Hr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Ih="Invalid credentials",pF="This account has expired. Please reset your password",fF={passReqToCallback:!0};async function mF(t,e,r,n){if(!e)return Be(n,"Email Required");if(!r)return Be(n,"Password Required");let i=await $t(e);return i==null?(console.info(`user=${e} could not be found`),Be(n,Ih)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Be(n,Ih)):i.password?await mm(r,i.password)?(delete i.password,n(null,i)):Be(n,Ih):(console.info(`user=${e} has no password set`,i),Be(n,pF))}var xr={};N(xr,{buildVerifyFn:()=>_I,getCallbackUrl:()=>yF,strategyFactory:()=>Oh});var Ga=t=>Promise.resolve(t);async function _l(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Be(r,"sso user id required");if(!t.email)return Be(r,"sso user email required");let i=us(t.userId),s;try{s=await yi(i)}catch(a){if(!a.status||a.status!==404)return Be(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await $t(t.email)),!s&&e)return Be(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 Be(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 gF=require("passport-google-oauth").OAuth2Strategy;function _I(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 _l(s,!0,i,t)}}async function Oh(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=_I(r);return new gF({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 pn("google",t)}var Rr={};N(Rr,{buildVerifyFn:()=>OI,fetchStrategyConfig:()=>SF,getCallbackUrl:()=>_F,strategyFactory:()=>AF});var II=V(require("node-fetch"));var EF=require("@techpass/passport-openidconnect").Strategy;function OI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:TF(n,i),oauth2:{accessToken:s,refreshToken:o}};return _l(l,!1,c,t)}}function TF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Em(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function AF(t,e){try{let r=OI(e),n=new EF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function SF(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,II.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 _F(){return pn("oidc")}var xh={};N(xh,{postAuth:()=>xF,preAuth:()=>OF});var IF=require("passport-google-oauth").OAuth2Strategy;async function xI(){let t=await ah();if(!t)throw new Error("No google configuration found");return t}async function OF(t,e,r){let n=await xI(),s=`${await ka({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Oh(n,s,Ga);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 xF(t,e,r){let n=await xI(),s=`${await ka({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=Tr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new IF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{on(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=me();await mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var RF=/\/:(.*?)(\/.*)?$/g,Ai=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(RF);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}}):[],Si=(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 vh={};N(vh,{SecretOption:()=>bI,decrypt:()=>Ch,decryptFile:()=>NF,encrypt:()=>DF,encryptFile:()=>CF,getSecret:()=>Dh});var wr=V(require("crypto")),fn=V(require("fs")),wh=V(require("zlib"));var Rh=require("path"),Il="aes-256-ctr",wI="-",wF=1e4,bF=32,Ol=16,bh=16,bI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(bI||{});function Dh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function xl(t,e){return wr.default.pbkdf2Sync(t,new Uint8Array(e),wF,bF,"sha512")}function DF(t,e="api"){let r=wr.default.randomBytes(Ol),n=xl(Dh(e),r),i=wr.default.createCipheriv(Il,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")}${wI}${a}`}function Ch(t,e="api"){let[r,n]=t.split(wI),i=Buffer.from(r,"hex"),s=xl(Dh(e),i),o=wr.default.createDecipheriv(Il,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 CF({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Rh.join)(t,e);if(fn.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=fn.default.createReadStream(i),o=fn.default.createWriteStream((0,Rh.join)(t,n)),a=wr.default.randomBytes(Ol),u=wr.default.randomBytes(bh),c=xl(r,a),l=wr.default.createCipheriv(Il,new Uint8Array(c),new Uint8Array(u));return o.write(a),o.write(u),s.pipe(wh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function vF(t){let e=fn.default.createReadStream(t),r=await RI(e,Ol),n=await RI(e,bh);return e.close(),{salt:r,iv:n}}async function NF(t,e,r){if(fn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await vF(t),s=fn.default.createReadStream(t,{start:Ol+bh}),o=fn.default.createWriteStream(e),a=xl(r,n),u=wr.default.createDecipheriv(Il,new Uint8Array(a),new Uint8Array(i)),c=wh.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 RI(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 CI=V(require("dd-trace")),PF=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function LF(){return new Date(Date.now()-PF).toISOString()}function DI(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 UF(t,e){if(fa(t))return{valid:!0,user:void 0};let n=Ch(t).split(w)[0];return Qe(n,async()=>{let i;try{let s=ae();i=await yr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Pa({userId:i,tenantId:n,populateUser:e})};throw new ys})}function Rl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function wl(t=[],e={publicAllowed:!1}){let r=t?Ai(t):[];return async(n,i)=>{let s=!1,o=Rl(n,"x-budibase-api-version");Si(n,r)&&(s=!0);try{let u=Rl(n,"x-budibase-token"),c=Tr(n,"budibase:auth")||Uc(u),l=Rl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=Rl(n,"x-budibase-tenant-id"),p=!1,m,f=!1,g;if(c&&!l){let T=c.sessionId,_=c.userId,S;try{S=await Wm(_,T),e&&e.populateUser?m=await Pa({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await Pa({userId:_,tenantId:S.tenantId,email:S.email}),m.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<LF()&&await $m(S),p=!0}catch(R){p=!1,console.error(`Auth Error: ${R.message}`),on(n,"budibase:auth")}}if(!p&&l){let T=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await UF(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)&&CI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),DI(n,{authenticated:p,user:m,internal:f,version:o,publicEndpoint:s,loginMethod:g}),y(m)?tf(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?on(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return DI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var bl=async(t,e)=>e();function Dl(t,e,r={noTenancyRequired:!1}){let n=Ai(t),i=Ai(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Si(s,i)};!!Si(s,n)||(u.excludeStrategies=["query"]);let l=Jo(s,u);return s.set("x-budibase-tenant-id",l),Qe(l,o)}}async function Cl(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),fa(r)||t.throw(403,"Unauthorized"),e()}var MF=["GET","HEAD","OPTIONS"],kF=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function vl(t={noCsrfPatterns:[]}){let e=Ai(t.noCsrfPatterns);return async(r,n)=>{if(Si(r,e)||MF.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!kF.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 Nl=async(t,e)=>(!t.internal&&!an(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function Pl(t,e){let r=Me(),n=h.isWorker()||!r?St:h.isApps()?Es:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!an(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}async function Ll(t,e){let r=Me(),n;if(h.isWorker()||!r?n=St:h.isApps()&&(n=Es),!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 FF=require("koa-pino-logger"),BF=require("correlation-id");function GF(){return{logger:Pc,genReqId:BF.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 VF(){return h.HTTP_LOGGING?FF(GF()):(t,e)=>e()}var vI=VF();var NI=require("uuid"),$F=require("correlation-id"),PI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,NI.v4)()),$F.withId(r,()=>e())};function LI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of dA){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function UI(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:Qc(r)};if(LI(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 MI(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}var FI=V(require("crypto"));var kI={"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'"]},WF=/^[A-Za-z0-9-*:/.]+$/,BI=async(t,e)=>{let r=FI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...kI};if(n["script-src"]=[...kI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await ta.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
|
|
38
|
-
`).filter(c=>WF.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 GI=async(t,e)=>{let n=Tr(t,"budibase:featureflags")?.flags||{};await Rf(n,async()=>{await e()})};var Va={};N(Va,{body:()=>qF,params:()=>QF});var Nh=V(require("joi"));function VI(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:Nh.default.any().optional(),updatedAt:Nh.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 qF(t,e){return VI(t,"body",e)}function QF(t,e){return VI(t,"params",e)}async function $I(t,e){return t.ip?await _f(t.ip,()=>e()):e()}var jF={google:xh};var WI=require("koa-passport"),HF=require("passport-local").Strategy,Ul=require("passport-oauth2-refresh"),KF=wl,YF=Dl,JF=vl,zF=WI;WI.use(new HF(bs.options,bs.authenticate));async function ZF(t,e){let r=await Rr.getCallbackUrl(),n,i;try{if(n=await Rr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Rr.strategyFactory(n,Ga)}catch{throw new Error("Could not refresh OAuth Token")}return Ul.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Ul.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function XF(t,e){let r=await xr.getCallbackUrl(t),n;try{n=await xr.strategyFactory(t,r,Ga)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Ul.use(n),new Promise(i=>{Ul.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function eB(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await uh(r);return n?ZF(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await ml();return n?XF(n,t):{err:{data:"Google configuration not found"}}}}}async function tB(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ae(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await La(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function rB(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=Tr(e,"budibase:auth"),s=await Da(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):on(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await gi(r,{sessionIds:o,reason:"logout"}),await al.logout(e.user?.email),await La(r)}var Mh={};N(Mh,{validate:()=>aB});var C=V(require("joi")),nB=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Uh(t,e){let{error:r}=t.validate(e);if(r)throw r}function iB(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)});Uh(e,t)}function sB(t){let e=C.default.object({type:C.default.string().allow(...Object.values(Vl)).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(Gl)),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($l).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(...nB),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()}))})});Uh(n,t)}function oB(t){let e=C.default.object().pattern(C.default.string(),{type:C.default.string().allow(...Object.values(X)).required(),customType:C.default.string().allow(...Object.values(fe)),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(...sg).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});Uh(n,t)}function aB(t){switch(t?.type){case"component":iB(t);break;case"datasource":sB(t);break;case"automation":oB(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var kh={};N(kh,{Client:()=>je,clients:()=>Yr,locks:()=>ws,utils:()=>yc});var Fh={};N(Fh,{isBlacklisted:()=>cB,refreshBlacklist:()=>HI});var qI=V(require("dns")),kl=V(require("net"));var QI=require("util"),Ml,uB=(0,QI.promisify)(qI.default.lookup);async function jI(t){return kl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await uB(t,{all:!0})).map(r=>r.address)}async function HI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(kl.default.isIP(i))r.push(i);else{let s=await jI(i);r=r.concat(s)}}Ml=r}async function cB(t){if(Ml||await HI(),Ml?.length===0)return!1;let e;return kl.default.isIP(t)?e=[t]:e=await jI(t),!!Ml?.find(r=>e.includes(r))}var Gh={};N(Gh,{init:()=>dB});var lB={"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 KI(t,e){let r=lB[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var $a=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=KI(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 T_()}};var YI,Bh;function dB(t){Or||ol(),Bh||(Bh=new $a(t)),YI||(YI=Or.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Bh.processEvent(r,n,i)}))}var Yh={};N(Yh,{COUNT_FIELD_NAME:()=>Hh,Sql:()=>iO,SqlTable:()=>Fl,designDoc:()=>Kh,utils:()=>gf});var XI=require("knex");var pB=require("knex");function Vh(t){return["link","formula","ai"].indexOf(t)!==-1}function JI(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":ze.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}=df(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:Ur.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 mB(t,e,r){return t.createTable(e.name,n=>{JI(n,e,r)})}function hB(t,e,r,n,i){return t.alterTable(e.name,s=>{JI(s,e,r,n,i)})}function gB(t,e){return t.dropTable(e.name)}var $h=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,pB.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=mB(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=hB(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=rs(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=gB(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return rs(n)}},Fl=$h;var eO=require("lodash"),Hh="__bb_total";function zI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Wh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function yB(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 tO(t){return Array.isArray(t)?t.map(e=>tO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function ZI(t){return t.sourceType==="internal"||t.sourceId===Yl}function EB(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function rO(t,e='"'){return`${e}${EB(t,e)}${e}`}function qh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=rO(t[r],e));return`[${t.join(",")}]`}function nO(t){return ug.includes(t.type)&&!ze.schema.isDeprecatedSingleUserColumn(t)}var TB={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},Qh=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 Wr.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()&&nO(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${e}}`;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),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(!mf(e))return null}else if(r.dateOnly){let n=ff(e);return n?new Date(n):null}else return r.ignoreTimezones?pc(e)?new Date(e):pf(e)?new Date(e+"Z"):null:pc(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,eO.cloneDeep)(e);for(let r of Object.values(Dr)){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(er)){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(gn)){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(),_=hf(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let R=a?.[_.through]||d.through,E=this.tableNameWithSchema(_.through,{alias:R,schema:o});T=T.innerJoin(E,function(){this.on(`${m}.${_.toPrimary}`,"=",`${R}.${_.to}`)}).where(`${R}.${_.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}`,"=",`${R}.${_.from}`)}))})}else{let R=`${m}.${d.to}`,E=`${c}.${d.from}`;T=T.where(R,"=",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,R,E)=>{let[I,...B]=R.split("."),L=B.join("."),F=c(I);return S.andWhere(se=>y(se,F?`${F}.${L}`:L,E))};for(let S in f){let R=f[S],E=oa(S),I=E.includes("."),B=n?.relationship&&I,L;if(S==="_complexIdOperator"&&(L=f[S])&&T){let F=c(u);e=T(e,L.id.map(se=>F?`${F}.${se}`:se),L.values)}else if(I)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,TB[g],E,(F,se)=>_(se,F,R)));else{let F=c(u);e=y(e,F?`${F}.${E}`:E,R)}}}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 R=this.getFieldSchema(_),E="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(R)&&(E="",S=`{${S.map(B=>B.substring(1,B.length-1))}}`),g?T.whereRaw(E?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(_),E?this.knex.raw(qh(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${E} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),E?this.knex.raw(qh(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(rO(qh(S)))])):l(f,"contains",(T,_,S)=>(S.length===0||(T=T.where(R=>(f===r?.notContains&&(R=R.not),R=R.where(E=>{for(let I of S){f===r?.containsAny?E=E.or:E=E.and;let B=typeof I=="string"?`"${I.toLowerCase()}"`:I;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${B}%`)}}),f===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(_))),R))),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=L=>L&&Object.keys(L).length===0&&Object.getPrototypeOf(L)===Object.prototype;T(y.low)&&(y.low=""),T(y.high)&&(y.high="");let _=fc(y.low),S=fc(y.high),R=this.getFieldSchema(g),E=g,I=y.high,B=y.low;return this.client==="sqlite3"&&R?.type==="datetime"&&R.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?E=this.convertClobs(g):this.client==="sqlite3"&&R?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[y.high]),B=this.knex.raw("CAST(? AS INTEGER)",[y.low])),o&&(f=f.or),_&&S?f.whereBetween(E,[B,I]):_?f.where(E,">=",B):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&&!lf(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Cr(r.documentType)}%`),e}isSqs(){return ZI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;ZI(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 ${Hh}`)}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,R=a?.[r]||r,E=m&&a?.[m]||m,I=this.tableNameWithSchema(p,{alias:S,schema:u}),B=[..._?.primary||[],_?.primaryDisplay].filter(W=>W),L=yB(l.filter(W=>W.split(".")[0]===S),B);L=L.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=L.map(W=>this.buildJsonField(_,W));if(!F.length)continue;let se=F.map(W=>{let ce=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ce}??`,[W[0],W[1]]).toString()}).join(","),Xt=`${S}.${T||f}`,$=s.from(I).orderBy(Xt),k=m&&T&&y,P=k?`${E}.${g}`:`${S}.${f}`,q=k?`${R}.${y}`:`${R}.${g}`;if(k){let W=this.tableNameWithSchema(m,{alias:E,schema:u});$=$.join(W,function(){this.on(`${S}.${T}`,"=",`${E}.${f}`)})}$=$.where(this.rawQuotedIdentifier(P),"=",this.rawQuotedIdentifier(q));let O=W=>($=$.select(L.map(ce=>this.rawQuotedIdentifier(ce))).limit(Wh()),s.select(W).from({[S]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),Y=O(this.knex.raw(`json_group_array(json_object(${se}))`));break;case"pg":Y=O(this.knex.raw(`json_agg(json_build_object(${se}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${se}) LIMIT ${Wh()})`));break;case"mysql2":case"oracledb":Y=O(this.knex.raw(`json_arrayagg(json_object(${se}))`));break;case"mssql":{let W=s.select("*").from({[R]:$.select(F.map(ce=>s.ref(ce[1]).as(ce[0]))).limit(Wh())});Y=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]:Y})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,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())}},jh=class extends Fl{constructor(r,n=zI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=rs(r);return i==="sqlite3"&&(s=tO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,XI.knex)(s),a,u=new Qh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:zI()}});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===Yl){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(!nO(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){Mo(this.getSqlClient(),r,n)}},iO=jh;var Kh={};N(Kh,{base:()=>AB});function AB(t){return{_id:Jt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Jh={};N(Jh,{jsonFromCsvString:()=>SB});var sO=V(require("csvtojson"));async function SB(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,sO.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 zh=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)}},Bl=zh;var oO=V(require("@koa/router")),_i=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 Bl(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 oO.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var Wa=class{constructor(){this.groups=[]}group(...e){let r=new _i;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 _B={...zo,..._e},IB=(t={})=>{lc(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 Ws(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([As(this.source),As(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,ps)?!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 Qs=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=Qs(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)){_=Qs(_),_=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 BC(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 $C(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:()=>VC});async function VC(){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 GC(t){return DT(t,409)}var Ks=k(require("path")),RT=require("os"),bT=k(require("fs"));var CT=k(require("stream")),WC={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,Ks.join)((0,RT.tmpdir)(),".budibase");try{bT.default.mkdirSync(xT)}catch(t){if(t.code!=="EEXIST")throw t}function dn(){return xT}var nu=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function qC(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Ks.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 iu(r,n),s=Ks.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function QC(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await qC(t):await vT(t)}var KC=require("sanitize-s3-objectkey"),jC={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"},YC=[gr.html,gr.css,gr.js,gr.json];function _e(t){return KC(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 ou.S3(e)}async function Hs(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=jC.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 HC({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await js.default.open(r)).createReadStream():s,c=ht(),l=await Hs(c,t);if(o&&l.created){let E=nu(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 Hs(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=nu(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}),YC.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return au.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 ou.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 zC(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 au.default.Readable?(r.addTags({stream:!0}),await(0,Ys.pipeline)(n,Xn.default.createWriteStream(i))):(r.addTags({stream:!1}),Xn.default.writeFileSync(i,n)),i})}async function JC(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 js.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 iu(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,yr.join)(n,...l);c.length>1&&!Xn.default.existsSync(d)&&await js.default.mkdir(d,{recursive:!0}),await(0,Ys.pipeline)(u,Xn.default.createWriteStream((0,yr.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function ZC(t,e){let r=ht();await Hs(r,t);let n={Bucket:t,Key:_e(e)};return r.deleteObject(n)}async function XC(t,e){let r=ht();await Hs(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 js.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:Xn.default.createReadStream(a)})}return i})}async function ex(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,Ys.pipeline)(n.body,wf.default.createUnzip(),If.default.extract(e))}async function tx(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,Ys.pipeline)(n.body,wf.default.createUnzip(),If.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Rf(e,i,r),i}async function iu(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 au.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function rx(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")),uu;function nx(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return uu||(uu=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),uu)}var ix=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:nx(),expireTime:new Date().getTime()+1e3*60*60*24}),ei=t=>{let e=bf(t);return kT.getSignedUrl(e,ix())},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 sx(t,e){let r=BT(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),bf(r)):await Ar(h.APPS_BUCKET_NAME,r)}function ox(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?ei(t):await Ar(h.APPS_BUCKET_NAME,t)}async function ax(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 ux=async(t,e,r)=>{let n=VT(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ei(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 cx(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await lx(e),n=await dx(e);return{...e,jsUrl:r,iconUrl:n}}))}async function lx(t){let e=WT(t);return GT(e)}async function dx(t){let e=qT(t);if(e)return GT(e)}async function GT(t){return h.CLOUDFRONT_CDN?ei(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 fx(){let t=[],e=jT(zT);if(zs.default.existsSync(e)){let i=zs.default.readFileSync(e,"utf-8").split(`
|
|
37
|
+
`);for(let s of i.filter(o=>o))t.push(zs.default.readFileSync(s))}return t.push(zs.default.readFileSync(jT(HT))),Buffer.concat(t.map(n=>new Uint8Array(n)))}function px(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function mx(t){return t instanceof Error}function hx(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,cu.default)(e,cu.default.multistream(r)):(0,cu.default)(e);let n=u=>{let c,l=[],d="";u.forEach(g=>{hx(g)&&(d=`${d} ${g}`.trimStart()),px(g)&&l.push(g),mx(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 lu=Sr;var Ex=["AccountError"];function gx(t){return t&&t.suppressAlert}function fn(t,e){e&&Ex.includes(e.name)&&gx(e)||console.error(`bb-alert: ${t}`,e)}function yx(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,fn(t,n)}function ti(t,e){console.warn(`bb-warn: ${t}`,e)}var Zs=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";Bs.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 Zs(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]},ri=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]},Tx=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 di={};P(di,{UserDB:()=>wt,addAppBuilder:()=>dU,bulkGetGlobalUsersById:()=>$u,bulkUpdateGlobalUsers:()=>go,cleanseUserObject:()=>Ap,creatorsInList:()=>mn,doesUserExist:()=>oU,getAccountHolderFromUsers:()=>Du,getAllUserIds:()=>iU,getAllUsers:()=>sU,getById:()=>gn,getCreatorCount:()=>cU,getExistingAccounts:()=>ii,getExistingPlatformUsers:()=>uA,getExistingTenantUsers:()=>aA,getFirstPlatformUser:()=>eo,getGlobalUserByAppPage:()=>nS,getGlobalUserByEmail:()=>yt,getPlatformUsers:()=>mu,getUserCount:()=>uU,hasAdminPermissions:()=>wr,hasAppBuilderPermissions:()=>dA,hasBuilderPermissions:()=>Xe,isAdmin:()=>Or,isAdminOrBuilder:()=>lA,isBuilder:()=>ai,isCreatorAsync:()=>to,isCreatorSync:()=>Ou,isGlobalBuilder:()=>cA,paginatedUsers:()=>sS,removeAppBuilder:()=>fU,removePortalUserPermissions:()=>lU,searchExistingEmails:()=>jf,searchGlobalUsersByApp:()=>Vu,searchGlobalUsersByAppAccess:()=>Tp,searchGlobalUsersByEmail:()=>iS,validateUniqueUser:()=>wu});var Yf={};P(Yf,{creatorsInList:()=>mn,getAccountHolderFromUsers:()=>Du,hasAdminPermissions:()=>wr,hasAppBuilderPermissions:()=>dA,hasBuilderPermissions:()=>Xe,isAdmin:()=>Or,isAdminOrBuilder:()=>lA,isBuilder:()=>ai,isCreatorAsync:()=>to,isCreatorSync:()=>Ou,isGlobalBuilder:()=>cA,validateUniqueUser:()=>wu});var Kf={};P(Kf,{createCode:()=>Mx,deleteCode:()=>Fx,getCode:()=>kx,getExistingInvites:()=>Qf,getInviteCodes:()=>oA,updateCode:()=>Lx});var ni={};P(ni,{Duration:()=>me,DurationType:()=>qf,clearCookie:()=>Ir,compare:()=>Bf,getAppIdFromCtx:()=>Cx,getCookie:()=>Vt,hasCircularStructure:()=>Px,hash:()=>Ff,isAudited:()=>Gf,isClient:()=>vx,isPublicApiRequest:()=>bx,isServingApp:()=>wx,isServingBuilder:()=>Dx,isServingBuilderPreview:()=>Rx,isValidInternalAPIKey:()=>Xs,newid:()=>ee,openJwt:()=>fu,setCookie:()=>iA,time:()=>Ux,timeout:()=>Vf,urlHasProtocol:()=>Nx,validEmail:()=>Wf});var kf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),Ax=h.SALT_ROUNDS||10;async function Ff(t){let e=await kf.genSalt(Ax);return kf.hash(t,e)}async function Bf(t,e){return kf.compare(t,e)}var du=k(require("jsonwebtoken"));var $f="app"+R,rA="/app/",Sx="/builder",_x=`${Sx}/workspace/`,Ix="/api/public/v";async function Ox(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=V();!h.isDev()&&h.MULTI_TENANCY&&(n=Ms(t,{includeStrategies:["subdomain"]}));let s=(await be(n,()=>Gs({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function wx(t){return t.path.startsWith(`/${$f}`)?!0:t.path.startsWith(rA)}function Dx(t){return t.path.startsWith(_x)}function Rx(t){return nA(t.path)}function nA(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}function bx(t){return t.path.startsWith(Ix)}async function Cx(t){let e;function r(a){return!a||!a.startsWith($f)?e:(e&&e!==a&&t.throw("App id conflict",403),e??a)}let n=t.request.headers["x-budibase-app-id"]||[];typeof n=="string"&&(n=[n]);for(let a of n)e=r(a);t.request.body&&t.request.body.appId&&(e=r(t.request.body.appId));let i=xx(t.path);i&&(e=r(i)),t.query?.appId&&(e=r(t.query?.appId));let s=nA(t.path);return t.path.startsWith(rA)&&!s&&(e=r(await Ox(t))),e}function xx(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith($f))}function fu(t){if(t)try{return du.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return du.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function Xs(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 fu(r)}function iA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=du.default.sign(e,h.JWT_SECRET));let i={expires:La,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Ir(t,e){iA(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||{}),pu={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},me=class t{constructor(e){this.ms=e}to(e){return this.ms/pu[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*pu[e]/pu[r]}static from(e,r){return new t(r*pu[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 sA=me.fromDays(7).toSeconds();async function Lx(t,e){await(await nn()).store(t,e,sA)}async function Mx(t,e){let r=ee();return await(await nn()).store(r,{email:t,info:e},sA),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 oA(){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 oA()).filter(e=>t.includes(e.email))}async function jf(t){let e=[],r=await aA(t);e.push(...r.map(o=>o.email));let n=await uA(t);e.push(...n.map(o=>o._id));let i=await ii(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 mu(t){return await qs("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function eo(t){return(await mu(t))[0]??null}async function aA(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 uA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await qs("platform_users_lowercase_2",r)}async function ii(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await qs("account_by_email",r)}var Iu={};P(Iu,{BadRequestError:()=>gu,BudibaseError:()=>si,EmailUnavailableError:()=>Gt,FeatureDisabledError:()=>Su,ForbiddenError:()=>yu,HTTPError:()=>we,InvalidAPIKeyError:()=>oi,NotFoundError:()=>Eu,NotImplementedError:()=>Tu,UnexpectedError:()=>hu,UsageLimitError:()=>Au,getPublicError:()=>_u});var si=class extends Error{constructor(r,n){super(r);this.code=n}},_u=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},we=class t extends si{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)}},hu=class extends we{constructor(e){super(e,500)}},Eu=class extends we{constructor(e){super(e,404)}},gu=class extends we{constructor(e){super(e,400)}},yu=class extends we{constructor(e){super(e,403)}},Tu=class extends we{constructor(e){super(e,501)}},Au=class extends we{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Su=class extends we{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},oi=class extends si{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 ai=Ge.users.isBuilder,Or=Ge.users.isAdmin,cA=Ge.users.isGlobalBuilder,lA=Ge.users.isAdminOrBuilder,wr=Ge.users.hasAdminPermissions,Xe=Ge.users.hasBuilderPermissions,dA=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=>Ou(i,e))}async function to(t){let e=[];return t.userGroups&&(e=await Y().getMultiple(t.userGroups)),Ou(t,e)}function Ou(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 wu(t,e){if(h.MULTI_TENANCY){let r=await eo(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 Du(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ii(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var li={};P(li,{account:()=>bA,action:()=>CA,ai:()=>UA,analytics:()=>bu,app:()=>xA,auditLog:()=>HA,auth:()=>Fu,automation:()=>vA,backfill:()=>qA,backfillCache:()=>Mu,backup:()=>jA,datasource:()=>PA,email:()=>NA,environmentVariable:()=>YA,group:()=>QA,identification:()=>gt,initAsyncEvents:()=>qN,installation:()=>co,layout:()=>MA,license:()=>LA,org:()=>kA,plugin:()=>KA,processors:()=>rp,publishEvent:()=>A,query:()=>FA,role:()=>ho,rowAction:()=>zA,rows:()=>$A,screen:()=>BA,serve:()=>GA,shutdown:()=>QN,table:()=>VA,user:()=>Ue,view:()=>WA,workspace:()=>JA});var rp={};P(rp,{analyticsProcessor:()=>IA,init:()=>ov,processors:()=>Qt});var bu={};P(bu,{enabled:()=>Ru});var Ru=async()=>Cu();var EA=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 pA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},mA=async t=>{if(!Vx(t))return!1;let e=await Wx(t);if(e){let r=new Date(e.timestamp);switch(pA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await fA(t,{timestamp:Date.now()}),!1):!0}}else return await fA(t,{timestamp:Date.now()}),!1},hA=t=>{let e=`${Ee.EVENTS_RATE_LIMIT}:${t}`;return Gx(t)&&(e=e+":"+Se()),e},Wx=async t=>{let e=hA(t);return await un(e)},fA=async(t,e)=>{let r=hA(t),n=pA[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"],ro=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new EA.PostHog(e)}async processEvent(e,r,n,i){if(Qx.includes(e)||await mA(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 gA=ro;var Kx=["installation:version:upgraded","installation:version:downgraded"],jx=["installation","tenant"],no=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new gA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!Kx.includes(e)&&!await Ru()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!jx.includes(e.type)&&!await Ru()||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(),io=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:()=>xu,JobQueue:()=>ui,QueuedProcessor:()=>ep,UnretriableError:()=>Nu,shutdown:()=>nv});var yA=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 xu=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new yA.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}},TA=xu;var Zf=k(require("bull"));var ui=(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))(ui||{});function AA(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 vu={};P(vu,{cleanup:()=>Zx,clear:()=>Jf,set:()=>zf});var so=[];function zf(t,e){let r=setInterval(t,e);return so.push(r),r}function Jf(t){let e=so.indexOf(t);e!==-1&&so.splice(e,1),clearInterval(t)}function Zx(){for(let t of so)clearInterval(t);so=[]}var qt=k(require("dd-trace")),oo=k(require("object-sizeof")),Xx=me.fromMinutes(5).toMs(),ev=me.fromSeconds(30).toMs(),Xf=me.fromSeconds(60).toMs(),ao=[],Pu;async function SA(){for(let t of ao)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 _A(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,oo.default)(t.data),..._A(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 TA(this.jobQueue,r):n=new Zf.default(this.jobQueue,r),AA(n,this.jobQueue,this.opts.removeStalledCb),ao.push(n),!Pu&&!h.isTest()&&(Pu=zf(SA,Xf),SA().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,oo.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,oo.default)(e),..._A(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,oo.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(){Pu&&Jf(Pu),console.log("Waiting for current queue jobs to finish...");for(let t of ao)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of ao)await t.close();ao=[],console.log("Queues shutdown")}var Nu=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 Nu&&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 ci=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 uo=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 IA=new no,iv=new io,sv=new ci;function ov(t){return ci.init(t)}var Qt=new uo([IA,iv,sv]);var Uu={};P(Uu,{checkInstallVersion:()=>cv,getInstall:()=>lo,getInstallFromDB:()=>ip});var np=k(require("semver"));var lo=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 lo();r.version=t,await e.put(r),await zn(Ee.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},cv=async()=>{let t=await lo(),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 Es({_id:t.installId,type:"installation"},async()=>{n?await co.upgraded(e,r):i&&await co.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=Id(),e=mo(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await hn(),i=fo();return{id:OA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await hn(),i=await Lu(V()),s=fo();return{id:OA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:V(),environment:e}}else if(r==="user"){let n=t,i=await Lu(V()),s=await hn(),o=n.account,a;return o?a=o.hosting:a=fo(),{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=fo(),s=h.VERSION,o=mo(),a={id:r,type:n,hosting:i,version:s,environment:o};await sp(a,e),await po({...a,id:`$${n}_${r}`},e)},fv=async(t,e,r,n=h.VERSION)=>{let i=await Lu(t),s="tenant",o=await hn(),a=mo(),u={id:i,type:s,hosting:e,environment:a,installationId:o,createdAt:r,createdVersion:n};await sp(u,r),await po({...u,id:`$${s}_${i}`},r)},pv=async(t,e,r)=>{let n=t._id,i=await Lu(t.tenantId),s="user",o=Xe(t),a=wr(t),u;Bo(t)&&(u=t.providerType);let l=(await ii([t.email])).length>0,d=!!e&&l&&e.verified,f=await hn(),m=e?e.hosting:fo(),p=mo();await po({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=Fo(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await hn(),c=mo();if(ko(t)){let d=await yt(t.email);d?._id&&(e=d._id)}await po({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},po=async(t,e)=>{await Qt.identify(t,e)},sp=async(t,e)=>{await Qt.identifyGroup(t,e)},mo=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,fo=()=>h.SELF_HOSTED?"self":"cloud",hn=async()=>hv()?"account-portal":(await lo()).installId,Lu=async t=>h.SELF_HOSTED?wA(t):t,wA=async t=>be(t,()=>mr(Ee.UNIQUE_TENANT_ID,86400,async()=>{let e=Y(),r=await fi(),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",OA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,gt={getCurrentIdentity:lv,identifyInstallationGroup:dv,identifyTenantGroup:fv,identifyUser:pv,identifyAccount:mv,identify:po,identifyGroup:sp,getInstallationId:hn,getUniqueTenantId:wA};var Mu={};P(Mu,{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 Us(Ee.BACKFILL_METADATA)},Sv=async()=>{let t=cp(),e=await Za(t);for(let r of e)await Us(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 ku(){Kt=new Et("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function DA(){Kt&&await Kt.close()}async function RA(t){Kt||ku();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 RA({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 bA={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 CA={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 xA={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 Fu={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 vA={created:jv,triggerUpdated:Yv,deleted:Hv,tested:zv,run:Jv,stepCreated:Zv,stepDeleted:Xv};function lp(t){return!Object.values(No).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 PA={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 NA={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 UA={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 LA={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 MA={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 kA={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)},FA={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 ho={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 BA={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)},$A={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 VA={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 GA={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 WA={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 co={versionChecked:hN,upgraded:EN,downgraded:gN,firstStartup:yN};var pi=!h.SELF_HOSTED&&!h.isDev();async function TN(t){pi||await A("app:backfill:succeeded",t)}async function AN(t){if(pi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function SN(t){pi||await A("tenant:backfill:succeeded",t)}async function _N(t){if(pi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function IN(){if(pi)return;let t={};await A("installation:backfill:succeeded",t)}async function ON(t){if(pi)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var qA={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 QA={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 KA={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 jA={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 YA={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 HA={filtered:$N,downloaded:VN};async function GN(t,e){await A("row_action:created",t,e)}var zA={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 JA={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 ho.assigned(t,i)},jN=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await ho.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 ri(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)=>ZA(t,e,Xe),zN=(t,e)=>XA(t,e,Xe),JN=(t,e)=>ZA(t,e,wr),ZN=(t,e)=>XA(t,e,wr),ZA=(t,e,r)=>!(!r(t)||e&&r(e)),XA=(t,e,r)=>!(r(t)||!e||!r(e));var Bu={};P(Bu,{createASession:()=>eU,endSession:()=>tU,getSession:()=>mp,getSessionsForUser:()=>Eo,invalidateSessions:()=>En,updateSessionTTL:()=>pp});var tS=require("uuid");var rS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):me.fromDays(7).toSeconds();function mi(t,e){return`${t}/${e}`}async function Eo(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 Eo(t)).map(o=>({key:mi(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:mi(t,s)}))),i&&i.length>0){let s=await fr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ti(`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 Eo(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,tS.v4)(),a=mi(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,rS),{session:u,invalidatedSessionCount:n}}async function pp(t){let e=await fr(),r=mi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,rS)}async function tU(t,e){await(await fr()).delete(mi(t,e))}async function mp(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await fr()).get(mi(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()||Bo(e)?!0:(r||(r=await ri(V())),!!(r&&r.email===e.email&&Fo(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||Jn();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 Vu(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 $u(e)}static async bulkUpdate(e){return await go(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 wu(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 to(f)&&o.push(f)}let l=await ri(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 go(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 Du(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 go(a),l=(await mn(o)).filter(m=>m).length,d=[];for(let m of o){let E=(await eo(m._id)).ssoId;E&&(await mu(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 to(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 zn(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 To(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function $u(t,e){let n=(await Y().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=To(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 go(t){return await Y().bulkDocs(t)}async function gn(t,e){let n=await Y().get(t);return e?.cleanup&&(n=To(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=To(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 Vu(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=tu(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=To(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 nS(t,e){if(e)return eu(qe(t),e._id)}async function iS(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=To(o)),o}var aU=8;async function sS({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 Vu(r,a),l=d=>nS(r,d)):e?.string?.email?(u=await iS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await $u(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 sS({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 oS=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 Ao({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 Ps(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,oS)),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 Ps(),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,oS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function So(t){await(await Ps()).delete(t)}var wp={};P(wp,{Writethrough:()=>Ip});var Ei={};P(Ei,{AUTO_EXTEND_POLLING_MS:()=>uS,doWithLock:()=>Sp,newRedlock:()=>yn});var aS=k(require("redlock"));async function gU(t,e){if(t==="custom")return yn(e);switch(t){case"try_once":return yn(hi.TRY_ONCE);case"try_twice":return yn(hi.TRY_TWICE);case"default":return yn(hi.DEFAULT);case"delay_500":return yn(hi.DELAY_500);case"auto_extend":return yn(hi.AUTO_EXTEND);default:throw Xt.unreachable(t)}}var hi={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={...hi.DEFAULT,...t},n=(await sf()).client;return new aS.default([n],e)}function yU(t){let r=`lock:${t.systemLock?"system":V()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var uS=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"?uS: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 cS=1e4,_p=null;async function Gu(){if(!_p){let t=await nf();_p=new sn(t)}return _p}function _o(t,e){return t.name+e}function Op(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function TU(t,e,r=cS){let n=await Gu(),i=e._id,s;i&&(s=await n.get(_o(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;ti("Ignoring conflict in write-through cache")}})).executed||ti("Ignoring redlock conflict in write-through cache")),s=Op(a,o?null:s?.lastWrite),a._id&&await n.store(_o(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function AU(t,e){let r=await Gu(),n=_o(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 Gu(),n=_o(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 Gu();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(_o(t,i))}finally{await t.remove(i,r)}}var Ip=class{constructor(e,r=cS){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 Ns()).store(r,{userId:t,info:e},IU),r}async function wU(t){let r=await(await Ns()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function DU(t){await(await Ns()).delete(t)}var bp={};P(bp,{DocWritethrough:()=>Rp,DocWritethroughProcessor:()=>Io,getProcessor:()=>bU,init:()=>lS});var RU=100,Wu,Io=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 Io.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function lS(){return Wu=new Io().init(),Wu}function bU(){return Wu||lS()}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 fi(){let t=await tt("settings");return t||(t={_id:qu("settings"),type:"settings",config:{}}),t.config.platformUrl=await Oo({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Cu({config:t.config}),t}async function vp(){return(await fi()).config}async function Oo(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 Cu=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 Qu(){return(await xU())?.config}async function Pp(){if(!h.SELF_HOSTED)return Cp();let t=await Qu();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 dS(){return tt("smtp")}async function UU(t){let e=await dS();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:()=>Ku,RoleIDVersion:()=>Fp,builtinRoleToNumber:()=>wo,checkForRoleResourceArray:()=>hS,externalRole:()=>WU,findRole:()=>Do,getAllRoleIds:()=>jU,getAllRoles:()=>Gp,getBuiltinRole:()=>pS,getBuiltinRoles:()=>$p,getDBRoleID:()=>ES,getExternalRoleID:()=>br,getExternalRoleIDs:()=>gS,getRole:()=>qU,getUserRoleHierarchy:()=>Vp,getUserRoleIdHierarchy:()=>mS,isBuiltin:()=>Tn,lowerBuiltinRoleID:()=>GU,prefixRoleIDNoBuiltin:()=>Lp,roleIDsAreEqual:()=>rt,roleToNumber:()=>VU,saveRoles:()=>QU,validInherits:()=>$U});var fS=require("lodash"),ju=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}},Ku=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=Do(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=Do(o.inherits,n,r),o&&i.push(o),Pe.roles.checkForRoleInheritanceLoops(i))break}}return(0,fS.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,ju.default)(Bp)}function Tn(t){return Object.values(kp).includes(t)}function Lp(t){return Tn(t)?t:kt(t)}function pS(t){let e=Object.values(Bp).find(r=>t.includes(r._id));if(e)return(0,ju.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 wo(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 wo(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 wo(n.inherits)+1;return 0};return Math.max(...e.map(r))}function GU(t,e){return t?e&&wo(t)>wo(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:gS(t.inherits,t.version)}}function Do(t,e,r){let n=pS(t);n||(t=kt(t));let i=e.find(s=>s._id&&rt(s._id,t));return!i&&!Tn(t)&&r?.defaultPublic?(0,ju.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=Yn(),n=[];if(!Tn(t)){let i=await r.tryGet(ES(t));i&&n.push(i)}return Do(t,n,e)}async function QU(t){await Yn().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=Do(t,r,e),i=[];return n&&(i=new Ku(r,e).walk(n)),i}async function mS(t){return(await Vp(t)).map(r=>r._id)}async function Vp(t,e){return KU(t,e)}function hS(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=Yn()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(ru(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=hS(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 mS(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 ES(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 gS(t,e){return t&&(typeof t=="string"?br(t,e):t.map(r=>br(r,e)))}var qp={};P(qp,{BUILDER:()=>XU,BUILTIN_PERMISSIONS:()=>Yu,CREATOR:()=>eL,GLOBAL_BUILDER:()=>tL,PermissionImpl:()=>ie,PermissionLevel:()=>_i,PermissionType:()=>Mo,doesHaveBasePermission:()=>JU,getAllowedLevels:()=>SS,getBuiltinPermissionByID:()=>zU,getBuiltinPermissions:()=>HU,isPermissionLevelHigherThanRead:()=>ZU,levelToNumber:()=>AS});var yS=k(require("lodash/flatten")),TS=k(require("lodash/fp/cloneDeep")),ie=class{constructor(e,r){this.type=e,this.level=r}};function AS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function SS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Yu={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,TS.default)(Yu)}function zU(t){return Object.values(Yu).find(r=>r._id===t)}function JU(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Yu),s=(0,yS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&SS(o.level).indexOf(e)!==-1)return!0;return!1}function ZU(t){return AS(t)>1}var XU="builder",eL="creator",tL="globalBuilder";var jp={};P(jp,{FlagSet:()=>zu,all:()=>sL,flags:()=>Qp,getEnvFlags:()=>wS,init:()=>rL,isEnabled:()=>iL,parseEnvFlags:()=>Zu,shutdown:()=>nL,testutils:()=>Kp});var Ju=k(require("crypto"));var _S=require("posthog-node"),IS=k(require("dd-trace"));var OS=require("lodash");var Hu;function rL(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Hu=new _S.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(){Hu?.shutdown()}function Zu(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 wS(){return Zu(h.TENANT_FEATURE_FLAGS||"")}var zu=class{constructor(e){this.flagSchema=e;this.setId=Ju.randomUUID()}defaults(){return(0,OS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await IS.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(Qa())return i;for(let{tenantId:d,key:f,value:m}of wS())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=Ju.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,Hu&&u){n.readFromPostHog=!0;let d=await fi(),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 Hu.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 zu(Cm);async function iL(t){return await Qp.isEnabled(t)}async function sL(){return await Qp.fetch()}var Kp={};P(Kp,{setFeatureFlags:()=>DS,withFeatureFlags:()=>uL});function oL(){let t={};for(let{tenantId:e,key:r,value:n}of Zu(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 DS(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 ys({TENANT_FEATURE_FLAGS:n})}function uL(t,e,r){let n=DS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var sm={};P(sm,{adminOnly:()=>cc,auditLog:()=>sc,authError:()=>Ie,buildAuthMiddleware:()=>QL,buildCsrfMiddleware:()=>jL,buildTenancyMiddleware:()=>KL,builderOnly:()=>dc,builderOrAdmin:()=>lc,google:()=>jt,internalApi:()=>ac,joiValidator:()=>bo,oidc:()=>Yt,passport:()=>YL,platformLogout:()=>XL,refreshOAuthToken:()=>JL,ssoCallbackUrl:()=>Cr,updateUserOAuth:()=>ZL});var im={};P(im,{adminOnly:()=>cc,auditLog:()=>sc,authError:()=>Ie,authenticated:()=>ic,builderOnly:()=>dc,builderOrAdmin:()=>lc,correlation:()=>$S,csp:()=>KS,csrf:()=>uc,datasource:()=>WL,errorHandling:()=>GS,featureFlagCookie:()=>jS,google:()=>jt,internalApi:()=>ac,ip:()=>HS,joiValidator:()=>bo,local:()=>gi,oidc:()=>Yt,pino:()=>FS,querystringToBody:()=>WS,ssoCallbackUrl:()=>Cr,tenancy:()=>oc});var gi={};P(gi,{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:()=>CS,getCallbackUrl:()=>mL,strategyFactory:()=>Hp});var Ro=t=>Promise.resolve(t);async function Xu(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=Jn(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 CS(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 Xu(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=CS(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:()=>vS,fetchStrategyConfig:()=>yL,getCallbackUrl:()=>TL,strategyFactory:()=>gL});var xS=k(require("node-fetch"));var hL=require("@techpass/passport-openidconnect").Strategy;function vS(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 Xu(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=vS(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,xS.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 PS(){let t=await Pp();if(!t)throw new Error("No google configuration found");return t}async function SL(t,e,r){let n=await PS(),s=`${await Oo({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Hp(n,s,Ro);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 PS(),s=`${await Oo({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:()=>LS,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"),ec="aes-256-ctr",US="-",OL=1e4,wL=32,tc=16,Xp=16,LS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(LS||{});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 rc(t,e){return Ht.default.pbkdf2Sync(t,new Uint8Array(e),OL,wL,"sha512")}function DL(t,e="api"){let r=Ht.default.randomBytes(tc),n=rc(em(e),r),i=Ht.default.createCipheriv(ec,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")}${US}${a}`}function tm(t,e="api"){let[r,n]=t.split(US),i=Buffer.from(r,"hex"),s=rc(em(e),i),o=Ht.default.createDecipheriv(ec,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(tc),u=Ht.default.randomBytes(Xp),c=rc(r,a),l=Ht.default.createCipheriv(ec,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 NS(e,tc),n=await NS(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:tc+Xp}),o=xr.default.createWriteStream(e),a=rc(r,n),u=Ht.default.createDecipheriv(ec,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 NS(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 kS=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 MS(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(Xs(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 Ao({userId:i,tenantId:n,populateUser:e})};throw new oi})}function nc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ic(t=[],e={publicAllowed:!1}){let r=t?An(t):[];return async(n,i)=>{let s=!1,o=nc(n,"x-budibase-api-version");Sn(n,r)&&(s=!0);try{let u=nc(n,"x-budibase-token"),c=Vt(n,"budibase:auth")||fu(u),l=nc(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=nc(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 Ao({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await Ao({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)&&kS.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),MS(n,{authenticated:f,user:m,internal:p,version:o,publicEndpoint:s,loginMethod:E}),g(m)?wd(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 MS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var sc=async(t,e)=>e();function oc(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=Ms(s,u);return s.set("x-budibase-tenant-id",l),be(l,o)}}async function ac(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Xs(r)||t.throw(403,"Unauthorized"),e()}var NL=["GET","HEAD","OPTIONS"],UL=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function uc(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 cc=async(t,e)=>(!t.internal&&!Or(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function lc(t,e){let r=Se(),n=h.isWorker()||!r?Xe:h.isApps()?ai: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 dc(t,e){let r=Se(),n;if(h.isWorker()||!r?n=Xe:h.isApps()&&(n=ai),!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:lu,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 FS=FL();var BS=require("uuid"),BL=require("correlation-id"),$S=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,BS.v4)()),BL.withId(r,()=>e())};function VS(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 GS(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:_u(r)};if(VS(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 WS(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 QS=k(require("crypto"));var qS={"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-*:/.]+$/,KS=async(t,e)=>{let r=QS.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...qS};if(n["script-src"]=[...qS["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await $s.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 jS=async(t,e)=>{let n=Vt(t,"budibase:featureflags")?.flags||{};await zd(n,async()=>{await e()})};var bo={};P(bo,{body:()=>VL,params:()=>GL});var nm=k(require("joi"));function YS(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 YS(t,"body",e)}function GL(t,e){return YS(t,"params",e)}async function HS(t,e){return t.ip?await Kd(t.ip,()=>e()):e()}var WL={google:zp};var zS=require("koa-passport"),qL=require("passport-local").Strategy,fc=require("passport-oauth2-refresh"),QL=ic,KL=oc,jL=uc,YL=zS;zS.use(new qL(gi.options,gi.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,Ro)}catch{throw new Error("Could not refresh OAuth Token")}return fc.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{fc.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,Ro)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return fc.use(n),new Promise(i=>{fc.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 Qu();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 So(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 Eo(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 Fu.logout(e.user?.email),await So(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(yc)).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(gc)),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(Tc).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(Ac)).required(),customType:b.default.string().allow(...Object.values(Sc)),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:()=>Ei,utils:()=>Ya});var cm={};P(cm,{isBlacklisted:()=>o0,refreshBlacklist:()=>e_});var JS=k(require("dns")),mc=k(require("net"));var ZS=require("util"),pc,s0=(0,ZS.promisify)(JS.default.lookup);async function XS(t){return mc.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 e_(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(mc.default.isIP(i))r.push(i);else{let s=await XS(i);r=r.concat(s)}}pc=r}async function o0(t){if(pc||await e_(),pc?.length===0)return!1;let e;return mc.default.isIP(t)?e=[t]:e=await XS(t),!!pc?.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 t_(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 Co=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=t_(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 DA()}};var r_,lm;function u0(t){Kt||ku(),lm||(lm=new Co(t)),r_||(r_=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:()=>d_,SqlTable:()=>hc,designDoc:()=>Tm,utils:()=>Fd});var o_=require("knex");var c0=require("knex");function fm(t){return["link","formula","ai"].indexOf(t)!==-1}function n_(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}=Nd(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=>{n_(n,e,r)})}function f0(t,e,r,n,i){return t.alterTable(e.name,s=>{n_(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)}},hc=pm;var a_=require("lodash"),ym="__bb_total";function i_(){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 u_(t){return Array.isArray(t)?t.map(e=>u_(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function s_(t){return t.sourceType==="internal"||t.sourceId===Oc}function h0(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function c_(t,e='"'){return`${e}${h0(t,e)}${e}`}function hm(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=c_(t[r],e));return`[${t.join(",")}]`}function l_(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()&&l_(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(!Md(e))return null}else if(r.dateOnly){let n=Ld(e);return n?new Date(n):null}else return r.ignoreTimezones?Ga(e)?new Date(e):Ud(e)?new Date(e+"Z"):null:Ga(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,a_.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(),_=kd(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=Qs(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(c_(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 _=Wa(g.low),S=Wa(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&&!Pd(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Zt(r.documentType)}%`),e}isSqs(){return s_(this.table)}getTableName(e){e||(e=this.table);let r=e.name;s_(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 hc{constructor(r,n=i_()){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=u_(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,o_.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:i_()}});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===Oc){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(!l_(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){Ss(this.getSqlClient(),r,n)}},d_=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 f_=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,f_.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)}},Ec=_m;var p_=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 Ec(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 p_.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 xo=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={...ks,...ae},A0=(t={})=>{$a(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
|