tempest.games 0.1.31 → 0.1.32

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.
@@ -1,37 +1,37 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var YM=Object.create;var{getPrototypeOf:wM,defineProperty:lW,getOwnPropertyNames:KM}=Object;var MM=Object.prototype.hasOwnProperty;var OM=(T,$,S)=>{S=T!=null?YM(wM(T)):{};let J=$||!T||!T.__esModule?lW(S,"default",{value:T,enumerable:!0}):S;for(let F of KM(T))if(!MM.call(J,F))lW(J,F,{get:()=>T[F],enumerable:!0});return J};var GM=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var HM=(T,$)=>{for(var S in $)lW(T,S,{get:$[S],enumerable:!0,configurable:!0,set:(J)=>$[S]=()=>J})};var P2=import.meta.require;var LY=GM((ZN,yY)=>{var j0=P2("os"),I0=P2("path");function BY(T){let $=process.env.XDG_CACHE_HOME||I0.join(j0.homedir(),".cache");return I0.join($,T)}function r9(T){return I0.join(j0.homedir(),"Library","Caches",T)}function a9(T){let $=process.env.LOCALAPPDATA||I0.join(j0.homedir(),"AppData","Local");return I0.join($,T,"Cache")}var s9=function(){switch(j0.platform()){case"darwin":return r9;case"win32":return a9;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return BY;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${j0.platform()}" is not currently supported by node-cachedir, falling back to "posix". Please file an issue with your platform here: https://github.com/LinusU/node-cachedir/issues/new`),BY}}();yY.exports=function T($){if(typeof $!=="string")throw new TypeError("id is not a string");if($.length===0)throw new Error("id cannot be empty");if(/[^0-9a-zA-Z-]/.test($))throw new Error("id cannot contain special characters");return s9($)}});function J1(T=Math.random){return T().toString(36).slice(2)}class qF extends Promise{fate;resolve;reject;done=!1;constructor(T){let $,S;super((J,F)=>{$=J,S=F});this.resolve=$,this.reject=S,this.use(T instanceof Promise?T:new Promise(T))}pass(T,$){if(T===this.fate)this.resolve($),this.done=!0}fail(T,$){if(T===this.fate)this.reject($),this.done=!0}use(T){if(T instanceof Promise){let $=T;this.fate=$,$.then((S)=>{this.pass($,S)},(S)=>{this.fail($,S)})}else this.resolve(T),this.fate=void 0}}function N5(T){return Object.entries(T)}var m2=(T,$,S=FT.STORE)=>{return l$(S,{key:`${T.key}:JSON`,get:({get:J})=>$.toJson(J(T)),set:({set:J},F)=>{J(T,$.fromJson(F))}})};function b(T){while(T.child!==null)T=T.child;return T}class WT{Subscriber;subscribers=new Map;subscribe(T,$){return this.subscribers.set(T,$),()=>{this.unsubscribe(T)}}unsubscribe(T){this.subscribers.delete(T)}next(T){let $=this.subscribers.values();for(let S of $)S(T)}}class rW extends WT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function XS(T,$,S){let J={key:$.key,type:"atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${YS(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new WT,A=Object.assign((X)=>{let Y=AT(X),w={key:$.key,subKey:Y},K=`${$.key}(${Y})`,M=b(T),D=$.default,z={key:K,default:D instanceof Function?D(X):D};if($.effects)z.effects=$.effects(X);let R=V$(M,z,w);return W.next({type:"state_creation",token:R}),R},J,{subject:W,install:(X)=>XS(X,$),internalRoles:S});return T.families.set($.key,A),T.defaults.set($.key,$.default),J}function c2(T,$){if("mutable"in $)return bF(T,$);return XS(T,$)}function ES(T,$,S){let J={key:$.key,type:"readonly_selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","readonly_selector_family",$.key,`Overwriting an existing ${YS(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new WT,A=Object.assign((X)=>{let Y=AT(X),w={key:$.key,subKey:Y},K=`${$.key}(${Y})`,M=b(T),D=hF(M,{key:K,get:$.get(X)},w);return W.next({type:"state_creation",token:D}),D},J,{internalRoles:S,subject:W,install:(X)=>ES(X,$),default:(X)=>{return $.get(X)({get:(...w)=>HT(T,...w),find:(w,K)=>a(T,w,K),seek:(w,K)=>W$(T,w,K),json:(w)=>uT(T,w)})}});return T.families.set($.key,A),J}function vF(T,$){if("set"in $)return PF(T,$);return ES(T,$)}class F1{_buffer;_index=0;constructor(T){let $;if(typeof T==="number")$=T;else $=T.length;this._buffer=Array.from({length:$})}get buffer(){return this._buffer}get index(){return this._index}add(T){this._buffer[this._index]=T,this._index=(this._index+1)%this._buffer.length}copy(){let T=new F1([...this._buffer]);return T._index=this._index,T}}var zM={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function n2(T,$){let S=AT($),J=`${T.key}(${S})`,F=zM[T.type],W={key:J,type:F};return Object.assign(W,{family:{key:T.key,subKey:S}}),Object.assign(W,{counterfeit:!0}),W}function B$(T){let $={key:T.key,type:T.type};if("family"in T)$.family=T.family;return $}function bJ(T){return g2(FT.STORE,T)}function sS(T){return c2(FT.STORE,T)}function aW(...T){if(T.length===2)return HT(FT.STORE,...T);return HT(FT.STORE,...T)}var sW=(T)=>($,S,J,F,...W)=>{console[T](`${$} ${S} "${J}" ${F}`,...W)},DM={error:sW("error"),info:sW("info"),warn:sW("warn")};class eW{logLevel;filter;logger;constructor(T,$,S=DM){this.logLevel=T;this.filter=$;this.logger=S}error=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!==null)this.logger.error(...T)};info=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel==="info")this.logger.info(...T)};warn=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...T)}}var AG=Symbol("claim");class o2{store;constructor(T=FT.STORE){this.store=T,t2("root",T)}allocate(T,$,S){return eS(this.store,T,$,S)}fuse(T,$,S){return d2(this.store,T,$,S)}deallocate(T){TJ(this.store,T)}claim(T,$,S){return hJ(this.store,T,$,S)}}class Tf{store;realm;constructor(T=FT.STORE){this.store=T,this.realm=new o2(T)}allocate(T,$,S){eS(this.store,T,$,S)}deallocate(T){TJ(this.store,T)}claim(T,$,S){hJ(this.store,T,$,S)}}function W1(T){return vF(FT.STORE,T)}function iT(T){return"epoch"in T.transactionMeta}function zT(T){return"phase"in T.transactionMeta}var u2=(T)=>{let $=b(T);if(!zT($)){T.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}T.logger.info("\uD83E\uDE82","transaction",$.transactionMeta.update.key,"Aborting transaction"),$.parent.child=null};var EM=(T)=>T[0].toUpperCase()+T.slice(1);function YS(T){return T.type.split("_").map(EM).join(" ")}class $J extends Error{constructor(T,$){super(`${YS(T)} ${AT(T.key)} not found in store "${$.config.name}".`)}}function vJ(T,$,S){return(...J)=>{let F=KT(T,S);if(F)return F.run(J,$);throw new $J(T,S)}}var f1=(T)=>($)=>T instanceof Function?T($):T;var vS=(T,$)=>{if($.valueMap.has(T.key))return $.logger.info("\uD83D\uDCD6",T.type,T.key,"reading cached value"),i2(T,$);if(T.type==="selector"||T.type==="readonly_selector")return $.logger.info("\uD83E\uDDEE",T.type,T.key,"computing value"),T.get();let S=T.default instanceof Function?T.default():T.default;return $.logger.info("\uD83D\uDC81","atom",T.key,"could not find cached value; using default",S),T.default instanceof Function?T.default():T.default};var l2=(T,$)=>{if(T.operation.open){let S=performance.now();return T.logger.info("\u2757",$.type,$.key,`deferring setState at T-${S} until setState for "${T.operation.token.key}" is done`),S}T.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:$},T.logger.info("\u2B55",$.type,$.key,`operation start in store "${T.config.name}"${!zT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},r2=(T)=>{if(T.operation.open)T.logger.info("\uD83D\uDD34",T.operation.token.type,T.operation.token.key,`operation done in store "${T.config.name}"`);T.operation={open:!1},T.on.operationClose.next(T.operation)},a2=(T,$)=>{if(!T.operation.open)return T.logger.error("\uD83D\uDC1E","unknown",$,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return T.operation.done.has($)},PJ=(T,$)=>{if(!T.operation.open){T.logger.error("\uD83D\uDC1E","unknown",$,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}T.operation.done.add($)};var s2=(T,$,S)=>{switch(T.type){case"mutable_atom":S.logger.info("\uD83D\uDCE2",T.type,T.key,"is now (",$.newValue,") subscribers:",T.subject.subscribers);break;default:S.logger.info("\uD83D\uDCE2",T.type,T.key,"went (",$.oldValue,"->",$.newValue,") subscribers:",T.subject.subscribers)}T.subject.next($)};var $f=(T,$)=>{let S=b($),J=S.selectorAtoms.getRelatedKeys(T.key);if(S.logger.info("\uD83E\uDDF9",T.type,T.key,J?`evicting ${J.size} states downstream:`:"no downstream states",J??"to evict"),J){if(S.operation.open)S.logger.info("\uD83E\uDDF9",T.type,T.key,`[ ${[...S.operation.done].join(", ")} ] already done`);for(let F of J){if(a2(S,F))continue;e2(F,S),PJ(S,F)}}};function QM(T,$){if($X($.newValue))return!1;if(T.includes("\uD83D\uDD0D"))return!1;return!0}var TX=(T,$,S)=>{let{key:J}=T,F=b(S);if(!zT(F)||F.transactionMeta.phase!=="building"){S.logger.error("\uD83D\uDC1E","atom",J,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!QM(J,$))return;let f={type:"atom_update",key:J,...$};if(T.family)f.family=T.family;F.transactionMeta.update.updates.push(f),S.logger.info("\uD83D\uDCC1","atom",J,"stowed (",$.oldValue,"->",$.newValue,")")};var SX=(T,$,S)=>{let J=vS(T,S),F=J;if(T.type==="mutable_atom"&&zT(S)){let{parent:f}=S;F=mF(T,f,S)}if(F=f1($)(F),S.logger.info("\uD83D\uDCDD","atom",T.key,"set to",F),F=c$(T.key,F,T.subject,S),JX(T.key,S))FX(T.key,S);PJ(S,T.key),$f(T,S);let W={oldValue:J,newValue:F};if(iT(S))s2(T,W,S);else if(S.parent){if(S.on.transactionApplying.state===null)TX(T,W,S);else if(T.key.startsWith("*")){let f=T.key.slice(1),A=S.atoms.get(f),X=S.valueMap.get(f);if(A.type==="mutable_atom"&&zT(S)){let{parent:w}=S;X=mF(A,w,S)}if(X.do(W.newValue)===null)$f(A,S)}}};var A1=(T,$,S)=>{switch(T.type){case"atom":case"mutable_atom":SX(T,$,S);break;case"selector":T.set($);break}};function WX(T,$){if($.family){let S=T.families.get($.family.key);if(S)return S}}function cT(T,...$){let S,J,F,W;if($.length===2){if(S=$[0],W=$[1],J=WX(T,S)??null,J)F=S.family?nT(S.family.subKey):null,S=a(T,J,F)}else J=$[0],F=$[1],W=$[2],S=a(T,J,F);if("counterfeit"in S&&"family"in S){let X=S.family.subKey,Y=T.disposalTraces.buffer.find((w)=>w?.key===X);T.logger.error("\u274C",S.type,S.key,`could not be set because it was not found in the store "${T.config.name}".`,Y?`This state was previously disposed:
4
- ${Y.trace}`:"No previous disposal trace was found.");return}let f=l2(T,S);if(f){let X=T.on.operationClose.subscribe(`waiting to set "${S.key}" at T-${f}`,()=>{X(),T.logger.info("\uD83D\uDFE2",S.type,S.key,`resuming deferred setState from T-${f}`),cT(T,S,W)});return}let A=KT(S,T);A1(A,W,T),r2(T)}function X1(T,$,S){let{key:J,newValue:F,oldValue:W}=$,f=T==="newValue"?F:W,A={key:J,type:"atom"};if($.family)Object.assign(A,{family:$.family});cT(S,A,f)}function fX(T){let{stack:$}=T;if($)return`
3
+ var Y7=Object.create;var{getPrototypeOf:M7,defineProperty:sf,getOwnPropertyNames:G7}=Object;var K7=Object.prototype.hasOwnProperty;var H7=(T,$,J)=>{J=T!=null?Y7(M7(T)):{};let S=$||!T||!T.__esModule?sf(J,"default",{value:T,enumerable:!0}):J;for(let F of G7(T))if(!K7.call(S,F))sf(S,F,{get:()=>T[F],enumerable:!0});return S};var O7=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var z7=(T,$)=>{for(var J in $)sf(T,J,{get:$[J],enumerable:!0,configurable:!0,set:(S)=>$[J]=()=>S})};var vA=import.meta.require;var Nw=O7((oN,Lw)=>{var I0=vA("os"),Z0=vA("path");function yw(T){let $=process.env.XDG_CACHE_HOME||Z0.join(I0.homedir(),".cache");return Z0.join($,T)}function l5(T){return Z0.join(I0.homedir(),"Library","Caches",T)}function r5(T){let $=process.env.LOCALAPPDATA||Z0.join(I0.homedir(),"AppData","Local");return Z0.join($,T,"Cache")}var a5=function(){switch(I0.platform()){case"darwin":return l5;case"win32":return r5;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return yw;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${I0.platform()}" is not currently supported by node-cachedir, falling back to "posix". Please file an issue with your platform here: https://github.com/LinusU/node-cachedir/issues/new`),yw}}();Lw.exports=function T($){if(typeof $!=="string")throw new TypeError("id is not a string");if($.length===0)throw new Error("id cannot be empty");if(/[^0-9a-zA-Z-]/.test($))throw new Error("id cannot contain special characters");return a5($)}});function F1(T=Math.random){return T().toString(36).slice(2)}class qF extends Promise{fate;resolve;reject;done=!1;constructor(T){let $,J;super((S,F)=>{$=S,J=F});this.resolve=$,this.reject=J,this.use(T instanceof Promise?T:new Promise(T))}pass(T,$){if(T===this.fate)this.resolve($),this.done=!0}fail(T,$){if(T===this.fate)this.reject($),this.done=!0}use(T){if(T instanceof Promise){let $=T;this.fate=$,$.then((J)=>{this.pass($,J)},(J)=>{this.fail($,J)})}else this.resolve(T),this.fate=void 0}}function LK(T){return Object.entries(T)}var mA=(T,$,J=AT.STORE)=>{return OJ(J,{key:`${T.key}:JSON`,get:({get:S})=>$.toJson(S(T)),set:({set:S},F)=>{S(T,$.fromJson(F))}})};function b(T){while(T.child!==null)T=T.child;return T}class FT{Subscriber;subscribers=new Map;subscribe(T,$){return this.subscribers.set(T,$),()=>{this.unsubscribe(T)}}unsubscribe(T){this.subscribers.delete(T)}next(T){let $=this.subscribers.values();for(let J of $)J(T)}}class ef extends FT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function zJ(T,$,J){let S={key:$.key,type:"atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${WJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let f=new FT,A=Object.assign((X)=>{let w=WT(X),Y={key:$.key,subKey:w},M=`${$.key}(${w})`,G=b(T),z=$.default,D={key:M,default:z instanceof Function?z(X):z};if($.effects)D.effects=$.effects(X);let R=N$(G,D,Y);return f.next({type:"state_creation",token:R}),R},S,{subject:f,install:(X)=>zJ(X,$),internalRoles:J});return T.families.set($.key,A),T.defaults.set($.key,$.default),S}function PA(T,$){if("mutable"in $)return bF(T,$);return zJ(T,$)}function DJ(T,$,J){let S={key:$.key,type:"readonly_selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","readonly_selector_family",$.key,`Overwriting an existing ${WJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let f=new FT,A=Object.assign((X)=>{let w=WT(X),Y={key:$.key,subKey:w},M=`${$.key}(${w})`,G=b(T),z=hF(G,{key:M,get:$.get(X)},Y);return f.next({type:"state_creation",token:z}),z},S,{internalRoles:J,subject:f,install:(X)=>DJ(X,$),default:(X)=>{return $.get(X)({get:(...Y)=>OT(T,...Y),find:(...Y)=>a(T,...Y),json:(Y)=>dT(T,Y)})}});return T.families.set($.key,A),S}function f1(T,$){if("set"in $)return vF(T,$);return DJ(T,$)}class W1{_buffer;_index=0;constructor(T){let $;if(typeof T==="number")$=T;else $=T.length;this._buffer=Array.from({length:$})}get buffer(){return this._buffer}get index(){return this._index}add(T){this._buffer[this._index]=T,this._index=(this._index+1)%this._buffer.length}copy(){let T=new W1([...this._buffer]);return T._index=this._index,T}}var D7={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function nA(T,$){let J=WT($),S=`${T.key}(${J})`,F=D7[T.type],f={key:S,type:F};return Object.assign(f,{family:{key:T.key,subKey:J}}),Object.assign(f,{counterfeit:!0}),f}function U$(T){let $={key:T.key,type:T.type};if("family"in T)$.family=T.family;return $}function qS(T){return cA(AT.STORE,T)}function rJ(T){return PA(AT.STORE,T)}function TW(...T){if(T.length===2)return OT(AT.STORE,...T);return OT(AT.STORE,...T)}function A1(T,$,J=AT.STORE){return J.joins.set(T.key,new mF(T,$,J)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function pA(T){return oA(T,AT.STORE)}var $W=(T)=>($,J,S,F,...f)=>{console[T](`${$} ${J} "${S}" ${F}`,...f)},Q7={error:$W("error"),info:$W("info"),warn:$W("warn")};class JW{logLevel;filter;logger;constructor(T,$,J=Q7){this.logLevel=T;this.filter=$;this.logger=J}error=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!==null)this.logger.error(...T)};info=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel==="info")this.logger.info(...T)};warn=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...T)}}var XH=Symbol("claim");class tA{store;constructor(T=AT.STORE){this.store=T,dA("root",T)}allocate(T,$,J){return aJ(this.store,T,$,J)}fuse(T,$,J){return iA(this.store,T,$,J)}deallocate(T){sJ(this.store,T)}claim(T,$,J){return bS(this.store,T,$,J)}}class SW{store;realm;constructor(T=AT.STORE){this.store=T,this.realm=new tA(T)}allocate(T,$,J){aJ(this.store,T,$,J)}deallocate(T){sJ(this.store,T)}claim(T,$,J){bS(this.store,T,$,J)}}function w1(T){return f1(AT.STORE,T)}function iT(T){return"epoch"in T.transactionMeta}function zT(T){return"phase"in T.transactionMeta}var uA=(T)=>{let $=b(T);if(!zT($)){T.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}T.logger.info("\uD83E\uDE82","transaction",$.transactionMeta.update.key,"Aborting transaction"),$.parent.child=null};function ET(T){return T[0].toUpperCase()+T.slice(1)}function WJ(T){return T.type.split("_").map(ET).join(" ")}class eJ extends Error{constructor(T,$){super(`${WJ(T)} ${WT(T.key)} not found in store "${$.config.name}".`)}}function hS(T,$,J){return(...S)=>{let F=GT(T,$);if(F)return F.run(S,J);throw new eJ($,T)}}var Y1=(T)=>($)=>T instanceof Function?T($):T;var hJ=(T,$)=>{if(T.valueMap.has($.key))return T.logger.info("\uD83D\uDCD6",$.type,$.key,"reading cached value"),lA($,T);if($.type==="selector"||$.type==="readonly_selector")return T.logger.info("\uD83E\uDDEE",$.type,$.key,"computing value"),$.get();let J=$.default instanceof Function?$.default():$.default;return T.logger.info("\uD83D\uDC81","atom",$.key,"could not find cached value; using default",J),$.default instanceof Function?$.default():$.default};var rA=(T,$)=>{if(T.operation.open){let J=performance.now();return T.logger.info("\u2757",$.type,$.key,`deferring setState at T-${J} until setState for "${T.operation.token.key}" is done`),J}T.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:$},T.logger.info("\u2B55",$.type,$.key,`operation start in store "${T.config.name}"${!zT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},aA=(T)=>{if(T.operation.open)T.logger.info("\uD83D\uDD34",T.operation.token.type,T.operation.token.key,`operation done in store "${T.config.name}"`);T.operation={open:!1},T.on.operationClose.next(T.operation)},sA=(T,$)=>{if(!T.operation.open)return T.logger.error("\uD83D\uDC1E","unknown",$,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return T.operation.done.has($)},vS=(T,$)=>{if(!T.operation.open){T.logger.error("\uD83D\uDC1E","unknown",$,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}T.operation.done.add($)};var eA=(T,$,J)=>{switch($.type){case"mutable_atom":T.logger.info("\uD83D\uDCE2",$.type,$.key,"is now (",J.newValue,") subscribers:",$.subject.subscribers);break;default:T.logger.info("\uD83D\uDCE2",$.type,$.key,"went (",J.oldValue,"->",J.newValue,") subscribers:",$.subject.subscribers)}$.subject.next(J)};var FW=(T,$)=>{let J=b(T),S=J.selectorAtoms.getRelatedKeys($.key);if(J.logger.info("\uD83E\uDDF9",$.type,$.key,S?`evicting ${S.size} states downstream:`:"no downstream states",S??"to evict"),S){if(J.operation.open)J.logger.info("\uD83E\uDDF9",$.type,$.key,`[ ${[...J.operation.done].join(", ")} ] already done`);for(let F of S){if(sA(J,F))continue;TX(F,J),vS(J,F)}}};function E7(T,$){if(JX($.newValue))return!1;if(T.includes("\uD83D\uDD0D"))return!1;return!0}var $X=(T,$,J)=>{let{key:S}=$,F=b(T);if(!zT(F)||F.transactionMeta.phase!=="building"){T.logger.error("\uD83D\uDC1E","atom",S,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!E7(S,J))return;let W={type:"atom_update",key:S,...J};if($.family)W.family=$.family;F.transactionMeta.update.updates.push(W),T.logger.info("\uD83D\uDCC1","atom",S,"stowed (",J.oldValue,"->",J.newValue,")")};var SX=(T,$,J)=>{let S=hJ(J,T),F=S;if(T.type==="mutable_atom"&&zT(J)){let{parent:W}=J;F=nF(J,T,W)}if(F=Y1($)(F),J.logger.info("\uD83D\uDCDD","atom",T.key,"set to",F),F=P$(J,T.key,F,T.subject),FX(J,T.key))fX(J,T.key);vS(J,T.key),FW(J,T);let f={oldValue:S,newValue:F};if(iT(J))eA(J,T,f);else if(J.parent){if(J.on.transactionApplying.state===null)$X(J,T,f);else if(T.key.startsWith("*")){let W=T.key.slice(1),A=J.atoms.get(W),X=J.valueMap.get(W);if(A.type==="mutable_atom"&&zT(J)){let{parent:Y}=J;X=nF(J,A,Y)}if(X.do(f.newValue)===null)FW(J,A)}}};var M1=(T,$,J)=>{switch($.type){case"atom":case"mutable_atom":SX($,J,T);break;case"selector":$.set(J);break}};function WX(T,$){if($.family){let J=T.families.get($.family.key);if(J)return J}}function nT(T,...$){let J,S,F,f;if($.length===2){if(J=$[0],f=$[1],S=WX(T,J)??null,S)F=J.family?$$(J.family.subKey):null,J=a(T,S,F)}else S=$[0],F=$[1],f=$[2],J=a(T,S,F);if("counterfeit"in J&&"family"in J){let X=J.family.subKey,w=T.disposalTraces.buffer.find((Y)=>Y?.key===X);T.logger.error("\u274C",J.type,J.key,`could not be set because it was not found in the store "${T.config.name}".`,w?`This state was previously disposed:
4
+ ${w.trace}`:"No previous disposal trace was found.");return}let W=rA(T,J);if(W){let X=T.on.operationClose.subscribe(`waiting to set "${J.key}" at T-${W}`,()=>{X(),T.logger.info("\uD83D\uDFE2",J.type,J.key,`resuming deferred setState from T-${W}`),nT(T,J,f)});return}let A=GT(T,J);M1(T,A,f),aA(T)}function G1(T,$,J){let{key:S,newValue:F,oldValue:f}=$,W=T==="newValue"?F:f,A={key:S,type:"atom"};if($.family)Object.assign(A,{family:$.family});nT(J,A,W)}function AX(T){let{stack:$}=T;if($)return`
5
5
  `+$.split(`
6
6
  `)?.slice(1)?.join(`
7
- `);return""}function t2(T,$=FT.STORE){let S={key:T,stringKey:AT(T),dependsOn:"any"};return $.molecules.set(AT(T),S),T}function eS(T,$,S,J="any"){let F=$,W=AT(S),f=[],A=b(T);if(Array.isArray(F))for(let w of F){let K=AT(w);if(A.molecules.get(K))T.moleculeGraph.set(K,W,{source:K});else f.push(K)}else{let w=AT(F);if(A.molecules.get(w))T.moleculeGraph.set(w,W,{source:w});else f.push(w)}if(f.length===0)A.molecules.set(W,{key:S,stringKey:W,dependsOn:J});let X={type:"molecule_creation",key:S,provenance:F};if(zT(A)&&A.transactionMeta.phase==="building")A.transactionMeta.update.updates.push(X);else A.on.moleculeCreation.next(X);for(let w of f){let K=T.disposalTraces.buffer.find((M)=>M?.key===w);T.logger.error("\u274C","molecule",S,"allocation failed:",`Could not allocate to ${w} in store "${T.config.name}".`,K?`
8
- ${w} was most recently disposed
9
- ${K.trace}`:`No previous disposal trace for ${w} was found.`)}return S}function d2(T,$,S,J){let F=`T$--${$}==${S}++${J}`;return eS(T,[S,J],F,"all"),F}function TJ(T,$){let S=AT($),J=T.molecules.get(S);if(!J){let D=T.disposalTraces.buffer.find((z)=>z?.key===S);T.logger.error("\u274C","molecule",$,"deallocation failed:",`Could not find allocation for ${S} in store "${T.config.name}".`,D?`
7
+ `);return""}function dA(T,$=AT.STORE){let J={key:T,stringKey:WT(T),dependsOn:"any"};return $.molecules.set(WT(T),J),T}function aJ(T,$,J,S="any"){let F=$,f=WT(J),W=[],A=b(T);if(Array.isArray(F))for(let Y of F){let M=WT(Y);if(A.molecules.get(M))T.moleculeGraph.set(M,f,{source:M});else W.push(M)}else{let Y=WT(F);if(A.molecules.get(Y))T.moleculeGraph.set(Y,f,{source:Y});else W.push(Y)}if(W.length===0)A.molecules.set(f,{key:J,stringKey:f,dependsOn:S});let X={type:"molecule_creation",key:J,provenance:F};if(zT(A)&&A.transactionMeta.phase==="building")A.transactionMeta.update.updates.push(X);else A.on.moleculeCreation.next(X);for(let Y of W){let M=T.disposalTraces.buffer.find((G)=>G?.key===Y);T.logger.error("\u274C","molecule",J,"allocation failed:",`Could not allocate to ${Y} in store "${T.config.name}".`,M?`
8
+ ${Y} was most recently disposed
9
+ ${M.trace}`:`No previous disposal trace for ${Y} was found.`)}return J}function iA(T,$,J,S){let F=`T$--${$}==${J}++${S}`;return aJ(T,[J,S],F,"all"),F}function sJ(T,$){let J=WT($),S=T.molecules.get(J);if(!S){let z=T.disposalTraces.buffer.find((D)=>D?.key===J);T.logger.error("\u274C","molecule",$,"deallocation failed:",`Could not find allocation for ${J} in store "${T.config.name}".`,z?`
10
10
  This state was most recently deallocated
11
- ${D.trace}`:`No previous disposal trace for ${S} was found.`);return}let F=T.moleculeJoins.getRelatedKeys(J.key);if(F)for(let D of F){let z=T.joins.get(D);if(z)z.relations.delete(J.key),z.molecules.delete(J.stringKey)}T.moleculeJoins.delete(J.stringKey);let W=[],f=[],A={type:"molecule_disposal",key:J.key,values:f,provenance:W},X=b(T);X.molecules.delete(S);let Y=zT(X)&&X.transactionMeta.phase==="building";if(Y)X.transactionMeta.update.updates.push(A);let w=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:J.stringKey});if(w)for(let[D,{source:z}]of w)if(z===J.stringKey){let R=nT(D);TJ(T,R)}else W.push(z);let K=X.moleculeData.getRelatedKeys(J.stringKey);if(K)for(let D of K){let z=X.families.get(D),R=a(T,z,J.key);f.push([z.key,R]),SJ(T,R)}if(X.moleculeGraph.delete(J.stringKey),X.moleculeJoins.delete(J.stringKey),X.moleculeData.delete(J.stringKey),!Y)X.on.moleculeDisposal.next(A);X.molecules.delete(J.stringKey);let M=fX(new Error);T.disposalTraces.add({key:S,trace:M})}function hJ(T,$,S,J){let F=AT(S),W=b(T),f=W.molecules.get(F);if(!f){let M=T.disposalTraces.buffer.find((D)=>D?.key===F);return T.logger.error("\u274C","molecule",S,"claim failed:",`Could not allocate to ${F} in store "${T.config.name}".`,M?`
11
+ ${z.trace}`:`No previous disposal trace for ${J} was found.`);return}let F=T.moleculeJoins.getRelatedKeys(S.key);if(F)for(let z of F){let D=T.joins.get(z);if(D)D.relations.delete(S.key),D.molecules.delete(S.stringKey)}T.moleculeJoins.delete(S.stringKey);let f=[],W=[],A={type:"molecule_disposal",key:S.key,values:W,provenance:f},X=b(T);X.molecules.delete(J);let w=zT(X)&&X.transactionMeta.phase==="building";if(w)X.transactionMeta.update.updates.push(A);let Y=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:S.stringKey});if(Y)for(let[z,{source:D}]of Y)if(D===S.stringKey){let R=$$(z);sJ(T,R)}else f.push(D);let M=X.moleculeData.getRelatedKeys(S.stringKey);if(M)for(let z of M){let D=X.families.get(z),R=a(T,D,S.key);W.push([D.key,R]),TS(T,R)}if(X.moleculeGraph.delete(S.stringKey),X.moleculeJoins.delete(S.stringKey),X.moleculeData.delete(S.stringKey),!w)X.on.moleculeDisposal.next(A);X.molecules.delete(S.stringKey);let G=AX(new Error);T.disposalTraces.add({key:J,trace:G})}function bS(T,$,J,S){let F=WT(J),f=b(T),W=f.molecules.get(F);if(!W){let G=T.disposalTraces.buffer.find((z)=>z?.key===F);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${F} in store "${T.config.name}".`,G?`
12
12
  ${F} was most recently disposed
13
- ${M.trace}`:`No previous disposal trace for ${F} was found.`),S}let A=AT($),X=W.molecules.get(A);if(!X){let M=T.disposalTraces.buffer.find((D)=>D?.key===A);return T.logger.error("\u274C","molecule",S,"claim failed:",`Could not allocate to ${A} in store "${T.config.name}".`,M?`
13
+ ${G.trace}`:`No previous disposal trace for ${F} was found.`),J}let A=WT($),X=f.molecules.get(A);if(!X){let G=T.disposalTraces.buffer.find((z)=>z?.key===A);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${A} in store "${T.config.name}".`,G?`
14
14
  ${A} was most recently disposed
15
- ${M.trace}`:`No previous disposal trace for ${A} was found.`),S}let Y=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:f.stringKey}).filter(([,{source:M}])=>M!==F).map(([M])=>nT(M));if(J)W.moleculeGraph.delete(F);W.moleculeGraph.set({upstreamMoleculeKey:X.stringKey,downstreamMoleculeKey:f.stringKey},{source:X.stringKey});let w={type:"molecule_transfer",key:f.key,from:Y,to:[X.key]};if(zT(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.updates.push(w);return S}function Sf(T,$,S){switch($){case"newValue":{AX(T,S);break}case"oldValue":{SJ(S,T.token);break}}}function Jf(T,$,S){switch($){case"newValue":{SJ(S,T.token);break}case"oldValue":{if(AX(T,S),T.subType==="atom")S.valueMap.set(T.token.key,T.value);break}}}function AX(T,$){let{family:S}=T.token;if(S){let J=$.families.get(S.key);if(J)a($,J,nT(S.subKey))}}function XX(T,$,S){switch($){case"newValue":eS(S,T.provenance,T.key);break;case"oldValue":TJ(S,T.key);break}}function YX(T,$,S){switch($){case"newValue":TJ(S,T.key);break;case"oldValue":{let J=T.provenance.map(nT);eS(S,J,T.key);for(let[F,W]of T.values){let f=S.families.get(F);if(f){a(S,f,T.key);let A=`${F}(${AT(T.key)})`;S.valueMap.set(A,W)}}}break}}function wX(T,$,S){switch($){case"newValue":{let J=T.to.length===1?T.to[0]:T.to;hJ(S,J,T.key,"exclusive")}break;case"oldValue":{let J=T.from.length===1?T.from[0]:T.from;hJ(S,J,T.key,"exclusive")}break}}function Y1(T,$,S){let J=T==="newValue"?$.updates:[...$.updates].reverse();for(let F of J)switch(F.type){case"atom_update":case"selector_update":X1(T,F,S);break;case"state_creation":Sf(F,T,S);break;case"state_disposal":Jf(F,T,S);break;case"molecule_creation":XX(F,T,S);break;case"molecule_disposal":YX(F,T,S);break;case"molecule_transfer":wX(F,T,S);break;case"transaction_update":Y1(T,F,S);break}}function KX(T,$,S){if(iT(S)&&T)S.transactionMeta.epoch.set(T,$)}function MX(T,$,S){if(!iT(S))return;let F=S.transactionMeta.actionContinuities.getRelatedKey(T);if(F!==void 0)S.transactionMeta.epoch.set(F,$)}var OX=(T,$)=>{let S=b($),{parent:J}=S;if(J===null||!zT(S)||S.transactionMeta?.phase!=="building"){$.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}S.transactionMeta.phase="applying",S.transactionMeta.update.output=T,J.child=null,J.on.transactionApplying.next(S.transactionMeta);let{updates:F}=S.transactionMeta.update;if($.logger.info("\uD83D\uDEC4","transaction",S.transactionMeta.update.key,`Applying transaction with ${F.length} updates:`,F),Y1("newValue",S.transactionMeta.update,J),iT(J))MX(S.transactionMeta.update.key,S.transactionMeta.update.epoch,J),KT({key:S.transactionMeta.update.key,type:"transaction"},$)?.subject.next(S.transactionMeta.update),$.logger.info("\uD83D\uDEEC","transaction",S.transactionMeta.update.key,"Finished applying transaction.");else if(zT(J))J.transactionMeta.update.updates.push(S.transactionMeta.update);J.on.transactionApplying.next(null)};function GX(T,$,S){if(!iT(S))return;let{epoch:F,actionContinuities:W}=S.transactionMeta;if(W.set(T,$),!F.has(T))F.set(T,-1)}function HX(T){return{store:T}}function HT(T,...$){let S,J,F;if($.length===1)S=$[0];else J=$[0],F=$[1],S=a(T,J,F);if("counterfeit"in S&&"family"in S){J=T.families.get(S.family.key);let W=S.family.subKey,f=T.disposalTraces.buffer.find((A)=>A?.key===W);switch(T.logger.error("\u274C",S.type,S.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,f?`This state was previously disposed:
16
- ${f.trace}`:"No previous disposal trace was found."),J.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(J.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(J.key))return T.defaults.get(S.family.key);let A=KT(J,T).default(W);return T.defaults.set(J.key,A),A}}}return vS(KT(S,T),T)}class lT{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,$)=>`${T}:${$}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,$){let S=this.relations.get(T),J=this.relations.get($);if(S)S.add($);else S=new Set([$]),this.relations.set(T,S);if(J)J.add(T);else J=new Set([T]),this.relations.set($,J)}deleteRelation(T,$){let S=this.relations.get(T);if(S){if(S.delete($),S.size===0)this.relations.delete(T);let J=this.relations.get($);if(J){if(J.delete(T),J.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let S of $){let J=new Set().add(T);this.relations.set(S,J)}}replaceRelationsSafely(T,$){let S=this.relations.get(T),J=this.isAType?.(T)?T:void 0,F=J===void 0?T:void 0;if(S)for(let W of S){J??=W,F??=W;let f=this.relations.get(W);if(f){if(f.size===1)this.relations.delete(W);else f.delete(T);this.contents.delete(this.makeContentKey(J,F))}}this.relations.set(T,new Set($));for(let W of $){let f=this.relations.get(W);if(f)f.add(T);else f=new Set().add(T),this.relations.set(W,f)}}getContentInternal(T){return this.contents.get(T)}setContent(T,$){this.contents.set(T,$)}deleteContent(T){this.contents.delete(T)}constructor(T,$){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!$?.externalStore)this.relations=new Map(T.relations?.map(([S,J])=>[S,new Set(J)])),this.contents=new Map(T.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let S=$.externalStore;if(this.has=(J,F)=>S.has(J,F),this.addRelation=(J,F)=>{S.addRelation(J,F)},this.deleteRelation=(J,F)=>{S.deleteRelation(J,F)},this.replaceRelationsSafely=(J,F)=>{S.replaceRelationsSafely(J,F)},this.replaceRelationsUnsafely=(J,F)=>{S.replaceRelationsUnsafely(J,F)},this.getRelatedKeys=(J)=>S.getRelatedKeys(J),S.getContent)this.getContentInternal=(J)=>{return S.getContent(J)},this.setContent=(J,F)=>{S.setContent(J,F)},this.deleteContent=(J)=>{S.deleteContent(J)};for(let[J,F]of T.relations??[]){let W=this.isAType?.(J)?J:void 0,f=W===void 0?J:void 0;for(let A of F)W??=A,f??=A,this.addRelation(W,f)}for(let[J,F]of T.contents??[])this.setContent(J,F)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,$])=>[T,[...$]]),contents:[...this.contents.entries()]}}set(...T){let $,S,J;switch(T.length){case 1:{let F=T[0];$=F[this.a],S=F[this.b],J=void 0;break}case 2:{let F=T[0];if(typeof F==="string")[$,S]=T;else $=F[this.a],S=F[this.b],J=T[1];break}default:{$=T[0],S=T[1],J=T[2];break}}switch(this.cardinality){case"1:1":{let F=this.getRelatedKey($);if(F&&F!==S)this.delete($,F)}case"1:n":{let F=this.getRelatedKey(S);if(F&&F!==$)this.delete(F,S)}}if(J){let F=this.makeContentKey($,S);this.setContent(F,J)}return this.addRelation($,S),this}delete(T,$){$=typeof $==="string"?$:T[this.b];let S=typeof T==="string"?T:T[this.a];if(S===void 0&&typeof $==="string"){let J=this.getRelatedKeys($);if(J)for(let F of J)this.delete(F,$)}if(typeof S==="string"&&$===void 0){let J=this.getRelatedKeys(S);if(J)for(let F of J)this.delete(S,F)}if(typeof S==="string"&&typeof $==="string"){this.deleteRelation(S,$);let J=this.makeContentKey(S,$);this.deleteContent(J)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((J)=>`"${J}"`).join(", ")}). Only one related key was expected.`);let S;for(let J of $){S=J;break}return S}}replaceRelations(T,$,S){let J=!Array.isArray($),F=J?Object.keys($):$;if(S?.reckless)this.replaceRelationsUnsafely(T,F);else this.replaceRelationsSafely(T,F);if(J)for(let W of F){let f=this.makeContentKey(T,W),A=$[W];this.setContent(f,A)}return this}getContent(T,$){let S=this.makeContentKey(T,$);return this.getContentInternal(S)}getRelationEntries(T){let $=T[this.a],S=T[this.b];if($!==void 0&&S===void 0){let J=this.getRelatedKeys($);if(J)return[...J].map((F)=>{return[F,this.getContent($,F)]})}if($===void 0&&S!==void 0){let J=this.getRelatedKeys(S);if(J)return[...J].map((F)=>{return[F,this.getContent(F,S)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class n$ extends Map{source;deleted=new Set;constructor(T){super();this.source=T}get(T){if(super.has(T))return super.get(T);if(!this.deleted.has(T)&&this.source.has(T))return this.source.get(T);return}set(T,$){return this.deleted.delete(T),super.set(T,$)}hasOwn(T){return super.has(T)}has(T){return!this.deleted.has(T)&&(super.has(T)||this.source.has(T))}delete(T){return this.deleted.add(T),super.delete(T)}}var zX=(T,$,S,J)=>{let F=b(S),W={parent:F,child:null,on:F.on,loggers:F.loggers,logger:F.logger,config:F.config,atoms:new n$(F.atoms),atomsThatAreDefault:new Set(F.atomsThatAreDefault),families:new n$(F.families),joins:new n$(F.joins),operation:{open:!1},readonlySelectors:new n$(F.readonlySelectors),timelines:new n$(F.timelines),timelineTopics:new lT(F.timelineTopics.toJSON()),trackers:new Map,transactions:new n$(F.transactions),selectorAtoms:new lT(F.selectorAtoms.toJSON()),selectorGraph:new lT(F.selectorGraph.toJSON(),{makeContentKey:(...Y)=>Y.sort().join(":")}),selectors:new n$(F.selectors),valueMap:new n$(F.valueMap),defaults:F.defaults,disposalTraces:S.disposalTraces.copy(),molecules:new n$(F.molecules),moleculeGraph:new lT(F.moleculeGraph.toJSON(),{makeContentKey:F.moleculeGraph.makeContentKey}),moleculeData:new lT(F.moleculeData.toJSON(),{makeContentKey:F.moleculeData.makeContentKey}),moleculeJoins:new lT(F.moleculeJoins.toJSON(),{makeContentKey:F.moleculeJoins.makeContentKey}),miscResources:new n$(F.miscResources)},f=DX(T,S),A={phase:"building",update:{type:"transaction_update",key:T,id:J,epoch:f===void 0?Number.NaN:f+1,updates:[],params:$,output:void 0},toolkit:{get:(...Y)=>HT(X,...Y),set:(...Y)=>{cT(X,...Y)},run:(Y,w=J1())=>vJ(Y,w,X),find:(Y,w)=>a(X,Y,w),seek:(Y,w)=>W$(X,Y,w),json:(Y)=>uT(X,Y),dispose:(...Y)=>{SJ(X,...Y)},env:()=>HX(X)}},X=Object.assign(W,{transactionMeta:A});return F.child=X,S.logger.info("\uD83D\uDEEB","transaction",T,"Building transaction with params:",$),X};function Ff(T,$){let S={key:T.key,type:"transaction",run:(W,f)=>{let A=zX(T.key,W,$,f);try{let X=b($),{toolkit:Y}=A.transactionMeta,w=T.do(Y,...W);return OX(w,X),w}catch(X){throw u2(J),$.logger.warn("\uD83D\uDCA5","transaction",T.key,"caught:",X),X}},install:(W)=>Ff(T,W),subject:new WT},J=b($);J.transactions.set(S.key,S);let F=B$(S);return $.on.transactionCreation.next(F),F}function DX(T,$){let S=iT($),J=S?$.transactionMeta.actionContinuities.getRelatedKey(T):void 0;return S&&J!==void 0?$.transactionMeta.epoch.get(J):void 0}function cF(T){return Ff(T,FT.STORE)}class EX{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new lT({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new lT({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new lT({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new lT({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new F1(100);molecules=new Map;moleculeJoins=new lT({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new lT({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new lT({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new WT,atomDisposal:new WT,selectorCreation:new WT,selectorDisposal:new WT,timelineCreation:new WT,transactionCreation:new WT,transactionApplying:new rW(null),operationClose:new WT,moleculeCreation:new WT,moleculeDisposal:new WT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new eW("warn",(T,$,S)=>!S.includes("\uD83D\uDD0D"))];logger={error:(...T)=>{for(let $ of this.loggers)$.error(...T)},info:(...T)=>{for(let $ of this.loggers)$.info(...T)},warn:(...T)=>{for(let $ of this.loggers)$.warn(...T)}};constructor(T,$=null){if(this.config={...$?.config,...T},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},iT($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new lT($?.transactionMeta.actionContinuities.toJSON())};for(let[,J]of $.families){if(J.internalRoles?.includes("mutable")||J.internalRoles?.includes("join"))continue;J.install(this)}let S=new Set;for(let[,J]of $.atoms){if(S.has(J.key))continue;if(J.install(this),J.type==="mutable_atom"){let F=uT($,J),W=QS(J);S.add(F.key),S.add(W.key)}}for(let[,J]of $.readonlySelectors)J.install(this);for(let[,J]of $.selectors){if(S.has(J.key))continue;J.install(this)}for(let[,J]of $.transactions)J.install(this);for(let[,J]of $.timelines)J.install(this)}}}var FT={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new EX({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function KT(T,$){let S,J=$;while(J!==null){switch(T.type){case"atom":case"mutable_atom":S=J.atoms.get(T.key);break;case"selector":S=J.selectors.get(T.key);break;case"readonly_selector":S=J.readonlySelectors.get(T.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":S=J.families.get(T.key);break;case"timeline":S=J.timelines.get(T.key);break;case"transaction":S=J.transactions.get(T.key);break}if(S)return S;J=J.child}throw new $J(T,$)}function QX(T,$,S){let J=T.families.get($.key);if(J===void 0)throw new $J($,T);let F=J(S),W=b(T);if(F.family){if(iT(W))switch(F.type){case"atom":case"mutable_atom":T.on.atomCreation.next(F);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(F);break}else if(zT(W)&&W.on.transactionApplying.state===null)W.transactionMeta.update.updates.push({type:"state_creation",token:F})}return F}function W$(T,$,S){let J=AT(S),F=`${$.key}(${J})`,W=b(T),f;switch($.type){case"atom_family":case"mutable_atom_family":f=W.atoms.get(F);break;case"selector_family":f=W.selectors.get(F);break;case"readonly_selector_family":f=W.readonlySelectors.get(F);break}if(f)return B$(f);return f}function a(T,$,S){let J=W$(T,$,S);if(J)return J;let F=AT(S),W=T.molecules.get(F);if(!W&&T.config.lifespan==="immortal"){let f=n2($,S);return T.logger.error("\u274C",f.type,f.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),f}if(J=QX(T,$,S),W)b(T).moleculeData.set(F,$.key);return J}function SJ(T,...$){let S;if($.length===1)S=$[0];else{let J=$[0],F=$[1];S=a(T,J,F)}try{KT(S,T)}catch(J){T.logger.error("\u274C",S.type,S.key,`could not be disposed because it was not found in the store "${T.config.name}".`);return}switch(S.type){case"atom":case"mutable_atom":Wf(S,T);break;case"selector":case"readonly_selector":RX(S,T);break}}var w1=(T,$)=>b($).atoms.has(T),RM=(T,$)=>b($).selectors.has(T),_M=(T,$)=>b($).readonlySelectors.has(T),_X=(T,$)=>w1(T,$)||RM(T,$)||_M(T,$);var K1=(T,$)=>{return b($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([J,{source:F}])=>F!==T).map(([J,{source:F}])=>F).filter((J)=>_X(J,$))};var ff=(T,$,S)=>{let J=[],F=K1(T,S);while(F.length>0){let W=F.shift();if($.has(W))continue;if($.add(W),!w1(W,S))F.push(...K1(W,S));else if(!J.includes(W))J.push(W)}return J},kX=(T,$)=>{let S=T.key,J=K1(S,$),F=new Set;return J.flatMap((W)=>w1(W,$)?W:ff(W,F,$))};var UX=(T,$,S,J)=>{let F=b(J);if($.type==="atom"||$.type==="mutable_atom")F.selectorAtoms.set({selectorKey:T,atomKey:$.key}),J.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let W=ff($.key,S,J);J.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${W.map((f)=>`"${f}"`).join(", ")} ]`);for(let f of W)F.selectorAtoms=F.selectorAtoms.set({selectorKey:T,atomKey:f})}S.add($.key)};var M1=(T,$,S)=>({get:(...J)=>{let F=b(S),W;if(J.length===2){let[X,Y]=J;W=a(S,X,Y)}else[W]=J;let f=KT(W,S),A=vS(f,S);return S.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${W.key}" =`,A,")"),F.selectorGraph.set({upstreamSelectorKey:W.key,downstreamSelectorKey:T},{source:W.key}),UX(T,W,$,S),A},set:(...J)=>{let F,W;if(J.length===2)F=J[0],W=J[1];else{let X=J[0],Y=J[1];W=J[2],F=a(S,X,Y)}let f=b(S),A=KT(F,f);A1(A,W,f)},find:(J,F)=>a(S,J,F),seek:(J,F)=>W$(S,J,F),json:(J)=>uT(S,J)});var hF=(T,$,S)=>{let J=b(T),F=new WT,W=new Set,{get:f,find:A,seek:X,json:Y}=M1($.key,W,J),w=()=>{let z=$.get({get:f,find:A,seek:X,json:Y});return c$($.key,z,F,b(T)),W.clear(),z},K={...$,subject:F,install:(z)=>hF(z,$,S),get:w,type:"readonly_selector",...S&&{family:S}};J.readonlySelectors.set($.key,K);let M=w();T.logger.info("\u2728",K.type,K.key,"=",M);let D={key:$.key,type:"readonly_selector"};if(S)D.family=S;return D};var nF=(T,$,S)=>{let J=b(T),F=new WT,W=new Set,f=M1($.key,W,J),{find:A,get:X,seek:Y,json:w}=f,K={find:A,get:X,seek:Y,json:w},M=(j=$.get,y=b(T))=>{let I=j(K);return c$($.key,I,F,y),W.clear(),I},z={...$,subject:F,install:(j)=>nF(j,$,S),get:M,set:(j)=>{let y=b(T),I=M($.get,y),Q=f1(j)(I);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",I,"->",Q,")"),c$($.key,Q,F,y),PJ(y,$.key),iT(y))F.next({newValue:Q,oldValue:I});$.set(f,Q)},type:"selector",...S&&{family:S}};J.selectors.set($.key,z);let R=M();T.logger.info("\u2728",z.type,z.key,"=",R);let L={key:$.key,type:"selector"};if(S)L.family=S;return L};function l$(T,$){if("set"in $){let F=nF(T,$,void 0);return T.on.selectorCreation.next(F),F}let J=hF(T,$,void 0);return T.on.selectorCreation.next(J),J}function RX(T,$){let S=b($),{key:J}=T,F=KT(T,S);if(!F.family)$.logger.error("\u274C","selector",J,"Standalone selectors cannot be disposed.");else{if(S.molecules.get(F.family.subKey))S.moleculeData.delete(F.family.subKey,F.family.key);switch(T.type){case"selector":{S.selectors.delete(J);let f=KT({key:F.family.key,type:"selector_family"},$)}break;case"readonly_selector":S.readonlySelectors.delete(J),KT({key:F.family.key,type:"readonly_selector_family"},$).subject.next({type:"state_disposal",subType:"selector",token:T});break}if(S.valueMap.delete(J),S.selectorAtoms.delete(J),S.selectorGraph.delete(J),$.logger.info("\uD83D\uDD25",T.type,J,"deleted"),zT(S)&&S.transactionMeta.phase==="building")S.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:T});else $.on.selectorDisposal.next(T)}}function PF(T,$,S){let J={key:$.key,type:"selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${YS(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new WT,A=Object.assign((X)=>{let Y=AT(X),w={key:$.key,subKey:Y},K=`${$.key}(${Y})`,M=b(T),D=nF(M,{key:K,get:$.get(X),set:$.set(X)},w);return W.next({type:"state_creation",token:D}),D},J,{internalRoles:S,subject:W,install:(X)=>PF(X,$),default:(X)=>{return $.get(X)({get:(...w)=>HT(T,...w),find:(w,K)=>a(T,w,K),seek:(w,K)=>W$(T,w,K),json:(w)=>uT(T,w)})}});return T.families.set($.key,A),J}function VX(T,$,S=FT.STORE){let J=PF(S,{key:`${T.key}:JSON`,get:(W)=>({get:f})=>{let A=f(T,W);return $.toJson(A)},set:(W)=>({set:f},A)=>{f(T,W,$.fromJson(A))}},["mutable","json"]);return KT(T,S).subject.subscribe(`store=${S.config.name}::json-selector-family`,(W)=>{if(W.token.family)W$(S,J,nT(W.token.family.subKey))}),J}var nT=(T)=>JSON.parse(T),AT=(T)=>JSON.stringify(T),_D=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var BX=(T,$)=>{let S=b($);if(S.operation.open)return S.operation.prev.get(T.key);return S.valueMap.get(T.key)};var Yf=(T,$)=>{let S=b($);return kX(T,$).map((F)=>{let W=S.atoms.get(F);if(W===void 0)throw new Error(`Atom "${F}", a dependency of selector "${T.key}", not found in store "${$.config.name}".`);return W.subject.subscribe(`${T.type}:${T.key}`,(f)=>{$.logger.info("\uD83D\uDCE2",T.type,T.key,"root",F,"went",f.oldValue,"->",f.newValue);let A=BX(T,S),X=vS(T,S);$.logger.info("\u2728",T.type,T.key,"went",A,"->",X),T.subject.next({newValue:X,oldValue:A})})})};function G$(T,$,S,J){function F(K){if(J.operation.open){let M=J.on.operationClose.subscribe(`state subscription ${S}`,()=>{M(),$(K)})}else $(K)}let W=KT(T,J);J.logger.info("\uD83D\uDC40",W.type,W.key,`Adding subscription "${S}"`);let f=W.type==="selector"||W.type==="readonly_selector",A=null,X=F;if(f)A=Yf(W,J),X=(K)=>{if(A)A.length=0,A.push(...Yf(W,J));F(K)};let Y=W.subject.subscribe(S,X);return()=>{if(J.logger.info("\uD83D\uDE48",W.type,W.key,`Removing subscription "${S}"`),Y(),A)for(let K of A)K()}}var Af=(T,$,S,J)=>{let F=KT(T,J);J.logger.info("\uD83D\uDC40","timeline",T.key,`Adding subscription "${S}"`);let W=F.subject.subscribe(S,$);return()=>{J.logger.info("\uD83D\uDE48","timeline",T.key,`Removing subscription "${S}" from timeline`),W()}};var Xf=(T,$,S,J)=>{let F=KT(T,J);J.logger.info("\uD83D\uDC40","transaction",T.key,`Adding subscription "${S}"`);let W=F.subject.subscribe(S,$);return()=>{J.logger.info("\uD83D\uDE48","transaction",T.key,`Removing subscription "${S}"`),W()}};class PS{Update;initializeState(T,$){let S=`*${T.key}`;$.atoms.delete(S),$.valueMap.delete(S);let J=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,F=V$($,{key:S,default:null},J);if($.parent?.valueMap.has(S)){let W=$.parent.valueMap.get(S);$.valueMap.set(S,W)}return F}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,S){let J=`tracker:${S.config.name}:${zT(S)?S.transactionMeta.update.key:"main"}:${T.key}`,F=HT(S,T);this.unsubscribeFromInnerValue=F.subscribe(J,(W)=>{cT(S,$,W)}),this.unsubscribeFromState=G$(T,(W)=>{if(W.newValue!==W.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=W.newValue.subscribe(J,(f)=>{cT(S,$,f)})},J,S)}updateCore(T,$,S){let J=`tracker:${S.config.name}:${zT(S)?S.transactionMeta.update.key:"main"}:${T.key}`;G$($,({newValue:F,oldValue:W})=>{let f=S.timelineTopics.getRelatedKey($.key);if(f){if(S.timelines.get(f)?.timeTraveling){let Y=Af({key:f,type:"timeline"},(w)=>{Y(),cT(S,T,(K)=>{if(w==="redo"&&F)K.do(F);else if(w==="undo"&&W)K.undo(W);return K})},J,S);return}}let A=S.on.operationClose.subscribe(J,()=>{A();let X=HT(S,T),Y=F===null?-1:X.getUpdateNumber(F),w=Y-X.cacheUpdateNumber;if(F&&w===1)cT(S,T,(K)=>(K.do(F),K));else S.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${X.cacheUpdateNumber+1}, but got ${Y}`)})},J,S)}mutableState;latestUpdateState;dispose;constructor(T,$){this.mutableState=T;let S=b($);this.latestUpdateState=this.initializeState(T,S),this.observeCore(T,this.latestUpdateState,S),this.updateCore(T,this.latestUpdateState,S),S.trackers.set(T.key,this),this.dispose=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),S.trackers.delete(T.key)}}}function gF(T,$,S){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let J=b(T),F=J.atoms.get($.key);if(F&&F.type==="mutable_atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),B$(F);let W=new WT,f={...$,type:"mutable_atom",install:(Y)=>{return Y.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${Y.config.name}"`),gF(Y,$,S)},subject:W};if(S)f.family=S;let A=$.default();J.atoms.set(f.key,f),O1($.key,T),c$($.key,A,W,J);let X=B$(f);if($.effects){let Y=0,w=[];for(let K of $.effects){let M=K({setSelf:(D)=>{cT(T,X,D)},onSet:(D)=>G$(X,D,`effect[${Y}]`,T)});if(M)w.push(M);++Y}f.cleanup=()=>{for(let K of w)K()}}if(new PS(X,T),!S)m2(X,$,T);return X}class wf{Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let S=XS($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=KT(S,$),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(J)=>{if(J.token.family){let F=nT(J.token.family.subKey);W$($,this.latestUpdateAtoms,F),new PS(J.token,$)}}),this.latestUpdateAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(J)=>{if(J.token.family){let F=nT(J.token.family.subKey),W=W$($,this.mutableAtoms,F);if(W)new PS(W,$)}})}}function bF(T,$,S){let J={key:$.key,type:"mutable_atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${YS(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new WT,A=Object.assign((X)=>{let Y=AT(X),w={key:$.key,subKey:Y},K=`${$.key}(${Y})`,M=b(T),D={key:K,default:()=>$.default(X),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)D.effects=$.effects(X);let z=gF(M,D,w);return W.next({type:"state_creation",token:z}),z},J,{subject:W,install:(X)=>bF(X,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:S});return T.families.set($.key,A),VX(A,$,T),new wf(A,T),J}var Kf=(T,$)=>{let S=b($),J=`${T.key}:JSON`;return S.families.get(J)};var uT=(T,$)=>{if($.family){let J=b(T),W={key:`${$.family.key}:JSON`,type:"selector_family"},f=KT(W,J),A=JSON.parse($.family.subKey);return a(T,f,A)}return{type:"selector",key:`${$.key}:JSON`}};var QS=(T)=>{let S={type:"atom",key:`*${T.key}`};if(T.family)S.family={key:`*${T.family.key}`,subKey:T.family.subKey};return S};function $X(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function mF(T,$,S){let J=$.valueMap.get(T.key),F=S.valueMap.get(T.key);if(J===F){if(J===void 0)return typeof T.default==="function"?T.default():T.default;$.logger.info("\uD83D\uDCC3","atom",T.key,"copying");let W=T.toJson(J),f=T.fromJson(W);return S.valueMap.set(T.key,f),new PS(T,$),f}return F}function c$(T,$,S,J){let F=J.valueMap.get(T);if(F instanceof qF)F.use($);if($ instanceof Promise){let W=new qF($);return J.valueMap.set(T,W),W.then((f)=>{c$(T,f,S,J),S.next({newValue:f,oldValue:W})}).catch((f)=>{J.logger.error("\uD83D\uDCA5","state",T,"rejected:",f)}),W}return J.valueMap.set(T,$),$}var i2=(T,$)=>{let S=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&zT($)){let{parent:J}=$;S=mF(T,J,$)}return S},e2=(T,$)=>{let S=$.valueMap.get(T);if(S instanceof qF){let J=S,F=$.selectors.get(T)??$.readonlySelectors.get(T);if(F)J.use(F.get());return}if($.operation.open)$.operation.prev.set(T,S);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var JX=(T,$)=>{return b($).atomsThatAreDefault.has(T)},O1=(T,$)=>{let S=b($);S.atomsThatAreDefault=new Set(S.atomsThatAreDefault).add(T)},FX=(T,$)=>{let S=b($);S.atomsThatAreDefault=new Set(b($).atomsThatAreDefault),S.atomsThatAreDefault.delete(T)};function V$(T,$,S){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let J=b(T),F=J.atoms.get($.key);if(F&&F.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),B$(F);let W=new WT,f={...$,type:"atom",install:(Y)=>{return Y.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${Y.config.name}"`),V$(Y,$,S)},subject:W};if(S)f.family=S;let A=$.default;if($.default instanceof Function)A=$.default();J.atoms.set(f.key,f),O1($.key,T),c$($.key,A,W,J);let X=B$(f);if($.effects){let Y=0,w=[];for(let K of $.effects){let M=K({setSelf:(D)=>{cT(T,X,D)},onSet:(D)=>G$(X,D,`effect[${Y}]`,T)});if(M)w.push(M);++Y}f.cleanup=()=>{for(let K of w)K()}}return X}function g2(T,$){if("mutable"in $){let F=gF(T,$,void 0);return T.on.atomCreation.next(F),F}let J=V$(T,$,void 0);return T.on.atomCreation.next(J),J}function Wf(T,$){let S=b($),{key:J,family:F}=T,W=KT(T,S);if(!F)$.logger.error("\u274C","atom",J,"Standalone atoms cannot be disposed.");else{W.cleanup?.();let f=$.valueMap.get(W.key),A=KT({key:F.key,type:"atom_family"},$),X={type:"state_disposal",subType:"atom",token:T,value:f};A.subject.next(X);let Y=zT(S);if(S.atoms.delete(J),S.valueMap.delete(J),S.selectorAtoms.delete(J),S.atomsThatAreDefault.delete(J),$.timelineTopics.delete(J),T.type==="mutable_atom"){let w=QS(T);Wf(w,$),$.trackers.delete(J)}if($.logger.info("\uD83D\uDD25","atom",J,"deleted"),Y&&S.transactionMeta.phase==="building"){let w=S.transactionMeta.update.updates.at(-1);if(!(w?.type==="molecule_disposal"&&w.values.some(([D])=>D===W.family?.key)))S.transactionMeta.update.updates.push(X)}else $.on.atomDisposal.next(T)}}class rT extends Set{mode="record";subject=new WT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,$=0){super(T);if(T instanceof rT)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if($)this.cacheLimit=$,this.cache=new Array($),this.subscribe("auto cache",(S)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=S})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let $=new rT(T.members,T.cacheLimit);return $.cache=T.cache,$.cacheIdx=T.cacheIdx,$.cacheUpdateNumber=T.cacheUpdateNumber,$}add(T){let $=super.add(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${AT(T)}`);return $}clear(){let T=this.mode==="record"?[...this]:null;if(super.clear(),T)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(T)}`)}delete(T){let $=super.delete(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${AT(T)}`);return $}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new rT(this);let $=this.child._subscribe("transaction",(S)=>{this.transactionUpdates?.push(S)});try{if(T(this.child)){for(let J of this.transactionUpdates)this.doStep(J);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(S){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",S),S}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,$){return this.subject.subscribe(T,$)}subscribe(T,$){return this.subject.subscribe(T,(S)=>{$(`${this.cacheUpdateNumber}=${S}`)})}emit(T){this.subject.next(T)}doStep(T){let $=T.indexOf(":"),S=T.substring(0,$),J=T.substring($+1);switch(S){case"add":this.add(JSON.parse(J));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(J));break;case"tx":for(let F of J.split(";"))this.doStep(F)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),S=Number(T.substring(0,$)),J=S-this.cacheUpdateNumber;if(J>0){if(J===1){this.mode="playback";let W=T.substring($+1);return this.doStep(W),this.mode="record",this.cacheUpdateNumber=S,null}return this.cacheUpdateNumber+1}if(Math.abs(J)<this.cacheLimit){let W=this.cacheIdx+J;if(this.cache[W]===T)return null;this.mode="playback";let A=!1;while(!A){this.cacheIdx%=this.cacheLimit;let Y=this.cache[this.cacheIdx];if(this.cacheIdx--,!Y)return"OUT_OF_RANGE";this.undo(Y),A=this.cacheIdx===W-1}let X=T.substring($+1);return this.doStep(X),this.mode="record",this.cacheUpdateNumber=S,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),S=T.substring(0,$),J=T.substring($+1);switch(S){case"add":this.delete(JSON.parse(J));break;case"del":this.add(JSON.parse(J));break;case"clear":{let F=JSON.parse(J);for(let W of F)this.add(W);break}case"tx":{let F=J.split(";");for(let W=F.length-1;W>=0;W--)this.undoStep(F[W])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let J=T.substring($+1);return this.undoStep(J),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function IT(T){return T[0].toUpperCase()+T.slice(1)}class Mf{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(T,$){let S=this.toolkit;this.toolkit=T,$(this),this.toolkit=S}store;realm;[Symbol.dispose](){}constructor(T,$,S=FT.STORE){this.store=S,this.realm=new Tf(S),this.options=T,this.defaultContent=$,this.store.miscResources.set(`join:${T.key}`,this),this.realm.allocate("root",T.key),this.toolkit={get:(...Q)=>HT(S,...Q),set:(...Q)=>{cT(S,...Q)},find:(...Q)=>a(S,...Q),seek:(...Q)=>W$(S,...Q),json:(Q)=>uT(S,Q)};let J=T.between[0],F=T.between[1],W=bF(S,{key:`${T.key}/relatedKeys`,default:()=>new rT,mutable:!0,fromJson:(Q)=>rT.fromJSON(Q),toJson:(Q)=>Q.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:W};let f=({get:Q},V)=>Q(W,V),A=({set:Q},V,B)=>{if(!this.store.molecules.has(AT(V)))this.realm.allocate(T.key,V);Q(W,V,(U)=>U.add(B)),Q(W,B,(U)=>U.add(V))},X=({set:Q},V,B)=>{Q(W,V,(U)=>{return U.delete(B),U}),Q(W,B,(U)=>{return U.delete(V),U})},Y=(Q,V,B)=>{let{find:U,get:h,set:l}=Q,_=U(W,V),s=h(_);for(let p of s){if(B.includes(p))continue;l(W,p,(ET)=>{return ET.delete(V),ET})}l(_,(p)=>{return p.transaction(($T)=>{$T.clear();for(let ET of B){let hT=f(Q,ET),U$=hT.has(V);if(this.relations.cardinality==="1:n"){let DS=[];for(let N of hT){if(N===V)continue;let d=f(Q,N);if(d.delete(ET),d.size===0)DS.push(N)}if(!U$&&hT.size>0)hT.clear();for(let N of DS){let d=[ET,N].sort(),OT=`"${d[0]}:${d[1]}"`;this.molecules.delete(OT)}}if(!U$)hT.add(V);$T.add(ET)}return!0}),p})},w=(Q,V,B)=>{let{set:U}=Q;U(W,V,(h)=>{return h.transaction((l)=>{for(let _ of B)l.add(_);return!0}),h});for(let h of B)U(W,h,(l)=>{return l.add(V),l});return!0},K=(Q,V,B)=>{let U=f(Q,V);return B?U.has(B):U.size>0},M={getRelatedKeys:(Q)=>f(this.toolkit,Q),addRelation:(Q,V)=>{this.store.moleculeJoins.set(Q,T.key),this.store.moleculeJoins.set(V,T.key),A(this.toolkit,Q,V)},deleteRelation:(Q,V)=>{X(this.toolkit,Q,V)},replaceRelationsSafely:(Q,V)=>{Y(this.toolkit,Q,V)},replaceRelationsUnsafely:(Q,V)=>{w(this.toolkit,Q,V)},has:(Q,V)=>K(this.toolkit,Q,V)},D,z;if($){z=XS(S,{key:`${T.key}/content`,default:$},["join","content"]);let Q=({get:U},h)=>U(z,h),V=({set:U},h,l)=>{U(z,h,l)};D=Object.assign(M,{getContent:(U)=>{return Q(this.toolkit,U)},setContent:(U,h)=>{V(this.toolkit,U,h)},deleteContent:(U)=>{this.realm.deallocate(U)}})}else D=M;let R=new lT(T,{externalStore:D,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...Q)=>{let[V,B]=Q,U=Q.sort(),h=`${U[0]}:${U[1]}`,l=S.molecules.get(AT(V)),_=S.molecules.get(AT(B));if(!l)this.realm.allocate(T.key,V);if(!_)this.realm.allocate(T.key,B);return this.realm.allocate(V,h,"all"),this.realm.claim(B,h),this.store.moleculeJoins.set(h,T.key),h}}),L=()=>ES(S,{key:`${T.key}/singleRelatedKey`,get:(Q)=>({get:V})=>{let B=V(W,Q);for(let U of B)return U;return null}},["join","keys"]),j=()=>{return ES(S,{key:`${T.key}/multipleRelatedKeys`,get:(Q)=>({get:V})=>{let B=Kf(W,S);return V(B,Q).members}},["join","keys"])},y=()=>ES(S,{key:`${T.key}/singleRelatedEntry`,get:(Q)=>({get:V})=>{let B=V(W,Q);for(let U of B){let h=R.isAType?.(Q)?Q:void 0,l=h===void 0?Q:void 0;h??=U,l??=U;let _=R.makeContentKey(h,l),s=V(z,_);return[U,s]}return null}},["join","entries"]),I=()=>ES(S,{key:`${T.key}/multipleRelatedEntries`,get:(Q)=>({get:V})=>{let B=Kf(W,S);return V(B,Q).members.map((h)=>{let l=R.isAType?.(Q)?Q:void 0,_=l===void 0?Q:void 0;l??=h,_??=h;let s=R.makeContentKey(l,_),p=V(z,s);return[h,p]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let Q=L(),V=`${J}KeyOf${IT(F)}`,B=`${F}KeyOf${IT(J)}`,U={[V]:Q,[B]:Q},h;if($){let l=y(),_=`${J}EntryOf${IT(F)}`,s=`${F}EntryOf${IT(J)}`,p={[_]:l,[s]:l};h=Object.assign(U,p)}else h=U;this.relations=R,this.states=h;break}case"1:n":{let Q=L(),V=j(),B=`${J}KeyOf${IT(F)}`,U=`${F}KeysOf${IT(J)}`,h={[B]:Q,[U]:V},l;if($){let _=y(),s=I(),p=`${J}EntryOf${IT(F)}`,$T=`${F}EntriesOf${IT(J)}`,ET={[p]:_,[$T]:s};l=Object.assign(h,ET)}else l=h;this.relations=R,this.states=l;break}default:{let Q=j(),V=`${J}KeysOf${IT(F)}`,B=`${F}KeysOf${IT(J)}`,U={[V]:Q,[B]:Q},h;if($){let l=I(),_=`${J}EntriesOf${IT(F)}`,s=`${F}EntriesOf${IT(J)}`,p={[_]:l,[s]:l};h=Object.assign(U,p)}else h=U;this.relations=R,this.states=h}}}}function G1(T,$,S=FT.STORE){return S.joins.set(T.key,new Mf(T,$,S)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function Of(T,$){let S=$.joins.get(T.key);if(S===void 0){let F=FT.STORE.joins.get(T.key);if(F===void 0)throw new Error(`Join "${T.key}" not found in store "${$.config.name}"`);S=new Mf(F.options,F.defaultContent,$),$.joins.set(T.key,S)}return S}function Gf(T,$,S){let J=Of(T,S),F;switch(T.cardinality){case"1:1":{let W=`${T.a}KeyOf${IT(T.b)}`,f=`${T.b}KeyOf${IT(T.a)}`;F={get[W](){let X=J.states[W];return a(S,X,$)},get[f](){let X=J.states[f];return a(S,X,$)}};let A=`${T.a}EntryOf${IT(T.b)}`;if(A in J.states){let X=`${T.b}EntryOf${IT(T.a)}`;Object.assign(F,{get[A](){let Y=J.states[A];return a(S,Y,$)},get[X](){let Y=J.states[X];return a(S,Y,$)}})}break}case"1:n":{let W=`${T.a}KeyOf${IT(T.b)}`,f=`${T.b}KeysOf${IT(T.a)}`;F={get[W](){let X=J.states[W];return a(S,X,$)},get[f](){let X=J.states[f];return a(S,X,$)}};let A=`${T.a}EntryOf${IT(T.b)}`;if(A in J.states){let X=`${T.b}EntriesOf${IT(T.a)}`;Object.assign(F,{get[A](){let Y=J.states[A];return a(S,Y,$)},get[X](){let Y=J.states[X];return a(S,Y,$)}})}break}case"n:n":{let W=`${T.a}KeysOf${IT(T.b)}`,f=`${T.b}KeysOf${IT(T.a)}`;F={get[W](){let X=J.states[W];return a(S,X,$)},get[f](){let X=J.states[f];return a(S,X,$)}};let A=`${T.a}EntriesOf${IT(T.b)}`;if(A in J.states){let X=`${T.b}EntriesOf${IT(T.a)}`;Object.assign(F,{get[A](){let Y=J.states[A];return a(S,Y,$)},get[X](){let Y=J.states[X];return a(S,Y,$)}})}}}return F}function H1(T,$,S){let J=Of(T,S),F=b(S);if(zT(F)){let{toolkit:W}=F.transactionMeta;J.transact(W,({relations:f})=>{$(f)})}else $(J.relations)}function kM(T,$){return Of(T,$).core.relatedKeysAtoms}function yX(T){return kM(T,FT.STORE)}class LX extends Map{set(T,$){if(this.has(T))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:T,value:$}),this;return super.set(T,$)}clear(){throw new Error("Cannot clear an InvariantMap")}}class z1{key;type="continuity";globals=[];actions=[];perspectives=[];constructor(T){this.key=T}static existing=new LX;static create(T,$){let S=new z1(T),{type:J,globals:F,actions:W,perspectives:f}=$(S),A={type:J,key:T,globals:F,actions:W,perspectives:f};return z1.existing.set(T,A),A}add(...T){switch(T[0].type){case"atom":case"mutable_atom":this.globals.push(...T);break;case"transaction":this.actions.push(...T);break;case"atom_family":{let[S,J]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:S,viewAtoms:J})}break}return this}}function kR(T){let{key:$,config:S}=T,J=z1.create($,S),{actions:F}=J;for(let W of F)GX($,W.key,FT.STORE);return KX($,-1,FT.STORE),J}var LR=bJ({key:"usersInRoomIndex",mutable:!0,default:()=>new rT,toJson:(T)=>T.toJSON(),fromJson:(T)=>rT.fromJSON(T)}),Hf=bJ({key:"roomIndex",default:()=>new rT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>rT.fromJSON(T)}),UM={enteredAtEpoch:0},pF=G1({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},UM),NR=W1({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let S=yX(pF);return[$(S,T)]}});import{spawn as VM}from"child_process";class mJ{emit;listeners;globalListeners;handleEvent(T,...$){for(let J of this.globalListeners)J(T,...$);let S=this.listeners.get(T);if(S)for(let J of S)J(...$)}id="no_id_retrieved";constructor(T){this.emit=T;this.listeners=new Map,this.globalListeners=new Set}on(T,$){let S=this.listeners.get(T);if(S)S.add($);else this.listeners.set(T,new Set([$]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,$){let S=this.listeners.get(T);if(S)if($)S.delete($);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class zf extends mJ{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[$,...S]=T;switch($){case"i":this.logger.info(...S);break;case"w":this.logger.warn(...S);break;case"e":this.logger.error(...S);break}}}constructor(T,$,S){super((J,...F)=>{let W=JSON.stringify([J,...F])+"\x03",f=(A)=>{if(A.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",f)};return this.process.stdin.once("error",f),this.process.stdin.write(W),this});if(this.process=T,this.key=$,this.logger=S??{info:(...J)=>{console.info(this.id,this.key,...J)},warn:(...J)=>{console.warn(this.id,this.key,...J)},error:(...J)=>{console.error(this.id,this.key,...J)}},this.process.stdout.on("data",(J)=>{let F=J.toString();if(F==="ALIVE")return;this.unprocessedEvents.push(...F.split("\x03"));let W=this.unprocessedEvents.shift();this.incompleteData+=W??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let f=nT(this.incompleteData);this.handleEvent(...f);while(this.unprocessedEvents.length>0){let A=this.unprocessedEvents.shift();if(A){if(this.unprocessedEvents.length===0)this.incompleteData=A;f=nT(A),this.handleEvent(...f)}}this.incompleteData=""}catch(f){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(f)}}),this.process.stderr.on("data",(J)=>{let F=J.toString();this.unprocessedLogs.push(...F.split("\x03"));let W=this.unprocessedLogs.shift();this.incompleteLog+=W??"";try{let f=nT(this.incompleteLog);this.handleLog(f);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)f=nT(this.incompleteLog),this.handleLog(f)}catch(f){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(f),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class NX extends mJ{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new WT,this.out=new WT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class Df extends mJ{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(AT(T.map(($)=>$ instanceof rT?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...$)=>{let S=JSON.stringify([T,...$]);return this.process.stdout.write(S+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let $=T.toString();this.unprocessedEvents.push(...$.split("\x03"));let S=this.unprocessedEvents.shift();this.incompleteData+=S??"";try{let J=nT(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",J),this.handleEvent(...J);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;let W=nT(F);this.handleEvent(...W)}}this.incompleteData=""}catch(J){if(J instanceof Error)this.logger.error("\u2757",J.message,J.cause,J.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let $=new NX(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let S of this.relayServices){let J=S($);if(J)$.disposalFunctions.push(J)}this.on(`user:${T}`,(...S)=>{$.in.next(S)}),$.out.subscribe("socket",(S)=>{this.emit(...S)})}),this.on("user-leaves",(T)=>{let $=this.relays.get(T);if(this.off(`relay:${T}`),$)$.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var Ef=sS({key:"roomArguments",default:["echo",["Hello World!"]]}),CX=W1({key:"room",get:(T)=>async({get:$,find:S})=>{let J=S(Ef,T),F=$(J),[W,f]=F,A=await new Promise((X)=>{let Y=VM(W,f,{env:process.env}),w=(K)=>{if(K.toString()==="ALIVE")Y.stdout.off("data",w),X(Y)};Y.stdout.on("data",w)});return new zf(A,T)}});var $_=cF({key:"createRoom",do:({get:T,set:$,find:S},J,F,W)=>{let f=W?[F,W]:[F],A=S(Ef,J);$(A,f),$(Hf,(w)=>w.add(J));let X=S(CX,J);return T(X)}}),S_=cF({key:"joinRoom",do:(T,$,S,J)=>{let F={enteredAtEpoch:J};return H1(pF,(W)=>{W.set({room:$,user:S},F)},T.env().store),F}}),J_=cF({key:"leaveRoom",do:(T,$,S)=>{H1(pF,(J)=>{J.delete({room:$,user:S})},T.env().store)}}),F_=cF({key:"destroyRoom",do:(T,$)=>{H1(pF,(S)=>{S.delete({room:$})},T.env().store),T.set(Hf,(S)=>(S.delete($),S))}});function Qf(T,$){return $.map((S)=>{switch(S.type){case"transaction_update":{let J=Qf(T,S.updates);return{...S,updates:J}}default:return S}}).filter((S)=>{switch(S.type){case"atom_update":case"selector_update":return T.includes(S.key);case"state_creation":return T.includes(S.token.key);case"molecule_creation":return!0;case"transaction_update":return!0}})}var A_=sS({key:"redactor",default:{occlude:(T)=>T}}),cJ=sS({key:"unacknowledgedUpdates",default:()=>[]});var xX=sS({key:"sockets",default:null}),M_=bJ({key:"socketsIndex",mutable:!0,default:()=>new rT,toJson:(T)=>T.toJSON(),fromJson:(T)=>rT.fromJSON(T)}),O_=bJ({key:"usersIndex",mutable:!0,default:()=>new rT,toJson:(T)=>T.toJSON(),fromJson:(T)=>rT.fromJSON(T)}),Rf=G1({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function jX(T,$,S,J){let F=$.key;return function W(){let f=[];for(let X of $.globals){let Y=X.type==="mutable_atom"?uT(T,X):X,w=HT(T,Y);f.push(Y,w)}for(let X of $.perspectives){let{viewAtoms:Y,resourceAtoms:w}=X,K=a(T,Y,S),M=HT(T,K);T.logger.info("\uD83D\uDC41","atom",w.key,`${S} can see`,{viewAtoms:Y,resourceAtoms:w,userView:M});for(let D of M){let z=D.type==="mutable_atom"?uT(T,D):D,R=HT(T,z);f.push(z,R)}}let A=iT(T)?T.transactionMeta.epoch.get(F)??null:null;J?.emit(`continuity-init:${F}`,A,f)}}function IX(T,$,S){let J=$.key;return function F(W){T.logger.info("\uD83D\uDECE\uFE0F","continuity",J,"received",W);let{key:f,id:A}=W,X=`tx-run:${f}:${A}`,Y=`${X}:start`,w=`${X}:end`;performance.mark(Y);try{vJ({type:"transaction",key:f},A,T)(...W.params)}catch(M){if(M instanceof Error)T.logger.error("\u274C","continuity",J,`failed to run transaction ${f} from ${S} with update ${A}`,M.message)}performance.mark(w);let K=performance.measure(X,Y,w);T?.logger.info("\uD83D\uDE80","transaction",f,A,S,K.duration)}}function ZX(T,$,S,J){let F=$.key;return function W(f){if(T.logger.info("\uD83D\uDC4D","continuity",F,`${S} acknowledged epoch ${f}`),J[0]?.epoch===f)cT(T,cJ,S,(X)=>{return X.shift(),T.logger.info("\uD83D\uDC4D","continuity",F,`${S} unacknowledged update queue now has`,X.length,"items"),X})}}function qX(T,$,S,J){let F=$.key,W=[];for(let f of $.actions){let A=Xf(f,(X)=>{try{let Y=$.globals.map((M)=>{if(M.type==="atom")return M.key;return QS(M).key}).concat($.perspectives.flatMap((M)=>{let{viewAtoms:D}=M,z=a(T,D,S);return HT(T,z).map((L)=>{return L.type==="mutable_atom"?"*"+L.key:L.key})})),w=Qf(Y,X.updates),K={...X,updates:w};cT(T,cJ,S,(M)=>{if(K)M.push(K),M.sort((D,z)=>D.epoch-z.epoch),T.logger.info("\uD83D\uDC4D","continuity",F,`${S} unacknowledged update queue now has`,M.length,"items");return M}),J?.emit(`tx-new:${F}`,K)}catch(Y){if(Y instanceof Error)T.logger.error("\u274C","continuity",F,`${S} failed to send update from transaction ${f.key} to ${S}`,Y.message)}},`sync-continuity:${F}:${S}`,T);W.push(A)}return W}function bX(T,$,S,J){let F=$.key,W=[];for(let f of $.perspectives){let{viewAtoms:A}=f,X=a(T,A,S),Y=G$(X,({oldValue:w,newValue:K})=>{let M=w.map((L)=>L.key),D=K.map((L)=>L.key),z=w.filter((L)=>!D.includes(L.key)),R=K.filter((L)=>!M.includes(L.key)).flatMap((L)=>{let j=L.type==="mutable_atom"?uT(T,L):L,y=HT(T,j);return[j,y]});if(T.logger.info("\uD83D\uDC41","atom",f.resourceAtoms.key,`${S} has a new perspective`,{oldKeys:M,newKeys:D,revealed:R,concealed:z}),R.length>0)J?.emit(`reveal:${F}`,R);if(z.length>0)J?.emit(`conceal:${F}`,z)},`sync-continuity:${F}:${S}:perspective:${f.resourceAtoms.key}`,T);W.push(Y)}return W}function p_({socket:T,store:$=FT.STORE}){return function S(J){let F=T,W=J.key,f=Gf(Rf,`socket::${F.id}`,$).userKeyOfSocket,A=HT($,f);if(!A)return $.logger.error("\u274C","continuity",W,`Tried to create a synchronizer for a socket (${F.id}) that is not connected to a user.`),()=>{};let X=Gf(Rf,A,$).socketKeyOfUser,Y=G$(X,({newValue:j})=>{if($.logger.info("\uD83D\uDC4B","continuity",W,`seeing ${A} on new socket ${j}`),j===null){$.logger.warn("\u274C","continuity",W,`User (${A}) is not connected to a socket, waiting for them to reappear.`);return}let y=a($,xX,j);F=HT($,y);for(let Q of w)F?.emit(`tx-new:${W}`,Q)},`sync-continuity:${W}:${A}`,$),w=HT($,cJ,A),K=[],M=bX($,J,A,F),D=qX($,J,A,F);K.push(...M,...D);let z=jX($,J,A,T);F.off(`get:${W}`,z),F.on(`get:${W}`,z);let R=IX($,J,A);F.off(`tx-run:${W}`,R),F.on(`tx-run:${W}`,R);let L=ZX($,J,A,w);return F?.on(`ack:${W}`,L),()=>{for(let j of K)j();F?.off(`ack:${W}`,L),F?.off(`get:${W}`,z),F?.off(`tx-run:${W}`,R)}}}var vX=Symbol("Let zodToJsonSchema decide on which parser to use");var hX={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},PX=(T)=>typeof T==="string"?{...hX,name:T}:{...hX,...T};var mX=(T)=>{let $=PX(T),S=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:S,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([J,F])=>[F._def,{def:F._def,path:[...$.basePath,$.definitionPath,J],jsonSchema:void 0}]))}};function _f(T,$,S,J){if(!J?.errorMessages)return;if(S)T.errorMessage={...T.errorMessage,[$]:S}}function wT(T,$,S,J,F){T[$]=S,_f(T,$,J,F)}var MT;(function(T){T.assertEqual=(F)=>F;function $(F){}T.assertIs=$;function S(F){throw new Error}T.assertNever=S,T.arrayToEnum=(F)=>{let W={};for(let f of F)W[f]=f;return W},T.getValidEnumValues=(F)=>{let W=T.objectKeys(F).filter((A)=>typeof F[F[A]]!=="number"),f={};for(let A of W)f[A]=F[A];return T.objectValues(f)},T.objectValues=(F)=>{return T.objectKeys(F).map(function(W){return F[W]})},T.objectKeys=typeof Object.keys==="function"?(F)=>Object.keys(F):(F)=>{let W=[];for(let f in F)if(Object.prototype.hasOwnProperty.call(F,f))W.push(f);return W},T.find=(F,W)=>{for(let f of F)if(W(f))return f;return},T.isInteger=typeof Number.isInteger==="function"?(F)=>Number.isInteger(F):(F)=>typeof F==="number"&&isFinite(F)&&Math.floor(F)===F;function J(F,W=" | "){return F.map((f)=>typeof f==="string"?`'${f}'`:f).join(W)}T.joinValues=J,T.jsonStringifyReplacer=(F,W)=>{if(typeof W==="bigint")return W.toString();return W}})(MT||(MT={}));var Uf;(function(T){T.mergeShapes=($,S)=>{return{...$,...S}}})(Uf||(Uf={}));var c=MT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),_S=(T)=>{switch(typeof T){case"undefined":return c.undefined;case"string":return c.string;case"number":return isNaN(T)?c.nan:c.number;case"boolean":return c.boolean;case"function":return c.function;case"bigint":return c.bigint;case"symbol":return c.symbol;case"object":if(Array.isArray(T))return c.array;if(T===null)return c.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return c.promise;if(typeof Map!=="undefined"&&T instanceof Map)return c.map;if(typeof Set!=="undefined"&&T instanceof Set)return c.set;if(typeof Date!=="undefined"&&T instanceof Date)return c.date;return c.object;default:return c.unknown}},C=MT.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"]),BM=(T)=>{return JSON.stringify(T,null,2).replace(/"([^"]+)":/g,"$1:")};class x$ extends Error{get errors(){return this.issues}constructor(T){super();this.issues=[],this.addIssue=(S)=>{this.issues=[...this.issues,S]},this.addIssues=(S=[])=>{this.issues=[...this.issues,...S]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=T}format(T){let $=T||function(F){return F.message},S={_errors:[]},J=(F)=>{for(let W of F.issues)if(W.code==="invalid_union")W.unionErrors.map(J);else if(W.code==="invalid_return_type")J(W.returnTypeError);else if(W.code==="invalid_arguments")J(W.argumentsError);else if(W.path.length===0)S._errors.push($(W));else{let f=S,A=0;while(A<W.path.length){let X=W.path[A];if(A!==W.path.length-1)f[X]=f[X]||{_errors:[]};else f[X]=f[X]||{_errors:[]},f[X]._errors.push($(W));f=f[X],A++}}};return J(this),S}static assert(T){if(!(T instanceof x$))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,MT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=($)=>$.message){let $={},S=[];for(let J of this.issues)if(J.path.length>0)$[J.path[0]]=$[J.path[0]]||[],$[J.path[0]].push(T(J));else S.push(T(J));return{formErrors:S,fieldErrors:$}}get formErrors(){return this.flatten()}}x$.create=(T)=>{return new x$(T)};var oJ=(T,$)=>{let S;switch(T.code){case C.invalid_type:if(T.received===c.undefined)S="Required";else S=`Expected ${T.expected}, received ${T.received}`;break;case C.invalid_literal:S=`Invalid literal value, expected ${JSON.stringify(T.expected,MT.jsonStringifyReplacer)}`;break;case C.unrecognized_keys:S=`Unrecognized key(s) in object: ${MT.joinValues(T.keys,", ")}`;break;case C.invalid_union:S="Invalid input";break;case C.invalid_union_discriminator:S=`Invalid discriminator value. Expected ${MT.joinValues(T.options)}`;break;case C.invalid_enum_value:S=`Invalid enum value. Expected ${MT.joinValues(T.options)}, received '${T.received}'`;break;case C.invalid_arguments:S="Invalid function arguments";break;case C.invalid_return_type:S="Invalid function return type";break;case C.invalid_date:S="Invalid date";break;case C.invalid_string:if(typeof T.validation==="object")if("includes"in T.validation){if(S=`Invalid input: must include "${T.validation.includes}"`,typeof T.validation.position==="number")S=`${S} at one or more positions greater than or equal to ${T.validation.position}`}else if("startsWith"in T.validation)S=`Invalid input: must start with "${T.validation.startsWith}"`;else if("endsWith"in T.validation)S=`Invalid input: must end with "${T.validation.endsWith}"`;else MT.assertNever(T.validation);else if(T.validation!=="regex")S=`Invalid ${T.validation}`;else S="Invalid";break;case C.too_small:if(T.type==="array")S=`Array must contain ${T.exact?"exactly":T.inclusive?"at least":"more than"} ${T.minimum} element(s)`;else if(T.type==="string")S=`String must contain ${T.exact?"exactly":T.inclusive?"at least":"over"} ${T.minimum} character(s)`;else if(T.type==="number")S=`Number must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${T.minimum}`;else if(T.type==="date")S=`Date must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(T.minimum))}`;else S="Invalid input";break;case C.too_big:if(T.type==="array")S=`Array must contain ${T.exact?"exactly":T.inclusive?"at most":"less than"} ${T.maximum} element(s)`;else if(T.type==="string")S=`String must contain ${T.exact?"exactly":T.inclusive?"at most":"under"} ${T.maximum} character(s)`;else if(T.type==="number")S=`Number must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="bigint")S=`BigInt must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="date")S=`Date must be ${T.exact?"exactly":T.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(T.maximum))}`;else S="Invalid input";break;case C.custom:S="Invalid input";break;case C.invalid_intersection_types:S="Intersection results could not be merged";break;case C.not_multiple_of:S=`Number must be a multiple of ${T.multipleOf}`;break;case C.not_finite:S="Number must be finite";break;default:S=$.defaultError,MT.assertNever(T)}return{message:S}},pX=oJ;function yM(T){pX=T}function D1(){return pX}var E1=(T)=>{let{data:$,path:S,errorMaps:J,issueData:F}=T,W=[...S,...F.path||[]],f={...F,path:W};if(F.message!==void 0)return{...F,path:W,message:F.message};let A="",X=J.filter((Y)=>!!Y).slice().reverse();for(let Y of X)A=Y(f,{data:$,defaultError:A}).message;return{...F,path:W,message:A}},LM=[];function v(T,$){let S=D1(),J=E1({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,S,S===oJ?void 0:oJ].filter((F)=>!!F)});T.common.issues.push(J)}class H${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,$){let S=[];for(let J of $){if(J.status==="aborted")return e;if(J.status==="dirty")T.dirty();S.push(J.value)}return{status:T.value,value:S}}static async mergeObjectAsync(T,$){let S=[];for(let J of $){let F=await J.key,W=await J.value;S.push({key:F,value:W})}return H$.mergeObjectSync(T,S)}static mergeObjectSync(T,$){let S={};for(let J of $){let{key:F,value:W}=J;if(F.status==="aborted")return e;if(W.status==="aborted")return e;if(F.status==="dirty")T.dirty();if(W.status==="dirty")T.dirty();if(F.value!=="__proto__"&&(typeof W.value!=="undefined"||J.alwaysSet))S[F.value]=W.value}return{status:T.value,value:S}}}var e=Object.freeze({status:"aborted"}),gJ=(T)=>({status:"dirty",value:T}),Q$=(T)=>({status:"valid",value:T}),Vf=(T)=>T.status==="aborted",Bf=(T)=>T.status==="dirty",JJ=(T)=>T.status==="valid",dF=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function Q1(T,$,S,J){if(S==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!J:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?J:S==="a"?J.call(T):J?J.value:$.get(T)}function oX(T,$,S,J,F){if(J==="m")throw new TypeError("Private method is not writable");if(J==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?F.call(T,S):F?F.value=S:$.set(T,S),S}var o;(function(T){T.errToObj=($)=>typeof $==="string"?{message:$}:$||{},T.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(o||(o={}));var oF,tF;class s${constructor(T,$,S,J){this._cachedPath=[],this.parent=T,this.data=$,this._path=S,this._key=J}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var cX=(T,$)=>{if(JJ($))return{success:!0,data:$.value};else{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 S=new x$(T.common.issues);return this._error=S,this._error}}}};function ST(T){if(!T)return{};let{errorMap:$,invalid_type_error:S,required_error:J,description:F}=T;if($&&(S||J))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:F};return{errorMap:(f,A)=>{var X,Y;let{message:w}=T;if(f.code==="invalid_enum_value")return{message:w!==null&&w!==void 0?w:A.defaultError};if(typeof A.data==="undefined")return{message:(X=w!==null&&w!==void 0?w:J)!==null&&X!==void 0?X:A.defaultError};if(f.code!=="invalid_type")return{message:A.defaultError};return{message:(Y=w!==null&&w!==void 0?w:S)!==null&&Y!==void 0?Y:A.defaultError}},description:F}}class JT{get description(){return this._def.description}_getType(T){return _S(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:_S(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new H$,ctx:{common:T.parent.common,data:T.data,parsedType:_S(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(dF($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(T){let $=this._parse(T);return Promise.resolve($)}parse(T,$){let S=this.safeParse(T,$);if(S.success)return S.data;throw S.error}safeParse(T,$){var S;let J={common:{issues:[],async:(S=$===null||$===void 0?void 0:$.async)!==null&&S!==void 0?S:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:_S(T)},F=this._parseSync({data:T,path:J.path,parent:J});return cX(J,F)}"~validate"(T){var $,S;let J={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:_S(T)};if(!this["~standard"].async)try{let F=this._parseSync({data:T,path:[],parent:J});return JJ(F)?{value:F.value}:{issues:J.common.issues}}catch(F){if((S=($=F===null||F===void 0?void 0:F.message)===null||$===void 0?void 0:$.toLowerCase())===null||S===void 0?void 0:S.includes("encountered"))this["~standard"].async=!0;J.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:J}).then((F)=>JJ(F)?{value:F.value}:{issues:J.common.issues})}async parseAsync(T,$){let S=await this.safeParseAsync(T,$);if(S.success)return S.data;throw S.error}async safeParseAsync(T,$){let S={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:_S(T)},J=this._parse({data:T,path:S.path,parent:S}),F=await(dF(J)?J:Promise.resolve(J));return cX(S,F)}refine(T,$){let S=(J)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(J);else return $};return this._refinement((J,F)=>{let W=T(J),f=()=>F.addIssue({code:C.custom,...S(J)});if(typeof Promise!=="undefined"&&W instanceof Promise)return W.then((A)=>{if(!A)return f(),!1;else return!0});if(!W)return f(),!1;else return!0})}refinement(T,$){return this._refinement((S,J)=>{if(!T(S))return J.addIssue(typeof $==="function"?$(S,J):$),!1;else return!0})}_refinement(T){return new g$({schema:this,typeName:x.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,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:($)=>this["~validate"]($)}}optional(){return j$.create(this,this._def)}nullable(){return kS.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return a$.create(this)}promise(){return AJ.create(this,this._def)}or(T){return iJ.create([this,T],this._def)}and(T){return lJ.create(this,T,this._def)}transform(T){return new g$({...ST(this._def),schema:this,typeName:x.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new eJ({...ST(this._def),innerType:this,defaultValue:$,typeName:x.ZodDefault})}brand(){return new _1({typeName:x.ZodBranded,type:this,...ST(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new TF({...ST(this._def),innerType:this,catchValue:$,typeName:x.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return sF.create(this,T)}readonly(){return $F.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var NM=/^c[^\s-]{8,}$/i,CM=/^[0-9a-z]+$/,xM=/^[0-9A-HJKMNP-TV-Z]{26}$/i,jM=/^[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,IM=/^[a-z0-9_-]{21}$/i,ZM=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,qM=/^[-+]?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)?)??$/,bM=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,hM="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",kf,vM=/^(?:(?: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])$/,PM=/^(?:(?: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])$/,mM=/^(([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]))$/,cM=/^(([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])$/,nM=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,gM=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,tX="((\\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])))",pM=new RegExp(`^${tX}$`);function dX(T){let $="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(T.precision)$=`${$}\\.\\d{${T.precision}}`;else if(T.precision==null)$=`${$}(\\.\\d+)?`;return $}function oM(T){return new RegExp(`^${dX(T)}$`)}function uX(T){let $=`${tX}T${dX(T)}`,S=[];if(S.push(T.local?"Z?":"Z"),T.offset)S.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${S.join("|")})`,new RegExp(`^${$}$`)}function tM(T,$){if(($==="v4"||!$)&&vM.test(T))return!0;if(($==="v6"||!$)&&mM.test(T))return!0;return!1}function dM(T,$){if(!ZM.test(T))return!1;try{let[S]=T.split("."),J=S.replace(/-/g,"+").replace(/_/g,"/").padEnd(S.length+(4-S.length%4)%4,"="),F=JSON.parse(atob(J));if(typeof F!=="object"||F===null)return!1;if(!F.typ||!F.alg)return!1;if($&&F.alg!==$)return!1;return!0}catch(S){return!1}}function uM(T,$){if(($==="v4"||!$)&&PM.test(T))return!0;if(($==="v6"||!$)&&cM.test(T))return!0;return!1}class r$ extends JT{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==c.string){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:c.string,received:F.parsedType}),e}let S=new H$,J=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.length<F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),S.dirty()}else if(F.kind==="max"){if(T.data.length>F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),S.dirty()}else if(F.kind==="length"){let W=T.data.length>F.value,f=T.data.length<F.value;if(W||f){if(J=this._getOrReturnCtx(T,J),W)v(J,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});else if(f)v(J,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});S.dirty()}}else if(F.kind==="email"){if(!bM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"email",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="emoji"){if(!kf)kf=new RegExp(hM,"u");if(!kf.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"emoji",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="uuid"){if(!jM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"uuid",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="nanoid"){if(!IM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"nanoid",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="cuid"){if(!NM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"cuid",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="cuid2"){if(!CM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"cuid2",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="ulid"){if(!xM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"ulid",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="url")try{new URL(T.data)}catch(W){J=this._getOrReturnCtx(T,J),v(J,{validation:"url",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="regex"){if(F.regex.lastIndex=0,!F.regex.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"regex",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="trim")T.data=T.data.trim();else if(F.kind==="includes"){if(!T.data.includes(F.value,F.position))J=this._getOrReturnCtx(T,J),v(J,{code:C.invalid_string,validation:{includes:F.value,position:F.position},message:F.message}),S.dirty()}else if(F.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(F.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(F.kind==="startsWith"){if(!T.data.startsWith(F.value))J=this._getOrReturnCtx(T,J),v(J,{code:C.invalid_string,validation:{startsWith:F.value},message:F.message}),S.dirty()}else if(F.kind==="endsWith"){if(!T.data.endsWith(F.value))J=this._getOrReturnCtx(T,J),v(J,{code:C.invalid_string,validation:{endsWith:F.value},message:F.message}),S.dirty()}else if(F.kind==="datetime"){if(!uX(F).test(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:C.invalid_string,validation:"datetime",message:F.message}),S.dirty()}else if(F.kind==="date"){if(!pM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:C.invalid_string,validation:"date",message:F.message}),S.dirty()}else if(F.kind==="time"){if(!oM(F).test(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:C.invalid_string,validation:"time",message:F.message}),S.dirty()}else if(F.kind==="duration"){if(!qM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"duration",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="ip"){if(!tM(T.data,F.version))J=this._getOrReturnCtx(T,J),v(J,{validation:"ip",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="jwt"){if(!dM(T.data,F.alg))J=this._getOrReturnCtx(T,J),v(J,{validation:"jwt",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="cidr"){if(!uM(T.data,F.version))J=this._getOrReturnCtx(T,J),v(J,{validation:"cidr",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="base64"){if(!nM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"base64",code:C.invalid_string,message:F.message}),S.dirty()}else if(F.kind==="base64url"){if(!gM.test(T.data))J=this._getOrReturnCtx(T,J),v(J,{validation:"base64url",code:C.invalid_string,message:F.message}),S.dirty()}else MT.assertNever(F);return{status:S.value,value:T.data}}_regex(T,$,S){return this.refinement((J)=>T.test(J),{validation:$,code:C.invalid_string,...o.errToObj(S)})}_addCheck(T){return new r$({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...o.errToObj(T)})}url(T){return this._addCheck({kind:"url",...o.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...o.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...o.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...o.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...o.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...o.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...o.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...o.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...o.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...o.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...o.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...o.errToObj(T)})}datetime(T){var $,S;if(typeof T==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T});return this._addCheck({kind:"datetime",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,offset:($=T===null||T===void 0?void 0:T.offset)!==null&&$!==void 0?$:!1,local:(S=T===null||T===void 0?void 0:T.local)!==null&&S!==void 0?S:!1,...o.errToObj(T===null||T===void 0?void 0:T.message)})}date(T){return this._addCheck({kind:"date",message:T})}time(T){if(typeof T==="string")return this._addCheck({kind:"time",precision:null,message:T});return this._addCheck({kind:"time",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,...o.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...o.errToObj(T)})}regex(T,$){return this._addCheck({kind:"regex",regex:T,...o.errToObj($)})}includes(T,$){return this._addCheck({kind:"includes",value:T,position:$===null||$===void 0?void 0:$.position,...o.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(T,$){return this._addCheck({kind:"startsWith",value:T,...o.errToObj($)})}endsWith(T,$){return this._addCheck({kind:"endsWith",value:T,...o.errToObj($)})}min(T,$){return this._addCheck({kind:"min",value:T,...o.errToObj($)})}max(T,$){return this._addCheck({kind:"max",value:T,...o.errToObj($)})}length(T,$){return this._addCheck({kind:"length",value:T,...o.errToObj($)})}nonempty(T){return this.min(1,o.errToObj(T))}trim(){return new r$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new r$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new r$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((T)=>T.kind==="datetime")}get isDate(){return!!this._def.checks.find((T)=>T.kind==="date")}get isTime(){return!!this._def.checks.find((T)=>T.kind==="time")}get isDuration(){return!!this._def.checks.find((T)=>T.kind==="duration")}get isEmail(){return!!this._def.checks.find((T)=>T.kind==="email")}get isURL(){return!!this._def.checks.find((T)=>T.kind==="url")}get isEmoji(){return!!this._def.checks.find((T)=>T.kind==="emoji")}get isUUID(){return!!this._def.checks.find((T)=>T.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((T)=>T.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((T)=>T.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((T)=>T.kind==="cuid2")}get isULID(){return!!this._def.checks.find((T)=>T.kind==="ulid")}get isIP(){return!!this._def.checks.find((T)=>T.kind==="ip")}get isCIDR(){return!!this._def.checks.find((T)=>T.kind==="cidr")}get isBase64(){return!!this._def.checks.find((T)=>T.kind==="base64")}get isBase64url(){return!!this._def.checks.find((T)=>T.kind==="base64url")}get minLength(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxLength(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}r$.create=(T)=>{var $;return new r$({checks:[],typeName:x.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...ST(T)})};function iM(T,$){let S=(T.toString().split(".")[1]||"").length,J=($.toString().split(".")[1]||"").length,F=S>J?S:J,W=parseInt(T.toFixed(F).replace(".","")),f=parseInt($.toFixed(F).replace(".",""));return W%f/Math.pow(10,F)}class cS extends JT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==c.number){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:c.number,received:F.parsedType}),e}let S=void 0,J=new H$;for(let F of this._def.checks)if(F.kind==="int"){if(!MT.isInteger(T.data))S=this._getOrReturnCtx(T,S),v(S,{code:C.invalid_type,expected:"integer",received:"float",message:F.message}),J.dirty()}else if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)S=this._getOrReturnCtx(T,S),v(S,{code:C.too_small,minimum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)S=this._getOrReturnCtx(T,S),v(S,{code:C.too_big,maximum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="multipleOf"){if(iM(T.data,F.value)!==0)S=this._getOrReturnCtx(T,S),v(S,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),J.dirty()}else if(F.kind==="finite"){if(!Number.isFinite(T.data))S=this._getOrReturnCtx(T,S),v(S,{code:C.not_finite,message:F.message}),J.dirty()}else MT.assertNever(F);return{status:J.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,o.toString($))}gt(T,$){return this.setLimit("min",T,!1,o.toString($))}lte(T,$){return this.setLimit("max",T,!0,o.toString($))}lt(T,$){return this.setLimit("max",T,!1,o.toString($))}setLimit(T,$,S,J){return new cS({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:S,message:o.toString(J)}]})}_addCheck(T){return new cS({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:o.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:o.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:o.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:o.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:o.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:o.toString($)})}finite(T){return this._addCheck({kind:"finite",message:o.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:o.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:o.toString(T)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}get isInt(){return!!this._def.checks.find((T)=>T.kind==="int"||T.kind==="multipleOf"&&MT.isInteger(T.value))}get isFinite(){let T=null,$=null;for(let S of this._def.checks)if(S.kind==="finite"||S.kind==="int"||S.kind==="multipleOf")return!0;else if(S.kind==="min"){if($===null||S.value>$)$=S.value}else if(S.kind==="max"){if(T===null||S.value<T)T=S.value}return Number.isFinite($)&&Number.isFinite(T)}}cS.create=(T)=>{return new cS({checks:[],typeName:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...ST(T)})};class nS extends JT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(F){return this._getInvalidInput(T)}if(this._getType(T)!==c.bigint)return this._getInvalidInput(T);let S=void 0,J=new H$;for(let F of this._def.checks)if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)S=this._getOrReturnCtx(T,S),v(S,{code:C.too_small,type:"bigint",minimum:F.value,inclusive:F.inclusive,message:F.message}),J.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)S=this._getOrReturnCtx(T,S),v(S,{code:C.too_big,type:"bigint",maximum:F.value,inclusive:F.inclusive,message:F.message}),J.dirty()}else if(F.kind==="multipleOf"){if(T.data%F.value!==BigInt(0))S=this._getOrReturnCtx(T,S),v(S,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),J.dirty()}else MT.assertNever(F);return{status:J.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:c.bigint,received:$.parsedType}),e}gte(T,$){return this.setLimit("min",T,!0,o.toString($))}gt(T,$){return this.setLimit("min",T,!1,o.toString($))}lte(T,$){return this.setLimit("max",T,!0,o.toString($))}lt(T,$){return this.setLimit("max",T,!1,o.toString($))}setLimit(T,$,S,J){return new nS({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:S,message:o.toString(J)}]})}_addCheck(T){return new nS({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:o.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:o.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:o.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:o.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:o.toString($)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}nS.create=(T)=>{var $;return new nS({checks:[],typeName:x.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...ST(T)})};class tJ extends JT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==c.boolean){let S=this._getOrReturnCtx(T);return v(S,{code:C.invalid_type,expected:c.boolean,received:S.parsedType}),e}return Q$(T.data)}}tJ.create=(T)=>{return new tJ({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...ST(T)})};class FJ extends JT{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==c.date){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:c.date,received:F.parsedType}),e}if(isNaN(T.data.getTime())){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_date}),e}let S=new H$,J=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.getTime()<F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_small,message:F.message,inclusive:!0,exact:!1,minimum:F.value,type:"date"}),S.dirty()}else if(F.kind==="max"){if(T.data.getTime()>F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_big,message:F.message,inclusive:!0,exact:!1,maximum:F.value,type:"date"}),S.dirty()}else MT.assertNever(F);return{status:S.value,value:new Date(T.data.getTime())}}_addCheck(T){return new FJ({...this._def,checks:[...this._def.checks,T]})}min(T,$){return this._addCheck({kind:"min",value:T.getTime(),message:o.toString($)})}max(T,$){return this._addCheck({kind:"max",value:T.getTime(),message:o.toString($)})}get minDate(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T!=null?new Date(T):null}get maxDate(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T!=null?new Date(T):null}}FJ.create=(T)=>{return new FJ({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:x.ZodDate,...ST(T)})};class uF extends JT{_parse(T){if(this._getType(T)!==c.symbol){let S=this._getOrReturnCtx(T);return v(S,{code:C.invalid_type,expected:c.symbol,received:S.parsedType}),e}return Q$(T.data)}}uF.create=(T)=>{return new uF({typeName:x.ZodSymbol,...ST(T)})};class dJ extends JT{_parse(T){if(this._getType(T)!==c.undefined){let S=this._getOrReturnCtx(T);return v(S,{code:C.invalid_type,expected:c.undefined,received:S.parsedType}),e}return Q$(T.data)}}dJ.create=(T)=>{return new dJ({typeName:x.ZodUndefined,...ST(T)})};class uJ extends JT{_parse(T){if(this._getType(T)!==c.null){let S=this._getOrReturnCtx(T);return v(S,{code:C.invalid_type,expected:c.null,received:S.parsedType}),e}return Q$(T.data)}}uJ.create=(T)=>{return new uJ({typeName:x.ZodNull,...ST(T)})};class WJ extends JT{constructor(){super(...arguments);this._any=!0}_parse(T){return Q$(T.data)}}WJ.create=(T)=>{return new WJ({typeName:x.ZodAny,...ST(T)})};class mS extends JT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return Q$(T.data)}}mS.create=(T)=>{return new mS({typeName:x.ZodUnknown,...ST(T)})};class wS extends JT{_parse(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:c.never,received:$.parsedType}),e}}wS.create=(T)=>{return new wS({typeName:x.ZodNever,...ST(T)})};class iF extends JT{_parse(T){if(this._getType(T)!==c.undefined){let S=this._getOrReturnCtx(T);return v(S,{code:C.invalid_type,expected:c.void,received:S.parsedType}),e}return Q$(T.data)}}iF.create=(T)=>{return new iF({typeName:x.ZodVoid,...ST(T)})};class a$ extends JT{_parse(T){let{ctx:$,status:S}=this._processInputParams(T),J=this._def;if($.parsedType!==c.array)return v($,{code:C.invalid_type,expected:c.array,received:$.parsedType}),e;if(J.exactLength!==null){let W=$.data.length>J.exactLength.value,f=$.data.length<J.exactLength.value;if(W||f)v($,{code:W?C.too_big:C.too_small,minimum:f?J.exactLength.value:void 0,maximum:W?J.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:J.exactLength.message}),S.dirty()}if(J.minLength!==null){if($.data.length<J.minLength.value)v($,{code:C.too_small,minimum:J.minLength.value,type:"array",inclusive:!0,exact:!1,message:J.minLength.message}),S.dirty()}if(J.maxLength!==null){if($.data.length>J.maxLength.value)v($,{code:C.too_big,maximum:J.maxLength.value,type:"array",inclusive:!0,exact:!1,message:J.maxLength.message}),S.dirty()}if($.common.async)return Promise.all([...$.data].map((W,f)=>{return J.type._parseAsync(new s$($,W,$.path,f))})).then((W)=>{return H$.mergeArray(S,W)});let F=[...$.data].map((W,f)=>{return J.type._parseSync(new s$($,W,$.path,f))});return H$.mergeArray(S,F)}get element(){return this._def.type}min(T,$){return new a$({...this._def,minLength:{value:T,message:o.toString($)}})}max(T,$){return new a$({...this._def,maxLength:{value:T,message:o.toString($)}})}length(T,$){return new a$({...this._def,exactLength:{value:T,message:o.toString($)}})}nonempty(T){return this.min(1,T)}}a$.create=(T,$)=>{return new a$({type:T,minLength:null,maxLength:null,exactLength:null,typeName:x.ZodArray,...ST($)})};function nJ(T){if(T instanceof qT){let $={};for(let S in T.shape){let J=T.shape[S];$[S]=j$.create(nJ(J))}return new qT({...T._def,shape:()=>$})}else if(T instanceof a$)return new a$({...T._def,type:nJ(T.element)});else if(T instanceof j$)return j$.create(nJ(T.unwrap()));else if(T instanceof kS)return kS.create(nJ(T.unwrap()));else if(T instanceof KS)return KS.create(T.items.map(($)=>nJ($)));else return T}class qT extends JT{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let T=this._def.shape(),$=MT.objectKeys(T);return this._cached={shape:T,keys:$}}_parse(T){if(this._getType(T)!==c.object){let X=this._getOrReturnCtx(T);return v(X,{code:C.invalid_type,expected:c.object,received:X.parsedType}),e}let{status:S,ctx:J}=this._processInputParams(T),{shape:F,keys:W}=this._getCached(),f=[];if(!(this._def.catchall instanceof wS&&this._def.unknownKeys==="strip")){for(let X in J.data)if(!W.includes(X))f.push(X)}let A=[];for(let X of W){let Y=F[X],w=J.data[X];A.push({key:{status:"valid",value:X},value:Y._parse(new s$(J,w,J.path,X)),alwaysSet:X in J.data})}if(this._def.catchall instanceof wS){let X=this._def.unknownKeys;if(X==="passthrough")for(let Y of f)A.push({key:{status:"valid",value:Y},value:{status:"valid",value:J.data[Y]}});else if(X==="strict"){if(f.length>0)v(J,{code:C.unrecognized_keys,keys:f}),S.dirty()}else if(X==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let X=this._def.catchall;for(let Y of f){let w=J.data[Y];A.push({key:{status:"valid",value:Y},value:X._parse(new s$(J,w,J.path,Y)),alwaysSet:Y in J.data})}}if(J.common.async)return Promise.resolve().then(async()=>{let X=[];for(let Y of A){let w=await Y.key,K=await Y.value;X.push({key:w,value:K,alwaysSet:Y.alwaysSet})}return X}).then((X)=>{return H$.mergeObjectSync(S,X)});else return H$.mergeObjectSync(S,A)}get shape(){return this._def.shape()}strict(T){return o.errToObj,new qT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,S)=>{var J,F,W,f;let A=(W=(F=(J=this._def).errorMap)===null||F===void 0?void 0:F.call(J,$,S).message)!==null&&W!==void 0?W:S.defaultError;if($.code==="unrecognized_keys")return{message:(f=o.errToObj(T).message)!==null&&f!==void 0?f:A};return{message:A}}}:{}})}strip(){return new qT({...this._def,unknownKeys:"strip"})}passthrough(){return new qT({...this._def,unknownKeys:"passthrough"})}extend(T){return new qT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new qT({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:x.ZodObject})}setKey(T,$){return this.augment({[T]:$})}catchall(T){return new qT({...this._def,catchall:T})}pick(T){let $={};return MT.objectKeys(T).forEach((S)=>{if(T[S]&&this.shape[S])$[S]=this.shape[S]}),new qT({...this._def,shape:()=>$})}omit(T){let $={};return MT.objectKeys(this.shape).forEach((S)=>{if(!T[S])$[S]=this.shape[S]}),new qT({...this._def,shape:()=>$})}deepPartial(){return nJ(this)}partial(T){let $={};return MT.objectKeys(this.shape).forEach((S)=>{let J=this.shape[S];if(T&&!T[S])$[S]=J;else $[S]=J.optional()}),new qT({...this._def,shape:()=>$})}required(T){let $={};return MT.objectKeys(this.shape).forEach((S)=>{if(T&&!T[S])$[S]=this.shape[S];else{let F=this.shape[S];while(F instanceof j$)F=F._def.innerType;$[S]=F}}),new qT({...this._def,shape:()=>$})}keyof(){return iX(MT.objectKeys(this.shape))}}qT.create=(T,$)=>{return new qT({shape:()=>T,unknownKeys:"strip",catchall:wS.create(),typeName:x.ZodObject,...ST($)})};qT.strictCreate=(T,$)=>{return new qT({shape:()=>T,unknownKeys:"strict",catchall:wS.create(),typeName:x.ZodObject,...ST($)})};qT.lazycreate=(T,$)=>{return new qT({shape:T,unknownKeys:"strip",catchall:wS.create(),typeName:x.ZodObject,...ST($)})};class iJ extends JT{_parse(T){let{ctx:$}=this._processInputParams(T),S=this._def.options;function J(F){for(let f of F)if(f.result.status==="valid")return f.result;for(let f of F)if(f.result.status==="dirty")return $.common.issues.push(...f.ctx.common.issues),f.result;let W=F.map((f)=>new x$(f.ctx.common.issues));return v($,{code:C.invalid_union,unionErrors:W}),e}if($.common.async)return Promise.all(S.map(async(F)=>{let W={...$,common:{...$.common,issues:[]},parent:null};return{result:await F._parseAsync({data:$.data,path:$.path,parent:W}),ctx:W}})).then(J);else{let F=void 0,W=[];for(let A of S){let X={...$,common:{...$.common,issues:[]},parent:null},Y=A._parseSync({data:$.data,path:$.path,parent:X});if(Y.status==="valid")return Y;else if(Y.status==="dirty"&&!F)F={result:Y,ctx:X};if(X.common.issues.length)W.push(X.common.issues)}if(F)return $.common.issues.push(...F.ctx.common.issues),F.result;let f=W.map((A)=>new x$(A));return v($,{code:C.invalid_union,unionErrors:f}),e}}get options(){return this._def.options}}iJ.create=(T,$)=>{return new iJ({options:T,typeName:x.ZodUnion,...ST($)})};var RS=(T)=>{if(T instanceof rJ)return RS(T.schema);else if(T instanceof g$)return RS(T.innerType());else if(T instanceof aJ)return[T.value];else if(T instanceof gS)return T.options;else if(T instanceof sJ)return MT.objectValues(T.enum);else if(T instanceof eJ)return RS(T._def.innerType);else if(T instanceof dJ)return[void 0];else if(T instanceof uJ)return[null];else if(T instanceof j$)return[void 0,...RS(T.unwrap())];else if(T instanceof kS)return[null,...RS(T.unwrap())];else if(T instanceof _1)return RS(T.unwrap());else if(T instanceof $F)return RS(T.unwrap());else if(T instanceof TF)return RS(T._def.innerType);else return[]};class R1 extends JT{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==c.object)return v($,{code:C.invalid_type,expected:c.object,received:$.parsedType}),e;let S=this.discriminator,J=$.data[S],F=this.optionsMap.get(J);if(!F)return v($,{code:C.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[S]}),e;if($.common.async)return F._parseAsync({data:$.data,path:$.path,parent:$});else return F._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(T,$,S){let J=new Map;for(let F of $){let W=RS(F.shape[T]);if(!W.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let f of W){if(J.has(f))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(f)}`);J.set(f,F)}}return new R1({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:J,...ST(S)})}}function yf(T,$){let S=_S(T),J=_S($);if(T===$)return{valid:!0,data:T};else if(S===c.object&&J===c.object){let F=MT.objectKeys($),W=MT.objectKeys(T).filter((A)=>F.indexOf(A)!==-1),f={...T,...$};for(let A of W){let X=yf(T[A],$[A]);if(!X.valid)return{valid:!1};f[A]=X.data}return{valid:!0,data:f}}else if(S===c.array&&J===c.array){if(T.length!==$.length)return{valid:!1};let F=[];for(let W=0;W<T.length;W++){let f=T[W],A=$[W],X=yf(f,A);if(!X.valid)return{valid:!1};F.push(X.data)}return{valid:!0,data:F}}else if(S===c.date&&J===c.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class lJ extends JT{_parse(T){let{status:$,ctx:S}=this._processInputParams(T),J=(F,W)=>{if(Vf(F)||Vf(W))return e;let f=yf(F.value,W.value);if(!f.valid)return v(S,{code:C.invalid_intersection_types}),e;if(Bf(F)||Bf(W))$.dirty();return{status:$.value,value:f.data}};if(S.common.async)return Promise.all([this._def.left._parseAsync({data:S.data,path:S.path,parent:S}),this._def.right._parseAsync({data:S.data,path:S.path,parent:S})]).then(([F,W])=>J(F,W));else return J(this._def.left._parseSync({data:S.data,path:S.path,parent:S}),this._def.right._parseSync({data:S.data,path:S.path,parent:S}))}}lJ.create=(T,$,S)=>{return new lJ({left:T,right:$,typeName:x.ZodIntersection,...ST(S)})};class KS extends JT{_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.parsedType!==c.array)return v(S,{code:C.invalid_type,expected:c.array,received:S.parsedType}),e;if(S.data.length<this._def.items.length)return v(S,{code:C.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),e;if(!this._def.rest&&S.data.length>this._def.items.length)v(S,{code:C.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let F=[...S.data].map((W,f)=>{let A=this._def.items[f]||this._def.rest;if(!A)return null;return A._parse(new s$(S,W,S.path,f))}).filter((W)=>!!W);if(S.common.async)return Promise.all(F).then((W)=>{return H$.mergeArray($,W)});else return H$.mergeArray($,F)}get items(){return this._def.items}rest(T){return new KS({...this._def,rest:T})}}KS.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new KS({items:T,typeName:x.ZodTuple,rest:null,...ST($)})};class lF extends JT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.parsedType!==c.object)return v(S,{code:C.invalid_type,expected:c.object,received:S.parsedType}),e;let J=[],F=this._def.keyType,W=this._def.valueType;for(let f in S.data)J.push({key:F._parse(new s$(S,f,S.path,f)),value:W._parse(new s$(S,S.data[f],S.path,f)),alwaysSet:f in S.data});if(S.common.async)return H$.mergeObjectAsync($,J);else return H$.mergeObjectSync($,J)}get element(){return this._def.valueType}static create(T,$,S){if($ instanceof JT)return new lF({keyType:T,valueType:$,typeName:x.ZodRecord,...ST(S)});return new lF({keyType:r$.create(),valueType:T,typeName:x.ZodRecord,...ST($)})}}class rF extends JT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.parsedType!==c.map)return v(S,{code:C.invalid_type,expected:c.map,received:S.parsedType}),e;let J=this._def.keyType,F=this._def.valueType,W=[...S.data.entries()].map(([f,A],X)=>{return{key:J._parse(new s$(S,f,S.path,[X,"key"])),value:F._parse(new s$(S,A,S.path,[X,"value"]))}});if(S.common.async){let f=new Map;return Promise.resolve().then(async()=>{for(let A of W){let X=await A.key,Y=await A.value;if(X.status==="aborted"||Y.status==="aborted")return e;if(X.status==="dirty"||Y.status==="dirty")$.dirty();f.set(X.value,Y.value)}return{status:$.value,value:f}})}else{let f=new Map;for(let A of W){let{key:X,value:Y}=A;if(X.status==="aborted"||Y.status==="aborted")return e;if(X.status==="dirty"||Y.status==="dirty")$.dirty();f.set(X.value,Y.value)}return{status:$.value,value:f}}}}rF.create=(T,$,S)=>{return new rF({valueType:$,keyType:T,typeName:x.ZodMap,...ST(S)})};class fJ extends JT{_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.parsedType!==c.set)return v(S,{code:C.invalid_type,expected:c.set,received:S.parsedType}),e;let J=this._def;if(J.minSize!==null){if(S.data.size<J.minSize.value)v(S,{code:C.too_small,minimum:J.minSize.value,type:"set",inclusive:!0,exact:!1,message:J.minSize.message}),$.dirty()}if(J.maxSize!==null){if(S.data.size>J.maxSize.value)v(S,{code:C.too_big,maximum:J.maxSize.value,type:"set",inclusive:!0,exact:!1,message:J.maxSize.message}),$.dirty()}let F=this._def.valueType;function W(A){let X=new Set;for(let Y of A){if(Y.status==="aborted")return e;if(Y.status==="dirty")$.dirty();X.add(Y.value)}return{status:$.value,value:X}}let f=[...S.data.values()].map((A,X)=>F._parse(new s$(S,A,S.path,X)));if(S.common.async)return Promise.all(f).then((A)=>W(A));else return W(f)}min(T,$){return new fJ({...this._def,minSize:{value:T,message:o.toString($)}})}max(T,$){return new fJ({...this._def,maxSize:{value:T,message:o.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}fJ.create=(T,$)=>{return new fJ({valueType:T,minSize:null,maxSize:null,typeName:x.ZodSet,...ST($)})};class pJ extends JT{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==c.function)return v($,{code:C.invalid_type,expected:c.function,received:$.parsedType}),e;function S(f,A){return E1({data:f,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,D1(),oJ].filter((X)=>!!X),issueData:{code:C.invalid_arguments,argumentsError:A}})}function J(f,A){return E1({data:f,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,D1(),oJ].filter((X)=>!!X),issueData:{code:C.invalid_return_type,returnTypeError:A}})}let F={errorMap:$.common.contextualErrorMap},W=$.data;if(this._def.returns instanceof AJ){let f=this;return Q$(async function(...A){let X=new x$([]),Y=await f._def.args.parseAsync(A,F).catch((M)=>{throw X.addIssue(S(A,M)),X}),w=await Reflect.apply(W,this,Y);return await f._def.returns._def.type.parseAsync(w,F).catch((M)=>{throw X.addIssue(J(w,M)),X})})}else{let f=this;return Q$(function(...A){let X=f._def.args.safeParse(A,F);if(!X.success)throw new x$([S(A,X.error)]);let Y=Reflect.apply(W,this,X.data),w=f._def.returns.safeParse(Y,F);if(!w.success)throw new x$([J(Y,w.error)]);return w.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new pJ({...this._def,args:KS.create(T).rest(mS.create())})}returns(T){return new pJ({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,S){return new pJ({args:T?T:KS.create([]).rest(mS.create()),returns:$||mS.create(),typeName:x.ZodFunction,...ST(S)})}}class rJ extends JT{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}rJ.create=(T,$)=>{return new rJ({getter:T,typeName:x.ZodLazy,...ST($)})};class aJ extends JT{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return v($,{received:$.data,code:C.invalid_literal,expected:this._def.value}),e}return{status:"valid",value:T.data}}get value(){return this._def.value}}aJ.create=(T,$)=>{return new aJ({value:T,typeName:x.ZodLiteral,...ST($)})};function iX(T,$){return new gS({values:T,typeName:x.ZodEnum,...ST($)})}class gS extends JT{constructor(){super(...arguments);oF.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let $=this._getOrReturnCtx(T),S=this._def.values;return v($,{expected:MT.joinValues(S),received:$.parsedType,code:C.invalid_type}),e}if(!Q1(this,oF,"f"))oX(this,oF,new Set(this._def.values),"f");if(!Q1(this,oF,"f").has(T.data)){let $=this._getOrReturnCtx(T),S=this._def.values;return v($,{received:$.data,code:C.invalid_enum_value,options:S}),e}return Q$(T.data)}get options(){return this._def.values}get enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Values(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}extract(T,$=this._def){return gS.create(T,{...this._def,...$})}exclude(T,$=this._def){return gS.create(this.options.filter((S)=>!T.includes(S)),{...this._def,...$})}}oF=new WeakMap;gS.create=iX;class sJ extends JT{constructor(){super(...arguments);tF.set(this,void 0)}_parse(T){let $=MT.getValidEnumValues(this._def.values),S=this._getOrReturnCtx(T);if(S.parsedType!==c.string&&S.parsedType!==c.number){let J=MT.objectValues($);return v(S,{expected:MT.joinValues(J),received:S.parsedType,code:C.invalid_type}),e}if(!Q1(this,tF,"f"))oX(this,tF,new Set(MT.getValidEnumValues(this._def.values)),"f");if(!Q1(this,tF,"f").has(T.data)){let J=MT.objectValues($);return v(S,{received:S.data,code:C.invalid_enum_value,options:J}),e}return Q$(T.data)}get enum(){return this._def.values}}tF=new WeakMap;sJ.create=(T,$)=>{return new sJ({values:T,typeName:x.ZodNativeEnum,...ST($)})};class AJ extends JT{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==c.promise&&$.common.async===!1)return v($,{code:C.invalid_type,expected:c.promise,received:$.parsedType}),e;let S=$.parsedType===c.promise?$.data:Promise.resolve($.data);return Q$(S.then((J)=>{return this._def.type.parseAsync(J,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}AJ.create=(T,$)=>{return new AJ({type:T,typeName:x.ZodPromise,...ST($)})};class g$ extends JT{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===x.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:$,ctx:S}=this._processInputParams(T),J=this._def.effect||null,F={addIssue:(W)=>{if(v(S,W),W.fatal)$.abort();else $.dirty()},get path(){return S.path}};if(F.addIssue=F.addIssue.bind(F),J.type==="preprocess"){let W=J.transform(S.data,F);if(S.common.async)return Promise.resolve(W).then(async(f)=>{if($.value==="aborted")return e;let A=await this._def.schema._parseAsync({data:f,path:S.path,parent:S});if(A.status==="aborted")return e;if(A.status==="dirty")return gJ(A.value);if($.value==="dirty")return gJ(A.value);return A});else{if($.value==="aborted")return e;let f=this._def.schema._parseSync({data:W,path:S.path,parent:S});if(f.status==="aborted")return e;if(f.status==="dirty")return gJ(f.value);if($.value==="dirty")return gJ(f.value);return f}}if(J.type==="refinement"){let W=(f)=>{let A=J.refinement(f,F);if(S.common.async)return Promise.resolve(A);if(A instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return f};if(S.common.async===!1){let f=this._def.schema._parseSync({data:S.data,path:S.path,parent:S});if(f.status==="aborted")return e;if(f.status==="dirty")$.dirty();return W(f.value),{status:$.value,value:f.value}}else return this._def.schema._parseAsync({data:S.data,path:S.path,parent:S}).then((f)=>{if(f.status==="aborted")return e;if(f.status==="dirty")$.dirty();return W(f.value).then(()=>{return{status:$.value,value:f.value}})})}if(J.type==="transform")if(S.common.async===!1){let W=this._def.schema._parseSync({data:S.data,path:S.path,parent:S});if(!JJ(W))return W;let f=J.transform(W.value,F);if(f instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:f}}else return this._def.schema._parseAsync({data:S.data,path:S.path,parent:S}).then((W)=>{if(!JJ(W))return W;return Promise.resolve(J.transform(W.value,F)).then((f)=>({status:$.value,value:f}))});MT.assertNever(J)}}g$.create=(T,$,S)=>{return new g$({schema:T,typeName:x.ZodEffects,effect:$,...ST(S)})};g$.createWithPreprocess=(T,$,S)=>{return new g$({schema:$,effect:{type:"preprocess",transform:T},typeName:x.ZodEffects,...ST(S)})};class j$ extends JT{_parse(T){if(this._getType(T)===c.undefined)return Q$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}j$.create=(T,$)=>{return new j$({innerType:T,typeName:x.ZodOptional,...ST($)})};class kS extends JT{_parse(T){if(this._getType(T)===c.null)return Q$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}kS.create=(T,$)=>{return new kS({innerType:T,typeName:x.ZodNullable,...ST($)})};class eJ extends JT{_parse(T){let{ctx:$}=this._processInputParams(T),S=$.data;if($.parsedType===c.undefined)S=this._def.defaultValue();return this._def.innerType._parse({data:S,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}eJ.create=(T,$)=>{return new eJ({innerType:T,typeName:x.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...ST($)})};class TF extends JT{_parse(T){let{ctx:$}=this._processInputParams(T),S={...$,common:{...$.common,issues:[]}},J=this._def.innerType._parse({data:S.data,path:S.path,parent:{...S}});if(dF(J))return J.then((F)=>{return{status:"valid",value:F.status==="valid"?F.value:this._def.catchValue({get error(){return new x$(S.common.issues)},input:S.data})}});else return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new x$(S.common.issues)},input:S.data})}}removeCatch(){return this._def.innerType}}TF.create=(T,$)=>{return new TF({innerType:T,typeName:x.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...ST($)})};class aF extends JT{_parse(T){if(this._getType(T)!==c.nan){let S=this._getOrReturnCtx(T);return v(S,{code:C.invalid_type,expected:c.nan,received:S.parsedType}),e}return{status:"valid",value:T.data}}}aF.create=(T)=>{return new aF({typeName:x.ZodNaN,...ST(T)})};var lM=Symbol("zod_brand");class _1 extends JT{_parse(T){let{ctx:$}=this._processInputParams(T),S=$.data;return this._def.type._parse({data:S,path:$.path,parent:$})}unwrap(){return this._def.type}}class sF extends JT{_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.common.async)return(async()=>{let F=await this._def.in._parseAsync({data:S.data,path:S.path,parent:S});if(F.status==="aborted")return e;if(F.status==="dirty")return $.dirty(),gJ(F.value);else return this._def.out._parseAsync({data:F.value,path:S.path,parent:S})})();else{let J=this._def.in._parseSync({data:S.data,path:S.path,parent:S});if(J.status==="aborted")return e;if(J.status==="dirty")return $.dirty(),{status:"dirty",value:J.value};else return this._def.out._parseSync({data:J.value,path:S.path,parent:S})}}static create(T,$){return new sF({in:T,out:$,typeName:x.ZodPipeline})}}class $F extends JT{_parse(T){let $=this._def.innerType._parse(T),S=(J)=>{if(JJ(J))J.value=Object.freeze(J.value);return J};return dF($)?$.then((J)=>S(J)):S($)}unwrap(){return this._def.innerType}}$F.create=(T,$)=>{return new $F({innerType:T,typeName:x.ZodReadonly,...ST($)})};function nX(T,$){let S=typeof T==="function"?T($):typeof T==="string"?{message:T}:T;return typeof S==="string"?{message:S}:S}function lX(T,$={},S){if(T)return WJ.create().superRefine((J,F)=>{var W,f;let A=T(J);if(A instanceof Promise)return A.then((X)=>{var Y,w;if(!X){let K=nX($,J),M=(w=(Y=K.fatal)!==null&&Y!==void 0?Y:S)!==null&&w!==void 0?w:!0;F.addIssue({code:"custom",...K,fatal:M})}});if(!A){let X=nX($,J),Y=(f=(W=X.fatal)!==null&&W!==void 0?W:S)!==null&&f!==void 0?f:!0;F.addIssue({code:"custom",...X,fatal:Y})}return});return WJ.create()}var rM={object:qT.lazycreate},x;(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"})(x||(x={}));var aM=(T,$={message:`Input not instance of ${T.name}`})=>lX((S)=>S instanceof T,$),rX=r$.create,aX=cS.create,sM=aF.create,eM=nS.create,sX=tJ.create,T7=FJ.create,$7=uF.create,S7=dJ.create,J7=uJ.create,F7=WJ.create,W7=mS.create,f7=wS.create,A7=iF.create,X7=a$.create,Y7=qT.create,w7=qT.strictCreate,K7=iJ.create,M7=R1.create,O7=lJ.create,G7=KS.create,H7=lF.create,z7=rF.create,D7=fJ.create,E7=pJ.create,Q7=rJ.create,R7=aJ.create,_7=gS.create,k7=sJ.create,U7=AJ.create,gX=g$.create,V7=j$.create,B7=kS.create,y7=g$.createWithPreprocess,L7=sF.create,N7=()=>rX().optional(),C7=()=>aX().optional(),x7=()=>sX().optional(),j7={string:(T)=>r$.create({...T,coerce:!0}),number:(T)=>cS.create({...T,coerce:!0}),boolean:(T)=>tJ.create({...T,coerce:!0}),bigint:(T)=>nS.create({...T,coerce:!0}),date:(T)=>FJ.create({...T,coerce:!0})},I7=e,_T=Object.freeze({__proto__:null,defaultErrorMap:oJ,setErrorMap:yM,getErrorMap:D1,makeIssue:E1,EMPTY_PATH:LM,addIssueToContext:v,ParseStatus:H$,INVALID:e,DIRTY:gJ,OK:Q$,isAborted:Vf,isDirty:Bf,isValid:JJ,isAsync:dF,get util(){return MT},get objectUtil(){return Uf},ZodParsedType:c,getParsedType:_S,ZodType:JT,datetimeRegex:uX,ZodString:r$,ZodNumber:cS,ZodBigInt:nS,ZodBoolean:tJ,ZodDate:FJ,ZodSymbol:uF,ZodUndefined:dJ,ZodNull:uJ,ZodAny:WJ,ZodUnknown:mS,ZodNever:wS,ZodVoid:iF,ZodArray:a$,ZodObject:qT,ZodUnion:iJ,ZodDiscriminatedUnion:R1,ZodIntersection:lJ,ZodTuple:KS,ZodRecord:lF,ZodMap:rF,ZodSet:fJ,ZodFunction:pJ,ZodLazy:rJ,ZodLiteral:aJ,ZodEnum:gS,ZodNativeEnum:sJ,ZodPromise:AJ,ZodEffects:g$,ZodTransformer:g$,ZodOptional:j$,ZodNullable:kS,ZodDefault:eJ,ZodCatch:TF,ZodNaN:aF,BRAND:lM,ZodBranded:_1,ZodPipeline:sF,ZodReadonly:$F,custom:lX,Schema:JT,ZodSchema:JT,late:rM,get ZodFirstPartyTypeKind(){return x},coerce:j7,any:F7,array:X7,bigint:eM,boolean:sX,date:T7,discriminatedUnion:M7,effect:gX,enum:_7,function:E7,instanceof:aM,intersection:O7,lazy:Q7,literal:R7,map:z7,nan:sM,nativeEnum:k7,never:f7,null:J7,nullable:B7,number:aX,object:Y7,oboolean:x7,onumber:C7,optional:V7,ostring:N7,pipeline:L7,preprocess:y7,promise:U7,record:H7,set:D7,strictObject:w7,string:rX,symbol:$7,transformer:gX,tuple:G7,undefined:S7,union:K7,unknown:W7,void:A7,NEVER:I7,ZodIssueCode:C,quotelessJson:BM,ZodError:x$});function eX(){return{}}function T8(T,$){let S={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==x.ZodAny)S.items=r(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)wT(S,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)wT(S,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)wT(S,"minItems",T.exactLength.value,T.exactLength.message,$),wT(S,"maxItems",T.exactLength.value,T.exactLength.message,$);return S}function $8(T,$){let S={type:"integer",format:"int64"};if(!T.checks)return S;for(let J of T.checks)switch(J.kind){case"min":if($.target==="jsonSchema7")if(J.inclusive)wT(S,"minimum",J.value,J.message,$);else wT(S,"exclusiveMinimum",J.value,J.message,$);else{if(!J.inclusive)S.exclusiveMinimum=!0;wT(S,"minimum",J.value,J.message,$)}break;case"max":if($.target==="jsonSchema7")if(J.inclusive)wT(S,"maximum",J.value,J.message,$);else wT(S,"exclusiveMaximum",J.value,J.message,$);else{if(!J.inclusive)S.exclusiveMaximum=!0;wT(S,"maximum",J.value,J.message,$)}break;case"multipleOf":wT(S,"multipleOf",J.value,J.message,$);break}return S}function S8(){return{type:"boolean"}}function k1(T,$){return r(T.type._def,$)}var J8=(T,$)=>{return r(T.innerType._def,$)};function Lf(T,$,S){let J=S??$.dateStrategy;if(Array.isArray(J))return{anyOf:J.map((F,W)=>Lf(T,$,F))};switch(J){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return Z7(T,$)}}var Z7=(T,$)=>{let S={type:"integer",format:"unix-time"};if($.target==="openApi3")return S;for(let J of T.checks)switch(J.kind){case"min":wT(S,"minimum",J.value,J.message,$);break;case"max":wT(S,"maximum",J.value,J.message,$);break}return S};function F8(T,$){return{...r(T.innerType._def,$),default:T.defaultValue()}}function W8(T,$){return $.effectStrategy==="input"?r(T.schema._def,$):{}}function f8(T){return{type:"string",enum:Array.from(T.values)}}var q7=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function A8(T,$){let S=[r(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),r(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((W)=>!!W),J=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,F=[];return S.forEach((W)=>{if(q7(W)){if(F.push(...W.allOf),W.unevaluatedProperties===void 0)J=void 0}else{let f=W;if("additionalProperties"in W&&W.additionalProperties===!1){let{additionalProperties:A,...X}=W;f=X}else J=void 0;F.push(f)}}),F.length?{allOf:F,...J}:void 0}function X8(T,$){let S=typeof T.value;if(S!=="bigint"&&S!=="number"&&S!=="boolean"&&S!=="string")return{type:Array.isArray(T.value)?"array":"object"};if($.target==="openApi3")return{type:S==="bigint"?"integer":S,enum:[T.value]};return{type:S==="bigint"?"integer":S,const:T.value}}var Nf=void 0,e$={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(Nf===void 0)Nf=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return Nf},uuid:/^[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}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function U1(T,$){let S={type:"string"};if(T.checks)for(let J of T.checks)switch(J.kind){case"min":wT(S,"minLength",typeof S.minLength==="number"?Math.max(S.minLength,J.value):J.value,J.message,$);break;case"max":wT(S,"maxLength",typeof S.maxLength==="number"?Math.min(S.maxLength,J.value):J.value,J.message,$);break;case"email":switch($.emailStrategy){case"format:email":TS(S,"email",J.message,$);break;case"format:idn-email":TS(S,"idn-email",J.message,$);break;case"pattern:zod":R$(S,e$.email,J.message,$);break}break;case"url":TS(S,"uri",J.message,$);break;case"uuid":TS(S,"uuid",J.message,$);break;case"regex":R$(S,J.regex,J.message,$);break;case"cuid":R$(S,e$.cuid,J.message,$);break;case"cuid2":R$(S,e$.cuid2,J.message,$);break;case"startsWith":R$(S,RegExp(`^${Cf(J.value,$)}`),J.message,$);break;case"endsWith":R$(S,RegExp(`${Cf(J.value,$)}$`),J.message,$);break;case"datetime":TS(S,"date-time",J.message,$);break;case"date":TS(S,"date",J.message,$);break;case"time":TS(S,"time",J.message,$);break;case"duration":TS(S,"duration",J.message,$);break;case"length":wT(S,"minLength",typeof S.minLength==="number"?Math.max(S.minLength,J.value):J.value,J.message,$),wT(S,"maxLength",typeof S.maxLength==="number"?Math.min(S.maxLength,J.value):J.value,J.message,$);break;case"includes":{R$(S,RegExp(Cf(J.value,$)),J.message,$);break}case"ip":{if(J.version!=="v6")TS(S,"ipv4",J.message,$);if(J.version!=="v4")TS(S,"ipv6",J.message,$);break}case"base64url":R$(S,e$.base64url,J.message,$);break;case"jwt":R$(S,e$.jwt,J.message,$);break;case"cidr":{if(J.version!=="v6")R$(S,e$.ipv4Cidr,J.message,$);if(J.version!=="v4")R$(S,e$.ipv6Cidr,J.message,$);break}case"emoji":R$(S,e$.emoji(),J.message,$);break;case"ulid":{R$(S,e$.ulid,J.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{TS(S,"binary",J.message,$);break}case"contentEncoding:base64":{wT(S,"contentEncoding","base64",J.message,$);break}case"pattern:zod":{R$(S,e$.base64,J.message,$);break}}break}case"nanoid":R$(S,e$.nanoid,J.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((F)=>{})(J)}return S}function Cf(T,$){return $.patternStrategy==="escape"?h7(T):T}var b7=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function h7(T){let $="";for(let S=0;S<T.length;S++){if(!b7.has(T[S]))$+="\\";$+=T[S]}return $}function TS(T,$,S,J){if(T.format||T.anyOf?.some((F)=>F.format)){if(!T.anyOf)T.anyOf=[];if(T.format){if(T.anyOf.push({format:T.format,...T.errorMessage&&J.errorMessages&&{errorMessage:{format:T.errorMessage.format}}}),delete T.format,T.errorMessage){if(delete T.errorMessage.format,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.anyOf.push({format:$,...S&&J.errorMessages&&{errorMessage:{format:S}}})}else wT(T,"format",$,S,J)}function R$(T,$,S,J){if(T.pattern||T.allOf?.some((F)=>F.pattern)){if(!T.allOf)T.allOf=[];if(T.pattern){if(T.allOf.push({pattern:T.pattern,...T.errorMessage&&J.errorMessages&&{errorMessage:{pattern:T.errorMessage.pattern}}}),delete T.pattern,T.errorMessage){if(delete T.errorMessage.pattern,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.allOf.push({pattern:Y8($,J),...S&&J.errorMessages&&{errorMessage:{pattern:S}}})}else wT(T,"pattern",Y8($,J),S,J)}function Y8(T,$){if(!$.applyRegexFlags||!T.flags)return T.source;let S={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},J=S.i?T.source.toLowerCase():T.source,F="",W=!1,f=!1,A=!1;for(let X=0;X<J.length;X++){if(W){F+=J[X],W=!1;continue}if(S.i){if(f){if(J[X].match(/[a-z]/)){if(A)F+=J[X],F+=`${J[X-2]}-${J[X]}`.toUpperCase(),A=!1;else if(J[X+1]==="-"&&J[X+2]?.match(/[a-z]/))F+=J[X],A=!0;else F+=`${J[X]}${J[X].toUpperCase()}`;continue}}else if(J[X].match(/[a-z]/)){F+=`[${J[X]}${J[X].toUpperCase()}]`;continue}}if(S.m){if(J[X]==="^"){F+=`(^|(?<=[\r
17
- ]))`;continue}else if(J[X]==="$"){F+=`($|(?=[\r
18
- ]))`;continue}}if(S.s&&J[X]==="."){F+=f?`${J[X]}\r
19
- `:`[${J[X]}\r
20
- ]`;continue}if(F+=J[X],J[X]==="\\")W=!0;else if(f&&J[X]==="]")f=!1;else if(!f&&J[X]==="[")f=!0}try{new RegExp(F)}catch{return console.warn(`Could not convert regex pattern at ${$.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),T.source}return F}function V1(T,$){if($.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if($.target==="openApi3"&&T.keyType?._def.typeName===x.ZodEnum)return{type:"object",required:T.keyType._def.values,properties:T.keyType._def.values.reduce((J,F)=>({...J,[F]:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",F]})??{}}),{}),additionalProperties:!1};let S={type:"object",additionalProperties:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??{}};if($.target==="openApi3")return S;if(T.keyType?._def.typeName===x.ZodString&&T.keyType._def.checks?.length){let{type:J,...F}=U1(T.keyType._def,$);return{...S,propertyNames:F}}else if(T.keyType?._def.typeName===x.ZodEnum)return{...S,propertyNames:{enum:T.keyType._def.values}};else if(T.keyType?._def.typeName===x.ZodBranded&&T.keyType._def.type._def.typeName===x.ZodString&&T.keyType._def.type._def.checks?.length){let{type:J,...F}=k1(T.keyType._def,$);return{...S,propertyNames:F}}return S}function w8(T,$){if($.mapStrategy==="record")return V1(T,$);let S=r(T.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},J=r(T.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[S,J],minItems:2,maxItems:2}}}function K8(T){let $=T.values,J=Object.keys(T.values).filter((W)=>{return typeof $[$[W]]!=="number"}).map((W)=>$[W]),F=Array.from(new Set(J.map((W)=>typeof W)));return{type:F.length===1?F[0]==="string"?"string":"number":["string","number"],enum:J}}function M8(){return{not:{}}}function O8(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var eF={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function H8(T,$){if($.target==="openApi3")return G8(T,$);let S=T.options instanceof Map?Array.from(T.options.values()):T.options;if(S.every((J)=>(J._def.typeName in eF)&&(!J._def.checks||!J._def.checks.length))){let J=S.reduce((F,W)=>{let f=eF[W._def.typeName];return f&&!F.includes(f)?[...F,f]:F},[]);return{type:J.length>1?J:J[0]}}else if(S.every((J)=>J._def.typeName==="ZodLiteral"&&!J.description)){let J=S.reduce((F,W)=>{let f=typeof W._def.value;switch(f){case"string":case"number":case"boolean":return[...F,f];case"bigint":return[...F,"integer"];case"object":if(W._def.value===null)return[...F,"null"];case"symbol":case"undefined":case"function":default:return F}},[]);if(J.length===S.length){let F=J.filter((W,f,A)=>A.indexOf(W)===f);return{type:F.length>1?F:F[0],enum:S.reduce((W,f)=>{return W.includes(f._def.value)?W:[...W,f._def.value]},[])}}}else if(S.every((J)=>J._def.typeName==="ZodEnum"))return{type:"string",enum:S.reduce((J,F)=>[...J,...F._def.values.filter((W)=>!J.includes(W))],[])};return G8(T,$)}var G8=(T,$)=>{let S=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((J,F)=>r(J._def,{...$,currentPath:[...$.currentPath,"anyOf",`${F}`]})).filter((J)=>!!J&&(!$.strictUnions||typeof J==="object"&&Object.keys(J).length>0));return S.length?{anyOf:S}:void 0};function z8(T,$){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(T.innerType._def.typeName)&&(!T.innerType._def.checks||!T.innerType._def.checks.length)){if($.target==="openApi3")return{type:eF[T.innerType._def.typeName],nullable:!0};return{type:[eF[T.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let J=r(T.innerType._def,{...$,currentPath:[...$.currentPath]});if(J&&"$ref"in J)return{allOf:[J],nullable:!0};return J&&{...J,nullable:!0}}let S=r(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return S&&{anyOf:[S,{type:"null"}]}}function D8(T,$){let S={type:"number"};if(!T.checks)return S;for(let J of T.checks)switch(J.kind){case"int":S.type="integer",_f(S,"type",J.message,$);break;case"min":if($.target==="jsonSchema7")if(J.inclusive)wT(S,"minimum",J.value,J.message,$);else wT(S,"exclusiveMinimum",J.value,J.message,$);else{if(!J.inclusive)S.exclusiveMinimum=!0;wT(S,"minimum",J.value,J.message,$)}break;case"max":if($.target==="jsonSchema7")if(J.inclusive)wT(S,"maximum",J.value,J.message,$);else wT(S,"exclusiveMaximum",J.value,J.message,$);else{if(!J.inclusive)S.exclusiveMaximum=!0;wT(S,"maximum",J.value,J.message,$)}break;case"multipleOf":wT(S,"multipleOf",J.value,J.message,$);break}return S}function v7(T,$){if($.removeAdditionalStrategy==="strict")return T.catchall._def.typeName==="ZodNever"?T.unknownKeys!=="strict":r(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0;else return T.catchall._def.typeName==="ZodNever"?T.unknownKeys==="passthrough":r(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0}function E8(T,$){let S=$.target==="openAi",J={type:"object",...Object.entries(T.shape()).reduce((F,[W,f])=>{if(f===void 0||f._def===void 0)return F;let A=f.isOptional();if(A&&S){if(f instanceof j$)f=f._def.innerType;if(!f.isNullable())f=f.nullable();A=!1}let X=r(f._def,{...$,currentPath:[...$.currentPath,"properties",W],propertyPath:[...$.currentPath,"properties",W]});if(X===void 0)return F;return{properties:{...F.properties,[W]:X},required:A?F.required:[...F.required,W]}},{properties:{},required:[]}),additionalProperties:v7(T,$)};if(!J.required.length)delete J.required;return J}var Q8=(T,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return r(T.innerType._def,$);let S=r(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return S?{anyOf:[{not:{}},S]}:{}};var R8=(T,$)=>{if($.pipeStrategy==="input")return r(T.in._def,$);else if($.pipeStrategy==="output")return r(T.out._def,$);let S=r(T.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),J=r(T.out._def,{...$,currentPath:[...$.currentPath,"allOf",S?"1":"0"]});return{allOf:[S,J].filter((F)=>F!==void 0)}};function _8(T,$){return r(T.type._def,$)}function k8(T,$){let J={type:"array",uniqueItems:!0,items:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(T.minSize)wT(J,"minItems",T.minSize.value,T.minSize.message,$);if(T.maxSize)wT(J,"maxItems",T.maxSize.value,T.maxSize.message,$);return J}function U8(T,$){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map((S,J)=>r(S._def,{...$,currentPath:[...$.currentPath,"items",`${J}`]})).reduce((S,J)=>J===void 0?S:[...S,J],[]),additionalItems:r(T.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map((S,J)=>r(S._def,{...$,currentPath:[...$.currentPath,"items",`${J}`]})).reduce((S,J)=>J===void 0?S:[...S,J],[])}}function V8(){return{not:{}}}function B8(){return{}}var y8=(T,$)=>{return r(T.innerType._def,$)};var L8=(T,$,S)=>{switch($){case x.ZodString:return U1(T,S);case x.ZodNumber:return D8(T,S);case x.ZodObject:return E8(T,S);case x.ZodBigInt:return $8(T,S);case x.ZodBoolean:return S8();case x.ZodDate:return Lf(T,S);case x.ZodUndefined:return V8();case x.ZodNull:return O8(S);case x.ZodArray:return T8(T,S);case x.ZodUnion:case x.ZodDiscriminatedUnion:return H8(T,S);case x.ZodIntersection:return A8(T,S);case x.ZodTuple:return U8(T,S);case x.ZodRecord:return V1(T,S);case x.ZodLiteral:return X8(T,S);case x.ZodEnum:return f8(T);case x.ZodNativeEnum:return K8(T);case x.ZodNullable:return z8(T,S);case x.ZodOptional:return Q8(T,S);case x.ZodMap:return w8(T,S);case x.ZodSet:return k8(T,S);case x.ZodLazy:return()=>T.getter()._def;case x.ZodPromise:return _8(T,S);case x.ZodNaN:case x.ZodNever:return M8();case x.ZodEffects:return W8(T,S);case x.ZodAny:return eX();case x.ZodUnknown:return B8();case x.ZodDefault:return F8(T,S);case x.ZodBranded:return k1(T,S);case x.ZodReadonly:return y8(T,S);case x.ZodCatch:return J8(T,S);case x.ZodPipeline:return R8(T,S);case x.ZodFunction:case x.ZodVoid:case x.ZodSymbol:return;default:return((J)=>{return})($)}};function r(T,$,S=!1){let J=$.seen.get(T);if($.override){let A=$.override?.(T,$,J,S);if(A!==vX)return A}if(J&&!S){let A=P7(J,$);if(A!==void 0)return A}let F={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,F);let W=L8(T,T.typeName,$),f=typeof W==="function"?r(W(),$):W;if(f)c7(T,$,f);if($.postProcess){let A=$.postProcess(f,T,$);return F.jsonSchema=f,A}return F.jsonSchema=f,f}var P7=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:m7($.currentPath,T.path)};case"none":case"seen":{if(T.path.length<$.currentPath.length&&T.path.every((S,J)=>$.currentPath[J]===S))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},m7=(T,$)=>{let S=0;for(;S<T.length&&S<$.length;S++)if(T[S]!==$[S])break;return[(T.length-S).toString(),...$.slice(S)].join("/")},c7=(T,$,S)=>{if(T.description){if(S.description=T.description,$.markdownDescription)S.markdownDescription=T.description}return S};var N8=(T,$)=>{let S=mX($),J=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((X,[Y,w])=>({...X,[Y]:r(w._def,{...S,currentPath:[...S.basePath,S.definitionPath,Y]},!0)??{}}),{}):void 0,F=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,W=r(T._def,F===void 0?S:{...S,currentPath:[...S.basePath,S.definitionPath,F]},!1)??{},f=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(f!==void 0)W.title=f;let A=F===void 0?J?{...W,[S.definitionPath]:J}:W:{$ref:[...S.$refStrategy==="relative"?[]:S.basePath,S.definitionPath,F].join("/"),[S.definitionPath]:{...J,[F]:W}};if(S.target==="jsonSchema7")A.$schema="http://json-schema.org/draft-07/schema#";else if(S.target==="jsonSchema2019-09"||S.target==="openAi")A.$schema="https://json-schema.org/draft/2019-09/schema#";if(S.target==="openAi"&&(("anyOf"in A)||("oneOf"in A)||("allOf"in A)||("type"in A)&&Array.isArray(A.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return A};var C8=N8;function x8(T,$){return function S({schema:J,fallback:F}){let W=C8(J);return async function f(A,X=3){let Y,w=[];while(w.length<X){Y=await T(A,W,F,w);let K=J.safeParse(Y);if(K.success)return K.data;$?.warn(`safegen failed to generate well-formed data.
15
+ ${G.trace}`:`No previous disposal trace for ${A} was found.`),J}let w=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey}).filter(([,{source:G}])=>G!==F).map(([G])=>$$(G));if(S)f.moleculeGraph.delete(F);f.moleculeGraph.set({upstreamMoleculeKey:X.stringKey,downstreamMoleculeKey:W.stringKey},{source:X.stringKey});let Y={type:"molecule_transfer",key:W.key,from:w,to:[X.key]};if(zT(f)&&f.transactionMeta.phase==="building")f.transactionMeta.update.updates.push(Y);return J}function fW(T,$,J){switch($){case"newValue":{XX(T,J);break}case"oldValue":{TS(J,T.token);break}}}function WW(T,$,J){switch($){case"newValue":{TS(J,T.token);break}case"oldValue":{if(XX(T,J),T.subType==="atom")J.valueMap.set(T.token.key,T.value);break}}}function XX(T,$){let{family:J}=T.token;if(J){let S=$.families.get(J.key);if(S)a($,S,$$(J.subKey))}}function wX(T,$,J){switch($){case"newValue":aJ(J,T.provenance,T.key);break;case"oldValue":sJ(J,T.key);break}}function YX(T,$,J){switch($){case"newValue":sJ(J,T.key);break;case"oldValue":{let S=T.provenance.map($$);aJ(J,S,T.key);for(let[F,f]of T.values){let W=J.families.get(F);if(W){a(J,W,T.key);let A=`${F}(${WT(T.key)})`;J.valueMap.set(A,f)}}}break}}function MX(T,$,J){switch($){case"newValue":{let S=T.to.length===1?T.to[0]:T.to;bS(J,S,T.key,"exclusive")}break;case"oldValue":{let S=T.from.length===1?T.from[0]:T.from;bS(J,S,T.key,"exclusive")}break}}function K1(T,$,J){let S=T==="newValue"?$.updates:[...$.updates].reverse();for(let F of S)switch(F.type){case"atom_update":case"selector_update":G1(T,F,J);break;case"state_creation":fW(F,T,J);break;case"state_disposal":WW(F,T,J);break;case"molecule_creation":wX(F,T,J);break;case"molecule_disposal":YX(F,T,J);break;case"molecule_transfer":MX(F,T,J);break;case"transaction_update":K1(T,F,J);break}}function GX(T,$,J){if(iT(T)&&$)T.transactionMeta.epoch.set($,J)}function KX(T,$,J){if(!iT(T))return;let F=T.transactionMeta.actionContinuities.getRelatedKey($);if(F!==void 0)T.transactionMeta.epoch.set(F,J)}var HX=(T,$)=>{let J=b($),{parent:S}=J;if(S===null||!zT(J)||J.transactionMeta?.phase!=="building"){$.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}J.transactionMeta.phase="applying",J.transactionMeta.update.output=T,S.child=null,S.on.transactionApplying.next(J.transactionMeta);let{updates:F}=J.transactionMeta.update;if($.logger.info("\uD83D\uDEC4","transaction",J.transactionMeta.update.key,`Applying transaction with ${F.length} updates:`,F),K1("newValue",J.transactionMeta.update,S),iT(S))KX(S,J.transactionMeta.update.key,J.transactionMeta.update.epoch),GT($,{key:J.transactionMeta.update.key,type:"transaction"})?.subject.next(J.transactionMeta.update),$.logger.info("\uD83D\uDEEC","transaction",J.transactionMeta.update.key,"Finished applying transaction.");else if(zT(S))S.transactionMeta.update.updates.push(J.transactionMeta.update);S.on.transactionApplying.next(null)};function OX(T,$,J){if(!iT(T))return;let{epoch:F,actionContinuities:f}=T.transactionMeta;if(f.set($,J),!F.has($))F.set($,-1)}function zX(T){return{store:T}}function OT(T,...$){let J,S,F;if($.length===1)J=$[0];else S=$[0],F=$[1],J=a(T,S,F);if("counterfeit"in J&&"family"in J){S=T.families.get(J.family.key);let f=J.family.subKey,W=T.disposalTraces.buffer.find((A)=>A?.key===f);switch(T.logger.error("\u274C",J.type,J.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,W?`This state was previously disposed:
16
+ ${W.trace}`:"No previous disposal trace was found."),S.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(S.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(S.key))return T.defaults.get(J.family.key);let A=GT(T,S).default(f);return T.defaults.set(S.key,A),A}}}return hJ(T,GT(T,J))}class uT{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,$)=>`${T}:${$}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,$){let J=this.relations.get(T),S=this.relations.get($);if(J)J.add($);else J=new Set([$]),this.relations.set(T,J);if(S)S.add(T);else S=new Set([T]),this.relations.set($,S)}deleteRelation(T,$){let J=this.relations.get(T);if(J){if(J.delete($),J.size===0)this.relations.delete(T);let S=this.relations.get($);if(S){if(S.delete(T),S.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let J of $){let S=new Set().add(T);this.relations.set(J,S)}}replaceRelationsSafely(T,$){let J=this.relations.get(T),S=this.isAType?.(T)?T:void 0,F=S===void 0?T:void 0;if(J)for(let f of J){S??=f,F??=f;let W=this.relations.get(f);if(W){if(W.size===1)this.relations.delete(f);else W.delete(T);this.contents.delete(this.makeContentKey(S,F))}}this.relations.set(T,new Set($));for(let f of $){let W=this.relations.get(f);if(W)W.add(T);else W=new Set().add(T),this.relations.set(f,W)}}getContentInternal(T){return this.contents.get(T)}setContent(T,$){this.contents.set(T,$)}deleteContent(T){this.contents.delete(T)}constructor(T,$){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!$?.externalStore)this.relations=new Map(T.relations?.map(([J,S])=>[J,new Set(S)])),this.contents=new Map(T.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let J=$.externalStore;if(this.has=(S,F)=>J.has(S,F),this.addRelation=(S,F)=>{J.addRelation(S,F)},this.deleteRelation=(S,F)=>{J.deleteRelation(S,F)},this.replaceRelationsSafely=(S,F)=>{J.replaceRelationsSafely(S,F)},this.replaceRelationsUnsafely=(S,F)=>{J.replaceRelationsUnsafely(S,F)},this.getRelatedKeys=(S)=>J.getRelatedKeys(S),J.getContent)this.getContentInternal=(S)=>{return J.getContent(S)},this.setContent=(S,F)=>{J.setContent(S,F)},this.deleteContent=(S)=>{J.deleteContent(S)};for(let[S,F]of T.relations??[]){let f=this.isAType?.(S)?S:void 0,W=f===void 0?S:void 0;for(let A of F)f??=A,W??=A,this.addRelation(f,W)}for(let[S,F]of T.contents??[])this.setContent(S,F)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,$])=>[T,[...$]]),contents:[...this.contents.entries()]}}set(...T){let $,J,S;switch(T.length){case 1:{let F=T[0];$=F[this.a],J=F[this.b],S=void 0;break}case 2:{let F=T[0];if(typeof F==="string")[$,J]=T;else $=F[this.a],J=F[this.b],S=T[1];break}default:{$=T[0],J=T[1],S=T[2];break}}switch(this.cardinality){case"1:1":{let F=this.getRelatedKey($);if(F&&F!==J)this.delete($,F)}case"1:n":{let F=this.getRelatedKey(J);if(F&&F!==$)this.delete(F,J)}}if(S){let F=this.makeContentKey($,J);this.setContent(F,S)}return this.addRelation($,J),this}delete(T,$){$=typeof $==="string"?$:T[this.b];let J=typeof T==="string"?T:T[this.a];if(J===void 0&&typeof $==="string"){let S=this.getRelatedKeys($);if(S)for(let F of S)this.delete(F,$)}if(typeof J==="string"&&$===void 0){let S=this.getRelatedKeys(J);if(S)for(let F of S)this.delete(J,F)}if(typeof J==="string"&&typeof $==="string"){this.deleteRelation(J,$);let S=this.makeContentKey(J,$);this.deleteContent(S)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((S)=>`"${S}"`).join(", ")}). Only one related key was expected.`);let J;for(let S of $){J=S;break}return J}}replaceRelations(T,$,J){let S=!Array.isArray($),F=S?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,F);else this.replaceRelationsSafely(T,F);if(S)for(let f of F){let W=this.makeContentKey(T,f),A=$[f];this.setContent(W,A)}return this}getContent(T,$){let J=this.makeContentKey(T,$);return this.getContentInternal(J)}getRelationEntries(T){let $=T[this.a],J=T[this.b];if($!==void 0&&J===void 0){let S=this.getRelatedKeys($);if(S)return[...S].map((F)=>{return[F,this.getContent($,F)]})}if($===void 0&&J!==void 0){let S=this.getRelatedKeys(J);if(S)return[...S].map((F)=>{return[F,this.getContent(F,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class n$ extends Map{source;deleted=new Set;constructor(T){super();this.source=T}get(T){if(super.has(T))return super.get(T);if(!this.deleted.has(T)&&this.source.has(T))return this.source.get(T);return}set(T,$){return this.deleted.delete(T),super.set(T,$)}hasOwn(T){return super.has(T)}has(T){return!this.deleted.has(T)&&(super.has(T)||this.source.has(T))}delete(T){return this.deleted.add(T),super.delete(T)}}var DX=(T,$,J,S)=>{let F=b(T),f={parent:F,child:null,on:F.on,loggers:F.loggers,logger:F.logger,config:F.config,atoms:new n$(F.atoms),atomsThatAreDefault:new Set(F.atomsThatAreDefault),families:new n$(F.families),joins:new n$(F.joins),operation:{open:!1},readonlySelectors:new n$(F.readonlySelectors),timelines:new n$(F.timelines),timelineTopics:new uT(F.timelineTopics.toJSON()),trackers:new Map,transactions:new n$(F.transactions),selectorAtoms:new uT(F.selectorAtoms.toJSON()),selectorGraph:new uT(F.selectorGraph.toJSON(),{makeContentKey:(...w)=>w.sort().join(":")}),selectors:new n$(F.selectors),valueMap:new n$(F.valueMap),defaults:F.defaults,disposalTraces:T.disposalTraces.copy(),molecules:new n$(F.molecules),moleculeGraph:new uT(F.moleculeGraph.toJSON(),{makeContentKey:F.moleculeGraph.makeContentKey}),moleculeData:new uT(F.moleculeData.toJSON(),{makeContentKey:F.moleculeData.makeContentKey}),moleculeJoins:new uT(F.moleculeJoins.toJSON(),{makeContentKey:F.moleculeJoins.makeContentKey}),miscResources:new n$(F.miscResources)},W=QX(T,$),A={phase:"building",update:{type:"transaction_update",key:$,id:S,epoch:W===void 0?Number.NaN:W+1,updates:[],params:J,output:void 0},toolkit:{get:(...w)=>OT(X,...w),set:(...w)=>{nT(X,...w)},run:(w,Y=F1())=>hS(X,w,Y),find:(w,Y)=>a(X,w,Y),json:(w)=>dT(X,w),dispose:(...w)=>{TS(X,...w)},env:()=>zX(X)}},X=Object.assign(f,{transactionMeta:A});return F.child=X,T.logger.info("\uD83D\uDEEB","transaction",$,"Building transaction with params:",J),X};function AW(T,$){let J={key:$.key,type:"transaction",run:(f,W)=>{let A=DX(T,$.key,f,W);try{let X=b(T),{toolkit:w}=A.transactionMeta,Y=$.do(w,...f);return HX(Y,X),Y}catch(X){throw uA(S),T.logger.warn("\uD83D\uDCA5","transaction",$.key,"caught:",X),X}},install:(f)=>AW(f,$),subject:new FT},S=b(T);S.transactions.set(J.key,J);let F=U$(J);return T.on.transactionCreation.next(F),F}function QX(T,$){let J=iT(T),S=J?T.transactionMeta.actionContinuities.getRelatedKey($):void 0;return J&&S!==void 0?T.transactionMeta.epoch.get(S):void 0}function cF(T){return AW(AT.STORE,T)}class EX{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new uT({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new uT({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new uT({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new uT({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new W1(100);molecules=new Map;moleculeJoins=new uT({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new uT({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new uT({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new FT,atomDisposal:new FT,selectorCreation:new FT,selectorDisposal:new FT,timelineCreation:new FT,transactionCreation:new FT,transactionApplying:new ef(null),operationClose:new FT,moleculeCreation:new FT,moleculeDisposal:new FT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new JW("warn",(T,$,J)=>!J.includes("\uD83D\uDD0D"))];logger={error:(...T)=>{for(let $ of this.loggers)$.error(...T)},info:(...T)=>{for(let $ of this.loggers)$.info(...T)},warn:(...T)=>{for(let $ of this.loggers)$.warn(...T)}};constructor(T,$=null){if(this.config={...$?.config,...T},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},iT($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new uT($?.transactionMeta.actionContinuities.toJSON())};for(let[,S]of $.families){if(S.internalRoles?.includes("mutable")||S.internalRoles?.includes("join"))continue;S.install(this)}let J=new Set;for(let[,S]of $.atoms){if(J.has(S.key))continue;if(S.install(this),S.type==="mutable_atom"){let F=dT($,S),f=QJ(S);J.add(F.key),J.add(f.key)}}for(let[,S]of $.readonlySelectors)S.install(this);for(let[,S]of $.selectors){if(J.has(S.key))continue;S.install(this)}for(let[,S]of $.transactions)S.install(this);for(let[,S]of $.timelines)S.install(this)}}}var AT={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new EX({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function GT(T,$){let J,S=T;while(S!==null){switch($.type){case"atom":case"mutable_atom":J=S.atoms.get($.key);break;case"selector":J=S.selectors.get($.key);break;case"readonly_selector":J=S.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":J=S.families.get($.key);break;case"timeline":J=S.timelines.get($.key);break;case"transaction":J=S.transactions.get($.key);break}if(J)return J;S=S.child}throw new eJ($,T)}function RX(T,$,J){let S=T.families.get($.key);if(S===void 0)throw new eJ($,T);let F=S(J),f=b(T);if(F.family){if(iT(f))switch(F.type){case"atom":case"mutable_atom":T.on.atomCreation.next(F);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(F);break}else if(zT(f)&&f.on.transactionApplying.state===null)f.transactionMeta.update.updates.push({type:"state_creation",token:F})}return F}function _X(T,$,J){let S=WT(J),F=`${$.key}(${S})`,f=b(T),W;switch($.type){case"atom_family":case"mutable_atom_family":W=f.atoms.get(F);break;case"selector_family":W=f.selectors.get(F);break;case"readonly_selector_family":W=f.readonlySelectors.get(F);break}if(W)return U$(W);return W}function a(T,$,J){let S=_X(T,$,J);if(S)return S;let F=WT(J),f=T.molecules.get(F);if(!f&&T.config.lifespan==="immortal"){let W=nA($,J);return T.logger.error("\u274C",W.type,W.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),W}if(S=RX(T,$,J),f)b(T).moleculeData.set(F,$.key);return S}function TS(T,...$){let J;if($.length===1)J=$[0];else{let S=$[0],F=$[1];J=a(T,S,F)}try{GT(T,J)}catch(S){T.logger.error("\u274C",J.type,J.key,`could not be disposed because it was not found in the store "${T.config.name}".`);return}switch(J.type){case"atom":case"mutable_atom":XW(T,J);break;case"selector":case"readonly_selector":kX(T,J);break}}var H1=(T,$)=>b(T).atoms.has($),R7=(T,$)=>b(T).selectors.has($),_7=(T,$)=>b(T).readonlySelectors.has($),UX=(T,$)=>H1(T,$)||R7(T,$)||_7(T,$);var O1=(T,$)=>{return b($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([S,{source:F}])=>F!==T).map(([S,{source:F}])=>F).filter((S)=>UX($,S))};var wW=(T,$,J)=>{let S=[],F=O1(T,J);while(F.length>0){let f=F.shift();if($.has(f))continue;if($.add(f),!H1(J,f))F.push(...O1(f,J));else if(!S.includes(f))S.push(f)}return S},VX=(T,$)=>{let J=T.key,S=O1(J,$),F=new Set;return S.flatMap((f)=>H1($,f)?f:wW(f,F,$))};var BX=(T,$,J,S)=>{let F=b(S);if($.type==="atom"||$.type==="mutable_atom")F.selectorAtoms.set({selectorKey:T,atomKey:$.key}),S.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let f=wW($.key,J,S);S.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${f.map((W)=>`"${W}"`).join(", ")} ]`);for(let W of f)F.selectorAtoms=F.selectorAtoms.set({selectorKey:T,atomKey:W})}J.add($.key)};var z1=(T,$,J)=>({get:(...S)=>{let F=b(J),f;if(S.length===2){let[X,w]=S;f=a(J,X,w)}else[f]=S;let W=GT(J,f),A=hJ(J,W);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${f.key}" =`,A,")"),F.selectorGraph.set({upstreamSelectorKey:f.key,downstreamSelectorKey:T},{source:f.key}),BX(T,f,$,J),A},set:(...S)=>{let F,f;if(S.length===2)F=S[0],f=S[1];else{let X=S[0],w=S[1];f=S[2],F=a(J,X,w)}let W=b(J),A=GT(W,F);M1(W,A,f)},find:(S,F)=>a(J,S,F),json:(S)=>dT(J,S)});var hF=(T,$,J)=>{let S=b(T),F=new FT,f=new Set,{get:W,find:A,json:X}=z1($.key,f,S),w=()=>{let z=$.get({get:W,find:A,json:X});return P$(b(T),$.key,z,F),f.clear(),z},Y={...$,subject:F,install:(z)=>hF(z,$,J),get:w,type:"readonly_selector",...J&&{family:J}};S.readonlySelectors.set($.key,Y);let M=w();T.logger.info("\u2728",Y.type,Y.key,"=",M);let G={key:$.key,type:"readonly_selector"};if(J)G.family=J;return G};var gF=(T,$,J)=>{let S=b(T),F=new FT,f=new Set,W=z1($.key,f,S),{find:A,get:X,json:w}=W,Y={find:A,get:X,json:w},M=(L=$.get,x=b(T))=>{let y=L(Y);return P$(x,$.key,y,F),f.clear(),y},z={...$,subject:F,install:(L)=>gF(L,$,J),get:M,set:(L)=>{let x=b(T),y=M($.get,x),I=Y1(L)(y);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",y,"->",I,")"),P$(x,$.key,I,F),vS(x,$.key),iT(x))F.next({newValue:I,oldValue:y});$.set(W,I)},type:"selector",...J&&{family:J}};S.selectors.set($.key,z);let D=M();T.logger.info("\u2728",z.type,z.key,"=",D);let R={key:$.key,type:"selector"};if(J)R.family=J;return R};function OJ(T,$){if("set"in $){let F=gF(T,$,void 0);return T.on.selectorCreation.next(F),F}let S=hF(T,$,void 0);return T.on.selectorCreation.next(S),S}function kX(T,$){let J=b(T),{key:S}=$,F=GT(J,$);if(!F.family)T.logger.error("\u274C","selector",S,"Standalone selectors cannot be disposed.");else{if(J.molecules.get(F.family.subKey))J.moleculeData.delete(F.family.subKey,F.family.key);let W;switch($.type){case"selector":J.selectors.delete(S),W={key:F.family.key,type:"selector_family"},GT(T,W).subject.next({type:"state_disposal",subType:"selector",token:$});break;case"readonly_selector":J.readonlySelectors.delete(S),W={key:F.family.key,type:"readonly_selector_family"},GT(T,W).subject.next({type:"state_disposal",subType:"selector",token:$});break}if(J.valueMap.delete(S),J.selectorAtoms.delete(S),J.selectorGraph.delete(S),T.logger.info("\uD83D\uDD25",$.type,S,"deleted"),zT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:$});else T.on.selectorDisposal.next($)}}function vF(T,$,J){let S={key:$.key,type:"selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${WJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let f=new FT,A=Object.assign((X)=>{let w=WT(X),Y={key:$.key,subKey:w},M=`${$.key}(${w})`,G=b(T),z=gF(G,{key:M,get:$.get(X),set:$.set(X)},Y);return f.next({type:"state_creation",token:z}),z},S,{internalRoles:J,subject:f,install:(X)=>vF(X,$),default:(X)=>{return $.get(X)({get:(...Y)=>OT(T,...Y),find:(Y,M)=>a(T,Y,M),json:(Y)=>dT(T,Y)})}});return T.families.set($.key,A),S}function yX(T,$,J){return vF(T,{key:`${$.key}:JSON`,get:(F)=>({get:f})=>{let W=f($,F);return J.toJson(W)},set:(F)=>({set:f},W)=>{f($,F,J.fromJson(W))}},["mutable","json"])}var $$=(T)=>JSON.parse(T),WT=(T)=>JSON.stringify(T),kD=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var LX=(T,$)=>{let J=b(T);if(J.operation.open)return J.operation.prev.get($.key);return J.valueMap.get($.key)};var GW=(T,$)=>{let J=b(T);return VX($,T).map((F)=>{let f=J.atoms.get(F);if(f===void 0)throw new Error(`Atom "${F}", a dependency of selector "${$.key}", not found in store "${T.config.name}".`);return f.subject.subscribe(`${$.type}:${$.key}`,(W)=>{T.logger.info("\uD83D\uDCE2",$.type,$.key,"root",F,"went",W.oldValue,"->",W.newValue);let A=LX(J,$),X=hJ(J,$);T.logger.info("\u2728",$.type,$.key,"went",A,"->",X),$.subject.next({newValue:X,oldValue:A})})})};function K$(T,$,J,S){function F(M){if(T.operation.open){let G=T.on.operationClose.subscribe(`state subscription ${J}`,()=>{G(),S(M)})}else S(M)}let f=GT(T,$);T.logger.info("\uD83D\uDC40",f.type,f.key,`Adding subscription "${J}"`);let W=f.type==="selector"||f.type==="readonly_selector",A=null,X=F;if(W)A=GW(T,f),X=(M)=>{if(A)A.length=0,A.push(...GW(T,f));F(M)};let w=f.subject.subscribe(J,X);return()=>{if(T.logger.info("\uD83D\uDE48",f.type,f.key,`Removing subscription "${J}"`),w(),A)for(let M of A)M()}}var YW=(T,$,J,S)=>{let F=GT(T,$);T.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${J}"`);let f=F.subject.subscribe(J,S);return()=>{T.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${J}" from timeline`),f()}};var MW=(T,$,J,S)=>{let F=GT(T,$);T.logger.info("\uD83D\uDC40","transaction",$.key,`Adding subscription "${J}"`);let f=F.subject.subscribe(J,S);return()=>{T.logger.info("\uD83D\uDE48","transaction",$.key,`Removing subscription "${J}"`),f()}};class $S{Update;initializeState(T,$){let J=`*${T.key}`;$.atoms.delete(J),$.valueMap.delete(J);let S=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,F=N$($,{key:J,default:null},S);if($.parent?.valueMap.has(J)){let f=$.parent.valueMap.get(J);$.valueMap.set(J,f)}return F}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,J){let S=`tracker:${J.config.name}:${zT(J)?J.transactionMeta.update.key:"main"}:${T.key}`,F=OT(J,T);this.unsubscribeFromInnerValue=F.subscribe(S,(f)=>{nT(J,$,f)}),this.unsubscribeFromState=K$(J,T,S,(f)=>{if(f.newValue!==f.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=f.newValue.subscribe(S,(W)=>{nT(J,$,W)})})}updateCore(T,$,J){let S=`tracker:${J.config.name}:${zT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;K$(J,$,S,({newValue:F,oldValue:f})=>{let W=J.timelineTopics.getRelatedKey($.key);if(W){if(J.timelines.get(W)?.timeTraveling){let w=YW(J,{key:W,type:"timeline"},S,(Y)=>{w(),nT(J,T,(M)=>{if(Y==="redo"&&F)M.do(F);else if(Y==="undo"&&f)M.undo(f);return M})});return}}let A=J.on.operationClose.subscribe(S,()=>{A();let X=OT(J,T),w=F===null?-1:X.getUpdateNumber(F),Y=w-X.cacheUpdateNumber;if(F&&Y===1)nT(J,T,(M)=>(M.do(F),M));else J.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${X.cacheUpdateNumber+1}, but got ${w}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,$){this.mutableState=T;let J=b($);this.latestUpdateState=this.initializeState(T,J),this.observeCore(T,this.latestUpdateState,J),this.updateCore(T,this.latestUpdateState,J),J.trackers.set(T.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),J.trackers.delete(T.key)}}}function pF(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let S=b(T),F=S.atoms.get($.key);if(F&&F.type==="mutable_atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),U$(F);let f=new FT,W={...$,type:"mutable_atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),pF(w,$,J)},subject:f};if(J)W.family=J;let A=$.default();S.atoms.set(W.key,W),D1(T,$.key),P$(S,$.key,A,f);let X=U$(W);if($.effects){let w=0,Y=[];for(let M of $.effects){let G=M({setSelf:(z)=>{nT(T,X,z)},onSet:(z)=>K$(T,X,`effect[${w}]`,z)});if(G)Y.push(G);++w}W.cleanup=()=>{for(let M of Y)M()}}if(new $S(X,T),!J)mA(X,$,T);return X}class KW{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=zJ($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=GT($,J),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(S)=>{let{type:F,token:f}=S;if(f.family){let W=$$(f.family.subKey);switch(F){case"state_creation":this.trackers.set(W,new $S(f,$));break;case"state_disposal":{let A=this.trackers.get(W);if(A)A[Symbol.dispose](),this.trackers.delete(W)}break}}})}}function bF(T,$,J){let S={key:$.key,type:"mutable_atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${WJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let f=new FT,A=Object.assign((X)=>{let w=WT(X),Y={key:$.key,subKey:w},M=`${$.key}(${w})`,G=b(T),z={key:M,default:()=>$.default(X),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)z.effects=$.effects(X);let D=pF(G,z,Y);return f.next({type:"state_creation",token:D}),D},S,{subject:f,install:(X)=>bF(X,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:J});return T.families.set($.key,A),yX(T,A,$),new KW(A,T),S}var HW=(T,$)=>{let J=b($),S=`${T.key}:JSON`;return J.families.get(S)};var dT=(T,$)=>{if($.family){let S=b(T),f={key:`${$.family.key}:JSON`,type:"selector_family"},W=GT(S,f),A=JSON.parse($.family.subKey);return a(T,W,A)}return{type:"selector",key:`${$.key}:JSON`}};var QJ=(T)=>{let J={type:"atom",key:`*${T.key}`};if(T.family)J.family={key:`*${T.family.key}`,subKey:T.family.subKey};return J};function JX(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function nF(T,$,J){let S=J.valueMap.get($.key),F=T.valueMap.get($.key);if(S===F){if(S===void 0)return typeof $.default==="function"?$.default():$.default;J.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let f=$.toJson(S),W=$.fromJson(f);return T.valueMap.set($.key,W),new $S($,J),W}return F}function P$(T,$,J,S){let F=T.valueMap.get($);if(F instanceof qF)F.use(J);if(J instanceof Promise){let f=new qF(J);return T.valueMap.set($,f),f.then((W)=>{P$(T,$,W,S),S.next({newValue:W,oldValue:f})}).catch((W)=>{T.logger.error("\uD83D\uDCA5","state",$,"rejected:",W)}),f}return T.valueMap.set($,J),J}var lA=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&zT($)){let{parent:S}=$;J=nF($,T,S)}return J},TX=(T,$)=>{let J=$.valueMap.get(T);if(J instanceof qF){let S=J,F=$.selectors.get(T)??$.readonlySelectors.get(T);if(F)S.use(F.get());return}if($.operation.open)$.operation.prev.set(T,J);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var FX=(T,$)=>{return b(T).atomsThatAreDefault.has($)},D1=(T,$)=>{let J=b(T);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add($)},fX=(T,$)=>{let J=b(T);J.atomsThatAreDefault=new Set(b(T).atomsThatAreDefault),J.atomsThatAreDefault.delete($)};function N$(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let S=b(T),F=S.atoms.get($.key);if(F&&F.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),U$(F);let f=new FT,W={...$,type:"atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),N$(w,$,J)},subject:f};if(J)W.family=J;let A=$.default;if($.default instanceof Function)A=$.default();S.atoms.set(W.key,W),D1(T,$.key),P$(S,$.key,A,f);let X=U$(W);if($.effects){let w=0,Y=[];for(let M of $.effects){let G=M({setSelf:(z)=>{nT(T,X,z)},onSet:(z)=>K$(T,X,`effect[${w}]`,z)});if(G)Y.push(G);++w}W.cleanup=()=>{for(let M of Y)M()}}return X}function cA(T,$){if("mutable"in $){let F=pF(T,$,void 0);return T.on.atomCreation.next(F),F}let S=N$(T,$,void 0);return T.on.atomCreation.next(S),S}function XW(T,$){let J=b(T),{key:S,family:F}=$,f=GT(J,$);if(!F)T.logger.error("\u274C","atom",S,"Standalone atoms cannot be disposed.");else{f.cleanup?.();let W=T.valueMap.get(f.key),A=GT(T,{key:F.key,type:"atom_family"}),X={type:"state_disposal",subType:"atom",token:$,value:W};A.subject.next(X);let w=zT(J);if(J.atoms.delete(S),J.valueMap.delete(S),J.selectorAtoms.delete(S),J.atomsThatAreDefault.delete(S),T.timelineTopics.delete(S),$.type==="mutable_atom"){let Y=QJ($);XW(T,Y),T.trackers.delete(S)}if(T.logger.info("\uD83D\uDD25","atom",S,"deleted"),w&&J.transactionMeta.phase==="building"){let Y=J.transactionMeta.update.updates.at(-1);if(!(Y?.type==="molecule_disposal"&&Y.values.some(([z])=>z===f.family?.key)))J.transactionMeta.update.updates.push(X)}else T.on.atomDisposal.next($)}}class lT extends Set{mode="record";subject=new FT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,$=0){super(T);if(T instanceof lT)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if($)this.cacheLimit=$,this.cache=new Array($),this.subscribe("auto cache",(J)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=J})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let $=new lT(T.members,T.cacheLimit);return $.cache=T.cache,$.cacheIdx=T.cacheIdx,$.cacheUpdateNumber=T.cacheUpdateNumber,$}add(T){let $=super.add(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${WT(T)}`);return $}clear(){let T=this.mode==="record"?[...this]:null;if(super.clear(),T)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(T)}`)}delete(T){let $=super.delete(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${WT(T)}`);return $}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new lT(this);let $=this.child._subscribe("transaction",(J)=>{this.transactionUpdates?.push(J)});try{if(T(this.child)){for(let S of this.transactionUpdates)this.doStep(S);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(J){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",J),J}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,$){return this.subject.subscribe(T,$)}subscribe(T,$){return this.subject.subscribe(T,(J)=>{$(`${this.cacheUpdateNumber}=${J}`)})}emit(T){this.subject.next(T)}doStep(T){let $=T.indexOf(":"),J=T.substring(0,$),S=T.substring($+1);switch(J){case"add":this.add(JSON.parse(S));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(S));break;case"tx":for(let F of S.split(";"))this.doStep(F)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),J=Number(T.substring(0,$)),S=J-this.cacheUpdateNumber;if(S>0){if(S===1){this.mode="playback";let f=T.substring($+1);return this.doStep(f),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(S)<this.cacheLimit){let f=this.cacheIdx+S;if(this.cache[f]===T)return null;this.mode="playback";let A=!1;while(!A){this.cacheIdx%=this.cacheLimit;let w=this.cache[this.cacheIdx];if(this.cacheIdx--,!w)return"OUT_OF_RANGE";this.undo(w),A=this.cacheIdx===f-1}let X=T.substring($+1);return this.doStep(X),this.mode="record",this.cacheUpdateNumber=J,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),J=T.substring(0,$),S=T.substring($+1);switch(J){case"add":this.delete(JSON.parse(S));break;case"del":this.add(JSON.parse(S));break;case"clear":{let F=JSON.parse(S);for(let f of F)this.add(f);break}case"tx":{let F=S.split(";");for(let f=F.length-1;f>=0;f--)this.undoStep(F[f])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let S=T.substring($+1);return this.undoStep(S),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class mF{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(T,$){let J=this.toolkit;this.toolkit=T,$(this),this.toolkit=J}store;realm;[Symbol.dispose](){}constructor(T,$,J=AT.STORE){this.store=J,this.realm=new SW(J),this.options=T,this.defaultContent=$,this.store.miscResources.set(`join:${T.key}`,this),this.realm.allocate("root",T.key),this.toolkit={get:(...E)=>OT(J,...E),set:(...E)=>{nT(J,...E)},find:(...E)=>a(J,...E),json:(E)=>dT(J,E)};let S=T.between[0],F=T.between[1],f=bF(J,{key:`${T.key}/relatedKeys`,default:()=>new lT,mutable:!0,fromJson:(E)=>lT.fromJSON(E),toJson:(E)=>E.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:f};let W=({get:E},V)=>E(f,V),A=({set:E},V,B)=>{if(!this.store.molecules.has(WT(V)))this.realm.allocate(T.key,V);E(f,V,(U)=>U.add(B)),E(f,B,(U)=>U.add(V))},X=({set:E},V,B)=>{E(f,V,(U)=>{return U.delete(B),U}),E(f,B,(U)=>{return U.delete(V),U})},w=(E,V,B)=>{let{find:U,get:h,set:l}=E,_=U(f,V),s=h(_);for(let p of s){if(B.includes(p))continue;l(f,p,(QT)=>{return QT.delete(V),QT})}l(_,(p)=>{return p.transaction(($T)=>{$T.clear();for(let QT of B){let hT=W(E,QT),k$=hT.has(V);if(this.relations.cardinality==="1:n"){let HJ=[];for(let N of hT){if(N===V)continue;let d=W(E,N);if(d.delete(QT),d.size===0)HJ.push(N)}if(!k$&&hT.size>0)hT.clear();for(let N of HJ){let d=[QT,N].sort(),KT=`"${d[0]}:${d[1]}"`;this.molecules.delete(KT)}}if(!k$)hT.add(V);$T.add(QT)}return!0}),p})},Y=(E,V,B)=>{let{set:U}=E;U(f,V,(h)=>{return h.transaction((l)=>{for(let _ of B)l.add(_);return!0}),h});for(let h of B)U(f,h,(l)=>{return l.add(V),l});return!0},M=(E,V,B)=>{let U=W(E,V);return B?U.has(B):U.size>0},G={getRelatedKeys:(E)=>W(this.toolkit,E),addRelation:(E,V)=>{this.store.moleculeJoins.set(E,T.key),this.store.moleculeJoins.set(V,T.key),A(this.toolkit,E,V)},deleteRelation:(E,V)=>{X(this.toolkit,E,V)},replaceRelationsSafely:(E,V)=>{w(this.toolkit,E,V)},replaceRelationsUnsafely:(E,V)=>{Y(this.toolkit,E,V)},has:(E,V)=>M(this.toolkit,E,V)},z,D;if($){D=zJ(J,{key:`${T.key}/content`,default:$},["join","content"]);let E=({get:U},h)=>U(D,h),V=({set:U},h,l)=>{U(D,h,l)};z=Object.assign(G,{getContent:(U)=>{return E(this.toolkit,U)},setContent:(U,h)=>{V(this.toolkit,U,h)},deleteContent:(U)=>{this.realm.deallocate(U)}})}else z=G;let R=new uT(T,{externalStore:z,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...E)=>{let[V,B]=E,U=E.sort(),h=`${U[0]}:${U[1]}`,l=J.molecules.get(WT(V)),_=J.molecules.get(WT(B));if(!l)this.realm.allocate(T.key,V);if(!_)this.realm.allocate(T.key,B);return this.realm.allocate(V,h,"all"),this.realm.claim(B,h),this.store.moleculeJoins.set(h,T.key),h}}),L=()=>DJ(J,{key:`${T.key}/singleRelatedKey`,get:(E)=>({get:V})=>{let B=V(f,E);for(let U of B)return U;return null}},["join","keys"]),x=()=>{return DJ(J,{key:`${T.key}/multipleRelatedKeys`,get:(E)=>({get:V})=>{let B=HW(f,J);return V(B,E).members}},["join","keys"])},y=()=>DJ(J,{key:`${T.key}/singleRelatedEntry`,get:(E)=>({get:V})=>{let B=V(f,E);for(let U of B){let h=R.isAType?.(E)?E:void 0,l=h===void 0?E:void 0;h??=U,l??=U;let _=R.makeContentKey(h,l),s=V(D,_);return[U,s]}return null}},["join","entries"]),I=()=>DJ(J,{key:`${T.key}/multipleRelatedEntries`,get:(E)=>({get:V})=>{let B=HW(f,J);return V(B,E).members.map((h)=>{let l=R.isAType?.(E)?E:void 0,_=l===void 0?E:void 0;l??=h,_??=h;let s=R.makeContentKey(l,_),p=V(D,s);return[h,p]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let E=L(),V=`${S}KeyOf${ET(F)}`,B=`${F}KeyOf${ET(S)}`,U={[V]:E,[B]:E},h;if($){let l=y(),_=`${S}EntryOf${ET(F)}`,s=`${F}EntryOf${ET(S)}`,p={[_]:l,[s]:l};h=Object.assign(U,p)}else h=U;this.relations=R,this.states=h;break}case"1:n":{let E=L(),V=x(),B=`${S}KeyOf${ET(F)}`,U=`${F}KeysOf${ET(S)}`,h={[B]:E,[U]:V},l;if($){let _=y(),s=I(),p=`${S}EntryOf${ET(F)}`,$T=`${F}EntriesOf${ET(S)}`,QT={[p]:_,[$T]:s};l=Object.assign(h,QT)}else l=h;this.relations=R,this.states=l;break}default:{let E=x(),V=`${S}KeysOf${ET(F)}`,B=`${F}KeysOf${ET(S)}`,U={[V]:E,[B]:E},h;if($){let l=I(),_=`${S}EntriesOf${ET(F)}`,s=`${F}EntriesOf${ET(S)}`,p={[_]:l,[s]:l};h=Object.assign(U,p)}else h=U;this.relations=R,this.states=h}}}}function mS(T,$){let J=$.joins.get(T.key);if(J===void 0){let F=AT.STORE.joins.get(T.key);if(F===void 0)throw new Error(`Join "${T.key}" not found in store "${$.config.name}"`);J=new mF(F.options,F.defaultContent,$),$.joins.set(T.key,J)}return J}function PF(T,$,J){let S=mS(T,J),F=b(J);if(zT(F)){let{toolkit:f}=F.transactionMeta;S.transact(f,({relations:W})=>{$(W)})}else $(S.relations)}function X1(T,$,J){let S=mS(T,J),F;switch(T.cardinality){case"1:1":{let f=`${T.a}KeyOf${ET(T.b)}`,W=`${T.b}KeyOf${ET(T.a)}`;F={get[f](){let X=S.states[f];return a(J,X,$)},get[W](){let X=S.states[W];return a(J,X,$)}};let A=`${T.a}EntryOf${ET(T.b)}`;if(A in S.states){let X=`${T.b}EntryOf${ET(T.a)}`;Object.assign(F,{get[A](){let w=S.states[A];return a(J,w,$)},get[X](){let w=S.states[X];return a(J,w,$)}})}break}case"1:n":{let f=`${T.a}KeyOf${ET(T.b)}`,W=`${T.b}KeysOf${ET(T.a)}`;F={get[f](){let X=S.states[f];return a(J,X,$)},get[W](){let X=S.states[W];return a(J,X,$)}};let A=`${T.a}EntryOf${ET(T.b)}`;if(A in S.states){let X=`${T.b}EntriesOf${ET(T.a)}`;Object.assign(F,{get[A](){let w=S.states[A];return a(J,w,$)},get[X](){let w=S.states[X];return a(J,w,$)}})}break}case"n:n":{let f=`${T.a}KeysOf${ET(T.b)}`,W=`${T.b}KeysOf${ET(T.a)}`;F={get[f](){let X=S.states[f];return a(J,X,$)},get[W](){let X=S.states[W];return a(J,X,$)}};let A=`${T.a}EntriesOf${ET(T.b)}`;if(A in S.states){let X=`${T.b}EntriesOf${ET(T.a)}`;Object.assign(F,{get[A](){let w=S.states[A];return a(J,w,$)},get[X](){let w=S.states[X];return a(J,w,$)}})}}}return F}function oA(T,$){return mS(T,$).core.relatedKeysAtoms}class NX extends Map{set(T,$){if(this.has(T))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:T,value:$}),this;return super.set(T,$)}clear(){throw new Error("Cannot clear an InvariantMap")}}class Q1{key;type="continuity";globals=[];actions=[];perspectives=[];constructor(T){this.key=T}static existing=new NX;static create(T,$){let J=new Q1(T),{type:S,globals:F,actions:f,perspectives:W}=$(J),A={type:S,key:T,globals:F,actions:f,perspectives:W};return Q1.existing.set(T,A),A}add(...T){switch(T[0].type){case"atom":case"mutable_atom":this.globals.push(...T);break;case"transaction":this.actions.push(...T);break;case"atom_family":{let[J,S]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:J,viewAtoms:S})}break}return this}}function hR(T){let{key:$,config:J}=T,S=Q1.create($,J),{actions:F}=S;for(let f of F)OX(AT.STORE,$,f.key);return GX(AT.STORE,$,-1),S}var nR=qS({key:"usersInRoomIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),OW=qS({key:"roomIndex",default:()=>new lT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),k7={enteredAtEpoch:0},oF=A1({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},k7),cR=w1({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=pA(oF);return[$(J,T)]}});import{spawn as U7}from"child_process";class PS{emit;listeners;globalListeners;handleEvent(T,...$){for(let S of this.globalListeners)S(T,...$);let J=this.listeners.get(T);if(J)for(let S of J)S(...$)}id="no_id_retrieved";constructor(T){this.emit=T;this.listeners=new Map,this.globalListeners=new Set}on(T,$){let J=this.listeners.get(T);if(J)J.add($);else this.listeners.set(T,new Set([$]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,$){let J=this.listeners.get(T);if(J)if($)J.delete($);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class zW extends PS{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[$,...J]=T;switch($){case"i":this.logger.info(...J);break;case"w":this.logger.warn(...J);break;case"e":this.logger.error(...J);break}}}constructor(T,$,J){super((S,...F)=>{let f=JSON.stringify([S,...F])+"\x03",W=(A)=>{if(A.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",W)};return this.process.stdin.once("error",W),this.process.stdin.write(f),this});if(this.process=T,this.key=$,this.logger=J??{info:(...S)=>{console.info(this.id,this.key,...S)},warn:(...S)=>{console.warn(this.id,this.key,...S)},error:(...S)=>{console.error(this.id,this.key,...S)}},this.process.stdout.on("data",(S)=>{let F=S.toString();if(F==="ALIVE")return;this.unprocessedEvents.push(...F.split("\x03"));let f=this.unprocessedEvents.shift();this.incompleteData+=f??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let W=$$(this.incompleteData);this.handleEvent(...W);while(this.unprocessedEvents.length>0){let A=this.unprocessedEvents.shift();if(A){if(this.unprocessedEvents.length===0)this.incompleteData=A;W=$$(A),this.handleEvent(...W)}}this.incompleteData=""}catch(W){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(W)}}),this.process.stderr.on("data",(S)=>{let F=S.toString();this.unprocessedLogs.push(...F.split("\x03"));let f=this.unprocessedLogs.shift();this.incompleteLog+=f??"";try{let W=$$(this.incompleteLog);this.handleLog(W);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)W=$$(this.incompleteLog),this.handleLog(W)}catch(W){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(W),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class CX extends PS{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new FT,this.out=new FT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class DW extends PS{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(WT(T.map(($)=>$ instanceof lT?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...$)=>{let J=JSON.stringify([T,...$]);return this.process.stdout.write(J+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let $=T.toString();this.unprocessedEvents.push(...$.split("\x03"));let J=this.unprocessedEvents.shift();this.incompleteData+=J??"";try{let S=$$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",S),this.handleEvent(...S);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;let f=$$(F);this.handleEvent(...f)}}this.incompleteData=""}catch(S){if(S instanceof Error)this.logger.error("\u2757",S.message,S.cause,S.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let $=new CX(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let J of this.relayServices){let S=J($);if(S)$.disposalFunctions.push(S)}this.on(`user:${T}`,(...J)=>{$.in.next(J)}),$.out.subscribe("socket",(J)=>{this.emit(...J)})}),this.on("user-leaves",(T)=>{let $=this.relays.get(T);if(this.off(`relay:${T}`),$)$.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var QW=rJ({key:"roomArguments",default:["echo",["Hello World!"]]}),jX=w1({key:"room",get:(T)=>async({get:$,find:J})=>{let S=J(QW,T),F=$(S),[f,W]=F,A=await new Promise((X)=>{let w=U7(f,W,{env:process.env}),Y=(M)=>{if(M.toString()==="ALIVE")w.stdout.off("data",Y),X(w)};w.stdout.on("data",Y)});return new zW(A,T)}});var H_=cF({key:"createRoom",do:({get:T,set:$,find:J},S,F,f)=>{let W=f?[F,f]:[F],A=J(QW,S);$(A,W),$(OW,(Y)=>Y.add(S));let X=J(jX,S);return T(X)}}),O_=cF({key:"joinRoom",do:(T,$,J,S)=>{let F={enteredAtEpoch:S};return PF(oF,(f)=>{f.set({room:$,user:J},F)},T.env().store),F}}),z_=cF({key:"leaveRoom",do:(T,$,J)=>{PF(oF,(S)=>{S.delete({room:$,user:J})},T.env().store)}}),D_=cF({key:"destroyRoom",do:(T,$)=>{PF(oF,(J)=>{J.delete({room:$})},T.env().store),T.set(OW,(J)=>(J.delete($),J))}});function EW(T,$){return $.map((J)=>{switch(J.type){case"transaction_update":{let S=EW(T,J.updates);return{...J,updates:S}}default:return J}}).filter((J)=>{switch(J.type){case"atom_update":case"selector_update":return T.includes(J.key);case"state_creation":return T.includes(J.token.key);case"molecule_creation":return!0;case"transaction_update":return!0}})}var R_=rJ({key:"redactor",default:{occlude:(T)=>T}}),nS=rJ({key:"unacknowledgedUpdates",default:()=>[]});var xX=rJ({key:"sockets",default:null}),V_=qS({key:"socketsIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),B_=qS({key:"usersIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),RW=A1({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function IX(T,$,J,S){let F=$.key;return function f(){let W=[];for(let X of $.globals){let w=X.type==="mutable_atom"?dT(T,X):X,Y=OT(T,w);W.push(w,Y)}for(let X of $.perspectives){let{viewAtoms:w,resourceAtoms:Y}=X,M=a(T,w,J),G=OT(T,M);T.logger.info("\uD83D\uDC41","atom",Y.key,`${J} can see`,{viewAtoms:w,resourceAtoms:Y,userView:G});for(let z of G){let D=z.type==="mutable_atom"?dT(T,z):z,R=OT(T,D);W.push(D,R)}}let A=iT(T)?T.transactionMeta.epoch.get(F)??null:null;S?.emit(`continuity-init:${F}`,A,W)}}function ZX(T,$,J){let S=$.key;return function F(f){T.logger.info("\uD83D\uDECE\uFE0F","continuity",S,"received",f);let{key:W,id:A}=f,X=`tx-run:${W}:${A}`,w=`${X}:start`,Y=`${X}:end`;performance.mark(w);try{hS(T,{type:"transaction",key:W},A)(...f.params)}catch(G){if(G instanceof Error)T.logger.error("\u274C","continuity",S,`failed to run transaction ${W} from ${J} with update ${A}`,G.message)}performance.mark(Y);let M=performance.measure(X,w,Y);T?.logger.info("\uD83D\uDE80","transaction",W,A,J,M.duration)}}function qX(T,$,J,S){let F=$.key;return function f(W){if(T.logger.info("\uD83D\uDC4D","continuity",F,`${J} acknowledged epoch ${W}`),S[0]?.epoch===W)nT(T,nS,J,(X)=>{return X.shift(),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,X.length,"items"),X})}}function bX(T,$,J,S){let F=$.key,f=[];for(let W of $.actions){let A=MW(T,W,`sync-continuity:${F}:${J}`,(X)=>{try{let w=$.globals.map((G)=>{if(G.type==="atom")return G.key;return QJ(G).key}).concat($.perspectives.flatMap((G)=>{let{viewAtoms:z}=G,D=a(T,z,J);return OT(T,D).map((L)=>{return L.type==="mutable_atom"?"*"+L.key:L.key})})),Y=EW(w,X.updates),M={...X,updates:Y};nT(T,nS,J,(G)=>{if(M)G.push(M),G.sort((z,D)=>z.epoch-D.epoch),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,G.length,"items");return G}),S?.emit(`tx-new:${F}`,M)}catch(w){if(w instanceof Error)T.logger.error("\u274C","continuity",F,`${J} failed to send update from transaction ${W.key} to ${J}`,w.message)}});f.push(A)}return f}function hX(T,$,J,S){let F=$.key,f=[];for(let W of $.perspectives){let{viewAtoms:A}=W,X=a(T,A,J),w=K$(T,X,`sync-continuity:${F}:${J}:perspective:${W.resourceAtoms.key}`,({oldValue:Y,newValue:M})=>{let G=Y.map((L)=>L.key),z=M.map((L)=>L.key),D=Y.filter((L)=>!z.includes(L.key)),R=M.filter((L)=>!G.includes(L.key)).flatMap((L)=>{let x=L.type==="mutable_atom"?dT(T,L):L,y=OT(T,x);return[x,y]});if(T.logger.info("\uD83D\uDC41","atom",W.resourceAtoms.key,`${J} has a new perspective`,{oldKeys:G,newKeys:z,revealed:R,concealed:D}),R.length>0)S?.emit(`reveal:${F}`,R);if(D.length>0)S?.emit(`conceal:${F}`,D)});f.push(w)}return f}function Tk({socket:T,store:$=AT.STORE}){return function J(S){let F=T,f=S.key,W=X1(RW,`socket::${F.id}`,$).userKeyOfSocket,A=OT($,W);if(!A)return $.logger.error("\u274C","continuity",f,`Tried to create a synchronizer for a socket (${F.id}) that is not connected to a user.`),()=>{};let X=X1(RW,A,$).socketKeyOfUser,w=K$($,X,`sync-continuity:${f}:${A}`,({newValue:x})=>{if($.logger.info("\uD83D\uDC4B","continuity",f,`seeing ${A} on new socket ${x}`),x===null){$.logger.warn("\u274C","continuity",f,`User (${A}) is not connected to a socket, waiting for them to reappear.`);return}let y=a($,xX,x);F=OT($,y);for(let E of Y)F?.emit(`tx-new:${f}`,E)}),Y=OT($,nS,A),M=[],G=hX($,S,A,F),z=bX($,S,A,F);M.push(...G,...z);let D=IX($,S,A,T);F.off(`get:${f}`,D),F.on(`get:${f}`,D);let R=ZX($,S,A);F.off(`tx-run:${f}`,R),F.on(`tx-run:${f}`,R);let L=qX($,S,A,Y);return F?.on(`ack:${f}`,L),()=>{for(let x of M)x();F?.off(`ack:${f}`,L),F?.off(`get:${f}`,D),F?.off(`tx-run:${f}`,R)}}}var mX=Symbol("Let zodToJsonSchema decide on which parser to use");var vX={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},PX=(T)=>typeof T==="string"?{...vX,name:T}:{...vX,...T};var nX=(T)=>{let $=PX(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([S,F])=>[F._def,{def:F._def,path:[...$.basePath,$.definitionPath,S],jsonSchema:void 0}]))}};function _W(T,$,J,S){if(!S?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function YT(T,$,J,S,F){T[$]=J,_W(T,$,S,F)}var MT;(function(T){T.assertEqual=(F)=>F;function $(F){}T.assertIs=$;function J(F){throw new Error}T.assertNever=J,T.arrayToEnum=(F)=>{let f={};for(let W of F)f[W]=W;return f},T.getValidEnumValues=(F)=>{let f=T.objectKeys(F).filter((A)=>typeof F[F[A]]!=="number"),W={};for(let A of f)W[A]=F[A];return T.objectValues(W)},T.objectValues=(F)=>{return T.objectKeys(F).map(function(f){return F[f]})},T.objectKeys=typeof Object.keys==="function"?(F)=>Object.keys(F):(F)=>{let f=[];for(let W in F)if(Object.prototype.hasOwnProperty.call(F,W))f.push(W);return f},T.find=(F,f)=>{for(let W of F)if(f(W))return W;return},T.isInteger=typeof Number.isInteger==="function"?(F)=>Number.isInteger(F):(F)=>typeof F==="number"&&isFinite(F)&&Math.floor(F)===F;function S(F,f=" | "){return F.map((W)=>typeof W==="string"?`'${W}'`:W).join(f)}T.joinValues=S,T.jsonStringifyReplacer=(F,f)=>{if(typeof f==="bigint")return f.toString();return f}})(MT||(MT={}));var UW;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(UW||(UW={}));var n=MT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),RJ=(T)=>{switch(typeof T){case"undefined":return n.undefined;case"string":return n.string;case"number":return isNaN(T)?n.nan:n.number;case"boolean":return n.boolean;case"function":return n.function;case"bigint":return n.bigint;case"symbol":return n.symbol;case"object":if(Array.isArray(T))return n.array;if(T===null)return n.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return n.promise;if(typeof Map!=="undefined"&&T instanceof Map)return n.map;if(typeof Set!=="undefined"&&T instanceof Set)return n.set;if(typeof Date!=="undefined"&&T instanceof Date)return n.date;return n.object;default:return n.unknown}},C=MT.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"]),V7=(T)=>{return JSON.stringify(T,null,2).replace(/"([^"]+)":/g,"$1:")};class C$ extends Error{get errors(){return this.issues}constructor(T){super();this.issues=[],this.addIssue=(J)=>{this.issues=[...this.issues,J]},this.addIssues=(J=[])=>{this.issues=[...this.issues,...J]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=T}format(T){let $=T||function(F){return F.message},J={_errors:[]},S=(F)=>{for(let f of F.issues)if(f.code==="invalid_union")f.unionErrors.map(S);else if(f.code==="invalid_return_type")S(f.returnTypeError);else if(f.code==="invalid_arguments")S(f.argumentsError);else if(f.path.length===0)J._errors.push($(f));else{let W=J,A=0;while(A<f.path.length){let X=f.path[A];if(A!==f.path.length-1)W[X]=W[X]||{_errors:[]};else W[X]=W[X]||{_errors:[]},W[X]._errors.push($(f));W=W[X],A++}}};return S(this),J}static assert(T){if(!(T instanceof C$))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,MT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=($)=>$.message){let $={},J=[];for(let S of this.issues)if(S.path.length>0)$[S.path[0]]=$[S.path[0]]||[],$[S.path[0]].push(T(S));else J.push(T(S));return{formErrors:J,fieldErrors:$}}get formErrors(){return this.flatten()}}C$.create=(T)=>{return new C$(T)};var oS=(T,$)=>{let J;switch(T.code){case C.invalid_type:if(T.received===n.undefined)J="Required";else J=`Expected ${T.expected}, received ${T.received}`;break;case C.invalid_literal:J=`Invalid literal value, expected ${JSON.stringify(T.expected,MT.jsonStringifyReplacer)}`;break;case C.unrecognized_keys:J=`Unrecognized key(s) in object: ${MT.joinValues(T.keys,", ")}`;break;case C.invalid_union:J="Invalid input";break;case C.invalid_union_discriminator:J=`Invalid discriminator value. Expected ${MT.joinValues(T.options)}`;break;case C.invalid_enum_value:J=`Invalid enum value. Expected ${MT.joinValues(T.options)}, received '${T.received}'`;break;case C.invalid_arguments:J="Invalid function arguments";break;case C.invalid_return_type:J="Invalid function return type";break;case C.invalid_date:J="Invalid date";break;case C.invalid_string:if(typeof T.validation==="object")if("includes"in T.validation){if(J=`Invalid input: must include "${T.validation.includes}"`,typeof T.validation.position==="number")J=`${J} at one or more positions greater than or equal to ${T.validation.position}`}else if("startsWith"in T.validation)J=`Invalid input: must start with "${T.validation.startsWith}"`;else if("endsWith"in T.validation)J=`Invalid input: must end with "${T.validation.endsWith}"`;else MT.assertNever(T.validation);else if(T.validation!=="regex")J=`Invalid ${T.validation}`;else J="Invalid";break;case C.too_small:if(T.type==="array")J=`Array must contain ${T.exact?"exactly":T.inclusive?"at least":"more than"} ${T.minimum} element(s)`;else if(T.type==="string")J=`String must contain ${T.exact?"exactly":T.inclusive?"at least":"over"} ${T.minimum} character(s)`;else if(T.type==="number")J=`Number must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${T.minimum}`;else if(T.type==="date")J=`Date must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(T.minimum))}`;else J="Invalid input";break;case C.too_big:if(T.type==="array")J=`Array must contain ${T.exact?"exactly":T.inclusive?"at most":"less than"} ${T.maximum} element(s)`;else if(T.type==="string")J=`String must contain ${T.exact?"exactly":T.inclusive?"at most":"under"} ${T.maximum} character(s)`;else if(T.type==="number")J=`Number must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="bigint")J=`BigInt must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="date")J=`Date must be ${T.exact?"exactly":T.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(T.maximum))}`;else J="Invalid input";break;case C.custom:J="Invalid input";break;case C.invalid_intersection_types:J="Intersection results could not be merged";break;case C.not_multiple_of:J=`Number must be a multiple of ${T.multipleOf}`;break;case C.not_finite:J="Number must be finite";break;default:J=$.defaultError,MT.assertNever(T)}return{message:J}},oX=oS;function B7(T){oX=T}function E1(){return oX}var R1=(T)=>{let{data:$,path:J,errorMaps:S,issueData:F}=T,f=[...J,...F.path||[]],W={...F,path:f};if(F.message!==void 0)return{...F,path:f,message:F.message};let A="",X=S.filter((w)=>!!w).slice().reverse();for(let w of X)A=w(W,{data:$,defaultError:A}).message;return{...F,path:f,message:A}},y7=[];function v(T,$){let J=E1(),S=R1({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===oS?void 0:oS].filter((F)=>!!F)});T.common.issues.push(S)}class H${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,$){let J=[];for(let S of $){if(S.status==="aborted")return e;if(S.status==="dirty")T.dirty();J.push(S.value)}return{status:T.value,value:J}}static async mergeObjectAsync(T,$){let J=[];for(let S of $){let F=await S.key,f=await S.value;J.push({key:F,value:f})}return H$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let S of $){let{key:F,value:f}=S;if(F.status==="aborted")return e;if(f.status==="aborted")return e;if(F.status==="dirty")T.dirty();if(f.status==="dirty")T.dirty();if(F.value!=="__proto__"&&(typeof f.value!=="undefined"||S.alwaysSet))J[F.value]=f.value}return{status:T.value,value:J}}}var e=Object.freeze({status:"aborted"}),gS=(T)=>({status:"dirty",value:T}),Q$=(T)=>({status:"valid",value:T}),VW=(T)=>T.status==="aborted",BW=(T)=>T.status==="dirty",JS=(T)=>T.status==="valid",iF=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function _1(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)}function tX(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J}var o;(function(T){T.errToObj=($)=>typeof $==="string"?{message:$}:$||{},T.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(o||(o={}));var tF,dF;class r${constructor(T,$,J,S){this._cachedPath=[],this.parent=T,this.data=$,this._path=J,this._key=S}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var cX=(T,$)=>{if(JS($))return{success:!0,data:$.value};else{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 J=new C$(T.common.issues);return this._error=J,this._error}}}};function JT(T){if(!T)return{};let{errorMap:$,invalid_type_error:J,required_error:S,description:F}=T;if($&&(J||S))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:F};return{errorMap:(W,A)=>{var X,w;let{message:Y}=T;if(W.code==="invalid_enum_value")return{message:Y!==null&&Y!==void 0?Y:A.defaultError};if(typeof A.data==="undefined")return{message:(X=Y!==null&&Y!==void 0?Y:S)!==null&&X!==void 0?X:A.defaultError};if(W.code!=="invalid_type")return{message:A.defaultError};return{message:(w=Y!==null&&Y!==void 0?Y:J)!==null&&w!==void 0?w:A.defaultError}},description:F}}class ST{get description(){return this._def.description}_getType(T){return RJ(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:RJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new H$,ctx:{common:T.parent.common,data:T.data,parsedType:RJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(iF($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(T){let $=this._parse(T);return Promise.resolve($)}parse(T,$){let J=this.safeParse(T,$);if(J.success)return J.data;throw J.error}safeParse(T,$){var J;let S={common:{issues:[],async:(J=$===null||$===void 0?void 0:$.async)!==null&&J!==void 0?J:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:RJ(T)},F=this._parseSync({data:T,path:S.path,parent:S});return cX(S,F)}"~validate"(T){var $,J;let S={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:RJ(T)};if(!this["~standard"].async)try{let F=this._parseSync({data:T,path:[],parent:S});return JS(F)?{value:F.value}:{issues:S.common.issues}}catch(F){if((J=($=F===null||F===void 0?void 0:F.message)===null||$===void 0?void 0:$.toLowerCase())===null||J===void 0?void 0:J.includes("encountered"))this["~standard"].async=!0;S.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:S}).then((F)=>JS(F)?{value:F.value}:{issues:S.common.issues})}async parseAsync(T,$){let J=await this.safeParseAsync(T,$);if(J.success)return J.data;throw J.error}async safeParseAsync(T,$){let J={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:RJ(T)},S=this._parse({data:T,path:J.path,parent:J}),F=await(iF(S)?S:Promise.resolve(S));return cX(J,F)}refine(T,$){let J=(S)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(S);else return $};return this._refinement((S,F)=>{let f=T(S),W=()=>F.addIssue({code:C.custom,...J(S)});if(typeof Promise!=="undefined"&&f instanceof Promise)return f.then((A)=>{if(!A)return W(),!1;else return!0});if(!f)return W(),!1;else return!0})}refinement(T,$){return this._refinement((J,S)=>{if(!T(J))return S.addIssue(typeof $==="function"?$(J,S):$),!1;else return!0})}_refinement(T){return new c$({schema:this,typeName:j.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,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:($)=>this["~validate"]($)}}optional(){return j$.create(this,this._def)}nullable(){return _J.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return l$.create(this)}promise(){return WS.create(this,this._def)}or(T){return uS.create([this,T],this._def)}and(T){return lS.create(this,T,this._def)}transform(T){return new c$({...JT(this._def),schema:this,typeName:j.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new eS({...JT(this._def),innerType:this,defaultValue:$,typeName:j.ZodDefault})}brand(){return new U1({typeName:j.ZodBranded,type:this,...JT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new TF({...JT(this._def),innerType:this,catchValue:$,typeName:j.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return eF.create(this,T)}readonly(){return $F.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var L7=/^c[^\s-]{8,}$/i,N7=/^[0-9a-z]+$/,C7=/^[0-9A-HJKMNP-TV-Z]{26}$/i,j7=/^[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,x7=/^[a-z0-9_-]{21}$/i,I7=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Z7=/^[-+]?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)?)??$/,q7=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,b7="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",kW,h7=/^(?:(?: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])$/,v7=/^(?:(?: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])$/,m7=/^(([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]))$/,P7=/^(([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])$/,n7=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,c7=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dX="((\\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])))",g7=new RegExp(`^${dX}$`);function iX(T){let $="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(T.precision)$=`${$}\\.\\d{${T.precision}}`;else if(T.precision==null)$=`${$}(\\.\\d+)?`;return $}function p7(T){return new RegExp(`^${iX(T)}$`)}function uX(T){let $=`${dX}T${iX(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function o7(T,$){if(($==="v4"||!$)&&h7.test(T))return!0;if(($==="v6"||!$)&&m7.test(T))return!0;return!1}function t7(T,$){if(!I7.test(T))return!1;try{let[J]=T.split("."),S=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),F=JSON.parse(atob(S));if(typeof F!=="object"||F===null)return!1;if(!F.typ||!F.alg)return!1;if($&&F.alg!==$)return!1;return!0}catch(J){return!1}}function d7(T,$){if(($==="v4"||!$)&&v7.test(T))return!0;if(($==="v6"||!$)&&P7.test(T))return!0;return!1}class u$ extends ST{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==n.string){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:n.string,received:F.parsedType}),e}let J=new H$,S=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.length<F.value)S=this._getOrReturnCtx(T,S),v(S,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="max"){if(T.data.length>F.value)S=this._getOrReturnCtx(T,S),v(S,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="length"){let f=T.data.length>F.value,W=T.data.length<F.value;if(f||W){if(S=this._getOrReturnCtx(T,S),f)v(S,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});else if(W)v(S,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});J.dirty()}}else if(F.kind==="email"){if(!q7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"email",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="emoji"){if(!kW)kW=new RegExp(b7,"u");if(!kW.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"emoji",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="uuid"){if(!j7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"uuid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="nanoid"){if(!x7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"nanoid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid"){if(!L7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"cuid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid2"){if(!N7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"cuid2",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ulid"){if(!C7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"ulid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="url")try{new URL(T.data)}catch(f){S=this._getOrReturnCtx(T,S),v(S,{validation:"url",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="regex"){if(F.regex.lastIndex=0,!F.regex.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"regex",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="trim")T.data=T.data.trim();else if(F.kind==="includes"){if(!T.data.includes(F.value,F.position))S=this._getOrReturnCtx(T,S),v(S,{code:C.invalid_string,validation:{includes:F.value,position:F.position},message:F.message}),J.dirty()}else if(F.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(F.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(F.kind==="startsWith"){if(!T.data.startsWith(F.value))S=this._getOrReturnCtx(T,S),v(S,{code:C.invalid_string,validation:{startsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="endsWith"){if(!T.data.endsWith(F.value))S=this._getOrReturnCtx(T,S),v(S,{code:C.invalid_string,validation:{endsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="datetime"){if(!uX(F).test(T.data))S=this._getOrReturnCtx(T,S),v(S,{code:C.invalid_string,validation:"datetime",message:F.message}),J.dirty()}else if(F.kind==="date"){if(!g7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{code:C.invalid_string,validation:"date",message:F.message}),J.dirty()}else if(F.kind==="time"){if(!p7(F).test(T.data))S=this._getOrReturnCtx(T,S),v(S,{code:C.invalid_string,validation:"time",message:F.message}),J.dirty()}else if(F.kind==="duration"){if(!Z7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"duration",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ip"){if(!o7(T.data,F.version))S=this._getOrReturnCtx(T,S),v(S,{validation:"ip",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="jwt"){if(!t7(T.data,F.alg))S=this._getOrReturnCtx(T,S),v(S,{validation:"jwt",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cidr"){if(!d7(T.data,F.version))S=this._getOrReturnCtx(T,S),v(S,{validation:"cidr",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64"){if(!n7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"base64",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64url"){if(!c7.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"base64url",code:C.invalid_string,message:F.message}),J.dirty()}else MT.assertNever(F);return{status:J.value,value:T.data}}_regex(T,$,J){return this.refinement((S)=>T.test(S),{validation:$,code:C.invalid_string,...o.errToObj(J)})}_addCheck(T){return new u$({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...o.errToObj(T)})}url(T){return this._addCheck({kind:"url",...o.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...o.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...o.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...o.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...o.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...o.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...o.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...o.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...o.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...o.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...o.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...o.errToObj(T)})}datetime(T){var $,J;if(typeof T==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T});return this._addCheck({kind:"datetime",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,offset:($=T===null||T===void 0?void 0:T.offset)!==null&&$!==void 0?$:!1,local:(J=T===null||T===void 0?void 0:T.local)!==null&&J!==void 0?J:!1,...o.errToObj(T===null||T===void 0?void 0:T.message)})}date(T){return this._addCheck({kind:"date",message:T})}time(T){if(typeof T==="string")return this._addCheck({kind:"time",precision:null,message:T});return this._addCheck({kind:"time",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,...o.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...o.errToObj(T)})}regex(T,$){return this._addCheck({kind:"regex",regex:T,...o.errToObj($)})}includes(T,$){return this._addCheck({kind:"includes",value:T,position:$===null||$===void 0?void 0:$.position,...o.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(T,$){return this._addCheck({kind:"startsWith",value:T,...o.errToObj($)})}endsWith(T,$){return this._addCheck({kind:"endsWith",value:T,...o.errToObj($)})}min(T,$){return this._addCheck({kind:"min",value:T,...o.errToObj($)})}max(T,$){return this._addCheck({kind:"max",value:T,...o.errToObj($)})}length(T,$){return this._addCheck({kind:"length",value:T,...o.errToObj($)})}nonempty(T){return this.min(1,o.errToObj(T))}trim(){return new u$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new u$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new u$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((T)=>T.kind==="datetime")}get isDate(){return!!this._def.checks.find((T)=>T.kind==="date")}get isTime(){return!!this._def.checks.find((T)=>T.kind==="time")}get isDuration(){return!!this._def.checks.find((T)=>T.kind==="duration")}get isEmail(){return!!this._def.checks.find((T)=>T.kind==="email")}get isURL(){return!!this._def.checks.find((T)=>T.kind==="url")}get isEmoji(){return!!this._def.checks.find((T)=>T.kind==="emoji")}get isUUID(){return!!this._def.checks.find((T)=>T.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((T)=>T.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((T)=>T.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((T)=>T.kind==="cuid2")}get isULID(){return!!this._def.checks.find((T)=>T.kind==="ulid")}get isIP(){return!!this._def.checks.find((T)=>T.kind==="ip")}get isCIDR(){return!!this._def.checks.find((T)=>T.kind==="cidr")}get isBase64(){return!!this._def.checks.find((T)=>T.kind==="base64")}get isBase64url(){return!!this._def.checks.find((T)=>T.kind==="base64url")}get minLength(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxLength(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}u$.create=(T)=>{var $;return new u$({checks:[],typeName:j.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};function i7(T,$){let J=(T.toString().split(".")[1]||"").length,S=($.toString().split(".")[1]||"").length,F=J>S?J:S,f=parseInt(T.toFixed(F).replace(".","")),W=parseInt($.toFixed(F).replace(".",""));return f%W/Math.pow(10,F)}class mJ extends ST{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==n.number){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:n.number,received:F.parsedType}),e}let J=void 0,S=new H$;for(let F of this._def.checks)if(F.kind==="int"){if(!MT.isInteger(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:C.invalid_type,expected:"integer",received:"float",message:F.message}),S.dirty()}else if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_small,minimum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),S.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_big,maximum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),S.dirty()}else if(F.kind==="multipleOf"){if(i7(T.data,F.value)!==0)J=this._getOrReturnCtx(T,J),v(J,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),S.dirty()}else if(F.kind==="finite"){if(!Number.isFinite(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:C.not_finite,message:F.message}),S.dirty()}else MT.assertNever(F);return{status:S.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,o.toString($))}gt(T,$){return this.setLimit("min",T,!1,o.toString($))}lte(T,$){return this.setLimit("max",T,!0,o.toString($))}lt(T,$){return this.setLimit("max",T,!1,o.toString($))}setLimit(T,$,J,S){return new mJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(S)}]})}_addCheck(T){return new mJ({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:o.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:o.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:o.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:o.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:o.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:o.toString($)})}finite(T){return this._addCheck({kind:"finite",message:o.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:o.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:o.toString(T)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}get isInt(){return!!this._def.checks.find((T)=>T.kind==="int"||T.kind==="multipleOf"&&MT.isInteger(T.value))}get isFinite(){let T=null,$=null;for(let J of this._def.checks)if(J.kind==="finite"||J.kind==="int"||J.kind==="multipleOf")return!0;else if(J.kind==="min"){if($===null||J.value>$)$=J.value}else if(J.kind==="max"){if(T===null||J.value<T)T=J.value}return Number.isFinite($)&&Number.isFinite(T)}}mJ.create=(T)=>{return new mJ({checks:[],typeName:j.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class PJ extends ST{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(F){return this._getInvalidInput(T)}if(this._getType(T)!==n.bigint)return this._getInvalidInput(T);let J=void 0,S=new H$;for(let F of this._def.checks)if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_small,type:"bigint",minimum:F.value,inclusive:F.inclusive,message:F.message}),S.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_big,type:"bigint",maximum:F.value,inclusive:F.inclusive,message:F.message}),S.dirty()}else if(F.kind==="multipleOf"){if(T.data%F.value!==BigInt(0))J=this._getOrReturnCtx(T,J),v(J,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),S.dirty()}else MT.assertNever(F);return{status:S.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:n.bigint,received:$.parsedType}),e}gte(T,$){return this.setLimit("min",T,!0,o.toString($))}gt(T,$){return this.setLimit("min",T,!1,o.toString($))}lte(T,$){return this.setLimit("max",T,!0,o.toString($))}lt(T,$){return this.setLimit("max",T,!1,o.toString($))}setLimit(T,$,J,S){return new PJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(S)}]})}_addCheck(T){return new PJ({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:o.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:o.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:o.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:o.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:o.toString($)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}PJ.create=(T)=>{var $;return new PJ({checks:[],typeName:j.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};class tS extends ST{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==n.boolean){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:n.boolean,received:J.parsedType}),e}return Q$(T.data)}}tS.create=(T)=>{return new tS({typeName:j.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class SS extends ST{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==n.date){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:n.date,received:F.parsedType}),e}if(isNaN(T.data.getTime())){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_date}),e}let J=new H$,S=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.getTime()<F.value)S=this._getOrReturnCtx(T,S),v(S,{code:C.too_small,message:F.message,inclusive:!0,exact:!1,minimum:F.value,type:"date"}),J.dirty()}else if(F.kind==="max"){if(T.data.getTime()>F.value)S=this._getOrReturnCtx(T,S),v(S,{code:C.too_big,message:F.message,inclusive:!0,exact:!1,maximum:F.value,type:"date"}),J.dirty()}else MT.assertNever(F);return{status:J.value,value:new Date(T.data.getTime())}}_addCheck(T){return new SS({...this._def,checks:[...this._def.checks,T]})}min(T,$){return this._addCheck({kind:"min",value:T.getTime(),message:o.toString($)})}max(T,$){return this._addCheck({kind:"max",value:T.getTime(),message:o.toString($)})}get minDate(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T!=null?new Date(T):null}get maxDate(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T!=null?new Date(T):null}}SS.create=(T)=>{return new SS({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:j.ZodDate,...JT(T)})};class uF extends ST{_parse(T){if(this._getType(T)!==n.symbol){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:n.symbol,received:J.parsedType}),e}return Q$(T.data)}}uF.create=(T)=>{return new uF({typeName:j.ZodSymbol,...JT(T)})};class dS extends ST{_parse(T){if(this._getType(T)!==n.undefined){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:n.undefined,received:J.parsedType}),e}return Q$(T.data)}}dS.create=(T)=>{return new dS({typeName:j.ZodUndefined,...JT(T)})};class iS extends ST{_parse(T){if(this._getType(T)!==n.null){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:n.null,received:J.parsedType}),e}return Q$(T.data)}}iS.create=(T)=>{return new iS({typeName:j.ZodNull,...JT(T)})};class FS extends ST{constructor(){super(...arguments);this._any=!0}_parse(T){return Q$(T.data)}}FS.create=(T)=>{return new FS({typeName:j.ZodAny,...JT(T)})};class vJ extends ST{constructor(){super(...arguments);this._unknown=!0}_parse(T){return Q$(T.data)}}vJ.create=(T)=>{return new vJ({typeName:j.ZodUnknown,...JT(T)})};class AJ extends ST{_parse(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:n.never,received:$.parsedType}),e}}AJ.create=(T)=>{return new AJ({typeName:j.ZodNever,...JT(T)})};class lF extends ST{_parse(T){if(this._getType(T)!==n.undefined){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:n.void,received:J.parsedType}),e}return Q$(T.data)}}lF.create=(T)=>{return new lF({typeName:j.ZodVoid,...JT(T)})};class l$ extends ST{_parse(T){let{ctx:$,status:J}=this._processInputParams(T),S=this._def;if($.parsedType!==n.array)return v($,{code:C.invalid_type,expected:n.array,received:$.parsedType}),e;if(S.exactLength!==null){let f=$.data.length>S.exactLength.value,W=$.data.length<S.exactLength.value;if(f||W)v($,{code:f?C.too_big:C.too_small,minimum:W?S.exactLength.value:void 0,maximum:f?S.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:S.exactLength.message}),J.dirty()}if(S.minLength!==null){if($.data.length<S.minLength.value)v($,{code:C.too_small,minimum:S.minLength.value,type:"array",inclusive:!0,exact:!1,message:S.minLength.message}),J.dirty()}if(S.maxLength!==null){if($.data.length>S.maxLength.value)v($,{code:C.too_big,maximum:S.maxLength.value,type:"array",inclusive:!0,exact:!1,message:S.maxLength.message}),J.dirty()}if($.common.async)return Promise.all([...$.data].map((f,W)=>{return S.type._parseAsync(new r$($,f,$.path,W))})).then((f)=>{return H$.mergeArray(J,f)});let F=[...$.data].map((f,W)=>{return S.type._parseSync(new r$($,f,$.path,W))});return H$.mergeArray(J,F)}get element(){return this._def.type}min(T,$){return new l$({...this._def,minLength:{value:T,message:o.toString($)}})}max(T,$){return new l$({...this._def,maxLength:{value:T,message:o.toString($)}})}length(T,$){return new l$({...this._def,exactLength:{value:T,message:o.toString($)}})}nonempty(T){return this.min(1,T)}}l$.create=(T,$)=>{return new l$({type:T,minLength:null,maxLength:null,exactLength:null,typeName:j.ZodArray,...JT($)})};function cS(T){if(T instanceof qT){let $={};for(let J in T.shape){let S=T.shape[J];$[J]=j$.create(cS(S))}return new qT({...T._def,shape:()=>$})}else if(T instanceof l$)return new l$({...T._def,type:cS(T.element)});else if(T instanceof j$)return j$.create(cS(T.unwrap()));else if(T instanceof _J)return _J.create(cS(T.unwrap()));else if(T instanceof XJ)return XJ.create(T.items.map(($)=>cS($)));else return T}class qT extends ST{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let T=this._def.shape(),$=MT.objectKeys(T);return this._cached={shape:T,keys:$}}_parse(T){if(this._getType(T)!==n.object){let X=this._getOrReturnCtx(T);return v(X,{code:C.invalid_type,expected:n.object,received:X.parsedType}),e}let{status:J,ctx:S}=this._processInputParams(T),{shape:F,keys:f}=this._getCached(),W=[];if(!(this._def.catchall instanceof AJ&&this._def.unknownKeys==="strip")){for(let X in S.data)if(!f.includes(X))W.push(X)}let A=[];for(let X of f){let w=F[X],Y=S.data[X];A.push({key:{status:"valid",value:X},value:w._parse(new r$(S,Y,S.path,X)),alwaysSet:X in S.data})}if(this._def.catchall instanceof AJ){let X=this._def.unknownKeys;if(X==="passthrough")for(let w of W)A.push({key:{status:"valid",value:w},value:{status:"valid",value:S.data[w]}});else if(X==="strict"){if(W.length>0)v(S,{code:C.unrecognized_keys,keys:W}),J.dirty()}else if(X==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let X=this._def.catchall;for(let w of W){let Y=S.data[w];A.push({key:{status:"valid",value:w},value:X._parse(new r$(S,Y,S.path,w)),alwaysSet:w in S.data})}}if(S.common.async)return Promise.resolve().then(async()=>{let X=[];for(let w of A){let Y=await w.key,M=await w.value;X.push({key:Y,value:M,alwaysSet:w.alwaysSet})}return X}).then((X)=>{return H$.mergeObjectSync(J,X)});else return H$.mergeObjectSync(J,A)}get shape(){return this._def.shape()}strict(T){return o.errToObj,new qT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var S,F,f,W;let A=(f=(F=(S=this._def).errorMap)===null||F===void 0?void 0:F.call(S,$,J).message)!==null&&f!==void 0?f:J.defaultError;if($.code==="unrecognized_keys")return{message:(W=o.errToObj(T).message)!==null&&W!==void 0?W:A};return{message:A}}}:{}})}strip(){return new qT({...this._def,unknownKeys:"strip"})}passthrough(){return new qT({...this._def,unknownKeys:"passthrough"})}extend(T){return new qT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new qT({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:j.ZodObject})}setKey(T,$){return this.augment({[T]:$})}catchall(T){return new qT({...this._def,catchall:T})}pick(T){let $={};return MT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new qT({...this._def,shape:()=>$})}omit(T){let $={};return MT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new qT({...this._def,shape:()=>$})}deepPartial(){return cS(this)}partial(T){let $={};return MT.objectKeys(this.shape).forEach((J)=>{let S=this.shape[J];if(T&&!T[J])$[J]=S;else $[J]=S.optional()}),new qT({...this._def,shape:()=>$})}required(T){let $={};return MT.objectKeys(this.shape).forEach((J)=>{if(T&&!T[J])$[J]=this.shape[J];else{let F=this.shape[J];while(F instanceof j$)F=F._def.innerType;$[J]=F}}),new qT({...this._def,shape:()=>$})}keyof(){return lX(MT.objectKeys(this.shape))}}qT.create=(T,$)=>{return new qT({shape:()=>T,unknownKeys:"strip",catchall:AJ.create(),typeName:j.ZodObject,...JT($)})};qT.strictCreate=(T,$)=>{return new qT({shape:()=>T,unknownKeys:"strict",catchall:AJ.create(),typeName:j.ZodObject,...JT($)})};qT.lazycreate=(T,$)=>{return new qT({shape:T,unknownKeys:"strip",catchall:AJ.create(),typeName:j.ZodObject,...JT($)})};class uS extends ST{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function S(F){for(let W of F)if(W.result.status==="valid")return W.result;for(let W of F)if(W.result.status==="dirty")return $.common.issues.push(...W.ctx.common.issues),W.result;let f=F.map((W)=>new C$(W.ctx.common.issues));return v($,{code:C.invalid_union,unionErrors:f}),e}if($.common.async)return Promise.all(J.map(async(F)=>{let f={...$,common:{...$.common,issues:[]},parent:null};return{result:await F._parseAsync({data:$.data,path:$.path,parent:f}),ctx:f}})).then(S);else{let F=void 0,f=[];for(let A of J){let X={...$,common:{...$.common,issues:[]},parent:null},w=A._parseSync({data:$.data,path:$.path,parent:X});if(w.status==="valid")return w;else if(w.status==="dirty"&&!F)F={result:w,ctx:X};if(X.common.issues.length)f.push(X.common.issues)}if(F)return $.common.issues.push(...F.ctx.common.issues),F.result;let W=f.map((A)=>new C$(A));return v($,{code:C.invalid_union,unionErrors:W}),e}}get options(){return this._def.options}}uS.create=(T,$)=>{return new uS({options:T,typeName:j.ZodUnion,...JT($)})};var EJ=(T)=>{if(T instanceof rS)return EJ(T.schema);else if(T instanceof c$)return EJ(T.innerType());else if(T instanceof aS)return[T.value];else if(T instanceof nJ)return T.options;else if(T instanceof sS)return MT.objectValues(T.enum);else if(T instanceof eS)return EJ(T._def.innerType);else if(T instanceof dS)return[void 0];else if(T instanceof iS)return[null];else if(T instanceof j$)return[void 0,...EJ(T.unwrap())];else if(T instanceof _J)return[null,...EJ(T.unwrap())];else if(T instanceof U1)return EJ(T.unwrap());else if(T instanceof $F)return EJ(T.unwrap());else if(T instanceof TF)return EJ(T._def.innerType);else return[]};class k1 extends ST{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==n.object)return v($,{code:C.invalid_type,expected:n.object,received:$.parsedType}),e;let J=this.discriminator,S=$.data[J],F=this.optionsMap.get(S);if(!F)return v($,{code:C.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),e;if($.common.async)return F._parseAsync({data:$.data,path:$.path,parent:$});else return F._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(T,$,J){let S=new Map;for(let F of $){let f=EJ(F.shape[T]);if(!f.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let W of f){if(S.has(W))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(W)}`);S.set(W,F)}}return new k1({typeName:j.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:S,...JT(J)})}}function yW(T,$){let J=RJ(T),S=RJ($);if(T===$)return{valid:!0,data:T};else if(J===n.object&&S===n.object){let F=MT.objectKeys($),f=MT.objectKeys(T).filter((A)=>F.indexOf(A)!==-1),W={...T,...$};for(let A of f){let X=yW(T[A],$[A]);if(!X.valid)return{valid:!1};W[A]=X.data}return{valid:!0,data:W}}else if(J===n.array&&S===n.array){if(T.length!==$.length)return{valid:!1};let F=[];for(let f=0;f<T.length;f++){let W=T[f],A=$[f],X=yW(W,A);if(!X.valid)return{valid:!1};F.push(X.data)}return{valid:!0,data:F}}else if(J===n.date&&S===n.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class lS extends ST{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),S=(F,f)=>{if(VW(F)||VW(f))return e;let W=yW(F.value,f.value);if(!W.valid)return v(J,{code:C.invalid_intersection_types}),e;if(BW(F)||BW(f))$.dirty();return{status:$.value,value:W.data}};if(J.common.async)return Promise.all([this._def.left._parseAsync({data:J.data,path:J.path,parent:J}),this._def.right._parseAsync({data:J.data,path:J.path,parent:J})]).then(([F,f])=>S(F,f));else return S(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}lS.create=(T,$,J)=>{return new lS({left:T,right:$,typeName:j.ZodIntersection,...JT(J)})};class XJ extends ST{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==n.array)return v(J,{code:C.invalid_type,expected:n.array,received:J.parsedType}),e;if(J.data.length<this._def.items.length)return v(J,{code:C.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),e;if(!this._def.rest&&J.data.length>this._def.items.length)v(J,{code:C.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let F=[...J.data].map((f,W)=>{let A=this._def.items[W]||this._def.rest;if(!A)return null;return A._parse(new r$(J,f,J.path,W))}).filter((f)=>!!f);if(J.common.async)return Promise.all(F).then((f)=>{return H$.mergeArray($,f)});else return H$.mergeArray($,F)}get items(){return this._def.items}rest(T){return new XJ({...this._def,rest:T})}}XJ.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new XJ({items:T,typeName:j.ZodTuple,rest:null,...JT($)})};class rF extends ST{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==n.object)return v(J,{code:C.invalid_type,expected:n.object,received:J.parsedType}),e;let S=[],F=this._def.keyType,f=this._def.valueType;for(let W in J.data)S.push({key:F._parse(new r$(J,W,J.path,W)),value:f._parse(new r$(J,J.data[W],J.path,W)),alwaysSet:W in J.data});if(J.common.async)return H$.mergeObjectAsync($,S);else return H$.mergeObjectSync($,S)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof ST)return new rF({keyType:T,valueType:$,typeName:j.ZodRecord,...JT(J)});return new rF({keyType:u$.create(),valueType:T,typeName:j.ZodRecord,...JT($)})}}class aF extends ST{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==n.map)return v(J,{code:C.invalid_type,expected:n.map,received:J.parsedType}),e;let S=this._def.keyType,F=this._def.valueType,f=[...J.data.entries()].map(([W,A],X)=>{return{key:S._parse(new r$(J,W,J.path,[X,"key"])),value:F._parse(new r$(J,A,J.path,[X,"value"]))}});if(J.common.async){let W=new Map;return Promise.resolve().then(async()=>{for(let A of f){let X=await A.key,w=await A.value;if(X.status==="aborted"||w.status==="aborted")return e;if(X.status==="dirty"||w.status==="dirty")$.dirty();W.set(X.value,w.value)}return{status:$.value,value:W}})}else{let W=new Map;for(let A of f){let{key:X,value:w}=A;if(X.status==="aborted"||w.status==="aborted")return e;if(X.status==="dirty"||w.status==="dirty")$.dirty();W.set(X.value,w.value)}return{status:$.value,value:W}}}}aF.create=(T,$,J)=>{return new aF({valueType:$,keyType:T,typeName:j.ZodMap,...JT(J)})};class fS extends ST{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==n.set)return v(J,{code:C.invalid_type,expected:n.set,received:J.parsedType}),e;let S=this._def;if(S.minSize!==null){if(J.data.size<S.minSize.value)v(J,{code:C.too_small,minimum:S.minSize.value,type:"set",inclusive:!0,exact:!1,message:S.minSize.message}),$.dirty()}if(S.maxSize!==null){if(J.data.size>S.maxSize.value)v(J,{code:C.too_big,maximum:S.maxSize.value,type:"set",inclusive:!0,exact:!1,message:S.maxSize.message}),$.dirty()}let F=this._def.valueType;function f(A){let X=new Set;for(let w of A){if(w.status==="aborted")return e;if(w.status==="dirty")$.dirty();X.add(w.value)}return{status:$.value,value:X}}let W=[...J.data.values()].map((A,X)=>F._parse(new r$(J,A,J.path,X)));if(J.common.async)return Promise.all(W).then((A)=>f(A));else return f(W)}min(T,$){return new fS({...this._def,minSize:{value:T,message:o.toString($)}})}max(T,$){return new fS({...this._def,maxSize:{value:T,message:o.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}fS.create=(T,$)=>{return new fS({valueType:T,minSize:null,maxSize:null,typeName:j.ZodSet,...JT($)})};class pS extends ST{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==n.function)return v($,{code:C.invalid_type,expected:n.function,received:$.parsedType}),e;function J(W,A){return R1({data:W,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,E1(),oS].filter((X)=>!!X),issueData:{code:C.invalid_arguments,argumentsError:A}})}function S(W,A){return R1({data:W,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,E1(),oS].filter((X)=>!!X),issueData:{code:C.invalid_return_type,returnTypeError:A}})}let F={errorMap:$.common.contextualErrorMap},f=$.data;if(this._def.returns instanceof WS){let W=this;return Q$(async function(...A){let X=new C$([]),w=await W._def.args.parseAsync(A,F).catch((G)=>{throw X.addIssue(J(A,G)),X}),Y=await Reflect.apply(f,this,w);return await W._def.returns._def.type.parseAsync(Y,F).catch((G)=>{throw X.addIssue(S(Y,G)),X})})}else{let W=this;return Q$(function(...A){let X=W._def.args.safeParse(A,F);if(!X.success)throw new C$([J(A,X.error)]);let w=Reflect.apply(f,this,X.data),Y=W._def.returns.safeParse(w,F);if(!Y.success)throw new C$([S(w,Y.error)]);return Y.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new pS({...this._def,args:XJ.create(T).rest(vJ.create())})}returns(T){return new pS({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new pS({args:T?T:XJ.create([]).rest(vJ.create()),returns:$||vJ.create(),typeName:j.ZodFunction,...JT(J)})}}class rS extends ST{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}rS.create=(T,$)=>{return new rS({getter:T,typeName:j.ZodLazy,...JT($)})};class aS extends ST{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return v($,{received:$.data,code:C.invalid_literal,expected:this._def.value}),e}return{status:"valid",value:T.data}}get value(){return this._def.value}}aS.create=(T,$)=>{return new aS({value:T,typeName:j.ZodLiteral,...JT($)})};function lX(T,$){return new nJ({values:T,typeName:j.ZodEnum,...JT($)})}class nJ extends ST{constructor(){super(...arguments);tF.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let $=this._getOrReturnCtx(T),J=this._def.values;return v($,{expected:MT.joinValues(J),received:$.parsedType,code:C.invalid_type}),e}if(!_1(this,tF,"f"))tX(this,tF,new Set(this._def.values),"f");if(!_1(this,tF,"f").has(T.data)){let $=this._getOrReturnCtx(T),J=this._def.values;return v($,{received:$.data,code:C.invalid_enum_value,options:J}),e}return Q$(T.data)}get options(){return this._def.values}get enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Values(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}extract(T,$=this._def){return nJ.create(T,{...this._def,...$})}exclude(T,$=this._def){return nJ.create(this.options.filter((J)=>!T.includes(J)),{...this._def,...$})}}tF=new WeakMap;nJ.create=lX;class sS extends ST{constructor(){super(...arguments);dF.set(this,void 0)}_parse(T){let $=MT.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(T);if(J.parsedType!==n.string&&J.parsedType!==n.number){let S=MT.objectValues($);return v(J,{expected:MT.joinValues(S),received:J.parsedType,code:C.invalid_type}),e}if(!_1(this,dF,"f"))tX(this,dF,new Set(MT.getValidEnumValues(this._def.values)),"f");if(!_1(this,dF,"f").has(T.data)){let S=MT.objectValues($);return v(J,{received:J.data,code:C.invalid_enum_value,options:S}),e}return Q$(T.data)}get enum(){return this._def.values}}dF=new WeakMap;sS.create=(T,$)=>{return new sS({values:T,typeName:j.ZodNativeEnum,...JT($)})};class WS extends ST{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==n.promise&&$.common.async===!1)return v($,{code:C.invalid_type,expected:n.promise,received:$.parsedType}),e;let J=$.parsedType===n.promise?$.data:Promise.resolve($.data);return Q$(J.then((S)=>{return this._def.type.parseAsync(S,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}WS.create=(T,$)=>{return new WS({type:T,typeName:j.ZodPromise,...JT($)})};class c$ extends ST{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===j.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:$,ctx:J}=this._processInputParams(T),S=this._def.effect||null,F={addIssue:(f)=>{if(v(J,f),f.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(F.addIssue=F.addIssue.bind(F),S.type==="preprocess"){let f=S.transform(J.data,F);if(J.common.async)return Promise.resolve(f).then(async(W)=>{if($.value==="aborted")return e;let A=await this._def.schema._parseAsync({data:W,path:J.path,parent:J});if(A.status==="aborted")return e;if(A.status==="dirty")return gS(A.value);if($.value==="dirty")return gS(A.value);return A});else{if($.value==="aborted")return e;let W=this._def.schema._parseSync({data:f,path:J.path,parent:J});if(W.status==="aborted")return e;if(W.status==="dirty")return gS(W.value);if($.value==="dirty")return gS(W.value);return W}}if(S.type==="refinement"){let f=(W)=>{let A=S.refinement(W,F);if(J.common.async)return Promise.resolve(A);if(A instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return W};if(J.common.async===!1){let W=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(W.status==="aborted")return e;if(W.status==="dirty")$.dirty();return f(W.value),{status:$.value,value:W.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((W)=>{if(W.status==="aborted")return e;if(W.status==="dirty")$.dirty();return f(W.value).then(()=>{return{status:$.value,value:W.value}})})}if(S.type==="transform")if(J.common.async===!1){let f=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!JS(f))return f;let W=S.transform(f.value,F);if(W instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:W}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((f)=>{if(!JS(f))return f;return Promise.resolve(S.transform(f.value,F)).then((W)=>({status:$.value,value:W}))});MT.assertNever(S)}}c$.create=(T,$,J)=>{return new c$({schema:T,typeName:j.ZodEffects,effect:$,...JT(J)})};c$.createWithPreprocess=(T,$,J)=>{return new c$({schema:$,effect:{type:"preprocess",transform:T},typeName:j.ZodEffects,...JT(J)})};class j$ extends ST{_parse(T){if(this._getType(T)===n.undefined)return Q$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}j$.create=(T,$)=>{return new j$({innerType:T,typeName:j.ZodOptional,...JT($)})};class _J extends ST{_parse(T){if(this._getType(T)===n.null)return Q$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}_J.create=(T,$)=>{return new _J({innerType:T,typeName:j.ZodNullable,...JT($)})};class eS extends ST{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;if($.parsedType===n.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}eS.create=(T,$)=>{return new eS({innerType:T,typeName:j.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...JT($)})};class TF extends ST{_parse(T){let{ctx:$}=this._processInputParams(T),J={...$,common:{...$.common,issues:[]}},S=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(iF(S))return S.then((F)=>{return{status:"valid",value:F.status==="valid"?F.value:this._def.catchValue({get error(){return new C$(J.common.issues)},input:J.data})}});else return{status:"valid",value:S.status==="valid"?S.value:this._def.catchValue({get error(){return new C$(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}TF.create=(T,$)=>{return new TF({innerType:T,typeName:j.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...JT($)})};class sF extends ST{_parse(T){if(this._getType(T)!==n.nan){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:n.nan,received:J.parsedType}),e}return{status:"valid",value:T.data}}}sF.create=(T)=>{return new sF({typeName:j.ZodNaN,...JT(T)})};var u7=Symbol("zod_brand");class U1 extends ST{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;return this._def.type._parse({data:J,path:$.path,parent:$})}unwrap(){return this._def.type}}class eF extends ST{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.common.async)return(async()=>{let F=await this._def.in._parseAsync({data:J.data,path:J.path,parent:J});if(F.status==="aborted")return e;if(F.status==="dirty")return $.dirty(),gS(F.value);else return this._def.out._parseAsync({data:F.value,path:J.path,parent:J})})();else{let S=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(S.status==="aborted")return e;if(S.status==="dirty")return $.dirty(),{status:"dirty",value:S.value};else return this._def.out._parseSync({data:S.value,path:J.path,parent:J})}}static create(T,$){return new eF({in:T,out:$,typeName:j.ZodPipeline})}}class $F extends ST{_parse(T){let $=this._def.innerType._parse(T),J=(S)=>{if(JS(S))S.value=Object.freeze(S.value);return S};return iF($)?$.then((S)=>J(S)):J($)}unwrap(){return this._def.innerType}}$F.create=(T,$)=>{return new $F({innerType:T,typeName:j.ZodReadonly,...JT($)})};function gX(T,$){let J=typeof T==="function"?T($):typeof T==="string"?{message:T}:T;return typeof J==="string"?{message:J}:J}function rX(T,$={},J){if(T)return FS.create().superRefine((S,F)=>{var f,W;let A=T(S);if(A instanceof Promise)return A.then((X)=>{var w,Y;if(!X){let M=gX($,S),G=(Y=(w=M.fatal)!==null&&w!==void 0?w:J)!==null&&Y!==void 0?Y:!0;F.addIssue({code:"custom",...M,fatal:G})}});if(!A){let X=gX($,S),w=(W=(f=X.fatal)!==null&&f!==void 0?f:J)!==null&&W!==void 0?W:!0;F.addIssue({code:"custom",...X,fatal:w})}return});return FS.create()}var l7={object:qT.lazycreate},j;(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"})(j||(j={}));var r7=(T,$={message:`Input not instance of ${T.name}`})=>rX((J)=>J instanceof T,$),aX=u$.create,sX=mJ.create,a7=sF.create,s7=PJ.create,eX=tS.create,e7=SS.create,T9=uF.create,$9=dS.create,J9=iS.create,S9=FS.create,F9=vJ.create,f9=AJ.create,W9=lF.create,A9=l$.create,X9=qT.create,w9=qT.strictCreate,Y9=uS.create,M9=k1.create,G9=lS.create,K9=XJ.create,H9=rF.create,O9=aF.create,z9=fS.create,D9=pS.create,Q9=rS.create,E9=aS.create,R9=nJ.create,_9=sS.create,k9=WS.create,pX=c$.create,U9=j$.create,V9=_J.create,B9=c$.createWithPreprocess,y9=eF.create,L9=()=>aX().optional(),N9=()=>sX().optional(),C9=()=>eX().optional(),j9={string:(T)=>u$.create({...T,coerce:!0}),number:(T)=>mJ.create({...T,coerce:!0}),boolean:(T)=>tS.create({...T,coerce:!0}),bigint:(T)=>PJ.create({...T,coerce:!0}),date:(T)=>SS.create({...T,coerce:!0})},x9=e,kT=Object.freeze({__proto__:null,defaultErrorMap:oS,setErrorMap:B7,getErrorMap:E1,makeIssue:R1,EMPTY_PATH:y7,addIssueToContext:v,ParseStatus:H$,INVALID:e,DIRTY:gS,OK:Q$,isAborted:VW,isDirty:BW,isValid:JS,isAsync:iF,get util(){return MT},get objectUtil(){return UW},ZodParsedType:n,getParsedType:RJ,ZodType:ST,datetimeRegex:uX,ZodString:u$,ZodNumber:mJ,ZodBigInt:PJ,ZodBoolean:tS,ZodDate:SS,ZodSymbol:uF,ZodUndefined:dS,ZodNull:iS,ZodAny:FS,ZodUnknown:vJ,ZodNever:AJ,ZodVoid:lF,ZodArray:l$,ZodObject:qT,ZodUnion:uS,ZodDiscriminatedUnion:k1,ZodIntersection:lS,ZodTuple:XJ,ZodRecord:rF,ZodMap:aF,ZodSet:fS,ZodFunction:pS,ZodLazy:rS,ZodLiteral:aS,ZodEnum:nJ,ZodNativeEnum:sS,ZodPromise:WS,ZodEffects:c$,ZodTransformer:c$,ZodOptional:j$,ZodNullable:_J,ZodDefault:eS,ZodCatch:TF,ZodNaN:sF,BRAND:u7,ZodBranded:U1,ZodPipeline:eF,ZodReadonly:$F,custom:rX,Schema:ST,ZodSchema:ST,late:l7,get ZodFirstPartyTypeKind(){return j},coerce:j9,any:S9,array:A9,bigint:s7,boolean:eX,date:e7,discriminatedUnion:M9,effect:pX,enum:R9,function:D9,instanceof:r7,intersection:G9,lazy:Q9,literal:E9,map:O9,nan:a7,nativeEnum:_9,never:f9,null:J9,nullable:V9,number:sX,object:X9,oboolean:C9,onumber:N9,optional:U9,ostring:L9,pipeline:y9,preprocess:B9,promise:k9,record:H9,set:z9,strictObject:w9,string:aX,symbol:T9,transformer:pX,tuple:K9,undefined:$9,union:Y9,unknown:F9,void:W9,NEVER:x9,ZodIssueCode:C,quotelessJson:V7,ZodError:C$});function T8(){return{}}function $8(T,$){let J={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==j.ZodAny)J.items=r(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)YT(J,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)YT(J,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)YT(J,"minItems",T.exactLength.value,T.exactLength.message,$),YT(J,"maxItems",T.exactLength.value,T.exactLength.message,$);return J}function J8(T,$){let J={type:"integer",format:"int64"};if(!T.checks)return J;for(let S of T.checks)switch(S.kind){case"min":if($.target==="jsonSchema7")if(S.inclusive)YT(J,"minimum",S.value,S.message,$);else YT(J,"exclusiveMinimum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMinimum=!0;YT(J,"minimum",S.value,S.message,$)}break;case"max":if($.target==="jsonSchema7")if(S.inclusive)YT(J,"maximum",S.value,S.message,$);else YT(J,"exclusiveMaximum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMaximum=!0;YT(J,"maximum",S.value,S.message,$)}break;case"multipleOf":YT(J,"multipleOf",S.value,S.message,$);break}return J}function S8(){return{type:"boolean"}}function V1(T,$){return r(T.type._def,$)}var F8=(T,$)=>{return r(T.innerType._def,$)};function LW(T,$,J){let S=J??$.dateStrategy;if(Array.isArray(S))return{anyOf:S.map((F,f)=>LW(T,$,F))};switch(S){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return I9(T,$)}}var I9=(T,$)=>{let J={type:"integer",format:"unix-time"};if($.target==="openApi3")return J;for(let S of T.checks)switch(S.kind){case"min":YT(J,"minimum",S.value,S.message,$);break;case"max":YT(J,"maximum",S.value,S.message,$);break}return J};function f8(T,$){return{...r(T.innerType._def,$),default:T.defaultValue()}}function W8(T,$){return $.effectStrategy==="input"?r(T.schema._def,$):{}}function A8(T){return{type:"string",enum:Array.from(T.values)}}var Z9=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function X8(T,$){let J=[r(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),r(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((f)=>!!f),S=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,F=[];return J.forEach((f)=>{if(Z9(f)){if(F.push(...f.allOf),f.unevaluatedProperties===void 0)S=void 0}else{let W=f;if("additionalProperties"in f&&f.additionalProperties===!1){let{additionalProperties:A,...X}=f;W=X}else S=void 0;F.push(W)}}),F.length?{allOf:F,...S}:void 0}function w8(T,$){let J=typeof T.value;if(J!=="bigint"&&J!=="number"&&J!=="boolean"&&J!=="string")return{type:Array.isArray(T.value)?"array":"object"};if($.target==="openApi3")return{type:J==="bigint"?"integer":J,enum:[T.value]};return{type:J==="bigint"?"integer":J,const:T.value}}var NW=void 0,a$={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(NW===void 0)NW=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return NW},uuid:/^[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}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function B1(T,$){let J={type:"string"};if(T.checks)for(let S of T.checks)switch(S.kind){case"min":YT(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,S.value):S.value,S.message,$);break;case"max":YT(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,S.value):S.value,S.message,$);break;case"email":switch($.emailStrategy){case"format:email":s$(J,"email",S.message,$);break;case"format:idn-email":s$(J,"idn-email",S.message,$);break;case"pattern:zod":E$(J,a$.email,S.message,$);break}break;case"url":s$(J,"uri",S.message,$);break;case"uuid":s$(J,"uuid",S.message,$);break;case"regex":E$(J,S.regex,S.message,$);break;case"cuid":E$(J,a$.cuid,S.message,$);break;case"cuid2":E$(J,a$.cuid2,S.message,$);break;case"startsWith":E$(J,RegExp(`^${CW(S.value,$)}`),S.message,$);break;case"endsWith":E$(J,RegExp(`${CW(S.value,$)}$`),S.message,$);break;case"datetime":s$(J,"date-time",S.message,$);break;case"date":s$(J,"date",S.message,$);break;case"time":s$(J,"time",S.message,$);break;case"duration":s$(J,"duration",S.message,$);break;case"length":YT(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,S.value):S.value,S.message,$),YT(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,S.value):S.value,S.message,$);break;case"includes":{E$(J,RegExp(CW(S.value,$)),S.message,$);break}case"ip":{if(S.version!=="v6")s$(J,"ipv4",S.message,$);if(S.version!=="v4")s$(J,"ipv6",S.message,$);break}case"base64url":E$(J,a$.base64url,S.message,$);break;case"jwt":E$(J,a$.jwt,S.message,$);break;case"cidr":{if(S.version!=="v6")E$(J,a$.ipv4Cidr,S.message,$);if(S.version!=="v4")E$(J,a$.ipv6Cidr,S.message,$);break}case"emoji":E$(J,a$.emoji(),S.message,$);break;case"ulid":{E$(J,a$.ulid,S.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{s$(J,"binary",S.message,$);break}case"contentEncoding:base64":{YT(J,"contentEncoding","base64",S.message,$);break}case"pattern:zod":{E$(J,a$.base64,S.message,$);break}}break}case"nanoid":E$(J,a$.nanoid,S.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((F)=>{})(S)}return J}function CW(T,$){return $.patternStrategy==="escape"?b9(T):T}var q9=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function b9(T){let $="";for(let J=0;J<T.length;J++){if(!q9.has(T[J]))$+="\\";$+=T[J]}return $}function s$(T,$,J,S){if(T.format||T.anyOf?.some((F)=>F.format)){if(!T.anyOf)T.anyOf=[];if(T.format){if(T.anyOf.push({format:T.format,...T.errorMessage&&S.errorMessages&&{errorMessage:{format:T.errorMessage.format}}}),delete T.format,T.errorMessage){if(delete T.errorMessage.format,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.anyOf.push({format:$,...J&&S.errorMessages&&{errorMessage:{format:J}}})}else YT(T,"format",$,J,S)}function E$(T,$,J,S){if(T.pattern||T.allOf?.some((F)=>F.pattern)){if(!T.allOf)T.allOf=[];if(T.pattern){if(T.allOf.push({pattern:T.pattern,...T.errorMessage&&S.errorMessages&&{errorMessage:{pattern:T.errorMessage.pattern}}}),delete T.pattern,T.errorMessage){if(delete T.errorMessage.pattern,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.allOf.push({pattern:Y8($,S),...J&&S.errorMessages&&{errorMessage:{pattern:J}}})}else YT(T,"pattern",Y8($,S),J,S)}function Y8(T,$){if(!$.applyRegexFlags||!T.flags)return T.source;let J={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},S=J.i?T.source.toLowerCase():T.source,F="",f=!1,W=!1,A=!1;for(let X=0;X<S.length;X++){if(f){F+=S[X],f=!1;continue}if(J.i){if(W){if(S[X].match(/[a-z]/)){if(A)F+=S[X],F+=`${S[X-2]}-${S[X]}`.toUpperCase(),A=!1;else if(S[X+1]==="-"&&S[X+2]?.match(/[a-z]/))F+=S[X],A=!0;else F+=`${S[X]}${S[X].toUpperCase()}`;continue}}else if(S[X].match(/[a-z]/)){F+=`[${S[X]}${S[X].toUpperCase()}]`;continue}}if(J.m){if(S[X]==="^"){F+=`(^|(?<=[\r
17
+ ]))`;continue}else if(S[X]==="$"){F+=`($|(?=[\r
18
+ ]))`;continue}}if(J.s&&S[X]==="."){F+=W?`${S[X]}\r
19
+ `:`[${S[X]}\r
20
+ ]`;continue}if(F+=S[X],S[X]==="\\")f=!0;else if(W&&S[X]==="]")W=!1;else if(!W&&S[X]==="[")W=!0}try{new RegExp(F)}catch{return console.warn(`Could not convert regex pattern at ${$.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),T.source}return F}function y1(T,$){if($.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if($.target==="openApi3"&&T.keyType?._def.typeName===j.ZodEnum)return{type:"object",required:T.keyType._def.values,properties:T.keyType._def.values.reduce((S,F)=>({...S,[F]:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",F]})??{}}),{}),additionalProperties:!1};let J={type:"object",additionalProperties:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??{}};if($.target==="openApi3")return J;if(T.keyType?._def.typeName===j.ZodString&&T.keyType._def.checks?.length){let{type:S,...F}=B1(T.keyType._def,$);return{...J,propertyNames:F}}else if(T.keyType?._def.typeName===j.ZodEnum)return{...J,propertyNames:{enum:T.keyType._def.values}};else if(T.keyType?._def.typeName===j.ZodBranded&&T.keyType._def.type._def.typeName===j.ZodString&&T.keyType._def.type._def.checks?.length){let{type:S,...F}=V1(T.keyType._def,$);return{...J,propertyNames:F}}return J}function M8(T,$){if($.mapStrategy==="record")return y1(T,$);let J=r(T.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},S=r(T.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[J,S],minItems:2,maxItems:2}}}function G8(T){let $=T.values,S=Object.keys(T.values).filter((f)=>{return typeof $[$[f]]!=="number"}).map((f)=>$[f]),F=Array.from(new Set(S.map((f)=>typeof f)));return{type:F.length===1?F[0]==="string"?"string":"number":["string","number"],enum:S}}function K8(){return{not:{}}}function H8(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var T0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function z8(T,$){if($.target==="openApi3")return O8(T,$);let J=T.options instanceof Map?Array.from(T.options.values()):T.options;if(J.every((S)=>(S._def.typeName in T0)&&(!S._def.checks||!S._def.checks.length))){let S=J.reduce((F,f)=>{let W=T0[f._def.typeName];return W&&!F.includes(W)?[...F,W]:F},[]);return{type:S.length>1?S:S[0]}}else if(J.every((S)=>S._def.typeName==="ZodLiteral"&&!S.description)){let S=J.reduce((F,f)=>{let W=typeof f._def.value;switch(W){case"string":case"number":case"boolean":return[...F,W];case"bigint":return[...F,"integer"];case"object":if(f._def.value===null)return[...F,"null"];case"symbol":case"undefined":case"function":default:return F}},[]);if(S.length===J.length){let F=S.filter((f,W,A)=>A.indexOf(f)===W);return{type:F.length>1?F:F[0],enum:J.reduce((f,W)=>{return f.includes(W._def.value)?f:[...f,W._def.value]},[])}}}else if(J.every((S)=>S._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((S,F)=>[...S,...F._def.values.filter((f)=>!S.includes(f))],[])};return O8(T,$)}var O8=(T,$)=>{let J=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((S,F)=>r(S._def,{...$,currentPath:[...$.currentPath,"anyOf",`${F}`]})).filter((S)=>!!S&&(!$.strictUnions||typeof S==="object"&&Object.keys(S).length>0));return J.length?{anyOf:J}:void 0};function D8(T,$){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(T.innerType._def.typeName)&&(!T.innerType._def.checks||!T.innerType._def.checks.length)){if($.target==="openApi3")return{type:T0[T.innerType._def.typeName],nullable:!0};return{type:[T0[T.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let S=r(T.innerType._def,{...$,currentPath:[...$.currentPath]});if(S&&"$ref"in S)return{allOf:[S],nullable:!0};return S&&{...S,nullable:!0}}let J=r(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function Q8(T,$){let J={type:"number"};if(!T.checks)return J;for(let S of T.checks)switch(S.kind){case"int":J.type="integer",_W(J,"type",S.message,$);break;case"min":if($.target==="jsonSchema7")if(S.inclusive)YT(J,"minimum",S.value,S.message,$);else YT(J,"exclusiveMinimum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMinimum=!0;YT(J,"minimum",S.value,S.message,$)}break;case"max":if($.target==="jsonSchema7")if(S.inclusive)YT(J,"maximum",S.value,S.message,$);else YT(J,"exclusiveMaximum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMaximum=!0;YT(J,"maximum",S.value,S.message,$)}break;case"multipleOf":YT(J,"multipleOf",S.value,S.message,$);break}return J}function h9(T,$){if($.removeAdditionalStrategy==="strict")return T.catchall._def.typeName==="ZodNever"?T.unknownKeys!=="strict":r(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0;else return T.catchall._def.typeName==="ZodNever"?T.unknownKeys==="passthrough":r(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0}function E8(T,$){let J=$.target==="openAi",S={type:"object",...Object.entries(T.shape()).reduce((F,[f,W])=>{if(W===void 0||W._def===void 0)return F;let A=W.isOptional();if(A&&J){if(W instanceof j$)W=W._def.innerType;if(!W.isNullable())W=W.nullable();A=!1}let X=r(W._def,{...$,currentPath:[...$.currentPath,"properties",f],propertyPath:[...$.currentPath,"properties",f]});if(X===void 0)return F;return{properties:{...F.properties,[f]:X},required:A?F.required:[...F.required,f]}},{properties:{},required:[]}),additionalProperties:h9(T,$)};if(!S.required.length)delete S.required;return S}var R8=(T,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return r(T.innerType._def,$);let J=r(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return J?{anyOf:[{not:{}},J]}:{}};var _8=(T,$)=>{if($.pipeStrategy==="input")return r(T.in._def,$);else if($.pipeStrategy==="output")return r(T.out._def,$);let J=r(T.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),S=r(T.out._def,{...$,currentPath:[...$.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,S].filter((F)=>F!==void 0)}};function k8(T,$){return r(T.type._def,$)}function U8(T,$){let S={type:"array",uniqueItems:!0,items:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(T.minSize)YT(S,"minItems",T.minSize.value,T.minSize.message,$);if(T.maxSize)YT(S,"maxItems",T.maxSize.value,T.maxSize.message,$);return S}function V8(T,$){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map((J,S)=>r(J._def,{...$,currentPath:[...$.currentPath,"items",`${S}`]})).reduce((J,S)=>S===void 0?J:[...J,S],[]),additionalItems:r(T.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map((J,S)=>r(J._def,{...$,currentPath:[...$.currentPath,"items",`${S}`]})).reduce((J,S)=>S===void 0?J:[...J,S],[])}}function B8(){return{not:{}}}function y8(){return{}}var L8=(T,$)=>{return r(T.innerType._def,$)};var N8=(T,$,J)=>{switch($){case j.ZodString:return B1(T,J);case j.ZodNumber:return Q8(T,J);case j.ZodObject:return E8(T,J);case j.ZodBigInt:return J8(T,J);case j.ZodBoolean:return S8();case j.ZodDate:return LW(T,J);case j.ZodUndefined:return B8();case j.ZodNull:return H8(J);case j.ZodArray:return $8(T,J);case j.ZodUnion:case j.ZodDiscriminatedUnion:return z8(T,J);case j.ZodIntersection:return X8(T,J);case j.ZodTuple:return V8(T,J);case j.ZodRecord:return y1(T,J);case j.ZodLiteral:return w8(T,J);case j.ZodEnum:return A8(T);case j.ZodNativeEnum:return G8(T);case j.ZodNullable:return D8(T,J);case j.ZodOptional:return R8(T,J);case j.ZodMap:return M8(T,J);case j.ZodSet:return U8(T,J);case j.ZodLazy:return()=>T.getter()._def;case j.ZodPromise:return k8(T,J);case j.ZodNaN:case j.ZodNever:return K8();case j.ZodEffects:return W8(T,J);case j.ZodAny:return T8();case j.ZodUnknown:return y8();case j.ZodDefault:return f8(T,J);case j.ZodBranded:return V1(T,J);case j.ZodReadonly:return L8(T,J);case j.ZodCatch:return F8(T,J);case j.ZodPipeline:return _8(T,J);case j.ZodFunction:case j.ZodVoid:case j.ZodSymbol:return;default:return((S)=>{return})($)}};function r(T,$,J=!1){let S=$.seen.get(T);if($.override){let A=$.override?.(T,$,S,J);if(A!==mX)return A}if(S&&!J){let A=v9(S,$);if(A!==void 0)return A}let F={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,F);let f=N8(T,T.typeName,$),W=typeof f==="function"?r(f(),$):f;if(W)P9(T,$,W);if($.postProcess){let A=$.postProcess(W,T,$);return F.jsonSchema=W,A}return F.jsonSchema=W,W}var v9=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:m9($.currentPath,T.path)};case"none":case"seen":{if(T.path.length<$.currentPath.length&&T.path.every((J,S)=>$.currentPath[S]===J))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},m9=(T,$)=>{let J=0;for(;J<T.length&&J<$.length;J++)if(T[J]!==$[J])break;return[(T.length-J).toString(),...$.slice(J)].join("/")},P9=(T,$,J)=>{if(T.description){if(J.description=T.description,$.markdownDescription)J.markdownDescription=T.description}return J};var C8=(T,$)=>{let J=nX($),S=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((X,[w,Y])=>({...X,[w]:r(Y._def,{...J,currentPath:[...J.basePath,J.definitionPath,w]},!0)??{}}),{}):void 0,F=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,f=r(T._def,F===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,F]},!1)??{},W=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(W!==void 0)f.title=W;let A=F===void 0?S?{...f,[J.definitionPath]:S}:f:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,F].join("/"),[J.definitionPath]:{...S,[F]:f}};if(J.target==="jsonSchema7")A.$schema="http://json-schema.org/draft-07/schema#";else if(J.target==="jsonSchema2019-09"||J.target==="openAi")A.$schema="https://json-schema.org/draft/2019-09/schema#";if(J.target==="openAi"&&(("anyOf"in A)||("oneOf"in A)||("allOf"in A)||("type"in A)&&Array.isArray(A.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return A};var j8=C8;function x8(T,$){return function J({schema:S,fallback:F}){let f=j8(S);return async function W(A,X=3){let w,Y=[];while(Y.length<X){w=await T(A,f,F,Y);let M=S.safeParse(w);if(M.success)return M.data;$?.warn(`safegen failed to generate well-formed data.
21
21
  `,`Here's what was returned last time:
22
- `,JSON.stringify(Y,null,"\t"),`
22
+ `,JSON.stringify(w,null,"\t"),`
23
23
  `,`Here's the error message from zod:
24
- `,K.error.toString()),w.push({response:Y,error:K.error})}return $?.error(`safegen was unable to generate well-formed data after ${X} failed attempts.`),F}}}function j8(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
25
- `)}var B1="RFC3986",y1={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},I8="RFC1738";var n7=Array.isArray,MS=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var xf=1024,Z8=(T,$,S,J,F)=>{if(T.length===0)return T;let W=T;if(typeof T==="symbol")W=Symbol.prototype.toString.call(T);else if(typeof T!=="string")W=String(T);if(S==="iso-8859-1")return escape(W).replace(/%u[0-9a-f]{4}/gi,function(A){return"%26%23"+parseInt(A.slice(2),16)+"%3B"});let f="";for(let A=0;A<W.length;A+=xf){let X=W.length>=xf?W.slice(A,A+xf):W,Y=[];for(let w=0;w<X.length;++w){let K=X.charCodeAt(w);if(K===45||K===46||K===95||K===126||K>=48&&K<=57||K>=65&&K<=90||K>=97&&K<=122||F===I8&&(K===40||K===41)){Y[Y.length]=X.charAt(w);continue}if(K<128){Y[Y.length]=MS[K];continue}if(K<2048){Y[Y.length]=MS[192|K>>6]+MS[128|K&63];continue}if(K<55296||K>=57344){Y[Y.length]=MS[224|K>>12]+MS[128|K>>6&63]+MS[128|K&63];continue}w+=1,K=65536+((K&1023)<<10|X.charCodeAt(w)&1023),Y[Y.length]=MS[240|K>>18]+MS[128|K>>12&63]+MS[128|K>>6&63]+MS[128|K&63]}f+=Y.join("")}return f};function q8(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function jf(T,$){if(n7(T)){let S=[];for(let J=0;J<T.length;J+=1)S.push($(T[J]));return S}return $(T)}var g7=Object.prototype.hasOwnProperty,b8={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},OS=Array.isArray,p7=Array.prototype.push,h8=function(T,$){p7.apply(T,OS($)?$:[$])},o7=Date.prototype.toISOString,aT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Z8,encodeValuesOnly:!1,format:B1,formatter:y1[B1],indices:!1,serializeDate(T){return o7.call(T)},skipNulls:!1,strictNullHandling:!1};function t7(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var If={};function v8(T,$,S,J,F,W,f,A,X,Y,w,K,M,D,z,R,L,j){let y=T,I=j,Q=0,V=!1;while((I=I.get(If))!==void 0&&!V){let _=I.get(T);if(Q+=1,typeof _!=="undefined")if(_===Q)throw new RangeError("Cyclic object value");else V=!0;if(typeof I.get(If)==="undefined")Q=0}if(typeof Y==="function")y=Y($,y);else if(y instanceof Date)y=M?.(y);else if(S==="comma"&&OS(y))y=jf(y,function(_){if(_ instanceof Date)return M?.(_);return _});if(y===null){if(W)return X&&!R?X($,aT.encoder,L,"key",D):$;y=""}if(t7(y)||q8(y)){if(X){let _=R?$:X($,aT.encoder,L,"key",D);return[z?.(_)+"="+z?.(X(y,aT.encoder,L,"value",D))]}return[z?.($)+"="+z?.(String(y))]}let B=[];if(typeof y==="undefined")return B;let U;if(S==="comma"&&OS(y)){if(R&&X)y=jf(y,X);U=[{value:y.length>0?y.join(",")||null:void 0}]}else if(OS(Y))U=Y;else{let _=Object.keys(y);U=w?_.sort(w):_}let h=A?String($).replace(/\./g,"%2E"):String($),l=J&&OS(y)&&y.length===1?h+"[]":h;if(F&&OS(y)&&y.length===0)return l+"[]";for(let _=0;_<U.length;++_){let s=U[_],p=typeof s==="object"&&typeof s.value!=="undefined"?s.value:y[s];if(f&&p===null)continue;let $T=K&&A?s.replace(/\./g,"%2E"):s,ET=OS(y)?typeof S==="function"?S(l,$T):l:l+(K?"."+$T:"["+$T+"]");j.set(T,Q);let hT=new WeakMap;hT.set(If,j),h8(B,v8(p,ET,S,J,F,W,f,A,S==="comma"&&R&&OS(y)?null:X,Y,w,K,M,D,z,R,L,hT))}return B}function d7(T=aT){if(typeof T.allowEmptyArrays!=="undefined"&&typeof T.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof T.encodeDotInKeys!=="undefined"&&typeof T.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(T.encoder!==null&&typeof T.encoder!=="undefined"&&typeof T.encoder!=="function")throw new TypeError("Encoder has to be a function.");let $=T.charset||aT.charset;if(typeof T.charset!=="undefined"&&T.charset!=="utf-8"&&T.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let S=B1;if(typeof T.format!=="undefined"){if(!g7.call(y1,T.format))throw new TypeError("Unknown format option provided.");S=T.format}let J=y1[S],F=aT.filter;if(typeof T.filter==="function"||OS(T.filter))F=T.filter;let W;if(T.arrayFormat&&T.arrayFormat in b8)W=T.arrayFormat;else if("indices"in T)W=T.indices?"indices":"repeat";else W=aT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let f=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:aT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:aT.addQueryPrefix,allowDots:f,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:aT.allowEmptyArrays,arrayFormat:W,charset:$,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:aT.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?aT.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:aT.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:aT.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:aT.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:aT.encodeValuesOnly,filter:F,format:S,formatter:J,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:aT.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:aT.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:aT.strictNullHandling}}function Zf(T,$={}){let S=T,J=d7($),F,W;if(typeof J.filter==="function")W=J.filter,S=W("",S);else if(OS(J.filter))W=J.filter,F=W;let f=[];if(typeof S!=="object"||S===null)return"";let A=b8[J.arrayFormat],X=A==="comma"&&J.commaRoundTrip;if(!F)F=Object.keys(S);if(J.sort)F.sort(J.sort);let Y=new WeakMap;for(let M=0;M<F.length;++M){let D=F[M];if(J.skipNulls&&S[D]===null)continue;h8(f,v8(S[D],D,A,X,J.allowEmptyArrays,J.strictNullHandling,J.skipNulls,J.encodeDotInKeys,J.encode?J.encoder:null,J.filter,J.sort,J.allowDots,J.serializeDate,J.format,J.formatter,J.encodeValuesOnly,J.charset,Y))}let w=f.join(J.delimiter),K=J.addQueryPrefix===!0?"?":"";if(J.charsetSentinel)if(J.charset==="iso-8859-1")K+="utf8=%26%2310003%3B&";else K+="utf8=%E2%9C%93&";return w.length>0?K+w:""}var XJ="4.85.4";var P8=!1,YJ=void 0,qf=void 0,i7=void 0,l7=void 0,r7=void 0,bf=void 0,a7=void 0,L1=void 0,hf=void 0,vf=void 0,Pf=void 0,N1=void 0,mf=void 0;function m8(T,$={auto:!1}){if(P8)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(YJ)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${YJ}'\``);P8=$.auto,YJ=T.kind,qf=T.fetch,i7=T.Request,l7=T.Response,r7=T.Headers,bf=T.FormData,a7=T.Blob,L1=T.File,hf=T.ReadableStream,vf=T.getMultipartRequestOptions,Pf=T.getDefaultAgent,N1=T.fileFromPath,mf=T.isFsReadStream}class cf{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function c8({manuallyImported:T}={}){let $=T?"You may need to use polyfills":"Add one of these imports before your first `import \u2026 from 'openai'`:\n- `import 'openai/shims/node'` (if you're running on Node)\n- `import 'openai/shims/web'` (otherwise)\n",S,J,F,W;try{S=fetch,J=Request,F=Response,W=Headers}catch(f){throw new Error(`this environment is missing the following Web Fetch API type: ${f.message}. ${$}`)}return{kind:"web",fetch:S,Request:J,Response:F,Headers:W,FormData:typeof FormData!=="undefined"?FormData:class f{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class f{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class f{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class f{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(f,A)=>({...A,body:new cf(f)}),getDefaultAgent:(f)=>{return},fileFromPath:()=>{throw new Error("The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads")},isFsReadStream:(f)=>!1}}import{ReadStream as e7}from"fs";function n8(){let T=c8();function $(S){return S instanceof e7}return{...T,isFsReadStream:$}}if(!YJ)m8(n8(),{auto:!0});class TT extends Error{}class pT extends TT{constructor(T,$,S,J){super(`${pT.makeMessage(T,$,S)}`);this.status=T,this.headers=J,this.request_id=J?.["x-request-id"],this.error=$;let F=$;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(T,$,S){let J=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):S;if(T&&J)return`${T} ${J}`;if(T)return`${T} status code (no body)`;if(J)return J;return"(no status code or body)"}static generate(T,$,S,J){if(!T||!J)return new wJ({message:S,cause:v1($)});let F=$?.error;if(T===400)return new C1(T,F,S,J);if(T===401)return new x1(T,F,S,J);if(T===403)return new j1(T,F,S,J);if(T===404)return new I1(T,F,S,J);if(T===409)return new Z1(T,F,S,J);if(T===422)return new q1(T,F,S,J);if(T===429)return new b1(T,F,S,J);if(T>=500)return new h1(T,F,S,J);return new pT(T,F,S,J)}}class f$ extends pT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class wJ extends pT{constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class KJ extends wJ{constructor({message:T}={}){super({message:T??"Request timed out."})}}class C1 extends pT{}class x1 extends pT{}class j1 extends pT{}class I1 extends pT{}class Z1 extends pT{}class q1 extends pT{}class b1 extends pT{}class h1 extends pT{}class T0 extends TT{constructor(){super("Could not parse response content as the length limit was reached")}}class $0 extends TT{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}var P1=function(T,$,S,J,F){if(J==="m")throw new TypeError("Private method is not writable");if(J==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?F.call(T,S):F?F.value=S:$.set(T,S),S},MJ=function(T,$,S,J){if(S==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!J:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?J:S==="a"?J.call(T):J?J.value:$.get(T)},I$;class SF{constructor(){I$.set(this,void 0),this.buffer=new Uint8Array,P1(this,I$,null,"f")}decode(T){if(T==null)return[];let $=T instanceof ArrayBuffer?new Uint8Array(T):typeof T==="string"?new TextEncoder().encode(T):T,S=new Uint8Array(this.buffer.length+$.length);S.set(this.buffer),S.set($,this.buffer.length),this.buffer=S;let J=[],F;while((F=$9(this.buffer,MJ(this,I$,"f")))!=null){if(F.carriage&&MJ(this,I$,"f")==null){P1(this,I$,F.index,"f");continue}if(MJ(this,I$,"f")!=null&&(F.index!==MJ(this,I$,"f")+1||F.carriage)){J.push(this.decodeText(this.buffer.slice(0,MJ(this,I$,"f")-1))),this.buffer=this.buffer.slice(MJ(this,I$,"f")),P1(this,I$,null,"f");continue}let W=MJ(this,I$,"f")!==null?F.preceding-1:F.preceding,f=this.decodeText(this.buffer.slice(0,W));J.push(f),this.buffer=this.buffer.slice(F.index),P1(this,I$,null,"f")}return J}decodeText(T){if(T==null)return"";if(typeof T==="string")return T;if(typeof Buffer!=="undefined"){if(T instanceof Buffer)return T.toString();if(T instanceof Uint8Array)return Buffer.from(T).toString();throw new TT(`Unexpected: received non-Uint8Array (${T.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder!=="undefined"){if(T instanceof Uint8Array||T instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(T);throw new TT(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new TT("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
26
- `)}}I$=new WeakMap;SF.NEWLINE_CHARS=new Set([`
27
- `,"\r"]);SF.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function $9(T,$){for(let F=$??0;F<T.length;F++){if(T[F]===10)return{preceding:F,index:F+1,carriage:!1};if(T[F]===13)return{preceding:F,index:F+1,carriage:!0}}return null}function g8(T){for(let J=0;J<T.length-1;J++){if(T[J]===10&&T[J+1]===10)return J+2;if(T[J]===13&&T[J+1]===13)return J+2;if(T[J]===13&&T[J+1]===10&&J+3<T.length&&T[J+2]===13&&T[J+3]===10)return J+4}return-1}function nf(T){if(T[Symbol.asyncIterator])return T;let $=T.getReader();return{async next(){try{let S=await $.read();if(S?.done)$.releaseLock();return S}catch(S){throw $.releaseLock(),S}},async return(){let S=$.cancel();return $.releaseLock(),await S,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}class Z${constructor(T,$){this.iterator=T,this.controller=$}static fromSSEResponse(T,$){let S=!1;async function*J(){if(S)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");S=!0;let F=!1;try{for await(let W of S9(T,$)){if(F)continue;if(W.data.startsWith("[DONE]")){F=!0;continue}if(W.event===null){let f;try{f=JSON.parse(W.data)}catch(A){throw console.error("Could not parse message into JSON:",W.data),console.error("From chunk:",W.raw),A}if(f&&f.error)throw new pT(void 0,f.error,void 0,void 0);yield f}else{let f;try{f=JSON.parse(W.data)}catch(A){throw console.error("Could not parse message into JSON:",W.data),console.error("From chunk:",W.raw),A}if(W.event=="error")throw new pT(void 0,f.error,f.message,void 0);yield{event:W.event,data:f}}}F=!0}catch(W){if(W instanceof Error&&W.name==="AbortError")return;throw W}finally{if(!F)$.abort()}}return new Z$(J,$)}static fromReadableStream(T,$){let S=!1;async function*J(){let W=new SF,f=nf(T);for await(let A of f)for(let X of W.decode(A))yield X;for(let A of W.flush())yield A}async function*F(){if(S)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");S=!0;let W=!1;try{for await(let f of J()){if(W)continue;if(f)yield JSON.parse(f)}W=!0}catch(f){if(f instanceof Error&&f.name==="AbortError")return;throw f}finally{if(!W)$.abort()}}return new Z$(F,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],S=this.iterator(),J=(F)=>{return{next:()=>{if(F.length===0){let W=S.next();T.push(W),$.push(W)}return F.shift()}}};return[new Z$(()=>J(T),this.controller),new Z$(()=>J($),this.controller)]}toReadableStream(){let T=this,$,S=new TextEncoder;return new hf({async start(){$=T[Symbol.asyncIterator]()},async pull(J){try{let{value:F,done:W}=await $.next();if(W)return J.close();let f=S.encode(JSON.stringify(F)+`
28
- `);J.enqueue(f)}catch(F){J.error(F)}},async cancel(){await $.return?.()}})}}async function*S9(T,$){if(!T.body)throw $.abort(),new TT("Attempted to iterate over a response with no body");let S=new p8,J=new SF,F=nf(T.body);for await(let W of J9(F))for(let f of J.decode(W)){let A=S.decode(f);if(A)yield A}for(let W of J.flush()){let f=S.decode(W);if(f)yield f}}async function*J9(T){let $=new Uint8Array;for await(let S of T){if(S==null)continue;let J=S instanceof ArrayBuffer?new Uint8Array(S):typeof S==="string"?new TextEncoder().encode(S):S,F=new Uint8Array($.length+J.length);F.set($),F.set(J,$.length),$=F;let W;while((W=g8($))!==-1)yield $.slice(0,W),$=$.slice(W)}if($.length>0)yield $}class p8{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(T){if(T.endsWith("\r"))T=T.substring(0,T.length-1);if(!T){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
29
- `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(T),T.startsWith(":"))return null;let[$,S,J]=F9(T,":");if(J.startsWith(" "))J=J.substring(1);if($==="event")this.event=J;else if($==="data")this.data.push(J);return null}}function F9(T,$){let S=T.indexOf($);if(S!==-1)return[T.substring(0,S),$,T.substring(S+$.length)];return[T,"",""]}var o8=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",t8=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&S0(T),S0=(T)=>T!=null&&typeof T==="object"&&typeof T.size==="number"&&typeof T.type==="string"&&typeof T.text==="function"&&typeof T.slice==="function"&&typeof T.arrayBuffer==="function",W9=(T)=>{return t8(T)||o8(T)||mf(T)};async function of(T,$,S){if(T=await T,t8(T))return T;if(o8(T)){let F=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let W=S0(F)?[await F.arrayBuffer()]:[F];return new L1(W,$,S)}let J=await f9(T);if($||($=X9(T)??"unknown_file"),!S?.type){let F=J[0]?.type;if(typeof F==="string")S={...S,type:F}}return new L1(J,$,S)}async function f9(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(S0(T))$.push(await T.arrayBuffer());else if(Y9(T))for await(let S of T)$.push(S);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${A9(T)}`);return $}function A9(T){return`[${Object.getOwnPropertyNames(T).map((S)=>`"${S}"`).join(", ")}]`}function X9(T){return gf(T.name)||gf(T.filename)||gf(T.path)?.split(/[\\/]/).pop()}var gf=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},Y9=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",tf=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var p$=async(T)=>{let $=await d8(T.body);return vf($,T)},d8=async(T)=>{let $=new bf;return await Promise.all(Object.entries(T||{}).map(([S,J])=>pf($,S,J))),$};var pf=async(T,$,S)=>{if(S===void 0)return;if(S==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof S==="string"||typeof S==="number"||typeof S==="boolean")T.append($,String(S));else if(W9(S)){let J=await of(S);T.append($,J)}else if(Array.isArray(S))await Promise.all(S.map((J)=>pf(T,$+"[]",J)));else if(typeof S==="object")await Promise.all(Object.entries(S).map(([J,F])=>pf(T,`${$}[${J}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${S} instead`)};var K9=function(T,$,S,J,F){if(J==="m")throw new TypeError("Private method is not writable");if(J==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?F.call(T,S):F?F.value=S:$.set(T,S),S},M9=function(T,$,S,J){if(S==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!J:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?J:S==="a"?J.call(T):J?J.value:$.get(T)},m1;async function s8(T){let{response:$}=T;if(T.options.stream){if(JF("response",$.status,$.url,$.headers,$.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse($,T.controller);return Z$.fromSSEResponse($,T.controller)}if($.status===204)return null;if(T.options.__binaryResponse)return $;let S=$.headers.get("content-type");if(S?.includes("application/json")||S?.includes("application/vnd.api+json")){let W=await $.json();return JF("response",$.status,$.url,$.headers,W),e8(W,$)}let F=await $.text();return JF("response",$.status,$.url,$.headers,F),F}function e8(T,$){if(!T||typeof T!=="object"||Array.isArray(T))return T;return Object.defineProperty(T,"_request_id",{value:$.headers.get("x-request-id"),enumerable:!1})}class n1 extends Promise{constructor(T,$=s8){super((S)=>{S(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new n1(this.responsePromise,async($)=>e8(T(await this.parseResponse($),$),$.response))}asResponse(){return this.responsePromise.then((T)=>T.response)}async withResponse(){let[T,$]=await Promise.all([this.parse(),this.asResponse()]);return{data:T,response:$,request_id:$.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(T,$){return this.parse().then(T,$)}catch(T){return this.parse().catch(T)}finally(T){return this.parse().finally(T)}}class uf{constructor({baseURL:T,maxRetries:$=2,timeout:S=600000,httpAgent:J,fetch:F}){this.baseURL=T,this.maxRetries=df("maxRetries",$),this.timeout=df("timeout",S),this.httpAgent=J,this.fetch=F??qf}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...D9(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${_9()}`}get(T,$){return this.methodRequest("get",T,$)}post(T,$){return this.methodRequest("post",T,$)}patch(T,$){return this.methodRequest("patch",T,$)}put(T,$){return this.methodRequest("put",T,$)}delete(T,$){return this.methodRequest("delete",T,$)}methodRequest(T,$,S){return this.request(Promise.resolve(S).then(async(J)=>{let F=J&&S0(J?.body)?new DataView(await J.body.arrayBuffer()):J?.body instanceof DataView?J.body:J?.body instanceof ArrayBuffer?new DataView(J.body):J&&ArrayBuffer.isView(J?.body)?new DataView(J.body.buffer):J?.body;return{method:T,path:$,...J,body:F}}))}getAPIList(T,$,S){return this.requestAPIList($,{method:"get",path:T,...S})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:$=0}={}){T={...T};let{method:S,path:J,query:F,headers:W={}}=T,f=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:tf(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,A=this.calculateContentLength(f),X=this.buildURL(J,F);if("timeout"in T)df("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let Y=T.httpAgent??this.httpAgent??Pf(X),w=T.timeout+1000;if(typeof Y?.options?.timeout==="number"&&w>(Y.options.timeout??0))Y.options.timeout=w;if(this.idempotencyHeader&&S!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();W[this.idempotencyHeader]=T.idempotencyKey}let K=this.buildHeaders({options:T,headers:W,contentLength:A,retryCount:$});return{req:{method:S,...f&&{body:f},headers:K,...Y&&{agent:Y},signal:T.signal??null},url:X,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:S,retryCount:J}){let F={};if(S)F["content-length"]=S;let W=this.defaultHeaders(T);if(r8(F,W),r8(F,$),tf(T.body)&&YJ!=="node")delete F["content-type"];if(c1(W,"x-stainless-retry-count")===void 0&&c1($,"x-stainless-retry-count")===void 0)F["x-stainless-retry-count"]=String(J);if(c1(W,"x-stainless-timeout")===void 0&&c1($,"x-stainless-timeout")===void 0&&T.timeout)F["x-stainless-timeout"]=String(T.timeout);return this.validateHeaders(F,$),F}async prepareOptions(T){}async prepareRequest(T,{url:$,options:S}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map(($)=>[...$])):{...T}}makeStatusError(T,$,S,J){return pT.generate(T,$,S,J)}request(T,$=null){return new n1(this.makeRequest(T,$))}async makeRequest(T,$){let S=await T,J=S.maxRetries??this.maxRetries;if($==null)$=J;await this.prepareOptions(S);let{req:F,url:W,timeout:f}=this.buildRequest(S,{retryCount:J-$});if(await this.prepareRequest(F,{url:W,options:S}),JF("request",W,S,F.headers),S.signal?.aborted)throw new f$;let A=new AbortController,X=await this.fetchWithTimeout(W,F,f,A).catch(v1);if(X instanceof Error){if(S.signal?.aborted)throw new f$;if($)return this.retryRequest(S,$);if(X.name==="AbortError")throw new KJ;throw new wJ({cause:X})}let Y=O9(X.headers);if(!X.ok){if($&&this.shouldRetry(X)){let R=`retrying, ${$} attempts remaining`;return JF(`response (error; ${R})`,X.status,W,Y),this.retryRequest(S,$,Y)}let w=await X.text().catch((R)=>v1(R).message),K=E9(w),M=K?void 0:w;throw JF(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,X.status,W,Y,M),this.makeStatusError(X.status,K,M,Y)}return{response:X,options:S,controller:A}}requestAPIList(T,$){let S=this.makeRequest($,null);return new TY(this,S,T)}buildURL(T,$){let S=R9(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),J=this.defaultQuery();if(!$Y(J))$={...J,...$};if(typeof $==="object"&&$&&!Array.isArray($))S.search=this.stringifyQuery($);return S.toString()}stringifyQuery(T){return Object.entries(T).filter(([$,S])=>typeof S!=="undefined").map(([$,S])=>{if(typeof S==="string"||typeof S==="number"||typeof S==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(S)}`;if(S===null)return`${encodeURIComponent($)}=`;throw new TT(`Cannot stringify type ${typeof S}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,$,S,J){let{signal:F,...W}=$||{};if(F)F.addEventListener("abort",()=>J.abort());let f=setTimeout(()=>J.abort(),S),A={signal:J.signal,...W};if(A.method)A.method=A.method.toUpperCase();return this.fetch.call(void 0,T,A).finally(()=>{clearTimeout(f)})}shouldRetry(T){let $=T.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,$,S){let J,F=S?.["retry-after-ms"];if(F){let f=parseFloat(F);if(!Number.isNaN(f))J=f}let W=S?.["retry-after"];if(W&&!J){let f=parseFloat(W);if(!Number.isNaN(f))J=f*1000;else J=Date.parse(W)-Date.now()}if(!(J&&0<=J&&J<60000)){let f=T.maxRetries??this.maxRetries;J=this.calculateDefaultRetryTimeoutMillis($,f)}return await US(J),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let F=$-T,W=Math.min(0.5*Math.pow(2,F),8),f=1-Math.random()*0.25;return W*f*1000}getUserAgent(){return`${this.constructor.name}/JS ${XJ}`}}class g1{constructor(T,$,S,J){m1.set(this,void 0),K9(this,m1,T,"f"),this.options=J,this.response=$,this.body=S}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new TT("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let $={...this.options};if("params"in T&&typeof $.query==="object")$.query={...$.query,...T.params};else if("url"in T){let S=[...Object.entries($.query||{}),...T.url.searchParams.entries()];for(let[J,F]of S)T.url.searchParams.set(J,F);$.query=void 0,$.path=T.url.toString()}return await M9(this,m1,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(m1=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class TY extends n1{constructor(T,$,S){super($,async(J)=>new S(T,J.response,await s8(J),J.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var O9=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,S){let J=S.toString();return $[J.toLowerCase()]||$[J]}})},G9={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__metadata:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},DT=(T)=>{return typeof T==="object"&&T!==null&&!$Y(T)&&Object.keys(T).every(($)=>SY(G9,$))},H9=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":XJ,"X-Stainless-OS":i8(Deno.build.os),"X-Stainless-Arch":u8(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":XJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":process.version};if(Object.prototype.toString.call(typeof process!=="undefined"?process:0)==="[object process]")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":XJ,"X-Stainless-OS":i8(process.platform),"X-Stainless-Arch":u8(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=z9();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":XJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${T.browser}`,"X-Stainless-Runtime-Version":T.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":XJ,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function z9(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:S}of T){let J=S.exec(navigator.userAgent);if(J){let F=J[1]||0,W=J[2]||0,f=J[3]||0;return{browser:$,version:`${F}.${W}.${f}`}}}return null}var u8=(T)=>{if(T==="x32")return"x32";if(T==="x86_64"||T==="x64")return"x64";if(T==="arm")return"arm";if(T==="aarch64"||T==="arm64")return"arm64";if(T)return`other:${T}`;return"unknown"},i8=(T)=>{if(T=T.toLowerCase(),T.includes("ios"))return"iOS";if(T==="android")return"Android";if(T==="darwin")return"MacOS";if(T==="win32")return"Windows";if(T==="freebsd")return"FreeBSD";if(T==="openbsd")return"OpenBSD";if(T==="linux")return"Linux";if(T)return`Other:${T}`;return"Unknown"},l8,D9=()=>{return l8??(l8=H9())},E9=(T)=>{try{return JSON.parse(T)}catch($){return}},Q9=/^[a-z][a-z0-9+.-]*:/i,R9=(T)=>{return Q9.test(T)},US=(T)=>new Promise(($)=>setTimeout($,T)),df=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new TT(`${T} must be an integer`);if($<0)throw new TT(`${T} must be a positive integer`);return $},v1=(T)=>{if(T instanceof Error)return T;if(typeof T==="object"&&T!==null)try{return new Error(JSON.stringify(T))}catch{}return new Error(T)};var J0=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function $Y(T){if(!T)return!0;for(let $ in T)return!1;return!0}function SY(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function r8(T,$){for(let S in $){if(!SY($,S))continue;let J=S.toLowerCase();if(!J)continue;let F=$[S];if(F===null)delete T[J];else if(F!==void 0)T[J]=F}}var a8=new Set(["authorization","api-key"]);function JF(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let S=$.map((J)=>{if(!J)return J;if(J.headers){let W={...J,headers:{...J.headers}};for(let f in J.headers)if(a8.has(f.toLowerCase()))W.headers[f]="REDACTED";return W}let F=null;for(let W in J)if(a8.has(W.toLowerCase()))F??(F={...J}),F[W]="REDACTED";return F??J});console.log(`OpenAI:DEBUG:${T}`,...S)}}var _9=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},JY=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},k9=(T)=>{return typeof T?.get==="function"};var c1=(T,$)=>{let S=$.toLowerCase();if(k9(T)){let J=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(F,W,f)=>W+f.toUpperCase());for(let F of[$,S,$.toUpperCase(),J]){let W=T.get(F);if(W)return W}}for(let[J,F]of Object.entries(T))if(J.toLowerCase()===S){if(Array.isArray(F)){if(F.length<=1)return F[0];return console.warn(`Received ${F.length} entries for the ${$} header, using the first entry.`),F[0]}return F}return};function F0(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class lf extends g1{constructor(T,$,S,J){super(T,$,S,J);this.data=S.data||[],this.object=S.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class xT extends g1{constructor(T,$,S,J){super(T,$,S,J);this.data=S.data||[],this.has_more=S.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageParams(){let T=this.nextPageInfo();if(!T)return null;if("params"in T)return T.params;let $=Object.fromEntries(T.url.searchParams);if(!Object.keys($).length)return null;return $}nextPageInfo(){let T=this.getPaginatedItems();if(!T.length)return null;let $=T[T.length-1]?.id;if(!$)return null;return{params:{after:$}}}}class n{constructor(T){this._client=T}}class W0 extends n{list(T,$={},S){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/chat/completions/${T}/messages`,rf,{query:$,...S})}}class GJ extends n{constructor(){super(...arguments);this.messages=new W0(this._client)}create(T,$){return this._client.post("/chat/completions",{body:T,...$,stream:T.stream??!1})}retrieve(T,$){return this._client.get(`/chat/completions/${T}`,$)}update(T,$,S){return this._client.post(`/chat/completions/${T}`,{body:$,...S})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/chat/completions",HJ,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class HJ extends xT{}class rf extends xT{}GJ.ChatCompletionsPage=HJ;GJ.Messages=W0;class pS extends n{constructor(){super(...arguments);this.completions=new GJ(this._client)}}pS.Completions=GJ;pS.ChatCompletionsPage=HJ;class f0 extends n{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class A0 extends n{create(T,$){return this._client.post("/audio/transcriptions",p$({body:T,...$,__metadata:{model:T.model}}))}}class X0 extends n{create(T,$){return this._client.post("/audio/translations",p$({body:T,...$,__metadata:{model:T.model}}))}}class VS extends n{constructor(){super(...arguments);this.transcriptions=new A0(this._client),this.translations=new X0(this._client),this.speech=new f0(this._client)}}VS.Transcriptions=A0;VS.Translations=X0;VS.Speech=f0;class zJ extends n{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/batches",FF,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class FF extends xT{}zJ.BatchesPage=FF;class WF extends n{create(T,$){return this._client.post("/assistants",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,S){return this._client.post(`/assistants/${T}`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/assistants",Y0,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class Y0 extends xT{}WF.AssistantsPage=Y0;function af(T){return typeof T.parse==="function"}var oS=(T)=>{return T?.role==="assistant"},sf=(T)=>{return T?.role==="function"},ef=(T)=>{return T?.role==="tool"};var $S=function(T,$,S,J,F){if(J==="m")throw new TypeError("Private method is not writable");if(J==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?F.call(T,S):F?F.value=S:$.set(T,S),S},bT=function(T,$,S,J){if(S==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!J:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?J:S==="a"?J.call(T):J?J.value:$.get(T)},TA,p1,o1,w0,K0,t1,M0,BS,O0,d1,u1,fF,FY;class G0{constructor(){TA.add(this),this.controller=new AbortController,p1.set(this,void 0),o1.set(this,()=>{}),w0.set(this,()=>{}),K0.set(this,void 0),t1.set(this,()=>{}),M0.set(this,()=>{}),BS.set(this,{}),O0.set(this,!1),d1.set(this,!1),u1.set(this,!1),fF.set(this,!1),$S(this,p1,new Promise((T,$)=>{$S(this,o1,T,"f"),$S(this,w0,$,"f")}),"f"),$S(this,K0,new Promise((T,$)=>{$S(this,t1,T,"f"),$S(this,M0,$,"f")}),"f"),bT(this,p1,"f").catch(()=>{}),bT(this,K0,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},bT(this,TA,"m",FY).bind(this))},0)}_connected(){if(this.ended)return;bT(this,o1,"f").call(this),this._emit("connect")}get ended(){return bT(this,O0,"f")}get errored(){return bT(this,d1,"f")}get aborted(){return bT(this,u1,"f")}abort(){this.controller.abort()}on(T,$){return(bT(this,BS,"f")[T]||(bT(this,BS,"f")[T]=[])).push({listener:$}),this}off(T,$){let S=bT(this,BS,"f")[T];if(!S)return this;let J=S.findIndex((F)=>F.listener===$);if(J>=0)S.splice(J,1);return this}once(T,$){return(bT(this,BS,"f")[T]||(bT(this,BS,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,S)=>{if($S(this,fF,!0,"f"),T!=="error")this.once("error",S);this.once(T,$)})}async done(){$S(this,fF,!0,"f"),await bT(this,K0,"f")}_emit(T,...$){if(bT(this,O0,"f"))return;if(T==="end")$S(this,O0,!0,"f"),bT(this,t1,"f").call(this);let S=bT(this,BS,"f")[T];if(S)bT(this,BS,"f")[T]=S.filter((J)=>!J.once),S.forEach(({listener:J})=>J(...$));if(T==="abort"){let J=$[0];if(!bT(this,fF,"f")&&!S?.length)Promise.reject(J);bT(this,w0,"f").call(this,J),bT(this,M0,"f").call(this,J),this._emit("end");return}if(T==="error"){let J=$[0];if(!bT(this,fF,"f")&&!S?.length)Promise.reject(J);bT(this,w0,"f").call(this,J),bT(this,M0,"f").call(this,J),this._emit("end")}}_emitFinal(){}}p1=new WeakMap,o1=new WeakMap,w0=new WeakMap,K0=new WeakMap,t1=new WeakMap,M0=new WeakMap,BS=new WeakMap,O0=new WeakMap,d1=new WeakMap,u1=new WeakMap,fF=new WeakMap,TA=new WeakSet,FY=function T($){if($S(this,d1,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new f$;if($ instanceof f$)return $S(this,u1,!0,"f"),this._emit("abort",$);if($ instanceof TT)return this._emit("error",$);if($ instanceof Error){let S=new TT($.message);return S.cause=$,this._emit("error",S)}return this._emit("error",new TT(String($)))};function $A(T){return T?.$brand==="auto-parseable-response-format"}function DJ(T){return T?.$brand==="auto-parseable-tool"}function WY(T,$){if(!$||!SA($))return{...T,choices:T.choices.map((S)=>({...S,message:{...S.message,parsed:null,...S.message.tool_calls?{tool_calls:S.message.tool_calls}:void 0}}))};return H0(T,$)}function H0(T,$){let S=T.choices.map((J)=>{if(J.finish_reason==="length")throw new T0;if(J.finish_reason==="content_filter")throw new $0;return{...J,message:{...J.message,...J.message.tool_calls?{tool_calls:J.message.tool_calls?.map((F)=>x9($,F))??void 0}:void 0,parsed:J.message.content&&!J.message.refusal?C9($,J.message.content):null}}});return{...T,choices:S}}function C9(T,$){if(T.response_format?.type!=="json_schema")return null;if(T.response_format?.type==="json_schema"){if("$parseRaw"in T.response_format)return T.response_format.$parseRaw($);return JSON.parse($)}return null}function x9(T,$){let S=T.tools?.find((J)=>J.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:DJ(S)?S.$parseRaw($.function.arguments):S?.function.strict?JSON.parse($.function.arguments):null}}}function fY(T,$){if(!T)return!1;let S=T.tools?.find((J)=>J.function?.name===$.function.name);return DJ(S)||S?.function.strict||!1}function SA(T){if($A(T.response_format))return!0;return T.tools?.some(($)=>DJ($)||$.type==="function"&&$.function.strict===!0)??!1}function AY(T){for(let $ of T??[]){if($.type!=="function")throw new TT(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new TT(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var y$=function(T,$,S,J){if(S==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!J:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?J:S==="a"?J.call(T):J?J.value:$.get(T)},z$,JA,i1,FA,WA,fA,YY,AA,XY=10;class z0 extends G0{constructor(){super(...arguments);z$.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(T){this._chatCompletions.push(T),this._emit("chatCompletion",T);let $=T.choices[0]?.message;if($)this._addMessage($);return T}_addMessage(T,$=!0){if(!("content"in T))T.content=null;if(this.messages.push(T),$){if(this._emit("message",T),(sf(T)||ef(T))&&T.content)this._emit("functionCallResult",T.content);else if(oS(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(oS(T)&&T.tool_calls){for(let S of T.tool_calls)if(S.type==="function")this._emit("functionCall",S.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new TT("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),y$(this,z$,"m",JA).call(this)}async finalMessage(){return await this.done(),y$(this,z$,"m",i1).call(this)}async finalFunctionCall(){return await this.done(),y$(this,z$,"m",FA).call(this)}async finalFunctionCallResult(){return await this.done(),y$(this,z$,"m",WA).call(this)}async totalUsage(){return await this.done(),y$(this,z$,"m",fA).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=y$(this,z$,"m",i1).call(this);if($)this._emit("finalMessage",$);let S=y$(this,z$,"m",JA).call(this);if(S)this._emit("finalContent",S);let J=y$(this,z$,"m",FA).call(this);if(J)this._emit("finalFunctionCall",J);let F=y$(this,z$,"m",WA).call(this);if(F!=null)this._emit("finalFunctionCallResult",F);if(this._chatCompletions.some((W)=>W.usage))this._emit("totalUsage",y$(this,z$,"m",fA).call(this))}async _createChatCompletion(T,$,S){let J=S?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}y$(this,z$,"m",YY).call(this,$);let F=await T.chat.completions.create({...$,stream:!1},{...S,signal:this.controller.signal});return this._connected(),this._addChatCompletion(H0(F,$))}async _runChatCompletion(T,$,S){for(let J of $.messages)this._addMessage(J,!1);return await this._createChatCompletion(T,$,S)}async _runFunctions(T,$,S){let{function_call:F="auto",stream:W,...f}=$,A=typeof F!=="string"&&F?.name,{maxChatCompletions:X=XY}=S||{},Y={};for(let K of $.functions)Y[K.name||K.function.name]=K;let w=$.functions.map((K)=>({name:K.name||K.function.name,parameters:K.parameters,description:K.description}));for(let K of $.messages)this._addMessage(K,!1);for(let K=0;K<X;++K){let D=(await this._createChatCompletion(T,{...f,function_call:F,functions:w,messages:[...this.messages]},S)).choices[0]?.message;if(!D)throw new TT("missing message in ChatCompletion response");if(!D.function_call)return;let{name:z,arguments:R}=D.function_call,L=Y[z];if(!L){let Q=`Invalid function_call: ${JSON.stringify(z)}. Available options are: ${w.map((V)=>JSON.stringify(V.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:z,content:Q});continue}else if(A&&A!==z){let Q=`Invalid function_call: ${JSON.stringify(z)}. ${JSON.stringify(A)} requested. Please try again`;this._addMessage({role:"function",name:z,content:Q});continue}let j;try{j=af(L)?await L.parse(R):R}catch(Q){this._addMessage({role:"function",name:z,content:Q instanceof Error?Q.message:String(Q)});continue}let y=await L.function(j,this),I=y$(this,z$,"m",AA).call(this,y);if(this._addMessage({role:"function",name:z,content:I}),A)return}}async _runTools(T,$,S){let{tool_choice:F="auto",stream:W,...f}=$,A=typeof F!=="string"&&F?.function?.name,{maxChatCompletions:X=XY}=S||{},Y=$.tools.map((M)=>{if(DJ(M)){if(!M.$callback)throw new TT("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:M.$callback,name:M.function.name,description:M.function.description||"",parameters:M.function.parameters,parse:M.$parseRaw,strict:!0}}}return M}),w={};for(let M of Y)if(M.type==="function")w[M.function.name||M.function.function.name]=M.function;let K="tools"in $?Y.map((M)=>M.type==="function"?{type:"function",function:{name:M.function.name||M.function.function.name,parameters:M.function.parameters,description:M.function.description,strict:M.function.strict}}:M):void 0;for(let M of $.messages)this._addMessage(M,!1);for(let M=0;M<X;++M){let z=(await this._createChatCompletion(T,{...f,tool_choice:F,tools:K,messages:[...this.messages]},S)).choices[0]?.message;if(!z)throw new TT("missing message in ChatCompletion response");if(!z.tool_calls?.length)return;for(let R of z.tool_calls){if(R.type!=="function")continue;let L=R.id,{name:j,arguments:y}=R.function,I=w[j];if(!I){let U=`Invalid tool_call: ${JSON.stringify(j)}. Available options are: ${Object.keys(w).map((h)=>JSON.stringify(h)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:L,content:U});continue}else if(A&&A!==j){let U=`Invalid tool_call: ${JSON.stringify(j)}. ${JSON.stringify(A)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:L,content:U});continue}let Q;try{Q=af(I)?await I.parse(y):y}catch(U){let h=U instanceof Error?U.message:String(U);this._addMessage({role:"tool",tool_call_id:L,content:h});continue}let V=await I.function(Q,this),B=y$(this,z$,"m",AA).call(this,V);if(this._addMessage({role:"tool",tool_call_id:L,content:B}),A)return}}return}}z$=new WeakSet,JA=function T(){return y$(this,z$,"m",i1).call(this).content??null},i1=function T(){let $=this.messages.length;while($-- >0){let S=this.messages[$];if(oS(S)){let{function_call:J,...F}=S,W={...F,content:S.content??null,refusal:S.refusal??null};if(J)W.function_call=J;return W}}throw new TT("stream ended without producing a ChatCompletionMessage with role=assistant")},FA=function T(){for(let $=this.messages.length-1;$>=0;$--){let S=this.messages[$];if(oS(S)&&S?.function_call)return S.function_call;if(oS(S)&&S?.tool_calls?.length)return S.tool_calls.at(-1)?.function}return},WA=function T(){for(let $=this.messages.length-1;$>=0;$--){let S=this.messages[$];if(sf(S)&&S.content!=null)return S.content;if(ef(S)&&S.content!=null&&typeof S.content==="string"&&this.messages.some((J)=>J.role==="assistant"&&J.tool_calls?.some((F)=>F.type==="function"&&F.id===S.tool_call_id)))return S.content}return},fA=function T(){let $={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:S}of this._chatCompletions)if(S)$.completion_tokens+=S.completion_tokens,$.prompt_tokens+=S.prompt_tokens,$.total_tokens+=S.total_tokens;return $},YY=function T($){if($.n!=null&&$.n>1)throw new TT("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},AA=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class AF extends z0{static runFunctions(T,$,S){let J=new AF,F={...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return J._run(()=>J._runFunctions(T,$,F)),J}static runTools(T,$,S){let J=new AF,F={...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"runTools"}};return J._run(()=>J._runTools(T,$,F)),J}_addMessage(T,$=!0){if(super._addMessage(T,$),oS(T)&&T.content)this._emit("content",T.content)}}var S$={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class wY extends Error{}class KY extends Error{}function j9(T,$=S$.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return I9(T.trim(),$)}var I9=(T,$)=>{let S=T.length,J=0,F=(M)=>{throw new wY(`${M} at position ${J}`)},W=(M)=>{throw new KY(`${M} at position ${J}`)},f=()=>{if(K(),J>=S)F("Unexpected end of input");if(T[J]==='"')return A();if(T[J]==="{")return X();if(T[J]==="[")return Y();if(T.substring(J,J+4)==="null"||S$.NULL&$&&S-J<4&&"null".startsWith(T.substring(J)))return J+=4,null;if(T.substring(J,J+4)==="true"||S$.BOOL&$&&S-J<4&&"true".startsWith(T.substring(J)))return J+=4,!0;if(T.substring(J,J+5)==="false"||S$.BOOL&$&&S-J<5&&"false".startsWith(T.substring(J)))return J+=5,!1;if(T.substring(J,J+8)==="Infinity"||S$.INFINITY&$&&S-J<8&&"Infinity".startsWith(T.substring(J)))return J+=8,1/0;if(T.substring(J,J+9)==="-Infinity"||S$.MINUS_INFINITY&$&&1<S-J&&S-J<9&&"-Infinity".startsWith(T.substring(J)))return J+=9,-1/0;if(T.substring(J,J+3)==="NaN"||S$.NAN&$&&S-J<3&&"NaN".startsWith(T.substring(J)))return J+=3,NaN;return w()},A=()=>{let M=J,D=!1;J++;while(J<S&&(T[J]!=='"'||D&&T[J-1]==="\\"))D=T[J]==="\\"?!D:!1,J++;if(T.charAt(J)=='"')try{return JSON.parse(T.substring(M,++J-Number(D)))}catch(z){W(String(z))}else if(S$.STR&$)try{return JSON.parse(T.substring(M,J-Number(D))+'"')}catch(z){return JSON.parse(T.substring(M,T.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},X=()=>{J++,K();let M={};try{while(T[J]!=="}"){if(K(),J>=S&&S$.OBJ&$)return M;let D=A();K(),J++;try{let z=f();Object.defineProperty(M,D,{value:z,writable:!0,enumerable:!0,configurable:!0})}catch(z){if(S$.OBJ&$)return M;else throw z}if(K(),T[J]===",")J++}}catch(D){if(S$.OBJ&$)return M;else F("Expected '}' at end of object")}return J++,M},Y=()=>{J++;let M=[];try{while(T[J]!=="]")if(M.push(f()),K(),T[J]===",")J++}catch(D){if(S$.ARR&$)return M;F("Expected ']' at end of array")}return J++,M},w=()=>{if(J===0){if(T==="-"&&S$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T)}catch(D){if(S$.NUM&$)try{if(T[T.length-1]===".")return JSON.parse(T.substring(0,T.lastIndexOf(".")));return JSON.parse(T.substring(0,T.lastIndexOf("e")))}catch(z){}W(String(D))}}let M=J;if(T[J]==="-")J++;while(T[J]&&!",]}".includes(T[J]))J++;if(J==S&&!(S$.NUM&$))F("Unterminated number literal");try{return JSON.parse(T.substring(M,J))}catch(D){if(T.substring(M,J)==="-"&&S$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T.substring(M,T.lastIndexOf("e")))}catch(z){W(String(z))}}},K=()=>{while(J<S&&`
30
- \r `.includes(T[J]))J++};return f()},XA=(T)=>j9(T,S$.ALL^S$.NUM);var XF=function(T,$,S,J,F){if(J==="m")throw new TypeError("Private method is not writable");if(J==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?F.call(T,S):F?F.value=S:$.set(T,S),S},QT=function(T,$,S,J){if(S==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!J:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?J:S==="a"?J.call(T):J?J.value:$.get(T)},sT,yS,YF,tS,YA,l1,wA,KA,MA,r1,OA,MY;class EJ extends z0{constructor(T){super();sT.add(this),yS.set(this,void 0),YF.set(this,void 0),tS.set(this,void 0),XF(this,yS,T,"f"),XF(this,YF,[],"f")}get currentChatCompletionSnapshot(){return QT(this,tS,"f")}static fromReadableStream(T){let $=new EJ(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,S){let J=new EJ($);return J._run(()=>J._runChatCompletion(T,{...$,stream:!0},{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"stream"}})),J}async _createChatCompletion(T,$,S){super._createChatCompletion;let J=S?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}QT(this,sT,"m",YA).call(this);let F=await T.chat.completions.create({...$,stream:!0},{...S,signal:this.controller.signal});this._connected();for await(let W of F)QT(this,sT,"m",wA).call(this,W);if(F.controller.signal?.aborted)throw new f$;return this._addChatCompletion(QT(this,sT,"m",r1).call(this))}async _fromReadableStream(T,$){let S=$?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}QT(this,sT,"m",YA).call(this),this._connected();let J=Z$.fromReadableStream(T,this.controller),F;for await(let W of J){if(F&&F!==W.id)this._addChatCompletion(QT(this,sT,"m",r1).call(this));QT(this,sT,"m",wA).call(this,W),F=W.id}if(J.controller.signal?.aborted)throw new f$;return this._addChatCompletion(QT(this,sT,"m",r1).call(this))}[(yS=new WeakMap,YF=new WeakMap,tS=new WeakMap,sT=new WeakSet,YA=function T(){if(this.ended)return;XF(this,tS,void 0,"f")},l1=function T($){let S=QT(this,YF,"f")[$.index];if(S)return S;return S={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},QT(this,YF,"f")[$.index]=S,S},wA=function T($){if(this.ended)return;let S=QT(this,sT,"m",MY).call(this,$);this._emit("chunk",$,S);for(let J of $.choices){let F=S.choices[J.index];if(J.delta.content!=null&&F.message?.role==="assistant"&&F.message?.content)this._emit("content",J.delta.content,F.message.content),this._emit("content.delta",{delta:J.delta.content,snapshot:F.message.content,parsed:F.message.parsed});if(J.delta.refusal!=null&&F.message?.role==="assistant"&&F.message?.refusal)this._emit("refusal.delta",{delta:J.delta.refusal,snapshot:F.message.refusal});if(J.logprobs?.content!=null&&F.message?.role==="assistant")this._emit("logprobs.content.delta",{content:J.logprobs?.content,snapshot:F.logprobs?.content??[]});if(J.logprobs?.refusal!=null&&F.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:J.logprobs?.refusal,snapshot:F.logprobs?.refusal??[]});let W=QT(this,sT,"m",l1).call(this,F);if(F.finish_reason){if(QT(this,sT,"m",MA).call(this,F),W.current_tool_call_index!=null)QT(this,sT,"m",KA).call(this,F,W.current_tool_call_index)}for(let f of J.delta.tool_calls??[]){if(W.current_tool_call_index!==f.index){if(QT(this,sT,"m",MA).call(this,F),W.current_tool_call_index!=null)QT(this,sT,"m",KA).call(this,F,W.current_tool_call_index)}W.current_tool_call_index=f.index}for(let f of J.delta.tool_calls??[]){let A=F.message.tool_calls?.[f.index];if(!A?.type)continue;if(A?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:A.function?.name,index:f.index,arguments:A.function.arguments,parsed_arguments:A.function.parsed_arguments,arguments_delta:f.function?.arguments??""});else GY(A?.type)}}},KA=function T($,S){if(QT(this,sT,"m",l1).call(this,$).done_tool_calls.has(S))return;let F=$.message.tool_calls?.[S];if(!F)throw new Error("no tool call snapshot");if(!F.type)throw new Error("tool call snapshot missing `type`");if(F.type==="function"){let W=QT(this,yS,"f")?.tools?.find((f)=>f.type==="function"&&f.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:S,arguments:F.function.arguments,parsed_arguments:DJ(W)?W.$parseRaw(F.function.arguments):W?.function.strict?JSON.parse(F.function.arguments):null})}else GY(F.type)},MA=function T($){let S=QT(this,sT,"m",l1).call(this,$);if($.message.content&&!S.content_done){S.content_done=!0;let J=QT(this,sT,"m",OA).call(this);this._emit("content.done",{content:$.message.content,parsed:J?J.$parseRaw($.message.content):null})}if($.message.refusal&&!S.refusal_done)S.refusal_done=!0,this._emit("refusal.done",{refusal:$.message.refusal});if($.logprobs?.content&&!S.logprobs_content_done)S.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:$.logprobs.content});if($.logprobs?.refusal&&!S.logprobs_refusal_done)S.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:$.logprobs.refusal})},r1=function T(){if(this.ended)throw new TT("stream has ended, this shouldn't happen");let $=QT(this,tS,"f");if(!$)throw new TT("request ended without sending any chunks");return XF(this,tS,void 0,"f"),XF(this,YF,[],"f"),Z9($,QT(this,yS,"f"))},OA=function T(){let $=QT(this,yS,"f")?.response_format;if($A($))return $;return null},MY=function T($){var S,J,F,W;let f=QT(this,tS,"f"),{choices:A,...X}=$;if(!f)f=XF(this,tS,{...X,choices:[]},"f");else Object.assign(f,X);for(let{delta:Y,finish_reason:w,index:K,logprobs:M=null,...D}of $.choices){let z=f.choices[K];if(!z)z=f.choices[K]={finish_reason:w,index:K,message:{},logprobs:M,...D};if(M)if(!z.logprobs)z.logprobs=Object.assign({},M);else{let{content:V,refusal:B,...U}=M;if(OY(U),Object.assign(z.logprobs,U),V)(S=z.logprobs).content??(S.content=[]),z.logprobs.content.push(...V);if(B)(J=z.logprobs).refusal??(J.refusal=[]),z.logprobs.refusal.push(...B)}if(w){if(z.finish_reason=w,QT(this,yS,"f")&&SA(QT(this,yS,"f"))){if(w==="length")throw new T0;if(w==="content_filter")throw new $0}}if(Object.assign(z,D),!Y)continue;let{content:R,refusal:L,function_call:j,role:y,tool_calls:I,...Q}=Y;if(OY(Q),Object.assign(z.message,Q),L)z.message.refusal=(z.message.refusal||"")+L;if(y)z.message.role=y;if(j)if(!z.message.function_call)z.message.function_call=j;else{if(j.name)z.message.function_call.name=j.name;if(j.arguments)(F=z.message.function_call).arguments??(F.arguments=""),z.message.function_call.arguments+=j.arguments}if(R){if(z.message.content=(z.message.content||"")+R,!z.message.refusal&&QT(this,sT,"m",OA).call(this))z.message.parsed=XA(z.message.content)}if(I){if(!z.message.tool_calls)z.message.tool_calls=[];for(let{index:V,id:B,type:U,function:h,...l}of I){let _=(W=z.message.tool_calls)[V]??(W[V]={});if(Object.assign(_,l),B)_.id=B;if(U)_.type=U;if(h)_.function??(_.function={name:h.name??"",arguments:""});if(h?.name)_.function.name=h.name;if(h?.arguments){if(_.function.arguments+=h.arguments,fY(QT(this,yS,"f"),_))_.function.parsed_arguments=XA(_.function.arguments)}}}}return f},Symbol.asyncIterator)](){let T=[],$=[],S=!1;return this.on("chunk",(J)=>{let F=$.shift();if(F)F.resolve(J);else T.push(J)}),this.on("end",()=>{S=!0;for(let J of $)J.resolve(void 0);$.length=0}),this.on("abort",(J)=>{S=!0;for(let F of $)F.reject(J);$.length=0}),this.on("error",(J)=>{S=!0;for(let F of $)F.reject(J);$.length=0}),{next:async()=>{if(!T.length){if(S)return{value:void 0,done:!0};return new Promise((F,W)=>$.push({resolve:F,reject:W})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new Z$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function Z9(T,$){let{id:S,choices:J,created:F,model:W,system_fingerprint:f,...A}=T,X={...A,id:S,choices:J.map(({message:Y,finish_reason:w,index:K,logprobs:M,...D})=>{if(!w)throw new TT(`missing finish_reason for choice ${K}`);let{content:z=null,function_call:R,tool_calls:L,...j}=Y,y=Y.role;if(!y)throw new TT(`missing role for choice ${K}`);if(R){let{arguments:I,name:Q}=R;if(I==null)throw new TT(`missing function_call.arguments for choice ${K}`);if(!Q)throw new TT(`missing function_call.name for choice ${K}`);return{...D,message:{content:z,function_call:{arguments:I,name:Q},role:y,refusal:Y.refusal??null},finish_reason:w,index:K,logprobs:M}}if(L)return{...D,index:K,finish_reason:w,logprobs:M,message:{...j,role:y,content:z,refusal:Y.refusal??null,tool_calls:L.map((I,Q)=>{let{function:V,type:B,id:U,...h}=I,{arguments:l,name:_,...s}=V||{};if(U==null)throw new TT(`missing choices[${K}].tool_calls[${Q}].id
31
- ${a1(T)}`);if(B==null)throw new TT(`missing choices[${K}].tool_calls[${Q}].type
32
- ${a1(T)}`);if(_==null)throw new TT(`missing choices[${K}].tool_calls[${Q}].function.name
33
- ${a1(T)}`);if(l==null)throw new TT(`missing choices[${K}].tool_calls[${Q}].function.arguments
34
- ${a1(T)}`);return{...h,id:U,type:B,function:{...s,name:_,arguments:l}}})}};return{...D,message:{...j,content:z,role:y,refusal:Y.refusal??null},finish_reason:w,index:K,logprobs:M}}),created:F,model:W,object:"chat.completion",...f?{system_fingerprint:f}:{}};return WY(X,$)}function a1(T){return JSON.stringify(T)}function OY(T){return}function GY(T){}class QJ extends EJ{static fromReadableStream(T){let $=new QJ(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,S){let J=new QJ(null),F={...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return J._run(()=>J._runFunctions(T,$,F)),J}static runTools(T,$,S){let J=new QJ($),F={...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"runTools"}};return J._run(()=>J._runTools(T,$,F)),J}}class s1 extends n{parse(T,$){return AY(T.tools),this._client.chat.completions.create(T,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((S)=>H0(S,T))}runFunctions(T,$){if(T.stream)return QJ.runFunctions(this._client,T,$);return AF.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return QJ.runTools(this._client,T,$);return AF.runTools(this._client,T,$)}stream(T,$){return EJ.createChatCompletion(this._client,T,$)}}class D0 extends n{constructor(){super(...arguments);this.completions=new s1(this._client)}}(function(T){T.Completions=s1})(D0||(D0={}));class E0 extends n{create(T,$){return this._client.post("/realtime/sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class wF extends n{constructor(){super(...arguments);this.sessions=new E0(this._client)}}wF.Sessions=E0;var t=function(T,$,S,J){if(S==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!J:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?J:S==="a"?J.call(T):J?J.value:$.get(T)},q$=function(T,$,S,J,F){if(J==="m")throw new TypeError("Private method is not writable");if(J==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?F.call(T,S):F?F.value=S:$.set(T,S),S},A$,GA,GS,e1,SS,_J,KF,RJ,SW,b$,TW,$W,_0,Q0,R0,HY,zY,DY,EY,QY,RY,_Y;class h$ extends G0{constructor(){super(...arguments);A$.add(this),GA.set(this,[]),GS.set(this,{}),e1.set(this,{}),SS.set(this,void 0),_J.set(this,void 0),KF.set(this,void 0),RJ.set(this,void 0),SW.set(this,void 0),b$.set(this,void 0),TW.set(this,void 0),$W.set(this,void 0),_0.set(this,void 0)}[(GA=new WeakMap,GS=new WeakMap,e1=new WeakMap,SS=new WeakMap,_J=new WeakMap,KF=new WeakMap,RJ=new WeakMap,SW=new WeakMap,b$=new WeakMap,TW=new WeakMap,$W=new WeakMap,_0=new WeakMap,A$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],S=!1;return this.on("event",(J)=>{let F=$.shift();if(F)F.resolve(J);else T.push(J)}),this.on("end",()=>{S=!0;for(let J of $)J.resolve(void 0);$.length=0}),this.on("abort",(J)=>{S=!0;for(let F of $)F.reject(J);$.length=0}),this.on("error",(J)=>{S=!0;for(let F of $)F.reject(J);$.length=0}),{next:async()=>{if(!T.length){if(S)return{value:void 0,done:!0};return new Promise((F,W)=>$.push({resolve:F,reject:W})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(T){let $=new h$;return $._run(()=>$._fromReadableStream(T)),$}async _fromReadableStream(T,$){let S=$?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}this._connected();let J=Z$.fromReadableStream(T,this.controller);for await(let F of J)t(this,A$,"m",Q0).call(this,F);if(J.controller.signal?.aborted)throw new f$;return this._addRun(t(this,A$,"m",R0).call(this))}toReadableStream(){return new Z$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,S,J,F){let W=new h$;return W._run(()=>W._runToolAssistantStream(T,$,S,J,{...F,headers:{...F?.headers,"X-Stainless-Helper-Method":"stream"}})),W}async _createToolAssistantStream(T,$,S,J,F){let W=F?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}let f={...J,stream:!0},A=await T.submitToolOutputs($,S,f,{...F,signal:this.controller.signal});this._connected();for await(let X of A)t(this,A$,"m",Q0).call(this,X);if(A.controller.signal?.aborted)throw new f$;return this._addRun(t(this,A$,"m",R0).call(this))}static createThreadAssistantStream(T,$,S){let J=new h$;return J._run(()=>J._threadAssistantStream(T,$,{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"stream"}})),J}static createAssistantStream(T,$,S,J){let F=new h$;return F._run(()=>F._runAssistantStream(T,$,S,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return t(this,TW,"f")}currentRun(){return t(this,$W,"f")}currentMessageSnapshot(){return t(this,SS,"f")}currentRunStepSnapshot(){return t(this,_0,"f")}async finalRunSteps(){return await this.done(),Object.values(t(this,GS,"f"))}async finalMessages(){return await this.done(),Object.values(t(this,e1,"f"))}async finalRun(){if(await this.done(),!t(this,_J,"f"))throw Error("Final run was not received.");return t(this,_J,"f")}async _createThreadAssistantStream(T,$,S){let J=S?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}let F={...$,stream:!0},W=await T.createAndRun(F,{...S,signal:this.controller.signal});this._connected();for await(let f of W)t(this,A$,"m",Q0).call(this,f);if(W.controller.signal?.aborted)throw new f$;return this._addRun(t(this,A$,"m",R0).call(this))}async _createAssistantStream(T,$,S,J){let F=J?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let W={...S,stream:!0},f=await T.create($,W,{...J,signal:this.controller.signal});this._connected();for await(let A of f)t(this,A$,"m",Q0).call(this,A);if(f.controller.signal?.aborted)throw new f$;return this._addRun(t(this,A$,"m",R0).call(this))}static accumulateDelta(T,$){for(let[S,J]of Object.entries($)){if(!T.hasOwnProperty(S)){T[S]=J;continue}let F=T[S];if(F===null||F===void 0){T[S]=J;continue}if(S==="index"||S==="type"){T[S]=J;continue}if(typeof F==="string"&&typeof J==="string")F+=J;else if(typeof F==="number"&&typeof J==="number")F+=J;else if(F0(F)&&F0(J))F=this.accumulateDelta(F,J);else if(Array.isArray(F)&&Array.isArray(J)){if(F.every((W)=>typeof W==="string"||typeof W==="number")){F.push(...J);continue}for(let W of J){if(!F0(W))throw new Error(`Expected array delta entry to be an object but got: ${W}`);let f=W.index;if(f==null)throw console.error(W),new Error("Expected array delta entry to have an `index` property");if(typeof f!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${f}`);let A=F[f];if(A==null)F.push(W);else F[f]=this.accumulateDelta(A,W)}continue}else throw Error(`Unhandled record type: ${S}, deltaValue: ${J}, accValue: ${F}`);T[S]=F}return T}_addRun(T){return T}async _threadAssistantStream(T,$,S){return await this._createThreadAssistantStream($,T,S)}async _runAssistantStream(T,$,S,J){return await this._createAssistantStream($,T,S,J)}async _runToolAssistantStream(T,$,S,J,F){return await this._createToolAssistantStream(S,T,$,J,F)}}Q0=function T($){if(this.ended)return;switch(q$(this,TW,$,"f"),t(this,A$,"m",DY).call(this,$),$.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":t(this,A$,"m",_Y).call(this,$);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":t(this,A$,"m",zY).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":t(this,A$,"m",HY).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:P9($)}},R0=function T(){if(this.ended)throw new TT("stream has ended, this shouldn't happen");if(!t(this,_J,"f"))throw Error("Final run has not been received");return t(this,_J,"f")},HY=function T($){let[S,J]=t(this,A$,"m",QY).call(this,$,t(this,SS,"f"));q$(this,SS,S,"f"),t(this,e1,"f")[S.id]=S;for(let F of J){let W=S.content[F.index];if(W?.type=="text")this._emit("textCreated",W.text)}switch($.event){case"thread.message.created":this._emit("messageCreated",$.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",$.data.delta,S),$.data.delta.content)for(let F of $.data.delta.content){if(F.type=="text"&&F.text){let W=F.text,f=S.content[F.index];if(f&&f.type=="text")this._emit("textDelta",W,f.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=t(this,KF,"f")){if(t(this,RJ,"f"))switch(t(this,RJ,"f").type){case"text":this._emit("textDone",t(this,RJ,"f").text,t(this,SS,"f"));break;case"image_file":this._emit("imageFileDone",t(this,RJ,"f").image_file,t(this,SS,"f"));break}q$(this,KF,F.index,"f")}q$(this,RJ,S.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(t(this,KF,"f")!==void 0){let F=$.data.content[t(this,KF,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,t(this,SS,"f"));break;case"text":this._emit("textDone",F.text,t(this,SS,"f"));break}}if(t(this,SS,"f"))this._emit("messageDone",$.data);q$(this,SS,void 0,"f")}},zY=function T($){let S=t(this,A$,"m",EY).call(this,$);switch(q$(this,_0,S,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let J=$.data.delta;if(J.step_details&&J.step_details.type=="tool_calls"&&J.step_details.tool_calls&&S.step_details.type=="tool_calls")for(let W of J.step_details.tool_calls)if(W.index==t(this,SW,"f"))this._emit("toolCallDelta",W,S.step_details.tool_calls[W.index]);else{if(t(this,b$,"f"))this._emit("toolCallDone",t(this,b$,"f"));if(q$(this,SW,W.index,"f"),q$(this,b$,S.step_details.tool_calls[W.index],"f"),t(this,b$,"f"))this._emit("toolCallCreated",t(this,b$,"f"))}this._emit("runStepDelta",$.data.delta,S);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(q$(this,_0,void 0,"f"),$.data.step_details.type=="tool_calls"){if(t(this,b$,"f"))this._emit("toolCallDone",t(this,b$,"f")),q$(this,b$,void 0,"f")}this._emit("runStepDone",$.data,S);break;case"thread.run.step.in_progress":break}},DY=function T($){t(this,GA,"f").push($),this._emit("event",$)},EY=function T($){switch($.event){case"thread.run.step.created":return t(this,GS,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let S=t(this,GS,"f")[$.data.id];if(!S)throw Error("Received a RunStepDelta before creation of a snapshot");let J=$.data;if(J.delta){let F=h$.accumulateDelta(S,J.delta);t(this,GS,"f")[$.data.id]=F}return t(this,GS,"f")[$.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":t(this,GS,"f")[$.data.id]=$.data;break}if(t(this,GS,"f")[$.data.id])return t(this,GS,"f")[$.data.id];throw new Error("No snapshot available")},QY=function T($,S){let J=[];switch($.event){case"thread.message.created":return[$.data,J];case"thread.message.delta":if(!S)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=$.data;if(F.delta.content)for(let W of F.delta.content)if(W.index in S.content){let f=S.content[W.index];S.content[W.index]=t(this,A$,"m",RY).call(this,W,f)}else S.content[W.index]=W,J.push(W);return[S,J];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(S)return[S,J];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},RY=function T($,S){return h$.accumulateDelta(S,$)},_Y=function T($){switch(q$(this,$W,$.data,"f"),$.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":if(q$(this,_J,$.data,"f"),t(this,b$,"f"))this._emit("toolCallDone",t(this,b$,"f")),q$(this,b$,void 0,"f");break;case"thread.run.cancelling":break}};function P9(T){}class MF extends n{create(T,$,S){return this._client.post(`/threads/${T}/messages`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,$,S){return this._client.get(`/threads/${T}/messages/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,$,S,J){return this._client.post(`/threads/${T}/messages/${$}`,{body:S,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T,$={},S){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/messages`,k0,{query:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,$,S){return this._client.delete(`/threads/${T}/messages/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class k0 extends xT{}MF.MessagesPage=k0;class OF extends n{retrieve(T,$,S,J={},F){if(DT(J))return this.retrieve(T,$,S,{},J);return this._client.get(`/threads/${T}/runs/${$}/steps/${S}`,{query:J,...F,headers:{"OpenAI-Beta":"assistants=v2",...F?.headers}})}list(T,$,S={},J){if(DT(S))return this.list(T,$,{},S);return this._client.getAPIList(`/threads/${T}/runs/${$}/steps`,U0,{query:S,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class U0 extends xT{}OF.RunStepsPage=U0;class dS extends n{constructor(){super(...arguments);this.steps=new OF(this._client)}create(T,$,S){let{include:J,...F}=$;return this._client.post(`/threads/${T}/runs`,{query:{include:J},body:F,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers},stream:$.stream??!1})}retrieve(T,$,S){return this._client.get(`/threads/${T}/runs/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,$,S,J){return this._client.post(`/threads/${T}/runs/${$}`,{body:S,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T,$={},S){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/runs`,V0,{query:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}cancel(T,$,S){return this._client.post(`/threads/${T}/runs/${$}/cancel`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async createAndPoll(T,$,S){let J=await this.create(T,$,S);return await this.poll(T,J.id,S)}createAndStream(T,$,S){return h$.createAssistantStream(T,this._client.beta.threads.runs,$,S)}async poll(T,$,S){let J={...S?.headers,"X-Stainless-Poll-Helper":"true"};if(S?.pollIntervalMs)J["X-Stainless-Custom-Poll-Interval"]=S.pollIntervalMs.toString();while(!0){let{data:F,response:W}=await this.retrieve(T,$,{...S,headers:{...S?.headers,...J}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let f=5000;if(S?.pollIntervalMs)f=S.pollIntervalMs;else{let A=W.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))f=X}}await US(f);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(T,$,S){return h$.createAssistantStream(T,this._client.beta.threads.runs,$,S)}submitToolOutputs(T,$,S,J){return this._client.post(`/threads/${T}/runs/${$}/submit_tool_outputs`,{body:S,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers},stream:S.stream??!1})}async submitToolOutputsAndPoll(T,$,S,J){let F=await this.submitToolOutputs(T,$,S,J);return await this.poll(T,F.id,J)}submitToolOutputsStream(T,$,S,J){return h$.createToolAssistantStream(T,$,this._client.beta.threads.runs,S,J)}}class V0 extends xT{}dS.RunsPage=V0;dS.Steps=OF;dS.RunStepsPage=U0;class LS extends n{constructor(){super(...arguments);this.runs=new dS(this._client),this.messages=new MF(this._client)}create(T={},$){if(DT(T))return this.create({},T);return this._client.post("/threads",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,S){return this._client.post(`/threads/${T}`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,$){return this._client.delete(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}createAndRun(T,$){return this._client.post("/threads/runs",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:T.stream??!1})}async createAndRunPoll(T,$){let S=await this.createAndRun(T,$);return await this.runs.poll(S.thread_id,S.id,$)}createAndRunStream(T,$){return h$.createThreadAssistantStream(T,this._client.beta.threads,$)}}LS.Runs=dS;LS.RunsPage=V0;LS.Messages=MF;LS.MessagesPage=k0;var kY=async(T)=>{let $=await Promise.allSettled(T),S=$.filter((F)=>F.status==="rejected");if(S.length){for(let F of S)console.error(F.reason);throw new Error(`${S.length} promise(s) failed - see the above errors`)}let J=[];for(let F of $)if(F.status==="fulfilled")J.push(F.value);return J};class GF extends n{create(T,$,S){return this._client.post(`/vector_stores/${T}/files`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,$,S){return this._client.get(`/vector_stores/${T}/files/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T,$={},S){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/vector_stores/${T}/files`,kJ,{query:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,$,S){return this._client.delete(`/vector_stores/${T}/files/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async createAndPoll(T,$,S){let J=await this.create(T,$,S);return await this.poll(T,J.id,S)}async poll(T,$,S){let J={...S?.headers,"X-Stainless-Poll-Helper":"true"};if(S?.pollIntervalMs)J["X-Stainless-Custom-Poll-Interval"]=S.pollIntervalMs.toString();while(!0){let F=await this.retrieve(T,$,{...S,headers:J}).withResponse(),W=F.data;switch(W.status){case"in_progress":let f=5000;if(S?.pollIntervalMs)f=S.pollIntervalMs;else{let A=F.response.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))f=X}}await US(f);break;case"failed":case"completed":return W}}}async upload(T,$,S){let J=await this._client.files.create({file:$,purpose:"assistants"},S);return this.create(T,{file_id:J.id},S)}async uploadAndPoll(T,$,S){let J=await this.upload(T,$,S);return await this.poll(T,J.id,S)}}class kJ extends xT{}GF.VectorStoreFilesPage=kJ;class B0 extends n{create(T,$,S){return this._client.post(`/vector_stores/${T}/file_batches`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,$,S){return this._client.get(`/vector_stores/${T}/file_batches/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}cancel(T,$,S){return this._client.post(`/vector_stores/${T}/file_batches/${$}/cancel`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async createAndPoll(T,$,S){let J=await this.create(T,$);return await this.poll(T,J.id,S)}listFiles(T,$,S={},J){if(DT(S))return this.listFiles(T,$,{},S);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${$}/files`,kJ,{query:S,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async poll(T,$,S){let J={...S?.headers,"X-Stainless-Poll-Helper":"true"};if(S?.pollIntervalMs)J["X-Stainless-Custom-Poll-Interval"]=S.pollIntervalMs.toString();while(!0){let{data:F,response:W}=await this.retrieve(T,$,{...S,headers:J}).withResponse();switch(F.status){case"in_progress":let f=5000;if(S?.pollIntervalMs)f=S.pollIntervalMs;else{let A=W.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))f=X}}await US(f);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(T,{files:$,fileIds:S=[]},J){if($==null||$.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=J?.maxConcurrency??5,W=Math.min(F,$.length),f=this._client,A=$.values(),X=[...S];async function Y(K){for(let M of K){let D=await f.files.create({file:M,purpose:"assistants"},J);X.push(D.id)}}let w=Array(W).fill(A).map(Y);return await kY(w),await this.createAndPoll(T,{file_ids:X})}}class NS extends n{constructor(){super(...arguments);this.files=new GF(this._client),this.fileBatches=new B0(this._client)}create(T,$){return this._client.post("/vector_stores",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,S){return this._client.post(`/vector_stores/${T}`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",y0,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class y0 extends xT{}NS.VectorStoresPage=y0;NS.Files=GF;NS.VectorStoreFilesPage=kJ;NS.FileBatches=B0;class o$ extends n{constructor(){super(...arguments);this.realtime=new wF(this._client),this.vectorStores=new NS(this._client),this.chat=new D0(this._client),this.assistants=new WF(this._client),this.threads=new LS(this._client)}}o$.Realtime=wF;o$.VectorStores=NS;o$.VectorStoresPage=y0;o$.Assistants=WF;o$.AssistantsPage=Y0;o$.Threads=LS;class HF extends n{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class zF extends n{create(T,$){return this._client.post("/embeddings",{body:T,...$})}}class UJ extends n{create(T,$){return this._client.post("/files",p$({body:T,...$}))}retrieve(T,$){return this._client.get(`/files/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/files",DF,{query:T,...$})}del(T,$){return this._client.delete(`/files/${T}`,$)}content(T,$){return this._client.get(`/files/${T}/content`,{...$,headers:{Accept:"application/binary",...$?.headers},__binaryResponse:!0})}retrieveContent(T,$){return this._client.get(`/files/${T}/content`,$)}async waitForProcessing(T,{pollInterval:$=5000,maxWait:S=1800000}={}){let J=new Set(["processed","error","deleted"]),F=Date.now(),W=await this.retrieve(T);while(!W.status||!J.has(W.status))if(await US($),W=await this.retrieve(T),Date.now()-F>S)throw new KJ({message:`Giving up on waiting for file ${T} to finish processing after ${S} milliseconds.`});return W}}class DF extends xT{}UJ.FileObjectsPage=DF;class EF extends n{list(T,$={},S){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,L0,{query:$,...S})}}class L0 extends xT{}EF.FineTuningJobCheckpointsPage=L0;class CS extends n{constructor(){super(...arguments);this.checkpoints=new EF(this._client)}create(T,$){return this._client.post("/fine_tuning/jobs",{body:T,...$})}retrieve(T,$){return this._client.get(`/fine_tuning/jobs/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",N0,{query:T,...$})}cancel(T,$){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,$)}listEvents(T,$={},S){if(DT($))return this.listEvents(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,C0,{query:$,...S})}}class N0 extends xT{}class C0 extends xT{}CS.FineTuningJobsPage=N0;CS.FineTuningJobEventsPage=C0;CS.Checkpoints=EF;CS.FineTuningJobCheckpointsPage=L0;class xS extends n{constructor(){super(...arguments);this.jobs=new CS(this._client)}}xS.Jobs=CS;xS.FineTuningJobsPage=N0;xS.FineTuningJobEventsPage=C0;class QF extends n{createVariation(T,$){return this._client.post("/images/variations",p$({body:T,...$}))}edit(T,$){return this._client.post("/images/edits",p$({body:T,...$}))}generate(T,$){return this._client.post("/images/generations",{body:T,...$})}}class VJ extends n{retrieve(T,$){return this._client.get(`/models/${T}`,$)}list(T){return this._client.getAPIList("/models",RF,T)}del(T,$){return this._client.delete(`/models/${T}`,$)}}class RF extends lf{}VJ.ModelsPage=RF;class _F extends n{create(T,$){return this._client.post("/moderations",{body:T,...$})}}class x0 extends n{create(T,$,S){return this._client.post(`/uploads/${T}/parts`,p$({body:$,...S}))}}class BJ extends n{constructor(){super(...arguments);this.parts=new x0(this._client)}create(T,$){return this._client.post("/uploads",{body:T,...$})}cancel(T,$){return this._client.post(`/uploads/${T}/cancel`,$)}complete(T,$,S){return this._client.post(`/uploads/${T}/complete`,{body:$,...S})}}BJ.Parts=x0;var UY;class XT extends uf{constructor({baseURL:T=J0("OPENAI_BASE_URL"),apiKey:$=J0("OPENAI_API_KEY"),organization:S=J0("OPENAI_ORG_ID")??null,project:J=J0("OPENAI_PROJECT_ID")??null,...F}={}){if($===void 0)throw new TT("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let W={apiKey:$,organization:S,project:J,...F,baseURL:T||"https://api.openai.com/v1"};if(!W.dangerouslyAllowBrowser&&JY())throw new TT(`It looks like you're running in a browser-like environment.
24
+ `,M.error.toString()),Y.push({response:w,error:M.error})}return $?.error(`safegen was unable to generate well-formed data after ${X} failed attempts.`),F}}}function I8(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
25
+ `)}var L1="RFC3986",N1={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},Z8="RFC1738";var n9=Array.isArray,wJ=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var jW=1024,q8=(T,$,J,S,F)=>{if(T.length===0)return T;let f=T;if(typeof T==="symbol")f=Symbol.prototype.toString.call(T);else if(typeof T!=="string")f=String(T);if(J==="iso-8859-1")return escape(f).replace(/%u[0-9a-f]{4}/gi,function(A){return"%26%23"+parseInt(A.slice(2),16)+"%3B"});let W="";for(let A=0;A<f.length;A+=jW){let X=f.length>=jW?f.slice(A,A+jW):f,w=[];for(let Y=0;Y<X.length;++Y){let M=X.charCodeAt(Y);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===Z8&&(M===40||M===41)){w[w.length]=X.charAt(Y);continue}if(M<128){w[w.length]=wJ[M];continue}if(M<2048){w[w.length]=wJ[192|M>>6]+wJ[128|M&63];continue}if(M<55296||M>=57344){w[w.length]=wJ[224|M>>12]+wJ[128|M>>6&63]+wJ[128|M&63];continue}Y+=1,M=65536+((M&1023)<<10|X.charCodeAt(Y)&1023),w[w.length]=wJ[240|M>>18]+wJ[128|M>>12&63]+wJ[128|M>>6&63]+wJ[128|M&63]}W+=w.join("")}return W};function b8(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function xW(T,$){if(n9(T)){let J=[];for(let S=0;S<T.length;S+=1)J.push($(T[S]));return J}return $(T)}var c9=Object.prototype.hasOwnProperty,h8={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},YJ=Array.isArray,g9=Array.prototype.push,v8=function(T,$){g9.apply(T,YJ($)?$:[$])},p9=Date.prototype.toISOString,rT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:q8,encodeValuesOnly:!1,format:L1,formatter:N1[L1],indices:!1,serializeDate(T){return p9.call(T)},skipNulls:!1,strictNullHandling:!1};function o9(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var IW={};function m8(T,$,J,S,F,f,W,A,X,w,Y,M,G,z,D,R,L,x){let y=T,I=x,E=0,V=!1;while((I=I.get(IW))!==void 0&&!V){let _=I.get(T);if(E+=1,typeof _!=="undefined")if(_===E)throw new RangeError("Cyclic object value");else V=!0;if(typeof I.get(IW)==="undefined")E=0}if(typeof w==="function")y=w($,y);else if(y instanceof Date)y=G?.(y);else if(J==="comma"&&YJ(y))y=xW(y,function(_){if(_ instanceof Date)return G?.(_);return _});if(y===null){if(f)return X&&!R?X($,rT.encoder,L,"key",z):$;y=""}if(o9(y)||b8(y)){if(X){let _=R?$:X($,rT.encoder,L,"key",z);return[D?.(_)+"="+D?.(X(y,rT.encoder,L,"value",z))]}return[D?.($)+"="+D?.(String(y))]}let B=[];if(typeof y==="undefined")return B;let U;if(J==="comma"&&YJ(y)){if(R&&X)y=xW(y,X);U=[{value:y.length>0?y.join(",")||null:void 0}]}else if(YJ(w))U=w;else{let _=Object.keys(y);U=Y?_.sort(Y):_}let h=A?String($).replace(/\./g,"%2E"):String($),l=S&&YJ(y)&&y.length===1?h+"[]":h;if(F&&YJ(y)&&y.length===0)return l+"[]";for(let _=0;_<U.length;++_){let s=U[_],p=typeof s==="object"&&typeof s.value!=="undefined"?s.value:y[s];if(W&&p===null)continue;let $T=M&&A?s.replace(/\./g,"%2E"):s,QT=YJ(y)?typeof J==="function"?J(l,$T):l:l+(M?"."+$T:"["+$T+"]");x.set(T,E);let hT=new WeakMap;hT.set(IW,x),v8(B,m8(p,QT,J,S,F,f,W,A,J==="comma"&&R&&YJ(y)?null:X,w,Y,M,G,z,D,R,L,hT))}return B}function t9(T=rT){if(typeof T.allowEmptyArrays!=="undefined"&&typeof T.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof T.encodeDotInKeys!=="undefined"&&typeof T.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(T.encoder!==null&&typeof T.encoder!=="undefined"&&typeof T.encoder!=="function")throw new TypeError("Encoder has to be a function.");let $=T.charset||rT.charset;if(typeof T.charset!=="undefined"&&T.charset!=="utf-8"&&T.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let J=L1;if(typeof T.format!=="undefined"){if(!c9.call(N1,T.format))throw new TypeError("Unknown format option provided.");J=T.format}let S=N1[J],F=rT.filter;if(typeof T.filter==="function"||YJ(T.filter))F=T.filter;let f;if(T.arrayFormat&&T.arrayFormat in h8)f=T.arrayFormat;else if("indices"in T)f=T.indices?"indices":"repeat";else f=rT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let W=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:rT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:rT.addQueryPrefix,allowDots:W,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:rT.allowEmptyArrays,arrayFormat:f,charset:$,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:rT.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?rT.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:rT.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:rT.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:rT.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:rT.encodeValuesOnly,filter:F,format:J,formatter:S,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:rT.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:rT.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:rT.strictNullHandling}}function ZW(T,$={}){let J=T,S=t9($),F,f;if(typeof S.filter==="function")f=S.filter,J=f("",J);else if(YJ(S.filter))f=S.filter,F=f;let W=[];if(typeof J!=="object"||J===null)return"";let A=h8[S.arrayFormat],X=A==="comma"&&S.commaRoundTrip;if(!F)F=Object.keys(J);if(S.sort)F.sort(S.sort);let w=new WeakMap;for(let G=0;G<F.length;++G){let z=F[G];if(S.skipNulls&&J[z]===null)continue;v8(W,m8(J[z],z,A,X,S.allowEmptyArrays,S.strictNullHandling,S.skipNulls,S.encodeDotInKeys,S.encode?S.encoder:null,S.filter,S.sort,S.allowDots,S.serializeDate,S.format,S.formatter,S.encodeValuesOnly,S.charset,w))}let Y=W.join(S.delimiter),M=S.addQueryPrefix===!0?"?":"";if(S.charsetSentinel)if(S.charset==="iso-8859-1")M+="utf8=%26%2310003%3B&";else M+="utf8=%E2%9C%93&";return Y.length>0?M+Y:""}var AS="4.85.4";var P8=!1,XS=void 0,qW=void 0,i9=void 0,u9=void 0,l9=void 0,bW=void 0,r9=void 0,C1=void 0,hW=void 0,vW=void 0,mW=void 0,j1=void 0,PW=void 0;function n8(T,$={auto:!1}){if(P8)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(XS)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${XS}'\``);P8=$.auto,XS=T.kind,qW=T.fetch,i9=T.Request,u9=T.Response,l9=T.Headers,bW=T.FormData,r9=T.Blob,C1=T.File,hW=T.ReadableStream,vW=T.getMultipartRequestOptions,mW=T.getDefaultAgent,j1=T.fileFromPath,PW=T.isFsReadStream}class nW{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function c8({manuallyImported:T}={}){let $=T?"You may need to use polyfills":"Add one of these imports before your first `import \u2026 from 'openai'`:\n- `import 'openai/shims/node'` (if you're running on Node)\n- `import 'openai/shims/web'` (otherwise)\n",J,S,F,f;try{J=fetch,S=Request,F=Response,f=Headers}catch(W){throw new Error(`this environment is missing the following Web Fetch API type: ${W.message}. ${$}`)}return{kind:"web",fetch:J,Request:S,Response:F,Headers:f,FormData:typeof FormData!=="undefined"?FormData:class W{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class W{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class W{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class W{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(W,A)=>({...A,body:new nW(W)}),getDefaultAgent:(W)=>{return},fileFromPath:()=>{throw new Error("The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads")},isFsReadStream:(W)=>!1}}import{ReadStream as s9}from"fs";function g8(){let T=c8();function $(J){return J instanceof s9}return{...T,isFsReadStream:$}}if(!XS)n8(g8(),{auto:!0});class TT extends Error{}class gT extends TT{constructor(T,$,J,S){super(`${gT.makeMessage(T,$,J)}`);this.status=T,this.headers=S,this.request_id=S?.["x-request-id"],this.error=$;let F=$;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(T,$,J){let S=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):J;if(T&&S)return`${T} ${S}`;if(T)return`${T} status code (no body)`;if(S)return S;return"(no status code or body)"}static generate(T,$,J,S){if(!T||!S)return new wS({message:J,cause:P1($)});let F=$?.error;if(T===400)return new x1(T,F,J,S);if(T===401)return new I1(T,F,J,S);if(T===403)return new Z1(T,F,J,S);if(T===404)return new q1(T,F,J,S);if(T===409)return new b1(T,F,J,S);if(T===422)return new h1(T,F,J,S);if(T===429)return new v1(T,F,J,S);if(T>=500)return new m1(T,F,J,S);return new gT(T,F,J,S)}}class f$ extends gT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class wS extends gT{constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class YS extends wS{constructor({message:T}={}){super({message:T??"Request timed out."})}}class x1 extends gT{}class I1 extends gT{}class Z1 extends gT{}class q1 extends gT{}class b1 extends gT{}class h1 extends gT{}class v1 extends gT{}class m1 extends gT{}class $0 extends TT{constructor(){super("Could not parse response content as the length limit was reached")}}class J0 extends TT{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}var n1=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},MS=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},x$;class JF{constructor(){x$.set(this,void 0),this.buffer=new Uint8Array,n1(this,x$,null,"f")}decode(T){if(T==null)return[];let $=T instanceof ArrayBuffer?new Uint8Array(T):typeof T==="string"?new TextEncoder().encode(T):T,J=new Uint8Array(this.buffer.length+$.length);J.set(this.buffer),J.set($,this.buffer.length),this.buffer=J;let S=[],F;while((F=T5(this.buffer,MS(this,x$,"f")))!=null){if(F.carriage&&MS(this,x$,"f")==null){n1(this,x$,F.index,"f");continue}if(MS(this,x$,"f")!=null&&(F.index!==MS(this,x$,"f")+1||F.carriage)){S.push(this.decodeText(this.buffer.slice(0,MS(this,x$,"f")-1))),this.buffer=this.buffer.slice(MS(this,x$,"f")),n1(this,x$,null,"f");continue}let f=MS(this,x$,"f")!==null?F.preceding-1:F.preceding,W=this.decodeText(this.buffer.slice(0,f));S.push(W),this.buffer=this.buffer.slice(F.index),n1(this,x$,null,"f")}return S}decodeText(T){if(T==null)return"";if(typeof T==="string")return T;if(typeof Buffer!=="undefined"){if(T instanceof Buffer)return T.toString();if(T instanceof Uint8Array)return Buffer.from(T).toString();throw new TT(`Unexpected: received non-Uint8Array (${T.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder!=="undefined"){if(T instanceof Uint8Array||T instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(T);throw new TT(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new TT("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
26
+ `)}}x$=new WeakMap;JF.NEWLINE_CHARS=new Set([`
27
+ `,"\r"]);JF.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function T5(T,$){for(let F=$??0;F<T.length;F++){if(T[F]===10)return{preceding:F,index:F+1,carriage:!1};if(T[F]===13)return{preceding:F,index:F+1,carriage:!0}}return null}function p8(T){for(let S=0;S<T.length-1;S++){if(T[S]===10&&T[S+1]===10)return S+2;if(T[S]===13&&T[S+1]===13)return S+2;if(T[S]===13&&T[S+1]===10&&S+3<T.length&&T[S+2]===13&&T[S+3]===10)return S+4}return-1}function cW(T){if(T[Symbol.asyncIterator])return T;let $=T.getReader();return{async next(){try{let J=await $.read();if(J?.done)$.releaseLock();return J}catch(J){throw $.releaseLock(),J}},async return(){let J=$.cancel();return $.releaseLock(),await J,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}class I${constructor(T,$){this.iterator=T,this.controller=$}static fromSSEResponse(T,$){let J=!1;async function*S(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let F=!1;try{for await(let f of $5(T,$)){if(F)continue;if(f.data.startsWith("[DONE]")){F=!0;continue}if(f.event===null){let W;try{W=JSON.parse(f.data)}catch(A){throw console.error("Could not parse message into JSON:",f.data),console.error("From chunk:",f.raw),A}if(W&&W.error)throw new gT(void 0,W.error,void 0,void 0);yield W}else{let W;try{W=JSON.parse(f.data)}catch(A){throw console.error("Could not parse message into JSON:",f.data),console.error("From chunk:",f.raw),A}if(f.event=="error")throw new gT(void 0,W.error,W.message,void 0);yield{event:f.event,data:W}}}F=!0}catch(f){if(f instanceof Error&&f.name==="AbortError")return;throw f}finally{if(!F)$.abort()}}return new I$(S,$)}static fromReadableStream(T,$){let J=!1;async function*S(){let f=new JF,W=cW(T);for await(let A of W)for(let X of f.decode(A))yield X;for(let A of f.flush())yield A}async function*F(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let f=!1;try{for await(let W of S()){if(f)continue;if(W)yield JSON.parse(W)}f=!0}catch(W){if(W instanceof Error&&W.name==="AbortError")return;throw W}finally{if(!f)$.abort()}}return new I$(F,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],J=this.iterator(),S=(F)=>{return{next:()=>{if(F.length===0){let f=J.next();T.push(f),$.push(f)}return F.shift()}}};return[new I$(()=>S(T),this.controller),new I$(()=>S($),this.controller)]}toReadableStream(){let T=this,$,J=new TextEncoder;return new hW({async start(){$=T[Symbol.asyncIterator]()},async pull(S){try{let{value:F,done:f}=await $.next();if(f)return S.close();let W=J.encode(JSON.stringify(F)+`
28
+ `);S.enqueue(W)}catch(F){S.error(F)}},async cancel(){await $.return?.()}})}}async function*$5(T,$){if(!T.body)throw $.abort(),new TT("Attempted to iterate over a response with no body");let J=new o8,S=new JF,F=cW(T.body);for await(let f of J5(F))for(let W of S.decode(f)){let A=J.decode(W);if(A)yield A}for(let f of S.flush()){let W=J.decode(f);if(W)yield W}}async function*J5(T){let $=new Uint8Array;for await(let J of T){if(J==null)continue;let S=J instanceof ArrayBuffer?new Uint8Array(J):typeof J==="string"?new TextEncoder().encode(J):J,F=new Uint8Array($.length+S.length);F.set($),F.set(S,$.length),$=F;let f;while((f=p8($))!==-1)yield $.slice(0,f),$=$.slice(f)}if($.length>0)yield $}class o8{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(T){if(T.endsWith("\r"))T=T.substring(0,T.length-1);if(!T){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
29
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(T),T.startsWith(":"))return null;let[$,J,S]=S5(T,":");if(S.startsWith(" "))S=S.substring(1);if($==="event")this.event=S;else if($==="data")this.data.push(S);return null}}function S5(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}var t8=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",d8=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&S0(T),S0=(T)=>T!=null&&typeof T==="object"&&typeof T.size==="number"&&typeof T.type==="string"&&typeof T.text==="function"&&typeof T.slice==="function"&&typeof T.arrayBuffer==="function",F5=(T)=>{return d8(T)||t8(T)||PW(T)};async function oW(T,$,J){if(T=await T,d8(T))return T;if(t8(T)){let F=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let f=S0(F)?[await F.arrayBuffer()]:[F];return new C1(f,$,J)}let S=await f5(T);if($||($=A5(T)??"unknown_file"),!J?.type){let F=S[0]?.type;if(typeof F==="string")J={...J,type:F}}return new C1(S,$,J)}async function f5(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(S0(T))$.push(await T.arrayBuffer());else if(X5(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${W5(T)}`);return $}function W5(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function A5(T){return gW(T.name)||gW(T.filename)||gW(T.path)?.split(/[\\/]/).pop()}var gW=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},X5=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",tW=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var g$=async(T)=>{let $=await i8(T.body);return vW($,T)},i8=async(T)=>{let $=new bW;return await Promise.all(Object.entries(T||{}).map(([J,S])=>pW($,J,S))),$};var pW=async(T,$,J)=>{if(J===void 0)return;if(J==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")T.append($,String(J));else if(F5(J)){let S=await oW(J);T.append($,S)}else if(Array.isArray(J))await Promise.all(J.map((S)=>pW(T,$+"[]",S)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([S,F])=>pW(T,`${$}[${S}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${J} instead`)};var Y5=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},M5=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},c1;async function e8(T){let{response:$}=T;if(T.options.stream){if(SF("response",$.status,$.url,$.headers,$.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse($,T.controller);return I$.fromSSEResponse($,T.controller)}if($.status===204)return null;if(T.options.__binaryResponse)return $;let J=$.headers.get("content-type");if(J?.includes("application/json")||J?.includes("application/vnd.api+json")){let f=await $.json();return SF("response",$.status,$.url,$.headers,f),Tw(f,$)}let F=await $.text();return SF("response",$.status,$.url,$.headers,F),F}function Tw(T,$){if(!T||typeof T!=="object"||Array.isArray(T))return T;return Object.defineProperty(T,"_request_id",{value:$.headers.get("x-request-id"),enumerable:!1})}class p1 extends Promise{constructor(T,$=e8){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new p1(this.responsePromise,async($)=>Tw(T(await this.parseResponse($),$),$.response))}asResponse(){return this.responsePromise.then((T)=>T.response)}async withResponse(){let[T,$]=await Promise.all([this.parse(),this.asResponse()]);return{data:T,response:$,request_id:$.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(T,$){return this.parse().then(T,$)}catch(T){return this.parse().catch(T)}finally(T){return this.parse().finally(T)}}class iW{constructor({baseURL:T,maxRetries:$=2,timeout:J=600000,httpAgent:S,fetch:F}){this.baseURL=T,this.maxRetries=dW("maxRetries",$),this.timeout=dW("timeout",J),this.httpAgent=S,this.fetch=F??qW}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...z5(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${R5()}`}get(T,$){return this.methodRequest("get",T,$)}post(T,$){return this.methodRequest("post",T,$)}patch(T,$){return this.methodRequest("patch",T,$)}put(T,$){return this.methodRequest("put",T,$)}delete(T,$){return this.methodRequest("delete",T,$)}methodRequest(T,$,J){return this.request(Promise.resolve(J).then(async(S)=>{let F=S&&S0(S?.body)?new DataView(await S.body.arrayBuffer()):S?.body instanceof DataView?S.body:S?.body instanceof ArrayBuffer?new DataView(S.body):S&&ArrayBuffer.isView(S?.body)?new DataView(S.body.buffer):S?.body;return{method:T,path:$,...S,body:F}}))}getAPIList(T,$,J){return this.requestAPIList($,{method:"get",path:T,...J})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:$=0}={}){T={...T};let{method:J,path:S,query:F,headers:f={}}=T,W=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:tW(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,A=this.calculateContentLength(W),X=this.buildURL(S,F);if("timeout"in T)dW("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let w=T.httpAgent??this.httpAgent??mW(X),Y=T.timeout+1000;if(typeof w?.options?.timeout==="number"&&Y>(w.options.timeout??0))w.options.timeout=Y;if(this.idempotencyHeader&&J!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();f[this.idempotencyHeader]=T.idempotencyKey}let M=this.buildHeaders({options:T,headers:f,contentLength:A,retryCount:$});return{req:{method:J,...W&&{body:W},headers:M,...w&&{agent:w},signal:T.signal??null},url:X,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:S}){let F={};if(J)F["content-length"]=J;let f=this.defaultHeaders(T);if(a8(F,f),a8(F,$),tW(T.body)&&XS!=="node")delete F["content-type"];if(g1(f,"x-stainless-retry-count")===void 0&&g1($,"x-stainless-retry-count")===void 0)F["x-stainless-retry-count"]=String(S);if(g1(f,"x-stainless-timeout")===void 0&&g1($,"x-stainless-timeout")===void 0&&T.timeout)F["x-stainless-timeout"]=String(T.timeout);return this.validateHeaders(F,$),F}async prepareOptions(T){}async prepareRequest(T,{url:$,options:J}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map(($)=>[...$])):{...T}}makeStatusError(T,$,J,S){return gT.generate(T,$,J,S)}request(T,$=null){return new p1(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,S=J.maxRetries??this.maxRetries;if($==null)$=S;await this.prepareOptions(J);let{req:F,url:f,timeout:W}=this.buildRequest(J,{retryCount:S-$});if(await this.prepareRequest(F,{url:f,options:J}),SF("request",f,J,F.headers),J.signal?.aborted)throw new f$;let A=new AbortController,X=await this.fetchWithTimeout(f,F,W,A).catch(P1);if(X instanceof Error){if(J.signal?.aborted)throw new f$;if($)return this.retryRequest(J,$);if(X.name==="AbortError")throw new YS;throw new wS({cause:X})}let w=G5(X.headers);if(!X.ok){if($&&this.shouldRetry(X)){let R=`retrying, ${$} attempts remaining`;return SF(`response (error; ${R})`,X.status,f,w),this.retryRequest(J,$,w)}let Y=await X.text().catch((R)=>P1(R).message),M=D5(Y),G=M?void 0:Y;throw SF(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,X.status,f,w,G),this.makeStatusError(X.status,M,G,w)}return{response:X,options:J,controller:A}}requestAPIList(T,$){let J=this.makeRequest($,null);return new $w(this,J,T)}buildURL(T,$){let J=E5(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),S=this.defaultQuery();if(!Jw(S))$={...S,...$};if(typeof $==="object"&&$&&!Array.isArray($))J.search=this.stringifyQuery($);return J.toString()}stringifyQuery(T){return Object.entries(T).filter(([$,J])=>typeof J!=="undefined").map(([$,J])=>{if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(J)}`;if(J===null)return`${encodeURIComponent($)}=`;throw new TT(`Cannot stringify type ${typeof J}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,$,J,S){let{signal:F,...f}=$||{};if(F)F.addEventListener("abort",()=>S.abort());let W=setTimeout(()=>S.abort(),J),A={signal:S.signal,...f};if(A.method)A.method=A.method.toUpperCase();return this.fetch.call(void 0,T,A).finally(()=>{clearTimeout(W)})}shouldRetry(T){let $=T.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,$,J){let S,F=J?.["retry-after-ms"];if(F){let W=parseFloat(F);if(!Number.isNaN(W))S=W}let f=J?.["retry-after"];if(f&&!S){let W=parseFloat(f);if(!Number.isNaN(W))S=W*1000;else S=Date.parse(f)-Date.now()}if(!(S&&0<=S&&S<60000)){let W=T.maxRetries??this.maxRetries;S=this.calculateDefaultRetryTimeoutMillis($,W)}return await kJ(S),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let F=$-T,f=Math.min(0.5*Math.pow(2,F),8),W=1-Math.random()*0.25;return f*W*1000}getUserAgent(){return`${this.constructor.name}/JS ${AS}`}}class o1{constructor(T,$,J,S){c1.set(this,void 0),Y5(this,c1,T,"f"),this.options=S,this.response=$,this.body=J}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new TT("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let $={...this.options};if("params"in T&&typeof $.query==="object")$.query={...$.query,...T.params};else if("url"in T){let J=[...Object.entries($.query||{}),...T.url.searchParams.entries()];for(let[S,F]of J)T.url.searchParams.set(S,F);$.query=void 0,$.path=T.url.toString()}return await M5(this,c1,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(c1=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class $w extends p1{constructor(T,$,J){super($,async(S)=>new J(T,S.response,await e8(S),S.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var G5=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,J){let S=J.toString();return $[S.toLowerCase()]||$[S]}})},K5={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__metadata:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},DT=(T)=>{return typeof T==="object"&&T!==null&&!Jw(T)&&Object.keys(T).every(($)=>Sw(K5,$))},H5=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":l8(Deno.build.os),"X-Stainless-Arch":u8(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":process.version};if(Object.prototype.toString.call(typeof process!=="undefined"?process:0)==="[object process]")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":l8(process.platform),"X-Stainless-Arch":u8(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=O5();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${T.browser}`,"X-Stainless-Runtime-Version":T.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function O5(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:J}of T){let S=J.exec(navigator.userAgent);if(S){let F=S[1]||0,f=S[2]||0,W=S[3]||0;return{browser:$,version:`${F}.${f}.${W}`}}}return null}var u8=(T)=>{if(T==="x32")return"x32";if(T==="x86_64"||T==="x64")return"x64";if(T==="arm")return"arm";if(T==="aarch64"||T==="arm64")return"arm64";if(T)return`other:${T}`;return"unknown"},l8=(T)=>{if(T=T.toLowerCase(),T.includes("ios"))return"iOS";if(T==="android")return"Android";if(T==="darwin")return"MacOS";if(T==="win32")return"Windows";if(T==="freebsd")return"FreeBSD";if(T==="openbsd")return"OpenBSD";if(T==="linux")return"Linux";if(T)return`Other:${T}`;return"Unknown"},r8,z5=()=>{return r8??(r8=H5())},D5=(T)=>{try{return JSON.parse(T)}catch($){return}},Q5=/^[a-z][a-z0-9+.-]*:/i,E5=(T)=>{return Q5.test(T)},kJ=(T)=>new Promise(($)=>setTimeout($,T)),dW=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new TT(`${T} must be an integer`);if($<0)throw new TT(`${T} must be a positive integer`);return $},P1=(T)=>{if(T instanceof Error)return T;if(typeof T==="object"&&T!==null)try{return new Error(JSON.stringify(T))}catch{}return new Error(T)};var F0=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function Jw(T){if(!T)return!0;for(let $ in T)return!1;return!0}function Sw(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function a8(T,$){for(let J in $){if(!Sw($,J))continue;let S=J.toLowerCase();if(!S)continue;let F=$[J];if(F===null)delete T[S];else if(F!==void 0)T[S]=F}}var s8=new Set(["authorization","api-key"]);function SF(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let J=$.map((S)=>{if(!S)return S;if(S.headers){let f={...S,headers:{...S.headers}};for(let W in S.headers)if(s8.has(W.toLowerCase()))f.headers[W]="REDACTED";return f}let F=null;for(let f in S)if(s8.has(f.toLowerCase()))F??(F={...S}),F[f]="REDACTED";return F??S});console.log(`OpenAI:DEBUG:${T}`,...J)}}var R5=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},Fw=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},_5=(T)=>{return typeof T?.get==="function"};var g1=(T,$)=>{let J=$.toLowerCase();if(_5(T)){let S=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(F,f,W)=>f+W.toUpperCase());for(let F of[$,J,$.toUpperCase(),S]){let f=T.get(F);if(f)return f}}for(let[S,F]of Object.entries(T))if(S.toLowerCase()===J){if(Array.isArray(F)){if(F.length<=1)return F[0];return console.warn(`Received ${F.length} entries for the ${$} header, using the first entry.`),F[0]}return F}return};function f0(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class uW extends o1{constructor(T,$,J,S){super(T,$,J,S);this.data=J.data||[],this.object=J.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class xT extends o1{constructor(T,$,J,S){super(T,$,J,S);this.data=J.data||[],this.has_more=J.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageParams(){let T=this.nextPageInfo();if(!T)return null;if("params"in T)return T.params;let $=Object.fromEntries(T.url.searchParams);if(!Object.keys($).length)return null;return $}nextPageInfo(){let T=this.getPaginatedItems();if(!T.length)return null;let $=T[T.length-1]?.id;if(!$)return null;return{params:{after:$}}}}class c{constructor(T){this._client=T}}class W0 extends c{list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/chat/completions/${T}/messages`,lW,{query:$,...J})}}class KS extends c{constructor(){super(...arguments);this.messages=new W0(this._client)}create(T,$){return this._client.post("/chat/completions",{body:T,...$,stream:T.stream??!1})}retrieve(T,$){return this._client.get(`/chat/completions/${T}`,$)}update(T,$,J){return this._client.post(`/chat/completions/${T}`,{body:$,...J})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/chat/completions",HS,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class HS extends xT{}class lW extends xT{}KS.ChatCompletionsPage=HS;KS.Messages=W0;class cJ extends c{constructor(){super(...arguments);this.completions=new KS(this._client)}}cJ.Completions=KS;cJ.ChatCompletionsPage=HS;class A0 extends c{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class X0 extends c{create(T,$){return this._client.post("/audio/transcriptions",g$({body:T,...$,__metadata:{model:T.model}}))}}class w0 extends c{create(T,$){return this._client.post("/audio/translations",g$({body:T,...$,__metadata:{model:T.model}}))}}class UJ extends c{constructor(){super(...arguments);this.transcriptions=new X0(this._client),this.translations=new w0(this._client),this.speech=new A0(this._client)}}UJ.Transcriptions=X0;UJ.Translations=w0;UJ.Speech=A0;class OS extends c{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/batches",FF,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class FF extends xT{}OS.BatchesPage=FF;class fF extends c{create(T,$){return this._client.post("/assistants",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/assistants/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/assistants",Y0,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class Y0 extends xT{}fF.AssistantsPage=Y0;function rW(T){return typeof T.parse==="function"}var gJ=(T)=>{return T?.role==="assistant"},aW=(T)=>{return T?.role==="function"},sW=(T)=>{return T?.role==="tool"};var e$=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},bT=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},eW,t1,d1,M0,G0,i1,K0,VJ,H0,u1,l1,WF,fw;class O0{constructor(){eW.add(this),this.controller=new AbortController,t1.set(this,void 0),d1.set(this,()=>{}),M0.set(this,()=>{}),G0.set(this,void 0),i1.set(this,()=>{}),K0.set(this,()=>{}),VJ.set(this,{}),H0.set(this,!1),u1.set(this,!1),l1.set(this,!1),WF.set(this,!1),e$(this,t1,new Promise((T,$)=>{e$(this,d1,T,"f"),e$(this,M0,$,"f")}),"f"),e$(this,G0,new Promise((T,$)=>{e$(this,i1,T,"f"),e$(this,K0,$,"f")}),"f"),bT(this,t1,"f").catch(()=>{}),bT(this,G0,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},bT(this,eW,"m",fw).bind(this))},0)}_connected(){if(this.ended)return;bT(this,d1,"f").call(this),this._emit("connect")}get ended(){return bT(this,H0,"f")}get errored(){return bT(this,u1,"f")}get aborted(){return bT(this,l1,"f")}abort(){this.controller.abort()}on(T,$){return(bT(this,VJ,"f")[T]||(bT(this,VJ,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=bT(this,VJ,"f")[T];if(!J)return this;let S=J.findIndex((F)=>F.listener===$);if(S>=0)J.splice(S,1);return this}once(T,$){return(bT(this,VJ,"f")[T]||(bT(this,VJ,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(e$(this,WF,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){e$(this,WF,!0,"f"),await bT(this,G0,"f")}_emit(T,...$){if(bT(this,H0,"f"))return;if(T==="end")e$(this,H0,!0,"f"),bT(this,i1,"f").call(this);let J=bT(this,VJ,"f")[T];if(J)bT(this,VJ,"f")[T]=J.filter((S)=>!S.once),J.forEach(({listener:S})=>S(...$));if(T==="abort"){let S=$[0];if(!bT(this,WF,"f")&&!J?.length)Promise.reject(S);bT(this,M0,"f").call(this,S),bT(this,K0,"f").call(this,S),this._emit("end");return}if(T==="error"){let S=$[0];if(!bT(this,WF,"f")&&!J?.length)Promise.reject(S);bT(this,M0,"f").call(this,S),bT(this,K0,"f").call(this,S),this._emit("end")}}_emitFinal(){}}t1=new WeakMap,d1=new WeakMap,M0=new WeakMap,G0=new WeakMap,i1=new WeakMap,K0=new WeakMap,VJ=new WeakMap,H0=new WeakMap,u1=new WeakMap,l1=new WeakMap,WF=new WeakMap,eW=new WeakSet,fw=function T($){if(e$(this,u1,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new f$;if($ instanceof f$)return e$(this,l1,!0,"f"),this._emit("abort",$);if($ instanceof TT)return this._emit("error",$);if($ instanceof Error){let J=new TT($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new TT(String($)))};function T2(T){return T?.$brand==="auto-parseable-response-format"}function zS(T){return T?.$brand==="auto-parseable-tool"}function Ww(T,$){if(!$||!$2($))return{...T,choices:T.choices.map((J)=>({...J,message:{...J.message,parsed:null,...J.message.tool_calls?{tool_calls:J.message.tool_calls}:void 0}}))};return z0(T,$)}function z0(T,$){let J=T.choices.map((S)=>{if(S.finish_reason==="length")throw new $0;if(S.finish_reason==="content_filter")throw new J0;return{...S,message:{...S.message,...S.message.tool_calls?{tool_calls:S.message.tool_calls?.map((F)=>C5($,F))??void 0}:void 0,parsed:S.message.content&&!S.message.refusal?N5($,S.message.content):null}}});return{...T,choices:J}}function N5(T,$){if(T.response_format?.type!=="json_schema")return null;if(T.response_format?.type==="json_schema"){if("$parseRaw"in T.response_format)return T.response_format.$parseRaw($);return JSON.parse($)}return null}function C5(T,$){let J=T.tools?.find((S)=>S.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:zS(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function Aw(T,$){if(!T)return!1;let J=T.tools?.find((S)=>S.function?.name===$.function.name);return zS(J)||J?.function.strict||!1}function $2(T){if(T2(T.response_format))return!0;return T.tools?.some(($)=>zS($)||$.type==="function"&&$.function.strict===!0)??!1}function Xw(T){for(let $ of T??[]){if($.type!=="function")throw new TT(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new TT(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var V$=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},O$,J2,r1,S2,F2,f2,Yw,W2,ww=10;class D0 extends O0{constructor(){super(...arguments);O$.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(T){this._chatCompletions.push(T),this._emit("chatCompletion",T);let $=T.choices[0]?.message;if($)this._addMessage($);return T}_addMessage(T,$=!0){if(!("content"in T))T.content=null;if(this.messages.push(T),$){if(this._emit("message",T),(aW(T)||sW(T))&&T.content)this._emit("functionCallResult",T.content);else if(gJ(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(gJ(T)&&T.tool_calls){for(let J of T.tool_calls)if(J.type==="function")this._emit("functionCall",J.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new TT("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),V$(this,O$,"m",J2).call(this)}async finalMessage(){return await this.done(),V$(this,O$,"m",r1).call(this)}async finalFunctionCall(){return await this.done(),V$(this,O$,"m",S2).call(this)}async finalFunctionCallResult(){return await this.done(),V$(this,O$,"m",F2).call(this)}async totalUsage(){return await this.done(),V$(this,O$,"m",f2).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=V$(this,O$,"m",r1).call(this);if($)this._emit("finalMessage",$);let J=V$(this,O$,"m",J2).call(this);if(J)this._emit("finalContent",J);let S=V$(this,O$,"m",S2).call(this);if(S)this._emit("finalFunctionCall",S);let F=V$(this,O$,"m",F2).call(this);if(F!=null)this._emit("finalFunctionCallResult",F);if(this._chatCompletions.some((f)=>f.usage))this._emit("totalUsage",V$(this,O$,"m",f2).call(this))}async _createChatCompletion(T,$,J){let S=J?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}V$(this,O$,"m",Yw).call(this,$);let F=await T.chat.completions.create({...$,stream:!1},{...J,signal:this.controller.signal});return this._connected(),this._addChatCompletion(z0(F,$))}async _runChatCompletion(T,$,J){for(let S of $.messages)this._addMessage(S,!1);return await this._createChatCompletion(T,$,J)}async _runFunctions(T,$,J){let{function_call:F="auto",stream:f,...W}=$,A=typeof F!=="string"&&F?.name,{maxChatCompletions:X=ww}=J||{},w={};for(let M of $.functions)w[M.name||M.function.name]=M;let Y=$.functions.map((M)=>({name:M.name||M.function.name,parameters:M.parameters,description:M.description}));for(let M of $.messages)this._addMessage(M,!1);for(let M=0;M<X;++M){let z=(await this._createChatCompletion(T,{...W,function_call:F,functions:Y,messages:[...this.messages]},J)).choices[0]?.message;if(!z)throw new TT("missing message in ChatCompletion response");if(!z.function_call)return;let{name:D,arguments:R}=z.function_call,L=w[D];if(!L){let E=`Invalid function_call: ${JSON.stringify(D)}. Available options are: ${Y.map((V)=>JSON.stringify(V.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:D,content:E});continue}else if(A&&A!==D){let E=`Invalid function_call: ${JSON.stringify(D)}. ${JSON.stringify(A)} requested. Please try again`;this._addMessage({role:"function",name:D,content:E});continue}let x;try{x=rW(L)?await L.parse(R):R}catch(E){this._addMessage({role:"function",name:D,content:E instanceof Error?E.message:String(E)});continue}let y=await L.function(x,this),I=V$(this,O$,"m",W2).call(this,y);if(this._addMessage({role:"function",name:D,content:I}),A)return}}async _runTools(T,$,J){let{tool_choice:F="auto",stream:f,...W}=$,A=typeof F!=="string"&&F?.function?.name,{maxChatCompletions:X=ww}=J||{},w=$.tools.map((G)=>{if(zS(G)){if(!G.$callback)throw new TT("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:G.$callback,name:G.function.name,description:G.function.description||"",parameters:G.function.parameters,parse:G.$parseRaw,strict:!0}}}return G}),Y={};for(let G of w)if(G.type==="function")Y[G.function.name||G.function.function.name]=G.function;let M="tools"in $?w.map((G)=>G.type==="function"?{type:"function",function:{name:G.function.name||G.function.function.name,parameters:G.function.parameters,description:G.function.description,strict:G.function.strict}}:G):void 0;for(let G of $.messages)this._addMessage(G,!1);for(let G=0;G<X;++G){let D=(await this._createChatCompletion(T,{...W,tool_choice:F,tools:M,messages:[...this.messages]},J)).choices[0]?.message;if(!D)throw new TT("missing message in ChatCompletion response");if(!D.tool_calls?.length)return;for(let R of D.tool_calls){if(R.type!=="function")continue;let L=R.id,{name:x,arguments:y}=R.function,I=Y[x];if(!I){let U=`Invalid tool_call: ${JSON.stringify(x)}. Available options are: ${Object.keys(Y).map((h)=>JSON.stringify(h)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:L,content:U});continue}else if(A&&A!==x){let U=`Invalid tool_call: ${JSON.stringify(x)}. ${JSON.stringify(A)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:L,content:U});continue}let E;try{E=rW(I)?await I.parse(y):y}catch(U){let h=U instanceof Error?U.message:String(U);this._addMessage({role:"tool",tool_call_id:L,content:h});continue}let V=await I.function(E,this),B=V$(this,O$,"m",W2).call(this,V);if(this._addMessage({role:"tool",tool_call_id:L,content:B}),A)return}}return}}O$=new WeakSet,J2=function T(){return V$(this,O$,"m",r1).call(this).content??null},r1=function T(){let $=this.messages.length;while($-- >0){let J=this.messages[$];if(gJ(J)){let{function_call:S,...F}=J,f={...F,content:J.content??null,refusal:J.refusal??null};if(S)f.function_call=S;return f}}throw new TT("stream ended without producing a ChatCompletionMessage with role=assistant")},S2=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(gJ(J)&&J?.function_call)return J.function_call;if(gJ(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},F2=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(aW(J)&&J.content!=null)return J.content;if(sW(J)&&J.content!=null&&typeof J.content==="string"&&this.messages.some((S)=>S.role==="assistant"&&S.tool_calls?.some((F)=>F.type==="function"&&F.id===J.tool_call_id)))return J.content}return},f2=function T(){let $={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:J}of this._chatCompletions)if(J)$.completion_tokens+=J.completion_tokens,$.prompt_tokens+=J.prompt_tokens,$.total_tokens+=J.total_tokens;return $},Yw=function T($){if($.n!=null&&$.n>1)throw new TT("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},W2=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class AF extends D0{static runFunctions(T,$,J){let S=new AF,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return S._run(()=>S._runFunctions(T,$,F)),S}static runTools(T,$,J){let S=new AF,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return S._run(()=>S._runTools(T,$,F)),S}_addMessage(T,$=!0){if(super._addMessage(T,$),gJ(T)&&T.content)this._emit("content",T.content)}}var J$={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class Mw extends Error{}class Gw extends Error{}function j5(T,$=J$.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return x5(T.trim(),$)}var x5=(T,$)=>{let J=T.length,S=0,F=(G)=>{throw new Mw(`${G} at position ${S}`)},f=(G)=>{throw new Gw(`${G} at position ${S}`)},W=()=>{if(M(),S>=J)F("Unexpected end of input");if(T[S]==='"')return A();if(T[S]==="{")return X();if(T[S]==="[")return w();if(T.substring(S,S+4)==="null"||J$.NULL&$&&J-S<4&&"null".startsWith(T.substring(S)))return S+=4,null;if(T.substring(S,S+4)==="true"||J$.BOOL&$&&J-S<4&&"true".startsWith(T.substring(S)))return S+=4,!0;if(T.substring(S,S+5)==="false"||J$.BOOL&$&&J-S<5&&"false".startsWith(T.substring(S)))return S+=5,!1;if(T.substring(S,S+8)==="Infinity"||J$.INFINITY&$&&J-S<8&&"Infinity".startsWith(T.substring(S)))return S+=8,1/0;if(T.substring(S,S+9)==="-Infinity"||J$.MINUS_INFINITY&$&&1<J-S&&J-S<9&&"-Infinity".startsWith(T.substring(S)))return S+=9,-1/0;if(T.substring(S,S+3)==="NaN"||J$.NAN&$&&J-S<3&&"NaN".startsWith(T.substring(S)))return S+=3,NaN;return Y()},A=()=>{let G=S,z=!1;S++;while(S<J&&(T[S]!=='"'||z&&T[S-1]==="\\"))z=T[S]==="\\"?!z:!1,S++;if(T.charAt(S)=='"')try{return JSON.parse(T.substring(G,++S-Number(z)))}catch(D){f(String(D))}else if(J$.STR&$)try{return JSON.parse(T.substring(G,S-Number(z))+'"')}catch(D){return JSON.parse(T.substring(G,T.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},X=()=>{S++,M();let G={};try{while(T[S]!=="}"){if(M(),S>=J&&J$.OBJ&$)return G;let z=A();M(),S++;try{let D=W();Object.defineProperty(G,z,{value:D,writable:!0,enumerable:!0,configurable:!0})}catch(D){if(J$.OBJ&$)return G;else throw D}if(M(),T[S]===",")S++}}catch(z){if(J$.OBJ&$)return G;else F("Expected '}' at end of object")}return S++,G},w=()=>{S++;let G=[];try{while(T[S]!=="]")if(G.push(W()),M(),T[S]===",")S++}catch(z){if(J$.ARR&$)return G;F("Expected ']' at end of array")}return S++,G},Y=()=>{if(S===0){if(T==="-"&&J$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T)}catch(z){if(J$.NUM&$)try{if(T[T.length-1]===".")return JSON.parse(T.substring(0,T.lastIndexOf(".")));return JSON.parse(T.substring(0,T.lastIndexOf("e")))}catch(D){}f(String(z))}}let G=S;if(T[S]==="-")S++;while(T[S]&&!",]}".includes(T[S]))S++;if(S==J&&!(J$.NUM&$))F("Unterminated number literal");try{return JSON.parse(T.substring(G,S))}catch(z){if(T.substring(G,S)==="-"&&J$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T.substring(G,T.lastIndexOf("e")))}catch(D){f(String(D))}}},M=()=>{while(S<J&&`
30
+ \r `.includes(T[S]))S++};return W()},A2=(T)=>j5(T,J$.ALL^J$.NUM);var XF=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},RT=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},aT,BJ,wF,pJ,X2,a1,w2,Y2,M2,s1,G2,Kw;class DS extends D0{constructor(T){super();aT.add(this),BJ.set(this,void 0),wF.set(this,void 0),pJ.set(this,void 0),XF(this,BJ,T,"f"),XF(this,wF,[],"f")}get currentChatCompletionSnapshot(){return RT(this,pJ,"f")}static fromReadableStream(T){let $=new DS(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,J){let S=new DS($);return S._run(()=>S._runChatCompletion(T,{...$,stream:!0},{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),S}async _createChatCompletion(T,$,J){super._createChatCompletion;let S=J?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}RT(this,aT,"m",X2).call(this);let F=await T.chat.completions.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let f of F)RT(this,aT,"m",w2).call(this,f);if(F.controller.signal?.aborted)throw new f$;return this._addChatCompletion(RT(this,aT,"m",s1).call(this))}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}RT(this,aT,"m",X2).call(this),this._connected();let S=I$.fromReadableStream(T,this.controller),F;for await(let f of S){if(F&&F!==f.id)this._addChatCompletion(RT(this,aT,"m",s1).call(this));RT(this,aT,"m",w2).call(this,f),F=f.id}if(S.controller.signal?.aborted)throw new f$;return this._addChatCompletion(RT(this,aT,"m",s1).call(this))}[(BJ=new WeakMap,wF=new WeakMap,pJ=new WeakMap,aT=new WeakSet,X2=function T(){if(this.ended)return;XF(this,pJ,void 0,"f")},a1=function T($){let J=RT(this,wF,"f")[$.index];if(J)return J;return J={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},RT(this,wF,"f")[$.index]=J,J},w2=function T($){if(this.ended)return;let J=RT(this,aT,"m",Kw).call(this,$);this._emit("chunk",$,J);for(let S of $.choices){let F=J.choices[S.index];if(S.delta.content!=null&&F.message?.role==="assistant"&&F.message?.content)this._emit("content",S.delta.content,F.message.content),this._emit("content.delta",{delta:S.delta.content,snapshot:F.message.content,parsed:F.message.parsed});if(S.delta.refusal!=null&&F.message?.role==="assistant"&&F.message?.refusal)this._emit("refusal.delta",{delta:S.delta.refusal,snapshot:F.message.refusal});if(S.logprobs?.content!=null&&F.message?.role==="assistant")this._emit("logprobs.content.delta",{content:S.logprobs?.content,snapshot:F.logprobs?.content??[]});if(S.logprobs?.refusal!=null&&F.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:S.logprobs?.refusal,snapshot:F.logprobs?.refusal??[]});let f=RT(this,aT,"m",a1).call(this,F);if(F.finish_reason){if(RT(this,aT,"m",M2).call(this,F),f.current_tool_call_index!=null)RT(this,aT,"m",Y2).call(this,F,f.current_tool_call_index)}for(let W of S.delta.tool_calls??[]){if(f.current_tool_call_index!==W.index){if(RT(this,aT,"m",M2).call(this,F),f.current_tool_call_index!=null)RT(this,aT,"m",Y2).call(this,F,f.current_tool_call_index)}f.current_tool_call_index=W.index}for(let W of S.delta.tool_calls??[]){let A=F.message.tool_calls?.[W.index];if(!A?.type)continue;if(A?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:A.function?.name,index:W.index,arguments:A.function.arguments,parsed_arguments:A.function.parsed_arguments,arguments_delta:W.function?.arguments??""});else Ow(A?.type)}}},Y2=function T($,J){if(RT(this,aT,"m",a1).call(this,$).done_tool_calls.has(J))return;let F=$.message.tool_calls?.[J];if(!F)throw new Error("no tool call snapshot");if(!F.type)throw new Error("tool call snapshot missing `type`");if(F.type==="function"){let f=RT(this,BJ,"f")?.tools?.find((W)=>W.type==="function"&&W.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:J,arguments:F.function.arguments,parsed_arguments:zS(f)?f.$parseRaw(F.function.arguments):f?.function.strict?JSON.parse(F.function.arguments):null})}else Ow(F.type)},M2=function T($){let J=RT(this,aT,"m",a1).call(this,$);if($.message.content&&!J.content_done){J.content_done=!0;let S=RT(this,aT,"m",G2).call(this);this._emit("content.done",{content:$.message.content,parsed:S?S.$parseRaw($.message.content):null})}if($.message.refusal&&!J.refusal_done)J.refusal_done=!0,this._emit("refusal.done",{refusal:$.message.refusal});if($.logprobs?.content&&!J.logprobs_content_done)J.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:$.logprobs.content});if($.logprobs?.refusal&&!J.logprobs_refusal_done)J.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:$.logprobs.refusal})},s1=function T(){if(this.ended)throw new TT("stream has ended, this shouldn't happen");let $=RT(this,pJ,"f");if(!$)throw new TT("request ended without sending any chunks");return XF(this,pJ,void 0,"f"),XF(this,wF,[],"f"),I5($,RT(this,BJ,"f"))},G2=function T(){let $=RT(this,BJ,"f")?.response_format;if(T2($))return $;return null},Kw=function T($){var J,S,F,f;let W=RT(this,pJ,"f"),{choices:A,...X}=$;if(!W)W=XF(this,pJ,{...X,choices:[]},"f");else Object.assign(W,X);for(let{delta:w,finish_reason:Y,index:M,logprobs:G=null,...z}of $.choices){let D=W.choices[M];if(!D)D=W.choices[M]={finish_reason:Y,index:M,message:{},logprobs:G,...z};if(G)if(!D.logprobs)D.logprobs=Object.assign({},G);else{let{content:V,refusal:B,...U}=G;if(Hw(U),Object.assign(D.logprobs,U),V)(J=D.logprobs).content??(J.content=[]),D.logprobs.content.push(...V);if(B)(S=D.logprobs).refusal??(S.refusal=[]),D.logprobs.refusal.push(...B)}if(Y){if(D.finish_reason=Y,RT(this,BJ,"f")&&$2(RT(this,BJ,"f"))){if(Y==="length")throw new $0;if(Y==="content_filter")throw new J0}}if(Object.assign(D,z),!w)continue;let{content:R,refusal:L,function_call:x,role:y,tool_calls:I,...E}=w;if(Hw(E),Object.assign(D.message,E),L)D.message.refusal=(D.message.refusal||"")+L;if(y)D.message.role=y;if(x)if(!D.message.function_call)D.message.function_call=x;else{if(x.name)D.message.function_call.name=x.name;if(x.arguments)(F=D.message.function_call).arguments??(F.arguments=""),D.message.function_call.arguments+=x.arguments}if(R){if(D.message.content=(D.message.content||"")+R,!D.message.refusal&&RT(this,aT,"m",G2).call(this))D.message.parsed=A2(D.message.content)}if(I){if(!D.message.tool_calls)D.message.tool_calls=[];for(let{index:V,id:B,type:U,function:h,...l}of I){let _=(f=D.message.tool_calls)[V]??(f[V]={});if(Object.assign(_,l),B)_.id=B;if(U)_.type=U;if(h)_.function??(_.function={name:h.name??"",arguments:""});if(h?.name)_.function.name=h.name;if(h?.arguments){if(_.function.arguments+=h.arguments,Aw(RT(this,BJ,"f"),_))_.function.parsed_arguments=A2(_.function.arguments)}}}}return W},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("chunk",(S)=>{let F=$.shift();if(F)F.resolve(S);else T.push(S)}),this.on("end",()=>{J=!0;for(let S of $)S.resolve(void 0);$.length=0}),this.on("abort",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),this.on("error",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,f)=>$.push({resolve:F,reject:f})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new I$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function I5(T,$){let{id:J,choices:S,created:F,model:f,system_fingerprint:W,...A}=T,X={...A,id:J,choices:S.map(({message:w,finish_reason:Y,index:M,logprobs:G,...z})=>{if(!Y)throw new TT(`missing finish_reason for choice ${M}`);let{content:D=null,function_call:R,tool_calls:L,...x}=w,y=w.role;if(!y)throw new TT(`missing role for choice ${M}`);if(R){let{arguments:I,name:E}=R;if(I==null)throw new TT(`missing function_call.arguments for choice ${M}`);if(!E)throw new TT(`missing function_call.name for choice ${M}`);return{...z,message:{content:D,function_call:{arguments:I,name:E},role:y,refusal:w.refusal??null},finish_reason:Y,index:M,logprobs:G}}if(L)return{...z,index:M,finish_reason:Y,logprobs:G,message:{...x,role:y,content:D,refusal:w.refusal??null,tool_calls:L.map((I,E)=>{let{function:V,type:B,id:U,...h}=I,{arguments:l,name:_,...s}=V||{};if(U==null)throw new TT(`missing choices[${M}].tool_calls[${E}].id
31
+ ${e1(T)}`);if(B==null)throw new TT(`missing choices[${M}].tool_calls[${E}].type
32
+ ${e1(T)}`);if(_==null)throw new TT(`missing choices[${M}].tool_calls[${E}].function.name
33
+ ${e1(T)}`);if(l==null)throw new TT(`missing choices[${M}].tool_calls[${E}].function.arguments
34
+ ${e1(T)}`);return{...h,id:U,type:B,function:{...s,name:_,arguments:l}}})}};return{...z,message:{...x,content:D,role:y,refusal:w.refusal??null},finish_reason:Y,index:M,logprobs:G}}),created:F,model:f,object:"chat.completion",...W?{system_fingerprint:W}:{}};return Ww(X,$)}function e1(T){return JSON.stringify(T)}function Hw(T){return}function Ow(T){}class QS extends DS{static fromReadableStream(T){let $=new QS(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,J){let S=new QS(null),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return S._run(()=>S._runFunctions(T,$,F)),S}static runTools(T,$,J){let S=new QS($),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return S._run(()=>S._runTools(T,$,F)),S}}class Tf extends c{parse(T,$){return Xw(T.tools),this._client.chat.completions.create(T,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((J)=>z0(J,T))}runFunctions(T,$){if(T.stream)return QS.runFunctions(this._client,T,$);return AF.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return QS.runTools(this._client,T,$);return AF.runTools(this._client,T,$)}stream(T,$){return DS.createChatCompletion(this._client,T,$)}}class Q0 extends c{constructor(){super(...arguments);this.completions=new Tf(this._client)}}(function(T){T.Completions=Tf})(Q0||(Q0={}));class E0 extends c{create(T,$){return this._client.post("/realtime/sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class YF extends c{constructor(){super(...arguments);this.sessions=new E0(this._client)}}YF.Sessions=E0;var t=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},Z$=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},W$,K2,MJ,$f,TJ,RS,MF,ES,Ff,q$,Jf,Sf,k0,R0,_0,zw,Dw,Qw,Ew,Rw,_w,kw;class b$ extends O0{constructor(){super(...arguments);W$.add(this),K2.set(this,[]),MJ.set(this,{}),$f.set(this,{}),TJ.set(this,void 0),RS.set(this,void 0),MF.set(this,void 0),ES.set(this,void 0),Ff.set(this,void 0),q$.set(this,void 0),Jf.set(this,void 0),Sf.set(this,void 0),k0.set(this,void 0)}[(K2=new WeakMap,MJ=new WeakMap,$f=new WeakMap,TJ=new WeakMap,RS=new WeakMap,MF=new WeakMap,ES=new WeakMap,Ff=new WeakMap,q$=new WeakMap,Jf=new WeakMap,Sf=new WeakMap,k0=new WeakMap,W$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(S)=>{let F=$.shift();if(F)F.resolve(S);else T.push(S)}),this.on("end",()=>{J=!0;for(let S of $)S.resolve(void 0);$.length=0}),this.on("abort",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),this.on("error",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,f)=>$.push({resolve:F,reject:f})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(T){let $=new b$;return $._run(()=>$._fromReadableStream(T)),$}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}this._connected();let S=I$.fromReadableStream(T,this.controller);for await(let F of S)t(this,W$,"m",R0).call(this,F);if(S.controller.signal?.aborted)throw new f$;return this._addRun(t(this,W$,"m",_0).call(this))}toReadableStream(){return new I$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,J,S,F){let f=new b$;return f._run(()=>f._runToolAssistantStream(T,$,J,S,{...F,headers:{...F?.headers,"X-Stainless-Helper-Method":"stream"}})),f}async _createToolAssistantStream(T,$,J,S,F){let f=F?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}let W={...S,stream:!0},A=await T.submitToolOutputs($,J,W,{...F,signal:this.controller.signal});this._connected();for await(let X of A)t(this,W$,"m",R0).call(this,X);if(A.controller.signal?.aborted)throw new f$;return this._addRun(t(this,W$,"m",_0).call(this))}static createThreadAssistantStream(T,$,J){let S=new b$;return S._run(()=>S._threadAssistantStream(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),S}static createAssistantStream(T,$,J,S){let F=new b$;return F._run(()=>F._runAssistantStream(T,$,J,{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return t(this,Jf,"f")}currentRun(){return t(this,Sf,"f")}currentMessageSnapshot(){return t(this,TJ,"f")}currentRunStepSnapshot(){return t(this,k0,"f")}async finalRunSteps(){return await this.done(),Object.values(t(this,MJ,"f"))}async finalMessages(){return await this.done(),Object.values(t(this,$f,"f"))}async finalRun(){if(await this.done(),!t(this,RS,"f"))throw Error("Final run was not received.");return t(this,RS,"f")}async _createThreadAssistantStream(T,$,J){let S=J?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}let F={...$,stream:!0},f=await T.createAndRun(F,{...J,signal:this.controller.signal});this._connected();for await(let W of f)t(this,W$,"m",R0).call(this,W);if(f.controller.signal?.aborted)throw new f$;return this._addRun(t(this,W$,"m",_0).call(this))}async _createAssistantStream(T,$,J,S){let F=S?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let f={...J,stream:!0},W=await T.create($,f,{...S,signal:this.controller.signal});this._connected();for await(let A of W)t(this,W$,"m",R0).call(this,A);if(W.controller.signal?.aborted)throw new f$;return this._addRun(t(this,W$,"m",_0).call(this))}static accumulateDelta(T,$){for(let[J,S]of Object.entries($)){if(!T.hasOwnProperty(J)){T[J]=S;continue}let F=T[J];if(F===null||F===void 0){T[J]=S;continue}if(J==="index"||J==="type"){T[J]=S;continue}if(typeof F==="string"&&typeof S==="string")F+=S;else if(typeof F==="number"&&typeof S==="number")F+=S;else if(f0(F)&&f0(S))F=this.accumulateDelta(F,S);else if(Array.isArray(F)&&Array.isArray(S)){if(F.every((f)=>typeof f==="string"||typeof f==="number")){F.push(...S);continue}for(let f of S){if(!f0(f))throw new Error(`Expected array delta entry to be an object but got: ${f}`);let W=f.index;if(W==null)throw console.error(f),new Error("Expected array delta entry to have an `index` property");if(typeof W!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${W}`);let A=F[W];if(A==null)F.push(f);else F[W]=this.accumulateDelta(A,f)}continue}else throw Error(`Unhandled record type: ${J}, deltaValue: ${S}, accValue: ${F}`);T[J]=F}return T}_addRun(T){return T}async _threadAssistantStream(T,$,J){return await this._createThreadAssistantStream($,T,J)}async _runAssistantStream(T,$,J,S){return await this._createAssistantStream($,T,J,S)}async _runToolAssistantStream(T,$,J,S,F){return await this._createToolAssistantStream(J,T,$,S,F)}}R0=function T($){if(this.ended)return;switch(Z$(this,Jf,$,"f"),t(this,W$,"m",Qw).call(this,$),$.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":t(this,W$,"m",kw).call(this,$);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":t(this,W$,"m",Dw).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":t(this,W$,"m",zw).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:v5($)}},_0=function T(){if(this.ended)throw new TT("stream has ended, this shouldn't happen");if(!t(this,RS,"f"))throw Error("Final run has not been received");return t(this,RS,"f")},zw=function T($){let[J,S]=t(this,W$,"m",Rw).call(this,$,t(this,TJ,"f"));Z$(this,TJ,J,"f"),t(this,$f,"f")[J.id]=J;for(let F of S){let f=J.content[F.index];if(f?.type=="text")this._emit("textCreated",f.text)}switch($.event){case"thread.message.created":this._emit("messageCreated",$.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",$.data.delta,J),$.data.delta.content)for(let F of $.data.delta.content){if(F.type=="text"&&F.text){let f=F.text,W=J.content[F.index];if(W&&W.type=="text")this._emit("textDelta",f,W.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=t(this,MF,"f")){if(t(this,ES,"f"))switch(t(this,ES,"f").type){case"text":this._emit("textDone",t(this,ES,"f").text,t(this,TJ,"f"));break;case"image_file":this._emit("imageFileDone",t(this,ES,"f").image_file,t(this,TJ,"f"));break}Z$(this,MF,F.index,"f")}Z$(this,ES,J.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(t(this,MF,"f")!==void 0){let F=$.data.content[t(this,MF,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,t(this,TJ,"f"));break;case"text":this._emit("textDone",F.text,t(this,TJ,"f"));break}}if(t(this,TJ,"f"))this._emit("messageDone",$.data);Z$(this,TJ,void 0,"f")}},Dw=function T($){let J=t(this,W$,"m",Ew).call(this,$);switch(Z$(this,k0,J,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let S=$.data.delta;if(S.step_details&&S.step_details.type=="tool_calls"&&S.step_details.tool_calls&&J.step_details.type=="tool_calls")for(let f of S.step_details.tool_calls)if(f.index==t(this,Ff,"f"))this._emit("toolCallDelta",f,J.step_details.tool_calls[f.index]);else{if(t(this,q$,"f"))this._emit("toolCallDone",t(this,q$,"f"));if(Z$(this,Ff,f.index,"f"),Z$(this,q$,J.step_details.tool_calls[f.index],"f"),t(this,q$,"f"))this._emit("toolCallCreated",t(this,q$,"f"))}this._emit("runStepDelta",$.data.delta,J);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(Z$(this,k0,void 0,"f"),$.data.step_details.type=="tool_calls"){if(t(this,q$,"f"))this._emit("toolCallDone",t(this,q$,"f")),Z$(this,q$,void 0,"f")}this._emit("runStepDone",$.data,J);break;case"thread.run.step.in_progress":break}},Qw=function T($){t(this,K2,"f").push($),this._emit("event",$)},Ew=function T($){switch($.event){case"thread.run.step.created":return t(this,MJ,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let J=t(this,MJ,"f")[$.data.id];if(!J)throw Error("Received a RunStepDelta before creation of a snapshot");let S=$.data;if(S.delta){let F=b$.accumulateDelta(J,S.delta);t(this,MJ,"f")[$.data.id]=F}return t(this,MJ,"f")[$.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":t(this,MJ,"f")[$.data.id]=$.data;break}if(t(this,MJ,"f")[$.data.id])return t(this,MJ,"f")[$.data.id];throw new Error("No snapshot available")},Rw=function T($,J){let S=[];switch($.event){case"thread.message.created":return[$.data,S];case"thread.message.delta":if(!J)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=$.data;if(F.delta.content)for(let f of F.delta.content)if(f.index in J.content){let W=J.content[f.index];J.content[f.index]=t(this,W$,"m",_w).call(this,f,W)}else J.content[f.index]=f,S.push(f);return[J,S];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(J)return[J,S];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},_w=function T($,J){return b$.accumulateDelta(J,$)},kw=function T($){switch(Z$(this,Sf,$.data,"f"),$.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":if(Z$(this,RS,$.data,"f"),t(this,q$,"f"))this._emit("toolCallDone",t(this,q$,"f")),Z$(this,q$,void 0,"f");break;case"thread.run.cancelling":break}};function v5(T){}class GF extends c{create(T,$,J){return this._client.post(`/threads/${T}/messages`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/threads/${T}/messages/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}update(T,$,J,S){return this._client.post(`/threads/${T}/messages/${$}`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/messages`,U0,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$,J){return this._client.delete(`/threads/${T}/messages/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class U0 extends xT{}GF.MessagesPage=U0;class KF extends c{retrieve(T,$,J,S={},F){if(DT(S))return this.retrieve(T,$,J,{},S);return this._client.get(`/threads/${T}/runs/${$}/steps/${J}`,{query:S,...F,headers:{"OpenAI-Beta":"assistants=v2",...F?.headers}})}list(T,$,J={},S){if(DT(J))return this.list(T,$,{},J);return this._client.getAPIList(`/threads/${T}/runs/${$}/steps`,V0,{query:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class V0 extends xT{}KF.RunStepsPage=V0;class oJ extends c{constructor(){super(...arguments);this.steps=new KF(this._client)}create(T,$,J){let{include:S,...F}=$;return this._client.post(`/threads/${T}/runs`,{query:{include:S},body:F,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers},stream:$.stream??!1})}retrieve(T,$,J){return this._client.get(`/threads/${T}/runs/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}update(T,$,J,S){return this._client.post(`/threads/${T}/runs/${$}`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/runs`,B0,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}cancel(T,$,J){return this._client.post(`/threads/${T}/runs/${$}/cancel`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$,J);return await this.poll(T,S.id,J)}createAndStream(T,$,J){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:f}=await this.retrieve(T,$,{...J,headers:{...J?.headers,...S}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let W=5000;if(J?.pollIntervalMs)W=J.pollIntervalMs;else{let A=f.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))W=X}}await kJ(W);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(T,$,J){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}submitToolOutputs(T,$,J,S){return this._client.post(`/threads/${T}/runs/${$}/submit_tool_outputs`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers},stream:J.stream??!1})}async submitToolOutputsAndPoll(T,$,J,S){let F=await this.submitToolOutputs(T,$,J,S);return await this.poll(T,F.id,S)}submitToolOutputsStream(T,$,J,S){return b$.createToolAssistantStream(T,$,this._client.beta.threads.runs,J,S)}}class B0 extends xT{}oJ.RunsPage=B0;oJ.Steps=KF;oJ.RunStepsPage=V0;class yJ extends c{constructor(){super(...arguments);this.runs=new oJ(this._client),this.messages=new GF(this._client)}create(T={},$){if(DT(T))return this.create({},T);return this._client.post("/threads",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/threads/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$){return this._client.delete(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}createAndRun(T,$){return this._client.post("/threads/runs",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:T.stream??!1})}async createAndRunPoll(T,$){let J=await this.createAndRun(T,$);return await this.runs.poll(J.thread_id,J.id,$)}createAndRunStream(T,$){return b$.createThreadAssistantStream(T,this._client.beta.threads,$)}}yJ.Runs=oJ;yJ.RunsPage=B0;yJ.Messages=GF;yJ.MessagesPage=U0;var Uw=async(T)=>{let $=await Promise.allSettled(T),J=$.filter((F)=>F.status==="rejected");if(J.length){for(let F of J)console.error(F.reason);throw new Error(`${J.length} promise(s) failed - see the above errors`)}let S=[];for(let F of $)if(F.status==="fulfilled")S.push(F.value);return S};class HF extends c{create(T,$,J){return this._client.post(`/vector_stores/${T}/files`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/vector_stores/${T}/files/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/vector_stores/${T}/files`,_S,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$,J){return this._client.delete(`/vector_stores/${T}/files/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$,J);return await this.poll(T,S.id,J)}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let F=await this.retrieve(T,$,{...J,headers:S}).withResponse(),f=F.data;switch(f.status){case"in_progress":let W=5000;if(J?.pollIntervalMs)W=J.pollIntervalMs;else{let A=F.response.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))W=X}}await kJ(W);break;case"failed":case"completed":return f}}}async upload(T,$,J){let S=await this._client.files.create({file:$,purpose:"assistants"},J);return this.create(T,{file_id:S.id},J)}async uploadAndPoll(T,$,J){let S=await this.upload(T,$,J);return await this.poll(T,S.id,J)}}class _S extends xT{}HF.VectorStoreFilesPage=_S;class y0 extends c{create(T,$,J){return this._client.post(`/vector_stores/${T}/file_batches`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/vector_stores/${T}/file_batches/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}cancel(T,$,J){return this._client.post(`/vector_stores/${T}/file_batches/${$}/cancel`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$);return await this.poll(T,S.id,J)}listFiles(T,$,J={},S){if(DT(J))return this.listFiles(T,$,{},J);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${$}/files`,_S,{query:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:f}=await this.retrieve(T,$,{...J,headers:S}).withResponse();switch(F.status){case"in_progress":let W=5000;if(J?.pollIntervalMs)W=J.pollIntervalMs;else{let A=f.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))W=X}}await kJ(W);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(T,{files:$,fileIds:J=[]},S){if($==null||$.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=S?.maxConcurrency??5,f=Math.min(F,$.length),W=this._client,A=$.values(),X=[...J];async function w(M){for(let G of M){let z=await W.files.create({file:G,purpose:"assistants"},S);X.push(z.id)}}let Y=Array(f).fill(A).map(w);return await Uw(Y),await this.createAndPoll(T,{file_ids:X})}}class LJ extends c{constructor(){super(...arguments);this.files=new HF(this._client),this.fileBatches=new y0(this._client)}create(T,$){return this._client.post("/vector_stores",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/vector_stores/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",L0,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class L0 extends xT{}LJ.VectorStoresPage=L0;LJ.Files=HF;LJ.VectorStoreFilesPage=_S;LJ.FileBatches=y0;class p$ extends c{constructor(){super(...arguments);this.realtime=new YF(this._client),this.vectorStores=new LJ(this._client),this.chat=new Q0(this._client),this.assistants=new fF(this._client),this.threads=new yJ(this._client)}}p$.Realtime=YF;p$.VectorStores=LJ;p$.VectorStoresPage=L0;p$.Assistants=fF;p$.AssistantsPage=Y0;p$.Threads=yJ;class OF extends c{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class zF extends c{create(T,$){return this._client.post("/embeddings",{body:T,...$})}}class kS extends c{create(T,$){return this._client.post("/files",g$({body:T,...$}))}retrieve(T,$){return this._client.get(`/files/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/files",DF,{query:T,...$})}del(T,$){return this._client.delete(`/files/${T}`,$)}content(T,$){return this._client.get(`/files/${T}/content`,{...$,headers:{Accept:"application/binary",...$?.headers},__binaryResponse:!0})}retrieveContent(T,$){return this._client.get(`/files/${T}/content`,$)}async waitForProcessing(T,{pollInterval:$=5000,maxWait:J=1800000}={}){let S=new Set(["processed","error","deleted"]),F=Date.now(),f=await this.retrieve(T);while(!f.status||!S.has(f.status))if(await kJ($),f=await this.retrieve(T),Date.now()-F>J)throw new YS({message:`Giving up on waiting for file ${T} to finish processing after ${J} milliseconds.`});return f}}class DF extends xT{}kS.FileObjectsPage=DF;class QF extends c{list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,N0,{query:$,...J})}}class N0 extends xT{}QF.FineTuningJobCheckpointsPage=N0;class NJ extends c{constructor(){super(...arguments);this.checkpoints=new QF(this._client)}create(T,$){return this._client.post("/fine_tuning/jobs",{body:T,...$})}retrieve(T,$){return this._client.get(`/fine_tuning/jobs/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",C0,{query:T,...$})}cancel(T,$){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,$)}listEvents(T,$={},J){if(DT($))return this.listEvents(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,j0,{query:$,...J})}}class C0 extends xT{}class j0 extends xT{}NJ.FineTuningJobsPage=C0;NJ.FineTuningJobEventsPage=j0;NJ.Checkpoints=QF;NJ.FineTuningJobCheckpointsPage=N0;class CJ extends c{constructor(){super(...arguments);this.jobs=new NJ(this._client)}}CJ.Jobs=NJ;CJ.FineTuningJobsPage=C0;CJ.FineTuningJobEventsPage=j0;class EF extends c{createVariation(T,$){return this._client.post("/images/variations",g$({body:T,...$}))}edit(T,$){return this._client.post("/images/edits",g$({body:T,...$}))}generate(T,$){return this._client.post("/images/generations",{body:T,...$})}}class US extends c{retrieve(T,$){return this._client.get(`/models/${T}`,$)}list(T){return this._client.getAPIList("/models",RF,T)}del(T,$){return this._client.delete(`/models/${T}`,$)}}class RF extends uW{}US.ModelsPage=RF;class _F extends c{create(T,$){return this._client.post("/moderations",{body:T,...$})}}class x0 extends c{create(T,$,J){return this._client.post(`/uploads/${T}/parts`,g$({body:$,...J}))}}class VS extends c{constructor(){super(...arguments);this.parts=new x0(this._client)}create(T,$){return this._client.post("/uploads",{body:T,...$})}cancel(T,$){return this._client.post(`/uploads/${T}/cancel`,$)}complete(T,$,J){return this._client.post(`/uploads/${T}/complete`,{body:$,...J})}}VS.Parts=x0;var Vw;class XT extends iW{constructor({baseURL:T=F0("OPENAI_BASE_URL"),apiKey:$=F0("OPENAI_API_KEY"),organization:J=F0("OPENAI_ORG_ID")??null,project:S=F0("OPENAI_PROJECT_ID")??null,...F}={}){if($===void 0)throw new TT("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let f={apiKey:$,organization:J,project:S,...F,baseURL:T||"https://api.openai.com/v1"};if(!f.dangerouslyAllowBrowser&&Fw())throw new TT(`It looks like you're running in a browser-like environment.
35
35
 
36
36
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
37
37
  If you understand the risks and have appropriate mitigations in place,
@@ -40,42 +40,42 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
40
40
  new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
41
41
 
42
42
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
43
- `);super({baseURL:W.baseURL,timeout:W.timeout??600000,httpAgent:W.httpAgent,maxRetries:W.maxRetries,fetch:W.fetch});this.completions=new HF(this),this.chat=new pS(this),this.embeddings=new zF(this),this.files=new UJ(this),this.images=new QF(this),this.audio=new VS(this),this.moderations=new _F(this),this.models=new VJ(this),this.fineTuning=new xS(this),this.beta=new o$(this),this.batches=new zJ(this),this.uploads=new BJ(this),this._options=W,this.apiKey=$,this.organization=S,this.project=J}defaultQuery(){return this._options.defaultQuery}defaultHeaders(T){return{...super.defaultHeaders(T),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project,...this._options.defaultHeaders}}authHeaders(T){return{Authorization:`Bearer ${this.apiKey}`}}stringifyQuery(T){return Zf(T,{arrayFormat:"brackets"})}}UY=XT;XT.OpenAI=UY;XT.DEFAULT_TIMEOUT=600000;XT.OpenAIError=TT;XT.APIError=pT;XT.APIConnectionError=wJ;XT.APIConnectionTimeoutError=KJ;XT.APIUserAbortError=f$;XT.NotFoundError=I1;XT.ConflictError=Z1;XT.RateLimitError=b1;XT.BadRequestError=C1;XT.AuthenticationError=x1;XT.InternalServerError=h1;XT.PermissionDeniedError=j1;XT.UnprocessableEntityError=q1;XT.toFile=of;XT.fileFromPath=N1;XT.Completions=HF;XT.Chat=pS;XT.ChatCompletionsPage=HJ;XT.Embeddings=zF;XT.Files=UJ;XT.FileObjectsPage=DF;XT.Images=QF;XT.Audio=VS;XT.Moderations=_F;XT.Models=VJ;XT.ModelsPage=RF;XT.FineTuning=xS;XT.Beta=o$;XT.Batches=zJ;XT.BatchesPage=FF;XT.Uploads=BJ;var VY=XT;var ZY=OM(LY(),1);import{createHash as $O}from"crypto";import*as L$ from"fs";import{copyFile as SO}from"fs/promises";import*as kF from"path";import{resolve as JO}from"path";import{existsSync as HA,mkdirSync as NY,readdirSync as CY,readFileSync as e9,rmSync as xY,statSync as jY,writeFileSync as TO}from"fs";import{resolve as zA}from"path";class DA{rootDir;get initialized(){return HA(this.rootDir)}initialize(){if(!this.initialized)NY(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=zA(this.rootDir,T);if(HA($))return e9($,"utf-8");return null}setItem(T,$){this.initialize();let S=zA(this.rootDir,T);TO(S,$)}removeItem(T){let $=zA(this.rootDir,T);if(HA($))this.initialize(),xY($)}key(T){return CY(this.rootDir).sort((J,F)=>{let W=jY(J);return jY(F).ctimeMs-W.ctimeMs})[T]??null}clear(){xY(this.rootDir,{recursive:!0}),NY(this.rootDir,{recursive:!0})}get length(){return CY(this.rootDir).length}}var IY=/[^a-zA-Z0-9\-._]/g;function q0(T,$=64){let S=T.replace(IY,"-");if(S.length<=$)return S;let J=$O("sha256").update(T).digest("hex");return S.slice(-$)+"+"+J}var FO=ZY.default("varmint"),Z0=q0(process.cwd(),150),EA=JO(FO,Z0),eT="_-$-_-$-_",qY=`file${eT}`,bY=`list${eT}`,hY=`root${eT}`,WO=`unmatched${eT}`,yT={storage:new DA({path:EA,eagerInit:!1}),startGlobalTracking(){if(console.log(`\uD83D\uDC3F\uFE0F Starting global tracking of varmint files using project identifier "${Z0}"`),yT.storage.initialized)console.error(`\uD83D\uDCA5 The global cache for the project "${Z0}" was found already initialized. Clearing it and starting fresh.`),yT.storage.clear();yT.storage.initialize()},async prepareUploads(T){console.log(`\uD83D\uDC3F\uFE0F Moving unmatched inputs to /tmp/varmint-uploads using project identifier "${Z0}"`);let $=[];for(let S of L$.readdirSync(yT.storage.rootDir))if(JW(`unmatched${eT}`,S))$.push(S);if($.length===0){console.log("\uD83D\uDC3F\uFE0F ","No unmatched input files found.");return}if(console.log("\uD83D\uDC3F\uFE0F ","Found the following unmatched files:",`
43
+ `);super({baseURL:f.baseURL,timeout:f.timeout??600000,httpAgent:f.httpAgent,maxRetries:f.maxRetries,fetch:f.fetch});this.completions=new OF(this),this.chat=new cJ(this),this.embeddings=new zF(this),this.files=new kS(this),this.images=new EF(this),this.audio=new UJ(this),this.moderations=new _F(this),this.models=new US(this),this.fineTuning=new CJ(this),this.beta=new p$(this),this.batches=new OS(this),this.uploads=new VS(this),this._options=f,this.apiKey=$,this.organization=J,this.project=S}defaultQuery(){return this._options.defaultQuery}defaultHeaders(T){return{...super.defaultHeaders(T),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project,...this._options.defaultHeaders}}authHeaders(T){return{Authorization:`Bearer ${this.apiKey}`}}stringifyQuery(T){return ZW(T,{arrayFormat:"brackets"})}}Vw=XT;XT.OpenAI=Vw;XT.DEFAULT_TIMEOUT=600000;XT.OpenAIError=TT;XT.APIError=gT;XT.APIConnectionError=wS;XT.APIConnectionTimeoutError=YS;XT.APIUserAbortError=f$;XT.NotFoundError=q1;XT.ConflictError=b1;XT.RateLimitError=v1;XT.BadRequestError=x1;XT.AuthenticationError=I1;XT.InternalServerError=m1;XT.PermissionDeniedError=Z1;XT.UnprocessableEntityError=h1;XT.toFile=oW;XT.fileFromPath=j1;XT.Completions=OF;XT.Chat=cJ;XT.ChatCompletionsPage=HS;XT.Embeddings=zF;XT.Files=kS;XT.FileObjectsPage=DF;XT.Images=EF;XT.Audio=UJ;XT.Moderations=_F;XT.Models=US;XT.ModelsPage=RF;XT.FineTuning=CJ;XT.Beta=p$;XT.Batches=OS;XT.BatchesPage=FF;XT.Uploads=VS;var Bw=XT;var qw=H7(Nw(),1);import{createHash as TG}from"crypto";import*as B$ from"fs";import{copyFile as $G}from"fs/promises";import*as kF from"path";import{resolve as JG}from"path";import{existsSync as H2,mkdirSync as Cw,readdirSync as jw,readFileSync as s5,rmSync as xw,statSync as Iw,writeFileSync as e5}from"fs";import{resolve as O2}from"path";class z2{rootDir;get initialized(){return H2(this.rootDir)}initialize(){if(!this.initialized)Cw(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=O2(this.rootDir,T);if(H2($))return s5($,"utf-8");return null}setItem(T,$){this.initialize();let J=O2(this.rootDir,T);e5(J,$)}removeItem(T){let $=O2(this.rootDir,T);if(H2($))this.initialize(),xw($)}key(T){return jw(this.rootDir).sort((S,F)=>{let f=Iw(S);return Iw(F).ctimeMs-f.ctimeMs})[T]??null}clear(){xw(this.rootDir,{recursive:!0}),Cw(this.rootDir,{recursive:!0})}get length(){return jw(this.rootDir).length}}var Zw=/[^a-zA-Z0-9\-._]/g;function b0(T,$=64){let J=T.replace(Zw,"-");if(J.length<=$)return J;let S=TG("sha256").update(T).digest("hex");return J.slice(-$)+"+"+S}var SG=qw.default("varmint"),q0=b0(process.cwd(),150),D2=JG(SG,q0),sT="_-$-_-$-_",bw=`file${sT}`,hw=`list${sT}`,vw=`root${sT}`,FG=`unmatched${sT}`,LT={storage:new z2({path:D2,eagerInit:!1}),startGlobalTracking(){if(console.log(`\uD83D\uDC3F\uFE0F Starting global tracking of varmint files using project identifier "${q0}"`),LT.storage.initialized)console.error(`\uD83D\uDCA5 The global cache for the project "${q0}" was found already initialized. Clearing it and starting fresh.`),LT.storage.clear();LT.storage.initialize()},async prepareUploads(T){console.log(`\uD83D\uDC3F\uFE0F Moving unmatched inputs to /tmp/varmint-uploads using project identifier "${q0}"`);let $=[];for(let J of B$.readdirSync(LT.storage.rootDir))if(ff(`unmatched${sT}`,J))$.push(J);if($.length===0){console.log("\uD83D\uDC3F\uFE0F ","No unmatched input files found.");return}if(console.log("\uD83D\uDC3F\uFE0F ","Found the following unmatched files:",`
44
44
  - ${$.join(`
45
45
  `)}
46
46
  `,`in root folder:
47
- `,EA),process.env[T])L$.mkdirSync("/tmp/varmint-uploads",{recursive:!0}),await Promise.all($.map(async(S)=>{let J=kF.join(EA,S),F=kF.join("/tmp/varmint-uploads",S);await SO(J,F)}));else console.warn("\uD83D\uDCA5 Skipping artifact upload because process.env.CI is not set.")},endGlobalTrackingAndFlushUnusedFiles(){if(console.log(`\uD83D\uDC3F\uFE0F Ending global tracking of varmint files using project identifier "${Z0}" and starting cleanup of untouched files.`),!yT.storage.initialized){console.error("\uD83D\uDCA5 called flushGlobal, but the global cache wasn't initialized with startGlobalTracking");return}let T=L$.readdirSync(yT.storage.rootDir),$=new Map,S=[],J=[],F=[];for(let f of T)if(JW(`root${eT}`,f))S.push(f);else if(JW(`list${eT}`,f))J.push(f);else if(JW(`file${eT}`,f))F.push(f);if(yT.storage.getItem("DID_CACHE_MISS"))console.log("\uD83D\uDC3F\uFE0F ","Cache miss detected. Since this likely prevented the cache from being fully utilized, we will not attempt to flush unused files.");else{let f=new Map;for(let A of S){let X=A.replace(hY,"");f.set(X,new Map);let Y=yT.storage.getItem(A);if(Y)$.set(X,Y);else console.error(`\uD83D\uDCA5 Could not find folder ${Y} referenced in the global cache`)}for(let A of J){let X=A.replace(bY,""),[Y,w]=X.split(eT),K=f.get(Y);if(K)K.set(w,new Set);else console.error(`\uD83D\uDCA5 Could not find root ${Y} for list ${w}`)}for(let A of F){let X=A.replace(qY,""),[Y,w,K]=X.split(eT),M=f.get(Y);if(M){let D=M.get(w);if(D)D.add(K);else console.error(`\uD83D\uDCA5 Could not find list ${w} for file ${X}`)}else console.error(`\uD83D\uDCA5 Could not find root ${Y} for file ${X}`)}console.log("\uD83D\uDC3F\uFE0F ",f);for(let[A,X]of f.entries()){let Y=$.get(A);if(!Y){console.error(`\uD83D\uDCA5 Could not find root ${A}`);continue}if(!L$.existsSync(Y)){console.warn(`\uD83D\uDCA5 Root folder ${Y}, identified as being used during tracking, no longer exists during cleanup.`);continue}let K=L$.readdirSync(Y);for(let M of K)if(M!==".ferret"&&!X.has(M)){let D=kF.join(Y,M);console.log(`\uD83E\uDDF9 globalFlush: removing directory ${D}`),L$.rmSync(D,{recursive:!0})}for(let[M,D]of X.entries()){let z=kF.join(Y,M);if(!L$.existsSync(z)){console.warn(`\uD83D\uDCA5 List folder ${z}, identified as being used during tracking, no longer exists.`);continue}let L=L$.readdirSync(z);for(let j of L){let y=j.replace(".input.json","").replace(".output.json","").replace(".stream.txt","");if(!D.has(y)){let I=kF.join(z,j);console.log(`\uD83E\uDDF9 globalFlush: removing file ${I}`),L$.rmSync(I)}}}}}L$.rmSync(yT.storage.rootDir,{recursive:!0})}};function JW(T,$){return $.startsWith(T)}import*as PT from"fs";import*as JS from"path";import{inspect as vY}from"util";class QA{filenameCache=new Map;filesTouched=new Map;mode;baseDir;rootName;constructor(T="off",$=JS.join(process.cwd(),".varmint")){if(this.mode=T,this.baseDir=$,this.rootName=q0(this.baseDir),yT.storage.initialized&&!yT.storage.getItem(`root${eT}${this.rootName}`))yT.storage.setItem(`root${eT}${this.rootName}`,this.baseDir)}read(T,$,S){let J=JS.join(this.baseDir,T),F=`${$}.input.json`,W=JS.join(J,F);if(!PT.existsSync(W)){if(!PT.existsSync(J)){if(yT.storage.initialized&&this.mode==="read")yT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with "${$}" was not found. Directory "${J}" does not exist.`)}let K=PT.readdirSync(J).map((z)=>[z,PT.readFileSync(JS.join(J,z),"utf-8")]).filter(([z])=>z.endsWith(".input.json")),M=[];for(let[z,R]of K){let L=` ${z}`,j=` ${vY(JSON.parse(R),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
47
+ `,D2),process.env[T])B$.mkdirSync("/tmp/varmint-uploads",{recursive:!0}),await Promise.all($.map(async(J)=>{let S=kF.join(D2,J),F=kF.join("/tmp/varmint-uploads",J);await $G(S,F)}));else console.warn("\uD83D\uDCA5 Skipping artifact upload because process.env.CI is not set.")},endGlobalTrackingAndFlushUnusedFiles(){if(console.log(`\uD83D\uDC3F\uFE0F Ending global tracking of varmint files using project identifier "${q0}" and starting cleanup of untouched files.`),!LT.storage.initialized){console.error("\uD83D\uDCA5 called flushGlobal, but the global cache wasn't initialized with startGlobalTracking");return}let T=B$.readdirSync(LT.storage.rootDir),$=new Map,J=[],S=[],F=[];for(let W of T)if(ff(`root${sT}`,W))J.push(W);else if(ff(`list${sT}`,W))S.push(W);else if(ff(`file${sT}`,W))F.push(W);if(LT.storage.getItem("DID_CACHE_MISS"))console.log("\uD83D\uDC3F\uFE0F ","Cache miss detected. Since this likely prevented the cache from being fully utilized, we will not attempt to flush unused files.");else{let W=new Map;for(let A of J){let X=A.replace(vw,"");W.set(X,new Map);let w=LT.storage.getItem(A);if(w)$.set(X,w);else console.error(`\uD83D\uDCA5 Could not find folder ${w} referenced in the global cache`)}for(let A of S){let X=A.replace(hw,""),[w,Y]=X.split(sT),M=W.get(w);if(M)M.set(Y,new Set);else console.error(`\uD83D\uDCA5 Could not find root ${w} for list ${Y}`)}for(let A of F){let X=A.replace(bw,""),[w,Y,M]=X.split(sT),G=W.get(w);if(G){let z=G.get(Y);if(z)z.add(M);else console.error(`\uD83D\uDCA5 Could not find list ${Y} for file ${X}`)}else console.error(`\uD83D\uDCA5 Could not find root ${w} for file ${X}`)}console.log("\uD83D\uDC3F\uFE0F ",W);for(let[A,X]of W.entries()){let w=$.get(A);if(!w){console.error(`\uD83D\uDCA5 Could not find root ${A}`);continue}if(!B$.existsSync(w)){console.warn(`\uD83D\uDCA5 Root folder ${w}, identified as being used during tracking, no longer exists during cleanup.`);continue}let M=B$.readdirSync(w);for(let G of M)if(G!==".ferret"&&!X.has(G)){let z=kF.join(w,G);console.log(`\uD83E\uDDF9 globalFlush: removing directory ${z}`),B$.rmSync(z,{recursive:!0})}for(let[G,z]of X.entries()){let D=kF.join(w,G);if(!B$.existsSync(D)){console.warn(`\uD83D\uDCA5 List folder ${D}, identified as being used during tracking, no longer exists.`);continue}let L=B$.readdirSync(D);for(let x of L){let y=x.replace(".input.json","").replace(".output.json","").replace(".stream.txt","");if(!z.has(y)){let I=kF.join(D,x);console.log(`\uD83E\uDDF9 globalFlush: removing file ${I}`),B$.rmSync(I)}}}}}B$.rmSync(LT.storage.rootDir,{recursive:!0})}};function ff(T,$){return $.startsWith(T)}import*as mT from"fs";import*as $J from"path";import{inspect as mw}from"util";class Q2{filenameCache=new Map;filesTouched=new Map;mode;baseDir;rootName;constructor(T="off",$=$J.join(process.cwd(),".varmint")){if(this.mode=T,this.baseDir=$,this.rootName=b0(this.baseDir),LT.storage.initialized&&!LT.storage.getItem(`root${sT}${this.rootName}`))LT.storage.setItem(`root${sT}${this.rootName}`,this.baseDir)}read(T,$,J){let S=$J.join(this.baseDir,T),F=`${$}.input.json`,f=$J.join(S,F);if(!mT.existsSync(f)){if(!mT.existsSync(S)){if(LT.storage.initialized&&this.mode==="read")LT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with "${$}" was not found. Directory "${S}" does not exist.`)}let M=mT.readdirSync(S).map((D)=>[D,mT.readFileSync($J.join(S,D),"utf-8")]).filter(([D])=>D.endsWith(".input.json")),G=[];for(let[D,R]of M){let L=` ${D}`,x=` ${mw(JSON.parse(R),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
48
48
  `).join(`
49
- `)}`;M.push(L,j)}let D=` ${F}
50
- ${vY(S,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
49
+ `)}`;G.push(L,x)}let z=` ${F}
50
+ ${mw(J,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
51
51
  `).join(`
52
- `)}`;if(yT.storage.initialized&&this.mode==="read")yT.storage.setItem(`unmatched${eT}${F}`,JSON.stringify(S,null,"\t")),yT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with subKey "${$}" (${W}) was not found. Directory "${J}" exists, but the file does not. Below is a list of CACHED INPUT FILES from that directory and their contents, followed by YOUR INPUT DATA.
52
+ `)}`;if(LT.storage.initialized&&this.mode==="read")LT.storage.setItem(`unmatched${sT}${F}`,JSON.stringify(J,null,"\t")),LT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with subKey "${$}" (${f}) was not found. Directory "${S}" exists, but the file does not. Below is a list of CACHED INPUT FILES from that directory and their contents, followed by YOUR INPUT DATA.
53
53
 
54
54
  CACHED INPUT FILES:
55
- ${M.join(`
55
+ ${G.join(`
56
56
  `)}
57
57
 
58
58
  YOUR INPUT DATA:
59
- ${D}
60
- `)}let f=PT.readFileSync(W,"utf-8"),A=JSON.stringify(S,null,"\t");if(A!==f){if(yT.storage.initialized&&this.mode==="read")yT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: the content of the cached input file ${W} does not match the input provided.
59
+ ${z}
60
+ `)}let W=mT.readFileSync(f,"utf-8"),A=JSON.stringify(J,null,"\t");if(A!==W){if(LT.storage.initialized&&this.mode==="read")LT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: the content of the cached input file ${f} does not match the input provided.
61
61
 
62
62
  Provided:
63
63
  ${A}
64
64
 
65
65
  Cached:
66
- ${f}`)}let X=JS.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(PT.readFileSync(X,"utf-8"))}async write(T,$,S,J){let F=JS.join(this.baseDir,T),W=JS.join(F,`${$}.input.json`),f=JS.join(F,`${$}.output.json`),A=JSON.stringify(S,null,"\t");if(!PT.existsSync(this.baseDir))PT.mkdirSync(this.baseDir,{recursive:!0});if(!PT.existsSync(F))PT.mkdirSync(F);if(PT.writeFileSync(W,A),PT.existsSync(f))PT.unlinkSync(f);let X=await J(...S),Y=JSON.stringify(X,null,"\t");return PT.writeFileSync(f,Y),X}add(T,$){let S=`${this.rootName}${eT}${q0(T)}`;return{flush:()=>{this.flush(T)},for:(J)=>{if(this.mode!=="off"){if(this.filesTouched.set(T,new Set),yT.storage.initialized&&!yT.storage.getItem(`list${eT}${S}`))yT.storage.setItem(`list${eT}${S}`,"true")}return{get:async(...F)=>{let W=J;if(this.mode!=="off"){let f=this.filenameCache.get(J);if(!f)f=q0(J),this.filenameCache.set(J,W),W=f;this.filesTouched.get(T)?.add(W);let A=`${S}${eT}${W}`,X=`file${eT}${A}`;if(yT.storage.initialized&&!yT.storage.getItem(X))yT.storage.setItem(X,"true")}switch(this.mode){case"off":return $(...F);case"read":return this.read(T,W,F);case"write":return this.write(T,W,F,$);case"read-write":try{return this.read(T,W,F)}catch(f){if(f instanceof Error)return this.write(T,W,F,$);throw f}}}}}}}flush(...T){console.log(this.filesTouched);for(let[$,S]of this.filesTouched.entries())if(T.length===0||T.includes($)){let J=JS.join(this.baseDir,$),F=PT.readdirSync(J);for(let W of F){let f=W.replace(".input.json","").replace(".output.json","");if(!S.has(f))console.info(`\uD83E\uDDF9 Flushing ${f}`),PT.unlinkSync(JS.join(J,W))}}}}function fO(T,...$){let[S,J,F,W]=$,f=[{role:"user",content:j8(J)},{role:"user",content:S}],A=W.at(-1);if(A)f.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(A.response,null,2),"Here's the error message:",A.error.toString()].join(`
67
- `)});return{model:T,messages:f}}var RA={"gpt-4o":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-08-06":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-05-13":{promptPricePerToken:0.000005,promptPricePerTokenCached:0.000005,completionPricePerToken:0.000014999999999999999},"gpt-4o-mini":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"gpt-4o-mini-2024-07-18":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"o1-preview":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995},"o1-preview-2024-09-12":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995}};function AO(T){return async function $(S,J){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let F=await T.chat.completions.create({...S,stream:!1,response_format:{type:"json_object"}},J),W=F.choices[0].message?.content,{usage:f}=F;if(W&&f){let A=f.prompt_tokens,X=f.prompt_tokens_details?.cached_tokens??0,Y=A-X,w=f.completion_tokens,K=A*RA[S.model].promptPricePerToken+Y*RA[S.model].promptPricePerTokenCached+w*RA[S.model].completionPricePerToken;return{data:JSON.parse(W),usage:f,usdPrice:K}}if(!W&&!f)throw new Error("No content or usage found in completion");if(!W)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var PY=new Map,mY=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:S,apiKey:J,cachingMode:F,cacheKey:W="openai-safegen",logger:f}){this.usdBudget=$,this.usdMinimum=S,this.squirrel=new QA(F);let A=PY.get(J);if(F!=="read"){if(!A)A=new VY({apiKey:J,dangerouslyAllowBrowser:!1}),PY.set(J,A);this.client=A}this.getUnknownJsonFromOpenAi=AO(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(W,this.getUnknownJsonFromOpenAi),this.from=x8(async(...X)=>{if(this.usdBudget<this.usdMinimum)return f?.warn("SafeGen budget exhausted"),X[1];let Y=fO(T,...X),w=X[0],K=X[3],{data:M,usage:D,usdPrice:z}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${w.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${K.length}`).get(Y);return this.lastUsage=D,this.usdBudget-=z,M})}from};import{exec as k5}from"child_process";var _A=(T)=>{let $=V$(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let S=new Map;for(let[J,F]of T.atoms)if(!J.includes("\uD83D\uDD0D")){let W=B$(F);if(F.family){let f=S.get(F.family.key);if(!f||!("familyMembers"in f))f={key:F.family.key,familyMembers:new Map},S.set(F.family.key,f);f.familyMembers.set(F.family.subKey,W)}else S.set(J,W)}return S},effects:[({setSelf:S})=>{T.on.atomCreation.subscribe("introspection",(J)=>{if(J.key.includes("\uD83D\uDD0D"))return;S((F)=>{if(J.family){let{key:W,subKey:f}=J.family,A=F.get(W);if(A===void 0||!("familyMembers"in A))A={key:W,familyMembers:new Map},F.set(W,A);A.familyMembers.set(f,J)}else F.set(J.key,J);return F})}),T.on.atomDisposal.subscribe("introspection",(J)=>{S((F)=>{if(J.family){let{key:W,subKey:f}=J.family,A=F.get(W);if(A&&"familyMembers"in A){if(A.familyMembers.delete(f),A.familyMembers.size===0)F.delete(W)}}else F.delete(J.key);return F})})}]},void 0);return l$(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:S})=>S($)})};var kA=(T)=>{let $=V$(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let S=new Map;for(let J of[T.readonlySelectors,T.selectors])for(let[F,W]of J)if(!F.includes("\uD83D\uDD0D")){let f=B$(W);if(W.family){let A=S.get(W.family.key);if(!A||!("familyMembers"in A))A={key:W.family.key,familyMembers:new Map},S.set(W.family.key,A);A.familyMembers.set(W.family.subKey,f)}else S.set(F,f)}return S},effects:[({setSelf:S})=>{T.on.selectorCreation.subscribe("introspection",(J)=>{if(J.key.includes("\uD83D\uDD0D"))return;S((F)=>{if(J.family){let{key:W,subKey:f}=J.family,A=F.get(W);if(A===void 0||!("familyMembers"in A))A={key:W,familyMembers:new Map},F.set(W,A);A.familyMembers.set(f,J)}else F.set(J.key,J);return F})}),T.on.selectorDisposal.subscribe("introspection",(J)=>{S((F)=>{if(J.family){let{key:W,subKey:f}=J.family,A=F.get(W);if(A&&"familyMembers"in A){if(A.familyMembers.delete(f),A.familyMembers.size===0)F.delete(W)}}else F.delete(J.key);return F})})}]},void 0);return l$(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:S})=>S($)})};class FW{supported;constructor(T){this.supported=T}refine(T){for(let[$,S]of Object.entries(this.supported))try{if(S(T)===!0&&S!==Boolean)return{type:$,data:T}}catch(J){try{if(T instanceof S)return{type:$,data:T}}catch(F){}}return null}}var UA=new FW({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function VA(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var BA=new FW({object:VA,array:(T)=>Array.isArray(T)}),XO=new FW({...UA.supported,...BA.supported}),UF=(T)=>{if(T===void 0)return"undefined";let $=XO.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class cY{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=FT.STORE){this.store=T;this.atomIndex=_A(this.store),this.selectorIndex=kA(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=cY.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=aW(this.atomIndex),S=aW(this.selectorIndex),J=[...$.values()].filter((A)=>("familyMembers"in A)),F=[...S.values()].filter((A)=>("familyMembers"in A)),W=performance.now(),f=[];if(T.atomFamilies)for(let A of J){let X=A.familyMembers.values();for(let Y of X){let K=this.statesCreatedAt.get(Y.key)??this.auditorCreatedAt,M=W-K;f.push([Y,M])}}if(T.selectorFamilies)for(let A of F){let X=A.familyMembers.values();for(let Y of X){let K=this.statesCreatedAt.get(Y.key)??this.auditorCreatedAt,M=W-K;f.push([Y,M])}}return f}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var yA=(T,$)=>{let S=(J,F)=>{let f=((X,Y)=>{let w=$(X,Y);if(w)return w;return null})(J,F);if(f?.jobComplete??f?.pathComplete)return f;let A=Array.isArray(F)?F.map((X,Y)=>[Y,X]):VA(F)?Object.entries(F):[];for(let[X,Y]of A){let w=S([...J,X],Y);if(w?.jobComplete)return w}return{}};S([],T)};function YO(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function wO(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function KO(T,$){return{summary:`${T} \u2192 ${$}`}}function nY(T,$,S){let J="",F=[],W=[],f=[];return yA(T,(A,X)=>{let Y;for(Y of A){let w=$[Y];if(w===void 0)W.push([Y,JSON.stringify(X)]);else{let K=S(X,w);if(K.summary!=="No Change")f.push([Y,K])}}}),yA($,(A,X)=>{let Y;for(Y of A)if(T[Y]===void 0)F.push([Y,JSON.stringify(X)])}),J=`\uFF5E${f.length} \uFF0B${F.length} \uFF0D${W.length}`,{summary:J,added:F,removed:W,changed:f}}function MO(T,$,S){return nY(T,$,S)}class gY{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,S){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let J of Object.keys(T.supported)){let F=S[J];this.leafDiffers[J]=F}for(let J of Object.keys($.supported)){let F=S[J];this.treeDiffers[J]=F}}diff(T,$){if(T===$)return{summary:"No Change"};let S=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),J=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(S!==null&&J!==null){if(S.type===J.type){if(S.type in this.leafDiffers)return this.leafDiffers[S.type](S.data,J.data);if(S.type in this.treeDiffers)return this.treeDiffers[S.type](S.data,J.data,(A,X)=>this.diff(A,X))}}let F=UF(T),W=UF($);if(F===W)return{summary:`${F} \u2192 ${W}`};return{summary:`Type change: ${F} \u2192 ${W}`}}}var ZC=new gY(UA,BA,{number:YO,string:wO,boolean:KO,null:()=>({summary:"No Change"}),object:nY,array:MO});var G=Symbol.for("drizzle:entityKind"),nC=Symbol.for("drizzle:hasOwnEntityKind");function k(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,G))throw new Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let S=Object.getPrototypeOf(T).constructor;if(S)while(S){if(G in S&&S[G]===$[G])return!0;S=Object.getPrototypeOf(S)}return!1}class kT{constructor(T,$){this.table=T,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[G]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class LA{static[G]="ColumnBuilder";config;constructor(T,$,S){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:S,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var FS=Symbol.for("drizzle:Name");class NA{static[G]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:S,columns:J,foreignColumns:F}=T();return{name:S,columns:J,foreignTable:F[0].table,foreignColumns:F}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new pY(T,this)}}class pY{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[G]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:S}=this.reference(),J=$.map((f)=>f.name),F=S.map((f)=>f.name),W=[this.table[FS],...J,S[0].table[FS],...F];return T??`${W.join("_")}_fk`}}function WW(T,...$){return T(...$)}function oY(T,$){return`${T[FS]}_${$.join("_")}_unique`}function tY(T,$,S){for(let J=$;J<T.length;J++){let F=T[J];if(F==="\\"){J++;continue}if(F==='"')return[T.slice($,J).replace(/\\/g,""),J+1];if(S)continue;if(F===","||F==="}")return[T.slice($,J).replace(/\\/g,""),J]}return[T.slice($).replace(/\\/g,""),T.length]}function dY(T,$=0){let S=[],J=$,F=!1;while(J<T.length){let W=T[J];if(W===","){if(F||J===$)S.push("");F=!0,J++;continue}if(F=!1,W==="\\"){J+=2;continue}if(W==='"'){let[X,Y]=tY(T,J+1,!0);S.push(X),J=Y;continue}if(W==="}")return[S,J+1];if(W==="{"){let[X,Y]=dY(T,J+1);S.push(X),J=Y;continue}let[f,A]=tY(T,J,!1);S.push(f),J=A}return[S,J]}function uY(T){let[$]=dY(T,1);return $}function CA(T){return`{${T.map(($)=>{if(Array.isArray($))return CA($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class g extends LA{foreignKeyConfigs=[];static[G]="PgColumnBuilder";array(T){return new lY(this.config.name,this,T)}references(T,$={}){return this.foreignKeyConfigs.push({ref:T,actions:$}),this}unique(T,$){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,$){return this.foreignKeyConfigs.map(({ref:S,actions:J})=>{return WW((F,W)=>{let f=new NA(()=>{let A=F();return{columns:[T],foreignColumns:[A]}});if(W.onUpdate)f.onUpdate(W.onUpdate);if(W.onDelete)f.onDelete(W.onDelete);return f.build($)},S,J)})}buildExtraConfigColumn(T){return new iY(T,this.config)}}class Z extends kT{constructor(T,$){if(!$.uniqueName)$.uniqueName=oY(T,[$.name]);super(T,$);this.table=T}static[G]="PgColumn"}class iY extends Z{static[G]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(T){return this.indexConfig.opClass=T,this}}class b0{static[G]="IndexedColumn";constructor(T,$,S,J){this.name=T,this.keyAsName=$,this.type=S,this.indexConfig=J}name;keyAsName;type;indexConfig}class lY extends g{static[G]="PgArrayBuilder";constructor(T,$,S){super(T,"array","PgArray");this.config.baseBuilder=$,this.config.size=S}build(T){let $=this.config.baseBuilder.build(T);return new xA(T,this.config,$)}}class xA extends Z{constructor(T,$,S,J){super(T,$);this.baseColumn=S,this.range=J,this.size=$.size}size;static[G]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=uY(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let S=T.map((J)=>J===null?null:k(this.baseColumn,xA)?this.baseColumn.mapToDriverValue(J,!0):this.baseColumn.mapToDriverValue(J));if($)return S;return CA(S)}}var jA=Symbol.for("drizzle:isPgEnum");function rY(T){return!!T&&typeof T==="function"&&jA in T&&T[jA]===!0}class aY extends g{static[G]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new sY(T,this.config)}}class sY extends Z{static[G]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function fW(T,$){return OO(T,$,void 0)}function OO(T,$,S){let J=Object.assign((F)=>new aY(F??"",J),{enumName:T,enumValues:$,schema:S,[jA]:!0});return J}class T${static[G]="Subquery";constructor(T,$,S,J=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:S,isWith:J}}}class h0 extends T${static[G]="WithSubquery"}var eY="0.39.3";var IA,ZA,UT={startActiveSpan(T,$){if(!IA)return $();if(!ZA)ZA=IA.trace.getTracer("drizzle-orm",eY);return WW((S,J)=>J.startActiveSpan(T,(F)=>{try{return $(F)}catch(W){throw F.setStatus({code:S.SpanStatusCode.ERROR,message:W instanceof Error?W.message:"Unknown error"}),W}finally{F.end()}}),IA,ZA)}};var LT=Symbol.for("drizzle:ViewBaseConfig");var AW=Symbol.for("drizzle:Schema"),XW=Symbol.for("drizzle:Columns"),T4=Symbol.for("drizzle:ExtraConfigColumns"),qA=Symbol.for("drizzle:OriginalName"),bA=Symbol.for("drizzle:BaseName"),v0=Symbol.for("drizzle:IsAlias"),$4=Symbol.for("drizzle:ExtraConfigBuilder"),GO=Symbol.for("drizzle:IsDrizzleTable");class P{static[G]="Table";static Symbol={Name:FS,Schema:AW,OriginalName:qA,Columns:XW,ExtraConfigColumns:T4,BaseName:bA,IsAlias:v0,ExtraConfigBuilder:$4};[FS];[qA];[AW];[XW];[T4];[bA];[v0]=!1;[GO]=!0;[$4]=void 0;constructor(T,$,S){this[FS]=this[qA]=T,this[AW]=$,this[bA]=S}}function J$(T){return T[FS]}function yJ(T){return`${T[AW]??"public"}.${T[FS]}`}function hA(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function HO(T){let $={sql:"",params:[]};for(let S of T)if($.sql+=S.sql,$.params.push(...S.params),S.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...S.typings)}return $}class $${static[G]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new m([this])}}class m{constructor(T){this.queryChunks=T}static[G]="SQL";decoder=J4;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return UT.startActiveSpan("drizzle.buildSQL",($)=>{let S=this.buildQueryFromSourceParams(this.queryChunks,T);return $?.setAttributes({"drizzle.query.text":S.sql,"drizzle.query.params":JSON.stringify(S.params)}),S})}buildQueryFromSourceParams(T,$){let S=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:J,escapeName:F,escapeParam:W,prepareTyping:f,inlineParams:A,paramStartIndex:X}=S;return HO(T.map((Y)=>{if(k(Y,$$))return{sql:Y.value.join(""),params:[]};if(k(Y,YW))return{sql:F(Y.value),params:[]};if(Y===void 0)return{sql:"",params:[]};if(Array.isArray(Y)){let w=[new $$("(")];for(let[K,M]of Y.entries())if(w.push(M),K<Y.length-1)w.push(new $$(", "));return w.push(new $$(")")),this.buildQueryFromSourceParams(w,S)}if(k(Y,m))return this.buildQueryFromSourceParams(Y.queryChunks,{...S,inlineParams:A||Y.shouldInlineParams});if(k(Y,P)){let w=Y[P.Symbol.Schema],K=Y[P.Symbol.Name];return{sql:w===void 0||Y[v0]?F(K):F(w)+"."+F(K),params:[]}}if(k(Y,kT)){let w=J.getColumnCasing(Y);if($.invokeSource==="indexes")return{sql:F(w),params:[]};let K=Y.table[P.Symbol.Schema];return{sql:Y.table[v0]||K===void 0?F(Y.table[P.Symbol.Name])+"."+F(w):F(K)+"."+F(Y.table[P.Symbol.Name])+"."+F(w),params:[]}}if(k(Y,N$)){let w=Y[LT].schema,K=Y[LT].name;return{sql:w===void 0||Y[LT].isAlias?F(K):F(w)+"."+F(K),params:[]}}if(k(Y,v$)){if(k(Y.value,uS))return{sql:W(X.value++,Y),params:[Y],typings:["none"]};let w=Y.value===null?null:Y.encoder.mapToDriverValue(Y.value);if(k(w,m))return this.buildQueryFromSourceParams([w],S);if(A)return{sql:this.mapInlineParam(w,S),params:[]};let K=["none"];if(f)K=[f(Y.encoder)];return{sql:W(X.value++,w),params:[w],typings:K}}if(k(Y,uS))return{sql:W(X.value++,Y),params:[Y],typings:["none"]};if(k(Y,m.Aliased)&&Y.fieldAlias!==void 0)return{sql:F(Y.fieldAlias),params:[]};if(k(Y,T$)){if(Y._.isWith)return{sql:F(Y._.alias),params:[]};return this.buildQueryFromSourceParams([new $$("("),Y._.sql,new $$(") "),new YW(Y._.alias)],S)}if(rY(Y)){if(Y.schema)return{sql:F(Y.schema)+"."+F(Y.enumName),params:[]};return{sql:F(Y.enumName),params:[]}}if(hA(Y)){if(Y.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([Y.getSQL()],S);return this.buildQueryFromSourceParams([new $$("("),Y.getSQL(),new $$(")")],S)}if(A)return{sql:this.mapInlineParam(Y,S),params:[]};return{sql:W(X.value++,Y),params:[Y],typings:["none"]}}))}mapInlineParam(T,{escapeString:$}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return $(T);if(typeof T==="object"){let S=T.toString();if(S==="[object Object]")return $(JSON.stringify(T));return $(S)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new m.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class YW{constructor(T){this.value=T}static[G]="Name";brand;getSQL(){return new m([this])}}function S4(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var J4={mapFromDriverValue:(T)=>T},F4={mapToDriverValue:(T)=>T},Cx={...J4,...F4};class v${constructor(T,$=F4){this.value=T,this.encoder=$}static[G]="Param";brand;getSQL(){return new m([this])}}function H(T,...$){let S=[];if($.length>0||T.length>0&&T[0]!=="")S.push(new $$(T[0]));for(let[J,F]of $.entries())S.push(F,new $$(T[J+1]));return new m(S)}((T)=>{function $(){return new m([])}T.empty=$;function S(X){return new m(X)}T.fromList=S;function J(X){return new m([new $$(X)])}T.raw=J;function F(X,Y){let w=[];for(let[K,M]of X.entries()){if(K>0&&Y!==void 0)w.push(Y);w.push(M)}return new m(w)}T.join=F;function W(X){return new YW(X)}T.identifier=W;function f(X){return new uS(X)}T.placeholder=f;function A(X,Y){return new v$(X,Y)}T.param=A})(H||(H={}));((T)=>{class ${constructor(S,J){this.sql=S,this.fieldAlias=J}static[G]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(m||(m={}));class uS{constructor(T){this.name=T}static[G]="Placeholder";getSQL(){return new m([this])}}function vA(T,$){return T.map((S)=>{if(k(S,uS)){if(!(S.name in $))throw new Error(`No value for placeholder "${S.name}" was provided`);return $[S.name]}if(k(S,v$)&&k(S.value,uS)){if(!(S.value.name in $))throw new Error(`No value for placeholder "${S.value.name}" was provided`);return S.encoder.mapToDriverValue($[S.value.name])}return S})}var zO=Symbol.for("drizzle:IsDrizzleView");class N${static[G]="View";[LT];[zO]=!0;constructor({name:T,schema:$,selectedFields:S,query:J}){this[LT]={name:T,originalName:T,schema:$,selectedFields:S,query:J,isExisting:!J,isAlias:!1}}getSQL(){return new m([this])}}kT.prototype.getSQL=function(){return new m([this])};P.prototype.getSQL=function(){return new m([this])};T$.prototype.getSQL=function(){return new m([this])};class VF{constructor(T){this.table=T}static[G]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class P0{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[G]="TableAliasProxyHandler";get(T,$){if($===P.Symbol.IsAlias)return!0;if($===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===P.Symbol.OriginalName)return this.alias;if($===LT)return{...T[LT],name:this.alias,isAlias:!0};if($===P.Symbol.Columns){let J=T[P.Symbol.Columns];if(!J)return J;let F={};return Object.keys(J).map((W)=>{F[W]=new Proxy(J[W],new VF(new Proxy(T,this)))}),F}let S=T[$];if(k(S,kT))return new Proxy(S,new VF(new Proxy(T,this)));return S}}function wW(T,$){return new Proxy(T,new P0($,!1))}function HS(T,$){return new Proxy(T,new VF(new Proxy(T.table,new P0($,!1))))}function PA(T,$){return new m.Aliased(m0(T.sql,$),T.fieldAlias)}function m0(T,$){return H.join(T.queryChunks.map((S)=>{if(k(S,kT))return HS(S,$);if(k(S,m))return m0(S,$);if(k(S,m.Aliased))return PA(S,$);return S}))}class KW extends Error{static[G]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class mA extends KW{static[G]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function C$(T,$){if(S4($)&&!hA(T)&&!k(T,v$)&&!k(T,uS)&&!k(T,kT)&&!k(T,P)&&!k(T,N$))return new v$(T,$);return T}var MW=(T,$)=>{return H`${T} = ${C$($,T)}`},W4=(T,$)=>{return H`${T} <> ${C$($,T)}`};function c0(...T){let $=T.filter((S)=>S!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new $$("("),H.join($,new $$(" and ")),new $$(")")])}function f4(...T){let $=T.filter((S)=>S!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new $$("("),H.join($,new $$(" or ")),new $$(")")])}function A4(T){return H`not ${T}`}var OW=(T,$)=>{return H`${T} > ${C$($,T)}`},X4=(T,$)=>{return H`${T} >= ${C$($,T)}`},Y4=(T,$)=>{return H`${T} < ${C$($,T)}`},w4=(T,$)=>{return H`${T} <= ${C$($,T)}`};function K4(T,$){if(Array.isArray($)){if($.length===0)return H`false`;return H`${T} in ${$.map((S)=>C$(S,T))}`}return H`${T} in ${C$($,T)}`}function M4(T,$){if(Array.isArray($)){if($.length===0)return H`true`;return H`${T} not in ${$.map((S)=>C$(S,T))}`}return H`${T} not in ${C$($,T)}`}function O4(T){return H`${T} is null`}function G4(T){return H`${T} is not null`}function H4(T){return H`exists ${T}`}function z4(T){return H`not exists ${T}`}function D4(T,$,S){return H`${T} between ${C$($,T)} and ${C$(S,T)}`}function E4(T,$,S){return H`${T} not between ${C$($,T)} and ${C$(S,T)}`}function Q4(T,$){return H`${T} like ${$}`}function R4(T,$){return H`${T} not like ${$}`}function _4(T,$){return H`${T} ilike ${$}`}function k4(T,$){return H`${T} not ilike ${$}`}function U4(T){return H`${T} asc`}function V4(T){return H`${T} desc`}class B4{static[G]="ConsoleLogWriter";write(T){console.log(T)}}class cA{static[G]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new B4}logQuery(T,$){let S=$.map((F)=>{try{return JSON.stringify(F)}catch{return String(F)}}),J=S.length?` -- params: [${S.join(", ")}]`:"";this.writer.write(`Query: ${T}${J}`)}}class nA{static[G]="NoopLogger";logQuery(){}}class _${static[G]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}then(T,$){return this.execute().then(T,$)}}function y4(T,$,S){let J={},F=T.reduce((W,{path:f,field:A},X)=>{let Y;if(k(A,kT))Y=A;else if(k(A,m))Y=A.decoder;else Y=A.sql.decoder;let w=W;for(let[K,M]of f.entries())if(K<f.length-1){if(!(M in w))w[M]={};w=w[M]}else{let D=$[X],z=w[M]=D===null?null:Y.mapFromDriverValue(D);if(S&&k(A,kT)&&f.length===2){let R=f[0];if(!(R in J))J[R]=z===null?J$(A.table):!1;else if(typeof J[R]==="string"&&J[R]!==J$(A.table))J[R]=!1}}return W},{});if(S&&Object.keys(J).length>0){for(let[W,f]of Object.entries(J))if(typeof f==="string"&&!S[f])F[W]=null}return F}function t$(T,$){return Object.entries(T).reduce((S,[J,F])=>{if(typeof J!=="string")return S;let W=$?[...$,J]:[J];if(k(F,kT)||k(F,m)||k(F,m.Aliased))S.push({path:W,field:F});else if(k(F,P))S.push(...t$(F[P.Symbol.Columns],W));else S.push(...t$(F,W));return S},[])}function n0(T,$){let S=Object.keys(T),J=Object.keys($);if(S.length!==J.length)return!1;for(let[F,W]of S.entries())if(W!==J[F])return!1;return!0}function GW(T,$){let S=Object.entries($).filter(([,J])=>J!==void 0).map(([J,F])=>{if(k(F,m)||k(F,kT))return[J,F];else return[J,new v$(F,T[P.Symbol.Columns][J])]});if(S.length===0)throw new Error("No values to set");return Object.fromEntries(S)}function L4(T,$){for(let S of $)for(let J of Object.getOwnPropertyNames(S.prototype)){if(J==="constructor")continue;Object.defineProperty(T.prototype,J,Object.getOwnPropertyDescriptor(S.prototype,J)||Object.create(null))}}function N4(T){return T[P.Symbol.Columns]}function jS(T){return k(T,T$)?T._.alias:k(T,N$)?T[LT].name:k(T,m)?void 0:T[P.Symbol.IsAlias]?T[P.Symbol.Name]:T[P.Symbol.BaseName]}function YT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function C4(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let $=typeof T.logger;if($!=="boolean"&&($!=="object"||typeof T.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in T){let $=typeof T.logger;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in T){let $=typeof T.logger;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let $=typeof T.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in T){let $=typeof T.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class iS extends g{static[G]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:$,...S}=T;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:S}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:$,...S}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:S}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class x4 extends iS{static[G]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new j4(T,this.config)}}class j4 extends Z{static[G]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class I4 extends iS{static[G]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new Z4(T,this.config)}}class Z4 extends Z{static[G]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function q4(T,$){let{name:S,config:J}=YT(T,$);if(J.mode==="number")return new x4(S);return new I4(S)}class b4 extends g{static[G]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new h4(T,this.config)}}class h4 extends Z{static[G]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class v4 extends g{static[G]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new P4(T,this.config)}}class P4 extends Z{static[G]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function m4(T,$){let{name:S,config:J}=YT(T,$);if(J.mode==="number")return new b4(S);return new v4(S)}class c4 extends g{static[G]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new n4(T,this.config)}}class n4 extends Z{static[G]="PgBoolean";getSQLType(){return"boolean"}}function g0(T){return new c4(T??"")}class g4 extends g{static[G]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new p4(T,this.config)}}class p4 extends Z{static[G]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function o4(T,$={}){let{name:S,config:J}=YT(T,$);return new g4(S,J)}class t4 extends g{static[G]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new d4(T,this.config)}}class d4 extends Z{static[G]="PgCidr";getSQLType(){return"cidr"}}function u4(T){return new t4(T??"")}class i4 extends g{static[G]="PgCustomColumnBuilder";constructor(T,$,S){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=S}build(T){return new l4(T,this.config)}}class l4 extends Z{static[G]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,$){super(T,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function r4(T){return($,S)=>{let{name:J,config:F}=YT($,S);return new i4(J,F,T)}}class IS extends g{static[G]="PgDateColumnBaseBuilder";defaultNow(){return this.default(H`now()`)}}class a4 extends IS{static[G]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new HW(T,this.config)}}class HW extends Z{static[G]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class s4 extends IS{static[G]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new zW(T,this.config)}}class zW extends Z{static[G]="PgDateString";getSQLType(){return"date"}}function e4(T,$){let{name:S,config:J}=YT(T,$);if(J?.mode==="date")return new a4(S);return new s4(S)}class T6 extends g{static[G]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new $6(T,this.config)}}class $6 extends Z{static[G]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function S6(T){return new T6(T??"")}class J6 extends g{static[G]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new F6(T,this.config)}}class F6 extends Z{static[G]="PgInet";getSQLType(){return"inet"}}function W6(T){return new J6(T??"")}class f6 extends iS{static[G]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new A6(T,this.config)}}class A6 extends Z{static[G]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function DW(T){return new f6(T??"")}class X6 extends g{static[G]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new Y6(T,this.config)}}class Y6 extends Z{static[G]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${T}${$}`}}function w6(T,$={}){let{name:S,config:J}=YT(T,$);return new X6(S,J)}class K6 extends g{static[G]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new EW(T,this.config)}}class EW extends Z{static[G]="PgJson";constructor(T,$){super(T,$)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function M6(T){return new K6(T??"")}class O6 extends g{static[G]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new QW(T,this.config)}}class QW extends Z{static[G]="PgJsonb";constructor(T,$){super(T,$)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function G6(T){return new O6(T??"")}class H6 extends g{static[G]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new z6(T,this.config)}}class z6 extends Z{static[G]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,S,J]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(S),Number.parseFloat(J)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class D6 extends g{static[G]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new E6(T,this.config)}}class E6 extends Z{static[G]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,S,J]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(S),c:Number.parseFloat(J)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function Q6(T,$){let{name:S,config:J}=YT(T,$);if(!J?.mode||J.mode==="tuple")return new H6(S);return new D6(S)}class R6 extends g{static[G]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new _6(T,this.config)}}class _6 extends Z{static[G]="PgMacaddr";getSQLType(){return"macaddr"}}function k6(T){return new R6(T??"")}class U6 extends g{static[G]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new V6(T,this.config)}}class V6 extends Z{static[G]="PgMacaddr8";getSQLType(){return"macaddr8"}}function B6(T){return new U6(T??"")}class y6 extends g{static[G]="PgNumericBuilder";constructor(T,$,S){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=S}build(T){return new RW(T,this.config)}}class RW extends Z{static[G]="PgNumeric";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function L6(T,$){let{name:S,config:J}=YT(T,$);return new y6(S,J?.precision,J?.scale)}class N6 extends g{static[G]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new C6(T,this.config)}}class C6 extends Z{static[G]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,S]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(S)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class x6 extends g{static[G]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new j6(T,this.config)}}class j6 extends Z{static[G]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,S]=T.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(S)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function I6(T,$){let{name:S,config:J}=YT(T,$);if(!J?.mode||J.mode==="tuple")return new N6(S);return new x6(S)}function DO(T){let $=[];for(let S=0;S<T.length;S+=2)$.push(Number.parseInt(T.slice(S,S+2),16));return new Uint8Array($)}function Z6(T,$){let S=new ArrayBuffer(8),J=new DataView(S);for(let F=0;F<8;F++)J.setUint8(F,T[$+F]);return J.getFloat64(0,!0)}function gA(T){let $=DO(T),S=0,J=$[S];S+=1;let F=new DataView($.buffer),W=F.getUint32(S,J===1);S+=4;let f;if(W&536870912)f=F.getUint32(S,J===1),S+=4;if((W&65535)===1){let A=Z6($,S);S+=8;let X=Z6($,S);return S+=8,[A,X]}throw new Error("Unsupported geometry type")}class q6 extends g{static[G]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new b6(T,this.config)}}class b6 extends Z{static[G]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return gA(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class h6 extends g{static[G]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new v6(T,this.config)}}class v6 extends Z{static[G]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=gA(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function P6(T,$){let{name:S,config:J}=YT(T,$);if(!J?.mode||J.mode==="tuple")return new q6(S);return new h6(S)}class m6 extends g{static[G]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new c6(T,this.config)}}class c6 extends Z{static[G]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function n6(T){return new m6(T??"")}class g6 extends g{static[G]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new p6(T,this.config)}}class p6 extends Z{static[G]="PgSerial";getSQLType(){return"serial"}}function o6(T){return new g6(T??"")}class t6 extends iS{static[G]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new d6(T,this.config)}}class d6 extends Z{static[G]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function u6(T){return new t6(T??"")}class i6 extends g{static[G]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new l6(T,this.config)}}class l6 extends Z{static[G]="PgSmallSerial";getSQLType(){return"smallserial"}}function r6(T){return new i6(T??"")}class a6 extends g{static[G]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new s6(T,this.config)}}class s6 extends Z{static[G]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function e6(T,$={}){let{name:S,config:J}=YT(T,$);return new a6(S,J)}class Tw extends IS{constructor(T,$,S){super(T,"string","PgTime");this.withTimezone=$,this.precision=S,this.config.withTimezone=$,this.config.precision=S}static[G]="PgTimeBuilder";build(T){return new _W(T,this.config)}}class _W extends Z{static[G]="PgTime";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function $w(T,$={}){let{name:S,config:J}=YT(T,$);return new Tw(S,J.withTimezone??!1,J.precision)}class Sw extends IS{static[G]="PgTimestampBuilder";constructor(T,$,S){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=S}build(T){return new kW(T,this.config)}}class kW extends Z{static[G]="PgTimestamp";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class Jw extends IS{static[G]="PgTimestampStringBuilder";constructor(T,$,S){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=S}build(T){return new UW(T,this.config)}}class UW extends Z{static[G]="PgTimestampString";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function WS(T,$={}){let{name:S,config:J}=YT(T,$);if(J?.mode==="string")return new Jw(S,J.withTimezone??!1,J.precision);return new Sw(S,J?.withTimezone??!1,J?.precision)}class Fw extends g{static[G]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(H`gen_random_uuid()`)}build(T){return new VW(T,this.config)}}class VW extends Z{static[G]="PgUUID";getSQLType(){return"uuid"}}function P$(T){return new Fw(T??"")}class Ww extends g{static[G]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new fw(T,this.config)}}class fw extends Z{static[G]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function X$(T,$={}){let{name:S,config:J}=YT(T,$);return new Ww(S,J)}class Aw extends g{static[G]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new Xw(T,this.config)}}class Xw extends Z{static[G]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function Yw(T,$){let{name:S,config:J}=YT(T,$);return new Aw(S,J)}class ww extends g{static[G]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new Kw(T,this.config)}}class Kw extends Z{static[G]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function Mw(T,$){let{name:S,config:J}=YT(T,$);return new ww(S,J)}class Ow extends g{static[G]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new Gw(T,this.config)}}class Gw extends Z{static[G]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function Hw(T,$){let{name:S,config:J}=YT(T,$);return new Ow(S,J)}class zw extends g{static[G]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new Dw(T,this.config)}}class Dw extends Z{static[G]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function Ew(T,$){let{name:S,config:J}=YT(T,$);return new zw(S,J)}function Qw(){return{bigint:q4,bigserial:m4,boolean:g0,char:o4,cidr:u4,customType:r4,date:e4,doublePrecision:S6,inet:W6,integer:DW,interval:w6,json:M6,jsonb:G6,line:Q6,macaddr:k6,macaddr8:B6,numeric:L6,point:I6,geometry:P6,real:n6,serial:o6,smallint:u6,smallserial:r6,text:e6,time:$w,timestamp:WS,uuid:P$,varchar:X$,bit:Yw,halfvec:Mw,sparsevec:Hw,vector:Ew}}var pA=Symbol.for("drizzle:PgInlineForeignKeys"),Rw=Symbol.for("drizzle:EnableRLS");class Y$ extends P{static[G]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:pA,EnableRLS:Rw});[pA]=[];[Rw]=!1;[P.Symbol.ExtraConfigBuilder]=void 0}function EO(T,$,S,J,F=T){let W=new Y$(T,J,F),f=typeof $==="function"?$(Qw()):$,A=Object.fromEntries(Object.entries(f).map(([w,K])=>{let M=K;M.setName(w);let D=M.build(W);return W[pA].push(...M.buildForeignKeys(D,W)),[w,D]})),X=Object.fromEntries(Object.entries(f).map(([w,K])=>{let M=K;M.setName(w);let D=M.buildExtraConfigColumn(W);return[w,D]})),Y=Object.assign(W,A);if(Y[P.Symbol.Columns]=A,Y[P.Symbol.ExtraConfigColumns]=X,S)Y[Y$.Symbol.ExtraConfigBuilder]=S;return Object.assign(Y,{enableRLS:()=>{return Y[Y$.Symbol.EnableRLS]=!0,Y}})}var lS=(T,$,S)=>{return EO(T,$,S,void 0)};function _w(...T){if(T[0].columns)return new p0(T[0].columns,T[0].name);return new p0(T)}class p0{static[G]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new kw(T,this.columns,this.name)}}class kw{constructor(T,$,S){this.table=T,this.columns=$,this.name=S}static[G]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Y$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class oA{constructor(T,$,S){this.sourceTable=T,this.referencedTable=$,this.relationName=S,this.referencedTableName=$[P.Symbol.Name]}static[G]="Relation";referencedTableName;fieldName}class Uw{constructor(T,$){this.table=T,this.config=$}static[G]="Relations"}class rS extends oA{constructor(T,$,S,J){super(T,$,S?.relationName);this.config=S,this.isNullable=J}static[G]="One";withFieldName(T){let $=new rS(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class o0 extends oA{constructor(T,$,S){super(T,$,S?.relationName);this.config=S}static[G]="Many";withFieldName(T){let $=new o0(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function Vw(){return{and:c0,between:D4,eq:MW,exists:H4,gt:OW,gte:X4,ilike:_4,inArray:K4,isNull:O4,isNotNull:G4,like:Q4,lt:Y4,lte:w4,ne:W4,not:A4,notBetween:E4,notExists:z4,notLike:R4,notIlike:k4,notInArray:M4,or:f4,sql:H}}function Bw(){return{sql:H,asc:U4,desc:V4}}function yw(T,$){if(Object.keys(T).length===1&&"default"in T&&!k(T.default,P))T=T.default;let S={},J={},F={};for(let[W,f]of Object.entries(T))if(k(f,P)){let A=yJ(f),X=J[A];S[A]=W,F[W]={tsName:W,dbName:f[P.Symbol.Name],schema:f[P.Symbol.Schema],columns:f[P.Symbol.Columns],relations:X?.relations??{},primaryKey:X?.primaryKey??[]};for(let w of Object.values(f[P.Symbol.Columns]))if(w.primary)F[W].primaryKey.push(w);let Y=f[P.Symbol.ExtraConfigBuilder]?.(f[P.Symbol.ExtraConfigColumns]);if(Y){for(let w of Object.values(Y))if(k(w,p0))F[W].primaryKey.push(...w.columns)}}else if(k(f,Uw)){let A=yJ(f.table),X=S[A],Y=f.config($(f.table)),w;for(let[K,M]of Object.entries(Y))if(X){let D=F[X];if(D.relations[K]=M,w)D.primaryKey.push(...w)}else{if(!(A in J))J[A]={relations:{},primaryKey:w};J[A].relations[K]=M}}return{tables:F,tableNamesMap:S}}function QO(T){return function $(S,J){return new rS(T,S,J,J?.fields.reduce((F,W)=>F&&W.notNull,!0)??!1)}}function RO(T){return function $(S,J){return new o0(T,S,J)}}function Lw(T,$,S){if(k(S,rS)&&S.config)return{fields:S.config.fields,references:S.config.references};let J=$[yJ(S.referencedTable)];if(!J)throw new Error(`Table "${S.referencedTable[P.Symbol.Name]}" not found in schema`);let F=T[J];if(!F)throw new Error(`Table "${J}" not found in schema`);let W=S.sourceTable,f=$[yJ(W)];if(!f)throw new Error(`Table "${W[P.Symbol.Name]}" not found in schema`);let A=[];for(let X of Object.values(F.relations))if(S.relationName&&S!==X&&X.relationName===S.relationName||!S.relationName&&X.referencedTable===S.sourceTable)A.push(X);if(A.length>1)throw S.relationName?new Error(`There are multiple relations with name "${S.relationName}" in table "${J}"`):new Error(`There are multiple relations between "${J}" and "${S.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(A[0]&&k(A[0],rS)&&A[0].config)return{fields:A[0].config.references,references:A[0].config.fields};throw new Error(`There is not enough information to infer relation "${f}.${S.fieldName}"`)}function Nw(T){return{one:QO(T),many:RO(T)}}function BW(T,$,S,J,F=(W)=>W){let W={};for(let[f,A]of J.entries())if(A.isJson){let X=$.relations[A.tsKey],Y=S[f],w=typeof Y==="string"?JSON.parse(Y):Y;W[A.tsKey]=k(X,rS)?w&&BW(T,T[A.relationTableTsKey],w,A.selection,F):w.map((K)=>BW(T,T[A.relationTableTsKey],K,A.selection,F))}else{let X=F(S[f]),Y=A.field,w;if(k(Y,kT))w=Y;else if(k(Y,m))w=Y.decoder;else w=Y.sql.decoder;W[A.tsKey]=X===null?null:w.mapFromDriverValue(X)}return W}import z5 from"path";import oO from"os";import tO from"fs";var yW=new Map,tA=new Map,dA=Symbol("OriginError"),BF={};class d$ extends Promise{constructor(T,$,S,J,F={}){let W,f;super((A,X)=>{W=A,f=X});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=S,this.canceller=J,this.options=F,this.state=null,this.statement=null,this.resolve=(A)=>(this.active=!1,W(A)),this.reject=(A)=>(this.active=!1,f(A)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[dA]=this.handler.debug?new Error:this.tagged&&_O(this.strings)}get origin(){return(this.handler.debug?this[dA].stack:this.tagged&&tA.has(this.strings)?tA.get(this.strings):tA.set(this.strings,this[dA].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(T=1,$){if(this.options.simple=!1,typeof T==="function")$=T,T=1;if(this.cursorRows=T,typeof $==="function")return this.cursorFn=$,this;let S;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};S&&S();let J=new Promise((F,W)=>{this.cursorFn=(f)=>{return F({value:f,done:!1}),new Promise((A)=>S=A)},this.resolve=()=>(this.active=!1,F({done:!0})),this.reject=(f)=>(this.active=!1,W(f))});return this.execute(),J},return(){return S&&S(BF),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(T){return this.forEachFn=T,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function _O(T){if(yW.has(T))return yW.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,yW.set(T,new Error),Error.stackTraceLimit=$,yW.get(T)}class yF extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var oT={connection:Cw,postgres:xw,generic:jw,notSupported:Iw};function Cw(T,$,S){let{host:J,port:F}=S||$,W=Object.assign(new Error("write "+T+" "+($.path||J+":"+F)),{code:T,errno:T,address:$.path||J},$.path?{}:{port:F});return Error.captureStackTrace(W,Cw),W}function xw(T){let $=new yF(T);return Error.captureStackTrace($,xw),$}function jw(T,$){let S=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(S,jw),S}function Iw(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,Iw),$}var kO={string:{to:25,from:null,serialize:(T)=>""+T},number:{to:0,from:[21,23,26,700,701],serialize:(T)=>""+T,parse:(T)=>+T},json:{to:114,from:[114,3802],serialize:(T)=>JSON.stringify(T),parse:(T)=>JSON.parse(T)},boolean:{to:16,from:16,serialize:(T)=>T===!0?"t":"f",parse:(T)=>T==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(T)=>(T instanceof Date?T:new Date(T)).toISOString(),parse:(T)=>new Date(T)},bytea:{to:17,from:17,serialize:(T)=>"\\x"+Buffer.from(T).toString("hex"),parse:(T)=>Buffer.from(T.slice(2),"hex")}};class CW{then(){uA()}catch(){uA()}finally(){uA()}}class i0 extends CW{constructor(T){super();this.value=IW(T)}}class zS extends CW{constructor(T,$,S){super();this.value=T,this.type=$,this.array=S}}class xW extends CW{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,S,J){let F=UO.map(([W,f])=>({fn:f,i:T.search(W)})).sort((W,f)=>W.i-f.i).pop();return F.i===-1?sA(this.first,J):F.fn(this.first,this.rest,$,S,J)}}function jW(T,$,S,J){let F=T instanceof zS?T.value:T;if(F===void 0){if(T instanceof zS?T.value=J.transform.undefined:F=T=J.transform.undefined,F===void 0)throw oT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+S.push(T instanceof zS?($.push(T.value),T.array?T.array[T.type||NW(T.value)]||T.type||hw(T.value):T.type):($.push(T),NW(T)))}var qw=Pw(kO);function rA(T,$,S,J,F,W){for(let f=1;f<T.strings.length;f++)$+=aA($,S,J,F,W)+T.strings[f],S=T.args[f];return $}function aA(T,$,S,J,F){return $ instanceof xW?$.build(T,S,J,F):$ instanceof d$?lA($,S,J,F):$ instanceof i0?$.value:$&&$[0]instanceof d$?$.reduce((W,f)=>W+" "+lA(f,S,J,F),""):jW($,S,J,F)}function lA(T,$,S,J){return T.fragment=!0,rA(T,T.strings[0],T.args[0],$,S,J)}function bw(T,$,S,J,F){return T.map((W)=>"("+J.map((f)=>aA("values",W[f],$,S,F)).join(",")+")").join(",")}function Zw(T,$,S,J,F){let W=Array.isArray(T[0]),f=$.length?$.flat():Object.keys(W?T[0]:T);return bw(W?T:[T],S,J,f,F)}function LW(T,$,S,J,F){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return sA(T,F);let W;return($.length?$.flat():Object.keys(T)).map((A)=>{return W=T[A],(W instanceof d$?lA(W,S,J,F):W instanceof i0?W.value:jW(W,S,J,F))+" as "+IW(F.transform.column.to?F.transform.column.to(A):A)}).join(",")}var UO=Object.entries({values:Zw,in:(...T)=>{let $=Zw(...T);return $==="()"?"(null)":$},select:LW,as:LW,returning:LW,"\\(":LW,update(T,$,S,J,F){return($.length?$.flat():Object.keys(T)).map((W)=>IW(F.transform.column.to?F.transform.column.to(W):W)+"="+aA("values",T[W],S,J,F))},insert(T,$,S,J,F){let W=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+sA(W,F)+")values"+bw(Array.isArray(T)?T:[T],S,J,W,F)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function uA(){throw oT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:VO,parsers:BO}=qw;function hw(T){if(Array.isArray(T))return hw(T[0]);return typeof T==="string"?1009:0}var vw=function(T){let $=Pw(T||{});return{serializers:Object.assign({},VO,$.serializers),parsers:Object.assign({},BO,$.parsers)}};function Pw(T){return Object.keys(T).reduce(($,S)=>{if(T[S].from&&[].concat(T[S].from).forEach((J)=>$.parsers[J]=T[S].parse),T[S].serialize)$.serializers[T[S].to]=T[S].serialize,T[S].from&&[].concat(T[S].from).forEach((J)=>$.serializers[J]=T[S].serialize);return $},{parsers:{},serializers:{}})}function sA(T,{transform:{column:$}}){return T.map((S)=>IW($.to?$.to(S):S)).join(",")}var IW=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},NW=function T($){return $ instanceof zS?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},yO=/\\/g,LO=/"/g;function NO(T){return T.replace(yO,"\\\\").replace(LO,"\\\"")}var mw=function T($,S,J,F){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let W=$[0],f=F===1020?";":",";if(Array.isArray(W)&&!W.type)return"{"+$.map((A)=>T(A,S,J,F)).join(f)+"}";return"{"+$.map((A)=>{if(A===void 0){if(A=J.transform.undefined,A===void 0)throw oT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return A===null?"null":'"'+NO(S?S(A.type?A.value:A):""+A)+'"'}).join(f)+"}"},iA={i:0,char:null,str:"",quoted:!1,last:0},cw=function T($,S,J){return iA.i=iA.last=0,nw(iA,$,S,J)};function nw(T,$,S,J){let F=[],W=J===1020?";":",";for(;T.i<$.length;T.i++){if(T.char=$[T.i],T.quoted)if(T.char==="\\")T.str+=$[++T.i];else if(T.char==='"')F.push(S?S(T.str):T.str),T.str="",T.quoted=$[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,F.push(nw(T,$,S,J));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&F.push(S?S($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===W&&T.p!=="}"&&T.p!=='"')F.push(S?S($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&F.push(S?S($.slice(T.last,T.i+1)):$.slice(T.last,T.i+1)),F}var LJ=(T)=>{let $=T[0];for(let S=1;S<T.length;S++)$+=T[S]==="_"?T[++S].toUpperCase():T[S];return $},NJ=(T)=>{let $=T[0].toUpperCase();for(let S=1;S<T.length;S++)$+=T[S]==="_"?T[++S].toUpperCase():T[S];return $},CJ=(T)=>T.replace(/_/g,"-"),t0=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),d0=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),u0=(T)=>T.replace(/-/g,"_");function eA(T){return function $(S,J){return typeof S==="object"&&S!==null&&(J.type===114||J.type===3802)?Array.isArray(S)?S.map((F)=>$(F,J)):Object.entries(S).reduce((F,[W,f])=>Object.assign(F,{[T(W)]:$(f,J)}),{}):S}}LJ.column={from:LJ};LJ.value={from:eA(LJ)};t0.column={to:t0};var T2={...LJ};T2.column.to=t0;NJ.column={from:NJ};NJ.value={from:eA(NJ)};d0.column={to:d0};var $2={...NJ};$2.column.to=d0;CJ.column={from:CJ};CJ.value={from:eA(CJ)};u0.column={to:u0};var S2={...CJ};S2.column.to=u0;import gw from"net";import IO from"tls";import l0 from"crypto";import J2 from"stream";import{performance as pw}from"perf_hooks";class xJ extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var m$=CO;function CO(T=[]){let $=T.slice(),S=0;return{get length(){return $.length-S},remove:(J)=>{let F=$.indexOf(J);return F===-1?null:($.splice(F,1),J)},push:(J)=>($.push(J),J),shift:()=>{let J=$[S++];if(S===$.length)S=0,$=[];else $[S-1]=void 0;return J}}}var D$=Buffer.allocUnsafe(256),xO="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let S=$.charCodeAt(0);return T[$]=()=>{return D$[0]=S,RT.i=5,RT},T},{}),RT=Object.assign(jO,xO,{N:String.fromCharCode(0),i:0,inc(T){return RT.i+=T,RT},str(T){let $=Buffer.byteLength(T);return ZW($),RT.i+=D$.write(T,RT.i,$,"utf8"),RT},i16(T){return ZW(2),D$.writeUInt16BE(T,RT.i),RT.i+=2,RT},i32(T,$){if($||$===0)return D$.writeUInt32BE(T,$),RT;return ZW(4),D$.writeUInt32BE(T,RT.i),RT.i+=4,RT},z(T){return ZW(T),D$.fill(0,RT.i,RT.i+T),RT.i+=T,RT},raw(T){return D$=Buffer.concat([D$.subarray(0,RT.i),T]),RT.i=D$.length,RT},end(T=1){D$.writeUInt32BE(RT.i-T,T);let $=D$.subarray(0,RT.i);return RT.i=0,D$=Buffer.allocUnsafe(256),$}}),u=RT;function ZW(T){if(D$.length-RT.i<T){let $=D$,S=$.length;D$=Buffer.allocUnsafe(S+(S>>1)+T),$.copy(D$)}}function jO(){return RT.i=0,RT}var f2=dw,ZO=1,aS=u().S().end(),ow=u().H().end(),qO=u().i32(8).i32(80877103).end(8),bO=Buffer.concat([u().E().str(u.N).i32(0).end(),aS]),hO=u().D().str("S").str(u.N).end(),LF=()=>{},vO=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),PO={83:"severity_local",86:"severity",67:"code",77:"message",68:"detail",72:"hint",80:"position",112:"internal_position",113:"internal_query",87:"where",115:"schema_name",116:"table_name",99:"column_name",100:"data type_name",110:"constraint_name",70:"file",76:"line",82:"routine"};function dw(T,$={},{onopen:S=LF,onend:J=LF,onclose:F=LF}={}){let{ssl:W,max:f,user:A,host:X,port:Y,database:w,parsers:K,transform:M,onnotice:D,onnotify:z,onparameter:R,max_pipeline:L,keep_alive:j,backoff:y,target_session_attrs:I}=T,Q=m$(),V=ZO++,B={pid:null,secret:null},U=W2(uW,T.idle_timeout),h=W2(uW,T.max_lifetime),l=W2(kK,T.connect_timeout),_=null,s,p=new xJ,$T=Buffer.alloc(0),ET=T.fetch_types,hT={},U$={},DS=Math.random().toString(36).slice(2),N=1,d=0,OT=0,jT=0,tT=0,fT=0,VT=0,gT=0,ZT=null,NT=null,w$=!1,BT=null,u$=null,K$=null,bS=null,dT=null,CT=null,i$=null,fS=null,q=null,jF=null,M$={queue:$.closed,idleTimer:U,connect(O){K$=O||!0,Z2()},terminate:ZF,execute:IF,cancel:EK,end:uW,count:0,id:V};return $.closed&&$.closed.push(M$),M$;async function DK(){let O;try{O=T.socket?await Promise.resolve(T.socket(T)):new gw.Socket}catch(E){qJ(E);return}return O.on("error",qJ),O.on("close",q2),O.on("drain",j2),O}async function EK({pid:O,secret:E},i,GT){try{s=u().i32(16).i32(80877102).i32(O).i32(E).end(16),await I2(),_.once("error",GT),_.once("close",i)}catch(vT){GT(vT)}}function IF(O){if(w$)return S1(O,oT.connection("CONNECTION_DESTROYED",T));if(O.cancelled)return;try{return O.state=B,q?Q.push(O):(q=O,q.active=!0),_K(O),F$(QK(O))&&!O.describeFirst&&!O.cursorFn&&Q.length<L&&(!O.options.onexecute||O.options.onexecute(M$))}catch(E){return Q.length===0&&F$(aS),AS(E),!0}}function QK(O){if(O.parameters.length>=65534)throw oT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return O.options.simple?u().Q().str(O.statement.string+u.N).end():O.describeFirst?Buffer.concat([N2(O),ow]):O.prepare?O.prepared?$1(O):Buffer.concat([N2(O),$1(O)]):RK(O)}function N2(O){return Buffer.concat([h2(O.statement.string,O.parameters,O.statement.types,O.statement.name),fM("S",O.statement.name)])}function $1(O){return Buffer.concat([WM(O.parameters,O.statement.types,O.statement.name,O.cursorName),O.cursorFn?v2("",O.cursorRows):bO])}function RK(O){return Buffer.concat([h2(O.statement.string,O.parameters,O.statement.types),hO,$1(O)])}function _K(O){let E=[],i=[],GT=rA(O,O.strings[0],O.args[0],E,i,T);!O.tagged&&O.args.forEach((vT)=>jW(vT,E,i,T)),O.prepare=T.prepare&&("prepare"in O.options?O.options.prepare:!0),O.string=GT,O.signature=O.prepare&&i+GT,O.onlyDescribe&&delete U$[O.signature],O.parameters=O.parameters||E,O.prepared=O.prepare&&O.signature in U$,O.describeFirst=O.onlyDescribe||E.length&&!O.prepared,O.statement=O.prepared?U$[O.signature]:{string:GT,types:i,name:O.prepare?DS+N++:""},typeof T.debug==="function"&&T.debug(V,GT,E,i)}function F$(O,E){if(CT=CT?Buffer.concat([CT,O]):Buffer.from(O),E||CT.length>=1024)return C2(E);return NT===null&&(NT=setImmediate(C2)),!0}function C2(O){let E=_.write(CT,O);return NT!==null&&clearImmediate(NT),CT=NT=null,E}function kK(){AS(oT.connection("CONNECT_TIMEOUT",T,_)),_.destroy()}async function x2(){if(F$(qO),!await new Promise((E)=>_.once("data",(i)=>E(i[0]===83)))&&W==="prefer")return ZJ();_.removeAllListeners(),_=IO.connect({socket:_,servername:gw.isIP(_.host)?void 0:_.host,...W==="require"||W==="allow"||W==="prefer"?{rejectUnauthorized:!1}:W==="verify-full"?{}:typeof W==="object"?W:{}}),_.on("secureConnect",ZJ),_.on("error",qJ),_.on("close",q2),_.on("drain",j2)}function j2(){!q&&S(M$)}function dW(O){if(BT){if(BT.push(O),OT-=O.length,OT>=0)return}$T=BT?Buffer.concat(BT,fT-OT):$T.length===0?O:Buffer.concat([$T,O],$T.length+O.length);while($T.length>4){if(fT=$T.readUInt32BE(1),fT>=$T.length){OT=fT-$T.length,BT=[$T];break}try{UK($T.subarray(0,fT+1))}catch(E){q&&(q.cursorFn||q.describeFirst)&&F$(aS),AS(E)}$T=$T.subarray(fT+1),OT=0,BT=null}}async function I2(){if(w$=!1,hT={},_||(_=await DK()),!_)return;if(l.start(),T.socket)return W?x2():ZJ();if(_.on("connect",W?x2:ZJ),T.path)return _.connect(T.path);_.ssl=W,_.connect(Y[jT],X[jT]),_.host=X[jT],_.port=Y[jT],jT=(jT+1)%Y.length}function Z2(){setTimeout(I2,d?d+VT-pw.now():0)}function ZJ(){try{U$={},ET=T.fetch_types,DS=Math.random().toString(36).slice(2),N=1,h.start(),_.on("data",dW),j&&_.setKeepAlive&&_.setKeepAlive(!0,1000*j);let O=XM();F$(O)}catch(O){qJ(O)}}function qJ(O){if(M$.queue===$.connecting&&T.host[tT+1])return;AS(O);while(Q.length)S1(Q.shift(),O)}function AS(O){dT&&(dT.destroy(O),dT=null),q&&S1(q,O),K$&&(S1(K$,O),K$=null)}function S1(O,E){"query"in E||"parameters"in E||Object.defineProperties(E,{stack:{value:E.stack+O.origin.replace(/.*\n/,`
68
- `),enumerable:T.debug},query:{value:O.string,enumerable:T.debug},parameters:{value:O.parameters,enumerable:T.debug},args:{value:O.args,enumerable:T.debug},types:{value:O.statement&&O.statement.types,enumerable:T.debug}}),O.reject(E)}function uW(){return bS||(!M$.reserved&&J(M$),!M$.reserved&&!K$&&!q&&Q.length===0?(ZF(),new Promise((O)=>_&&_.readyState!=="closed"?_.once("close",O):O())):bS=new Promise((O)=>i$=O))}function ZF(){if(w$=!0,dT||q||K$||Q.length)qJ(oT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(NT),_)_.removeListener("data",dW),_.removeListener("connect",ZJ),_.readyState==="open"&&_.end(u().X().end());i$&&(i$(),bS=i$=null)}async function q2(O){if($T=Buffer.alloc(0),OT=0,BT=null,clearImmediate(NT),_.removeListener("data",dW),_.removeListener("connect",ZJ),U.cancel(),h.cancel(),l.cancel(),_.removeAllListeners(),_=null,K$)return Z2();!O&&(q||Q.length)&&qJ(oT.connection("CONNECTION_CLOSED",T,_)),d=pw.now(),O&&T.shared.retries++,VT=(typeof y==="function"?y(T.shared.retries):y)*1000,F(M$,oT.connection("CONNECTION_CLOSED",T,_))}function UK(O,E=O[0]){(E===68?VK:E===100?aK:E===65?tK:E===83?BK:E===90?yK:E===67?LK:E===50?b2:E===49?NK:E===116?CK:E===84?xK:E===82?jK:E===110?vK:E===75?PK:E===69?pK:E===115?dK:E===51?uK:E===71?iK:E===78?eK:E===72?lK:E===99?sK:E===73?TM:E===86?$M:E===118?SM:E===87?rK:JM)(O)}function VK(O){let E=7,i,GT,vT,O$=q.isRaw?new Array(q.statement.columns.length):{};for(let E$=0;E$<q.statement.columns.length;E$++)GT=q.statement.columns[E$],i=O.readInt32BE(E),E+=4,vT=i===-1?null:q.isRaw===!0?O.subarray(E,E+=i):GT.parser===void 0?O.toString("utf8",E,E+=i):GT.parser.array===!0?GT.parser(O.toString("utf8",E+1,E+=i)):GT.parser(O.toString("utf8",E,E+=i)),q.isRaw?O$[E$]=q.isRaw===!0?vT:M.value.from?M.value.from(vT,GT):vT:O$[GT.name]=M.value.from?M.value.from(vT,GT):vT;q.forEachFn?q.forEachFn(M.row.from?M.row.from(O$):O$,p):p[gT++]=M.row.from?M.row.from(O$):O$}function BK(O){let[E,i]=O.toString("utf8",5,O.length-1).split(u.N);if(hT[E]=i,T.parameters[E]!==i)T.parameters[E]=i,R&&R(E,i)}function yK(O){if(q&&q.options.simple&&q.resolve(u$||p),q=u$=null,p=new xJ,l.cancel(),K$){if(I){if(!hT.in_hot_standby||!hT.default_transaction_read_only)return gK();else if(nK(I,hT))return ZF()}if(ET)return K$===!0&&(K$=null),mK();K$!==!0&&IF(K$),T.shared.retries=tT=0,K$=null;return}while(Q.length&&(q=Q.shift())&&(q.active=!0,q.cancelled))dw(T).cancel(q.state,q.cancelled.resolve,q.cancelled.reject);if(q)return;M$.reserved?!M$.reserved.release&&O[5]===73?bS?ZF():(M$.reserved=null,S(M$)):M$.reserved():bS?ZF():S(M$)}function LK(O){gT=0;for(let E=O.length-1;E>0;E--){if(O[E]===32&&O[E+1]<58&&p.count===null)p.count=+O.toString("utf8",E+1,O.length-1);if(O[E-1]>=65){p.command=O.toString("utf8",5,E),p.state=B;break}}if(jF&&(jF(),jF=null),p.command==="BEGIN"&&f!==1&&!M$.reserved)return AS(oT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(q.options.simple)return b2();if(q.cursorFn)p.count&&q.cursorFn(p),F$(aS);q.resolve(p)}function NK(){q.parsing=!1}function b2(){!p.statement&&(p.statement=q.statement),p.columns=q.statement.columns}function CK(O){let E=O.readUInt16BE(5);for(let i=0;i<E;++i)!q.statement.types[i]&&(q.statement.types[i]=O.readUInt32BE(7+i*4));q.prepare&&(U$[q.signature]=q.statement),q.describeFirst&&!q.onlyDescribe&&(F$($1(q)),q.describeFirst=!1)}function xK(O){if(p.command)u$=u$||[p],u$.push(p=new xJ),p.count=null,q.statement.columns=null;let E=O.readUInt16BE(5),i=7,GT;q.statement.columns=Array(E);for(let vT=0;vT<E;++vT){GT=i;while(O[i++]!==0);let O$=O.readUInt32BE(i),E$=O.readUInt16BE(i+4),hS=O.readUInt32BE(i+6);q.statement.columns[vT]={name:M.column.from?M.column.from(O.toString("utf8",GT,i-1)):O.toString("utf8",GT,i-1),parser:K[hS],table:O$,number:E$,type:hS},i+=18}if(p.statement=q.statement,q.onlyDescribe)return q.resolve(q.statement),F$(aS)}async function jK(O,E=O.readUInt32BE(5)){(E===3?IK:E===5?ZK:E===10?qK:E===11?bK:E===12?hK:E!==0?FM:LF)(O,E)}async function IK(){let O=await iW();F$(u().p().str(O).z(1).end())}async function ZK(O){let E="md5"+await tw(Buffer.concat([Buffer.from(await tw(await iW()+A)),O.subarray(9)]));F$(u().p().str(E).z(1).end())}async function qK(){fS=(await l0.randomBytes(18)).toString("base64"),u().p().str("SCRAM-SHA-256"+u.N);let O=u.i;F$(u.inc(4).str("n,,n=*,r="+fS).i32(u.i-O-4,O).end())}async function bK(O){let E=O.toString("utf8",9).split(",").reduce((E$,hS)=>(E$[hS[0]]=hS.slice(2),E$),{}),i=await l0.pbkdf2Sync(await iW(),Buffer.from(E.s,"base64"),parseInt(E.i),32,"sha256"),GT=await qW(i,"Client Key"),vT="n=*,r="+fS+",r="+E.r+",s="+E.s+",i="+E.i+",c=biws,r="+E.r;ZT=(await qW(await qW(i,"Server Key"),vT)).toString("base64");let O$="c=biws,r="+E.r+",p="+cO(GT,Buffer.from(await qW(await mO(GT),vT))).toString("base64");F$(u().p().str(O$).end())}function hK(O){if(O.toString("utf8",9).split(u.N,1)[0].slice(2)===ZT)return;AS(oT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),_.destroy()}function iW(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function vK(){if(p.statement=q.statement,p.statement.columns=[],q.onlyDescribe)return q.resolve(q.statement),F$(aS)}function PK(O){B.pid=O.readUInt32BE(5),B.secret=O.readUInt32BE(9)}async function mK(){ET=!1,(await new d$([`
66
+ ${W}`)}let X=$J.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(mT.readFileSync(X,"utf-8"))}async write(T,$,J,S){let F=$J.join(this.baseDir,T),f=$J.join(F,`${$}.input.json`),W=$J.join(F,`${$}.output.json`),A=JSON.stringify(J,null,"\t");if(!mT.existsSync(this.baseDir))mT.mkdirSync(this.baseDir,{recursive:!0});if(!mT.existsSync(F))mT.mkdirSync(F);if(mT.writeFileSync(f,A),mT.existsSync(W))mT.unlinkSync(W);let X=await S(...J),w=JSON.stringify(X,null,"\t");return mT.writeFileSync(W,w),X}add(T,$){let J=`${this.rootName}${sT}${b0(T)}`;return{flush:()=>{this.flush(T)},for:(S)=>{if(this.mode!=="off"){if(this.filesTouched.set(T,new Set),LT.storage.initialized&&!LT.storage.getItem(`list${sT}${J}`))LT.storage.setItem(`list${sT}${J}`,"true")}return{get:async(...F)=>{let f=S;if(this.mode!=="off"){let W=this.filenameCache.get(S);if(!W)W=b0(S),this.filenameCache.set(S,f),f=W;this.filesTouched.get(T)?.add(f);let A=`${J}${sT}${f}`,X=`file${sT}${A}`;if(LT.storage.initialized&&!LT.storage.getItem(X))LT.storage.setItem(X,"true")}switch(this.mode){case"off":return $(...F);case"read":return this.read(T,f,F);case"write":return this.write(T,f,F,$);case"read-write":try{return this.read(T,f,F)}catch(W){if(W instanceof Error)return this.write(T,f,F,$);throw W}}}}}}}flush(...T){console.log(this.filesTouched);for(let[$,J]of this.filesTouched.entries())if(T.length===0||T.includes($)){let S=$J.join(this.baseDir,$),F=mT.readdirSync(S);for(let f of F){let W=f.replace(".input.json","").replace(".output.json","");if(!J.has(W))console.info(`\uD83E\uDDF9 Flushing ${W}`),mT.unlinkSync($J.join(S,f))}}}}function fG(T,...$){let[J,S,F,f]=$,W=[{role:"user",content:I8(S)},{role:"user",content:J}],A=f.at(-1);if(A)W.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(A.response,null,2),"Here's the error message:",A.error.toString()].join(`
67
+ `)});return{model:T,messages:W}}var E2={"gpt-4o":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-08-06":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-05-13":{promptPricePerToken:0.000005,promptPricePerTokenCached:0.000005,completionPricePerToken:0.000014999999999999999},"gpt-4o-mini":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"gpt-4o-mini-2024-07-18":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"o1-preview":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995},"o1-preview-2024-09-12":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995}};function WG(T){return async function $(J,S){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let F=await T.chat.completions.create({...J,stream:!1,response_format:{type:"json_object"}},S),f=F.choices[0].message?.content,{usage:W}=F;if(f&&W){let A=W.prompt_tokens,X=W.prompt_tokens_details?.cached_tokens??0,w=A-X,Y=W.completion_tokens,M=A*E2[J.model].promptPricePerToken+w*E2[J.model].promptPricePerTokenCached+Y*E2[J.model].completionPricePerToken;return{data:JSON.parse(f),usage:W,usdPrice:M}}if(!f&&!W)throw new Error("No content or usage found in completion");if(!f)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var Pw=new Map,nw=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:S,cachingMode:F,cacheKey:f="openai-safegen",logger:W}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new Q2(F);let A=Pw.get(S);if(F!=="read"){if(!A)A=new Bw({apiKey:S,dangerouslyAllowBrowser:!1}),Pw.set(S,A);this.client=A}this.getUnknownJsonFromOpenAi=WG(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(f,this.getUnknownJsonFromOpenAi),this.from=x8(async(...X)=>{if(this.usdBudget<this.usdMinimum)return W?.warn("SafeGen budget exhausted"),X[1];let w=fG(T,...X),Y=X[0],M=X[3],{data:G,usage:z,usdPrice:D}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${Y.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${M.length}`).get(w);return this.lastUsage=z,this.usdBudget-=D,G})}from};import{exec as _K}from"child_process";var R2=(T)=>{let $=N$(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let J=new Map;for(let[S,F]of T.atoms)if(!S.includes("\uD83D\uDD0D")){let f=U$(F);if(F.family){let W=J.get(F.family.key);if(!W||!("familyMembers"in W))W={key:F.family.key,familyMembers:new Map},J.set(F.family.key,W);W.familyMembers.set(F.family.subKey,f)}else J.set(S,f)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(S)=>{if(S.key.includes("\uD83D\uDD0D"))return;J((F)=>{if(S.family){let{key:f,subKey:W}=S.family,A=F.get(f);if(A===void 0||!("familyMembers"in A))A={key:f,familyMembers:new Map},F.set(f,A);A.familyMembers.set(W,S)}else F.set(S.key,S);return F})}),T.on.atomDisposal.subscribe("introspection",(S)=>{J((F)=>{if(S.family){let{key:f,subKey:W}=S.family,A=F.get(f);if(A&&"familyMembers"in A){if(A.familyMembers.delete(W),A.familyMembers.size===0)F.delete(f)}}else F.delete(S.key);return F})})}]},void 0);return OJ(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:J})=>J($)})};var _2=(T)=>{let $=N$(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let J=new Map;for(let S of[T.readonlySelectors,T.selectors])for(let[F,f]of S)if(!F.includes("\uD83D\uDD0D")){let W=U$(f);if(f.family){let A=J.get(f.family.key);if(!A||!("familyMembers"in A))A={key:f.family.key,familyMembers:new Map},J.set(f.family.key,A);A.familyMembers.set(f.family.subKey,W)}else J.set(F,W)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(S)=>{if(S.key.includes("\uD83D\uDD0D"))return;J((F)=>{if(S.family){let{key:f,subKey:W}=S.family,A=F.get(f);if(A===void 0||!("familyMembers"in A))A={key:f,familyMembers:new Map},F.set(f,A);A.familyMembers.set(W,S)}else F.set(S.key,S);return F})}),T.on.selectorDisposal.subscribe("introspection",(S)=>{J((F)=>{if(S.family){let{key:f,subKey:W}=S.family,A=F.get(f);if(A&&"familyMembers"in A){if(A.familyMembers.delete(W),A.familyMembers.size===0)F.delete(f)}}else F.delete(S.key);return F})})}]},void 0);return OJ(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:J})=>J($)})};class Wf{supported;constructor(T){this.supported=T}refine(T){for(let[$,J]of Object.entries(this.supported))try{if(J(T)===!0&&J!==Boolean)return{type:$,data:T}}catch(S){try{if(T instanceof J)return{type:$,data:T}}catch(F){}}return null}}var k2=new Wf({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function U2(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var V2=new Wf({object:U2,array:(T)=>Array.isArray(T)}),AG=new Wf({...k2.supported,...V2.supported}),UF=(T)=>{if(T===void 0)return"undefined";let $=AG.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class cw{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=AT.STORE){this.store=T;this.atomIndex=R2(this.store),this.selectorIndex=_2(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=cw.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=TW(this.atomIndex),J=TW(this.selectorIndex),S=[...$.values()].filter((A)=>("familyMembers"in A)),F=[...J.values()].filter((A)=>("familyMembers"in A)),f=performance.now(),W=[];if(T.atomFamilies)for(let A of S){let X=A.familyMembers.values();for(let w of X){let M=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,G=f-M;W.push([w,G])}}if(T.selectorFamilies)for(let A of F){let X=A.familyMembers.values();for(let w of X){let M=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,G=f-M;W.push([w,G])}}return W}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var B2=(T,$)=>{let J=(S,F)=>{let W=((X,w)=>{let Y=$(X,w);if(Y)return Y;return null})(S,F);if(W?.jobComplete??W?.pathComplete)return W;let A=Array.isArray(F)?F.map((X,w)=>[w,X]):U2(F)?Object.entries(F):[];for(let[X,w]of A){let Y=J([...S,X],w);if(Y?.jobComplete)return Y}return{}};J([],T)};function XG(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function wG(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function YG(T,$){return{summary:`${T} \u2192 ${$}`}}function gw(T,$,J){let S="",F=[],f=[],W=[];return B2(T,(A,X)=>{let w;for(w of A){let Y=$[w];if(Y===void 0)f.push([w,JSON.stringify(X)]);else{let M=J(X,Y);if(M.summary!=="No Change")W.push([w,M])}}}),B2($,(A,X)=>{let w;for(w of A)if(T[w]===void 0)F.push([w,JSON.stringify(X)])}),S=`\uFF5E${W.length} \uFF0B${F.length} \uFF0D${f.length}`,{summary:S,added:F,removed:f,changed:W}}function MG(T,$,J){return gw(T,$,J)}class pw{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,J){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let S of Object.keys(T.supported)){let F=J[S];this.leafDiffers[S]=F}for(let S of Object.keys($.supported)){let F=J[S];this.treeDiffers[S]=F}}diff(T,$){if(T===$)return{summary:"No Change"};let J=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),S=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(J!==null&&S!==null){if(J.type===S.type){if(J.type in this.leafDiffers)return this.leafDiffers[J.type](J.data,S.data);if(J.type in this.treeDiffers)return this.treeDiffers[J.type](J.data,S.data,(A,X)=>this.diff(A,X))}}let F=UF(T),f=UF($);if(F===f)return{summary:`${F} \u2192 ${f}`};return{summary:`Type change: ${F} \u2192 ${f}`}}}var oC=new pw(k2,V2,{number:XG,string:wG,boolean:YG,null:()=>({summary:"No Change"}),object:gw,array:MG});var H=Symbol.for("drizzle:entityKind"),sC=Symbol.for("drizzle:hasOwnEntityKind");function k(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,H))throw new Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let J=Object.getPrototypeOf(T).constructor;if(J)while(J){if(H in J&&J[H]===$[H])return!0;J=Object.getPrototypeOf(J)}return!1}class UT{constructor(T,$){this.table=T,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[H]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class y2{static[H]="ColumnBuilder";config;constructor(T,$,J){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:J,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var JJ=Symbol.for("drizzle:Name");class L2{static[H]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:S,foreignColumns:F}=T();return{name:J,columns:S,foreignTable:F[0].table,foreignColumns:F}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new ow(T,this)}}class ow{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[H]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:J}=this.reference(),S=$.map((W)=>W.name),F=J.map((W)=>W.name),f=[this.table[JJ],...S,J[0].table[JJ],...F];return T??`${f.join("_")}_fk`}}function Af(T,...$){return T(...$)}function tw(T,$){return`${T[JJ]}_${$.join("_")}_unique`}function dw(T,$,J){for(let S=$;S<T.length;S++){let F=T[S];if(F==="\\"){S++;continue}if(F==='"')return[T.slice($,S).replace(/\\/g,""),S+1];if(J)continue;if(F===","||F==="}")return[T.slice($,S).replace(/\\/g,""),S]}return[T.slice($).replace(/\\/g,""),T.length]}function iw(T,$=0){let J=[],S=$,F=!1;while(S<T.length){let f=T[S];if(f===","){if(F||S===$)J.push("");F=!0,S++;continue}if(F=!1,f==="\\"){S+=2;continue}if(f==='"'){let[X,w]=dw(T,S+1,!0);J.push(X),S=w;continue}if(f==="}")return[J,S+1];if(f==="{"){let[X,w]=iw(T,S+1);J.push(X),S=w;continue}let[W,A]=dw(T,S,!1);J.push(W),S=A}return[J,S]}function uw(T){let[$]=iw(T,1);return $}function N2(T){return`{${T.map(($)=>{if(Array.isArray($))return N2($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class g extends y2{foreignKeyConfigs=[];static[H]="PgColumnBuilder";array(T){return new rw(this.config.name,this,T)}references(T,$={}){return this.foreignKeyConfigs.push({ref:T,actions:$}),this}unique(T,$){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,$){return this.foreignKeyConfigs.map(({ref:J,actions:S})=>{return Af((F,f)=>{let W=new L2(()=>{let A=F();return{columns:[T],foreignColumns:[A]}});if(f.onUpdate)W.onUpdate(f.onUpdate);if(f.onDelete)W.onDelete(f.onDelete);return W.build($)},J,S)})}buildExtraConfigColumn(T){return new lw(T,this.config)}}class Z extends UT{constructor(T,$){if(!$.uniqueName)$.uniqueName=tw(T,[$.name]);super(T,$);this.table=T}static[H]="PgColumn"}class lw extends Z{static[H]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(T){return this.indexConfig.opClass=T,this}}class h0{static[H]="IndexedColumn";constructor(T,$,J,S){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=S}name;keyAsName;type;indexConfig}class rw extends g{static[H]="PgArrayBuilder";constructor(T,$,J){super(T,"array","PgArray");this.config.baseBuilder=$,this.config.size=J}build(T){let $=this.config.baseBuilder.build(T);return new C2(T,this.config,$)}}class C2 extends Z{constructor(T,$,J,S){super(T,$);this.baseColumn=J,this.range=S,this.size=$.size}size;static[H]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=uw(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let J=T.map((S)=>S===null?null:k(this.baseColumn,C2)?this.baseColumn.mapToDriverValue(S,!0):this.baseColumn.mapToDriverValue(S));if($)return J;return N2(J)}}var j2=Symbol.for("drizzle:isPgEnum");function aw(T){return!!T&&typeof T==="function"&&j2 in T&&T[j2]===!0}class sw extends g{static[H]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new ew(T,this.config)}}class ew extends Z{static[H]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function Xf(T,$){return GG(T,$,void 0)}function GG(T,$,J){let S=Object.assign((F)=>new sw(F??"",S),{enumName:T,enumValues:$,schema:J,[j2]:!0});return S}class eT{static[H]="Subquery";constructor(T,$,J,S=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:S}}}class v0 extends eT{static[H]="WithSubquery"}var TY="0.39.3";var x2,I2,VT={startActiveSpan(T,$){if(!x2)return $();if(!I2)I2=x2.trace.getTracer("drizzle-orm",TY);return Af((J,S)=>S.startActiveSpan(T,(F)=>{try{return $(F)}catch(f){throw F.setStatus({code:J.SpanStatusCode.ERROR,message:f instanceof Error?f.message:"Unknown error"}),f}finally{F.end()}}),x2,I2)}};var NT=Symbol.for("drizzle:ViewBaseConfig");var wf=Symbol.for("drizzle:Schema"),Yf=Symbol.for("drizzle:Columns"),$Y=Symbol.for("drizzle:ExtraConfigColumns"),Z2=Symbol.for("drizzle:OriginalName"),q2=Symbol.for("drizzle:BaseName"),m0=Symbol.for("drizzle:IsAlias"),JY=Symbol.for("drizzle:ExtraConfigBuilder"),KG=Symbol.for("drizzle:IsDrizzleTable");class m{static[H]="Table";static Symbol={Name:JJ,Schema:wf,OriginalName:Z2,Columns:Yf,ExtraConfigColumns:$Y,BaseName:q2,IsAlias:m0,ExtraConfigBuilder:JY};[JJ];[Z2];[wf];[Yf];[$Y];[q2];[m0]=!1;[KG]=!0;[JY]=void 0;constructor(T,$,J){this[JJ]=this[Z2]=T,this[wf]=$,this[q2]=J}}function S$(T){return T[JJ]}function BS(T){return`${T[wf]??"public"}.${T[JJ]}`}function b2(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function HG(T){let $={sql:"",params:[]};for(let J of T)if($.sql+=J.sql,$.params.push(...J.params),J.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...J.typings)}return $}class T${static[H]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new P([this])}}class P{constructor(T){this.queryChunks=T}static[H]="SQL";decoder=FY;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return VT.startActiveSpan("drizzle.buildSQL",($)=>{let J=this.buildQueryFromSourceParams(this.queryChunks,T);return $?.setAttributes({"drizzle.query.text":J.sql,"drizzle.query.params":JSON.stringify(J.params)}),J})}buildQueryFromSourceParams(T,$){let J=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:S,escapeName:F,escapeParam:f,prepareTyping:W,inlineParams:A,paramStartIndex:X}=J;return HG(T.map((w)=>{if(k(w,T$))return{sql:w.value.join(""),params:[]};if(k(w,Mf))return{sql:F(w.value),params:[]};if(w===void 0)return{sql:"",params:[]};if(Array.isArray(w)){let Y=[new T$("(")];for(let[M,G]of w.entries())if(Y.push(G),M<w.length-1)Y.push(new T$(", "));return Y.push(new T$(")")),this.buildQueryFromSourceParams(Y,J)}if(k(w,P))return this.buildQueryFromSourceParams(w.queryChunks,{...J,inlineParams:A||w.shouldInlineParams});if(k(w,m)){let Y=w[m.Symbol.Schema],M=w[m.Symbol.Name];return{sql:Y===void 0||w[m0]?F(M):F(Y)+"."+F(M),params:[]}}if(k(w,UT)){let Y=S.getColumnCasing(w);if($.invokeSource==="indexes")return{sql:F(Y),params:[]};let M=w.table[m.Symbol.Schema];return{sql:w.table[m0]||M===void 0?F(w.table[m.Symbol.Name])+"."+F(Y):F(M)+"."+F(w.table[m.Symbol.Name])+"."+F(Y),params:[]}}if(k(w,y$)){let Y=w[NT].schema,M=w[NT].name;return{sql:Y===void 0||w[NT].isAlias?F(M):F(Y)+"."+F(M),params:[]}}if(k(w,h$)){if(k(w.value,tJ))return{sql:f(X.value++,w),params:[w],typings:["none"]};let Y=w.value===null?null:w.encoder.mapToDriverValue(w.value);if(k(Y,P))return this.buildQueryFromSourceParams([Y],J);if(A)return{sql:this.mapInlineParam(Y,J),params:[]};let M=["none"];if(W)M=[W(w.encoder)];return{sql:f(X.value++,Y),params:[Y],typings:M}}if(k(w,tJ))return{sql:f(X.value++,w),params:[w],typings:["none"]};if(k(w,P.Aliased)&&w.fieldAlias!==void 0)return{sql:F(w.fieldAlias),params:[]};if(k(w,eT)){if(w._.isWith)return{sql:F(w._.alias),params:[]};return this.buildQueryFromSourceParams([new T$("("),w._.sql,new T$(") "),new Mf(w._.alias)],J)}if(aw(w)){if(w.schema)return{sql:F(w.schema)+"."+F(w.enumName),params:[]};return{sql:F(w.enumName),params:[]}}if(b2(w)){if(w.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([w.getSQL()],J);return this.buildQueryFromSourceParams([new T$("("),w.getSQL(),new T$(")")],J)}if(A)return{sql:this.mapInlineParam(w,J),params:[]};return{sql:f(X.value++,w),params:[w],typings:["none"]}}))}mapInlineParam(T,{escapeString:$}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return $(T);if(typeof T==="object"){let J=T.toString();if(J==="[object Object]")return $(JSON.stringify(T));return $(J)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new P.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class Mf{constructor(T){this.value=T}static[H]="Name";brand;getSQL(){return new P([this])}}function SY(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var FY={mapFromDriverValue:(T)=>T},fY={mapToDriverValue:(T)=>T},nj={...FY,...fY};class h${constructor(T,$=fY){this.value=T,this.encoder=$}static[H]="Param";brand;getSQL(){return new P([this])}}function O(T,...$){let J=[];if($.length>0||T.length>0&&T[0]!=="")J.push(new T$(T[0]));for(let[S,F]of $.entries())J.push(F,new T$(T[S+1]));return new P(J)}((T)=>{function $(){return new P([])}T.empty=$;function J(X){return new P(X)}T.fromList=J;function S(X){return new P([new T$(X)])}T.raw=S;function F(X,w){let Y=[];for(let[M,G]of X.entries()){if(M>0&&w!==void 0)Y.push(w);Y.push(G)}return new P(Y)}T.join=F;function f(X){return new Mf(X)}T.identifier=f;function W(X){return new tJ(X)}T.placeholder=W;function A(X,w){return new h$(X,w)}T.param=A})(O||(O={}));((T)=>{class ${constructor(J,S){this.sql=J,this.fieldAlias=S}static[H]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(P||(P={}));class tJ{constructor(T){this.name=T}static[H]="Placeholder";getSQL(){return new P([this])}}function h2(T,$){return T.map((J)=>{if(k(J,tJ)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(k(J,h$)&&k(J.value,tJ)){if(!(J.value.name in $))throw new Error(`No value for placeholder "${J.value.name}" was provided`);return J.encoder.mapToDriverValue($[J.value.name])}return J})}var OG=Symbol.for("drizzle:IsDrizzleView");class y${static[H]="View";[NT];[OG]=!0;constructor({name:T,schema:$,selectedFields:J,query:S}){this[NT]={name:T,originalName:T,schema:$,selectedFields:J,query:S,isExisting:!S,isAlias:!1}}getSQL(){return new P([this])}}UT.prototype.getSQL=function(){return new P([this])};m.prototype.getSQL=function(){return new P([this])};eT.prototype.getSQL=function(){return new P([this])};class VF{constructor(T){this.table=T}static[H]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class P0{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[H]="TableAliasProxyHandler";get(T,$){if($===m.Symbol.IsAlias)return!0;if($===m.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===m.Symbol.OriginalName)return this.alias;if($===NT)return{...T[NT],name:this.alias,isAlias:!0};if($===m.Symbol.Columns){let S=T[m.Symbol.Columns];if(!S)return S;let F={};return Object.keys(S).map((f)=>{F[f]=new Proxy(S[f],new VF(new Proxy(T,this)))}),F}let J=T[$];if(k(J,UT))return new Proxy(J,new VF(new Proxy(T,this)));return J}}function Gf(T,$){return new Proxy(T,new P0($,!1))}function GJ(T,$){return new Proxy(T,new VF(new Proxy(T.table,new P0($,!1))))}function v2(T,$){return new P.Aliased(n0(T.sql,$),T.fieldAlias)}function n0(T,$){return O.join(T.queryChunks.map((J)=>{if(k(J,UT))return GJ(J,$);if(k(J,P))return n0(J,$);if(k(J,P.Aliased))return v2(J,$);return J}))}class Kf extends Error{static[H]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class m2 extends Kf{static[H]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function L$(T,$){if(SY($)&&!b2(T)&&!k(T,h$)&&!k(T,tJ)&&!k(T,UT)&&!k(T,m)&&!k(T,y$))return new h$(T,$);return T}var Hf=(T,$)=>{return O`${T} = ${L$($,T)}`},WY=(T,$)=>{return O`${T} <> ${L$($,T)}`};function c0(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new P($);return new P([new T$("("),O.join($,new T$(" and ")),new T$(")")])}function AY(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new P($);return new P([new T$("("),O.join($,new T$(" or ")),new T$(")")])}function XY(T){return O`not ${T}`}var Of=(T,$)=>{return O`${T} > ${L$($,T)}`},wY=(T,$)=>{return O`${T} >= ${L$($,T)}`},YY=(T,$)=>{return O`${T} < ${L$($,T)}`},MY=(T,$)=>{return O`${T} <= ${L$($,T)}`};function GY(T,$){if(Array.isArray($)){if($.length===0)return O`false`;return O`${T} in ${$.map((J)=>L$(J,T))}`}return O`${T} in ${L$($,T)}`}function KY(T,$){if(Array.isArray($)){if($.length===0)return O`true`;return O`${T} not in ${$.map((J)=>L$(J,T))}`}return O`${T} not in ${L$($,T)}`}function HY(T){return O`${T} is null`}function OY(T){return O`${T} is not null`}function zY(T){return O`exists ${T}`}function DY(T){return O`not exists ${T}`}function QY(T,$,J){return O`${T} between ${L$($,T)} and ${L$(J,T)}`}function EY(T,$,J){return O`${T} not between ${L$($,T)} and ${L$(J,T)}`}function RY(T,$){return O`${T} like ${$}`}function _Y(T,$){return O`${T} not like ${$}`}function kY(T,$){return O`${T} ilike ${$}`}function UY(T,$){return O`${T} not ilike ${$}`}function VY(T){return O`${T} asc`}function BY(T){return O`${T} desc`}class yY{static[H]="ConsoleLogWriter";write(T){console.log(T)}}class P2{static[H]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new yY}logQuery(T,$){let J=$.map((F)=>{try{return JSON.stringify(F)}catch{return String(F)}}),S=J.length?` -- params: [${J.join(", ")}]`:"";this.writer.write(`Query: ${T}${S}`)}}class n2{static[H]="NoopLogger";logQuery(){}}class R${static[H]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}then(T,$){return this.execute().then(T,$)}}function LY(T,$,J){let S={},F=T.reduce((f,{path:W,field:A},X)=>{let w;if(k(A,UT))w=A;else if(k(A,P))w=A.decoder;else w=A.sql.decoder;let Y=f;for(let[M,G]of W.entries())if(M<W.length-1){if(!(G in Y))Y[G]={};Y=Y[G]}else{let z=$[X],D=Y[G]=z===null?null:w.mapFromDriverValue(z);if(J&&k(A,UT)&&W.length===2){let R=W[0];if(!(R in S))S[R]=D===null?S$(A.table):!1;else if(typeof S[R]==="string"&&S[R]!==S$(A.table))S[R]=!1}}return f},{});if(J&&Object.keys(S).length>0){for(let[f,W]of Object.entries(S))if(typeof W==="string"&&!J[W])F[f]=null}return F}function o$(T,$){return Object.entries(T).reduce((J,[S,F])=>{if(typeof S!=="string")return J;let f=$?[...$,S]:[S];if(k(F,UT)||k(F,P)||k(F,P.Aliased))J.push({path:f,field:F});else if(k(F,m))J.push(...o$(F[m.Symbol.Columns],f));else J.push(...o$(F,f));return J},[])}function g0(T,$){let J=Object.keys(T),S=Object.keys($);if(J.length!==S.length)return!1;for(let[F,f]of J.entries())if(f!==S[F])return!1;return!0}function zf(T,$){let J=Object.entries($).filter(([,S])=>S!==void 0).map(([S,F])=>{if(k(F,P)||k(F,UT))return[S,F];else return[S,new h$(F,T[m.Symbol.Columns][S])]});if(J.length===0)throw new Error("No values to set");return Object.fromEntries(J)}function NY(T,$){for(let J of $)for(let S of Object.getOwnPropertyNames(J.prototype)){if(S==="constructor")continue;Object.defineProperty(T.prototype,S,Object.getOwnPropertyDescriptor(J.prototype,S)||Object.create(null))}}function CY(T){return T[m.Symbol.Columns]}function jJ(T){return k(T,eT)?T._.alias:k(T,y$)?T[NT].name:k(T,P)?void 0:T[m.Symbol.IsAlias]?T[m.Symbol.Name]:T[m.Symbol.BaseName]}function wT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function jY(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let $=typeof T.logger;if($!=="boolean"&&($!=="object"||typeof T.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in T){let $=typeof T.logger;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in T){let $=typeof T.logger;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let $=typeof T.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in T){let $=typeof T.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class dJ extends g{static[H]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class xY extends dJ{static[H]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new IY(T,this.config)}}class IY extends Z{static[H]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class ZY extends dJ{static[H]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new qY(T,this.config)}}class qY extends Z{static[H]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function bY(T,$){let{name:J,config:S}=wT(T,$);if(S.mode==="number")return new xY(J);return new ZY(J)}class hY extends g{static[H]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new vY(T,this.config)}}class vY extends Z{static[H]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class mY extends g{static[H]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new PY(T,this.config)}}class PY extends Z{static[H]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function nY(T,$){let{name:J,config:S}=wT(T,$);if(S.mode==="number")return new hY(J);return new mY(J)}class cY extends g{static[H]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new gY(T,this.config)}}class gY extends Z{static[H]="PgBoolean";getSQLType(){return"boolean"}}function p0(T){return new cY(T??"")}class pY extends g{static[H]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new oY(T,this.config)}}class oY extends Z{static[H]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function tY(T,$={}){let{name:J,config:S}=wT(T,$);return new pY(J,S)}class dY extends g{static[H]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new iY(T,this.config)}}class iY extends Z{static[H]="PgCidr";getSQLType(){return"cidr"}}function uY(T){return new dY(T??"")}class lY extends g{static[H]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new rY(T,this.config)}}class rY extends Z{static[H]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,$){super(T,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function aY(T){return($,J)=>{let{name:S,config:F}=wT($,J);return new lY(S,F,T)}}class xJ extends g{static[H]="PgDateColumnBaseBuilder";defaultNow(){return this.default(O`now()`)}}class sY extends xJ{static[H]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new Df(T,this.config)}}class Df extends Z{static[H]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class eY extends xJ{static[H]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new Qf(T,this.config)}}class Qf extends Z{static[H]="PgDateString";getSQLType(){return"date"}}function T4(T,$){let{name:J,config:S}=wT(T,$);if(S?.mode==="date")return new sY(J);return new eY(J)}class $4 extends g{static[H]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new J4(T,this.config)}}class J4 extends Z{static[H]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function S4(T){return new $4(T??"")}class F4 extends g{static[H]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new f4(T,this.config)}}class f4 extends Z{static[H]="PgInet";getSQLType(){return"inet"}}function W4(T){return new F4(T??"")}class A4 extends dJ{static[H]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new X4(T,this.config)}}class X4 extends Z{static[H]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function Ef(T){return new A4(T??"")}class w4 extends g{static[H]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new Y4(T,this.config)}}class Y4 extends Z{static[H]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${T}${$}`}}function M4(T,$={}){let{name:J,config:S}=wT(T,$);return new w4(J,S)}class G4 extends g{static[H]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new Rf(T,this.config)}}class Rf extends Z{static[H]="PgJson";constructor(T,$){super(T,$)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function K4(T){return new G4(T??"")}class H4 extends g{static[H]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new _f(T,this.config)}}class _f extends Z{static[H]="PgJsonb";constructor(T,$){super(T,$)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function O4(T){return new H4(T??"")}class z4 extends g{static[H]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new D4(T,this.config)}}class D4 extends Z{static[H]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,S]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J),Number.parseFloat(S)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class Q4 extends g{static[H]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new E4(T,this.config)}}class E4 extends Z{static[H]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,S]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(J),c:Number.parseFloat(S)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function R4(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new z4(J);return new Q4(J)}class _4 extends g{static[H]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new k4(T,this.config)}}class k4 extends Z{static[H]="PgMacaddr";getSQLType(){return"macaddr"}}function U4(T){return new _4(T??"")}class V4 extends g{static[H]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new B4(T,this.config)}}class B4 extends Z{static[H]="PgMacaddr8";getSQLType(){return"macaddr8"}}function y4(T){return new V4(T??"")}class L4 extends g{static[H]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new kf(T,this.config)}}class kf extends Z{static[H]="PgNumeric";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function N4(T,$){let{name:J,config:S}=wT(T,$);return new L4(J,S?.precision,S?.scale)}class C4 extends g{static[H]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new j4(T,this.config)}}class j4 extends Z{static[H]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class x4 extends g{static[H]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new I4(T,this.config)}}class I4 extends Z{static[H]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(J)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function Z4(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new C4(J);return new x4(J)}function zG(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function q4(T,$){let J=new ArrayBuffer(8),S=new DataView(J);for(let F=0;F<8;F++)S.setUint8(F,T[$+F]);return S.getFloat64(0,!0)}function c2(T){let $=zG(T),J=0,S=$[J];J+=1;let F=new DataView($.buffer),f=F.getUint32(J,S===1);J+=4;let W;if(f&536870912)W=F.getUint32(J,S===1),J+=4;if((f&65535)===1){let A=q4($,J);J+=8;let X=q4($,J);return J+=8,[A,X]}throw new Error("Unsupported geometry type")}class b4 extends g{static[H]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new h4(T,this.config)}}class h4 extends Z{static[H]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return c2(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class v4 extends g{static[H]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new m4(T,this.config)}}class m4 extends Z{static[H]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=c2(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function P4(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new b4(J);return new v4(J)}class n4 extends g{static[H]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new c4(T,this.config)}}class c4 extends Z{static[H]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function g4(T){return new n4(T??"")}class p4 extends g{static[H]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new o4(T,this.config)}}class o4 extends Z{static[H]="PgSerial";getSQLType(){return"serial"}}function t4(T){return new p4(T??"")}class d4 extends dJ{static[H]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new i4(T,this.config)}}class i4 extends Z{static[H]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function u4(T){return new d4(T??"")}class l4 extends g{static[H]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new r4(T,this.config)}}class r4 extends Z{static[H]="PgSmallSerial";getSQLType(){return"smallserial"}}function a4(T){return new l4(T??"")}class s4 extends g{static[H]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new e4(T,this.config)}}class e4 extends Z{static[H]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function TM(T,$={}){let{name:J,config:S}=wT(T,$);return new s4(J,S)}class $M extends xJ{constructor(T,$,J){super(T,"string","PgTime");this.withTimezone=$,this.precision=J,this.config.withTimezone=$,this.config.precision=J}static[H]="PgTimeBuilder";build(T){return new Uf(T,this.config)}}class Uf extends Z{static[H]="PgTime";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function JM(T,$={}){let{name:J,config:S}=wT(T,$);return new $M(J,S.withTimezone??!1,S.precision)}class SM extends xJ{static[H]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new Vf(T,this.config)}}class Vf extends Z{static[H]="PgTimestamp";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class FM extends xJ{static[H]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new Bf(T,this.config)}}class Bf extends Z{static[H]="PgTimestampString";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function SJ(T,$={}){let{name:J,config:S}=wT(T,$);if(S?.mode==="string")return new FM(J,S.withTimezone??!1,S.precision);return new SM(J,S?.withTimezone??!1,S?.precision)}class fM extends g{static[H]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(O`gen_random_uuid()`)}build(T){return new yf(T,this.config)}}class yf extends Z{static[H]="PgUUID";getSQLType(){return"uuid"}}function v$(T){return new fM(T??"")}class WM extends g{static[H]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new AM(T,this.config)}}class AM extends Z{static[H]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function A$(T,$={}){let{name:J,config:S}=wT(T,$);return new WM(J,S)}class XM extends g{static[H]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new wM(T,this.config)}}class wM extends Z{static[H]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function YM(T,$){let{name:J,config:S}=wT(T,$);return new XM(J,S)}class MM extends g{static[H]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new GM(T,this.config)}}class GM extends Z{static[H]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function KM(T,$){let{name:J,config:S}=wT(T,$);return new MM(J,S)}class HM extends g{static[H]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new OM(T,this.config)}}class OM extends Z{static[H]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function zM(T,$){let{name:J,config:S}=wT(T,$);return new HM(J,S)}class DM extends g{static[H]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new QM(T,this.config)}}class QM extends Z{static[H]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function EM(T,$){let{name:J,config:S}=wT(T,$);return new DM(J,S)}function RM(){return{bigint:bY,bigserial:nY,boolean:p0,char:tY,cidr:uY,customType:aY,date:T4,doublePrecision:S4,inet:W4,integer:Ef,interval:M4,json:K4,jsonb:O4,line:R4,macaddr:U4,macaddr8:y4,numeric:N4,point:Z4,geometry:P4,real:g4,serial:t4,smallint:u4,smallserial:a4,text:TM,time:JM,timestamp:SJ,uuid:v$,varchar:A$,bit:YM,halfvec:KM,sparsevec:zM,vector:EM}}var g2=Symbol.for("drizzle:PgInlineForeignKeys"),_M=Symbol.for("drizzle:EnableRLS");class X$ extends m{static[H]="PgTable";static Symbol=Object.assign({},m.Symbol,{InlineForeignKeys:g2,EnableRLS:_M});[g2]=[];[_M]=!1;[m.Symbol.ExtraConfigBuilder]=void 0}function DG(T,$,J,S,F=T){let f=new X$(T,S,F),W=typeof $==="function"?$(RM()):$,A=Object.fromEntries(Object.entries(W).map(([Y,M])=>{let G=M;G.setName(Y);let z=G.build(f);return f[g2].push(...G.buildForeignKeys(z,f)),[Y,z]})),X=Object.fromEntries(Object.entries(W).map(([Y,M])=>{let G=M;G.setName(Y);let z=G.buildExtraConfigColumn(f);return[Y,z]})),w=Object.assign(f,A);if(w[m.Symbol.Columns]=A,w[m.Symbol.ExtraConfigColumns]=X,J)w[X$.Symbol.ExtraConfigBuilder]=J;return Object.assign(w,{enableRLS:()=>{return w[X$.Symbol.EnableRLS]=!0,w}})}var iJ=(T,$,J)=>{return DG(T,$,J,void 0)};function kM(...T){if(T[0].columns)return new o0(T[0].columns,T[0].name);return new o0(T)}class o0{static[H]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new UM(T,this.columns,this.name)}}class UM{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[H]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[X$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class p2{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[m.Symbol.Name]}static[H]="Relation";referencedTableName;fieldName}class VM{constructor(T,$){this.table=T,this.config=$}static[H]="Relations"}class uJ extends p2{constructor(T,$,J,S){super(T,$,J?.relationName);this.config=J,this.isNullable=S}static[H]="One";withFieldName(T){let $=new uJ(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class t0 extends p2{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[H]="Many";withFieldName(T){let $=new t0(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function BM(){return{and:c0,between:QY,eq:Hf,exists:zY,gt:Of,gte:wY,ilike:kY,inArray:GY,isNull:HY,isNotNull:OY,like:RY,lt:YY,lte:MY,ne:WY,not:XY,notBetween:EY,notExists:DY,notLike:_Y,notIlike:UY,notInArray:KY,or:AY,sql:O}}function yM(){return{sql:O,asc:VY,desc:BY}}function LM(T,$){if(Object.keys(T).length===1&&"default"in T&&!k(T.default,m))T=T.default;let J={},S={},F={};for(let[f,W]of Object.entries(T))if(k(W,m)){let A=BS(W),X=S[A];J[A]=f,F[f]={tsName:f,dbName:W[m.Symbol.Name],schema:W[m.Symbol.Schema],columns:W[m.Symbol.Columns],relations:X?.relations??{},primaryKey:X?.primaryKey??[]};for(let Y of Object.values(W[m.Symbol.Columns]))if(Y.primary)F[f].primaryKey.push(Y);let w=W[m.Symbol.ExtraConfigBuilder]?.(W[m.Symbol.ExtraConfigColumns]);if(w){for(let Y of Object.values(w))if(k(Y,o0))F[f].primaryKey.push(...Y.columns)}}else if(k(W,VM)){let A=BS(W.table),X=J[A],w=W.config($(W.table)),Y;for(let[M,G]of Object.entries(w))if(X){let z=F[X];if(z.relations[M]=G,Y)z.primaryKey.push(...Y)}else{if(!(A in S))S[A]={relations:{},primaryKey:Y};S[A].relations[M]=G}}return{tables:F,tableNamesMap:J}}function QG(T){return function $(J,S){return new uJ(T,J,S,S?.fields.reduce((F,f)=>F&&f.notNull,!0)??!1)}}function EG(T){return function $(J,S){return new t0(T,J,S)}}function NM(T,$,J){if(k(J,uJ)&&J.config)return{fields:J.config.fields,references:J.config.references};let S=$[BS(J.referencedTable)];if(!S)throw new Error(`Table "${J.referencedTable[m.Symbol.Name]}" not found in schema`);let F=T[S];if(!F)throw new Error(`Table "${S}" not found in schema`);let f=J.sourceTable,W=$[BS(f)];if(!W)throw new Error(`Table "${f[m.Symbol.Name]}" not found in schema`);let A=[];for(let X of Object.values(F.relations))if(J.relationName&&J!==X&&X.relationName===J.relationName||!J.relationName&&X.referencedTable===J.sourceTable)A.push(X);if(A.length>1)throw J.relationName?new Error(`There are multiple relations with name "${J.relationName}" in table "${S}"`):new Error(`There are multiple relations between "${S}" and "${J.sourceTable[m.Symbol.Name]}". Please specify relation name`);if(A[0]&&k(A[0],uJ)&&A[0].config)return{fields:A[0].config.references,references:A[0].config.fields};throw new Error(`There is not enough information to infer relation "${W}.${J.fieldName}"`)}function CM(T){return{one:QG(T),many:EG(T)}}function Lf(T,$,J,S,F=(f)=>f){let f={};for(let[W,A]of S.entries())if(A.isJson){let X=$.relations[A.tsKey],w=J[W],Y=typeof w==="string"?JSON.parse(w):w;f[A.tsKey]=k(X,uJ)?Y&&Lf(T,T[A.relationTableTsKey],Y,A.selection,F):Y.map((M)=>Lf(T,T[A.relationTableTsKey],M,A.selection,F))}else{let X=F(J[W]),w=A.field,Y;if(k(w,UT))Y=w;else if(k(w,P))Y=w.decoder;else Y=w.sql.decoder;f[A.tsKey]=X===null?null:Y.mapFromDriverValue(X)}return f}import OK from"path";import pG from"os";import oG from"fs";var Nf=new Map,o2=new Map,t2=Symbol("OriginError"),BF={};class t$ extends Promise{constructor(T,$,J,S,F={}){let f,W;super((A,X)=>{f=A,W=X});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=S,this.options=F,this.state=null,this.statement=null,this.resolve=(A)=>(this.active=!1,f(A)),this.reject=(A)=>(this.active=!1,W(A)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[t2]=this.handler.debug?new Error:this.tagged&&RG(this.strings)}get origin(){return(this.handler.debug?this[t2].stack:this.tagged&&o2.has(this.strings)?o2.get(this.strings):o2.set(this.strings,this[t2].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(T=1,$){if(this.options.simple=!1,typeof T==="function")$=T,T=1;if(this.cursorRows=T,typeof $==="function")return this.cursorFn=$,this;let J;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};J&&J();let S=new Promise((F,f)=>{this.cursorFn=(W)=>{return F({value:W,done:!1}),new Promise((A)=>J=A)},this.resolve=()=>(this.active=!1,F({done:!0})),this.reject=(W)=>(this.active=!1,f(W))});return this.execute(),S},return(){return J&&J(BF),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(T){return this.forEachFn=T,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function RG(T){if(Nf.has(T))return Nf.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,Nf.set(T,new Error),Error.stackTraceLimit=$,Nf.get(T)}class yF extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var pT={connection:jM,postgres:xM,generic:IM,notSupported:ZM};function jM(T,$,J){let{host:S,port:F}=J||$,f=Object.assign(new Error("write "+T+" "+($.path||S+":"+F)),{code:T,errno:T,address:$.path||S},$.path?{}:{port:F});return Error.captureStackTrace(f,jM),f}function xM(T){let $=new yF(T);return Error.captureStackTrace($,xM),$}function IM(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,IM),J}function ZM(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,ZM),$}var _G={string:{to:25,from:null,serialize:(T)=>""+T},number:{to:0,from:[21,23,26,700,701],serialize:(T)=>""+T,parse:(T)=>+T},json:{to:114,from:[114,3802],serialize:(T)=>JSON.stringify(T),parse:(T)=>JSON.parse(T)},boolean:{to:16,from:16,serialize:(T)=>T===!0?"t":"f",parse:(T)=>T==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(T)=>(T instanceof Date?T:new Date(T)).toISOString(),parse:(T)=>new Date(T)},bytea:{to:17,from:17,serialize:(T)=>"\\x"+Buffer.from(T).toString("hex"),parse:(T)=>Buffer.from(T.slice(2),"hex")}};class xf{then(){d2()}catch(){d2()}finally(){d2()}}class l0 extends xf{constructor(T){super();this.value=qf(T)}}class KJ extends xf{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class If extends xf{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,S){let F=kG.map(([f,W])=>({fn:W,i:T.search(f)})).sort((f,W)=>f.i-W.i).pop();return F.i===-1?a2(this.first,S):F.fn(this.first,this.rest,$,J,S)}}function Zf(T,$,J,S){let F=T instanceof KJ?T.value:T;if(F===void 0){if(T instanceof KJ?T.value=S.transform.undefined:F=T=S.transform.undefined,F===void 0)throw pT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof KJ?($.push(T.value),T.array?T.array[T.type||jf(T.value)]||T.type||vM(T.value):T.type):($.push(T),jf(T)))}var bM=PM(_G);function l2(T,$,J,S,F,f){for(let W=1;W<T.strings.length;W++)$+=r2($,J,S,F,f)+T.strings[W],J=T.args[W];return $}function r2(T,$,J,S,F){return $ instanceof If?$.build(T,J,S,F):$ instanceof t$?u2($,J,S,F):$ instanceof l0?$.value:$&&$[0]instanceof t$?$.reduce((f,W)=>f+" "+u2(W,J,S,F),""):Zf($,J,S,F)}function u2(T,$,J,S){return T.fragment=!0,l2(T,T.strings[0],T.args[0],$,J,S)}function hM(T,$,J,S,F){return T.map((f)=>"("+S.map((W)=>r2("values",f[W],$,J,F)).join(",")+")").join(",")}function qM(T,$,J,S,F){let f=Array.isArray(T[0]),W=$.length?$.flat():Object.keys(f?T[0]:T);return hM(f?T:[T],J,S,W,F)}function Cf(T,$,J,S,F){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return a2(T,F);let f;return($.length?$.flat():Object.keys(T)).map((A)=>{return f=T[A],(f instanceof t$?u2(f,J,S,F):f instanceof l0?f.value:Zf(f,J,S,F))+" as "+qf(F.transform.column.to?F.transform.column.to(A):A)}).join(",")}var kG=Object.entries({values:qM,in:(...T)=>{let $=qM(...T);return $==="()"?"(null)":$},select:Cf,as:Cf,returning:Cf,"\\(":Cf,update(T,$,J,S,F){return($.length?$.flat():Object.keys(T)).map((f)=>qf(F.transform.column.to?F.transform.column.to(f):f)+"="+r2("values",T[f],J,S,F))},insert(T,$,J,S,F){let f=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+a2(f,F)+")values"+hM(Array.isArray(T)?T:[T],J,S,f,F)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function d2(){throw pT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:UG,parsers:VG}=bM;function vM(T){if(Array.isArray(T))return vM(T[0]);return typeof T==="string"?1009:0}var mM=function(T){let $=PM(T||{});return{serializers:Object.assign({},UG,$.serializers),parsers:Object.assign({},VG,$.parsers)}};function PM(T){return Object.keys(T).reduce(($,J)=>{if(T[J].from&&[].concat(T[J].from).forEach((S)=>$.parsers[S]=T[J].parse),T[J].serialize)$.serializers[T[J].to]=T[J].serialize,T[J].from&&[].concat(T[J].from).forEach((S)=>$.serializers[S]=T[J].serialize);return $},{parsers:{},serializers:{}})}function a2(T,{transform:{column:$}}){return T.map((J)=>qf($.to?$.to(J):J)).join(",")}var qf=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},jf=function T($){return $ instanceof KJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},BG=/\\/g,yG=/"/g;function LG(T){return T.replace(BG,"\\\\").replace(yG,"\\\"")}var nM=function T($,J,S,F){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let f=$[0],W=F===1020?";":",";if(Array.isArray(f)&&!f.type)return"{"+$.map((A)=>T(A,J,S,F)).join(W)+"}";return"{"+$.map((A)=>{if(A===void 0){if(A=S.transform.undefined,A===void 0)throw pT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return A===null?"null":'"'+LG(J?J(A.type?A.value:A):""+A)+'"'}).join(W)+"}"},i2={i:0,char:null,str:"",quoted:!1,last:0},cM=function T($,J,S){return i2.i=i2.last=0,gM(i2,$,J,S)};function gM(T,$,J,S){let F=[],f=S===1020?";":",";for(;T.i<$.length;T.i++){if(T.char=$[T.i],T.quoted)if(T.char==="\\")T.str+=$[++T.i];else if(T.char==='"')F.push(J?J(T.str):T.str),T.str="",T.quoted=$[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,F.push(gM(T,$,J,S));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&F.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===f&&T.p!=="}"&&T.p!=='"')F.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&F.push(J?J($.slice(T.last,T.i+1)):$.slice(T.last,T.i+1)),F}var yS=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},LS=(T)=>{let $=T[0].toUpperCase();for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},NS=(T)=>T.replace(/_/g,"-"),d0=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),i0=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),u0=(T)=>T.replace(/-/g,"_");function s2(T){return function $(J,S){return typeof J==="object"&&J!==null&&(S.type===114||S.type===3802)?Array.isArray(J)?J.map((F)=>$(F,S)):Object.entries(J).reduce((F,[f,W])=>Object.assign(F,{[T(f)]:$(W,S)}),{}):J}}yS.column={from:yS};yS.value={from:s2(yS)};d0.column={to:d0};var e2={...yS};e2.column.to=d0;LS.column={from:LS};LS.value={from:s2(LS)};i0.column={to:i0};var TA={...LS};TA.column.to=i0;NS.column={from:NS};NS.value={from:s2(NS)};u0.column={to:u0};var $A={...NS};$A.column.to=u0;import pM from"net";import xG from"tls";import r0 from"crypto";import JA from"stream";import{performance as oM}from"perf_hooks";class CS extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var m$=NG;function NG(T=[]){let $=T.slice(),J=0;return{get length(){return $.length-J},remove:(S)=>{let F=$.indexOf(S);return F===-1?null:($.splice(F,1),S)},push:(S)=>($.push(S),S),shift:()=>{let S=$[J++];if(J===$.length)J=0,$=[];else $[J-1]=void 0;return S}}}var z$=Buffer.allocUnsafe(256),CG="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return z$[0]=J,_T.i=5,_T},T},{}),_T=Object.assign(jG,CG,{N:String.fromCharCode(0),i:0,inc(T){return _T.i+=T,_T},str(T){let $=Buffer.byteLength(T);return bf($),_T.i+=z$.write(T,_T.i,$,"utf8"),_T},i16(T){return bf(2),z$.writeUInt16BE(T,_T.i),_T.i+=2,_T},i32(T,$){if($||$===0)return z$.writeUInt32BE(T,$),_T;return bf(4),z$.writeUInt32BE(T,_T.i),_T.i+=4,_T},z(T){return bf(T),z$.fill(0,_T.i,_T.i+T),_T.i+=T,_T},raw(T){return z$=Buffer.concat([z$.subarray(0,_T.i),T]),_T.i=z$.length,_T},end(T=1){z$.writeUInt32BE(_T.i-T,T);let $=z$.subarray(0,_T.i);return _T.i=0,z$=Buffer.allocUnsafe(256),$}}),i=_T;function bf(T){if(z$.length-_T.i<T){let $=z$,J=$.length;z$=Buffer.allocUnsafe(J+(J>>1)+T),$.copy(z$)}}function jG(){return _T.i=0,_T}var fA=iM,IG=1,lJ=i().S().end(),tM=i().H().end(),ZG=i().i32(8).i32(80877103).end(8),qG=Buffer.concat([i().E().str(i.N).i32(0).end(),lJ]),bG=i().D().str("S").str(i.N).end(),LF=()=>{},hG=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),vG={83:"severity_local",86:"severity",67:"code",77:"message",68:"detail",72:"hint",80:"position",112:"internal_position",113:"internal_query",87:"where",115:"schema_name",116:"table_name",99:"column_name",100:"data type_name",110:"constraint_name",70:"file",76:"line",82:"routine"};function iM(T,$={},{onopen:J=LF,onend:S=LF,onclose:F=LF}={}){let{ssl:f,max:W,user:A,host:X,port:w,database:Y,parsers:M,transform:G,onnotice:z,onnotify:D,onparameter:R,max_pipeline:L,keep_alive:x,backoff:y,target_session_attrs:I}=T,E=m$(),V=IG++,B={pid:null,secret:null},U=FA(rf,T.idle_timeout),h=FA(rf,T.max_lifetime),l=FA(U6,T.connect_timeout),_=null,s,p=new CS,$T=Buffer.alloc(0),QT=T.fetch_types,hT={},k$={},HJ=Math.random().toString(36).slice(2),N=1,d=0,KT=0,IT=0,oT=0,fT=0,BT=0,cT=0,ZT=null,CT=null,w$=!1,yT=null,d$=null,Y$=null,qJ=null,tT=null,jT=null,i$=null,FJ=null,q=null,xF=null,M$={queue:$.closed,idleTimer:U,connect(K){Y$=K||!0,IA()},terminate:ZF,execute:IF,cancel:E6,end:rf,count:0,id:V};return $.closed&&$.closed.push(M$),M$;async function Q6(){let K;try{K=T.socket?await Promise.resolve(T.socket(T)):new pM.Socket}catch(Q){ZS(Q);return}return K.on("error",ZS),K.on("close",ZA),K.on("drain",jA),K}async function E6({pid:K,secret:Q},u,HT){try{s=i().i32(16).i32(80877102).i32(K).i32(Q).end(16),await xA(),_.once("error",HT),_.once("close",u)}catch(vT){HT(vT)}}function IF(K){if(w$)return S1(K,pT.connection("CONNECTION_DESTROYED",T));if(K.cancelled)return;try{return K.state=B,q?E.push(K):(q=K,q.active=!0),k6(K),F$(R6(K))&&!K.describeFirst&&!K.cursorFn&&E.length<L&&(!K.options.onexecute||K.options.onexecute(M$))}catch(Q){return E.length===0&&F$(lJ),fJ(Q),!0}}function R6(K){if(K.parameters.length>=65534)throw pT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return K.options.simple?i().Q().str(K.statement.string+i.N).end():K.describeFirst?Buffer.concat([LA(K),tM]):K.prepare?K.prepared?J1(K):Buffer.concat([LA(K),J1(K)]):_6(K)}function LA(K){return Buffer.concat([bA(K.statement.string,K.parameters,K.statement.types,K.statement.name),A7("S",K.statement.name)])}function J1(K){return Buffer.concat([W7(K.parameters,K.statement.types,K.statement.name,K.cursorName),K.cursorFn?hA("",K.cursorRows):qG])}function _6(K){return Buffer.concat([bA(K.statement.string,K.parameters,K.statement.types),bG,J1(K)])}function k6(K){let Q=[],u=[],HT=l2(K,K.strings[0],K.args[0],Q,u,T);!K.tagged&&K.args.forEach((vT)=>Zf(vT,Q,u,T)),K.prepare=T.prepare&&("prepare"in K.options?K.options.prepare:!0),K.string=HT,K.signature=K.prepare&&u+HT,K.onlyDescribe&&delete k$[K.signature],K.parameters=K.parameters||Q,K.prepared=K.prepare&&K.signature in k$,K.describeFirst=K.onlyDescribe||Q.length&&!K.prepared,K.statement=K.prepared?k$[K.signature]:{string:HT,types:u,name:K.prepare?HJ+N++:""},typeof T.debug==="function"&&T.debug(V,HT,Q,u)}function F$(K,Q){if(jT=jT?Buffer.concat([jT,K]):Buffer.from(K),Q||jT.length>=1024)return NA(Q);return CT===null&&(CT=setImmediate(NA)),!0}function NA(K){let Q=_.write(jT,K);return CT!==null&&clearImmediate(CT),jT=CT=null,Q}function U6(){fJ(pT.connection("CONNECT_TIMEOUT",T,_)),_.destroy()}async function CA(){if(F$(ZG),!await new Promise((Q)=>_.once("data",(u)=>Q(u[0]===83)))&&f==="prefer")return IS();_.removeAllListeners(),_=xG.connect({socket:_,servername:pM.isIP(_.host)?void 0:_.host,...f==="require"||f==="allow"||f==="prefer"?{rejectUnauthorized:!1}:f==="verify-full"?{}:typeof f==="object"?f:{}}),_.on("secureConnect",IS),_.on("error",ZS),_.on("close",ZA),_.on("drain",jA)}function jA(){!q&&J(M$)}function lf(K){if(yT){if(yT.push(K),KT-=K.length,KT>=0)return}$T=yT?Buffer.concat(yT,fT-KT):$T.length===0?K:Buffer.concat([$T,K],$T.length+K.length);while($T.length>4){if(fT=$T.readUInt32BE(1),fT>=$T.length){KT=fT-$T.length,yT=[$T];break}try{V6($T.subarray(0,fT+1))}catch(Q){q&&(q.cursorFn||q.describeFirst)&&F$(lJ),fJ(Q)}$T=$T.subarray(fT+1),KT=0,yT=null}}async function xA(){if(w$=!1,hT={},_||(_=await Q6()),!_)return;if(l.start(),T.socket)return f?CA():IS();if(_.on("connect",f?CA:IS),T.path)return _.connect(T.path);_.ssl=f,_.connect(w[IT],X[IT]),_.host=X[IT],_.port=w[IT],IT=(IT+1)%w.length}function IA(){setTimeout(xA,d?d+BT-oM.now():0)}function IS(){try{k$={},QT=T.fetch_types,HJ=Math.random().toString(36).slice(2),N=1,h.start(),_.on("data",lf),x&&_.setKeepAlive&&_.setKeepAlive(!0,1000*x);let K=w7();F$(K)}catch(K){ZS(K)}}function ZS(K){if(M$.queue===$.connecting&&T.host[oT+1])return;fJ(K);while(E.length)S1(E.shift(),K)}function fJ(K){tT&&(tT.destroy(K),tT=null),q&&S1(q,K),Y$&&(S1(Y$,K),Y$=null)}function S1(K,Q){"query"in Q||"parameters"in Q||Object.defineProperties(Q,{stack:{value:Q.stack+K.origin.replace(/.*\n/,`
68
+ `),enumerable:T.debug},query:{value:K.string,enumerable:T.debug},parameters:{value:K.parameters,enumerable:T.debug},args:{value:K.args,enumerable:T.debug},types:{value:K.statement&&K.statement.types,enumerable:T.debug}}),K.reject(Q)}function rf(){return qJ||(!M$.reserved&&S(M$),!M$.reserved&&!Y$&&!q&&E.length===0?(ZF(),new Promise((K)=>_&&_.readyState!=="closed"?_.once("close",K):K())):qJ=new Promise((K)=>i$=K))}function ZF(){if(w$=!0,tT||q||Y$||E.length)ZS(pT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(CT),_)_.removeListener("data",lf),_.removeListener("connect",IS),_.readyState==="open"&&_.end(i().X().end());i$&&(i$(),qJ=i$=null)}async function ZA(K){if($T=Buffer.alloc(0),KT=0,yT=null,clearImmediate(CT),_.removeListener("data",lf),_.removeListener("connect",IS),U.cancel(),h.cancel(),l.cancel(),_.removeAllListeners(),_=null,Y$)return IA();!K&&(q||E.length)&&ZS(pT.connection("CONNECTION_CLOSED",T,_)),d=oM.now(),K&&T.shared.retries++,BT=(typeof y==="function"?y(T.shared.retries):y)*1000,F(M$,pT.connection("CONNECTION_CLOSED",T,_))}function V6(K,Q=K[0]){(Q===68?B6:Q===100?s6:Q===65?d6:Q===83?y6:Q===90?L6:Q===67?N6:Q===50?qA:Q===49?C6:Q===116?j6:Q===84?x6:Q===82?I6:Q===110?m6:Q===75?P6:Q===69?o6:Q===115?i6:Q===51?u6:Q===71?l6:Q===78?T7:Q===72?r6:Q===99?e6:Q===73?$7:Q===86?J7:Q===118?S7:Q===87?a6:F7)(K)}function B6(K){let Q=7,u,HT,vT,G$=q.isRaw?new Array(q.statement.columns.length):{};for(let D$=0;D$<q.statement.columns.length;D$++)HT=q.statement.columns[D$],u=K.readInt32BE(Q),Q+=4,vT=u===-1?null:q.isRaw===!0?K.subarray(Q,Q+=u):HT.parser===void 0?K.toString("utf8",Q,Q+=u):HT.parser.array===!0?HT.parser(K.toString("utf8",Q+1,Q+=u)):HT.parser(K.toString("utf8",Q,Q+=u)),q.isRaw?G$[D$]=q.isRaw===!0?vT:G.value.from?G.value.from(vT,HT):vT:G$[HT.name]=G.value.from?G.value.from(vT,HT):vT;q.forEachFn?q.forEachFn(G.row.from?G.row.from(G$):G$,p):p[cT++]=G.row.from?G.row.from(G$):G$}function y6(K){let[Q,u]=K.toString("utf8",5,K.length-1).split(i.N);if(hT[Q]=u,T.parameters[Q]!==u)T.parameters[Q]=u,R&&R(Q,u)}function L6(K){if(q&&q.options.simple&&q.resolve(d$||p),q=d$=null,p=new CS,l.cancel(),Y$){if(I){if(!hT.in_hot_standby||!hT.default_transaction_read_only)return p6();else if(g6(I,hT))return ZF()}if(QT)return Y$===!0&&(Y$=null),n6();Y$!==!0&&IF(Y$),T.shared.retries=oT=0,Y$=null;return}while(E.length&&(q=E.shift())&&(q.active=!0,q.cancelled))iM(T).cancel(q.state,q.cancelled.resolve,q.cancelled.reject);if(q)return;M$.reserved?!M$.reserved.release&&K[5]===73?qJ?ZF():(M$.reserved=null,J(M$)):M$.reserved():qJ?ZF():J(M$)}function N6(K){cT=0;for(let Q=K.length-1;Q>0;Q--){if(K[Q]===32&&K[Q+1]<58&&p.count===null)p.count=+K.toString("utf8",Q+1,K.length-1);if(K[Q-1]>=65){p.command=K.toString("utf8",5,Q),p.state=B;break}}if(xF&&(xF(),xF=null),p.command==="BEGIN"&&W!==1&&!M$.reserved)return fJ(pT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(q.options.simple)return qA();if(q.cursorFn)p.count&&q.cursorFn(p),F$(lJ);q.resolve(p)}function C6(){q.parsing=!1}function qA(){!p.statement&&(p.statement=q.statement),p.columns=q.statement.columns}function j6(K){let Q=K.readUInt16BE(5);for(let u=0;u<Q;++u)!q.statement.types[u]&&(q.statement.types[u]=K.readUInt32BE(7+u*4));q.prepare&&(k$[q.signature]=q.statement),q.describeFirst&&!q.onlyDescribe&&(F$(J1(q)),q.describeFirst=!1)}function x6(K){if(p.command)d$=d$||[p],d$.push(p=new CS),p.count=null,q.statement.columns=null;let Q=K.readUInt16BE(5),u=7,HT;q.statement.columns=Array(Q);for(let vT=0;vT<Q;++vT){HT=u;while(K[u++]!==0);let G$=K.readUInt32BE(u),D$=K.readUInt16BE(u+4),bJ=K.readUInt32BE(u+6);q.statement.columns[vT]={name:G.column.from?G.column.from(K.toString("utf8",HT,u-1)):K.toString("utf8",HT,u-1),parser:M[bJ],table:G$,number:D$,type:bJ},u+=18}if(p.statement=q.statement,q.onlyDescribe)return q.resolve(q.statement),F$(lJ)}async function I6(K,Q=K.readUInt32BE(5)){(Q===3?Z6:Q===5?q6:Q===10?b6:Q===11?h6:Q===12?v6:Q!==0?f7:LF)(K,Q)}async function Z6(){let K=await af();F$(i().p().str(K).z(1).end())}async function q6(K){let Q="md5"+await dM(Buffer.concat([Buffer.from(await dM(await af()+A)),K.subarray(9)]));F$(i().p().str(Q).z(1).end())}async function b6(){FJ=(await r0.randomBytes(18)).toString("base64"),i().p().str("SCRAM-SHA-256"+i.N);let K=i.i;F$(i.inc(4).str("n,,n=*,r="+FJ).i32(i.i-K-4,K).end())}async function h6(K){let Q=K.toString("utf8",9).split(",").reduce((D$,bJ)=>(D$[bJ[0]]=bJ.slice(2),D$),{}),u=await r0.pbkdf2Sync(await af(),Buffer.from(Q.s,"base64"),parseInt(Q.i),32,"sha256"),HT=await hf(u,"Client Key"),vT="n=*,r="+FJ+",r="+Q.r+",s="+Q.s+",i="+Q.i+",c=biws,r="+Q.r;ZT=(await hf(await hf(u,"Server Key"),vT)).toString("base64");let G$="c=biws,r="+Q.r+",p="+PG(HT,Buffer.from(await hf(await mG(HT),vT))).toString("base64");F$(i().p().str(G$).end())}function v6(K){if(K.toString("utf8",9).split(i.N,1)[0].slice(2)===ZT)return;fJ(pT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),_.destroy()}function af(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function m6(){if(p.statement=q.statement,p.statement.columns=[],q.onlyDescribe)return q.resolve(q.statement),F$(lJ)}function P6(K){B.pid=K.readUInt32BE(5),B.secret=K.readUInt32BE(9)}async function n6(){QT=!1,(await new t$([`
69
69
  select b.oid, b.typarray
70
70
  from pg_catalog.pg_type a
71
71
  left join pg_catalog.pg_type b on b.oid = a.typelem
72
72
  where a.typcategory = 'A'
73
73
  group by b.oid, b.typarray
74
74
  order by b.oid
75
- `],[],IF)).forEach(({oid:E,typarray:i})=>cK(E,i))}function cK(O,E){if(!!T.parsers[E]&&!!T.serializers[E])return;let i=T.parsers[O];T.shared.typeArrayMap[O]=E,T.parsers[E]=(GT)=>cw(GT,i,E),T.parsers[E].array=!0,T.serializers[E]=(GT)=>mw(GT,T.serializers[O],T,E)}function nK(O,E){return O==="read-write"&&E.default_transaction_read_only==="on"||O==="read-only"&&E.default_transaction_read_only==="off"||O==="primary"&&E.in_hot_standby==="on"||O==="standby"&&E.in_hot_standby==="off"||O==="prefer-standby"&&E.in_hot_standby==="off"&&T.host[tT]}function gK(){let O=new d$([`
75
+ `],[],IF)).forEach(({oid:Q,typarray:u})=>c6(Q,u))}function c6(K,Q){if(!!T.parsers[Q]&&!!T.serializers[Q])return;let u=T.parsers[K];T.shared.typeArrayMap[K]=Q,T.parsers[Q]=(HT)=>cM(HT,u,Q),T.parsers[Q].array=!0,T.serializers[Q]=(HT)=>nM(HT,T.serializers[K],T,Q)}function g6(K,Q){return K==="read-write"&&Q.default_transaction_read_only==="on"||K==="read-only"&&Q.default_transaction_read_only==="off"||K==="primary"&&Q.in_hot_standby==="on"||K==="standby"&&Q.in_hot_standby==="off"||K==="prefer-standby"&&Q.in_hot_standby==="off"&&T.host[oT]}function p6(){let K=new t$([`
76
76
  show transaction_read_only;
77
77
  select pg_catalog.pg_is_in_recovery()
78
- `],[],IF,null,{simple:!0});O.resolve=([[E],[i]])=>{hT.default_transaction_read_only=E.transaction_read_only,hT.in_hot_standby=i.pg_is_in_recovery?"on":"off"},O.execute()}function pK(O){q&&(q.cursorFn||q.describeFirst)&&F$(aS);let E=oT.postgres(F2(O));q&&q.retried?AS(q.retried):q&&q.prepared&&vO.has(E.routine)?oK(q,E):AS(E)}function oK(O,E){delete U$[O.signature],O.retried=E,IF(O)}function tK(O){if(!z)return;let E=9;while(O[E++]!==0);z(O.toString("utf8",9,E-1),O.toString("utf8",E,O.length-1))}async function dK(){try{let O=await Promise.resolve(q.cursorFn(p));gT=0,O===BF?F$(AM(q.portal)):(p=new xJ,F$(v2("",q.cursorRows)))}catch(O){F$(aS),q.reject(O)}}function uK(){p.count&&q.cursorFn(p),q.resolve(p)}function iK(){dT=new J2.Writable({autoDestroy:!0,write(O,E,i){_.write(u().d().raw(O).end(),i)},destroy(O,E){E(O),_.write(u().f().str(O+u.N).end()),dT=null},final(O){_.write(u().c().end()),jF=O}}),q.resolve(dT)}function lK(){dT=new J2.Readable({read(){_.resume()}}),q.resolve(dT)}function rK(){dT=new J2.Duplex({autoDestroy:!0,read(){_.resume()},write(O,E,i){_.write(u().d().raw(O).end(),i)},destroy(O,E){E(O),_.write(u().f().str(O+u.N).end()),dT=null},final(O){_.write(u().c().end()),jF=O}}),q.resolve(dT)}function aK(O){dT&&(dT.push(O.subarray(5))||_.pause())}function sK(){dT&&dT.push(null),dT=null}function eK(O){D?D(F2(O)):console.log(F2(O))}function TM(){}function $M(){AS(oT.notSupported("FunctionCallResponse"))}function SM(){AS(oT.notSupported("NegotiateProtocolVersion"))}function JM(O){console.error("Postgres.js : Unknown Message:",O[0])}function FM(O,E){console.error("Postgres.js : Unknown Auth:",E)}function WM(O,E,i="",GT=""){let vT,O$;return u().B().str(GT+u.N).str(i+u.N).i16(0).i16(O.length),O.forEach((E$,hS)=>{if(E$===null)return u.i32(4294967295);O$=E[hS],O[hS]=E$=O$ in T.serializers?T.serializers[O$](E$):""+E$,vT=u.i,u.inc(4).str(E$).i32(u.i-vT-4,vT)}),u.i16(0),u.end()}function h2(O,E,i,GT=""){return u().P().str(GT+u.N).str(O+u.N).i16(E.length),E.forEach((vT,O$)=>u.i32(i[O$]||0)),u.end()}function fM(O,E=""){return u().D().str(O).str(E+u.N).end()}function v2(O="",E=0){return Buffer.concat([u().E().str(O+u.N).i32(E).end(),ow])}function AM(O=""){return Buffer.concat([u().C().str("P").str(O+u.N).end(),u().S().end()])}function XM(){return s||u().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:A,database:w,client_encoding:"UTF8"},T.connection)).filter(([,O])=>O).map(([O,E])=>O+u.N+E).join(u.N)).z(2).end(0)}}function F2(T){let $={},S=5;for(let J=5;J<T.length-1;J++)if(T[J]===0)$[PO[T[S]]]=T.toString("utf8",S+1,J),S=J+1;return $}function tw(T){return l0.createHash("md5").update(T).digest("hex")}function qW(T,$){return l0.createHmac("sha256",T).update($).digest()}function mO(T){return l0.createHash("sha256").update(T).digest()}function cO(T,$){let S=Math.max(T.length,$.length),J=Buffer.allocUnsafe(S);for(let F=0;F<S;F++)J[F]=T[F]^$[F];return J}function W2(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:LF,start:LF};let S;return{cancel(){S&&(clearTimeout(S),S=null)},start(){S&&clearTimeout(S),S=setTimeout(J,$*1000,arguments)}};function J(F){T.apply(null,F),S=null}}var uw=()=>{};function A2(T,$){let S=new Map,J="postgresjs_"+Math.random().toString(36).slice(2),F={},W,f,A=!1,X=K.sql=T({...$,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...$.connection,replication:"database"},onclose:async function(){if(A)return;f=null,F.pid=F.secret=void 0,M(await D(X,J,$.publications)),S.forEach((R)=>R.forEach(({onsubscribe:L})=>L()))},no_subscribe:!0}),Y=X.end,w=X.close;return X.end=async()=>{return A=!0,f&&await new Promise((R)=>(f.once("close",R),f.end())),Y()},X.close=async()=>{return f&&await new Promise((R)=>(f.once("close",R),f.end())),w()},K;async function K(R,L,j=uw,y=uw){if(R=pO(R),!W)W=D(X,J,$.publications);let I={fn:L,onsubscribe:j},Q=S.has(R)?S.get(R).add(I):S.set(R,new Set([I])).get(R),V=()=>{Q.delete(I),Q.size===0&&S.delete(R)};return W.then((B)=>{return M(B),j(),f&&f.on("error",y),{unsubscribe:V,state:F,sql:X}})}function M(R){f=R.stream,F.pid=R.state.pid,F.secret=R.state.secret}async function D(R,L,j){if(!j)throw new Error("Missing publication names");let y=await R.unsafe(`CREATE_REPLICATION_SLOT ${L} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[I]=y,Q=await R.unsafe(`START_REPLICATION SLOT ${L} LOGICAL ${I.consistent_point} (proto_version '1', publication_names '${j}')`).writable(),V={lsn:Buffer.concat(I.consistent_point.split("/").map((_)=>Buffer.from(("00000000"+_).slice(-8),"hex")))};return Q.on("data",U),Q.on("error",B),Q.on("close",R.close),{stream:Q,state:y.state};function B(_){console.error("Unexpected error during logical streaming - reconnecting",_)}function U(_){if(_[0]===119)gO(_.subarray(25),V,R.options.parsers,h,$.transform);else if(_[0]===107&&_[17])V.lsn=_.subarray(1,9),l()}function h(_,s){let p=s.relation.schema+"."+s.relation.table;z("*",_,s),z("*:"+p,_,s),s.relation.keys.length&&z("*:"+p+"="+s.relation.keys.map(($T)=>_[$T.name]),_,s),z(s.command,_,s),z(s.command+":"+p,_,s),s.relation.keys.length&&z(s.command+":"+p+"="+s.relation.keys.map(($T)=>_[$T.name]),_,s)}function l(){let _=Buffer.alloc(34);_[0]=114,_.fill(V.lsn,1),_.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),Q.write(_)}}function z(R,L,j){S.has(R)&&S.get(R).forEach(({fn:y})=>y(L,j,R))}}function nO(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function gO(T,$,S,J,F){let W=(f,[A,X])=>(f[A.charCodeAt(0)]=X,f);Object.entries({R:(f)=>{let A=1,X=$[f.readUInt32BE(A)]={schema:f.toString("utf8",A+=4,A=f.indexOf(0,A))||"pg_catalog",table:f.toString("utf8",A+1,A=f.indexOf(0,A+1)),columns:Array(f.readUInt16BE(A+=2)),keys:[]};A+=2;let Y=0,w;while(A<f.length)w=X.columns[Y++]={key:f[A++],name:F.column.from?F.column.from(f.toString("utf8",A,A=f.indexOf(0,A))):f.toString("utf8",A,A=f.indexOf(0,A)),type:f.readUInt32BE(A+=1),parser:S[f.readUInt32BE(A)],atttypmod:f.readUInt32BE(A+=4)},w.key&&X.keys.push(w),A+=4},Y:()=>{},O:()=>{},B:(f)=>{$.date=nO(f.readBigInt64BE(9)),$.lsn=f.subarray(1,9)},I:(f)=>{let A=1,X=$[f.readUInt32BE(A)],{row:Y}=bW(f,X.columns,A+=7,F);J(Y,{command:"insert",relation:X})},D:(f)=>{let A=1,X=$[f.readUInt32BE(A)];A+=4;let Y=f[A]===75;J(Y||f[A]===79?bW(f,X.columns,A+=3,F).row:null,{command:"delete",relation:X,key:Y})},U:(f)=>{let A=1,X=$[f.readUInt32BE(A)];A+=4;let Y=f[A]===75,w=Y||f[A]===79?bW(f,X.columns,A+=3,F):null;w&&(A=w.i);let{row:K}=bW(f,X.columns,A+3,F);J(K,{command:"update",relation:X,key:Y,old:w&&w.row})},T:()=>{},C:()=>{}}).reduce(W,{})[T[0]](T)}function bW(T,$,S,J){let F,W,f,A=J.raw?new Array($.length):{};for(let X=0;X<$.length;X++)F=T[S++],W=$[X],f=F===110?null:F===117?void 0:W.parser===void 0?T.toString("utf8",S+4,S+=4+T.readUInt32BE(S)):W.parser.array===!0?W.parser(T.toString("utf8",S+5,S+=4+T.readUInt32BE(S))):W.parser(T.toString("utf8",S+4,S+=4+T.readUInt32BE(S))),J.raw?A[X]=J.raw===!0?f:J.value.from?J.value.from(f,W):f:A[W.name]=J.value.from?J.value.from(f,W):f;return{i:S,row:J.row.from?J.row.from(A):A}}function pO(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,S,J,F]=$;return(S||"*")+(J?":"+(J.indexOf(".")===-1?"public."+J:J):"")+(F?"="+F:"")}import iw from"stream";function X2(T,$,S=393216){return new Promise(async(J,F)=>{await T.begin(async(W)=>{let f;!$&&([{oid:$}]=await W`select lo_creat(-1) as oid`);let[{fd:A}]=await W`select lo_open(${$}, ${S}) as fd`,X={writable:w,readable:Y,close:()=>W`select lo_close(${A})`.then(f),tell:()=>W`select lo_tell64(${A})`,read:(K)=>W`select loread(${A}, ${K}) as data`,write:(K)=>W`select lowrite(${A}, ${K})`,truncate:(K)=>W`select lo_truncate64(${A}, ${K})`,seek:(K,M=0)=>W`select lo_lseek64(${A}, ${K}, ${M})`,size:()=>W`
78
+ `],[],IF,null,{simple:!0});K.resolve=([[Q],[u]])=>{hT.default_transaction_read_only=Q.transaction_read_only,hT.in_hot_standby=u.pg_is_in_recovery?"on":"off"},K.execute()}function o6(K){q&&(q.cursorFn||q.describeFirst)&&F$(lJ);let Q=pT.postgres(SA(K));q&&q.retried?fJ(q.retried):q&&q.prepared&&hG.has(Q.routine)?t6(q,Q):fJ(Q)}function t6(K,Q){delete k$[K.signature],K.retried=Q,IF(K)}function d6(K){if(!D)return;let Q=9;while(K[Q++]!==0);D(K.toString("utf8",9,Q-1),K.toString("utf8",Q,K.length-1))}async function i6(){try{let K=await Promise.resolve(q.cursorFn(p));cT=0,K===BF?F$(X7(q.portal)):(p=new CS,F$(hA("",q.cursorRows)))}catch(K){F$(lJ),q.reject(K)}}function u6(){p.count&&q.cursorFn(p),q.resolve(p)}function l6(){tT=new JA.Writable({autoDestroy:!0,write(K,Q,u){_.write(i().d().raw(K).end(),u)},destroy(K,Q){Q(K),_.write(i().f().str(K+i.N).end()),tT=null},final(K){_.write(i().c().end()),xF=K}}),q.resolve(tT)}function r6(){tT=new JA.Readable({read(){_.resume()}}),q.resolve(tT)}function a6(){tT=new JA.Duplex({autoDestroy:!0,read(){_.resume()},write(K,Q,u){_.write(i().d().raw(K).end(),u)},destroy(K,Q){Q(K),_.write(i().f().str(K+i.N).end()),tT=null},final(K){_.write(i().c().end()),xF=K}}),q.resolve(tT)}function s6(K){tT&&(tT.push(K.subarray(5))||_.pause())}function e6(){tT&&tT.push(null),tT=null}function T7(K){z?z(SA(K)):console.log(SA(K))}function $7(){}function J7(){fJ(pT.notSupported("FunctionCallResponse"))}function S7(){fJ(pT.notSupported("NegotiateProtocolVersion"))}function F7(K){console.error("Postgres.js : Unknown Message:",K[0])}function f7(K,Q){console.error("Postgres.js : Unknown Auth:",Q)}function W7(K,Q,u="",HT=""){let vT,G$;return i().B().str(HT+i.N).str(u+i.N).i16(0).i16(K.length),K.forEach((D$,bJ)=>{if(D$===null)return i.i32(4294967295);G$=Q[bJ],K[bJ]=D$=G$ in T.serializers?T.serializers[G$](D$):""+D$,vT=i.i,i.inc(4).str(D$).i32(i.i-vT-4,vT)}),i.i16(0),i.end()}function bA(K,Q,u,HT=""){return i().P().str(HT+i.N).str(K+i.N).i16(Q.length),Q.forEach((vT,G$)=>i.i32(u[G$]||0)),i.end()}function A7(K,Q=""){return i().D().str(K).str(Q+i.N).end()}function hA(K="",Q=0){return Buffer.concat([i().E().str(K+i.N).i32(Q).end(),tM])}function X7(K=""){return Buffer.concat([i().C().str("P").str(K+i.N).end(),i().S().end()])}function w7(){return s||i().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:A,database:Y,client_encoding:"UTF8"},T.connection)).filter(([,K])=>K).map(([K,Q])=>K+i.N+Q).join(i.N)).z(2).end(0)}}function SA(T){let $={},J=5;for(let S=5;S<T.length-1;S++)if(T[S]===0)$[vG[T[J]]]=T.toString("utf8",J+1,S),J=S+1;return $}function dM(T){return r0.createHash("md5").update(T).digest("hex")}function hf(T,$){return r0.createHmac("sha256",T).update($).digest()}function mG(T){return r0.createHash("sha256").update(T).digest()}function PG(T,$){let J=Math.max(T.length,$.length),S=Buffer.allocUnsafe(J);for(let F=0;F<J;F++)S[F]=T[F]^$[F];return S}function FA(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:LF,start:LF};let J;return{cancel(){J&&(clearTimeout(J),J=null)},start(){J&&clearTimeout(J),J=setTimeout(S,$*1000,arguments)}};function S(F){T.apply(null,F),J=null}}var uM=()=>{};function WA(T,$){let J=new Map,S="postgresjs_"+Math.random().toString(36).slice(2),F={},f,W,A=!1,X=M.sql=T({...$,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...$.connection,replication:"database"},onclose:async function(){if(A)return;W=null,F.pid=F.secret=void 0,G(await z(X,S,$.publications)),J.forEach((R)=>R.forEach(({onsubscribe:L})=>L()))},no_subscribe:!0}),w=X.end,Y=X.close;return X.end=async()=>{return A=!0,W&&await new Promise((R)=>(W.once("close",R),W.end())),w()},X.close=async()=>{return W&&await new Promise((R)=>(W.once("close",R),W.end())),Y()},M;async function M(R,L,x=uM,y=uM){if(R=gG(R),!f)f=z(X,S,$.publications);let I={fn:L,onsubscribe:x},E=J.has(R)?J.get(R).add(I):J.set(R,new Set([I])).get(R),V=()=>{E.delete(I),E.size===0&&J.delete(R)};return f.then((B)=>{return G(B),x(),W&&W.on("error",y),{unsubscribe:V,state:F,sql:X}})}function G(R){W=R.stream,F.pid=R.state.pid,F.secret=R.state.secret}async function z(R,L,x){if(!x)throw new Error("Missing publication names");let y=await R.unsafe(`CREATE_REPLICATION_SLOT ${L} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[I]=y,E=await R.unsafe(`START_REPLICATION SLOT ${L} LOGICAL ${I.consistent_point} (proto_version '1', publication_names '${x}')`).writable(),V={lsn:Buffer.concat(I.consistent_point.split("/").map((_)=>Buffer.from(("00000000"+_).slice(-8),"hex")))};return E.on("data",U),E.on("error",B),E.on("close",R.close),{stream:E,state:y.state};function B(_){console.error("Unexpected error during logical streaming - reconnecting",_)}function U(_){if(_[0]===119)cG(_.subarray(25),V,R.options.parsers,h,$.transform);else if(_[0]===107&&_[17])V.lsn=_.subarray(1,9),l()}function h(_,s){let p=s.relation.schema+"."+s.relation.table;D("*",_,s),D("*:"+p,_,s),s.relation.keys.length&&D("*:"+p+"="+s.relation.keys.map(($T)=>_[$T.name]),_,s),D(s.command,_,s),D(s.command+":"+p,_,s),s.relation.keys.length&&D(s.command+":"+p+"="+s.relation.keys.map(($T)=>_[$T.name]),_,s)}function l(){let _=Buffer.alloc(34);_[0]=114,_.fill(V.lsn,1),_.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),E.write(_)}}function D(R,L,x){J.has(R)&&J.get(R).forEach(({fn:y})=>y(L,x,R))}}function nG(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function cG(T,$,J,S,F){let f=(W,[A,X])=>(W[A.charCodeAt(0)]=X,W);Object.entries({R:(W)=>{let A=1,X=$[W.readUInt32BE(A)]={schema:W.toString("utf8",A+=4,A=W.indexOf(0,A))||"pg_catalog",table:W.toString("utf8",A+1,A=W.indexOf(0,A+1)),columns:Array(W.readUInt16BE(A+=2)),keys:[]};A+=2;let w=0,Y;while(A<W.length)Y=X.columns[w++]={key:W[A++],name:F.column.from?F.column.from(W.toString("utf8",A,A=W.indexOf(0,A))):W.toString("utf8",A,A=W.indexOf(0,A)),type:W.readUInt32BE(A+=1),parser:J[W.readUInt32BE(A)],atttypmod:W.readUInt32BE(A+=4)},Y.key&&X.keys.push(Y),A+=4},Y:()=>{},O:()=>{},B:(W)=>{$.date=nG(W.readBigInt64BE(9)),$.lsn=W.subarray(1,9)},I:(W)=>{let A=1,X=$[W.readUInt32BE(A)],{row:w}=vf(W,X.columns,A+=7,F);S(w,{command:"insert",relation:X})},D:(W)=>{let A=1,X=$[W.readUInt32BE(A)];A+=4;let w=W[A]===75;S(w||W[A]===79?vf(W,X.columns,A+=3,F).row:null,{command:"delete",relation:X,key:w})},U:(W)=>{let A=1,X=$[W.readUInt32BE(A)];A+=4;let w=W[A]===75,Y=w||W[A]===79?vf(W,X.columns,A+=3,F):null;Y&&(A=Y.i);let{row:M}=vf(W,X.columns,A+3,F);S(M,{command:"update",relation:X,key:w,old:Y&&Y.row})},T:()=>{},C:()=>{}}).reduce(f,{})[T[0]](T)}function vf(T,$,J,S){let F,f,W,A=S.raw?new Array($.length):{};for(let X=0;X<$.length;X++)F=T[J++],f=$[X],W=F===110?null:F===117?void 0:f.parser===void 0?T.toString("utf8",J+4,J+=4+T.readUInt32BE(J)):f.parser.array===!0?f.parser(T.toString("utf8",J+5,J+=4+T.readUInt32BE(J))):f.parser(T.toString("utf8",J+4,J+=4+T.readUInt32BE(J))),S.raw?A[X]=S.raw===!0?W:S.value.from?S.value.from(W,f):W:A[f.name]=S.value.from?S.value.from(W,f):W;return{i:J,row:S.row.from?S.row.from(A):A}}function gG(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,J,S,F]=$;return(J||"*")+(S?":"+(S.indexOf(".")===-1?"public."+S:S):"")+(F?"="+F:"")}import lM from"stream";function AA(T,$,J=393216){return new Promise(async(S,F)=>{await T.begin(async(f)=>{let W;!$&&([{oid:$}]=await f`select lo_creat(-1) as oid`);let[{fd:A}]=await f`select lo_open(${$}, ${J}) as fd`,X={writable:Y,readable:w,close:()=>f`select lo_close(${A})`.then(W),tell:()=>f`select lo_tell64(${A})`,read:(M)=>f`select loread(${A}, ${M}) as data`,write:(M)=>f`select lowrite(${A}, ${M})`,truncate:(M)=>f`select lo_truncate64(${A}, ${M})`,seek:(M,G=0)=>f`select lo_lseek64(${A}, ${M}, ${G})`,size:()=>f`
79
79
  select
80
80
  lo_lseek64(${A}, location, 0) as position,
81
81
  seek.size
@@ -85,18 +85,18 @@ ${f}`)}let X=JS.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(PT.
85
85
  tell.location
86
86
  from (select lo_tell64($1) as location) tell
87
87
  ) seek
88
- `};return J(X),new Promise(async(K)=>f=K);async function Y({highWaterMark:K=16384,start:M=0,end:D=1/0}={}){let z=D-M;return M&&await X.seek(M),new iw.Readable({highWaterMark:K,async read(R){let L=R>z?R-z:R;z-=R;let[{data:j}]=await X.read(L);if(this.push(j),j.length<R)this.push(null)}})}async function w({highWaterMark:K=16384,start:M=0}={}){return M&&await X.seek(M),new iw.Writable({highWaterMark:K,write(D,z,R){X.write(D).then(()=>R(),R)}})}}).catch(F)})}Object.assign(hW,{PostgresError:yF,toPascal:NJ,pascal:$2,toCamel:LJ,camel:T2,toKebab:CJ,kebab:S2,fromPascal:d0,fromCamel:t0,fromKebab:u0,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var NF=hW;function hW(T,$){let S=dO(T,$),J=S.no_subscribe||A2(hW,{...S}),F=!1,W=m$(),f=m$(),A=m$(),X=m$(),Y=m$(),w=m$(),K=m$(),M=m$(),D={connecting:f,reserved:A,closed:X,ended:Y,open:w,busy:K,full:M},z=[...Array(S.max)].map(()=>f2(S,D,{onopen:U$,onend:hT,onclose:DS})),R=L(h);return Object.assign(R,{get parameters(){return S.parameters},largeObject:X2.bind(null,R),subscribe:J,CLOSE:BF,END:BF,PostgresError:yF,options:S,reserve:I,listen:j,begin:Q,close:p,end:s}),R;function L(N){return N.debug=S.debug,Object.entries(S.types).reduce((fT,[VT,gT])=>{return fT[VT]=(ZT)=>new zS(ZT,gT.to),fT},d),Object.assign(OT,{types:d,typed:d,unsafe:jT,notify:y,array:U,json:B,file:tT}),OT;function d(fT,VT){return new zS(fT,VT)}function OT(fT,...VT){return fT&&Array.isArray(fT.raw)?new d$(fT,VT,N,_):typeof fT==="string"&&!VT.length?new i0(S.transform.column.to?S.transform.column.to(fT):fT):new xW(fT,VT)}function jT(fT,VT=[],gT={}){return arguments.length===2&&!Array.isArray(VT)&&(gT=VT,VT=[]),new d$([fT],VT,N,_,{prepare:!1,...gT,simple:"simple"in gT?gT.simple:VT.length===0})}function tT(fT,VT=[],gT={}){return arguments.length===2&&!Array.isArray(VT)&&(gT=VT,VT=[]),new d$([],VT,(NT)=>{tO.readFile(fT,"utf8",(w$,BT)=>{if(w$)return NT.reject(w$);NT.strings=[BT],N(NT)})},_,{...gT,simple:"simple"in gT?gT.simple:VT.length===0})}}async function j(N,d,OT){let jT={fn:d,onlisten:OT},tT=j.sql||(j.sql=hW({...S,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(j.channels).forEach(([NT,{listeners:w$}])=>{delete j.channels[NT],Promise.all(w$.map((BT)=>j(NT,BT.fn,BT.onlisten).catch(()=>{})))})},onnotify(NT,w$){NT in j.channels&&j.channels[NT].listeners.forEach((BT)=>BT.fn(w$))}})),fT=j.channels||(j.channels={});if(N in fT){fT[N].listeners.push(jT);let NT=await fT[N].result;return jT.onlisten&&jT.onlisten(),{state:NT.state,unlisten:ZT}}fT[N]={result:tT`listen ${tT.unsafe('"'+N.replace(/"/g,'""')+'"')}`,listeners:[jT]};let gT=await fT[N].result;return jT.onlisten&&jT.onlisten(),{state:gT.state,unlisten:ZT};async function ZT(){if(N in fT===!1)return;if(fT[N].listeners=fT[N].listeners.filter((NT)=>NT!==jT),fT[N].listeners.length)return;return delete fT[N],tT`unlisten ${tT.unsafe('"'+N.replace(/"/g,'""')+'"')}`}}async function y(N,d){return await R`select pg_notify(${N}, ${""+d})`}async function I(){let N=m$(),d=w.length?w.shift():await new Promise((tT)=>{W.push({reserve:tT}),X.length&&ET(X.shift())});V(d,A),d.reserved=()=>N.length?d.execute(N.shift()):V(d,A),d.reserved.release=!0;let OT=L(jT);return OT.release=()=>{d.reserved=null,U$(d)},OT;function jT(tT){d.queue===M?N.push(tT):d.execute(tT)||V(d,M)}}async function Q(N,d){!d&&(d=N,N="");let OT=m$(),jT=0,tT,fT=null;try{return await R.unsafe("begin "+N.replace(/[^a-z ]/ig,""),[],{onexecute:gT}).execute(),await Promise.race([VT(tT,d),new Promise((ZT,NT)=>tT.onclose=NT)])}catch(ZT){throw ZT}async function VT(ZT,NT,w$){let BT=L(dT);BT.savepoint=bS,BT.prepare=(CT)=>fT=CT.replace(/[^a-z0-9$-_. ]/gi);let u$,K$;w$&&await BT`savepoint ${BT(w$)}`;try{if(K$=await new Promise((CT,i$)=>{let fS=NT(BT);Promise.resolve(Array.isArray(fS)?Promise.all(fS):fS).then(CT,i$)}),u$)throw u$}catch(CT){throw await(w$?BT`rollback to ${BT(w$)}`:BT`rollback`),CT instanceof yF&&CT.code==="25P02"&&u$||CT}if(!w$)fT?await BT`prepare transaction '${BT.unsafe(fT)}'`:await BT`commit`;return K$;function bS(CT,i$){if(CT&&Array.isArray(CT.raw))return bS((fS)=>fS.apply(fS,arguments));return arguments.length===1&&(i$=CT,CT=null),VT(ZT,i$,"s"+jT+++(CT?"_"+CT:""))}function dT(CT){CT.catch((i$)=>u$||(u$=i$)),ZT.queue===M?OT.push(CT):ZT.execute(CT)||V(ZT,M)}}function gT(ZT){tT=ZT,V(ZT,A),ZT.reserved=()=>OT.length?ZT.execute(OT.shift()):V(ZT,A)}}function V(N,d){return N.queue.remove(N),d.push(N),N.queue=d,d===w?N.idleTimer.start():N.idleTimer.cancel(),N}function B(N){return new zS(N,3802)}function U(N,d){if(!Array.isArray(N))return U(Array.from(arguments));return new zS(N,d||(N.length?NW(N)||25:0),S.shared.typeArrayMap)}function h(N){if(F)return N.reject(oT.connection("CONNECTION_ENDED",S,S));if(w.length)return l(w.shift(),N);if(X.length)return ET(X.shift(),N);K.length?l(K.shift(),N):W.push(N)}function l(N,d){return N.execute(d)?V(N,K):V(N,M)}function _(N){return new Promise((d,OT)=>{N.state?N.active?f2(S).cancel(N.state,d,OT):N.cancelled={resolve:d,reject:OT}:(W.remove(N),N.cancelled=!0,N.reject(oT.generic("57014","canceling statement due to user request")),d())})}async function s({timeout:N=null}={}){if(F)return F;await 1;let d;return F=Promise.race([new Promise((OT)=>N!==null&&(d=setTimeout($T,N*1000,OT))),Promise.all(z.map((OT)=>OT.end()).concat(j.sql?j.sql.end({timeout:0}):[],J.sql?J.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(d))}async function p(){await Promise.all(z.map((N)=>N.end()))}async function $T(N){await Promise.all(z.map((d)=>d.terminate()));while(W.length)W.shift().reject(oT.connection("CONNECTION_DESTROYED",S));N()}function ET(N,d){return V(N,f),N.connect(d),N}function hT(N){V(N,Y)}function U$(N){if(W.length===0)return V(N,w);let d=Math.ceil(W.length/(f.length+1)),OT=!0;while(OT&&W.length&&d-- >0){let jT=W.shift();if(jT.reserve)return jT.reserve(N);OT=N.execute(jT)}OT?V(N,K):V(N,M)}function DS(N,d){V(N,X),N.reserved=null,N.onclose&&(N.onclose(d),N.onclose=null),S.onclose&&S.onclose(N.id),W.length&&ET(N,W.shift())}}function dO(T,$){if(T&&T.shared)return T;let S=process.env,J=(!T||typeof T==="string"?$:T)||{},{url:F,multihost:W}=aO(T),f=[...F.searchParams].reduce((M,[D,z])=>(M[D]=z,M),{}),A=J.hostname||J.host||W||F.hostname||S.PGHOST||"localhost",X=J.port||F.port||S.PGPORT||5432,Y=J.user||J.username||F.username||S.PGUSERNAME||S.PGUSER||sO();J.no_prepare&&(J.prepare=!1),f.sslmode&&(f.ssl=f.sslmode,delete f.sslmode),"timeout"in J&&(console.log("The timeout option is deprecated, use idle_timeout instead"),J.idle_timeout=J.timeout),f.sslrootcert==="system"&&(f.ssl="verify-full");let w=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],K={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:lO,max_pipeline:100,backoff:iO,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(A)?A:A.split(",").map((M)=>M.split(":")[0]),port:Array.isArray(X)?X:A.split(",").map((M)=>parseInt(M.split(":")[1]||X)),path:J.path||A.indexOf("/")>-1&&A+"/.s.PGSQL."+X,database:J.database||J.db||(F.pathname||"").slice(1)||S.PGDATABASE||Y,user:Y,pass:J.pass||J.password||F.password||S.PGPASSWORD||"",...Object.entries(K).reduce((M,[D,z])=>{let R=D in J?J[D]:(D in f)?f[D]==="disable"||f[D]==="false"?!1:f[D]:S["PG"+D.toUpperCase()]||z;return M[D]=typeof R==="string"&&w.includes(D)?+R:R,M},{}),connection:{application_name:"postgres.js",...J.connection,...Object.entries(f).reduce((M,[D,z])=>((D in K)||(M[D]=z),M),{})},types:J.types||{},target_session_attrs:uO(J,F,S),onnotice:J.onnotice,onnotify:J.onnotify,onclose:J.onclose,onparameter:J.onparameter,socket:J.socket,transform:rO(J.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...vw(J.types)}}function uO(T,$,S){let J=T.target_session_attrs||$.searchParams.get("target_session_attrs")||S.PGTARGETSESSIONATTRS;if(!J||["read-write","read-only","primary","standby","prefer-standby"].includes(J))return J;throw new Error("target_session_attrs "+J+" is not supported")}function iO(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function lO(){return 60*(30+Math.random()*30)}function rO(T){return{undefined:T.undefined,column:{from:typeof T.column==="function"?T.column:T.column&&T.column.from,to:T.column&&T.column.to},value:{from:typeof T.value==="function"?T.value:T.value&&T.value.from,to:T.value&&T.value.to},row:{from:typeof T.row==="function"?T.row:T.row&&T.row.from,to:T.row&&T.row.to}}}function aO(T){if(!T||typeof T!=="string")return{url:{searchParams:new Map}};let $=T;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let S=new URL(T.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(S.username),password:decodeURIComponent(S.password),host:S.host,hostname:S.hostname,port:S.port,pathname:S.pathname,searchParams:S.searchParams},multihost:$.indexOf(",")>-1&&$}}function sO(){try{return oO.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class mT{static[G]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===LT)return{...T[LT],selectedFields:new Proxy(T[LT].selectedFields,this)};if(typeof $==="symbol")return T[$];let J=(k(T,T$)?T._.selectedFields:k(T,N$)?T[LT].selectedFields:T)[$];if(k(J,m.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!J.isSelectionField)return J.sql;let F=J.clone();return F.isSelectionField=!0,F}if(k(J,m)){if(this.config.sqlBehavior==="sql")return J;throw new Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(k(J,kT)){if(this.config.alias)return new Proxy(J,new VF(new Proxy(J.table,new P0(this.config.alias,this.config.replaceOriginalName??!1))));return J}if(typeof J!=="object"||J===null)return J;return new Proxy(J,new mT(this.config))}}class vW extends _${constructor(T,$,S,J){super();this.session=$,this.dialect=S,this.config={table:T,withList:J}}static[G]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[P.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=t$(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return UT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return UT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new mT({alias:J$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function eO(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((S)=>S.toLowerCase()).join("_")}function T5(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((S,J,F)=>{let W=F===0?J.toLowerCase():`${J[0].toUpperCase()}${J.slice(1)}`;return S+W},"")}function $5(T){return T}class Y2{static[G]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?eO:T==="camelCase"?T5:$5}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[P.Symbol.Schema]??"public",S=T.table[P.Symbol.OriginalName],J=`${$}.${S}.${T.name}`;if(!this.cache[J])this.cacheTable(T.table);return this.cache[J]}cacheTable(T){let $=T[P.Symbol.Schema]??"public",S=T[P.Symbol.OriginalName],J=`${$}.${S}`;if(!this.cachedTables[J]){for(let F of Object.values(T[P.Symbol.Columns])){let W=`${J}.${F.name}`;this.cache[W]=this.convert(F.name)}this.cachedTables[J]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class r0 extends N${static[G]="PgViewBase"}class jJ{static[G]="PgDialect";casing;constructor(T){this.casing=new Y2(T?.casing)}async migrate(T,$,S){let J=typeof S==="string"?"__drizzle_migrations":S.migrationsTable??"__drizzle_migrations",F=typeof S==="string"?"drizzle":S.migrationsSchema??"drizzle",W=H`
89
- CREATE TABLE IF NOT EXISTS ${H.identifier(F)}.${H.identifier(J)} (
88
+ `};return S(X),new Promise(async(M)=>W=M);async function w({highWaterMark:M=16384,start:G=0,end:z=1/0}={}){let D=z-G;return G&&await X.seek(G),new lM.Readable({highWaterMark:M,async read(R){let L=R>D?R-D:R;D-=R;let[{data:x}]=await X.read(L);if(this.push(x),x.length<R)this.push(null)}})}async function Y({highWaterMark:M=16384,start:G=0}={}){return G&&await X.seek(G),new lM.Writable({highWaterMark:M,write(z,D,R){X.write(z).then(()=>R(),R)}})}}).catch(F)})}Object.assign(mf,{PostgresError:yF,toPascal:LS,pascal:TA,toCamel:yS,camel:e2,toKebab:NS,kebab:$A,fromPascal:i0,fromCamel:d0,fromKebab:u0,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var NF=mf;function mf(T,$){let J=tG(T,$),S=J.no_subscribe||WA(mf,{...J}),F=!1,f=m$(),W=m$(),A=m$(),X=m$(),w=m$(),Y=m$(),M=m$(),G=m$(),z={connecting:W,reserved:A,closed:X,ended:w,open:Y,busy:M,full:G},D=[...Array(J.max)].map(()=>fA(J,z,{onopen:k$,onend:hT,onclose:HJ})),R=L(h);return Object.assign(R,{get parameters(){return J.parameters},largeObject:AA.bind(null,R),subscribe:S,CLOSE:BF,END:BF,PostgresError:yF,options:J,reserve:I,listen:x,begin:E,close:p,end:s}),R;function L(N){return N.debug=J.debug,Object.entries(J.types).reduce((fT,[BT,cT])=>{return fT[BT]=(ZT)=>new KJ(ZT,cT.to),fT},d),Object.assign(KT,{types:d,typed:d,unsafe:IT,notify:y,array:U,json:B,file:oT}),KT;function d(fT,BT){return new KJ(fT,BT)}function KT(fT,...BT){return fT&&Array.isArray(fT.raw)?new t$(fT,BT,N,_):typeof fT==="string"&&!BT.length?new l0(J.transform.column.to?J.transform.column.to(fT):fT):new If(fT,BT)}function IT(fT,BT=[],cT={}){return arguments.length===2&&!Array.isArray(BT)&&(cT=BT,BT=[]),new t$([fT],BT,N,_,{prepare:!1,...cT,simple:"simple"in cT?cT.simple:BT.length===0})}function oT(fT,BT=[],cT={}){return arguments.length===2&&!Array.isArray(BT)&&(cT=BT,BT=[]),new t$([],BT,(CT)=>{oG.readFile(fT,"utf8",(w$,yT)=>{if(w$)return CT.reject(w$);CT.strings=[yT],N(CT)})},_,{...cT,simple:"simple"in cT?cT.simple:BT.length===0})}}async function x(N,d,KT){let IT={fn:d,onlisten:KT},oT=x.sql||(x.sql=mf({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(x.channels).forEach(([CT,{listeners:w$}])=>{delete x.channels[CT],Promise.all(w$.map((yT)=>x(CT,yT.fn,yT.onlisten).catch(()=>{})))})},onnotify(CT,w$){CT in x.channels&&x.channels[CT].listeners.forEach((yT)=>yT.fn(w$))}})),fT=x.channels||(x.channels={});if(N in fT){fT[N].listeners.push(IT);let CT=await fT[N].result;return IT.onlisten&&IT.onlisten(),{state:CT.state,unlisten:ZT}}fT[N]={result:oT`listen ${oT.unsafe('"'+N.replace(/"/g,'""')+'"')}`,listeners:[IT]};let cT=await fT[N].result;return IT.onlisten&&IT.onlisten(),{state:cT.state,unlisten:ZT};async function ZT(){if(N in fT===!1)return;if(fT[N].listeners=fT[N].listeners.filter((CT)=>CT!==IT),fT[N].listeners.length)return;return delete fT[N],oT`unlisten ${oT.unsafe('"'+N.replace(/"/g,'""')+'"')}`}}async function y(N,d){return await R`select pg_notify(${N}, ${""+d})`}async function I(){let N=m$(),d=Y.length?Y.shift():await new Promise((oT)=>{f.push({reserve:oT}),X.length&&QT(X.shift())});V(d,A),d.reserved=()=>N.length?d.execute(N.shift()):V(d,A),d.reserved.release=!0;let KT=L(IT);return KT.release=()=>{d.reserved=null,k$(d)},KT;function IT(oT){d.queue===G?N.push(oT):d.execute(oT)||V(d,G)}}async function E(N,d){!d&&(d=N,N="");let KT=m$(),IT=0,oT,fT=null;try{return await R.unsafe("begin "+N.replace(/[^a-z ]/ig,""),[],{onexecute:cT}).execute(),await Promise.race([BT(oT,d),new Promise((ZT,CT)=>oT.onclose=CT)])}catch(ZT){throw ZT}async function BT(ZT,CT,w$){let yT=L(tT);yT.savepoint=qJ,yT.prepare=(jT)=>fT=jT.replace(/[^a-z0-9$-_. ]/gi);let d$,Y$;w$&&await yT`savepoint ${yT(w$)}`;try{if(Y$=await new Promise((jT,i$)=>{let FJ=CT(yT);Promise.resolve(Array.isArray(FJ)?Promise.all(FJ):FJ).then(jT,i$)}),d$)throw d$}catch(jT){throw await(w$?yT`rollback to ${yT(w$)}`:yT`rollback`),jT instanceof yF&&jT.code==="25P02"&&d$||jT}if(!w$)fT?await yT`prepare transaction '${yT.unsafe(fT)}'`:await yT`commit`;return Y$;function qJ(jT,i$){if(jT&&Array.isArray(jT.raw))return qJ((FJ)=>FJ.apply(FJ,arguments));return arguments.length===1&&(i$=jT,jT=null),BT(ZT,i$,"s"+IT+++(jT?"_"+jT:""))}function tT(jT){jT.catch((i$)=>d$||(d$=i$)),ZT.queue===G?KT.push(jT):ZT.execute(jT)||V(ZT,G)}}function cT(ZT){oT=ZT,V(ZT,A),ZT.reserved=()=>KT.length?ZT.execute(KT.shift()):V(ZT,A)}}function V(N,d){return N.queue.remove(N),d.push(N),N.queue=d,d===Y?N.idleTimer.start():N.idleTimer.cancel(),N}function B(N){return new KJ(N,3802)}function U(N,d){if(!Array.isArray(N))return U(Array.from(arguments));return new KJ(N,d||(N.length?jf(N)||25:0),J.shared.typeArrayMap)}function h(N){if(F)return N.reject(pT.connection("CONNECTION_ENDED",J,J));if(Y.length)return l(Y.shift(),N);if(X.length)return QT(X.shift(),N);M.length?l(M.shift(),N):f.push(N)}function l(N,d){return N.execute(d)?V(N,M):V(N,G)}function _(N){return new Promise((d,KT)=>{N.state?N.active?fA(J).cancel(N.state,d,KT):N.cancelled={resolve:d,reject:KT}:(f.remove(N),N.cancelled=!0,N.reject(pT.generic("57014","canceling statement due to user request")),d())})}async function s({timeout:N=null}={}){if(F)return F;await 1;let d;return F=Promise.race([new Promise((KT)=>N!==null&&(d=setTimeout($T,N*1000,KT))),Promise.all(D.map((KT)=>KT.end()).concat(x.sql?x.sql.end({timeout:0}):[],S.sql?S.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(d))}async function p(){await Promise.all(D.map((N)=>N.end()))}async function $T(N){await Promise.all(D.map((d)=>d.terminate()));while(f.length)f.shift().reject(pT.connection("CONNECTION_DESTROYED",J));N()}function QT(N,d){return V(N,W),N.connect(d),N}function hT(N){V(N,w)}function k$(N){if(f.length===0)return V(N,Y);let d=Math.ceil(f.length/(W.length+1)),KT=!0;while(KT&&f.length&&d-- >0){let IT=f.shift();if(IT.reserve)return IT.reserve(N);KT=N.execute(IT)}KT?V(N,M):V(N,G)}function HJ(N,d){V(N,X),N.reserved=null,N.onclose&&(N.onclose(d),N.onclose=null),J.onclose&&J.onclose(N.id),f.length&&QT(N,f.shift())}}function tG(T,$){if(T&&T.shared)return T;let J=process.env,S=(!T||typeof T==="string"?$:T)||{},{url:F,multihost:f}=rG(T),W=[...F.searchParams].reduce((G,[z,D])=>(G[z]=D,G),{}),A=S.hostname||S.host||f||F.hostname||J.PGHOST||"localhost",X=S.port||F.port||J.PGPORT||5432,w=S.user||S.username||F.username||J.PGUSERNAME||J.PGUSER||aG();S.no_prepare&&(S.prepare=!1),W.sslmode&&(W.ssl=W.sslmode,delete W.sslmode),"timeout"in S&&(console.log("The timeout option is deprecated, use idle_timeout instead"),S.idle_timeout=S.timeout),W.sslrootcert==="system"&&(W.ssl="verify-full");let Y=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],M={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:uG,max_pipeline:100,backoff:iG,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(A)?A:A.split(",").map((G)=>G.split(":")[0]),port:Array.isArray(X)?X:A.split(",").map((G)=>parseInt(G.split(":")[1]||X)),path:S.path||A.indexOf("/")>-1&&A+"/.s.PGSQL."+X,database:S.database||S.db||(F.pathname||"").slice(1)||J.PGDATABASE||w,user:w,pass:S.pass||S.password||F.password||J.PGPASSWORD||"",...Object.entries(M).reduce((G,[z,D])=>{let R=z in S?S[z]:(z in W)?W[z]==="disable"||W[z]==="false"?!1:W[z]:J["PG"+z.toUpperCase()]||D;return G[z]=typeof R==="string"&&Y.includes(z)?+R:R,G},{}),connection:{application_name:"postgres.js",...S.connection,...Object.entries(W).reduce((G,[z,D])=>((z in M)||(G[z]=D),G),{})},types:S.types||{},target_session_attrs:dG(S,F,J),onnotice:S.onnotice,onnotify:S.onnotify,onclose:S.onclose,onparameter:S.onparameter,socket:S.socket,transform:lG(S.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...mM(S.types)}}function dG(T,$,J){let S=T.target_session_attrs||$.searchParams.get("target_session_attrs")||J.PGTARGETSESSIONATTRS;if(!S||["read-write","read-only","primary","standby","prefer-standby"].includes(S))return S;throw new Error("target_session_attrs "+S+" is not supported")}function iG(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function uG(){return 60*(30+Math.random()*30)}function lG(T){return{undefined:T.undefined,column:{from:typeof T.column==="function"?T.column:T.column&&T.column.from,to:T.column&&T.column.to},value:{from:typeof T.value==="function"?T.value:T.value&&T.value.from,to:T.value&&T.value.to},row:{from:typeof T.row==="function"?T.row:T.row&&T.row.from,to:T.row&&T.row.to}}}function rG(T){if(!T||typeof T!=="string")return{url:{searchParams:new Map}};let $=T;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let J=new URL(T.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(J.username),password:decodeURIComponent(J.password),host:J.host,hostname:J.hostname,port:J.port,pathname:J.pathname,searchParams:J.searchParams},multihost:$.indexOf(",")>-1&&$}}function aG(){try{return pG.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class PT{static[H]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===NT)return{...T[NT],selectedFields:new Proxy(T[NT].selectedFields,this)};if(typeof $==="symbol")return T[$];let S=(k(T,eT)?T._.selectedFields:k(T,y$)?T[NT].selectedFields:T)[$];if(k(S,P.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!S.isSelectionField)return S.sql;let F=S.clone();return F.isSelectionField=!0,F}if(k(S,P)){if(this.config.sqlBehavior==="sql")return S;throw new Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(k(S,UT)){if(this.config.alias)return new Proxy(S,new VF(new Proxy(S.table,new P0(this.config.alias,this.config.replaceOriginalName??!1))));return S}if(typeof S!=="object"||S===null)return S;return new Proxy(S,new PT(this.config))}}class Pf extends R${constructor(T,$,J,S){super();this.session=$,this.dialect=J,this.config={table:T,withList:S}}static[H]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[m.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=o$(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return VT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new PT({alias:S$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function sG(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function eG(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((J,S,F)=>{let f=F===0?S.toLowerCase():`${S[0].toUpperCase()}${S.slice(1)}`;return J+f},"")}function TK(T){return T}class XA{static[H]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?sG:T==="camelCase"?eG:TK}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[m.Symbol.Schema]??"public",J=T.table[m.Symbol.OriginalName],S=`${$}.${J}.${T.name}`;if(!this.cache[S])this.cacheTable(T.table);return this.cache[S]}cacheTable(T){let $=T[m.Symbol.Schema]??"public",J=T[m.Symbol.OriginalName],S=`${$}.${J}`;if(!this.cachedTables[S]){for(let F of Object.values(T[m.Symbol.Columns])){let f=`${S}.${F.name}`;this.cache[f]=this.convert(F.name)}this.cachedTables[S]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class a0 extends y${static[H]="PgViewBase"}class jS{static[H]="PgDialect";casing;constructor(T){this.casing=new XA(T?.casing)}async migrate(T,$,J){let S=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",F=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",f=O`
89
+ CREATE TABLE IF NOT EXISTS ${O.identifier(F)}.${O.identifier(S)} (
90
90
  id SERIAL PRIMARY KEY,
91
91
  hash text NOT NULL,
92
92
  created_at bigint
93
93
  )
94
- `;await $.execute(H`CREATE SCHEMA IF NOT EXISTS ${H.identifier(F)}`),await $.execute(W);let A=(await $.all(H`select id, hash, created_at from ${H.identifier(F)}.${H.identifier(J)} order by created_at desc limit 1`))[0];await $.transaction(async(X)=>{for await(let Y of T)if(!A||Number(A.created_at)<Y.folderMillis){for(let w of Y.sql)await X.execute(H.raw(w));await X.execute(H`insert into ${H.identifier(F)}.${H.identifier(J)} ("hash", "created_at") values(${Y.hash}, ${Y.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let $=[H`with `];for(let[S,J]of T.entries())if($.push(H`${H.identifier(J._.alias)} as (${J._.sql})`),S<T.length-1)$.push(H`, `);return $.push(H` `),H.join($)}buildDeleteQuery({table:T,where:$,returning:S,withList:J}){let F=this.buildWithCTE(J),W=S?H` returning ${this.buildSelection(S,{isSingleTable:!0})}`:void 0,f=$?H` where ${$}`:void 0;return H`${F}delete from ${T}${f}${W}`}buildUpdateSet(T,$){let S=T[P.Symbol.Columns],J=Object.keys(S).filter((W)=>$[W]!==void 0||S[W]?.onUpdateFn!==void 0),F=J.length;return H.join(J.flatMap((W,f)=>{let A=S[W],X=$[W]??H.param(A.onUpdateFn(),A),Y=H`${H.identifier(this.casing.getColumnCasing(A))} = ${X}`;if(f<F-1)return[Y,H.raw(", ")];return[Y]}))}buildUpdateQuery({table:T,set:$,where:S,returning:J,withList:F,from:W,joins:f}){let A=this.buildWithCTE(F),X=T[Y$.Symbol.Name],Y=T[Y$.Symbol.Schema],w=T[Y$.Symbol.OriginalName],K=X===w?void 0:X,M=H`${Y?H`${H.identifier(Y)}.`:void 0}${H.identifier(w)}${K&&H` ${H.identifier(K)}`}`,D=this.buildUpdateSet(T,$),z=W&&H.join([H.raw(" from "),this.buildFromTable(W)]),R=this.buildJoins(f),L=J?H` returning ${this.buildSelection(J,{isSingleTable:!W})}`:void 0,j=S?H` where ${S}`:void 0;return H`${A}update ${M} set ${D}${z}${R}${j}${L}`}buildSelection(T,{isSingleTable:$=!1}={}){let S=T.length,J=T.flatMap(({field:F},W)=>{let f=[];if(k(F,m.Aliased)&&F.isSelectionField)f.push(H.identifier(F.fieldAlias));else if(k(F,m.Aliased)||k(F,m)){let A=k(F,m.Aliased)?F.sql:F;if($)f.push(new m(A.queryChunks.map((X)=>{if(k(X,Z))return H.identifier(this.casing.getColumnCasing(X));return X})));else f.push(A);if(k(F,m.Aliased))f.push(H` as ${H.identifier(F.fieldAlias)}`)}else if(k(F,kT))if($)f.push(H.identifier(this.casing.getColumnCasing(F)));else f.push(F);if(W<S-1)f.push(H`, `);return f});return H.join(J)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[S,J]of T.entries()){if(S===0)$.push(H` `);let F=J.table,W=J.lateral?H` lateral`:void 0;if(k(F,Y$)){let f=F[Y$.Symbol.Name],A=F[Y$.Symbol.Schema],X=F[Y$.Symbol.OriginalName],Y=f===X?void 0:J.alias;$.push(H`${H.raw(J.joinType)} join${W} ${A?H`${H.identifier(A)}.`:void 0}${H.identifier(X)}${Y&&H` ${H.identifier(Y)}`} on ${J.on}`)}else if(k(F,N$)){let f=F[LT].name,A=F[LT].schema,X=F[LT].originalName,Y=f===X?void 0:J.alias;$.push(H`${H.raw(J.joinType)} join${W} ${A?H`${H.identifier(A)}.`:void 0}${H.identifier(X)}${Y&&H` ${H.identifier(Y)}`} on ${J.on}`)}else $.push(H`${H.raw(J.joinType)} join${W} ${F} on ${J.on}`);if(S<T.length-1)$.push(H` `)}return H.join($)}buildFromTable(T){if(k(T,P)&&T[P.Symbol.OriginalName]!==T[P.Symbol.Name]){let $=H`${H.identifier(T[P.Symbol.OriginalName])}`;if(T[P.Symbol.Schema])$=H`${H.identifier(T[P.Symbol.Schema])}.${$}`;return H`${$} ${H.identifier(T[P.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:S,where:J,having:F,table:W,joins:f,orderBy:A,groupBy:X,limit:Y,offset:w,lockingClause:K,distinct:M,setOperators:D}){let z=S??t$($);for(let $T of z)if(k($T.field,kT)&&J$($T.field.table)!==(k(W,T$)?W._.alias:k(W,r0)?W[LT].name:k(W,m)?void 0:J$(W))&&!((ET)=>f?.some(({alias:hT})=>hT===(ET[P.Symbol.IsAlias]?J$(ET):ET[P.Symbol.BaseName])))($T.field.table)){let ET=J$($T.field.table);throw new Error(`Your "${$T.path.join("->")}" field references a column "${ET}"."${$T.field.name}", but the table "${ET}" is not part of the query! Did you forget to join it?`)}let R=!f||f.length===0,L=this.buildWithCTE(T),j;if(M)j=M===!0?H` distinct`:H` distinct on (${H.join(M.on,H`, `)})`;let y=this.buildSelection(z,{isSingleTable:R}),I=this.buildFromTable(W),Q=this.buildJoins(f),V=J?H` where ${J}`:void 0,B=F?H` having ${F}`:void 0,U;if(A&&A.length>0)U=H` order by ${H.join(A,H`, `)}`;let h;if(X&&X.length>0)h=H` group by ${H.join(X,H`, `)}`;let l=typeof Y==="object"||typeof Y==="number"&&Y>=0?H` limit ${Y}`:void 0,_=w?H` offset ${w}`:void 0,s=H.empty();if(K){let $T=H` for ${H.raw(K.strength)}`;if(K.config.of)$T.append(H` of ${H.join(Array.isArray(K.config.of)?K.config.of:[K.config.of],H`, `)}`);if(K.config.noWait)$T.append(H` no wait`);else if(K.config.skipLocked)$T.append(H` skip locked`);s.append($T)}let p=H`${L}select${j} ${y} from ${I}${Q}${V}${h}${B}${U}${l}${_}${s}`;if(D.length>0)return this.buildSetOperations(p,D);return p}buildSetOperations(T,$){let[S,...J]=$;if(!S)throw new Error("Cannot pass undefined values to any set operator");if(J.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:S});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:S}),J)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:S,rightSelect:J,limit:F,orderBy:W,offset:f}}){let A=H`(${T.getSQL()}) `,X=H`(${J.getSQL()})`,Y;if(W&&W.length>0){let D=[];for(let z of W)if(k(z,Z))D.push(H.identifier(z.name));else if(k(z,m)){for(let R=0;R<z.queryChunks.length;R++){let L=z.queryChunks[R];if(k(L,Z))z.queryChunks[R]=H.identifier(L.name)}D.push(H`${z}`)}else D.push(H`${z}`);Y=H` order by ${H.join(D,H`, `)} `}let w=typeof F==="object"||typeof F==="number"&&F>=0?H` limit ${F}`:void 0,K=H.raw(`${$} ${S?"all ":""}`),M=f?H` offset ${f}`:void 0;return H`${A}${K}${X}${Y}${w}${M}`}buildInsertQuery({table:T,values:$,onConflict:S,returning:J,withList:F,select:W,overridingSystemValue_:f}){let A=[],X=T[P.Symbol.Columns],Y=Object.entries(X).filter(([L,j])=>!j.shouldDisableInsert()),w=Y.map(([,L])=>H.identifier(this.casing.getColumnCasing(L)));if(W){let L=$;if(k(L,m))A.push(L);else A.push(L.getSQL())}else{let L=$;A.push(H.raw("values "));for(let[j,y]of L.entries()){let I=[];for(let[Q,V]of Y){let B=y[Q];if(B===void 0||k(B,v$)&&B.value===void 0)if(V.defaultFn!==void 0){let U=V.defaultFn(),h=k(U,m)?U:H.param(U,V);I.push(h)}else if(!V.default&&V.onUpdateFn!==void 0){let U=V.onUpdateFn(),h=k(U,m)?U:H.param(U,V);I.push(h)}else I.push(H`default`);else I.push(B)}if(A.push(I),j<L.length-1)A.push(H`, `)}}let K=this.buildWithCTE(F),M=H.join(A),D=J?H` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,z=S?H` on conflict ${S}`:void 0,R=f===!0?H`overriding system value `:void 0;return H`${K}insert into ${T} ${w} ${R}${M}${z}${D}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:S}){let J=$?H` concurrently`:void 0,F=S?H` with no data`:void 0;return H`refresh materialized view${J} ${T}${F}`}prepareTyping(T){if(k(T,QW)||k(T,EW))return"json";else if(k(T,RW))return"decimal";else if(k(T,_W))return"time";else if(k(T,kW)||k(T,UW))return"timestamp";else if(k(T,HW)||k(T,zW))return"date";else if(k(T,VW))return"uuid";else return"none"}sqlToQuery(T,$){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:S,table:J,tableConfig:F,queryConfig:W,tableAlias:f,nestedQueryRelation:A,joinOn:X}){let Y=[],w,K,M=[],D,z=[];if(W===!0)Y=Object.entries(F.columns).map(([j,y])=>({dbKey:y.name,tsKey:j,field:HS(y,f),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let L=Object.fromEntries(Object.entries(F.columns).map(([B,U])=>[B,HS(U,f)]));if(W.where){let B=typeof W.where==="function"?W.where(L,Vw()):W.where;D=B&&m0(B,f)}let j=[],y=[];if(W.columns){let B=!1;for(let[U,h]of Object.entries(W.columns)){if(h===void 0)continue;if(U in F.columns){if(!B&&h===!0)B=!0;y.push(U)}}if(y.length>0)y=B?y.filter((U)=>W.columns?.[U]===!0):Object.keys(F.columns).filter((U)=>!y.includes(U))}else y=Object.keys(F.columns);for(let B of y){let U=F.columns[B];j.push({tsKey:B,value:U})}let I=[];if(W.with)I=Object.entries(W.with).filter((B)=>!!B[1]).map(([B,U])=>({tsKey:B,queryConfig:U,relation:F.relations[B]}));let Q;if(W.extras){Q=typeof W.extras==="function"?W.extras(L,{sql:H}):W.extras;for(let[B,U]of Object.entries(Q))j.push({tsKey:B,value:PA(U,f)})}for(let{tsKey:B,value:U}of j)Y.push({dbKey:k(U,m.Aliased)?U.fieldAlias:F.columns[B].name,tsKey:B,field:k(U,kT)?HS(U,f):U,relationTableTsKey:void 0,isJson:!1,selection:[]});let V=typeof W.orderBy==="function"?W.orderBy(L,Bw()):W.orderBy??[];if(!Array.isArray(V))V=[V];M=V.map((B)=>{if(k(B,kT))return HS(B,f);return m0(B,f)}),w=W.limit,K=W.offset;for(let{tsKey:B,queryConfig:U,relation:h}of I){let l=Lw($,S,h),_=yJ(h.referencedTable),s=S[_],p=`${f}_${B}`,$T=c0(...l.fields.map((U$,DS)=>MW(HS(l.references[DS],p),HS(U$,f)))),ET=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:S,table:T[s],tableConfig:$[s],queryConfig:k(h,rS)?U===!0?{limit:1}:{...U,limit:1}:U,tableAlias:p,joinOn:$T,nestedQueryRelation:h}),hT=H`${H.identifier(p)}.${H.identifier("data")}`.as(B);z.push({on:H`true`,table:new T$(ET.sql,{},p),alias:p,joinType:"left",lateral:!0}),Y.push({dbKey:B,tsKey:B,field:hT,relationTableTsKey:s,isJson:!0,selection:ET.selection})}}if(Y.length===0)throw new KW({message:`No fields selected for table "${F.tsName}" ("${f}")`});let R;if(D=c0(X,D),A){let L=H`json_build_array(${H.join(Y.map(({field:I,tsKey:Q,isJson:V})=>V?H`${H.identifier(`${f}_${Q}`)}.${H.identifier("data")}`:k(I,m.Aliased)?I.sql:I),H`, `)})`;if(k(A,o0))L=H`coalesce(json_agg(${L}${M.length>0?H` order by ${H.join(M,H`, `)}`:void 0}), '[]'::json)`;let j=[{dbKey:"data",tsKey:"data",field:L.as("data"),isJson:!0,relationTableTsKey:F.tsName,selection:Y}];if(w!==void 0||K!==void 0||M.length>0)R=this.buildSelectQuery({table:wW(J,f),fields:{},fieldsFlat:[{path:[],field:H.raw("*")}],where:D,limit:w,offset:K,orderBy:M,setOperators:[]}),D=void 0,w=void 0,K=void 0,M=[];else R=wW(J,f);R=this.buildSelectQuery({table:k(R,Y$)?R:new T$(R,{},f),fields:{},fieldsFlat:j.map(({field:I})=>({path:[],field:k(I,kT)?HS(I,f):I})),joins:z,where:D,limit:w,offset:K,orderBy:M,setOperators:[]})}else R=this.buildSelectQuery({table:wW(J,f),fields:{},fieldsFlat:Y.map(({field:L})=>({path:[],field:k(L,kT)?HS(L,f):L})),joins:z,where:D,limit:w,offset:K,orderBy:M,setOperators:[]});return{tableTsKey:F.tsName,sql:R,selection:Y}}}class w2{static[G]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class k${static[G]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let $=!!this.fields,S=T,J;if(this.fields)J=this.fields;else if(k(S,T$))J=Object.fromEntries(Object.keys(S._.selectedFields).map((F)=>[F,S[F]]));else if(k(S,r0))J=S[LT].selectedFields;else if(k(S,m))J={};else J=N4(S);return new K2({table:S,fields:J,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class lw extends w2{static[G]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:S,session:J,dialect:F,withList:W,distinct:f}){super();this.config={withList:W,table:T,fields:{...$},distinct:f,setOperators:[]},this.isPartialSelect=S,this.session=J,this.dialect=F,this._={selectedFields:$},this.tableName=jS(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,S)=>{let J=this.tableName,F=jS($);if(typeof F==="string"&&this.config.joins?.some((W)=>W.alias===F))throw new Error(`Alias "${F}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof J==="string")this.config.fields={[J]:this.config.fields};if(typeof F==="string"&&!k($,m)){let W=k($,T$)?$._.selectedFields:k($,N$)?$[LT].selectedFields:$[P.Symbol.Columns];this.config.fields[F]=W}}if(typeof S==="function")S=S(new Proxy(this.config.fields,new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:S,table:$,joinType:T,alias:F}),typeof F==="string")switch(T){case"left":{this.joinsNotNullableMap[F]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!1])),this.joinsNotNullableMap[F]=!0;break}case"inner":{this.joinsNotNullableMap[F]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!1])),this.joinsNotNullableMap[F]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,$){return(S)=>{let J=typeof S==="function"?S(S5()):S;if(!n0(this.getSelectedFields(),J.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:T,isAll:$,rightSelect:J}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new mT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new mT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),S=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=S;else this.config.orderBy=S}else{let $=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,$={}){return this.config.lockingClause={strength:T,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(T){return new Proxy(new T$(this.getSQL(),this.config.fields,T),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new mT({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class K2 extends lw{static[G]="PgSelect";_prepare(T){let{session:$,config:S,dialect:J,joinsNotNullableMap:F,authToken:W}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return UT.startActiveSpan("drizzle.prepareQuery",()=>{let f=t$(S.fields),A=$.prepareQuery(J.sqlToQuery(this.getSQL()),f,T,!0);return A.joinsNotNullableMap=F,A.setToken(W)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return UT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}L4(K2,[_$]);function CF(T,$){return(S,J,...F)=>{let W=[J,...F].map((f)=>({type:T,isAll:$,rightSelect:f}));for(let f of W)if(!n0(S.getSelectedFields(),f.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return S.addSetOperators(W)}}var S5=()=>({union:J5,unionAll:F5,intersect:W5,intersectAll:f5,except:A5,exceptAll:X5}),J5=CF("union",!1),F5=CF("union",!0),W5=CF("intersect",!1),f5=CF("intersect",!0),A5=CF("except",!1),X5=CF("except",!0);class a0{static[G]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=k(T,jJ)?T:void 0,this.dialectConfig=k(T,jJ)?void 0:T}$with=(T,$)=>{let S=this;return{as:(F)=>{if(typeof F==="function")F=F(S);return new Proxy(new h0(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function S(W){return new k$({fields:W??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function J(W){return new k$({fields:W??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function F(W,f){return new k$({fields:f??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:W}})}return{select:S,selectDistinct:J,selectDistinctOn:F}}select(T){return new k$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new k$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new k$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new jJ(this.dialectConfig);return this.dialect}}class PW{constructor(T,$,S,J,F){this.table=T,this.session=$,this.dialect=S,this.withList=J,this.overridingSystemValue_=F}static[G]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let $=T.map((S)=>{let J={},F=this.table[P.Symbol.Columns];for(let W of Object.keys(S)){let f=S[W];J[W]=k(f,m)?f:new v$(f,F[W])}return J});return new M2(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new a0):T;if(!k($,m)&&!n0(this.table[XW],$._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new M2(this.table,$,this.session,this.dialect,this.withList,!0)}}class M2 extends _${constructor(T,$,S,J,F,W,f){super();this.session=S,this.dialect=J,this.config={table:T,values:$,withList:F,select:W,overridingSystemValue_:f}}static[G]="PgInsert";config;returning(T=this.config.table[P.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=t$(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=H`do nothing`;else{let $="";$=Array.isArray(T.target)?T.target.map((J)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(J))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let S=T.where?H` where ${T.where}`:void 0;this.config.onConflict=H`(${H.raw($)})${S} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=T.where?H` where ${T.where}`:void 0,S=T.targetWhere?H` where ${T.targetWhere}`:void 0,J=T.setWhere?H` where ${T.setWhere}`:void 0,F=this.dialect.buildUpdateSet(this.config.table,GW(this.config.table,T.set)),W="";return W=Array.isArray(T.target)?T.target.map((f)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(f))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=H`(${H.raw(W)})${S} do update set ${F}${$}${J}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return UT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return UT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new mT({alias:J$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class O2 extends _${constructor(T,$,S){super();this.session=$,this.dialect=S,this.config={view:T}}static[G]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return UT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return UT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class mW{constructor(T,$,S,J){this.table=T,this.session=$,this.dialect=S,this.withList=J}static[G]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new rw(this.table,GW(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class rw extends _${constructor(T,$,S,J,F){super();this.session=S,this.dialect=J,this.config={set:$,table:T,withList:F,joins:[]},this.tableName=jS(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[G]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,S=jS($);if(typeof S==="string")this.joinsNotNullableMap[S]=!0;return this.config.from=$,this}getTableLikeFields(T){if(k(T,Y$))return T[P.Symbol.Columns];else if(k(T,T$))return T._.selectedFields;return T[LT].selectedFields}createJoin(T){return($,S)=>{let J=jS($);if(typeof J==="string"&&this.config.joins.some((F)=>F.alias===J))throw new Error(`Alias "${J}" is already used in this query`);if(typeof S==="function"){let F=this.config.from&&!k(this.config.from,m)?this.getTableLikeFields(this.config.from):void 0;S=S(new Proxy(this.config.table[P.Symbol.Columns],new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),F&&new Proxy(F,new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:S,table:$,joinType:T,alias:J}),typeof J==="string")switch(T){case"left":{this.joinsNotNullableMap[J]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[J]=!0;break}case"inner":{this.joinsNotNullableMap[J]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[J]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[P.Symbol.Columns]),this.config.from){let $=jS(this.config.from);if(typeof $==="string"&&this.config.from&&!k(this.config.from,m)){let S=this.getTableLikeFields(this.config.from);T[$]=S}for(let S of this.config.joins){let J=jS(S.table);if(typeof J==="string"&&!k(S.table,m)){let F=this.getTableLikeFields(S.table);T[J]=F}}}}return this.config.returningFields=T,this.config.returning=t$(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){let $=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0);return $.joinsNotNullableMap=this.joinsNotNullableMap,$}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return this._prepare().execute(T,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new mT({alias:J$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class s0 extends m{constructor(T){super(s0.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=s0.buildCount(T.source,T.filters)}sql;token;static[G]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return H`(select count(*) from ${T}${H.raw(" where ").if($)}${$})`}static buildCount(T,$){return H`select count(*) as count from ${T}${H.raw(" where ").if($)}${$};`}setToken(T){return this.token=T,this}then(T,$){return Promise.resolve(this.session.count(this.sql,this.token)).then(T,$)}catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}}class H2{constructor(T,$,S,J,F,W,f){this.fullSchema=T,this.schema=$,this.tableNamesMap=S,this.table=J,this.tableConfig=F,this.dialect=W,this.session=f}static[G]="PgRelationalQueryBuilder";findMany(T){return new G2(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new G2(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class G2 extends _${constructor(T,$,S,J,F,W,f,A,X){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=S,this.table=J,this.tableConfig=F,this.dialect=W,this.session=f,this.config=A,this.mode=X}static[G]="PgRelationalQuery";_prepare(T){return UT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:S}=this._toSQL();return this.session.prepareQuery(S,void 0,T,!0,(J,F)=>{let W=J.map((f)=>BW(this.schema,this.tableConfig,f,$.selection,F));if(this.mode==="first")return W[0];return W})})}prepare(T){return this._prepare(T)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let T=this._getQuery(),$=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return UT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class z2 extends _${constructor(T,$,S,J){super();this.execute=T,this.sql=$,this.query=S,this.mapBatchResult=J}static[G]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class e0{constructor(T,$,S){if(this.dialect=T,this.session=$,this._=S?{schema:S.schema,fullSchema:S.fullSchema,tableNamesMap:S.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[J,F]of Object.entries(this._.schema))this.query[J]=new H2(S.fullSchema,this._.schema,this._.tableNamesMap,S.fullSchema[J],F,T,$)}static[G]="PgDatabase";query;$with=(T,$)=>{let S=this;return{as:(F)=>{if(typeof F==="function")F=F(new a0(S.dialect));return new Proxy(new h0(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new s0({source:T,filters:$,session:this.session})}with(...T){let $=this;function S(X){return new k$({fields:X??void 0,session:$.session,dialect:$.dialect,withList:T})}function J(X){return new k$({fields:X??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function F(X,Y){return new k$({fields:Y??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:X}})}function W(X){return new mW(X,$.session,$.dialect,T)}function f(X){return new PW(X,$.session,$.dialect,T)}function A(X){return new vW(X,$.session,$.dialect,T)}return{select:S,selectDistinct:J,selectDistinctOn:F,update:W,insert:f,delete:A}}select(T){return new k$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new k$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new k$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new mW(T,this.session,this.dialect)}insert(T){return new PW(T,this.session,this.dialect)}delete(T){return new vW(T,this.session,this.dialect)}refreshMaterializedView(T){return new O2(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?H.raw(T):T.getSQL(),S=this.dialect.sqlToQuery($),J=this.session.prepareQuery(S,void 0,void 0,!1);return new z2(()=>J.execute(void 0,this.authToken),$,S,(F)=>J.mapResult(F,!0))}transaction(T,$){return this.session.transaction(T,$)}}class aw{constructor(T,$){this.unique=T,this.name=$}static[G]="PgIndexBuilderOn";on(...T){return new cW(T.map(($)=>{if(k($,m))return $;$=$;let S=new b0($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),S}),this.unique,!1,this.name)}onOnly(...T){return new cW(T.map(($)=>{if(k($,m))return $;$=$;let S=new b0($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,S}),this.unique,!0,this.name)}using(T,...$){return new cW($.map((S)=>{if(k(S,m))return S;S=S;let J=new b0(S.name,!!S.keyAsName,S.columnType,S.indexConfig);return S.indexConfig=JSON.parse(JSON.stringify(S.defaultConfig)),J}),this.unique,!0,this.name,T)}}class cW{static[G]="PgIndexBuilder";config;constructor(T,$,S,J,F="btree"){this.config={name:J,columns:T,unique:$,only:S,method:F}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new sw(this.config,T)}}class sw{static[G]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function D2(T){return new aw(!0,T)}class E2{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[G]="PgPreparedQuery";joinsNotNullableMap}class Q2{constructor(T){this.dialect=T}static[G]="PgSession";execute(T,$){return UT.startActiveSpan("drizzle.operation",()=>{return UT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,$){let S=await this.execute(T,$);return Number(S[0].count)}}class R2 extends e0{constructor(T,$,S,J=0){super(T,$,S);this.schema=S,this.nestedIndex=J}static[G]="PgTransaction";rollback(){throw new mA}getTransactionConfigSQL(T){let $=[];if(T.isolationLevel)$.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)$.push(T.accessMode);if(typeof T.deferrable==="boolean")$.push(T.deferrable?"deferrable":"not deferrable");return H.raw($.join(" "))}setTransaction(T){return this.session.execute(H`set transaction ${this.getTransactionConfigSQL(T)}`)}}class ew extends E2{constructor(T,$,S,J,F,W,f){super({sql:$,params:S});this.client=T,this.queryString=$,this.params=S,this.logger=J,this.fields=F,this._isResponseInArrayMode=W,this.customResultMapper=f}static[G]="PostgresJsPreparedQuery";async execute(T={}){return UT.startActiveSpan("drizzle.execute",async($)=>{let S=vA(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(S)}),this.logger.logQuery(this.queryString,S);let{fields:J,queryString:F,client:W,joinsNotNullableMap:f,customResultMapper:A}=this;if(!J&&!A)return UT.startActiveSpan("drizzle.driver.execute",()=>{return W.unsafe(F,S)});let X=await UT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":F,"drizzle.query.params":JSON.stringify(S)}),W.unsafe(F,S).values()});return UT.startActiveSpan("drizzle.mapResponse",()=>{return A?A(X):X.map((Y)=>y4(J,Y,f))})})}all(T={}){return UT.startActiveSpan("drizzle.execute",async($)=>{let S=vA(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(S)}),this.logger.logQuery(this.queryString,S),UT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(S)}),this.client.unsafe(this.queryString,S)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class T1 extends Q2{constructor(T,$,S,J={}){super($);this.client=T,this.schema=S,this.options=J,this.logger=J.logger??new nA}static[G]="PostgresJsSession";logger;prepareQuery(T,$,S,J,F){return new ew(this.client,T.sql,T.params,this.logger,$,J,F)}query(T,$){return this.logger.logQuery(T,$),this.client.unsafe(T,$).values()}queryObjects(T,$){return this.client.unsafe(T,$)}transaction(T,$){return this.client.begin(async(S)=>{let J=new T1(S,this.dialect,this.schema,this.options),F=new _2(this.dialect,J,this.schema);if($)await F.setTransaction($);return T(F)})}}class _2 extends R2{constructor(T,$,S,J=0){super(T,$,S,J);this.session=$}static[G]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let S=new T1($,this.dialect,this.schema,this.session.options),J=new _2(this.dialect,S,this.schema);return T(J)})}}class TK extends e0{static[G]="PostgresJsDatabase"}function xF(T,$={}){let S=(X)=>X;for(let X of["1184","1082","1083","1114"])T.options.parsers[X]=S,T.options.serializers[X]=S;T.options.serializers["114"]=S,T.options.serializers["3802"]=S;let J=new jJ({casing:$.casing}),F;if($.logger===!0)F=new cA;else if($.logger!==!1)F=$.logger;let W;if($.schema){let X=yw($.schema,Nw);W={fullSchema:$.schema,schema:X.tables,tableNamesMap:X.tableNamesMap}}let f=new T1(T,J,W,{logger:F}),A=new TK(J,f,W);return A.$client=T,A}function nW(...T){if(typeof T[0]==="string"){let $=NF(T[0]);return xF($,T[1])}if(C4(T[0])){let{connection:$,client:S,...J}=T[0];if(S)return xF(S,J);if(typeof $==="object"&&$.url!==void 0){let{url:W,...f}=$,A=NF(W,f);return xF(A,J)}let F=NF($);return xF(F,J)}return xF(T[0],T[1])}((T)=>{function $(S){return xF({options:{parsers:{},serializers:{}}},S)}T.mock=$})(nW||(nW={}));function Y5(T,$){let S={},J=[];for(let F in T){let W=T[F],f=$[F],A=W["~standard"].validate(f);if(A instanceof Promise)throw new Error(`Validation must be synchronous, but ${F} returned a Promise.`);if(A.issues){J.push(...A.issues.map((X)=>({...X,path:[F,...X.path??[]]})));continue}S[F]=A.value}if(J.length)return{issues:J};return{value:S}}function $K(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[y,I]of Object.entries($))if(I==="")delete $[y]}if(!!T.skipValidation)return $;let F=typeof T.client==="object"?T.client:{},W=typeof T.server==="object"?T.server:{},f=typeof T.shared==="object"?T.shared:{},A=T.isServer??(typeof window==="undefined"||("Deno"in window)),X=A?{...W,...f,...F}:{...F,...f},Y=Y5(X,$),w=T.onValidationError??((y)=>{throw console.error("\u274C Invalid environment variables:",y),new Error("Invalid environment variables")}),K=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(Y.issues)return w(Y.issues);let M=(y)=>{if(!T.clientPrefix)return!0;return!y.startsWith(T.clientPrefix)&&!(y in f)},D=(y)=>{return A||!M(y)},z=(y)=>{return y==="__esModule"||y==="$$typeof"},R=(T.extends??[]).reduce((y,I)=>{return Object.assign(y,I)},{}),L=Object.assign(Y.value,R);return new Proxy(L,{get(y,I){if(typeof I!=="string")return;if(z(I))return;if(!D(I))return K(I);return Reflect.get(y,I)}})}var w5="__vite_start_time"in globalThis,K5=typeof window!=="undefined",Rv="vitest"in globalThis,ZS=$K({isServer:!w5&&!K5,server:{CI:_T.string().transform((T)=>!0).optional(),POSTGRES_USER:_T.string(),POSTGRES_PASSWORD:_T.string(),POSTGRES_DATABASE:_T.string(),POSTGRES_HOST:_T.string(),POSTGRES_PORT:_T.string().transform((T)=>Number.parseInt(T,10)),BACKEND_PORT:_T.string().transform((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:_T.union([_T.literal("true"),_T.literal("false")]).optional().transform((T)=>T==="true"),FRONTEND_PORT:_T.string().transform((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:_T.string().transform((T)=>JSON.parse(T)).pipe(_T.array(_T.string())),OPENAI_API_KEY:_T.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:_T.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:_T.union([_T.literal("true"),_T.literal("false")]).optional().transform((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var U2={};HM(U2,{users:()=>IJ,userChanges:()=>O5,untrackedUserColumnNames:()=>M5,twoFactorMethod:()=>fK,trackedUserColumnName:()=>WK,trackableUserColumnNames:()=>FK,role:()=>JK,players:()=>k2,passwordResetAttempts:()=>H5,loginHistory:()=>G5,games:()=>gW,banishedIps:()=>pW});function SK(T){return H`lower(${T})`}var JK=fW("role",["admin","user"]),IJ=lS("users",{id:P$().primaryKey().defaultRandom(),username:X$({length:16}).notNull(),email:X$({length:254}).notNull(),hash:X$({length:64}).notNull(),salt:X$({length:36}).notNull(),createdAt:WS({withTimezone:!0}).notNull().defaultNow(),createdIp:X$({length:45}).notNull(),isActive:g0().notNull().default(!1),verifiedAt:WS({withTimezone:!0}),userRole:JK().default("user")},(T)=>[D2("usernameUniqueIndex").on(SK(T.username)),D2("emailUniqueIndex").on(SK(T.email))]),M5=["id","createdAt","createdIp","isActive","salt","verifiedAt"],FK=["username","email","hash","userRole"],WK=fW("trackedUserColumnName",FK),O5=lS("userChanges",{id:P$().primaryKey().defaultRandom(),userId:P$().notNull().references(()=>IJ.id),changedAt:WS({withTimezone:!0}).notNull().defaultNow(),changedIp:X$({length:45}).notNull(),changedColumn:WK().notNull(),oldValue:X$({length:255}),newValue:X$({length:255})}),gW=lS("games",{id:P$().primaryKey().defaultRandom()}),k2=lS("players",{userId:P$().notNull().references(()=>IJ.id),gameId:P$().notNull().references(()=>gW.id),score:DW().notNull()},(T)=>[_w({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),G5=lS("loginHistory",{id:P$().primaryKey().defaultRandom(),userId:P$().references(()=>IJ.id),loginTime:WS({withTimezone:!0}).notNull().defaultNow(),ipAddress:X$({length:45}).notNull(),userAgent:X$({length:1024}),successful:g0().notNull().default(!1)}),fK=fW("twoFactorMethod",["email","phone"]),H5=lS("passwordResetAttempts",{id:P$().primaryKey().defaultRandom(),userId:P$().notNull().references(()=>IJ.id),requestedIp:X$({length:45}).notNull(),requestedAt:WS({withTimezone:!0}).notNull().defaultNow(),succeededIp:X$({length:45}),succeededAt:WS({withTimezone:!0}),verificationMethod:fK().notNull()}),pW=lS("banishedIps",{ip:X$({length:45}).primaryKey(),reason:X$({length:2048}).notNull(),banishedAt:WS({withTimezone:!0}).notNull().defaultNow(),banishedUntil:WS({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class V2{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(z5.resolve(__dirname,"notify_update.sql"));let T=[J$(IJ),J$(gW),J$(k2)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let S=$.split(","),J=S[0],F=S[1],W=`${J}("${F}")`;if(this.observers.has(W))this.observers.get(W).next(W)})}constructor(T=!1,$={host:ZS.POSTGRES_HOST,port:ZS.POSTGRES_PORT,user:ZS.POSTGRES_USER,password:ZS.POSTGRES_PASSWORD,database:ZS.POSTGRES_DATABASE}){this.options=$,this.sql=NF($),this.drizzle=nW(this.sql,{schema:U2,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new WT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as Q5}from"path";import{existsSync as B2,mkdirSync as AK,readFileSync as D5,writeFileSync as E5,rmSync as XK,readdirSync as YK,statSync as wK}from"fs";import{resolve as y2}from"path";var KK=class{get initialized(){return B2(this.rootDir)}initialize(){if(!this.initialized)AK(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=y2(this.rootDir,T);if(B2($))return D5($,"utf-8");return null}setItem(T,$){this.initialize();let S=y2(this.rootDir,T);E5(S,$)}removeItem(T){let $=y2(this.rootDir,T);if(B2($))this.initialize(),XK($)}key(T){var $;return($=YK(this.rootDir).sort((F,W)=>{let f=wK(F);return wK(W).ctimeMs-f.ctimeMs})[T])!=null?$:null}clear(){XK(this.rootDir,{recursive:!0}),AK(this.rootDir,{recursive:!0})}get length(){return YK(this.rootDir).length}};var L2=new KK({path:Q5(process.cwd(),"storage")});import*as oW from"fs";import*as MK from"readline";function R5(T){let S=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(J,F,W,f,A)=>{let Y={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[W];return`${f}-${Y}-${F}T${A}`});return new Date(S)}async function OK(T,$="/var/log/nginx/access.log",S=new Date){let J=new Map;if(!oW.existsSync($))return T.error(`Log file not found: ${$}`),J;let F=oW.createReadStream($),W=MK.createInterface({input:F,crlfDelay:Number.POSITIVE_INFINITY}),f=new Date(S.getTime()-3600000);return W.on("line",(A)=>{let X=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,Y=A.match(X);if(Y?.groups){let w=Y.groups.ip,K=Y.groups.dateTime,M=R5(K);if(!Number.isNaN(M.getTime())){if(M>=f&&M<=S){let D=J.get(w);if(!D)D=[],J.set(w,D);D.push(A)}}else T.error(`Failed to parse date: ${K}`)}}),new Promise((A,X)=>{W.on("error",(Y)=>{X(Y)}),W.on("close",()=>{A(J)})})}var _5=["Network security adjudicator, your job is to determine if an IP address should be banned.","The IP address in question created the following logs on our server today:","```nginx.log\n"].join(`
95
- `);function GK(T){return _5+T.join(`
94
+ `;await $.execute(O`CREATE SCHEMA IF NOT EXISTS ${O.identifier(F)}`),await $.execute(f);let A=(await $.all(O`select id, hash, created_at from ${O.identifier(F)}.${O.identifier(S)} order by created_at desc limit 1`))[0];await $.transaction(async(X)=>{for await(let w of T)if(!A||Number(A.created_at)<w.folderMillis){for(let Y of w.sql)await X.execute(O.raw(Y));await X.execute(O`insert into ${O.identifier(F)}.${O.identifier(S)} ("hash", "created_at") values(${w.hash}, ${w.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let $=[O`with `];for(let[J,S]of T.entries())if($.push(O`${O.identifier(S._.alias)} as (${S._.sql})`),J<T.length-1)$.push(O`, `);return $.push(O` `),O.join($)}buildDeleteQuery({table:T,where:$,returning:J,withList:S}){let F=this.buildWithCTE(S),f=J?O` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,W=$?O` where ${$}`:void 0;return O`${F}delete from ${T}${W}${f}`}buildUpdateSet(T,$){let J=T[m.Symbol.Columns],S=Object.keys(J).filter((f)=>$[f]!==void 0||J[f]?.onUpdateFn!==void 0),F=S.length;return O.join(S.flatMap((f,W)=>{let A=J[f],X=$[f]??O.param(A.onUpdateFn(),A),w=O`${O.identifier(this.casing.getColumnCasing(A))} = ${X}`;if(W<F-1)return[w,O.raw(", ")];return[w]}))}buildUpdateQuery({table:T,set:$,where:J,returning:S,withList:F,from:f,joins:W}){let A=this.buildWithCTE(F),X=T[X$.Symbol.Name],w=T[X$.Symbol.Schema],Y=T[X$.Symbol.OriginalName],M=X===Y?void 0:X,G=O`${w?O`${O.identifier(w)}.`:void 0}${O.identifier(Y)}${M&&O` ${O.identifier(M)}`}`,z=this.buildUpdateSet(T,$),D=f&&O.join([O.raw(" from "),this.buildFromTable(f)]),R=this.buildJoins(W),L=S?O` returning ${this.buildSelection(S,{isSingleTable:!f})}`:void 0,x=J?O` where ${J}`:void 0;return O`${A}update ${G} set ${z}${D}${R}${x}${L}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,S=T.flatMap(({field:F},f)=>{let W=[];if(k(F,P.Aliased)&&F.isSelectionField)W.push(O.identifier(F.fieldAlias));else if(k(F,P.Aliased)||k(F,P)){let A=k(F,P.Aliased)?F.sql:F;if($)W.push(new P(A.queryChunks.map((X)=>{if(k(X,Z))return O.identifier(this.casing.getColumnCasing(X));return X})));else W.push(A);if(k(F,P.Aliased))W.push(O` as ${O.identifier(F.fieldAlias)}`)}else if(k(F,UT))if($)W.push(O.identifier(this.casing.getColumnCasing(F)));else W.push(F);if(f<J-1)W.push(O`, `);return W});return O.join(S)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[J,S]of T.entries()){if(J===0)$.push(O` `);let F=S.table,f=S.lateral?O` lateral`:void 0;if(k(F,X$)){let W=F[X$.Symbol.Name],A=F[X$.Symbol.Schema],X=F[X$.Symbol.OriginalName],w=W===X?void 0:S.alias;$.push(O`${O.raw(S.joinType)} join${f} ${A?O`${O.identifier(A)}.`:void 0}${O.identifier(X)}${w&&O` ${O.identifier(w)}`} on ${S.on}`)}else if(k(F,y$)){let W=F[NT].name,A=F[NT].schema,X=F[NT].originalName,w=W===X?void 0:S.alias;$.push(O`${O.raw(S.joinType)} join${f} ${A?O`${O.identifier(A)}.`:void 0}${O.identifier(X)}${w&&O` ${O.identifier(w)}`} on ${S.on}`)}else $.push(O`${O.raw(S.joinType)} join${f} ${F} on ${S.on}`);if(J<T.length-1)$.push(O` `)}return O.join($)}buildFromTable(T){if(k(T,m)&&T[m.Symbol.OriginalName]!==T[m.Symbol.Name]){let $=O`${O.identifier(T[m.Symbol.OriginalName])}`;if(T[m.Symbol.Schema])$=O`${O.identifier(T[m.Symbol.Schema])}.${$}`;return O`${$} ${O.identifier(T[m.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:J,where:S,having:F,table:f,joins:W,orderBy:A,groupBy:X,limit:w,offset:Y,lockingClause:M,distinct:G,setOperators:z}){let D=J??o$($);for(let $T of D)if(k($T.field,UT)&&S$($T.field.table)!==(k(f,eT)?f._.alias:k(f,a0)?f[NT].name:k(f,P)?void 0:S$(f))&&!((QT)=>W?.some(({alias:hT})=>hT===(QT[m.Symbol.IsAlias]?S$(QT):QT[m.Symbol.BaseName])))($T.field.table)){let QT=S$($T.field.table);throw new Error(`Your "${$T.path.join("->")}" field references a column "${QT}"."${$T.field.name}", but the table "${QT}" is not part of the query! Did you forget to join it?`)}let R=!W||W.length===0,L=this.buildWithCTE(T),x;if(G)x=G===!0?O` distinct`:O` distinct on (${O.join(G.on,O`, `)})`;let y=this.buildSelection(D,{isSingleTable:R}),I=this.buildFromTable(f),E=this.buildJoins(W),V=S?O` where ${S}`:void 0,B=F?O` having ${F}`:void 0,U;if(A&&A.length>0)U=O` order by ${O.join(A,O`, `)}`;let h;if(X&&X.length>0)h=O` group by ${O.join(X,O`, `)}`;let l=typeof w==="object"||typeof w==="number"&&w>=0?O` limit ${w}`:void 0,_=Y?O` offset ${Y}`:void 0,s=O.empty();if(M){let $T=O` for ${O.raw(M.strength)}`;if(M.config.of)$T.append(O` of ${O.join(Array.isArray(M.config.of)?M.config.of:[M.config.of],O`, `)}`);if(M.config.noWait)$T.append(O` no wait`);else if(M.config.skipLocked)$T.append(O` skip locked`);s.append($T)}let p=O`${L}select${x} ${y} from ${I}${E}${V}${h}${B}${U}${l}${_}${s}`;if(z.length>0)return this.buildSetOperations(p,z);return p}buildSetOperations(T,$){let[J,...S]=$;if(!J)throw new Error("Cannot pass undefined values to any set operator");if(S.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:J});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:J}),S)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:J,rightSelect:S,limit:F,orderBy:f,offset:W}}){let A=O`(${T.getSQL()}) `,X=O`(${S.getSQL()})`,w;if(f&&f.length>0){let z=[];for(let D of f)if(k(D,Z))z.push(O.identifier(D.name));else if(k(D,P)){for(let R=0;R<D.queryChunks.length;R++){let L=D.queryChunks[R];if(k(L,Z))D.queryChunks[R]=O.identifier(L.name)}z.push(O`${D}`)}else z.push(O`${D}`);w=O` order by ${O.join(z,O`, `)} `}let Y=typeof F==="object"||typeof F==="number"&&F>=0?O` limit ${F}`:void 0,M=O.raw(`${$} ${J?"all ":""}`),G=W?O` offset ${W}`:void 0;return O`${A}${M}${X}${w}${Y}${G}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:S,withList:F,select:f,overridingSystemValue_:W}){let A=[],X=T[m.Symbol.Columns],w=Object.entries(X).filter(([L,x])=>!x.shouldDisableInsert()),Y=w.map(([,L])=>O.identifier(this.casing.getColumnCasing(L)));if(f){let L=$;if(k(L,P))A.push(L);else A.push(L.getSQL())}else{let L=$;A.push(O.raw("values "));for(let[x,y]of L.entries()){let I=[];for(let[E,V]of w){let B=y[E];if(B===void 0||k(B,h$)&&B.value===void 0)if(V.defaultFn!==void 0){let U=V.defaultFn(),h=k(U,P)?U:O.param(U,V);I.push(h)}else if(!V.default&&V.onUpdateFn!==void 0){let U=V.onUpdateFn(),h=k(U,P)?U:O.param(U,V);I.push(h)}else I.push(O`default`);else I.push(B)}if(A.push(I),x<L.length-1)A.push(O`, `)}}let M=this.buildWithCTE(F),G=O.join(A),z=S?O` returning ${this.buildSelection(S,{isSingleTable:!0})}`:void 0,D=J?O` on conflict ${J}`:void 0,R=W===!0?O`overriding system value `:void 0;return O`${M}insert into ${T} ${Y} ${R}${G}${D}${z}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:J}){let S=$?O` concurrently`:void 0,F=J?O` with no data`:void 0;return O`refresh materialized view${S} ${T}${F}`}prepareTyping(T){if(k(T,_f)||k(T,Rf))return"json";else if(k(T,kf))return"decimal";else if(k(T,Uf))return"time";else if(k(T,Vf)||k(T,Bf))return"timestamp";else if(k(T,Df)||k(T,Qf))return"date";else if(k(T,yf))return"uuid";else return"none"}sqlToQuery(T,$){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:S,tableConfig:F,queryConfig:f,tableAlias:W,nestedQueryRelation:A,joinOn:X}){let w=[],Y,M,G=[],z,D=[];if(f===!0)w=Object.entries(F.columns).map(([x,y])=>({dbKey:y.name,tsKey:x,field:GJ(y,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let L=Object.fromEntries(Object.entries(F.columns).map(([B,U])=>[B,GJ(U,W)]));if(f.where){let B=typeof f.where==="function"?f.where(L,BM()):f.where;z=B&&n0(B,W)}let x=[],y=[];if(f.columns){let B=!1;for(let[U,h]of Object.entries(f.columns)){if(h===void 0)continue;if(U in F.columns){if(!B&&h===!0)B=!0;y.push(U)}}if(y.length>0)y=B?y.filter((U)=>f.columns?.[U]===!0):Object.keys(F.columns).filter((U)=>!y.includes(U))}else y=Object.keys(F.columns);for(let B of y){let U=F.columns[B];x.push({tsKey:B,value:U})}let I=[];if(f.with)I=Object.entries(f.with).filter((B)=>!!B[1]).map(([B,U])=>({tsKey:B,queryConfig:U,relation:F.relations[B]}));let E;if(f.extras){E=typeof f.extras==="function"?f.extras(L,{sql:O}):f.extras;for(let[B,U]of Object.entries(E))x.push({tsKey:B,value:v2(U,W)})}for(let{tsKey:B,value:U}of x)w.push({dbKey:k(U,P.Aliased)?U.fieldAlias:F.columns[B].name,tsKey:B,field:k(U,UT)?GJ(U,W):U,relationTableTsKey:void 0,isJson:!1,selection:[]});let V=typeof f.orderBy==="function"?f.orderBy(L,yM()):f.orderBy??[];if(!Array.isArray(V))V=[V];G=V.map((B)=>{if(k(B,UT))return GJ(B,W);return n0(B,W)}),Y=f.limit,M=f.offset;for(let{tsKey:B,queryConfig:U,relation:h}of I){let l=NM($,J,h),_=BS(h.referencedTable),s=J[_],p=`${W}_${B}`,$T=c0(...l.fields.map((k$,HJ)=>Hf(GJ(l.references[HJ],p),GJ(k$,W)))),QT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[s],tableConfig:$[s],queryConfig:k(h,uJ)?U===!0?{limit:1}:{...U,limit:1}:U,tableAlias:p,joinOn:$T,nestedQueryRelation:h}),hT=O`${O.identifier(p)}.${O.identifier("data")}`.as(B);D.push({on:O`true`,table:new eT(QT.sql,{},p),alias:p,joinType:"left",lateral:!0}),w.push({dbKey:B,tsKey:B,field:hT,relationTableTsKey:s,isJson:!0,selection:QT.selection})}}if(w.length===0)throw new Kf({message:`No fields selected for table "${F.tsName}" ("${W}")`});let R;if(z=c0(X,z),A){let L=O`json_build_array(${O.join(w.map(({field:I,tsKey:E,isJson:V})=>V?O`${O.identifier(`${W}_${E}`)}.${O.identifier("data")}`:k(I,P.Aliased)?I.sql:I),O`, `)})`;if(k(A,t0))L=O`coalesce(json_agg(${L}${G.length>0?O` order by ${O.join(G,O`, `)}`:void 0}), '[]'::json)`;let x=[{dbKey:"data",tsKey:"data",field:L.as("data"),isJson:!0,relationTableTsKey:F.tsName,selection:w}];if(Y!==void 0||M!==void 0||G.length>0)R=this.buildSelectQuery({table:Gf(S,W),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:z,limit:Y,offset:M,orderBy:G,setOperators:[]}),z=void 0,Y=void 0,M=void 0,G=[];else R=Gf(S,W);R=this.buildSelectQuery({table:k(R,X$)?R:new eT(R,{},W),fields:{},fieldsFlat:x.map(({field:I})=>({path:[],field:k(I,UT)?GJ(I,W):I})),joins:D,where:z,limit:Y,offset:M,orderBy:G,setOperators:[]})}else R=this.buildSelectQuery({table:Gf(S,W),fields:{},fieldsFlat:w.map(({field:L})=>({path:[],field:k(L,UT)?GJ(L,W):L})),joins:D,where:z,limit:Y,offset:M,orderBy:G,setOperators:[]});return{tableTsKey:F.tsName,sql:R,selection:w}}}class wA{static[H]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class _${static[H]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let $=!!this.fields,J=T,S;if(this.fields)S=this.fields;else if(k(J,eT))S=Object.fromEntries(Object.keys(J._.selectedFields).map((F)=>[F,J[F]]));else if(k(J,a0))S=J[NT].selectedFields;else if(k(J,P))S={};else S=CY(J);return new YA({table:J,fields:S,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class rM extends wA{static[H]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:S,dialect:F,withList:f,distinct:W}){super();this.config={withList:f,table:T,fields:{...$},distinct:W,setOperators:[]},this.isPartialSelect=J,this.session=S,this.dialect=F,this._={selectedFields:$},this.tableName=jJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let S=this.tableName,F=jJ($);if(typeof F==="string"&&this.config.joins?.some((f)=>f.alias===F))throw new Error(`Alias "${F}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof S==="string")this.config.fields={[S]:this.config.fields};if(typeof F==="string"&&!k($,P)){let f=k($,eT)?$._.selectedFields:k($,y$)?$[NT].selectedFields:$[m.Symbol.Columns];this.config.fields[F]=f}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:J,table:$,joinType:T,alias:F}),typeof F==="string")switch(T){case"left":{this.joinsNotNullableMap[F]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([f])=>[f,!1])),this.joinsNotNullableMap[F]=!0;break}case"inner":{this.joinsNotNullableMap[F]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([f])=>[f,!1])),this.joinsNotNullableMap[F]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,$){return(J)=>{let S=typeof J==="function"?J($K()):J;if(!g0(this.getSelectedFields(),S.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:T,isAll:$,rightSelect:S}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),J=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=J;else this.config.orderBy=J}else{let $=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,$={}){return this.config.lockingClause={strength:T,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(T){return new Proxy(new eT(this.getSQL(),this.config.fields,T),new PT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new PT({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class YA extends rM{static[H]="PgSelect";_prepare(T){let{session:$,config:J,dialect:S,joinsNotNullableMap:F,authToken:f}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return VT.startActiveSpan("drizzle.prepareQuery",()=>{let W=o$(J.fields),A=$.prepareQuery(S.sqlToQuery(this.getSQL()),W,T,!0);return A.joinsNotNullableMap=F,A.setToken(f)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}NY(YA,[R$]);function CF(T,$){return(J,S,...F)=>{let f=[S,...F].map((W)=>({type:T,isAll:$,rightSelect:W}));for(let W of f)if(!g0(J.getSelectedFields(),W.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return J.addSetOperators(f)}}var $K=()=>({union:JK,unionAll:SK,intersect:FK,intersectAll:fK,except:WK,exceptAll:AK}),JK=CF("union",!1),SK=CF("union",!0),FK=CF("intersect",!1),fK=CF("intersect",!0),WK=CF("except",!1),AK=CF("except",!0);class s0{static[H]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=k(T,jS)?T:void 0,this.dialectConfig=k(T,jS)?void 0:T}$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(J);return new Proxy(new v0(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new PT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function J(f){return new _$({fields:f??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function S(f){return new _$({fields:f??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function F(f,W){return new _$({fields:W??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:f}})}return{select:J,selectDistinct:S,selectDistinctOn:F}}select(T){return new _$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new _$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new _$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new jS(this.dialectConfig);return this.dialect}}class nf{constructor(T,$,J,S,F){this.table=T,this.session=$,this.dialect=J,this.withList=S,this.overridingSystemValue_=F}static[H]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let $=T.map((J)=>{let S={},F=this.table[m.Symbol.Columns];for(let f of Object.keys(J)){let W=J[f];S[f]=k(W,P)?W:new h$(W,F[f])}return S});return new MA(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new s0):T;if(!k($,P)&&!g0(this.table[Yf],$._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new MA(this.table,$,this.session,this.dialect,this.withList,!0)}}class MA extends R${constructor(T,$,J,S,F,f,W){super();this.session=J,this.dialect=S,this.config={table:T,values:$,withList:F,select:f,overridingSystemValue_:W}}static[H]="PgInsert";config;returning(T=this.config.table[m.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=o$(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=O`do nothing`;else{let $="";$=Array.isArray(T.target)?T.target.map((S)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(S))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let J=T.where?O` where ${T.where}`:void 0;this.config.onConflict=O`(${O.raw($)})${J} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=T.where?O` where ${T.where}`:void 0,J=T.targetWhere?O` where ${T.targetWhere}`:void 0,S=T.setWhere?O` where ${T.setWhere}`:void 0,F=this.dialect.buildUpdateSet(this.config.table,zf(this.config.table,T.set)),f="";return f=Array.isArray(T.target)?T.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=O`(${O.raw(f)})${J} do update set ${F}${$}${S}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return VT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new PT({alias:S$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class GA extends R${constructor(T,$,J){super();this.session=$,this.dialect=J,this.config={view:T}}static[H]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return VT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class cf{constructor(T,$,J,S){this.table=T,this.session=$,this.dialect=J,this.withList=S}static[H]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new aM(this.table,zf(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class aM extends R${constructor(T,$,J,S,F){super();this.session=J,this.dialect=S,this.config={set:$,table:T,withList:F,joins:[]},this.tableName=jJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[H]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,J=jJ($);if(typeof J==="string")this.joinsNotNullableMap[J]=!0;return this.config.from=$,this}getTableLikeFields(T){if(k(T,X$))return T[m.Symbol.Columns];else if(k(T,eT))return T._.selectedFields;return T[NT].selectedFields}createJoin(T){return($,J)=>{let S=jJ($);if(typeof S==="string"&&this.config.joins.some((F)=>F.alias===S))throw new Error(`Alias "${S}" is already used in this query`);if(typeof J==="function"){let F=this.config.from&&!k(this.config.from,P)?this.getTableLikeFields(this.config.from):void 0;J=J(new Proxy(this.config.table[m.Symbol.Columns],new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),F&&new Proxy(F,new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:J,table:$,joinType:T,alias:S}),typeof S==="string")switch(T){case"left":{this.joinsNotNullableMap[S]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[S]=!0;break}case"inner":{this.joinsNotNullableMap[S]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[S]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[m.Symbol.Columns]),this.config.from){let $=jJ(this.config.from);if(typeof $==="string"&&this.config.from&&!k(this.config.from,P)){let J=this.getTableLikeFields(this.config.from);T[$]=J}for(let J of this.config.joins){let S=jJ(J.table);if(typeof S==="string"&&!k(J.table,P)){let F=this.getTableLikeFields(J.table);T[S]=F}}}}return this.config.returningFields=T,this.config.returning=o$(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){let $=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0);return $.joinsNotNullableMap=this.joinsNotNullableMap,$}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return this._prepare().execute(T,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new PT({alias:S$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class e0 extends P{constructor(T){super(e0.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=e0.buildCount(T.source,T.filters)}sql;token;static[H]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return O`(select count(*) from ${T}${O.raw(" where ").if($)}${$})`}static buildCount(T,$){return O`select count(*) as count from ${T}${O.raw(" where ").if($)}${$};`}setToken(T){return this.token=T,this}then(T,$){return Promise.resolve(this.session.count(this.sql,this.token)).then(T,$)}catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}}class HA{constructor(T,$,J,S,F,f,W){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=S,this.tableConfig=F,this.dialect=f,this.session=W}static[H]="PgRelationalQueryBuilder";findMany(T){return new KA(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new KA(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class KA extends R${constructor(T,$,J,S,F,f,W,A,X){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=S,this.tableConfig=F,this.dialect=f,this.session=W,this.config=A,this.mode=X}static[H]="PgRelationalQuery";_prepare(T){return VT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(S,F)=>{let f=S.map((W)=>Lf(this.schema,this.tableConfig,W,$.selection,F));if(this.mode==="first")return f[0];return f})})}prepare(T){return this._prepare(T)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let T=this._getQuery(),$=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class OA extends R${constructor(T,$,J,S){super();this.execute=T,this.sql=$,this.query=J,this.mapBatchResult=S}static[H]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class T1{constructor(T,$,J){if(this.dialect=T,this.session=$,this._=J?{schema:J.schema,fullSchema:J.fullSchema,tableNamesMap:J.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[S,F]of Object.entries(this._.schema))this.query[S]=new HA(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[S],F,T,$)}static[H]="PgDatabase";query;$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(new s0(J.dialect));return new Proxy(new v0(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new PT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new e0({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(X){return new _$({fields:X??void 0,session:$.session,dialect:$.dialect,withList:T})}function S(X){return new _$({fields:X??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function F(X,w){return new _$({fields:w??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:X}})}function f(X){return new cf(X,$.session,$.dialect,T)}function W(X){return new nf(X,$.session,$.dialect,T)}function A(X){return new Pf(X,$.session,$.dialect,T)}return{select:J,selectDistinct:S,selectDistinctOn:F,update:f,insert:W,delete:A}}select(T){return new _$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new _$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new _$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new cf(T,this.session,this.dialect)}insert(T){return new nf(T,this.session,this.dialect)}delete(T){return new Pf(T,this.session,this.dialect)}refreshMaterializedView(T){return new GA(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?O.raw(T):T.getSQL(),J=this.dialect.sqlToQuery($),S=this.session.prepareQuery(J,void 0,void 0,!1);return new OA(()=>S.execute(void 0,this.authToken),$,J,(F)=>S.mapResult(F,!0))}transaction(T,$){return this.session.transaction(T,$)}}class sM{constructor(T,$){this.unique=T,this.name=$}static[H]="PgIndexBuilderOn";on(...T){return new gf(T.map(($)=>{if(k($,P))return $;$=$;let J=new h0($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),J}),this.unique,!1,this.name)}onOnly(...T){return new gf(T.map(($)=>{if(k($,P))return $;$=$;let J=new h0($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,J}),this.unique,!0,this.name)}using(T,...$){return new gf($.map((J)=>{if(k(J,P))return J;J=J;let S=new h0(J.name,!!J.keyAsName,J.columnType,J.indexConfig);return J.indexConfig=JSON.parse(JSON.stringify(J.defaultConfig)),S}),this.unique,!0,this.name,T)}}class gf{static[H]="PgIndexBuilder";config;constructor(T,$,J,S,F="btree"){this.config={name:S,columns:T,unique:$,only:J,method:F}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new eM(this.config,T)}}class eM{static[H]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function zA(T){return new sM(!0,T)}class DA{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[H]="PgPreparedQuery";joinsNotNullableMap}class QA{constructor(T){this.dialect=T}static[H]="PgSession";execute(T,$){return VT.startActiveSpan("drizzle.operation",()=>{return VT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,$){let J=await this.execute(T,$);return Number(J[0].count)}}class EA extends T1{constructor(T,$,J,S=0){super(T,$,J);this.schema=J,this.nestedIndex=S}static[H]="PgTransaction";rollback(){throw new m2}getTransactionConfigSQL(T){let $=[];if(T.isolationLevel)$.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)$.push(T.accessMode);if(typeof T.deferrable==="boolean")$.push(T.deferrable?"deferrable":"not deferrable");return O.raw($.join(" "))}setTransaction(T){return this.session.execute(O`set transaction ${this.getTransactionConfigSQL(T)}`)}}class T6 extends DA{constructor(T,$,J,S,F,f,W){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=S,this.fields=F,this._isResponseInArrayMode=f,this.customResultMapper=W}static[H]="PostgresJsPreparedQuery";async execute(T={}){return VT.startActiveSpan("drizzle.execute",async($)=>{let J=h2(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J);let{fields:S,queryString:F,client:f,joinsNotNullableMap:W,customResultMapper:A}=this;if(!S&&!A)return VT.startActiveSpan("drizzle.driver.execute",()=>{return f.unsafe(F,J)});let X=await VT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":F,"drizzle.query.params":JSON.stringify(J)}),f.unsafe(F,J).values()});return VT.startActiveSpan("drizzle.mapResponse",()=>{return A?A(X):X.map((w)=>LY(S,w,W))})})}all(T={}){return VT.startActiveSpan("drizzle.execute",async($)=>{let J=h2(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J),VT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.client.unsafe(this.queryString,J)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class $1 extends QA{constructor(T,$,J,S={}){super($);this.client=T,this.schema=J,this.options=S,this.logger=S.logger??new n2}static[H]="PostgresJsSession";logger;prepareQuery(T,$,J,S,F){return new T6(this.client,T.sql,T.params,this.logger,$,S,F)}query(T,$){return this.logger.logQuery(T,$),this.client.unsafe(T,$).values()}queryObjects(T,$){return this.client.unsafe(T,$)}transaction(T,$){return this.client.begin(async(J)=>{let S=new $1(J,this.dialect,this.schema,this.options),F=new RA(this.dialect,S,this.schema);if($)await F.setTransaction($);return T(F)})}}class RA extends EA{constructor(T,$,J,S=0){super(T,$,J,S);this.session=$}static[H]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new $1($,this.dialect,this.schema,this.session.options),S=new RA(this.dialect,J,this.schema);return T(S)})}}class $6 extends T1{static[H]="PostgresJsDatabase"}function jF(T,$={}){let J=(X)=>X;for(let X of["1184","1082","1083","1114"])T.options.parsers[X]=J,T.options.serializers[X]=J;T.options.serializers["114"]=J,T.options.serializers["3802"]=J;let S=new jS({casing:$.casing}),F;if($.logger===!0)F=new P2;else if($.logger!==!1)F=$.logger;let f;if($.schema){let X=LM($.schema,CM);f={fullSchema:$.schema,schema:X.tables,tableNamesMap:X.tableNamesMap}}let W=new $1(T,S,f,{logger:F}),A=new $6(S,W,f);return A.$client=T,A}function pf(...T){if(typeof T[0]==="string"){let $=NF(T[0]);return jF($,T[1])}if(jY(T[0])){let{connection:$,client:J,...S}=T[0];if(J)return jF(J,S);if(typeof $==="object"&&$.url!==void 0){let{url:f,...W}=$,A=NF(f,W);return jF(A,S)}let F=NF($);return jF(F,S)}return jF(T[0],T[1])}((T)=>{function $(J){return jF({options:{parsers:{},serializers:{}}},J)}T.mock=$})(pf||(pf={}));function XK(T,$){let J={},S=[];for(let F in T){let f=T[F],W=$[F],A=f["~standard"].validate(W);if(A instanceof Promise)throw new Error(`Validation must be synchronous, but ${F} returned a Promise.`);if(A.issues){S.push(...A.issues.map((X)=>({...X,path:[F,...X.path??[]]})));continue}J[F]=A.value}if(S.length)return{issues:S};return{value:J}}function J6(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[y,I]of Object.entries($))if(I==="")delete $[y]}if(!!T.skipValidation)return $;let F=typeof T.client==="object"?T.client:{},f=typeof T.server==="object"?T.server:{},W=typeof T.shared==="object"?T.shared:{},A=T.isServer??(typeof window==="undefined"||("Deno"in window)),X=A?{...f,...W,...F}:{...F,...W},w=XK(X,$),Y=T.onValidationError??((y)=>{throw console.error("\u274C Invalid environment variables:",y),new Error("Invalid environment variables")}),M=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(w.issues)return Y(w.issues);let G=(y)=>{if(!T.clientPrefix)return!0;return!y.startsWith(T.clientPrefix)&&!(y in W)},z=(y)=>{return A||!G(y)},D=(y)=>{return y==="__esModule"||y==="$$typeof"},R=(T.extends??[]).reduce((y,I)=>{return Object.assign(y,I)},{}),L=Object.assign(w.value,R);return new Proxy(L,{get(y,I){if(typeof I!=="string")return;if(D(I))return;if(!z(I))return M(I);return Reflect.get(y,I)}})}var wK="__vite_start_time"in globalThis,YK=typeof window!=="undefined",xv="vitest"in globalThis,IJ=J6({isServer:!wK&&!YK,server:{CI:kT.string().transform((T)=>!0).optional(),POSTGRES_USER:kT.string(),POSTGRES_PASSWORD:kT.string(),POSTGRES_DATABASE:kT.string(),POSTGRES_HOST:kT.string(),POSTGRES_PORT:kT.string().transform((T)=>Number.parseInt(T,10)),BACKEND_PORT:kT.string().transform((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:kT.union([kT.literal("true"),kT.literal("false")]).optional().transform((T)=>T==="true"),FRONTEND_PORT:kT.string().transform((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:kT.string().transform((T)=>JSON.parse(T)).pipe(kT.array(kT.string())),OPENAI_API_KEY:kT.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:kT.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:kT.union([kT.literal("true"),kT.literal("false")]).optional().transform((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var kA={};z7(kA,{users:()=>xS,userChanges:()=>GK,untrackedUserColumnNames:()=>MK,twoFactorMethod:()=>A6,trackedUserColumnName:()=>W6,trackableUserColumnNames:()=>f6,role:()=>F6,players:()=>_A,passwordResetAttempts:()=>HK,loginHistory:()=>KK,games:()=>of,banishedIps:()=>tf});function S6(T){return O`lower(${T})`}var F6=Xf("role",["admin","user"]),xS=iJ("users",{id:v$().primaryKey().defaultRandom(),username:A$({length:16}).notNull(),email:A$({length:254}).notNull(),hash:A$({length:64}).notNull(),salt:A$({length:36}).notNull(),createdAt:SJ({withTimezone:!0}).notNull().defaultNow(),createdIp:A$({length:45}).notNull(),isActive:p0().notNull().default(!1),verifiedAt:SJ({withTimezone:!0}),userRole:F6().default("user")},(T)=>[zA("usernameUniqueIndex").on(S6(T.username)),zA("emailUniqueIndex").on(S6(T.email))]),MK=["id","createdAt","createdIp","isActive","salt","verifiedAt"],f6=["username","email","hash","userRole"],W6=Xf("trackedUserColumnName",f6),GK=iJ("userChanges",{id:v$().primaryKey().defaultRandom(),userId:v$().notNull().references(()=>xS.id),changedAt:SJ({withTimezone:!0}).notNull().defaultNow(),changedIp:A$({length:45}).notNull(),changedColumn:W6().notNull(),oldValue:A$({length:255}),newValue:A$({length:255})}),of=iJ("games",{id:v$().primaryKey().defaultRandom()}),_A=iJ("players",{userId:v$().notNull().references(()=>xS.id),gameId:v$().notNull().references(()=>of.id),score:Ef().notNull()},(T)=>[kM({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),KK=iJ("loginHistory",{id:v$().primaryKey().defaultRandom(),userId:v$().references(()=>xS.id),loginTime:SJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:A$({length:45}).notNull(),userAgent:A$({length:1024}),successful:p0().notNull().default(!1)}),A6=Xf("twoFactorMethod",["email","phone"]),HK=iJ("passwordResetAttempts",{id:v$().primaryKey().defaultRandom(),userId:v$().notNull().references(()=>xS.id),requestedIp:A$({length:45}).notNull(),requestedAt:SJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:A$({length:45}),succeededAt:SJ({withTimezone:!0}),verificationMethod:A6().notNull()}),tf=iJ("banishedIps",{ip:A$({length:45}).primaryKey(),reason:A$({length:2048}).notNull(),banishedAt:SJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:SJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class UA{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(OK.resolve(__dirname,"notify_update.sql"));let T=[S$(xS),S$(of),S$(_A)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let J=$.split(","),S=J[0],F=J[1],f=`${S}("${F}")`;if(this.observers.has(f))this.observers.get(f).next(f)})}constructor(T=!1,$={host:IJ.POSTGRES_HOST,port:IJ.POSTGRES_PORT,user:IJ.POSTGRES_USER,password:IJ.POSTGRES_PASSWORD,database:IJ.POSTGRES_DATABASE}){this.options=$,this.sql=NF($),this.drizzle=pf(this.sql,{schema:kA,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new FT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as QK}from"path";import{existsSync as VA,mkdirSync as X6,readFileSync as zK,writeFileSync as DK,rmSync as w6,readdirSync as Y6,statSync as M6}from"fs";import{resolve as BA}from"path";var G6=class{get initialized(){return VA(this.rootDir)}initialize(){if(!this.initialized)X6(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=BA(this.rootDir,T);if(VA($))return zK($,"utf-8");return null}setItem(T,$){this.initialize();let J=BA(this.rootDir,T);DK(J,$)}removeItem(T){let $=BA(this.rootDir,T);if(VA($))this.initialize(),w6($)}key(T){var $;return($=Y6(this.rootDir).sort((F,f)=>{let W=M6(F);return M6(f).ctimeMs-W.ctimeMs})[T])!=null?$:null}clear(){w6(this.rootDir,{recursive:!0}),X6(this.rootDir,{recursive:!0})}get length(){return Y6(this.rootDir).length}};var yA=new G6({path:QK(process.cwd(),"storage")});import*as df from"fs";import*as K6 from"readline";function EK(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(S,F,f,W,A)=>{let w={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[f];return`${W}-${w}-${F}T${A}`});return new Date(J)}async function H6(T,$="/var/log/nginx/access.log",J=new Date){let S=new Map;if(!df.existsSync($))return T.error(`Log file not found: ${$}`),S;let F=df.createReadStream($),f=K6.createInterface({input:F,crlfDelay:Number.POSITIVE_INFINITY}),W=new Date(J.getTime()-3600000);return f.on("line",(A)=>{let X=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,w=A.match(X);if(w?.groups){let Y=w.groups.ip,M=w.groups.dateTime,G=EK(M);if(!Number.isNaN(G.getTime())){if(G>=W&&G<=J){let z=S.get(Y);if(!z)z=[],S.set(Y,z);z.push(A)}}else T.error(`Failed to parse date: ${M}`)}}),new Promise((A,X)=>{f.on("error",(w)=>{X(w)}),f.on("close",()=>{A(S)})})}var RK=["Network security adjudicator, your job is to determine if an IP address should be banned.","The IP address in question created the following logs on our server today:","```nginx.log\n"].join(`
95
+ `);function O6(T){return RK+T.join(`
96
96
 
97
- `)}var HK={schema:_T.union([_T.object({shouldBanIp:_T.literal(!1)}),_T.object({shouldBanIp:_T.literal(!0),veryConciseReason:_T.string()})]),fallback:{shouldBanIp:!1}};var U5=[".env","php"];async function zK({generator:T,logFilePath:$,logger:S,now:J=new Date}){let F=T.usdBudget,W=new V2({logQuery(I,Q){S.info("\uD83D\uDCDD query",I,Q)}}),f=await OK(S,$,J),A=[],X=T.from(HK),Y=0,w=0;for(let[I,Q]of f){S.info(`\uD83D\uDD0D ruling on ${I}. logs:`),S.info(Q.map((B)=>` ${B}`).join(`
98
- `));let V=!1;for(let B of U5)if(Q.some((U)=>U.includes(B))){A.push({ip:I,reason:`Always ban ${B}`}),S.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${I}--always ban ${B}
99
- `),V=!0;break}if(V)continue;if(T.usdBudget>T.usdMinimum){let B=GK(Q),U=await X(B);if(U.shouldBanIp)A.push({ip:I,reason:U.veryConciseReason}),S.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${I}--${U.veryConciseReason}
100
- `);else w++,S.info(` \uD83D\uDD4A\uFE0F not banning ${I}
101
- `);Y++}else{S.warn("\uD83D\uDCB0 insufficient funds to process all logs"),S.warn(`\uD83D\uDCB0 got through ${Y}/${f.size} ips
102
- `);break}}let K=A.length;if(A.length>0)await W.drizzle.insert(pW).values(A).onConflictDoNothing();let M=[],D=L2.getItem("lastTribunalProcessedDate"),z=new Date(D??"1970-01-01");try{M.push(...await W.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:OW(pW.banishedAt,z)}))}catch(I){S.error(I)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(M.map((I)=>new Promise((Q,V)=>k5(`iptables -D INPUT -s ${I.ip} -j DROP`).on("exit",(B)=>{if(B===0)S.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${I.ip}`),Q();else V(new Error(`iptables exited with code ${B}`))}))));else S.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(I){if(I instanceof Error)S.error(I.message);else{let Q=UF(I);S.error("iptables exited with error",Q)}}L2.setItem("lastTribunalProcessedDate",J.toISOString()),S.info(`\u2728 banned ${K} ips, didn't ban ${w} ips`);let R=F-T.usdBudget,L=R.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),j=F.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),y=Math.round(R/F*100);S.info(`\uD83D\uDCB8 spent ${L}, ${y}% of ${j} budget`)}var qS=new Df;Object.assign(console,qS.logger,{log:qS.logger.info});process.on("SIGINT",()=>{qS.logger.info("\u2757 received SIGINT; exiting gracefully"),tW()});process.on("SIGTERM",()=>{qS.logger.info("\u2757 received SIGTERM; exiting gracefully"),tW()});process.on("exit",()=>{qS.logger.info("\u2757 received exit; exiting gracefully"),tW()});qS.logger.info("\uD83D\uDEEB tribunal worker ready");var V5=new mY({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:ZS.OPENAI_API_KEY,cachingMode:"off",logger:qS.logger});if(ZS.OPENAI_API_KEY===void 0&&!("VITEST"in import.meta.env))throw new Error("OPENAI_API_KEY is not set and vitest is not running.");await zK({generator:V5,logFilePath:"/var/log/nginx/access.log",logger:qS.logger});tW();function tW(){qS.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}
97
+ `)}var z6={schema:kT.union([kT.object({shouldBanIp:kT.literal(!1)}),kT.object({shouldBanIp:kT.literal(!0),veryConciseReason:kT.string()})]),fallback:{shouldBanIp:!1}};var kK=[".env","php"];async function D6({generator:T,logFilePath:$,logger:J,now:S=new Date}){let F=T.usdBudget,f=new UA({logQuery(I,E){J.info("\uD83D\uDCDD query",I,E)}}),W=await H6(J,$,S),A=[],X=T.from(z6),w=0,Y=0;for(let[I,E]of W){J.info(`\uD83D\uDD0D ruling on ${I}. logs:`),J.info(E.map((B)=>` ${B}`).join(`
98
+ `));let V=!1;for(let B of kK)if(E.some((U)=>U.includes(B))){A.push({ip:I,reason:`Always ban ${B}`}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${I}--always ban ${B}
99
+ `),V=!0;break}if(V)continue;if(T.usdBudget>T.usdMinimum){let B=O6(E),U=await X(B);if(U.shouldBanIp)A.push({ip:I,reason:U.veryConciseReason}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${I}--${U.veryConciseReason}
100
+ `);else Y++,J.info(` \uD83D\uDD4A\uFE0F not banning ${I}
101
+ `);w++}else{J.warn("\uD83D\uDCB0 insufficient funds to process all logs"),J.warn(`\uD83D\uDCB0 got through ${w}/${W.size} ips
102
+ `);break}}let M=A.length;if(A.length>0)await f.drizzle.insert(tf).values(A).onConflictDoNothing();let G=[],z=yA.getItem("lastTribunalProcessedDate"),D=new Date(z??"1970-01-01");try{G.push(...await f.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:Of(tf.banishedAt,D)}))}catch(I){J.error(I)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(G.map((I)=>new Promise((E,V)=>_K(`iptables -D INPUT -s ${I.ip} -j DROP`).on("exit",(B)=>{if(B===0)J.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${I.ip}`),E();else V(new Error(`iptables exited with code ${B}`))}))));else J.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(I){if(I instanceof Error)J.error(I.message);else{let E=UF(I);J.error("iptables exited with error",E)}}yA.setItem("lastTribunalProcessedDate",S.toISOString()),J.info(`\u2728 banned ${M} ips, didn't ban ${Y} ips`);let R=F-T.usdBudget,L=R.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),x=F.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),y=Math.round(R/F*100);J.info(`\uD83D\uDCB8 spent ${L}, ${y}% of ${x} budget`)}var ZJ=new DW;Object.assign(console,ZJ.logger,{log:ZJ.logger.info});process.on("SIGINT",()=>{ZJ.logger.info("\u2757 received SIGINT; exiting gracefully"),uf()});process.on("SIGTERM",()=>{ZJ.logger.info("\u2757 received SIGTERM; exiting gracefully"),uf()});process.on("exit",()=>{ZJ.logger.info("\u2757 received exit; exiting gracefully"),uf()});ZJ.logger.info("\uD83D\uDEEB tribunal worker ready");var UK=new nw({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:IJ.OPENAI_API_KEY,cachingMode:"off",logger:ZJ.logger});if(IJ.OPENAI_API_KEY===void 0&&!("VITEST"in import.meta.env))throw new Error("OPENAI_API_KEY is not set and vitest is not running.");await D6({generator:UK,logFilePath:"/var/log/nginx/access.log",logger:ZJ.logger});uf();function uf(){ZJ.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}