tempest.games 0.1.35 → 0.1.37

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 Cw=Object.create;var{getPrototypeOf:xw,defineProperty:H2,getOwnPropertyNames:jw}=Object;var Zw=Object.prototype.hasOwnProperty;var qw=(T,$,J)=>{J=T!=null?Cw(xw(T)):{};let W=$||!T||!T.__esModule?H2(J,"default",{value:T,enumerable:!0}):J;for(let F of jw(T))if(!Zw.call(W,F))H2(W,F,{get:()=>T[F],enumerable:!0});return W};var Iw=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var bw=(T,$)=>{for(var J in $)H2(T,J,{get:$[J],enumerable:!0,configurable:!0,set:(W)=>$[J]=()=>W})};var a4=import.meta.require;var u6=Iw((vC,d6)=>{var dW=a4("os"),uW=a4("path");function o6(T){let $=process.env.XDG_CACHE_HOME||uW.join(dW.homedir(),".cache");return uW.join($,T)}function UH(T){return uW.join(dW.homedir(),"Library","Caches",T)}function _H(T){let $=process.env.LOCALAPPDATA||uW.join(dW.homedir(),"AppData","Local");return uW.join($,T,"Cache")}var kH=function(){switch(dW.platform()){case"darwin":return UH;case"win32":return _H;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return o6;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${dW.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`),o6}}();d6.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 kH($)}});function KF(T=Math.random){return T().toString(36).slice(2)}class u1 extends Promise{fate;resolve;reject;done=!1;constructor(T){let $,J;super((W,F)=>{$=W,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 e3(T){return Object.entries(T)}var s4=(T,$,J=AT.STORE)=>{return KJ(J,{key:`${T.key}:JSON`,get:({get:W})=>$.toJson(W(T)),set:({set:W},F)=>{W(T,$.fromJson(F))}})};function P(T){while(T.child!==null)T=T.child;return T}class XT{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 O2 extends XT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function DJ(T,$,J){let W={key:$.key,type:"atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${SJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,Y=Object.assign((A)=>{let w=YT(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),K=$.default,D={key:M,default:K instanceof Function?K(A):K};if($.effects)D.effects=$.effects(A);let R=N$(H,D,G);return X.next({type:"state_creation",token:R}),R},W,{subject:X,install:(A)=>DJ(A,$),internalRoles:J});return T.families.set($.key,Y),T.defaults.set($.key,$.default),W}function e4(T,$){if("mutable"in $)return i1(T,$);return DJ(T,$)}function QJ(T,$,J){let W={key:$.key,type:"readonly_selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","readonly_selector_family",$.key,`Overwriting an existing ${SJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,Y=Object.assign((A)=>{let w=YT(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),K=t1(H,{key:M,get:$.get(A)},G);return X.next({type:"state_creation",token:K}),K},W,{internalRoles:J,subject:X,install:(A)=>QJ(A,$),default:(A)=>{return $.get(A)({get:(...G)=>KT(T,...G),find:(...G)=>a(T,...G),json:(G)=>iT(T,G)})}});return T.families.set($.key,Y),W}function DF(T,$){if("set"in $)return l1(T,$);return QJ(T,$)}class QF{_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 QF([...this._buffer]);return T._index=this._index,T}}var vw={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function TS(T,$){let J=YT($),W=`${T.key}(${J})`,F=vw[T.type],X={key:W,type:F};return Object.assign(X,{family:{key:T.key,subKey:J}}),Object.assign(X,{counterfeit:!0}),X}function k$(T){let $={key:T.key,type:T.type};if("family"in T)$.family=T.family;return $}function c0(T){return $S(AT.STORE,T)}function T0(T){return e4(AT.STORE,T)}function z2(...T){if(T.length===2)return KT(AT.STORE,...T);return KT(AT.STORE,...T)}function EF(T,$,J=AT.STORE){return J.joins.set(T.key,new r1(T,$,J)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function WS(T){return FS(T,AT.STORE)}var f2=(T)=>($,J,W,F,...X)=>{console[T](`${$} ${J} "${W}" ${F}`,...X)},Pw={error:f2("error"),info:f2("info"),warn:f2("warn")};class K2{logLevel;filter;logger;constructor(T,$,J=Pw){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 IO=Symbol("claim");class XS{store;constructor(T=AT.STORE){this.store=T,SS("root",T)}allocate(T,$,J){return $0(this.store,T,$,J)}fuse(T,$,J){return YS(this.store,T,$,J)}deallocate(T){J0(this.store,T)}claim(T,$,J){return n0(this.store,T,$,J)}}class D2{store;realm;constructor(T=AT.STORE){this.store=T,this.realm=new XS(T)}allocate(T,$,J){$0(this.store,T,$,J)}deallocate(T){J0(this.store,T)}claim(T,$,J){n0(this.store,T,$,J)}}function UF(T){return DF(AT.STORE,T)}function X$(T){return"epoch"in T.transactionMeta}function QT(T){return"phase"in T.transactionMeta}var AS=(T)=>{let $=P(T);if(!QT($)){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 SJ(T){return T.type.split("_").map(ET).join(" ")}class W0 extends Error{constructor(T,$){super(`${SJ(T)} ${YT(T.key)} not found in store "${$.config.name}".`)}}function p0(T,$,J){return(...W)=>{let F=OT(T,$);if(F)return F.run(W,J);throw new W0($,T)}}var _F=(T)=>($)=>T instanceof Function?T($):T;var vJ=(T,$)=>{if(T.valueMap.has($.key))return T.logger.info("\uD83D\uDCD6",$.type,$.key,"reading cached value"),wS($,T);switch($.type){case"selector":case"readonly_selector":return T.logger.info("\uD83E\uDDEE",$.type,$.key,"computing value"),$.get();case"atom":case"mutable_atom":{let J=$.default,W;if(J instanceof Function)W=J();else W=J;return T.logger.info("\uD83D\uDC81","atom",$.key,"could not find cached value; using default",W),W}}};var GS=(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}"${!QT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},MS=(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)},HS=(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($)},o0=(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 OS=(T,$,J)=>{switch($.type){case"mutable_atom":T.logger.info("\uD83D\uDCE2",$.type,$.key,"is now (",J.newValue,") subscribers:",$.subject.subscribers);break;case"atom":case"selector":case"readonly_selector":T.logger.info("\uD83D\uDCE2",$.type,$.key,"went (",J.oldValue,"->",J.newValue,") subscribers:",$.subject.subscribers)}$.subject.next(J)};var Q2=(T,$)=>{let J=P(T),W=J.selectorAtoms.getRelatedKeys($.key);if(J.logger.info("\uD83E\uDDF9",$.type,$.key,W?`evicting ${W.size} states downstream:`:"no downstream states",W??"to evict"),W){if(J.operation.open)J.logger.info("\uD83E\uDDF9",$.type,$.key,`[ ${[...J.operation.done].join(", ")} ] already done`);for(let F of W){if(HS(J,F))continue;zS(F,J),o0(J,F)}}};var fS=(T,$,J)=>{let W=vJ(T,$),F=W;if($.type==="mutable_atom"&&QT(T)){let{parent:S}=T;F=s1(T,$,S)}if(F=_F(J)(F),T.logger.info("\uD83D\uDCDD","atom",$.key,"set to",F),F=m$(T,$.key,F,$.subject),DS(T,$.key))QS(T,$.key);o0(T,$.key),Q2(T,$);let X={oldValue:W,newValue:F};if(!QT(T)){OS(T,$,X);return}if(T.on.transactionApplying.state===null){let{key:S}=$;if(KS(X.newValue))return;let Y={type:"atom_update",key:S,...X};if($.family)Y.family=$.family;T.transactionMeta.update.updates.push(Y),T.logger.info("\uD83D\uDCC1","atom",S,"stowed (",X.oldValue,"->",X.newValue,")")}else if($.key.startsWith("*")){let S=$.key.slice(1),Y=T.atoms.get(S),A=T.valueMap.get(S);if(Y.type==="mutable_atom"&&QT(T)){let{parent:G}=T;A=s1(T,Y,G)}if(A.do(X.newValue)===null)Q2(T,Y)}};var kF=(T,$,J)=>{switch($.type){case"atom":case"mutable_atom":fS(T,$,J);break;case"selector":$.set(J);break}};function ES(T,$){if($.family){let J=T.families.get($.family.key);if(J)return J}}function gT(T,...$){let J,W,F,X;if($.length===2){if(J=$[0],X=$[1],W=ES(T,J)??null,W)F=J.family?$$(J.family.subKey):null,J=a(T,W,F)}else W=$[0],F=$[1],X=$[2],J=a(T,W,F);if("counterfeit"in J&&"family"in J){let A=J.family.subKey,w=T.disposalTraces.buffer.find((G)=>G?.key===A);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 S=GS(T,J);if(S){let A=T.on.operationClose.subscribe(`waiting to set "${J.key}" at T-${S}`,()=>{A(),T.logger.info("\uD83D\uDFE2",J.type,J.key,`resuming deferred setState from T-${S}`),gT(T,J,X)});return}let Y=OT(T,J);kF(T,Y,X),MS(T)}function VF(T,$,J){let{key:W,newValue:F,oldValue:X}=$,S=T==="newValue"?F:X,Y={key:W,type:"atom"};if($.family)Object.assign(Y,{family:$.family});gT(J,Y,S)}function RS(T){let{stack:$}=T;if($)return`
3
+ var Pw=Object.create;var{getPrototypeOf:hw,defineProperty:H2,getOwnPropertyNames:mw}=Object;var gw=Object.prototype.hasOwnProperty;var cw=(T,$,J)=>{J=T!=null?Pw(hw(T)):{};let W=$||!T||!T.__esModule?H2(J,"default",{value:T,enumerable:!0}):J;for(let F of mw(T))if(!gw.call(W,F))H2(W,F,{get:()=>T[F],enumerable:!0});return W};var nw=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var pw=(T,$)=>{for(var J in $)H2(T,J,{get:$[J],enumerable:!0,configurable:!0,set:(W)=>$[J]=()=>W})};var TY=import.meta.require;var rS=nw((tC,lS)=>{var dW=TY("node:os"),uW=TY("node:path");function tS(T){let $=process.env.XDG_CACHE_HOME||uW.join(dW.homedir(),".cache");return uW.join($,T)}function CH(T){return uW.join(dW.homedir(),"Library","Caches",T)}function xH(T){let $=process.env.LOCALAPPDATA||uW.join(dW.homedir(),"AppData","Local");return uW.join($,T,"Cache")}var jH=function(){switch(dW.platform()){case"darwin":return CH;case"win32":return xH;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return tS;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${dW.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`),tS}}();lS.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 jH($)}});function fF(T=Math.random){return T().toString(36).slice(2)}class d1 extends Promise{fate;resolve;reject;done=!1;constructor(T){let $,J;super((W,F)=>{$=W,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 Sz(T){return Object.entries(T)}var $Y=(T,$,J=AT.STORE)=>{return fJ(J,{key:`${T.key}:JSON`,get:({get:W})=>$.toJson(W(T)),set:({set:W},F)=>{W(T,$.fromJson(F))}})};function P(T){while(T.child!==null)T=T.child;return T}class XT{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 z2 extends XT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function DJ(T,$,J){let W={key:$.key,type:"atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${YJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,S=Object.assign((A)=>{let w=ST(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),f=$.default,D={key:M,default:f instanceof Function?f(A):f};if($.effects)D.effects=$.effects(A);let R=N$(H,D,G);return X.next({type:"state_creation",token:R}),R},W,{subject:X,install:(A)=>DJ(A,$),internalRoles:J});return T.families.set($.key,S),T.defaults.set($.key,$.default),W}function JY(T,$){if("mutable"in $)return u1(T,$);return DJ(T,$)}function QJ(T,$,J){let W={key:$.key,type:"readonly_selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","readonly_selector_family",$.key,`Overwriting an existing ${YJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,S=Object.assign((A)=>{let w=ST(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),f=i1(H,{key:M,get:$.get(A)},G);return X.next({type:"state_creation",token:f}),f},W,{internalRoles:J,subject:X,install:(A)=>QJ(A,$),default:(A)=>{return $.get(A)({get:(...G)=>fT(T,...G),find:(...G)=>a(T,...G),json:(G)=>iT(T,G)})}});return T.families.set($.key,S),W}function DF(T,$){if("set"in $)return t1(T,$);return QJ(T,$)}class QF{_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 QF([...this._buffer]);return T._index=this._index,T}}var ow={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function WY(T,$){let J=ST($),W=`${T.key}(${J})`,F=ow[T.type],X={key:W,type:F};return Object.assign(X,{family:{key:T.key,subKey:J}}),Object.assign(X,{counterfeit:!0}),X}function k$(T){let $={key:T.key,type:T.type};if("family"in T)$.family=T.family;return $}function p0(T){return FY(AT.STORE,T)}function $0(T){return JY(AT.STORE,T)}function O2(...T){if(T.length===2)return fT(AT.STORE,...T);return fT(AT.STORE,...T)}function EF(T,$,J=AT.STORE){return J.joins.set(T.key,new l1(T,$,J)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function YY(T){return SY(T,AT.STORE)}var K2=(T)=>($,J,W,F,...X)=>{console[T](`${$} ${J} "${W}" ${F}`,...X)},dw={error:K2("error"),info:K2("info"),warn:K2("warn")};class f2{logLevel;filter;logger;constructor(T,$,J=dw){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 nz=Symbol("claim");class AY{store;constructor(T=AT.STORE){this.store=T,wY("root",T)}allocate(T,$,J){return J0(this.store,T,$,J)}fuse(T,$,J){return GY(this.store,T,$,J)}deallocate(T){W0(this.store,T)}claim(T,$,J){return o0(this.store,T,$,J)}}class D2{store;realm;constructor(T=AT.STORE){this.store=T,this.realm=new AY(T)}allocate(T,$,J){J0(this.store,T,$,J)}deallocate(T){W0(this.store,T)}claim(T,$,J){o0(this.store,T,$,J)}}function UF(T){return DF(AT.STORE,T)}function X$(T){return"epoch"in T.transactionMeta}function QT(T){return"phase"in T.transactionMeta}var MY=(T)=>{let $=P(T);if(!QT($)){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 YJ(T){return T.type.split("_").map(ET).join(" ")}class F0 extends Error{constructor(T,$){super(`${YJ(T)} ${ST(T.key)} not found in store "${$.config.name}".`)}}function d0(T,$,J){return(...W)=>{let F=zT(T,$);if(F)return F.run(W,J);throw new F0($,T)}}var _F=(T)=>($)=>T instanceof Function?T($):T;var PJ=(T,$)=>{if(T.valueMap.has($.key))return T.logger.info("\uD83D\uDCD6",$.type,$.key,"reading cached value"),HY($,T);switch($.type){case"selector":case"readonly_selector":return T.logger.info("\uD83E\uDDEE",$.type,$.key,"computing value"),$.get();case"atom":case"mutable_atom":{let J=$.default,W;if(J instanceof Function)W=J();else W=J;return T.logger.info("\uD83D\uDC81","atom",$.key,"could not find cached value; using default",W),W}}};var zY=(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}"${!QT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},OY=(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)},KY=(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($)},u0=(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 fY=(T,$,J)=>{switch($.type){case"mutable_atom":T.logger.info("\uD83D\uDCE2",$.type,$.key,"is now (",J.newValue,") subscribers:",$.subject.subscribers);break;case"atom":case"selector":case"readonly_selector":T.logger.info("\uD83D\uDCE2",$.type,$.key,"went (",J.oldValue,"->",J.newValue,") subscribers:",$.subject.subscribers)}$.subject.next(J)};var Q2=(T,$)=>{let J=P(T),W=J.selectorAtoms.getRelatedKeys($.key);if(J.logger.info("\uD83E\uDDF9",$.type,$.key,W?`evicting ${W.size} states downstream:`:"no downstream states",W??"to evict"),W){if(J.operation.open)J.logger.info("\uD83E\uDDF9",$.type,$.key,`[ ${[...J.operation.done].join(", ")} ] already done`);for(let F of W){if(KY(J,F))continue;DY(F,J),u0(J,F)}}};var QY=(T,$,J)=>{let W=PJ(T,$),F=W;if($.type==="mutable_atom"&&QT(T)){let{parent:Y}=T;F=a1(T,$,Y)}if(F=_F(J)(F),T.logger.info("\uD83D\uDCDD","atom",$.key,"set to",F),F=m$(T,$.key,F,$.subject),RY(T,$.key))UY(T,$.key);u0(T,$.key),Q2(T,$);let X={oldValue:W,newValue:F};if(!QT(T)){fY(T,$,X);return}if(T.on.transactionApplying.state===null){let{key:Y}=$;if(EY(X.newValue))return;let S={type:"atom_update",key:Y,...X};if($.family)S.family=$.family;T.transactionMeta.update.updates.push(S),T.logger.info("\uD83D\uDCC1","atom",Y,"stowed (",X.oldValue,"->",X.newValue,")")}else if($.key.startsWith("*")){let Y=$.key.slice(1),S=T.atoms.get(Y),A=T.valueMap.get(Y);if(S.type==="mutable_atom"&&QT(T)){let{parent:G}=T;A=a1(T,S,G)}if(A.do(X.newValue)===null)Q2(T,S)}};var kF=(T,$,J)=>{switch($.type){case"atom":case"mutable_atom":QY(T,$,J);break;case"selector":$.set(J);break}};function _Y(T,$){if($.family){let J=T.families.get($.family.key);if(J)return J}}function gT(T,...$){let J,W,F,X;if($.length===2){if(J=$[0],X=$[1],W=_Y(T,J)??null,W)F=J.family?$$(J.family.subKey):null,J=a(T,W,F)}else W=$[0],F=$[1],X=$[2],J=a(T,W,F);if("counterfeit"in J&&"family"in J){let A=J.family.subKey,w=T.disposalTraces.buffer.find((G)=>G?.key===A);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 Y=zY(T,J);if(Y){let A=T.on.operationClose.subscribe(`waiting to set "${J.key}" at T-${Y}`,()=>{A(),T.logger.info("\uD83D\uDFE2",J.type,J.key,`resuming deferred setState from T-${Y}`),gT(T,J,X)});return}let S=zT(T,J);kF(T,S,X),OY(T)}function VF(T,$,J){let{key:W,newValue:F,oldValue:X}=$,Y=T==="newValue"?F:X,S={key:W,type:"atom"};if($.family)Object.assign(S,{family:$.family});gT(J,S,Y)}function kY(T){let{stack:$}=T;if($)return`
5
5
  `+$.split(`
6
6
  `)?.slice(1)?.join(`
7
- `);return""}function SS(T,$=AT.STORE){let J={key:T,stringKey:YT(T),dependsOn:"any"};return $.molecules.set(YT(T),J),T}function $0(T,$,J,W="any"){let F=$,X=YT(J),S=[],Y=P(T);if(Array.isArray(F))for(let G of F){let M=YT(G);if(Y.molecules.get(M))T.moleculeGraph.set(M,X,{source:M});else S.push(M)}else{let G=YT(F);if(Y.molecules.get(G))T.moleculeGraph.set(G,X,{source:G});else S.push(G)}if(S.length===0)Y.molecules.set(X,{key:J,stringKey:X,dependsOn:W});let A={type:"molecule_creation",key:J,provenance:F};if(QT(Y)&&Y.transactionMeta.phase==="building")Y.transactionMeta.update.updates.push(A);else Y.on.moleculeCreation.next(A);for(let G of S){let M=T.disposalTraces.buffer.find((H)=>H?.key===G);T.logger.error("\u274C","molecule",J,"allocation failed:",`Could not allocate to ${G} in store "${T.config.name}".`,M?`
7
+ `);return""}function wY(T,$=AT.STORE){let J={key:T,stringKey:ST(T),dependsOn:"any"};return $.molecules.set(ST(T),J),T}function J0(T,$,J,W="any"){let F=$,X=ST(J),Y=[],S=P(T);if(Array.isArray(F))for(let G of F){let M=ST(G);if(S.molecules.get(M))T.moleculeGraph.set(M,X,{source:M});else Y.push(M)}else{let G=ST(F);if(S.molecules.get(G))T.moleculeGraph.set(G,X,{source:G});else Y.push(G)}if(Y.length===0)S.molecules.set(X,{key:J,stringKey:X,dependsOn:W});let A={type:"molecule_creation",key:J,provenance:F};if(QT(S)&&S.transactionMeta.phase==="building")S.transactionMeta.update.updates.push(A);else S.on.moleculeCreation.next(A);for(let G of Y){let M=T.disposalTraces.buffer.find((H)=>H?.key===G);T.logger.error("\u274C","molecule",J,"allocation failed:",`Could not allocate to ${G} in store "${T.config.name}".`,M?`
8
8
  ${G} was most recently disposed
9
- ${M.trace}`:`No previous disposal trace for ${G} was found.`)}return J}function YS(T,$,J,W){let F=`T$--${$}==${J}++${W}`;return $0(T,[J,W],F,"all"),F}function J0(T,$){let J=YT($),W=T.molecules.get(J);if(!W){let K=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}".`,K?`
9
+ ${M.trace}`:`No previous disposal trace for ${G} was found.`)}return J}function GY(T,$,J,W){let F=`T$--${$}==${J}++${W}`;return J0(T,[J,W],F,"all"),F}function W0(T,$){let J=ST($),W=T.molecules.get(J);if(!W){let f=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}".`,f?`
10
10
  This state was most recently deallocated
11
- ${K.trace}`:`No previous disposal trace for ${J} was found.`);return}let F=T.moleculeJoins.getRelatedKeys(W.key);if(F)for(let K of F){let D=T.joins.get(K);if(D)D.relations.delete(W.key),D.molecules.delete(W.stringKey)}T.moleculeJoins.delete(W.stringKey);let X=[],S=[],Y={type:"molecule_disposal",key:W.key,values:S,provenance:X},A=P(T);A.molecules.delete(J);let w=QT(A)&&A.transactionMeta.phase==="building";if(w)A.transactionMeta.update.updates.push(Y);let G=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey});if(G)for(let[K,{source:D}]of G)if(D===W.stringKey){let R=$$(K);J0(T,R)}else X.push(D);let M=A.moleculeData.getRelatedKeys(W.stringKey);if(M)for(let K of M){let D=A.families.get(K),R=a(T,D,W.key);S.push([D.key,R]),F0(T,R)}if(A.moleculeGraph.delete(W.stringKey),A.moleculeJoins.delete(W.stringKey),A.moleculeData.delete(W.stringKey),!w)A.on.moleculeDisposal.next(Y);A.molecules.delete(W.stringKey);let H=RS(new Error);T.disposalTraces.add({key:J,trace:H})}function n0(T,$,J,W){let F=YT(J),X=P(T),S=X.molecules.get(F);if(!S){let H=T.disposalTraces.buffer.find((K)=>K?.key===F);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${F} in store "${T.config.name}".`,H?`
11
+ ${f.trace}`:`No previous disposal trace for ${J} was found.`);return}let F=T.moleculeJoins.getRelatedKeys(W.key);if(F)for(let f of F){let D=T.joins.get(f);if(D)D.relations.delete(W.key),D.molecules.delete(W.stringKey)}T.moleculeJoins.delete(W.stringKey);let X=[],Y=[],S={type:"molecule_disposal",key:W.key,values:Y,provenance:X},A=P(T);A.molecules.delete(J);let w=QT(A)&&A.transactionMeta.phase==="building";if(w)A.transactionMeta.update.updates.push(S);let G=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey});if(G)for(let[f,{source:D}]of G)if(D===W.stringKey){let R=$$(f);W0(T,R)}else X.push(D);let M=A.moleculeData.getRelatedKeys(W.stringKey);if(M)for(let f of M){let D=A.families.get(f),R=a(T,D,W.key);Y.push([D.key,R]),X0(T,R)}if(A.moleculeGraph.delete(W.stringKey),A.moleculeJoins.delete(W.stringKey),A.moleculeData.delete(W.stringKey),!w)A.on.moleculeDisposal.next(S);A.molecules.delete(W.stringKey);let H=kY(new Error);T.disposalTraces.add({key:J,trace:H})}function o0(T,$,J,W){let F=ST(J),X=P(T),Y=X.molecules.get(F);if(!Y){let H=T.disposalTraces.buffer.find((f)=>f?.key===F);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${F} in store "${T.config.name}".`,H?`
12
12
  ${F} was most recently disposed
13
- ${H.trace}`:`No previous disposal trace for ${F} was found.`),J}let Y=YT($),A=X.molecules.get(Y);if(!A){let H=T.disposalTraces.buffer.find((K)=>K?.key===Y);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${Y} in store "${T.config.name}".`,H?`
14
- ${Y} was most recently disposed
15
- ${H.trace}`:`No previous disposal trace for ${Y} was found.`),J}let w=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:S.stringKey}).filter(([,{source:H}])=>H!==F).map(([H])=>$$(H));if(W)X.moleculeGraph.delete(F);X.moleculeGraph.set({upstreamMoleculeKey:A.stringKey,downstreamMoleculeKey:S.stringKey},{source:A.stringKey});let G={type:"molecule_transfer",key:S.key,from:w,to:[A.key]};if(QT(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.updates.push(G);return J}function E2(T,$,J){switch($){case"newValue":{US(T,J);break}case"oldValue":{F0(J,T.token);break}}}function R2(T,$,J){switch($){case"newValue":{F0(J,T.token);break}case"oldValue":{if(US(T,J),T.subType==="atom")J.valueMap.set(T.token.key,T.value);break}}}function US(T,$){let{family:J}=T.token;if(J){let W=$.families.get(J.key);if(W)a($,W,$$(J.subKey))}}function _S(T,$,J){switch($){case"newValue":$0(J,T.provenance,T.key);break;case"oldValue":J0(J,T.key);break}}function kS(T,$,J){switch($){case"newValue":J0(J,T.key);break;case"oldValue":{let W=T.provenance.map($$);$0(J,W,T.key);for(let[F,X]of T.values){let S=J.families.get(F);if(S){a(J,S,T.key);let Y=`${F}(${YT(T.key)})`;J.valueMap.set(Y,X)}}}break}}function VS(T,$,J){switch($){case"newValue":{let W=T.to.length===1?T.to[0]:T.to;n0(J,W,T.key,"exclusive")}break;case"oldValue":{let W=T.from.length===1?T.from[0]:T.from;n0(J,W,T.key,"exclusive")}break}}function BF(T,$,J){let W=T==="newValue"?$.updates:[...$.updates].reverse();for(let F of W)switch(F.type){case"atom_update":case"selector_update":VF(T,F,J);break;case"state_creation":E2(F,T,J);break;case"state_disposal":R2(F,T,J);break;case"molecule_creation":_S(F,T,J);break;case"molecule_disposal":kS(F,T,J);break;case"molecule_transfer":VS(F,T,J);break;case"transaction_update":BF(T,F,J);break}}function U2(T,$){return T.transactionMeta.actionContinuities.getRelatedKey($)}function hw(T,$){return T.transactionMeta.epoch.get($)}function BS(T,$){if(!X$(T))return;let W=U2(T,$);if(W===void 0)return;return hw(T,W)}function LS(T,$,J){if(X$(T)&&$)T.transactionMeta.epoch.set($,J)}function yS(T,$,J){if(!X$(T))return;let F=U2(T,$);if(F!==void 0)T.transactionMeta.epoch.set(F,J)}var NS=(T,$)=>{let J=P($),{parent:W}=J;if(W===null||!QT(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,W.child=null,W.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),BF("newValue",J.transactionMeta.update,W),X$(W))yS(W,J.transactionMeta.update.key,J.transactionMeta.update.epoch),OT($,{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(QT(W))W.transactionMeta.update.updates.push(J.transactionMeta.update);W.on.transactionApplying.next(null)};function CS(T,$,J){if(!X$(T))return;let{epoch:F,actionContinuities:X}=T.transactionMeta;if(X.set($,J),!F.has($))F.set($,-1)}function xS(T){return{store:T}}function KT(T,...$){let J,W,F;if($.length===1)J=$[0];else W=$[0],F=$[1],J=a(T,W,F);if("counterfeit"in J&&"family"in J){W=T.families.get(J.family.key);let X=J.family.subKey,S=T.disposalTraces.buffer.find((Y)=>Y?.key===X);switch(T.logger.error("\u274C",J.type,J.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,S?`This state was previously disposed:
16
- ${S.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(W.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(W.key))return T.defaults.get(J.family.key);let Y=OT(T,W).default(X);return T.defaults.set(W.key,Y),Y}}}return vJ(T,OT(T,J))}class tT{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),W=this.relations.get($);if(J)J.add($);else J=new Set([$]),this.relations.set(T,J);if(W)W.add(T);else W=new Set([T]),this.relations.set($,W)}deleteRelation(T,$){let J=this.relations.get(T);if(J){if(J.delete($),J.size===0)this.relations.delete(T);let W=this.relations.get($);if(W){if(W.delete(T),W.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let J of $){let W=new Set().add(T);this.relations.set(J,W)}}replaceRelationsSafely(T,$){let J=this.relations.get(T),W=this.isAType?.(T)?T:void 0,F=W===void 0?T:void 0;if(J)for(let X of J){W??=X,F??=X;let S=this.relations.get(X);if(S){if(S.size===1)this.relations.delete(X);else S.delete(T);this.contents.delete(this.makeContentKey(W,F))}}this.relations.set(T,new Set($));for(let X of $){let S=this.relations.get(X);if(S)S.add(T);else S=new Set().add(T),this.relations.set(X,S)}}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,W])=>[J,new Set(W)])),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=(W,F)=>J.has(W,F),this.addRelation=(W,F)=>{J.addRelation(W,F)},this.deleteRelation=(W,F)=>{J.deleteRelation(W,F)},this.replaceRelationsSafely=(W,F)=>{J.replaceRelationsSafely(W,F)},this.replaceRelationsUnsafely=(W,F)=>{J.replaceRelationsUnsafely(W,F)},this.getRelatedKeys=(W)=>J.getRelatedKeys(W),J.getContent)this.getContentInternal=(W)=>{return J.getContent(W)},this.setContent=(W,F)=>{J.setContent(W,F)},this.deleteContent=(W)=>{J.deleteContent(W)};for(let[W,F]of T.relations??[]){let X=this.isAType?.(W)?W:void 0,S=X===void 0?W:void 0;for(let Y of F)X??=Y,S??=Y,this.addRelation(X,S)}for(let[W,F]of T.contents??[])this.setContent(W,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,W;switch(T.length){case 1:{let F=T[0];$=F[this.a],J=F[this.b],W=void 0;break}case 2:{let F=T[0];if(typeof F==="string")[$,J]=T;else $=F[this.a],J=F[this.b],W=T[1];break}default:{$=T[0],J=T[1],W=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)}break;case"n:n":}if(W){let F=this.makeContentKey($,J);this.setContent(F,W)}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 W=this.getRelatedKeys($);if(W)for(let F of W)this.delete(F,$)}if(typeof J==="string"&&$===void 0){let W=this.getRelatedKeys(J);if(W)for(let F of W)this.delete(J,F)}if(typeof J==="string"&&typeof $==="string"){this.deleteRelation(J,$);let W=this.makeContentKey(J,$);this.deleteContent(W)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((W)=>`"${W}"`).join(", ")}). Only one related key was expected.`);let J;for(let W of $){J=W;break}return J}}replaceRelations(T,$,J){let W=!Array.isArray($),F=W?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,F);else this.replaceRelationsSafely(T,F);if(W)for(let X of F){let S=this.makeContentKey(T,X),Y=$[X];this.setContent(S,Y)}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 W=this.getRelatedKeys($);if(W)return[...W].map((F)=>{return[F,this.getContent($,F)]})}if($===void 0&&J!==void 0){let W=this.getRelatedKeys(J);if(W)return[...W].map((F)=>{return[F,this.getContent(F,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class g$ extends Map{deleted=new Set;source;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 jS=(T,$,J,W)=>{let F=P(T),X={parent:F,child:null,on:F.on,loggers:F.loggers,logger:F.logger,config:F.config,atoms:new g$(F.atoms),atomsThatAreDefault:new Set(F.atomsThatAreDefault),families:new g$(F.families),joins:new g$(F.joins),operation:{open:!1},readonlySelectors:new g$(F.readonlySelectors),timelines:new g$(F.timelines),timelineTopics:new tT(F.timelineTopics.toJSON()),trackers:new Map,transactions:new g$(F.transactions),selectorAtoms:new tT(F.selectorAtoms.toJSON()),selectorGraph:new tT(F.selectorGraph.toJSON(),{makeContentKey:(...w)=>w.sort().join(":")}),selectors:new g$(F.selectors),valueMap:new g$(F.valueMap),defaults:F.defaults,disposalTraces:T.disposalTraces.copy(),molecules:new g$(F.molecules),moleculeGraph:new tT(F.moleculeGraph.toJSON(),{makeContentKey:F.moleculeGraph.makeContentKey}),moleculeData:new tT(F.moleculeData.toJSON(),{makeContentKey:F.moleculeData.makeContentKey}),moleculeJoins:new tT(F.moleculeJoins.toJSON(),{makeContentKey:F.moleculeJoins.makeContentKey}),miscResources:new g$(F.miscResources)},S=BS(T,$),Y={phase:"building",update:{type:"transaction_update",key:$,id:W,epoch:S===void 0?Number.NaN:S+1,updates:[],params:J,output:void 0},toolkit:{get:(...w)=>KT(A,...w),set:(...w)=>{gT(A,...w)},run:(w,G=KF())=>p0(A,w,G),find:(w,G)=>a(A,w,G),json:(w)=>iT(A,w),dispose:(...w)=>{F0(A,...w)},env:()=>xS(A)}},A=Object.assign(X,{transactionMeta:Y});return F.child=A,T.logger.info("\uD83D\uDEEB","transaction",$,"Building transaction with params:",J),A};function _2(T,$){let J={key:$.key,type:"transaction",run:(X,S)=>{let Y=jS(T,$.key,X,S);try{let A=P(T),{toolkit:w}=Y.transactionMeta,G=$.do(w,...X);return NS(G,A),G}catch(A){throw AS(W),T.logger.warn("\uD83D\uDCA5","transaction",$.key,"caught:",A),A}},install:(X)=>_2(X,$),subject:new XT},W=P(T);W.transactions.set(J.key,J);let F=k$(J);return T.on.transactionCreation.next(F),F}function e1(T){return _2(AT.STORE,T)}class ZS{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new tT({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new tT({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 tT({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new tT({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new QF(100);molecules=new Map;moleculeJoins=new tT({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new tT({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new tT({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new XT,atomDisposal:new XT,selectorCreation:new XT,selectorDisposal:new XT,timelineCreation:new XT,transactionCreation:new XT,transactionApplying:new O2(null),operationClose:new XT,moleculeCreation:new XT,moleculeDisposal:new XT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new K2("warn",(T,$,J)=>!PJ(J))];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},X$($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new tT($?.transactionMeta.actionContinuities.toJSON())};for(let[,W]of $.families){if(W.internalRoles?.includes("mutable")||W.internalRoles?.includes("join"))continue;W.install(this)}let J=new Set;for(let[,W]of $.atoms){if(J.has(W.key))continue;if(W.install(this),W.type==="mutable_atom"){let F=iT($,W),X=EJ(W);J.add(F.key),J.add(X.key)}}for(let[,W]of $.readonlySelectors)W.install(this);for(let[,W]of $.selectors){if(J.has(W.key))continue;W.install(this)}for(let[,W]of $.transactions)W.install(this);for(let[,W]of $.timelines)W.install(this)}}}var AT={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new ZS({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function OT(T,$){let J,W=T;while(W!==null){switch($.type){case"atom":case"mutable_atom":J=W.atoms.get($.key);break;case"selector":J=W.selectors.get($.key);break;case"readonly_selector":J=W.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":J=W.families.get($.key);break;case"timeline":J=W.timelines.get($.key);break;case"transaction":J=W.transactions.get($.key);break}if(J)return J;W=W.child}throw new W0($,T)}function qS(T,$,J){let W=T.families.get($.key);if(W===void 0)throw new W0($,T);let F=W(J),X=P(T);if(F.family){if(X$(X))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(QT(X)&&X.on.transactionApplying.state===null)X.transactionMeta.update.updates.push({type:"state_creation",token:F})}return F}function IS(T,$,J){let W=YT(J),F=`${$.key}(${W})`,X=P(T),S;switch($.type){case"atom_family":case"mutable_atom_family":S=X.atoms.get(F);break;case"selector_family":S=X.selectors.get(F);break;case"readonly_selector_family":S=X.readonlySelectors.get(F);break}if(S)return k$(S);return S}function a(T,$,J){let W=IS(T,$,J);if(W)return W;let F=YT(J),X=T.molecules.get(F);if(!X&&T.config.lifespan==="immortal"){let S=TS($,J);return T.logger.error("\u274C",S.type,S.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),S}if(W=qS(T,$,J),X)P(T).moleculeData.set(F,$.key);return W}function F0(T,...$){let J;if($.length===1)J=$[0];else{let W=$[0],F=$[1];J=a(T,W,F)}try{OT(T,J)}catch(W){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":k2(T,J);break;case"selector":case"readonly_selector":bS(T,J);break}}var LF=(T,$)=>P(T).atoms.has($),mw=(T,$)=>P(T).selectors.has($),gw=(T,$)=>P(T).readonlySelectors.has($),vS=(T,$)=>LF(T,$)||mw(T,$)||gw(T,$);var yF=(T,$)=>{return P($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([W,{source:F}])=>F!==T).map(([W,{source:F}])=>F).filter((W)=>vS($,W))};var V2=(T,$,J)=>{let W=[],F=yF(T,J);while(F.length>0){let X=F.shift();if($.has(X))continue;if($.add(X),!LF(J,X))F.push(...yF(X,J));else if(!W.includes(X))W.push(X)}return W},PS=(T,$)=>{let J=T.key,W=yF(J,$),F=new Set;return W.flatMap((X)=>LF($,X)?X:V2(X,F,$))};var hS=(T,$,J,W)=>{let F=P(W);if($.type==="atom"||$.type==="mutable_atom")F.selectorAtoms.set({selectorKey:T,atomKey:$.key}),W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let X=V2($.key,J,W);W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${X.map((S)=>`"${S}"`).join(", ")} ]`);for(let S of X)F.selectorAtoms=F.selectorAtoms.set({selectorKey:T,atomKey:S})}J.add($.key)};var NF=(T,$,J)=>({get:(...W)=>{let F=P(J),X;if(W.length===2){let[A,w]=W;X=a(J,A,w)}else[X]=W;let S=OT(J,X),Y=vJ(J,S);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${X.key}" =`,Y,")"),F.selectorGraph.set({upstreamSelectorKey:X.key,downstreamSelectorKey:T},{source:X.key}),hS(T,X,$,J),Y},set:(...W)=>{let F,X;if(W.length===2)F=W[0],X=W[1];else{let A=W[0],w=W[1];X=W[2],F=a(J,A,w)}let S=P(J),Y=OT(S,F);kF(S,Y,X)},find:(W,F)=>a(J,W,F),json:(W)=>iT(J,W)});var t1=(T,$,J)=>{let W=P(T),F=new XT,X=new Set,{get:S,find:Y,json:A}=NF($.key,X,W),w=()=>{let K=$.get({get:S,find:Y,json:A});return m$(P(T),$.key,K,F),X.clear(),K},G={...$,subject:F,install:(K)=>t1(K,$,J),get:w,type:"readonly_selector",...J&&{family:J}};W.readonlySelectors.set($.key,G);let M=w();T.logger.info("\u2728",G.type,G.key,"=",M);let H={key:$.key,type:"readonly_selector"};if(J)H.family=J;return H};var TW=(T,$,J)=>{let W=P(T),F=new XT,X=new Set,S=NF($.key,X,W),{find:Y,get:A,json:w}=S,G={find:Y,get:A,json:w},M=(y=$.get,j=P(T))=>{let L=y(G);return m$(j,$.key,L,F),X.clear(),L},K={...$,subject:F,install:(y)=>TW(y,$,J),get:M,set:(y)=>{let j=P(T),L=M($.get,j),Z=_F(y)(L);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",L,"->",Z,")"),m$(j,$.key,Z,F),o0(j,$.key),X$(j))F.next({newValue:Z,oldValue:L});$.set(S,Z)},type:"selector",...J&&{family:J}};W.selectors.set($.key,K);let D=M();T.logger.info("\u2728",K.type,K.key,"=",D);let R={key:$.key,type:"selector"};if(J)R.family=J;return R};function KJ(T,$){if("set"in $){let F=TW(T,$,void 0);return T.on.selectorCreation.next(F),F}let W=t1(T,$,void 0);return T.on.selectorCreation.next(W),W}function bS(T,$){let J=P(T),{key:W}=$,F=OT(J,$);if(!F.family)T.logger.error("\u274C","selector",W,"Standalone selectors cannot be disposed.");else{if(J.molecules.get(F.family.subKey))J.moleculeData.delete(F.family.subKey,F.family.key);let S;switch($.type){case"selector":J.selectors.delete(W),S={key:F.family.key,type:"selector_family"},OT(T,S).subject.next({type:"state_disposal",subType:"selector",token:$});break;case"readonly_selector":J.readonlySelectors.delete(W),S={key:F.family.key,type:"readonly_selector_family"},OT(T,S).subject.next({type:"state_disposal",subType:"selector",token:$});break}if(J.valueMap.delete(W),J.selectorAtoms.delete(W),J.selectorGraph.delete(W),T.logger.info("\uD83D\uDD25",$.type,W,"deleted"),QT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:$});else T.on.selectorDisposal.next($)}}function l1(T,$,J){let W={key:$.key,type:"selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${SJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,Y=Object.assign((A)=>{let w=YT(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),K=TW(H,{key:M,get:$.get(A),set:$.set(A)},G);return X.next({type:"state_creation",token:K}),K},W,{internalRoles:J,subject:X,install:(A)=>l1(A,$),default:(A)=>{return $.get(A)({get:(...G)=>KT(T,...G),find:(G,M)=>a(T,G,M),json:(G)=>iT(T,G)})}});return T.families.set($.key,Y),W}function mS(T,$,J){return l1(T,{key:`${$.key}:JSON`,get:(F)=>({get:X})=>{let S=X($,F);return J.toJson(S)},set:(F)=>({set:X},S)=>{X($,F,J.fromJson(S))}},["mutable","json"])}var $$=(T)=>JSON.parse(T),YT=(T)=>JSON.stringify(T),iD=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var gS=(T,$)=>{let J=P(T);if(J.operation.open)return J.operation.prev.get($.key);return J.valueMap.get($.key)};var y2=(T,$)=>{let J=P(T);return PS($,T).map((F)=>{let X=J.atoms.get(F);if(X===void 0)throw new Error(`Atom "${F}", a dependency of selector "${$.key}", not found in store "${T.config.name}".`);return X.subject.subscribe(`${$.type}:${$.key}`,(S)=>{T.logger.info("\uD83D\uDCE2",$.type,$.key,"root",F,"went",S.oldValue,"->",S.newValue);let Y=gS(J,$),A=vJ(J,$);T.logger.info("\u2728",$.type,$.key,"went",Y,"->",A),$.subject.next({newValue:A,oldValue:Y})})})};function O$(T,$,J,W){function F(M){if(T.operation.open){let H=T.on.operationClose.subscribe(`state subscription ${J}`,()=>{H(),W(M)})}else W(M)}let X=OT(T,$);T.logger.info("\uD83D\uDC40",X.type,X.key,`Adding subscription "${J}"`);let S=X.type==="selector"||X.type==="readonly_selector",Y=null,A=F;if(S)Y=y2(T,X),A=(M)=>{if(Y)Y.length=0,Y.push(...y2(T,X));F(M)};let w=X.subject.subscribe(J,A);return()=>{if(T.logger.info("\uD83D\uDE48",X.type,X.key,`Removing subscription "${J}"`),w(),Y)for(let M of Y)M()}}var B2=(T,$,J,W)=>{let F=OT(T,$);T.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${J}"`);let X=F.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${J}" from timeline`),X()}};var L2=(T,$,J,W)=>{let F=OT(T,$);T.logger.info("\uD83D\uDC40","transaction",$.key,`Adding subscription "${J}"`);let X=F.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","transaction",$.key,`Removing subscription "${J}"`),X()}};class X0{Update;initializeState(T,$){let J=`*${T.key}`;$.atoms.delete(J),$.valueMap.delete(J);let W=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,F=N$($,{key:J,default:null},W);if($.parent?.valueMap.has(J)){let X=$.parent.valueMap.get(J);$.valueMap.set(J,X)}return F}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,J){let W=`tracker:${J.config.name}:${QT(J)?J.transactionMeta.update.key:"main"}:${T.key}`,F=KT(J,T);this.unsubscribeFromInnerValue=F.subscribe(W,(X)=>{gT(J,$,X)}),this.unsubscribeFromState=O$(J,T,W,(X)=>{if(X.newValue!==X.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=X.newValue.subscribe(W,(S)=>{gT(J,$,S)})})}updateCore(T,$,J){let W=`tracker:${J.config.name}:${QT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;O$(J,$,W,({newValue:F,oldValue:X})=>{let S=J.timelineTopics.getRelatedKey($.key);if(S){if(J.timelines.get(S)?.timeTraveling){let w=B2(J,{key:S,type:"timeline"},W,(G)=>{w(),gT(J,T,(M)=>{if(G==="redo"&&F)M.do(F);else if(G==="undo"&&X)M.undo(X);return M})});return}}let Y=J.on.operationClose.subscribe(W,()=>{Y();let A=KT(J,T),w=F===null?-1:A.getUpdateNumber(F),G=w-A.cacheUpdateNumber;if(F&&G===1)gT(J,T,(M)=>(M.do(F),M));else J.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${A.cacheUpdateNumber+1}, but got ${w}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,$){this.mutableState=T;let J=P($);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 $W(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=P(T),F=W.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."),k$(F);let X=new XT,S={...$,type:"mutable_atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),$W(w,$,J)},subject:X};if(J)S.family=J;let Y=$.default();W.atoms.set(S.key,S),CF(T,$.key),m$(W,$.key,Y,X);let A=k$(S);if($.effects){let w=0,G=[];for(let M of $.effects){let H=M({setSelf:(K)=>{gT(T,A,K)},onSet:(K)=>O$(T,A,`effect[${w}]`,K)});if(H)G.push(H);++w}S.cleanup=()=>{for(let M of G)M()}}if(new X0(A,T),!J)s4(A,$,T);return A}class N2{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=DJ($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=OT($,J),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(W)=>{let{type:F,token:X}=W;if(X.family){let S=$$(X.family.subKey);switch(F){case"state_creation":this.trackers.set(S,new X0(X,$));break;case"state_disposal":{let Y=this.trackers.get(S);if(Y)Y[Symbol.dispose](),this.trackers.delete(S)}break}}})}}function i1(T,$,J){let W={key:$.key,type:"mutable_atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${SJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,Y=Object.assign((A)=>{let w=YT(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),K={key:M,default:()=>$.default(A),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)K.effects=$.effects(A);let D=$W(H,K,G);return X.next({type:"state_creation",token:D}),D},W,{subject:X,install:(A)=>i1(A,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:J});return T.families.set($.key,Y),mS(T,Y,$),new N2(Y,T),W}var C2=(T,$)=>{let J=P($),W=`${T.key}:JSON`;return J.families.get(W)};var iT=(T,$)=>{if($.family){let W=P(T),X={key:`${$.family.key}:JSON`,type:"selector_family"},S=OT(W,X),Y=JSON.parse($.family.subKey);return a(T,S,Y)}return{type:"selector",key:`${$.key}:JSON`}};var EJ=(T)=>{let J={type:"atom",key:`*${T.key}`};if(T.family)J.family={key:`*${T.family.key}`,subKey:T.family.subKey};return J};function KS(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function s1(T,$,J){let W=J.valueMap.get($.key),F=T.valueMap.get($.key);if(W!==F)return F;if(W===void 0)return $.default();J.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let X=$.toJson(W),S=$.fromJson(X);return T.valueMap.set($.key,S),new X0($,J),S}function m$(T,$,J,W){let F=T.valueMap.get($);if(F instanceof u1)F.use(J);if(J instanceof Promise){let X=new u1(J);return T.valueMap.set($,X),X.then((S)=>{m$(T,$,S,W),W.next({newValue:S,oldValue:X})}).catch((S)=>{T.logger.error("\uD83D\uDCA5","state",$,"rejected:",S)}),X}return T.valueMap.set($,J),J}var wS=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&QT($)){let{parent:W}=$;J=s1($,T,W)}return J},zS=(T,$)=>{let J=$.valueMap.get(T);if(J instanceof u1){let W=J,F=$.selectors.get(T)??$.readonlySelectors.get(T);if(F)W.use(F.get());return}if($.operation.open)$.operation.prev.set(T,J);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var DS=(T,$)=>{return P(T).atomsThatAreDefault.has($)},CF=(T,$)=>{let J=P(T);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add($)},QS=(T,$)=>{let J=P(T);J.atomsThatAreDefault=new Set(P(T).atomsThatAreDefault),J.atomsThatAreDefault.delete($)};function N$(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=P(T),F=W.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."),k$(F);let X=new XT,S={...$,type:"atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),N$(w,$,J)},subject:X};if(J)S.family=J;let Y=$.default;if($.default instanceof Function)Y=$.default();W.atoms.set(S.key,S),CF(T,$.key),m$(W,$.key,Y,X);let A=k$(S);if($.effects){let w=0,G=[];for(let M of $.effects){let H=M({setSelf:(K)=>{gT(T,A,K)},onSet:(K)=>O$(T,A,`effect[${w}]`,K)});if(H)G.push(H);++w}S.cleanup=()=>{for(let M of G)M()}}return A}function $S(T,$){if("mutable"in $){let F=$W(T,$,void 0);return T.on.atomCreation.next(F),F}let W=N$(T,$,void 0);return T.on.atomCreation.next(W),W}function k2(T,$){let J=P(T),{key:W,family:F}=$,X=OT(J,$);if(!F)T.logger.error("\u274C","atom",W,"Standalone atoms cannot be disposed.");else{X.cleanup?.();let S=T.valueMap.get(X.key),Y=OT(T,{key:F.key,type:"atom_family"}),A={type:"state_disposal",subType:"atom",token:$,value:S};Y.subject.next(A);let w=QT(J);if(J.atoms.delete(W),J.valueMap.delete(W),J.selectorAtoms.delete(W),J.atomsThatAreDefault.delete(W),T.timelineTopics.delete(W),$.type==="mutable_atom"){let G=EJ($);k2(T,G),T.trackers.delete(W)}if(T.logger.info("\uD83D\uDD25","atom",W,"deleted"),w&&J.transactionMeta.phase==="building"){let G=J.transactionMeta.update.updates.at(-1);if(!(G?.type==="molecule_disposal"&&G.values.some(([K])=>K===X.family?.key)))J.transactionMeta.update.updates.push(A)}else T.on.atomDisposal.next($)}}class lT extends Set{mode="record";subject=new XT;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:${YT(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:${YT(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 W of this.transactionUpdates)this.doStep(W);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,$),W=T.substring($+1);switch(J){case"add":this.add(JSON.parse(W));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(W));break;case"tx":for(let F of W.split(";"))this.doStep(F)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),J=Number(T.substring(0,$)),W=J-this.cacheUpdateNumber;if(W>0){if(W===1){this.mode="playback";let X=T.substring($+1);return this.doStep(X),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(W)<this.cacheLimit){let X=this.cacheIdx+W;if(this.cache[X]===T)return null;this.mode="playback";let Y=!1;while(!Y){this.cacheIdx%=this.cacheLimit;let w=this.cache[this.cacheIdx];if(this.cacheIdx--,!w)return"OUT_OF_RANGE";this.undo(w),Y=this.cacheIdx===X-1}let A=T.substring($+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=J,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),J=T.substring(0,$),W=T.substring($+1);switch(J){case"add":this.delete(JSON.parse(W));break;case"del":this.add(JSON.parse(W));break;case"clear":{let F=JSON.parse(W);for(let X of F)this.add(X);break}case"tx":{let F=W.split(";");for(let X=F.length-1;X>=0;X--)this.undoStep(F[X])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let W=T.substring($+1);return this.undoStep(W),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class r1{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 D2(J),this.options=T,this.defaultContent=$,this.store.miscResources.set(`join:${T.key}`,this),this.realm.allocate("root",T.key),this.toolkit={get:(...E)=>KT(J,...E),set:(...E)=>{gT(J,...E)},find:(...E)=>a(J,...E),json:(E)=>iT(J,E)};let W=T.between[0],F=T.between[1],X=i1(J,{key:`${T.key}/relatedKeys`,default:()=>new lT,mutable:!0,fromJson:(E)=>lT.fromJSON(E),toJson:(E)=>E.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:X};let S=({get:E},V)=>E(X,V),Y=({set:E},V,B)=>{if(!this.store.molecules.has(YT(V)))this.realm.allocate(T.key,V);E(X,V,(k)=>k.add(B)),E(X,B,(k)=>k.add(V))},A=({set:E},V,B)=>{E(X,V,(k)=>{return k.delete(B),k}),E(X,B,(k)=>{return k.delete(V),k})},w=(E,V,B)=>{let{find:k,get:b,set:r}=E,U=k(X,V),e=b(U);for(let p of e){if(B.includes(p))continue;r(X,p,(DT)=>{return DT.delete(V),DT})}r(U,(p)=>{return p.transaction(($T)=>{$T.clear();for(let DT of B){let PT=S(E,DT),_$=PT.has(V);if(this.relations.cardinality==="1:n"){let fJ=[];for(let N of PT){if(N===V)continue;let i=S(E,N);if(i.delete(DT),i.size===0)fJ.push(N)}if(!_$&&PT.size>0)PT.clear();for(let N of fJ){let i=[DT,N].sort(),zT=`"${i[0]}:${i[1]}"`;this.molecules.delete(zT)}}if(!_$)PT.add(V);$T.add(DT)}return!0}),p})},G=(E,V,B)=>{let{set:k}=E;k(X,V,(b)=>{return b.transaction((r)=>{for(let U of B)r.add(U);return!0}),b});for(let b of B)k(X,b,(r)=>{return r.add(V),r});return!0},M=(E,V,B)=>{let k=S(E,V);return B?k.has(B):k.size>0},H={getRelatedKeys:(E)=>S(this.toolkit,E),addRelation:(E,V)=>{this.store.moleculeJoins.set(E,T.key),this.store.moleculeJoins.set(V,T.key),Y(this.toolkit,E,V)},deleteRelation:(E,V)=>{A(this.toolkit,E,V)},replaceRelationsSafely:(E,V)=>{w(this.toolkit,E,V)},replaceRelationsUnsafely:(E,V)=>{G(this.toolkit,E,V)},has:(E,V)=>M(this.toolkit,E,V)},K,D;if($){D=DJ(J,{key:`${T.key}/content`,default:$},["join","content"]);let E=({get:k},b)=>k(D,b),V=({set:k},b,r)=>{k(D,b,r)};K=Object.assign(H,{getContent:(k)=>{return E(this.toolkit,k)},setContent:(k,b)=>{V(this.toolkit,k,b)},deleteContent:(k)=>{this.realm.deallocate(k)}})}else K=H;let R=new tT(T,{externalStore:K,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...E)=>{let[V,B]=E,k=E.sort(),b=`${k[0]}:${k[1]}`,r=J.molecules.get(YT(V)),U=J.molecules.get(YT(B));if(!r)this.realm.allocate(T.key,V);if(!U)this.realm.allocate(T.key,B);return this.realm.allocate(V,b,"all"),this.realm.claim(B,b),this.store.moleculeJoins.set(b,T.key),b}}),y=()=>QJ(J,{key:`${T.key}/singleRelatedKey`,get:(E)=>({get:V})=>{let B=V(X,E);for(let k of B)return k;return null}},["join","keys"]),j=()=>{return QJ(J,{key:`${T.key}/multipleRelatedKeys`,get:(E)=>({get:V})=>{let B=C2(X,J);return V(B,E).members}},["join","keys"])},L=()=>QJ(J,{key:`${T.key}/singleRelatedEntry`,get:(E)=>({get:V})=>{let B=V(X,E);for(let k of B){let b=R.isAType?.(E)?E:void 0,r=b===void 0?E:void 0;b??=k,r??=k;let U=R.makeContentKey(b,r),e=V(D,U);return[k,e]}return null}},["join","entries"]),Z=()=>QJ(J,{key:`${T.key}/multipleRelatedEntries`,get:(E)=>({get:V})=>{let B=C2(X,J);return V(B,E).members.map((b)=>{let r=R.isAType?.(E)?E:void 0,U=r===void 0?E:void 0;r??=b,U??=b;let e=R.makeContentKey(r,U),p=V(D,e);return[b,p]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let E=y(),V=`${W}KeyOf${ET(F)}`,B=`${F}KeyOf${ET(W)}`,k={[V]:E,[B]:E},b;if($){let r=L(),U=`${W}EntryOf${ET(F)}`,e=`${F}EntryOf${ET(W)}`,p={[U]:r,[e]:r};b=Object.assign(k,p)}else b=k;this.relations=R,this.states=b;break}case"1:n":{let E=y(),V=j(),B=`${W}KeyOf${ET(F)}`,k=`${F}KeysOf${ET(W)}`,b={[B]:E,[k]:V},r;if($){let U=L(),e=Z(),p=`${W}EntryOf${ET(F)}`,$T=`${F}EntriesOf${ET(W)}`,DT={[p]:U,[$T]:e};r=Object.assign(b,DT)}else r=b;this.relations=R,this.states=r;break}case"n:n":{let E=j(),V=`${W}KeysOf${ET(F)}`,B=`${F}KeysOf${ET(W)}`,k={[V]:E,[B]:E},b;if($){let r=Z(),U=`${W}EntriesOf${ET(F)}`,e=`${F}EntriesOf${ET(W)}`,p={[U]:r,[e]:r};b=Object.assign(k,p)}else b=k;this.relations=R,this.states=b}}}}function d0(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 r1(F.options,F.defaultContent,$),$.joins.set(T.key,J)}return J}function a1(T,$,J){let W=d0(T,J),F=P(J);if(QT(F)){let{toolkit:X}=F.transactionMeta;W.transact(X,({relations:S})=>{$(S)})}else $(W.relations)}function RF(T,$,J){let W=d0(T,J),F;switch(T.cardinality){case"1:1":{let X=`${T.a}KeyOf${ET(T.b)}`,S=`${T.b}KeyOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[S](){let A=W.states[S];return a(J,A,$)}};let Y=`${T.a}EntryOf${ET(T.b)}`;if(Y in W.states){let A=`${T.b}EntryOf${ET(T.a)}`;Object.assign(F,{get[Y](){let w=W.states[Y];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}break}case"1:n":{let X=`${T.a}KeyOf${ET(T.b)}`,S=`${T.b}KeysOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[S](){let A=W.states[S];return a(J,A,$)}};let Y=`${T.a}EntryOf${ET(T.b)}`;if(Y in W.states){let A=`${T.b}EntriesOf${ET(T.a)}`;Object.assign(F,{get[Y](){let w=W.states[Y];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}break}case"n:n":{let X=`${T.a}KeysOf${ET(T.b)}`,S=`${T.b}KeysOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[S](){let A=W.states[S];return a(J,A,$)}};let Y=`${T.a}EntriesOf${ET(T.b)}`;if(Y in W.states){let A=`${T.b}EntriesOf${ET(T.a)}`;Object.assign(F,{get[Y](){let w=W.states[Y];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}}}return F}function FS(T,$){return d0(T,$).core.relatedKeysAtoms}function PJ(T){return T.startsWith("\uD83D\uDD0D ")}class cS 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 xF{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(T){this.key=T}static existing=new cS;static create(T,$){let J=new xF(T),{type:W,globals:F,actions:X,perspectives:S}=$(J),Y={type:W,key:T,globals:F,actions:X,perspectives:S};return xF.existing.set(T,Y),Y}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":case"mutable_atom_family":{let[J,W]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:J,viewAtoms:W})}break}return this}}function wU(T){let{key:$,config:J}=T,W=xF.create($,J),{actions:F}=W;for(let X of F)CS(AT.STORE,$,X.key);return LS(AT.STORE,$,-1),W}var OU=c0({key:"usersInRoomIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),x2=c0({key:"roomIndex",default:()=>new lT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),cw={enteredAtEpoch:0},JW=EF({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},cw),zU=UF({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=WS(JW);return[$(J,T)]}});import{spawn as nw}from"child_process";class u0{listeners;globalListeners;handleEvent(T,...$){for(let W of this.globalListeners)W(T,...$);let J=this.listeners.get(T);if(J)for(let W of J)W(...$)}id="no_id_retrieved";emit;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 j2 extends u0{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;default:return}}}constructor(T,$,J){super((W,...F)=>{let X=JSON.stringify([W,...F])+"\x03",S=(Y)=>{if(Y.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",S)};return this.process.stdin.once("error",S),this.process.stdin.write(X),this});if(this.process=T,this.key=$,this.logger=J??{info:(...W)=>{console.info(this.id,this.key,...W)},warn:(...W)=>{console.warn(this.id,this.key,...W)},error:(...W)=>{console.error(this.id,this.key,...W)}},this.process.stdout.on("data",(W)=>{let F=W.toString();if(F==="ALIVE")return;this.unprocessedEvents.push(...F.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let S=$$(this.incompleteData);this.handleEvent(...S);while(this.unprocessedEvents.length>0){let Y=this.unprocessedEvents.shift();if(Y){if(this.unprocessedEvents.length===0)this.incompleteData=Y;S=$$(Y),this.handleEvent(...S)}}this.incompleteData=""}catch(S){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(S)}}),this.process.stderr.on("data",(W)=>{let F=W.toString();this.unprocessedLogs.push(...F.split("\x03"));let X=this.unprocessedLogs.shift();this.incompleteLog+=X??"";try{let S=$$(this.incompleteLog);this.handleLog(S);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)S=$$(this.incompleteLog),this.handleLog(S)}catch(S){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(S),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class nS extends u0{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new XT,this.out=new XT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class Z2 extends u0{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(YT(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 W=$$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;let X=$$(F);this.handleEvent(...X)}}this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error("\u2757",W.message,W.cause,W.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 nS(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let J of this.relayServices){let W=J($);if(W)$.disposalFunctions.push(W)}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 q2=T0({key:"roomArguments",default:["echo",["Hello World!"]]}),pS=UF({key:"room",get:(T)=>async({get:$,find:J})=>{let W=J(q2,T),F=$(W),[X,S]=F,Y=await new Promise((A)=>{let w=nw(X,S,{env:process.env}),G=(M)=>{if(M.toString()==="ALIVE")w.stdout.off("data",G),A(w)};w.stdout.on("data",G)});return new j2(Y,T)}});var cU=e1({key:"createRoom",do:({get:T,set:$,find:J},W,F,X)=>{let S=X?[F,X]:[F],Y=J(q2,W);$(Y,S),$(x2,(G)=>G.add(W));let A=J(pS,W);return T(A)}}),nU=e1({key:"joinRoom",do:(T,$,J,W)=>{let F={enteredAtEpoch:W};return a1(JW,(X)=>{X.set({room:$,user:J},F)},T.env().store),F}}),pU=e1({key:"leaveRoom",do:(T,$,J)=>{a1(JW,(W)=>{W.delete({room:$,user:J})},T.env().store)}}),oU=e1({key:"destroyRoom",do:(T,$)=>{a1(JW,(J)=>{J.delete({room:$})},T.env().store),T.set(x2,(J)=>(J.delete($),J))}});function I2(T,$){return $.map((J)=>{switch(J.type){case"transaction_update":{let W=I2(T,J.updates);return{...J,updates:W}}case"atom_update":case"selector_update":case"molecule_creation":case"molecule_disposal":case"molecule_transfer":case"state_creation":case"state_disposal":return J}}).filter((J)=>{switch(J.type){case"atom_update":case"selector_update":return T.includes(J.key);case"state_creation":case"state_disposal":return T.includes(J.token.key);case"molecule_creation":case"transaction_update":case"molecule_disposal":case"molecule_transfer":return!0}})}var iU=T0({key:"redactor",default:{occlude:(T)=>T}}),i0=T0({key:"unacknowledgedUpdates",default:()=>[]});var oS=T0({key:"sockets",default:null}),aU=c0({key:"socketsIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),sU=c0({key:"usersIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),b2=EF({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function dS(T,$,J,W){let F=$.key;return function X(){let S=[];for(let A of $.globals){let w=A.type==="mutable_atom"?iT(T,A):A,G=KT(T,w);S.push(w,G)}for(let A of $.perspectives){let{viewAtoms:w,resourceAtoms:G}=A,M=a(T,w,J),H=KT(T,M);T.logger.info("\uD83D\uDC41","atom",G.key,`${J} can see`,{viewAtoms:w,resourceAtoms:G,userView:H});for(let K of H){let D=K.type==="mutable_atom"?iT(T,K):K,R=KT(T,D);S.push(D,R)}}let Y=X$(T)?T.transactionMeta.epoch.get(F)??null:null;W?.emit(`continuity-init:${F}`,Y,S)}}function uS(T,$,J){let W=$.key;return function F(X){T.logger.info("\uD83D\uDECE\uFE0F","continuity",W,"received",X);let{key:S,id:Y}=X,A=`tx-run:${S}:${Y}`,w=`${A}:start`,G=`${A}:end`;performance.mark(w);try{p0(T,{type:"transaction",key:S},Y)(...X.params)}catch(H){if(H instanceof Error)T.logger.error("\u274C","continuity",W,`failed to run transaction ${S} from ${J} with update ${Y}`,H.message)}performance.mark(G);let M=performance.measure(A,w,G);T?.logger.info("\uD83D\uDE80","transaction",S,Y,J,M.duration)}}function iS(T,$,J,W){let F=$.key;return function X(S){if(T.logger.info("\uD83D\uDC4D","continuity",F,`${J} acknowledged epoch ${S}`),W[0]?.epoch===S)gT(T,i0,J,(A)=>{return A.shift(),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,A.length,"items"),A})}}function tS(T,$,J,W){let F=$.key,X=[];for(let S of $.actions){let Y=L2(T,S,`sync-continuity:${F}:${J}`,(A)=>{try{let w=$.globals.map((H)=>{if(H.type==="atom")return H.key;return EJ(H).key}).concat($.perspectives.flatMap((H)=>{let{viewAtoms:K}=H,D=a(T,K,J);return KT(T,D).map((y)=>{return y.type==="mutable_atom"?"*"+y.key:y.key})})),G=I2(w,A.updates),M={...A,updates:G};gT(T,i0,J,(H)=>{if(M)H.push(M),H.sort((K,D)=>K.epoch-D.epoch),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,H.length,"items");return H}),W?.emit(`tx-new:${F}`,M)}catch(w){if(w instanceof Error)T.logger.error("\u274C","continuity",F,`${J} failed to send update from transaction ${S.key} to ${J}`,w.message)}});X.push(Y)}return X}function lS(T,$,J,W){let F=$.key,X=[];for(let S of $.perspectives){let{viewAtoms:Y}=S,A=a(T,Y,J),w=O$(T,A,`sync-continuity:${F}:${J}:perspective:${S.resourceAtoms.key}`,({oldValue:G,newValue:M})=>{let H=G.map((y)=>y.key),K=M.map((y)=>y.key),D=G.filter((y)=>!K.includes(y.key)),R=M.filter((y)=>!H.includes(y.key)).flatMap((y)=>{let j=y.type==="mutable_atom"?iT(T,y):y,L=KT(T,j);return[j,L]});if(T.logger.info("\uD83D\uDC41","atom",S.resourceAtoms.key,`${J} has a new perspective`,{oldKeys:H,newKeys:K,revealed:R,concealed:D}),R.length>0)W?.emit(`reveal:${F}`,R);if(D.length>0)W?.emit(`conceal:${F}`,D)});X.push(w)}return X}function y_({socket:T,store:$=AT.STORE}){return function J(W){let F=T,X=W.key,S=RF(b2,`socket::${F.id}`,$).userKeyOfSocket,Y=KT($,S);if(!Y)return $.logger.error("\u274C","continuity",X,`Tried to create a synchronizer for a socket (${F.id}) that is not connected to a user.`),()=>{};let A=RF(b2,Y,$).socketKeyOfUser,w=O$($,A,`sync-continuity:${X}:${Y}`,({newValue:j})=>{if($.logger.info("\uD83D\uDC4B","continuity",X,`seeing ${Y} on new socket ${j}`),j===null){$.logger.warn("\u274C","continuity",X,`User (${Y}) is not connected to a socket, waiting for them to reappear.`);return}let L=a($,oS,j);F=KT($,L);for(let E of G)F?.emit(`tx-new:${X}`,E)}),G=KT($,i0,Y),M=[],H=lS($,W,Y,F),K=tS($,W,Y,F);M.push(...H,...K);let D=dS($,W,Y,T);F.off(`get:${X}`,D),F.on(`get:${X}`,D);let R=uS($,W,Y);F.off(`tx-run:${X}`,R),F.on(`tx-run:${X}`,R);let y=iS($,W,Y,G);return F?.on(`ack:${X}`,y),()=>{for(let j of M)j();F?.off(`ack:${X}`,y),F?.off(`get:${X}`,D),F?.off(`tx-run:${X}`,R)}}}var aS=Symbol("Let zodToJsonSchema decide on which parser to use");var rS={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},sS=(T)=>typeof T==="string"?{...rS,name:T}:{...rS,...T};var eS=(T)=>{let $=sS(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([W,F])=>[F._def,{def:F._def,path:[...$.basePath,$.definitionPath,W],jsonSchema:void 0}]))}};function v2(T,$,J,W){if(!W?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function GT(T,$,J,W,F){T[$]=J,v2(T,$,W,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 X={};for(let S of F)X[S]=S;return X},T.getValidEnumValues=(F)=>{let X=T.objectKeys(F).filter((Y)=>typeof F[F[Y]]!=="number"),S={};for(let Y of X)S[Y]=F[Y];return T.objectValues(S)},T.objectValues=(F)=>{return T.objectKeys(F).map(function(X){return F[X]})},T.objectKeys=typeof Object.keys==="function"?(F)=>Object.keys(F):(F)=>{let X=[];for(let S in F)if(Object.prototype.hasOwnProperty.call(F,S))X.push(S);return X},T.find=(F,X)=>{for(let S of F)if(X(S))return S;return},T.isInteger=typeof Number.isInteger==="function"?(F)=>Number.isInteger(F):(F)=>typeof F==="number"&&isFinite(F)&&Math.floor(F)===F;function W(F,X=" | "){return F.map((S)=>typeof S==="string"?`'${S}'`:S).join(X)}T.joinValues=W,T.jsonStringifyReplacer=(F,X)=>{if(typeof X==="bigint")return X.toString();return X}})(MT||(MT={}));var h2;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(h2||(h2={}));var g=MT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),UJ=(T)=>{switch(typeof T){case"undefined":return g.undefined;case"string":return g.string;case"number":return isNaN(T)?g.nan:g.number;case"boolean":return g.boolean;case"function":return g.function;case"bigint":return g.bigint;case"symbol":return g.symbol;case"object":if(Array.isArray(T))return g.array;if(T===null)return g.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return g.promise;if(typeof Map!=="undefined"&&T instanceof Map)return g.map;if(typeof Set!=="undefined"&&T instanceof Set)return g.set;if(typeof Date!=="undefined"&&T instanceof Date)return g.date;return g.object;default:return g.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"]),pw=(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:[]},W=(F)=>{for(let X of F.issues)if(X.code==="invalid_union")X.unionErrors.map(W);else if(X.code==="invalid_return_type")W(X.returnTypeError);else if(X.code==="invalid_arguments")W(X.argumentsError);else if(X.path.length===0)J._errors.push($(X));else{let S=J,Y=0;while(Y<X.path.length){let A=X.path[Y];if(Y!==X.path.length-1)S[A]=S[A]||{_errors:[]};else S[A]=S[A]||{_errors:[]},S[A]._errors.push($(X));S=S[A],Y++}}};return W(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 W of this.issues)if(W.path.length>0)$[W.path[0]]=$[W.path[0]]||[],$[W.path[0]].push(T(W));else J.push(T(W));return{formErrors:J,fieldErrors:$}}get formErrors(){return this.flatten()}}C$.create=(T)=>{return new C$(T)};var a0=(T,$)=>{let J;switch(T.code){case C.invalid_type:if(T.received===g.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}},WY=a0;function ow(T){WY=T}function jF(){return WY}var ZF=(T)=>{let{data:$,path:J,errorMaps:W,issueData:F}=T,X=[...J,...F.path||[]],S={...F,path:X};if(F.message!==void 0)return{...F,path:X,message:F.message};let Y="",A=W.filter((w)=>!!w).slice().reverse();for(let w of A)Y=w(S,{data:$,defaultError:Y}).message;return{...F,path:X,message:Y}},dw=[];function v(T,$){let J=jF(),W=ZF({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===a0?void 0:a0].filter((F)=>!!F)});T.common.issues.push(W)}class z${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 W of $){if(W.status==="aborted")return TT;if(W.status==="dirty")T.dirty();J.push(W.value)}return{status:T.value,value:J}}static async mergeObjectAsync(T,$){let J=[];for(let W of $){let F=await W.key,X=await W.value;J.push({key:F,value:X})}return z$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let W of $){let{key:F,value:X}=W;if(F.status==="aborted")return TT;if(X.status==="aborted")return TT;if(F.status==="dirty")T.dirty();if(X.status==="dirty")T.dirty();if(F.value!=="__proto__"&&(typeof X.value!=="undefined"||W.alwaysSet))J[F.value]=X.value}return{status:T.value,value:J}}}var TT=Object.freeze({status:"aborted"}),l0=(T)=>({status:"dirty",value:T}),Q$=(T)=>({status:"valid",value:T}),m2=(T)=>T.status==="aborted",g2=(T)=>T.status==="dirty",S0=(T)=>T.status==="valid",XW=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function qF(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)}function FY(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="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 WW,FW;class r${constructor(T,$,J,W){this._cachedPath=[],this.parent=T,this.data=$,this._path=J,this._key=W}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 TY=(T,$)=>{if(S0($))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:W,description:F}=T;if($&&(J||W))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:(S,Y)=>{var A,w;let{message:G}=T;if(S.code==="invalid_enum_value")return{message:G!==null&&G!==void 0?G:Y.defaultError};if(typeof Y.data==="undefined")return{message:(A=G!==null&&G!==void 0?G:W)!==null&&A!==void 0?A:Y.defaultError};if(S.code!=="invalid_type")return{message:Y.defaultError};return{message:(w=G!==null&&G!==void 0?G:J)!==null&&w!==void 0?w:Y.defaultError}},description:F}}class WT{get description(){return this._def.description}_getType(T){return UJ(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:UJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new z$,ctx:{common:T.parent.common,data:T.data,parsedType:UJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(XW($))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 W={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:UJ(T)},F=this._parseSync({data:T,path:W.path,parent:W});return TY(W,F)}"~validate"(T){var $,J;let W={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:UJ(T)};if(!this["~standard"].async)try{let F=this._parseSync({data:T,path:[],parent:W});return S0(F)?{value:F.value}:{issues:W.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;W.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:W}).then((F)=>S0(F)?{value:F.value}:{issues:W.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:UJ(T)},W=this._parse({data:T,path:J.path,parent:J}),F=await(XW(W)?W:Promise.resolve(W));return TY(J,F)}refine(T,$){let J=(W)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(W);else return $};return this._refinement((W,F)=>{let X=T(W),S=()=>F.addIssue({code:C.custom,...J(W)});if(typeof Promise!=="undefined"&&X instanceof Promise)return X.then((Y)=>{if(!Y)return S(),!1;else return!0});if(!X)return S(),!1;else return!0})}refinement(T,$){return this._refinement((J,W)=>{if(!T(J))return W.addIssue(typeof $==="function"?$(J,W):$),!1;else return!0})}_refinement(T){return new c$({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 x$.create(this,this._def)}nullable(){return _J.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return l$.create(this)}promise(){return G0.create(this,this._def)}or(T){return $1.create([this,T],this._def)}and(T){return J1.create(this,T,this._def)}transform(T){return new c$({...JT(this._def),schema:this,typeName:x.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new S1({...JT(this._def),innerType:this,defaultValue:$,typeName:x.ZodDefault})}brand(){return new bF({typeName:x.ZodBranded,type:this,...JT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new Y1({...JT(this._def),innerType:this,catchValue:$,typeName:x.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return MW.create(this,T)}readonly(){return A1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var uw=/^c[^\s-]{8,}$/i,iw=/^[0-9a-z]+$/,tw=/^[0-9A-HJKMNP-TV-Z]{26}$/i,lw=/^[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,rw=/^[a-z0-9_-]{21}$/i,aw=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,sw=/^[-+]?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)?)??$/,ew=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,TG="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",P2,$G=/^(?:(?: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])$/,JG=/^(?:(?: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])$/,WG=/^(([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]))$/,FG=/^(([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])$/,XG=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,SG=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,XY="((\\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])))",YG=new RegExp(`^${XY}$`);function SY(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 AG(T){return new RegExp(`^${SY(T)}$`)}function YY(T){let $=`${XY}T${SY(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function wG(T,$){if(($==="v4"||!$)&&$G.test(T))return!0;if(($==="v6"||!$)&&WG.test(T))return!0;return!1}function GG(T,$){if(!aw.test(T))return!1;try{let[J]=T.split("."),W=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),F=JSON.parse(atob(W));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 MG(T,$){if(($==="v4"||!$)&&JG.test(T))return!0;if(($==="v6"||!$)&&FG.test(T))return!0;return!1}class t$ extends WT{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==g.string){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:g.string,received:F.parsedType}),TT}let J=new z$,W=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.length<F.value)W=this._getOrReturnCtx(T,W),v(W,{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)W=this._getOrReturnCtx(T,W),v(W,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="length"){let X=T.data.length>F.value,S=T.data.length<F.value;if(X||S){if(W=this._getOrReturnCtx(T,W),X)v(W,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});else if(S)v(W,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});J.dirty()}}else if(F.kind==="email"){if(!ew.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"email",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="emoji"){if(!P2)P2=new RegExp(TG,"u");if(!P2.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"emoji",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="uuid"){if(!lw.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"uuid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="nanoid"){if(!rw.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"nanoid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid"){if(!uw.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"cuid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid2"){if(!iw.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"cuid2",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ulid"){if(!tw.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"ulid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="url")try{new URL(T.data)}catch(X){W=this._getOrReturnCtx(T,W),v(W,{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))W=this._getOrReturnCtx(T,W),v(W,{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))W=this._getOrReturnCtx(T,W),v(W,{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))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:{startsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="endsWith"){if(!T.data.endsWith(F.value))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:{endsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="datetime"){if(!YY(F).test(T.data))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:"datetime",message:F.message}),J.dirty()}else if(F.kind==="date"){if(!YG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:"date",message:F.message}),J.dirty()}else if(F.kind==="time"){if(!AG(F).test(T.data))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:"time",message:F.message}),J.dirty()}else if(F.kind==="duration"){if(!sw.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"duration",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ip"){if(!wG(T.data,F.version))W=this._getOrReturnCtx(T,W),v(W,{validation:"ip",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="jwt"){if(!GG(T.data,F.alg))W=this._getOrReturnCtx(T,W),v(W,{validation:"jwt",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cidr"){if(!MG(T.data,F.version))W=this._getOrReturnCtx(T,W),v(W,{validation:"cidr",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64"){if(!XG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"base64",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64url"){if(!SG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{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((W)=>T.test(W),{validation:$,code:C.invalid_string,...o.errToObj(J)})}_addCheck(T){return new t$({...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 t$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((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}}t$.create=(T)=>{var $;return new t$({checks:[],typeName:x.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};function HG(T,$){let J=(T.toString().split(".")[1]||"").length,W=($.toString().split(".")[1]||"").length,F=J>W?J:W,X=parseInt(T.toFixed(F).replace(".","")),S=parseInt($.toFixed(F).replace(".",""));return X%S/Math.pow(10,F)}class mJ extends WT{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)!==g.number){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:g.number,received:F.parsedType}),TT}let J=void 0,W=new z$;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}),W.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}),W.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}),W.dirty()}else if(F.kind==="multipleOf"){if(HG(T.data,F.value)!==0)J=this._getOrReturnCtx(T,J),v(J,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),W.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}),W.dirty()}else MT.assertNever(F);return{status:W.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,W){return new mJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(W)}]})}_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:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class gJ extends WT{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)!==g.bigint)return this._getInvalidInput(T);let J=void 0,W=new z$;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}),W.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}),W.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}),W.dirty()}else MT.assertNever(F);return{status:W.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:g.bigint,received:$.parsedType}),TT}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,W){return new gJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(W)}]})}_addCheck(T){return new gJ({...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}}gJ.create=(T)=>{var $;return new gJ({checks:[],typeName:x.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};class s0 extends WT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==g.boolean){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:g.boolean,received:J.parsedType}),TT}return Q$(T.data)}}s0.create=(T)=>{return new s0({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class Y0 extends WT{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==g.date){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_type,expected:g.date,received:F.parsedType}),TT}if(isNaN(T.data.getTime())){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_date}),TT}let J=new z$,W=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.getTime()<F.value)W=this._getOrReturnCtx(T,W),v(W,{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)W=this._getOrReturnCtx(T,W),v(W,{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 Y0({...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}}Y0.create=(T)=>{return new Y0({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:x.ZodDate,...JT(T)})};class SW extends WT{_parse(T){if(this._getType(T)!==g.symbol){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:g.symbol,received:J.parsedType}),TT}return Q$(T.data)}}SW.create=(T)=>{return new SW({typeName:x.ZodSymbol,...JT(T)})};class e0 extends WT{_parse(T){if(this._getType(T)!==g.undefined){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:g.undefined,received:J.parsedType}),TT}return Q$(T.data)}}e0.create=(T)=>{return new e0({typeName:x.ZodUndefined,...JT(T)})};class T1 extends WT{_parse(T){if(this._getType(T)!==g.null){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:g.null,received:J.parsedType}),TT}return Q$(T.data)}}T1.create=(T)=>{return new T1({typeName:x.ZodNull,...JT(T)})};class A0 extends WT{constructor(){super(...arguments);this._any=!0}_parse(T){return Q$(T.data)}}A0.create=(T)=>{return new A0({typeName:x.ZodAny,...JT(T)})};class hJ extends WT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return Q$(T.data)}}hJ.create=(T)=>{return new hJ({typeName:x.ZodUnknown,...JT(T)})};class YJ extends WT{_parse(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:g.never,received:$.parsedType}),TT}}YJ.create=(T)=>{return new YJ({typeName:x.ZodNever,...JT(T)})};class YW extends WT{_parse(T){if(this._getType(T)!==g.undefined){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:g.void,received:J.parsedType}),TT}return Q$(T.data)}}YW.create=(T)=>{return new YW({typeName:x.ZodVoid,...JT(T)})};class l$ extends WT{_parse(T){let{ctx:$,status:J}=this._processInputParams(T),W=this._def;if($.parsedType!==g.array)return v($,{code:C.invalid_type,expected:g.array,received:$.parsedType}),TT;if(W.exactLength!==null){let X=$.data.length>W.exactLength.value,S=$.data.length<W.exactLength.value;if(X||S)v($,{code:X?C.too_big:C.too_small,minimum:S?W.exactLength.value:void 0,maximum:X?W.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:W.exactLength.message}),J.dirty()}if(W.minLength!==null){if($.data.length<W.minLength.value)v($,{code:C.too_small,minimum:W.minLength.value,type:"array",inclusive:!0,exact:!1,message:W.minLength.message}),J.dirty()}if(W.maxLength!==null){if($.data.length>W.maxLength.value)v($,{code:C.too_big,maximum:W.maxLength.value,type:"array",inclusive:!0,exact:!1,message:W.maxLength.message}),J.dirty()}if($.common.async)return Promise.all([...$.data].map((X,S)=>{return W.type._parseAsync(new r$($,X,$.path,S))})).then((X)=>{return z$.mergeArray(J,X)});let F=[...$.data].map((X,S)=>{return W.type._parseSync(new r$($,X,$.path,S))});return z$.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:x.ZodArray,...JT($)})};function t0(T){if(T instanceof bT){let $={};for(let J in T.shape){let W=T.shape[J];$[J]=x$.create(t0(W))}return new bT({...T._def,shape:()=>$})}else if(T instanceof l$)return new l$({...T._def,type:t0(T.element)});else if(T instanceof x$)return x$.create(t0(T.unwrap()));else if(T instanceof _J)return _J.create(t0(T.unwrap()));else if(T instanceof AJ)return AJ.create(T.items.map(($)=>t0($)));else return T}class bT extends WT{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)!==g.object){let A=this._getOrReturnCtx(T);return v(A,{code:C.invalid_type,expected:g.object,received:A.parsedType}),TT}let{status:J,ctx:W}=this._processInputParams(T),{shape:F,keys:X}=this._getCached(),S=[];if(!(this._def.catchall instanceof YJ&&this._def.unknownKeys==="strip")){for(let A in W.data)if(!X.includes(A))S.push(A)}let Y=[];for(let A of X){let w=F[A],G=W.data[A];Y.push({key:{status:"valid",value:A},value:w._parse(new r$(W,G,W.path,A)),alwaysSet:A in W.data})}if(this._def.catchall instanceof YJ){let A=this._def.unknownKeys;if(A==="passthrough")for(let w of S)Y.push({key:{status:"valid",value:w},value:{status:"valid",value:W.data[w]}});else if(A==="strict"){if(S.length>0)v(W,{code:C.unrecognized_keys,keys:S}),J.dirty()}else if(A==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let A=this._def.catchall;for(let w of S){let G=W.data[w];Y.push({key:{status:"valid",value:w},value:A._parse(new r$(W,G,W.path,w)),alwaysSet:w in W.data})}}if(W.common.async)return Promise.resolve().then(async()=>{let A=[];for(let w of Y){let G=await w.key,M=await w.value;A.push({key:G,value:M,alwaysSet:w.alwaysSet})}return A}).then((A)=>{return z$.mergeObjectSync(J,A)});else return z$.mergeObjectSync(J,Y)}get shape(){return this._def.shape()}strict(T){return o.errToObj,new bT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var W,F,X,S;let Y=(X=(F=(W=this._def).errorMap)===null||F===void 0?void 0:F.call(W,$,J).message)!==null&&X!==void 0?X:J.defaultError;if($.code==="unrecognized_keys")return{message:(S=o.errToObj(T).message)!==null&&S!==void 0?S:Y};return{message:Y}}}:{}})}strip(){return new bT({...this._def,unknownKeys:"strip"})}passthrough(){return new bT({...this._def,unknownKeys:"passthrough"})}extend(T){return new bT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new bT({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 bT({...this._def,catchall:T})}pick(T){let $={};return MT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new bT({...this._def,shape:()=>$})}omit(T){let $={};return MT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new bT({...this._def,shape:()=>$})}deepPartial(){return t0(this)}partial(T){let $={};return MT.objectKeys(this.shape).forEach((J)=>{let W=this.shape[J];if(T&&!T[J])$[J]=W;else $[J]=W.optional()}),new bT({...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 x$)F=F._def.innerType;$[J]=F}}),new bT({...this._def,shape:()=>$})}keyof(){return AY(MT.objectKeys(this.shape))}}bT.create=(T,$)=>{return new bT({shape:()=>T,unknownKeys:"strip",catchall:YJ.create(),typeName:x.ZodObject,...JT($)})};bT.strictCreate=(T,$)=>{return new bT({shape:()=>T,unknownKeys:"strict",catchall:YJ.create(),typeName:x.ZodObject,...JT($)})};bT.lazycreate=(T,$)=>{return new bT({shape:T,unknownKeys:"strip",catchall:YJ.create(),typeName:x.ZodObject,...JT($)})};class $1 extends WT{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function W(F){for(let S of F)if(S.result.status==="valid")return S.result;for(let S of F)if(S.result.status==="dirty")return $.common.issues.push(...S.ctx.common.issues),S.result;let X=F.map((S)=>new C$(S.ctx.common.issues));return v($,{code:C.invalid_union,unionErrors:X}),TT}if($.common.async)return Promise.all(J.map(async(F)=>{let X={...$,common:{...$.common,issues:[]},parent:null};return{result:await F._parseAsync({data:$.data,path:$.path,parent:X}),ctx:X}})).then(W);else{let F=void 0,X=[];for(let Y of J){let A={...$,common:{...$.common,issues:[]},parent:null},w=Y._parseSync({data:$.data,path:$.path,parent:A});if(w.status==="valid")return w;else if(w.status==="dirty"&&!F)F={result:w,ctx:A};if(A.common.issues.length)X.push(A.common.issues)}if(F)return $.common.issues.push(...F.ctx.common.issues),F.result;let S=X.map((Y)=>new C$(Y));return v($,{code:C.invalid_union,unionErrors:S}),TT}}get options(){return this._def.options}}$1.create=(T,$)=>{return new $1({options:T,typeName:x.ZodUnion,...JT($)})};var RJ=(T)=>{if(T instanceof W1)return RJ(T.schema);else if(T instanceof c$)return RJ(T.innerType());else if(T instanceof F1)return[T.value];else if(T instanceof cJ)return T.options;else if(T instanceof X1)return MT.objectValues(T.enum);else if(T instanceof S1)return RJ(T._def.innerType);else if(T instanceof e0)return[void 0];else if(T instanceof T1)return[null];else if(T instanceof x$)return[void 0,...RJ(T.unwrap())];else if(T instanceof _J)return[null,...RJ(T.unwrap())];else if(T instanceof bF)return RJ(T.unwrap());else if(T instanceof A1)return RJ(T.unwrap());else if(T instanceof Y1)return RJ(T._def.innerType);else return[]};class IF extends WT{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==g.object)return v($,{code:C.invalid_type,expected:g.object,received:$.parsedType}),TT;let J=this.discriminator,W=$.data[J],F=this.optionsMap.get(W);if(!F)return v($,{code:C.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),TT;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 W=new Map;for(let F of $){let X=RJ(F.shape[T]);if(!X.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let S of X){if(W.has(S))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(S)}`);W.set(S,F)}}return new IF({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:W,...JT(J)})}}function c2(T,$){let J=UJ(T),W=UJ($);if(T===$)return{valid:!0,data:T};else if(J===g.object&&W===g.object){let F=MT.objectKeys($),X=MT.objectKeys(T).filter((Y)=>F.indexOf(Y)!==-1),S={...T,...$};for(let Y of X){let A=c2(T[Y],$[Y]);if(!A.valid)return{valid:!1};S[Y]=A.data}return{valid:!0,data:S}}else if(J===g.array&&W===g.array){if(T.length!==$.length)return{valid:!1};let F=[];for(let X=0;X<T.length;X++){let S=T[X],Y=$[X],A=c2(S,Y);if(!A.valid)return{valid:!1};F.push(A.data)}return{valid:!0,data:F}}else if(J===g.date&&W===g.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class J1 extends WT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=(F,X)=>{if(m2(F)||m2(X))return TT;let S=c2(F.value,X.value);if(!S.valid)return v(J,{code:C.invalid_intersection_types}),TT;if(g2(F)||g2(X))$.dirty();return{status:$.value,value:S.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,X])=>W(F,X));else return W(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}J1.create=(T,$,J)=>{return new J1({left:T,right:$,typeName:x.ZodIntersection,...JT(J)})};class AJ extends WT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==g.array)return v(J,{code:C.invalid_type,expected:g.array,received:J.parsedType}),TT;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"}),TT;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((X,S)=>{let Y=this._def.items[S]||this._def.rest;if(!Y)return null;return Y._parse(new r$(J,X,J.path,S))}).filter((X)=>!!X);if(J.common.async)return Promise.all(F).then((X)=>{return z$.mergeArray($,X)});else return z$.mergeArray($,F)}get items(){return this._def.items}rest(T){return new AJ({...this._def,rest:T})}}AJ.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new AJ({items:T,typeName:x.ZodTuple,rest:null,...JT($)})};class AW extends WT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==g.object)return v(J,{code:C.invalid_type,expected:g.object,received:J.parsedType}),TT;let W=[],F=this._def.keyType,X=this._def.valueType;for(let S in J.data)W.push({key:F._parse(new r$(J,S,J.path,S)),value:X._parse(new r$(J,J.data[S],J.path,S)),alwaysSet:S in J.data});if(J.common.async)return z$.mergeObjectAsync($,W);else return z$.mergeObjectSync($,W)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof WT)return new AW({keyType:T,valueType:$,typeName:x.ZodRecord,...JT(J)});return new AW({keyType:t$.create(),valueType:T,typeName:x.ZodRecord,...JT($)})}}class wW extends WT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==g.map)return v(J,{code:C.invalid_type,expected:g.map,received:J.parsedType}),TT;let W=this._def.keyType,F=this._def.valueType,X=[...J.data.entries()].map(([S,Y],A)=>{return{key:W._parse(new r$(J,S,J.path,[A,"key"])),value:F._parse(new r$(J,Y,J.path,[A,"value"]))}});if(J.common.async){let S=new Map;return Promise.resolve().then(async()=>{for(let Y of X){let A=await Y.key,w=await Y.value;if(A.status==="aborted"||w.status==="aborted")return TT;if(A.status==="dirty"||w.status==="dirty")$.dirty();S.set(A.value,w.value)}return{status:$.value,value:S}})}else{let S=new Map;for(let Y of X){let{key:A,value:w}=Y;if(A.status==="aborted"||w.status==="aborted")return TT;if(A.status==="dirty"||w.status==="dirty")$.dirty();S.set(A.value,w.value)}return{status:$.value,value:S}}}}wW.create=(T,$,J)=>{return new wW({valueType:$,keyType:T,typeName:x.ZodMap,...JT(J)})};class w0 extends WT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==g.set)return v(J,{code:C.invalid_type,expected:g.set,received:J.parsedType}),TT;let W=this._def;if(W.minSize!==null){if(J.data.size<W.minSize.value)v(J,{code:C.too_small,minimum:W.minSize.value,type:"set",inclusive:!0,exact:!1,message:W.minSize.message}),$.dirty()}if(W.maxSize!==null){if(J.data.size>W.maxSize.value)v(J,{code:C.too_big,maximum:W.maxSize.value,type:"set",inclusive:!0,exact:!1,message:W.maxSize.message}),$.dirty()}let F=this._def.valueType;function X(Y){let A=new Set;for(let w of Y){if(w.status==="aborted")return TT;if(w.status==="dirty")$.dirty();A.add(w.value)}return{status:$.value,value:A}}let S=[...J.data.values()].map((Y,A)=>F._parse(new r$(J,Y,J.path,A)));if(J.common.async)return Promise.all(S).then((Y)=>X(Y));else return X(S)}min(T,$){return new w0({...this._def,minSize:{value:T,message:o.toString($)}})}max(T,$){return new w0({...this._def,maxSize:{value:T,message:o.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}w0.create=(T,$)=>{return new w0({valueType:T,minSize:null,maxSize:null,typeName:x.ZodSet,...JT($)})};class r0 extends WT{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==g.function)return v($,{code:C.invalid_type,expected:g.function,received:$.parsedType}),TT;function J(S,Y){return ZF({data:S,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,jF(),a0].filter((A)=>!!A),issueData:{code:C.invalid_arguments,argumentsError:Y}})}function W(S,Y){return ZF({data:S,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,jF(),a0].filter((A)=>!!A),issueData:{code:C.invalid_return_type,returnTypeError:Y}})}let F={errorMap:$.common.contextualErrorMap},X=$.data;if(this._def.returns instanceof G0){let S=this;return Q$(async function(...Y){let A=new C$([]),w=await S._def.args.parseAsync(Y,F).catch((H)=>{throw A.addIssue(J(Y,H)),A}),G=await Reflect.apply(X,this,w);return await S._def.returns._def.type.parseAsync(G,F).catch((H)=>{throw A.addIssue(W(G,H)),A})})}else{let S=this;return Q$(function(...Y){let A=S._def.args.safeParse(Y,F);if(!A.success)throw new C$([J(Y,A.error)]);let w=Reflect.apply(X,this,A.data),G=S._def.returns.safeParse(w,F);if(!G.success)throw new C$([W(w,G.error)]);return G.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new r0({...this._def,args:AJ.create(T).rest(hJ.create())})}returns(T){return new r0({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new r0({args:T?T:AJ.create([]).rest(hJ.create()),returns:$||hJ.create(),typeName:x.ZodFunction,...JT(J)})}}class W1 extends WT{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}W1.create=(T,$)=>{return new W1({getter:T,typeName:x.ZodLazy,...JT($)})};class F1 extends WT{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return v($,{received:$.data,code:C.invalid_literal,expected:this._def.value}),TT}return{status:"valid",value:T.data}}get value(){return this._def.value}}F1.create=(T,$)=>{return new F1({value:T,typeName:x.ZodLiteral,...JT($)})};function AY(T,$){return new cJ({values:T,typeName:x.ZodEnum,...JT($)})}class cJ extends WT{constructor(){super(...arguments);WW.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}),TT}if(!qF(this,WW,"f"))FY(this,WW,new Set(this._def.values),"f");if(!qF(this,WW,"f").has(T.data)){let $=this._getOrReturnCtx(T),J=this._def.values;return v($,{received:$.data,code:C.invalid_enum_value,options:J}),TT}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 cJ.create(T,{...this._def,...$})}exclude(T,$=this._def){return cJ.create(this.options.filter((J)=>!T.includes(J)),{...this._def,...$})}}WW=new WeakMap;cJ.create=AY;class X1 extends WT{constructor(){super(...arguments);FW.set(this,void 0)}_parse(T){let $=MT.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(T);if(J.parsedType!==g.string&&J.parsedType!==g.number){let W=MT.objectValues($);return v(J,{expected:MT.joinValues(W),received:J.parsedType,code:C.invalid_type}),TT}if(!qF(this,FW,"f"))FY(this,FW,new Set(MT.getValidEnumValues(this._def.values)),"f");if(!qF(this,FW,"f").has(T.data)){let W=MT.objectValues($);return v(J,{received:J.data,code:C.invalid_enum_value,options:W}),TT}return Q$(T.data)}get enum(){return this._def.values}}FW=new WeakMap;X1.create=(T,$)=>{return new X1({values:T,typeName:x.ZodNativeEnum,...JT($)})};class G0 extends WT{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==g.promise&&$.common.async===!1)return v($,{code:C.invalid_type,expected:g.promise,received:$.parsedType}),TT;let J=$.parsedType===g.promise?$.data:Promise.resolve($.data);return Q$(J.then((W)=>{return this._def.type.parseAsync(W,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}G0.create=(T,$)=>{return new G0({type:T,typeName:x.ZodPromise,...JT($)})};class c$ extends WT{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:J}=this._processInputParams(T),W=this._def.effect||null,F={addIssue:(X)=>{if(v(J,X),X.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(F.addIssue=F.addIssue.bind(F),W.type==="preprocess"){let X=W.transform(J.data,F);if(J.common.async)return Promise.resolve(X).then(async(S)=>{if($.value==="aborted")return TT;let Y=await this._def.schema._parseAsync({data:S,path:J.path,parent:J});if(Y.status==="aborted")return TT;if(Y.status==="dirty")return l0(Y.value);if($.value==="dirty")return l0(Y.value);return Y});else{if($.value==="aborted")return TT;let S=this._def.schema._parseSync({data:X,path:J.path,parent:J});if(S.status==="aborted")return TT;if(S.status==="dirty")return l0(S.value);if($.value==="dirty")return l0(S.value);return S}}if(W.type==="refinement"){let X=(S)=>{let Y=W.refinement(S,F);if(J.common.async)return Promise.resolve(Y);if(Y instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return S};if(J.common.async===!1){let S=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(S.status==="aborted")return TT;if(S.status==="dirty")$.dirty();return X(S.value),{status:$.value,value:S.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((S)=>{if(S.status==="aborted")return TT;if(S.status==="dirty")$.dirty();return X(S.value).then(()=>{return{status:$.value,value:S.value}})})}if(W.type==="transform")if(J.common.async===!1){let X=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!S0(X))return X;let S=W.transform(X.value,F);if(S instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:S}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((X)=>{if(!S0(X))return X;return Promise.resolve(W.transform(X.value,F)).then((S)=>({status:$.value,value:S}))});MT.assertNever(W)}}c$.create=(T,$,J)=>{return new c$({schema:T,typeName:x.ZodEffects,effect:$,...JT(J)})};c$.createWithPreprocess=(T,$,J)=>{return new c$({schema:$,effect:{type:"preprocess",transform:T},typeName:x.ZodEffects,...JT(J)})};class x$ extends WT{_parse(T){if(this._getType(T)===g.undefined)return Q$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}x$.create=(T,$)=>{return new x$({innerType:T,typeName:x.ZodOptional,...JT($)})};class _J extends WT{_parse(T){if(this._getType(T)===g.null)return Q$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}_J.create=(T,$)=>{return new _J({innerType:T,typeName:x.ZodNullable,...JT($)})};class S1 extends WT{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;if($.parsedType===g.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}S1.create=(T,$)=>{return new S1({innerType:T,typeName:x.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...JT($)})};class Y1 extends WT{_parse(T){let{ctx:$}=this._processInputParams(T),J={...$,common:{...$.common,issues:[]}},W=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(XW(W))return W.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:W.status==="valid"?W.value:this._def.catchValue({get error(){return new C$(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}Y1.create=(T,$)=>{return new Y1({innerType:T,typeName:x.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...JT($)})};class GW extends WT{_parse(T){if(this._getType(T)!==g.nan){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:g.nan,received:J.parsedType}),TT}return{status:"valid",value:T.data}}}GW.create=(T)=>{return new GW({typeName:x.ZodNaN,...JT(T)})};var OG=Symbol("zod_brand");class bF extends WT{_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 MW extends WT{_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 TT;if(F.status==="dirty")return $.dirty(),l0(F.value);else return this._def.out._parseAsync({data:F.value,path:J.path,parent:J})})();else{let W=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(W.status==="aborted")return TT;if(W.status==="dirty")return $.dirty(),{status:"dirty",value:W.value};else return this._def.out._parseSync({data:W.value,path:J.path,parent:J})}}static create(T,$){return new MW({in:T,out:$,typeName:x.ZodPipeline})}}class A1 extends WT{_parse(T){let $=this._def.innerType._parse(T),J=(W)=>{if(S0(W))W.value=Object.freeze(W.value);return W};return XW($)?$.then((W)=>J(W)):J($)}unwrap(){return this._def.innerType}}A1.create=(T,$)=>{return new A1({innerType:T,typeName:x.ZodReadonly,...JT($)})};function $Y(T,$){let J=typeof T==="function"?T($):typeof T==="string"?{message:T}:T;return typeof J==="string"?{message:J}:J}function wY(T,$={},J){if(T)return A0.create().superRefine((W,F)=>{var X,S;let Y=T(W);if(Y instanceof Promise)return Y.then((A)=>{var w,G;if(!A){let M=$Y($,W),H=(G=(w=M.fatal)!==null&&w!==void 0?w:J)!==null&&G!==void 0?G:!0;F.addIssue({code:"custom",...M,fatal:H})}});if(!Y){let A=$Y($,W),w=(S=(X=A.fatal)!==null&&X!==void 0?X:J)!==null&&S!==void 0?S:!0;F.addIssue({code:"custom",...A,fatal:w})}return});return A0.create()}var zG={object:bT.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 fG=(T,$={message:`Input not instance of ${T.name}`})=>wY((J)=>J instanceof T,$),GY=t$.create,MY=mJ.create,KG=GW.create,DG=gJ.create,HY=s0.create,QG=Y0.create,EG=SW.create,RG=e0.create,UG=T1.create,_G=A0.create,kG=hJ.create,VG=YJ.create,BG=YW.create,LG=l$.create,yG=bT.create,NG=bT.strictCreate,CG=$1.create,xG=IF.create,jG=J1.create,ZG=AJ.create,qG=AW.create,IG=wW.create,bG=w0.create,vG=r0.create,PG=W1.create,hG=F1.create,mG=cJ.create,gG=X1.create,cG=G0.create,JY=c$.create,nG=x$.create,pG=_J.create,oG=c$.createWithPreprocess,dG=MW.create,uG=()=>GY().optional(),iG=()=>MY().optional(),tG=()=>HY().optional(),lG={string:(T)=>t$.create({...T,coerce:!0}),number:(T)=>mJ.create({...T,coerce:!0}),boolean:(T)=>s0.create({...T,coerce:!0}),bigint:(T)=>gJ.create({...T,coerce:!0}),date:(T)=>Y0.create({...T,coerce:!0})},rG=TT,_T=Object.freeze({__proto__:null,defaultErrorMap:a0,setErrorMap:ow,getErrorMap:jF,makeIssue:ZF,EMPTY_PATH:dw,addIssueToContext:v,ParseStatus:z$,INVALID:TT,DIRTY:l0,OK:Q$,isAborted:m2,isDirty:g2,isValid:S0,isAsync:XW,get util(){return MT},get objectUtil(){return h2},ZodParsedType:g,getParsedType:UJ,ZodType:WT,datetimeRegex:YY,ZodString:t$,ZodNumber:mJ,ZodBigInt:gJ,ZodBoolean:s0,ZodDate:Y0,ZodSymbol:SW,ZodUndefined:e0,ZodNull:T1,ZodAny:A0,ZodUnknown:hJ,ZodNever:YJ,ZodVoid:YW,ZodArray:l$,ZodObject:bT,ZodUnion:$1,ZodDiscriminatedUnion:IF,ZodIntersection:J1,ZodTuple:AJ,ZodRecord:AW,ZodMap:wW,ZodSet:w0,ZodFunction:r0,ZodLazy:W1,ZodLiteral:F1,ZodEnum:cJ,ZodNativeEnum:X1,ZodPromise:G0,ZodEffects:c$,ZodTransformer:c$,ZodOptional:x$,ZodNullable:_J,ZodDefault:S1,ZodCatch:Y1,ZodNaN:GW,BRAND:OG,ZodBranded:bF,ZodPipeline:MW,ZodReadonly:A1,custom:wY,Schema:WT,ZodSchema:WT,late:zG,get ZodFirstPartyTypeKind(){return x},coerce:lG,any:_G,array:LG,bigint:DG,boolean:HY,date:QG,discriminatedUnion:xG,effect:JY,enum:mG,function:vG,instanceof:fG,intersection:jG,lazy:PG,literal:hG,map:IG,nan:KG,nativeEnum:gG,never:VG,null:UG,nullable:pG,number:MY,object:yG,oboolean:tG,onumber:iG,optional:nG,ostring:uG,pipeline:dG,preprocess:oG,promise:cG,record:qG,set:bG,strictObject:NG,string:GY,symbol:EG,transformer:JY,tuple:ZG,undefined:RG,union:CG,unknown:kG,void:BG,NEVER:rG,ZodIssueCode:C,quotelessJson:pw,ZodError:C$});function OY(){return{}}function zY(T,$){let J={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==x.ZodAny)J.items=s(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)GT(J,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)GT(J,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)GT(J,"minItems",T.exactLength.value,T.exactLength.message,$),GT(J,"maxItems",T.exactLength.value,T.exactLength.message,$);return J}function fY(T,$){let J={type:"integer",format:"int64"};if(!T.checks)return J;for(let W of T.checks)switch(W.kind){case"min":if($.target==="jsonSchema7")if(W.inclusive)GT(J,"minimum",W.value,W.message,$);else GT(J,"exclusiveMinimum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMinimum=!0;GT(J,"minimum",W.value,W.message,$)}break;case"max":if($.target==="jsonSchema7")if(W.inclusive)GT(J,"maximum",W.value,W.message,$);else GT(J,"exclusiveMaximum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMaximum=!0;GT(J,"maximum",W.value,W.message,$)}break;case"multipleOf":GT(J,"multipleOf",W.value,W.message,$);break}return J}function KY(){return{type:"boolean"}}function vF(T,$){return s(T.type._def,$)}var DY=(T,$)=>{return s(T.innerType._def,$)};function n2(T,$,J){let W=J??$.dateStrategy;if(Array.isArray(W))return{anyOf:W.map((F,X)=>n2(T,$,F))};switch(W){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return aG(T,$)}}var aG=(T,$)=>{let J={type:"integer",format:"unix-time"};if($.target==="openApi3")return J;for(let W of T.checks)switch(W.kind){case"min":GT(J,"minimum",W.value,W.message,$);break;case"max":GT(J,"maximum",W.value,W.message,$);break}return J};function QY(T,$){return{...s(T.innerType._def,$),default:T.defaultValue()}}function EY(T,$){return $.effectStrategy==="input"?s(T.schema._def,$):{}}function RY(T){return{type:"string",enum:Array.from(T.values)}}var sG=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function UY(T,$){let J=[s(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),s(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((X)=>!!X),W=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,F=[];return J.forEach((X)=>{if(sG(X)){if(F.push(...X.allOf),X.unevaluatedProperties===void 0)W=void 0}else{let S=X;if("additionalProperties"in X&&X.additionalProperties===!1){let{additionalProperties:Y,...A}=X;S=A}else W=void 0;F.push(S)}}),F.length?{allOf:F,...W}:void 0}function _Y(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 p2=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(p2===void 0)p2=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return p2},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 PF(T,$){let J={type:"string"};if(T.checks)for(let W of T.checks)switch(W.kind){case"min":GT(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$);break;case"max":GT(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"email":switch($.emailStrategy){case"format:email":s$(J,"email",W.message,$);break;case"format:idn-email":s$(J,"idn-email",W.message,$);break;case"pattern:zod":E$(J,a$.email,W.message,$);break}break;case"url":s$(J,"uri",W.message,$);break;case"uuid":s$(J,"uuid",W.message,$);break;case"regex":E$(J,W.regex,W.message,$);break;case"cuid":E$(J,a$.cuid,W.message,$);break;case"cuid2":E$(J,a$.cuid2,W.message,$);break;case"startsWith":E$(J,RegExp(`^${o2(W.value,$)}`),W.message,$);break;case"endsWith":E$(J,RegExp(`${o2(W.value,$)}$`),W.message,$);break;case"datetime":s$(J,"date-time",W.message,$);break;case"date":s$(J,"date",W.message,$);break;case"time":s$(J,"time",W.message,$);break;case"duration":s$(J,"duration",W.message,$);break;case"length":GT(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$),GT(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"includes":{E$(J,RegExp(o2(W.value,$)),W.message,$);break}case"ip":{if(W.version!=="v6")s$(J,"ipv4",W.message,$);if(W.version!=="v4")s$(J,"ipv6",W.message,$);break}case"base64url":E$(J,a$.base64url,W.message,$);break;case"jwt":E$(J,a$.jwt,W.message,$);break;case"cidr":{if(W.version!=="v6")E$(J,a$.ipv4Cidr,W.message,$);if(W.version!=="v4")E$(J,a$.ipv6Cidr,W.message,$);break}case"emoji":E$(J,a$.emoji(),W.message,$);break;case"ulid":{E$(J,a$.ulid,W.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{s$(J,"binary",W.message,$);break}case"contentEncoding:base64":{GT(J,"contentEncoding","base64",W.message,$);break}case"pattern:zod":{E$(J,a$.base64,W.message,$);break}}break}case"nanoid":E$(J,a$.nanoid,W.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((F)=>{})(W)}return J}function o2(T,$){return $.patternStrategy==="escape"?TM(T):T}var eG=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function TM(T){let $="";for(let J=0;J<T.length;J++){if(!eG.has(T[J]))$+="\\";$+=T[J]}return $}function s$(T,$,J,W){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&&W.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&&W.errorMessages&&{errorMessage:{format:J}}})}else GT(T,"format",$,J,W)}function E$(T,$,J,W){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&&W.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:kY($,W),...J&&W.errorMessages&&{errorMessage:{pattern:J}}})}else GT(T,"pattern",kY($,W),J,W)}function kY(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")},W=J.i?T.source.toLowerCase():T.source,F="",X=!1,S=!1,Y=!1;for(let A=0;A<W.length;A++){if(X){F+=W[A],X=!1;continue}if(J.i){if(S){if(W[A].match(/[a-z]/)){if(Y)F+=W[A],F+=`${W[A-2]}-${W[A]}`.toUpperCase(),Y=!1;else if(W[A+1]==="-"&&W[A+2]?.match(/[a-z]/))F+=W[A],Y=!0;else F+=`${W[A]}${W[A].toUpperCase()}`;continue}}else if(W[A].match(/[a-z]/)){F+=`[${W[A]}${W[A].toUpperCase()}]`;continue}}if(J.m){if(W[A]==="^"){F+=`(^|(?<=[\r
13
+ ${H.trace}`:`No previous disposal trace for ${F} was found.`),J}let S=ST($),A=X.molecules.get(S);if(!A){let H=T.disposalTraces.buffer.find((f)=>f?.key===S);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${S} in store "${T.config.name}".`,H?`
14
+ ${S} was most recently disposed
15
+ ${H.trace}`:`No previous disposal trace for ${S} was found.`),J}let w=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:Y.stringKey}).filter(([,{source:H}])=>H!==F).map(([H])=>$$(H));if(W)X.moleculeGraph.delete(F);X.moleculeGraph.set({upstreamMoleculeKey:A.stringKey,downstreamMoleculeKey:Y.stringKey},{source:A.stringKey});let G={type:"molecule_transfer",key:Y.key,from:w,to:[A.key]};if(QT(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.updates.push(G);return J}function E2(T,$,J){switch($){case"newValue":{VY(T,J);break}case"oldValue":{X0(J,T.token);break}}}function R2(T,$,J){switch($){case"newValue":{X0(J,T.token);break}case"oldValue":{if(VY(T,J),T.subType==="atom")J.valueMap.set(T.token.key,T.value);break}}}function VY(T,$){let{family:J}=T.token;if(J){let W=$.families.get(J.key);if(W)a($,W,$$(J.subKey))}}function BY(T,$,J){switch($){case"newValue":J0(J,T.provenance,T.key);break;case"oldValue":W0(J,T.key);break}}function LY(T,$,J){switch($){case"newValue":W0(J,T.key);break;case"oldValue":{let W=T.provenance.map($$);J0(J,W,T.key);for(let[F,X]of T.values){let Y=J.families.get(F);if(Y){a(J,Y,T.key);let S=`${F}(${ST(T.key)})`;J.valueMap.set(S,X)}}}break}}function yY(T,$,J){switch($){case"newValue":{let W=T.to.length===1?T.to[0]:T.to;o0(J,W,T.key,"exclusive")}break;case"oldValue":{let W=T.from.length===1?T.from[0]:T.from;o0(J,W,T.key,"exclusive")}break}}function BF(T,$,J){let W=T==="newValue"?$.updates:[...$.updates].reverse();for(let F of W)switch(F.type){case"atom_update":case"selector_update":VF(T,F,J);break;case"state_creation":E2(F,T,J);break;case"state_disposal":R2(F,T,J);break;case"molecule_creation":BY(F,T,J);break;case"molecule_disposal":LY(F,T,J);break;case"molecule_transfer":yY(F,T,J);break;case"transaction_update":BF(T,F,J);break}}function U2(T,$){return T.transactionMeta.actionContinuities.getRelatedKey($)}function uw(T,$){return T.transactionMeta.epoch.get($)}function NY(T,$){if(!X$(T))return;let W=U2(T,$);if(W===void 0)return;return uw(T,W)}function CY(T,$,J){if(X$(T)&&$)T.transactionMeta.epoch.set($,J)}function xY(T,$,J){if(!X$(T))return;let F=U2(T,$);if(F!==void 0)T.transactionMeta.epoch.set(F,J)}var jY=(T,$)=>{let J=P($),{parent:W}=J;if(W===null||!QT(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,W.child=null,W.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),BF("newValue",J.transactionMeta.update,W),X$(W))xY(W,J.transactionMeta.update.key,J.transactionMeta.update.epoch),zT($,{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(QT(W))W.transactionMeta.update.updates.push(J.transactionMeta.update);W.on.transactionApplying.next(null)};function ZY(T,$,J){if(!X$(T))return;let{epoch:F,actionContinuities:X}=T.transactionMeta;if(X.set($,J),!F.has($))F.set($,-1)}function qY(T){return{store:T}}function fT(T,...$){let J,W,F;if($.length===1)J=$[0];else W=$[0],F=$[1],J=a(T,W,F);if("counterfeit"in J&&"family"in J){W=T.families.get(J.family.key);let X=J.family.subKey,Y=T.disposalTraces.buffer.find((S)=>S?.key===X);switch(T.logger.error("\u274C",J.type,J.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,Y?`This state was previously disposed:
16
+ ${Y.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(W.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(W.key))return T.defaults.get(J.family.key);let S=zT(T,W).default(X);return T.defaults.set(W.key,S),S}}}return PJ(T,zT(T,J))}class tT{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),W=this.relations.get($);if(J)J.add($);else J=new Set([$]),this.relations.set(T,J);if(W)W.add(T);else W=new Set([T]),this.relations.set($,W)}deleteRelation(T,$){let J=this.relations.get(T);if(J){if(J.delete($),J.size===0)this.relations.delete(T);let W=this.relations.get($);if(W){if(W.delete(T),W.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let J of $){let W=new Set().add(T);this.relations.set(J,W)}}replaceRelationsSafely(T,$){let J=this.relations.get(T),W=this.isAType?.(T)?T:void 0,F=W===void 0?T:void 0;if(J)for(let X of J){W??=X,F??=X;let Y=this.relations.get(X);if(Y){if(Y.size===1)this.relations.delete(X);else Y.delete(T);this.contents.delete(this.makeContentKey(W,F))}}this.relations.set(T,new Set($));for(let X of $){let Y=this.relations.get(X);if(Y)Y.add(T);else Y=new Set().add(T),this.relations.set(X,Y)}}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,W])=>[J,new Set(W)])),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=(W,F)=>J.has(W,F),this.addRelation=(W,F)=>{J.addRelation(W,F)},this.deleteRelation=(W,F)=>{J.deleteRelation(W,F)},this.replaceRelationsSafely=(W,F)=>{J.replaceRelationsSafely(W,F)},this.replaceRelationsUnsafely=(W,F)=>{J.replaceRelationsUnsafely(W,F)},this.getRelatedKeys=(W)=>J.getRelatedKeys(W),J.getContent)this.getContentInternal=(W)=>{return J.getContent(W)},this.setContent=(W,F)=>{J.setContent(W,F)},this.deleteContent=(W)=>{J.deleteContent(W)};for(let[W,F]of T.relations??[]){let X=this.isAType?.(W)?W:void 0,Y=X===void 0?W:void 0;for(let S of F)X??=S,Y??=S,this.addRelation(X,Y)}for(let[W,F]of T.contents??[])this.setContent(W,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,W;switch(T.length){case 1:{let F=T[0];$=F[this.a],J=F[this.b],W=void 0;break}case 2:{let F=T[0];if(typeof F==="string")[$,J]=T;else $=F[this.a],J=F[this.b],W=T[1];break}default:{$=T[0],J=T[1],W=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)}break;case"n:n":}if(W){let F=this.makeContentKey($,J);this.setContent(F,W)}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 W=this.getRelatedKeys($);if(W)for(let F of W)this.delete(F,$)}if(typeof J==="string"&&$===void 0){let W=this.getRelatedKeys(J);if(W)for(let F of W)this.delete(J,F)}if(typeof J==="string"&&typeof $==="string"){this.deleteRelation(J,$);let W=this.makeContentKey(J,$);this.deleteContent(W)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((W)=>`"${W}"`).join(", ")}). Only one related key was expected.`);let J;for(let W of $){J=W;break}return J}}replaceRelations(T,$,J){let W=!Array.isArray($),F=W?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,F);else this.replaceRelationsSafely(T,F);if(W)for(let X of F){let Y=this.makeContentKey(T,X),S=$[X];this.setContent(Y,S)}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 W=this.getRelatedKeys($);if(W)return[...W].map((F)=>{return[F,this.getContent($,F)]})}if($===void 0&&J!==void 0){let W=this.getRelatedKeys(J);if(W)return[...W].map((F)=>{return[F,this.getContent(F,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class g$ extends Map{deleted=new Set;source;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 IY=(T,$,J,W)=>{let F=P(T),X={parent:F,child:null,on:F.on,loggers:F.loggers,logger:F.logger,config:F.config,atoms:new g$(F.atoms),atomsThatAreDefault:new Set(F.atomsThatAreDefault),families:new g$(F.families),joins:new g$(F.joins),operation:{open:!1},readonlySelectors:new g$(F.readonlySelectors),timelines:new g$(F.timelines),timelineTopics:new tT(F.timelineTopics.toJSON()),trackers:new Map,transactions:new g$(F.transactions),selectorAtoms:new tT(F.selectorAtoms.toJSON()),selectorGraph:new tT(F.selectorGraph.toJSON(),{makeContentKey:(...w)=>w.sort().join(":")}),selectors:new g$(F.selectors),valueMap:new g$(F.valueMap),defaults:F.defaults,disposalTraces:T.disposalTraces.copy(),molecules:new g$(F.molecules),moleculeGraph:new tT(F.moleculeGraph.toJSON(),{makeContentKey:F.moleculeGraph.makeContentKey}),moleculeData:new tT(F.moleculeData.toJSON(),{makeContentKey:F.moleculeData.makeContentKey}),moleculeJoins:new tT(F.moleculeJoins.toJSON(),{makeContentKey:F.moleculeJoins.makeContentKey}),miscResources:new g$(F.miscResources)},Y=NY(T,$),S={phase:"building",update:{type:"transaction_update",key:$,id:W,epoch:Y===void 0?Number.NaN:Y+1,updates:[],params:J,output:void 0},toolkit:{get:(...w)=>fT(A,...w),set:(...w)=>{gT(A,...w)},run:(w,G=fF())=>d0(A,w,G),find:(w,G)=>a(A,w,G),json:(w)=>iT(A,w),dispose:(...w)=>{X0(A,...w)},env:()=>qY(A)}},A=Object.assign(X,{transactionMeta:S});return F.child=A,T.logger.info("\uD83D\uDEEB","transaction",$,"Building transaction with params:",J),A};function _2(T,$){let J={key:$.key,type:"transaction",run:(X,Y)=>{let S=IY(T,$.key,X,Y);try{let A=P(T),{toolkit:w}=S.transactionMeta,G=$.do(w,...X);return jY(G,A),G}catch(A){throw MY(W),T.logger.warn("\uD83D\uDCA5","transaction",$.key,"caught:",A),A}},install:(X)=>_2(X,$),subject:new XT},W=P(T);W.transactions.set(J.key,J);let F=k$(J);return T.on.transactionCreation.next(F),F}function s1(T){return _2(AT.STORE,T)}class bY{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new tT({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new tT({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 tT({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new tT({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new QF(100);molecules=new Map;moleculeJoins=new tT({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new tT({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new tT({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new XT,atomDisposal:new XT,selectorCreation:new XT,selectorDisposal:new XT,timelineCreation:new XT,transactionCreation:new XT,transactionApplying:new z2(null),operationClose:new XT,moleculeCreation:new XT,moleculeDisposal:new XT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new f2("warn",(T,$,J)=>!hJ(J))];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},X$($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new tT($?.transactionMeta.actionContinuities.toJSON())};for(let[,W]of $.families){if(W.internalRoles?.includes("mutable")||W.internalRoles?.includes("join"))continue;W.install(this)}let J=new Set;for(let[,W]of $.atoms){if(J.has(W.key))continue;if(W.install(this),W.type==="mutable_atom"){let F=iT($,W),X=EJ(W);J.add(F.key),J.add(X.key)}}for(let[,W]of $.readonlySelectors)W.install(this);for(let[,W]of $.selectors){if(J.has(W.key))continue;W.install(this)}for(let[,W]of $.transactions)W.install(this);for(let[,W]of $.timelines)W.install(this)}}}var AT={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new bY({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function zT(T,$){let J,W=T;while(W!==null){switch($.type){case"atom":case"mutable_atom":J=W.atoms.get($.key);break;case"selector":J=W.selectors.get($.key);break;case"readonly_selector":J=W.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":J=W.families.get($.key);break;case"timeline":J=W.timelines.get($.key);break;case"transaction":J=W.transactions.get($.key);break}if(J)return J;W=W.child}throw new F0($,T)}function vY(T,$,J){let W=T.families.get($.key);if(W===void 0)throw new F0($,T);let F=W(J),X=P(T);if(F.family){if(X$(X))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(QT(X)&&X.on.transactionApplying.state===null)X.transactionMeta.update.updates.push({type:"state_creation",token:F})}return F}function PY(T,$,J){let W=ST(J),F=`${$.key}(${W})`,X=P(T),Y;switch($.type){case"atom_family":case"mutable_atom_family":Y=X.atoms.get(F);break;case"selector_family":Y=X.selectors.get(F);break;case"readonly_selector_family":Y=X.readonlySelectors.get(F);break}if(Y)return k$(Y);return Y}function a(T,$,J){let W=PY(T,$,J);if(W)return W;let F=ST(J),X=T.molecules.get(F);if(!X&&T.config.lifespan==="immortal"){let Y=WY($,J);return T.logger.error("\u274C",Y.type,Y.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),Y}if(W=vY(T,$,J),X)P(T).moleculeData.set(F,$.key);return W}function X0(T,...$){let J;if($.length===1)J=$[0];else{let W=$[0],F=$[1];J=a(T,W,F)}try{zT(T,J)}catch(W){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":k2(T,J);break;case"selector":case"readonly_selector":hY(T,J);break}}var LF=(T,$)=>P(T).atoms.has($),iw=(T,$)=>P(T).selectors.has($),tw=(T,$)=>P(T).readonlySelectors.has($),mY=(T,$)=>LF(T,$)||iw(T,$)||tw(T,$);var yF=(T,$)=>{return P($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([W,{source:F}])=>F!==T).map(([W,{source:F}])=>F).filter((W)=>mY($,W))};var V2=(T,$,J)=>{let W=[],F=yF(T,J);while(F.length>0){let X=F.shift();if($.has(X))continue;if($.add(X),!LF(J,X))F.push(...yF(X,J));else if(!W.includes(X))W.push(X)}return W},gY=(T,$)=>{let J=T.key,W=yF(J,$),F=new Set;return W.flatMap((X)=>LF($,X)?X:V2(X,F,$))};var cY=(T,$,J,W)=>{let F=P(W);if($.type==="atom"||$.type==="mutable_atom")F.selectorAtoms.set({selectorKey:T,atomKey:$.key}),W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let X=V2($.key,J,W);W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${X.map((Y)=>`"${Y}"`).join(", ")} ]`);for(let Y of X)F.selectorAtoms=F.selectorAtoms.set({selectorKey:T,atomKey:Y})}J.add($.key)};var NF=(T,$,J)=>({get:(...W)=>{let F=P(J),X;if(W.length===2){let[A,w]=W;X=a(J,A,w)}else[X]=W;let Y=zT(J,X),S=PJ(J,Y);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${X.key}" =`,S,")"),F.selectorGraph.set({upstreamSelectorKey:X.key,downstreamSelectorKey:T},{source:X.key}),cY(T,X,$,J),S},set:(...W)=>{let F,X;if(W.length===2)F=W[0],X=W[1];else{let A=W[0],w=W[1];X=W[2],F=a(J,A,w)}let Y=P(J),S=zT(Y,F);kF(Y,S,X)},find:(W,F)=>a(J,W,F),json:(W)=>iT(J,W)});var i1=(T,$,J)=>{let W=P(T),F=new XT,X=new Set,{get:Y,find:S,json:A}=NF($.key,X,W),w=()=>{let f=$.get({get:Y,find:S,json:A});return m$(P(T),$.key,f,F),X.clear(),f},G={...$,subject:F,install:(f)=>i1(f,$,J),get:w,type:"readonly_selector",...J&&{family:J}};W.readonlySelectors.set($.key,G);let M=w();T.logger.info("\u2728",G.type,G.key,"=",M);let H={key:$.key,type:"readonly_selector"};if(J)H.family=J;return H};var e1=(T,$,J)=>{let W=P(T),F=new XT,X=new Set,Y=NF($.key,X,W),{find:S,get:A,json:w}=Y,G={find:S,get:A,json:w},M=(y=$.get,j=P(T))=>{let L=y(G);return m$(j,$.key,L,F),X.clear(),L},f={...$,subject:F,install:(y)=>e1(y,$,J),get:M,set:(y)=>{let j=P(T),L=M($.get,j),Z=_F(y)(L);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",L,"->",Z,")"),m$(j,$.key,Z,F),u0(j,$.key),X$(j))F.next({newValue:Z,oldValue:L});$.set(Y,Z)},type:"selector",...J&&{family:J}};W.selectors.set($.key,f);let D=M();T.logger.info("\u2728",f.type,f.key,"=",D);let R={key:$.key,type:"selector"};if(J)R.family=J;return R};function fJ(T,$){if("set"in $){let F=e1(T,$,void 0);return T.on.selectorCreation.next(F),F}let W=i1(T,$,void 0);return T.on.selectorCreation.next(W),W}function hY(T,$){let J=P(T),{key:W}=$,F=zT(J,$);if(!F.family)T.logger.error("\u274C","selector",W,"Standalone selectors cannot be disposed.");else{if(J.molecules.get(F.family.subKey))J.moleculeData.delete(F.family.subKey,F.family.key);let Y;switch($.type){case"selector":J.selectors.delete(W),Y={key:F.family.key,type:"selector_family"},zT(T,Y).subject.next({type:"state_disposal",subType:"selector",token:$});break;case"readonly_selector":J.readonlySelectors.delete(W),Y={key:F.family.key,type:"readonly_selector_family"},zT(T,Y).subject.next({type:"state_disposal",subType:"selector",token:$});break}if(J.valueMap.delete(W),J.selectorAtoms.delete(W),J.selectorGraph.delete(W),T.logger.info("\uD83D\uDD25",$.type,W,"deleted"),QT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:$});else T.on.selectorDisposal.next($)}}function t1(T,$,J){let W={key:$.key,type:"selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${YJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,S=Object.assign((A)=>{let w=ST(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),f=e1(H,{key:M,get:$.get(A),set:$.set(A)},G);return X.next({type:"state_creation",token:f}),f},W,{internalRoles:J,subject:X,install:(A)=>t1(A,$),default:(A)=>{return $.get(A)({get:(...G)=>fT(T,...G),find:(G,M)=>a(T,G,M),json:(G)=>iT(T,G)})}});return T.families.set($.key,S),W}function nY(T,$,J){return t1(T,{key:`${$.key}:JSON`,get:(F)=>({get:X})=>{let Y=X($,F);return J.toJson(Y)},set:(F)=>({set:X},Y)=>{X($,F,J.fromJson(Y))}},["mutable","json"])}var $$=(T)=>JSON.parse(T),ST=(T)=>JSON.stringify(T),$Q=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var pY=(T,$)=>{let J=P(T);if(J.operation.open)return J.operation.prev.get($.key);return J.valueMap.get($.key)};var y2=(T,$)=>{let J=P(T);return gY($,T).map((F)=>{let X=J.atoms.get(F);if(X===void 0)throw new Error(`Atom "${F}", a dependency of selector "${$.key}", not found in store "${T.config.name}".`);return X.subject.subscribe(`${$.type}:${$.key}`,(Y)=>{T.logger.info("\uD83D\uDCE2",$.type,$.key,"root",F,"went",Y.oldValue,"->",Y.newValue);let S=pY(J,$),A=PJ(J,$);T.logger.info("\u2728",$.type,$.key,"went",S,"->",A),$.subject.next({newValue:A,oldValue:S})})})};function z$(T,$,J,W){function F(M){if(T.operation.open){let H=T.on.operationClose.subscribe(`state subscription ${J}`,()=>{H(),W(M)})}else W(M)}let X=zT(T,$);T.logger.info("\uD83D\uDC40",X.type,X.key,`Adding subscription "${J}"`);let Y=X.type==="selector"||X.type==="readonly_selector",S=null,A=F;if(Y)S=y2(T,X),A=(M)=>{if(S)S.length=0,S.push(...y2(T,X));F(M)};let w=X.subject.subscribe(J,A);return()=>{if(T.logger.info("\uD83D\uDE48",X.type,X.key,`Removing subscription "${J}"`),w(),S)for(let M of S)M()}}var B2=(T,$,J,W)=>{let F=zT(T,$);T.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${J}"`);let X=F.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${J}" from timeline`),X()}};var L2=(T,$,J,W)=>{let F=zT(T,$);T.logger.info("\uD83D\uDC40","transaction",$.key,`Adding subscription "${J}"`);let X=F.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","transaction",$.key,`Removing subscription "${J}"`),X()}};class Y0{Update;initializeState(T,$){let J=`*${T.key}`;$.atoms.delete(J),$.valueMap.delete(J);let W=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,F=N$($,{key:J,default:null},W);if($.parent?.valueMap.has(J)){let X=$.parent.valueMap.get(J);$.valueMap.set(J,X)}return F}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,J){let W=`tracker:${J.config.name}:${QT(J)?J.transactionMeta.update.key:"main"}:${T.key}`,F=fT(J,T);this.unsubscribeFromInnerValue=F.subscribe(W,(X)=>{gT(J,$,X)}),this.unsubscribeFromState=z$(J,T,W,(X)=>{if(X.newValue!==X.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=X.newValue.subscribe(W,(Y)=>{gT(J,$,Y)})})}updateCore(T,$,J){let W=`tracker:${J.config.name}:${QT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;z$(J,$,W,({newValue:F,oldValue:X})=>{let Y=J.timelineTopics.getRelatedKey($.key);if(Y){if(J.timelines.get(Y)?.timeTraveling){let w=B2(J,{key:Y,type:"timeline"},W,(G)=>{w(),gT(J,T,(M)=>{if(G==="redo"&&F)M.do(F);else if(G==="undo"&&X)M.undo(X);return M})});return}}let S=J.on.operationClose.subscribe(W,()=>{S();let A=fT(J,T),w=F===null?-1:A.getUpdateNumber(F),G=w-A.cacheUpdateNumber;if(F&&G===1)gT(J,T,(M)=>(M.do(F),M));else J.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${A.cacheUpdateNumber+1}, but got ${w}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,$){this.mutableState=T;let J=P($);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 TW(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=P(T),F=W.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."),k$(F);let X=new XT,Y={...$,type:"mutable_atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),TW(w,$,J)},subject:X};if(J)Y.family=J;let S=$.default();W.atoms.set(Y.key,Y),CF(T,$.key),m$(W,$.key,S,X);let A=k$(Y);if($.effects){let w=0,G=[];for(let M of $.effects){let H=M({setSelf:(f)=>{gT(T,A,f)},onSet:(f)=>z$(T,A,`effect[${w}]`,f)});if(H)G.push(H);++w}Y.cleanup=()=>{for(let M of G)M()}}if(new Y0(A,T),!J)$Y(A,$,T);return A}class N2{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=DJ($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=zT($,J),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(W)=>{let{type:F,token:X}=W;if(X.family){let Y=$$(X.family.subKey);switch(F){case"state_creation":this.trackers.set(Y,new Y0(X,$));break;case"state_disposal":{let S=this.trackers.get(Y);if(S)S[Symbol.dispose](),this.trackers.delete(Y)}break}}})}}function u1(T,$,J){let W={key:$.key,type:"mutable_atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${YJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,S=Object.assign((A)=>{let w=ST(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),f={key:M,default:()=>$.default(A),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)f.effects=$.effects(A);let D=TW(H,f,G);return X.next({type:"state_creation",token:D}),D},W,{subject:X,install:(A)=>u1(A,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:J});return T.families.set($.key,S),nY(T,S,$),new N2(S,T),W}var C2=(T,$)=>{let J=P($),W=`${T.key}:JSON`;return J.families.get(W)};var iT=(T,$)=>{if($.family){let W=P(T),X={key:`${$.family.key}:JSON`,type:"selector_family"},Y=zT(W,X),S=JSON.parse($.family.subKey);return a(T,Y,S)}return{type:"selector",key:`${$.key}:JSON`}};var EJ=(T)=>{let J={type:"atom",key:`*${T.key}`};if(T.family)J.family={key:`*${T.family.key}`,subKey:T.family.subKey};return J};function EY(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function a1(T,$,J){let W=J.valueMap.get($.key),F=T.valueMap.get($.key);if(W!==F)return F;if(W===void 0)return $.default();J.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let X=$.toJson(W),Y=$.fromJson(X);return T.valueMap.set($.key,Y),new Y0($,J),Y}function m$(T,$,J,W){let F=T.valueMap.get($);if(F instanceof d1)F.use(J);if(J instanceof Promise){let X=new d1(J);return T.valueMap.set($,X),X.then((Y)=>{m$(T,$,Y,W),W.next({newValue:Y,oldValue:X})}).catch((Y)=>{T.logger.error("\uD83D\uDCA5","state",$,"rejected:",Y)}),X}return T.valueMap.set($,J),J}var HY=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&QT($)){let{parent:W}=$;J=a1($,T,W)}return J},DY=(T,$)=>{let J=$.valueMap.get(T);if(J instanceof d1){let W=J,F=$.selectors.get(T)??$.readonlySelectors.get(T);if(F)W.use(F.get());return}if($.operation.open)$.operation.prev.set(T,J);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var RY=(T,$)=>{return P(T).atomsThatAreDefault.has($)},CF=(T,$)=>{let J=P(T);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add($)},UY=(T,$)=>{let J=P(T);J.atomsThatAreDefault=new Set(P(T).atomsThatAreDefault),J.atomsThatAreDefault.delete($)};function N$(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=P(T),F=W.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."),k$(F);let X=new XT,Y={...$,type:"atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),N$(w,$,J)},subject:X};if(J)Y.family=J;let S=$.default;if($.default instanceof Function)S=$.default();W.atoms.set(Y.key,Y),CF(T,$.key),m$(W,$.key,S,X);let A=k$(Y);if($.effects){let w=0,G=[];for(let M of $.effects){let H=M({setSelf:(f)=>{gT(T,A,f)},onSet:(f)=>z$(T,A,`effect[${w}]`,f)});if(H)G.push(H);++w}Y.cleanup=()=>{for(let M of G)M()}}return A}function FY(T,$){if("mutable"in $){let F=TW(T,$,void 0);return T.on.atomCreation.next(F),F}let W=N$(T,$,void 0);return T.on.atomCreation.next(W),W}function k2(T,$){let J=P(T),{key:W,family:F}=$,X=zT(J,$);if(!F)T.logger.error("\u274C","atom",W,"Standalone atoms cannot be disposed.");else{X.cleanup?.();let Y=T.valueMap.get(X.key),S=zT(T,{key:F.key,type:"atom_family"}),A={type:"state_disposal",subType:"atom",token:$,value:Y};S.subject.next(A);let w=QT(J);if(J.atoms.delete(W),J.valueMap.delete(W),J.selectorAtoms.delete(W),J.atomsThatAreDefault.delete(W),T.timelineTopics.delete(W),$.type==="mutable_atom"){let G=EJ($);k2(T,G),T.trackers.delete(W)}if(T.logger.info("\uD83D\uDD25","atom",W,"deleted"),w&&J.transactionMeta.phase==="building"){let G=J.transactionMeta.update.updates.at(-1);if(!(G?.type==="molecule_disposal"&&G.values.some(([f])=>f===X.family?.key)))J.transactionMeta.update.updates.push(A)}else T.on.atomDisposal.next($)}}class lT extends Set{mode="record";subject=new XT;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:${ST(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:${ST(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 W of this.transactionUpdates)this.doStep(W);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,$),W=T.substring($+1);switch(J){case"add":this.add(JSON.parse(W));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(W));break;case"tx":for(let F of W.split(";"))this.doStep(F)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),J=Number(T.substring(0,$)),W=J-this.cacheUpdateNumber;if(W>0){if(W===1){this.mode="playback";let X=T.substring($+1);return this.doStep(X),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(W)<this.cacheLimit){let X=this.cacheIdx+W;if(this.cache[X]===T)return null;this.mode="playback";let S=!1;while(!S){this.cacheIdx%=this.cacheLimit;let w=this.cache[this.cacheIdx];if(this.cacheIdx--,!w)return"OUT_OF_RANGE";this.undo(w),S=this.cacheIdx===X-1}let A=T.substring($+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=J,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),J=T.substring(0,$),W=T.substring($+1);switch(J){case"add":this.delete(JSON.parse(W));break;case"del":this.add(JSON.parse(W));break;case"clear":{let F=JSON.parse(W);for(let X of F)this.add(X);break}case"tx":{let F=W.split(";");for(let X=F.length-1;X>=0;X--)this.undoStep(F[X])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let W=T.substring($+1);return this.undoStep(W),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class l1{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 D2(J),this.options=T,this.defaultContent=$,this.store.miscResources.set(`join:${T.key}`,this),this.realm.allocate("root",T.key),this.toolkit={get:(...E)=>fT(J,...E),set:(...E)=>{gT(J,...E)},find:(...E)=>a(J,...E),json:(E)=>iT(J,E)};let W=T.between[0],F=T.between[1],X=u1(J,{key:`${T.key}/relatedKeys`,default:()=>new lT,mutable:!0,fromJson:(E)=>lT.fromJSON(E),toJson:(E)=>E.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:X};let Y=({get:E},V)=>E(X,V),S=({set:E},V,B)=>{if(!this.store.molecules.has(ST(V)))this.realm.allocate(T.key,V);E(X,V,(k)=>k.add(B)),E(X,B,(k)=>k.add(V))},A=({set:E},V,B)=>{E(X,V,(k)=>{return k.delete(B),k}),E(X,B,(k)=>{return k.delete(V),k})},w=(E,V,B)=>{let{find:k,get:b,set:r}=E,U=k(X,V),e=b(U);for(let p of e){if(B.includes(p))continue;r(X,p,(DT)=>{return DT.delete(V),DT})}r(U,(p)=>{return p.transaction(($T)=>{$T.clear();for(let DT of B){let PT=Y(E,DT),_$=PT.has(V);if(this.relations.cardinality==="1:n"){let KJ=[];for(let N of PT){if(N===V)continue;let i=Y(E,N);if(i.delete(DT),i.size===0)KJ.push(N)}if(!_$&&PT.size>0)PT.clear();for(let N of KJ){let i=[DT,N].sort(),OT=`"${i[0]}:${i[1]}"`;this.molecules.delete(OT)}}if(!_$)PT.add(V);$T.add(DT)}return!0}),p})},G=(E,V,B)=>{let{set:k}=E;k(X,V,(b)=>{return b.transaction((r)=>{for(let U of B)r.add(U);return!0}),b});for(let b of B)k(X,b,(r)=>{return r.add(V),r});return!0},M=(E,V,B)=>{let k=Y(E,V);return B?k.has(B):k.size>0},H={getRelatedKeys:(E)=>Y(this.toolkit,E),addRelation:(E,V)=>{this.store.moleculeJoins.set(E,T.key),this.store.moleculeJoins.set(V,T.key),S(this.toolkit,E,V)},deleteRelation:(E,V)=>{A(this.toolkit,E,V)},replaceRelationsSafely:(E,V)=>{w(this.toolkit,E,V)},replaceRelationsUnsafely:(E,V)=>{G(this.toolkit,E,V)},has:(E,V)=>M(this.toolkit,E,V)},f,D;if($){D=DJ(J,{key:`${T.key}/content`,default:$},["join","content"]);let E=({get:k},b)=>k(D,b),V=({set:k},b,r)=>{k(D,b,r)};f=Object.assign(H,{getContent:(k)=>{return E(this.toolkit,k)},setContent:(k,b)=>{V(this.toolkit,k,b)},deleteContent:(k)=>{this.realm.deallocate(k)}})}else f=H;let R=new tT(T,{externalStore:f,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...E)=>{let[V,B]=E,k=E.sort(),b=`${k[0]}:${k[1]}`,r=J.molecules.get(ST(V)),U=J.molecules.get(ST(B));if(!r)this.realm.allocate(T.key,V);if(!U)this.realm.allocate(T.key,B);return this.realm.allocate(V,b,"all"),this.realm.claim(B,b),this.store.moleculeJoins.set(b,T.key),b}}),y=()=>QJ(J,{key:`${T.key}/singleRelatedKey`,get:(E)=>({get:V})=>{let B=V(X,E);for(let k of B)return k;return null}},["join","keys"]),j=()=>{return QJ(J,{key:`${T.key}/multipleRelatedKeys`,get:(E)=>({get:V})=>{let B=C2(X,J);return V(B,E).members}},["join","keys"])},L=()=>QJ(J,{key:`${T.key}/singleRelatedEntry`,get:(E)=>({get:V})=>{let B=V(X,E);for(let k of B){let b=R.isAType?.(E)?E:void 0,r=b===void 0?E:void 0;b??=k,r??=k;let U=R.makeContentKey(b,r),e=V(D,U);return[k,e]}return null}},["join","entries"]),Z=()=>QJ(J,{key:`${T.key}/multipleRelatedEntries`,get:(E)=>({get:V})=>{let B=C2(X,J);return V(B,E).members.map((b)=>{let r=R.isAType?.(E)?E:void 0,U=r===void 0?E:void 0;r??=b,U??=b;let e=R.makeContentKey(r,U),p=V(D,e);return[b,p]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let E=y(),V=`${W}KeyOf${ET(F)}`,B=`${F}KeyOf${ET(W)}`,k={[V]:E,[B]:E},b;if($){let r=L(),U=`${W}EntryOf${ET(F)}`,e=`${F}EntryOf${ET(W)}`,p={[U]:r,[e]:r};b=Object.assign(k,p)}else b=k;this.relations=R,this.states=b;break}case"1:n":{let E=y(),V=j(),B=`${W}KeyOf${ET(F)}`,k=`${F}KeysOf${ET(W)}`,b={[B]:E,[k]:V},r;if($){let U=L(),e=Z(),p=`${W}EntryOf${ET(F)}`,$T=`${F}EntriesOf${ET(W)}`,DT={[p]:U,[$T]:e};r=Object.assign(b,DT)}else r=b;this.relations=R,this.states=r;break}case"n:n":{let E=j(),V=`${W}KeysOf${ET(F)}`,B=`${F}KeysOf${ET(W)}`,k={[V]:E,[B]:E},b;if($){let r=Z(),U=`${W}EntriesOf${ET(F)}`,e=`${F}EntriesOf${ET(W)}`,p={[U]:r,[e]:r};b=Object.assign(k,p)}else b=k;this.relations=R,this.states=b}}}}function i0(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 l1(F.options,F.defaultContent,$),$.joins.set(T.key,J)}return J}function r1(T,$,J){let W=i0(T,J),F=P(J);if(QT(F)){let{toolkit:X}=F.transactionMeta;W.transact(X,({relations:Y})=>{$(Y)})}else $(W.relations)}function RF(T,$,J){let W=i0(T,J),F;switch(T.cardinality){case"1:1":{let X=`${T.a}KeyOf${ET(T.b)}`,Y=`${T.b}KeyOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[Y](){let A=W.states[Y];return a(J,A,$)}};let S=`${T.a}EntryOf${ET(T.b)}`;if(S in W.states){let A=`${T.b}EntryOf${ET(T.a)}`;Object.assign(F,{get[S](){let w=W.states[S];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}break}case"1:n":{let X=`${T.a}KeyOf${ET(T.b)}`,Y=`${T.b}KeysOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[Y](){let A=W.states[Y];return a(J,A,$)}};let S=`${T.a}EntryOf${ET(T.b)}`;if(S in W.states){let A=`${T.b}EntriesOf${ET(T.a)}`;Object.assign(F,{get[S](){let w=W.states[S];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}break}case"n:n":{let X=`${T.a}KeysOf${ET(T.b)}`,Y=`${T.b}KeysOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[Y](){let A=W.states[Y];return a(J,A,$)}};let S=`${T.a}EntriesOf${ET(T.b)}`;if(S in W.states){let A=`${T.b}EntriesOf${ET(T.a)}`;Object.assign(F,{get[S](){let w=W.states[S];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}}}return F}function SY(T,$){return i0(T,$).core.relatedKeysAtoms}function hJ(T){return T.startsWith("\uD83D\uDD0D ")}class oY 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 xF{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(T){this.key=T}static existing=new oY;static create(T,$){let J=new xF(T),{type:W,globals:F,actions:X,perspectives:Y}=$(J),S={type:W,key:T,globals:F,actions:X,perspectives:Y};return xF.existing.set(T,S),S}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":case"mutable_atom_family":{let[J,W]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:J,viewAtoms:W})}break}return this}}function DU(T){let{key:$,config:J}=T,W=xF.create($,J),{actions:F}=W;for(let X of F)ZY(AT.STORE,$,X.key);return CY(AT.STORE,$,-1),W}var UU=p0({key:"usersInRoomIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),x2=p0({key:"roomIndex",default:()=>new lT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),lw={enteredAtEpoch:0},$W=EF({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},lw),_U=UF({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=YY($W);return[$(J,T)]}});import{spawn as rw}from"node:child_process";class t0{listeners;globalListeners;handleEvent(T,...$){for(let W of this.globalListeners)W(T,...$);let J=this.listeners.get(T);if(J)for(let W of J)W(...$)}id="no_id_retrieved";emit;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 j2 extends t0{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;default:return}}}constructor(T,$,J){super((W,...F)=>{let X=JSON.stringify([W,...F])+"\x03",Y=(S)=>{if(S.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",Y)};return this.process.stdin.once("error",Y),this.process.stdin.write(X),this});if(this.process=T,this.key=$,this.logger=J??{info:(...W)=>{console.info(this.id,this.key,...W)},warn:(...W)=>{console.warn(this.id,this.key,...W)},error:(...W)=>{console.error(this.id,this.key,...W)}},this.process.stdout.on("data",(W)=>{let F=W.toString();if(F==="ALIVE")return;this.unprocessedEvents.push(...F.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let Y=$$(this.incompleteData);this.handleEvent(...Y);while(this.unprocessedEvents.length>0){let S=this.unprocessedEvents.shift();if(S){if(this.unprocessedEvents.length===0)this.incompleteData=S;Y=$$(S),this.handleEvent(...Y)}}this.incompleteData=""}catch(Y){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(Y)}}),this.process.stderr.on("data",(W)=>{let F=W.toString();this.unprocessedLogs.push(...F.split("\x03"));let X=this.unprocessedLogs.shift();this.incompleteLog+=X??"";try{let Y=$$(this.incompleteLog);this.handleLog(Y);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)Y=$$(this.incompleteLog),this.handleLog(Y)}catch(Y){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(Y),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class dY extends t0{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new XT,this.out=new XT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class Z2 extends t0{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(ST(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 W=$$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;let X=$$(F);this.handleEvent(...X)}}this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error("\u2757",W.message,W.cause,W.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 dY(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let J of this.relayServices){let W=J($);if(W)$.disposalFunctions.push(W)}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 q2=$0({key:"roomArguments",default:["echo",["Hello World!"]]}),uY=UF({key:"room",get:(T)=>async({get:$,find:J})=>{let W=J(q2,T),F=$(W),[X,Y]=F,S=await new Promise((A)=>{let w=rw(X,Y,{env:process.env}),G=(M)=>{if(M.toString()==="ALIVE")w.stdout.off("data",G),A(w)};w.stdout.on("data",G)});return new j2(S,T)}});var lU=s1({key:"createRoom",do:({get:T,set:$,find:J},W,F,X)=>{let Y=X?[F,X]:[F],S=J(q2,W);$(S,Y),$(x2,(G)=>G.add(W));let A=J(uY,W);return T(A)}}),rU=s1({key:"joinRoom",do:(T,$,J,W)=>{let F={enteredAtEpoch:W};return r1($W,(X)=>{X.set({room:$,user:J},F)},T.env().store),F}}),aU=s1({key:"leaveRoom",do:(T,$,J)=>{r1($W,(W)=>{W.delete({room:$,user:J})},T.env().store)}}),sU=s1({key:"destroyRoom",do:(T,$)=>{r1($W,(J)=>{J.delete({room:$})},T.env().store),T.set(x2,(J)=>(J.delete($),J))}});function I2(T,$){return $.map((J)=>{switch(J.type){case"transaction_update":{let W=I2(T,J.updates);return{...J,updates:W}}case"atom_update":case"selector_update":case"molecule_creation":case"molecule_disposal":case"molecule_transfer":case"state_creation":case"state_disposal":return J}}).filter((J)=>{switch(J.type){case"atom_update":case"selector_update":return T.includes(J.key);case"state_creation":case"state_disposal":return T.includes(J.token.key);case"molecule_creation":case"transaction_update":case"molecule_disposal":case"molecule_transfer":return!0}})}var $_=$0({key:"redactor",default:{occlude:(T)=>T}}),l0=$0({key:"unacknowledgedUpdates",default:()=>[]});var iY=$0({key:"sockets",default:null}),X_=p0({key:"socketsIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),Y_=p0({key:"usersIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),b2=EF({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function tY(T,$,J,W){let F=$.key;return function X(){let Y=[];for(let A of $.globals){let w=A.type==="mutable_atom"?iT(T,A):A,G=fT(T,w);Y.push(w,G)}for(let A of $.perspectives){let{viewAtoms:w,resourceAtoms:G}=A,M=a(T,w,J),H=fT(T,M);T.logger.info("\uD83D\uDC41","atom",G.key,`${J} can see`,{viewAtoms:w,resourceAtoms:G,userView:H});for(let f of H){let D=f.type==="mutable_atom"?iT(T,f):f,R=fT(T,D);Y.push(D,R)}}let S=X$(T)?T.transactionMeta.epoch.get(F)??null:null;W?.emit(`continuity-init:${F}`,S,Y)}}function lY(T,$,J){let W=$.key;return function F(X){T.logger.info("\uD83D\uDECE\uFE0F","continuity",W,"received",X);let{key:Y,id:S}=X,A=`tx-run:${Y}:${S}`,w=`${A}:start`,G=`${A}:end`;performance.mark(w);try{d0(T,{type:"transaction",key:Y},S)(...X.params)}catch(H){if(H instanceof Error)T.logger.error("\u274C","continuity",W,`failed to run transaction ${Y} from ${J} with update ${S}`,H.message)}performance.mark(G);let M=performance.measure(A,w,G);T?.logger.info("\uD83D\uDE80","transaction",Y,S,J,M.duration)}}function rY(T,$,J,W){let F=$.key;return function X(Y){if(T.logger.info("\uD83D\uDC4D","continuity",F,`${J} acknowledged epoch ${Y}`),W[0]?.epoch===Y)gT(T,l0,J,(A)=>{return A.shift(),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,A.length,"items"),A})}}function aY(T,$,J,W){let F=$.key,X=[];for(let Y of $.actions){let S=L2(T,Y,`sync-continuity:${F}:${J}`,(A)=>{try{let w=$.globals.map((H)=>{if(H.type==="atom")return H.key;return EJ(H).key}).concat($.perspectives.flatMap((H)=>{let{viewAtoms:f}=H,D=a(T,f,J);return fT(T,D).map((y)=>{return y.type==="mutable_atom"?"*"+y.key:y.key})})),G=I2(w,A.updates),M={...A,updates:G};gT(T,l0,J,(H)=>{if(M)H.push(M),H.sort((f,D)=>f.epoch-D.epoch),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,H.length,"items");return H}),W?.emit(`tx-new:${F}`,M)}catch(w){if(w instanceof Error)T.logger.error("\u274C","continuity",F,`${J} failed to send update from transaction ${Y.key} to ${J}`,w.message)}});X.push(S)}return X}function sY(T,$,J,W){let F=$.key,X=[];for(let Y of $.perspectives){let{viewAtoms:S}=Y,A=a(T,S,J),w=z$(T,A,`sync-continuity:${F}:${J}:perspective:${Y.resourceAtoms.key}`,({oldValue:G,newValue:M})=>{let H=G.map((y)=>y.key),f=M.map((y)=>y.key),D=G.filter((y)=>!f.includes(y.key)),R=M.filter((y)=>!H.includes(y.key)).flatMap((y)=>{let j=y.type==="mutable_atom"?iT(T,y):y,L=fT(T,j);return[j,L]});if(T.logger.info("\uD83D\uDC41","atom",Y.resourceAtoms.key,`${J} has a new perspective`,{oldKeys:H,newKeys:f,revealed:R,concealed:D}),R.length>0)W?.emit(`reveal:${F}`,R);if(D.length>0)W?.emit(`conceal:${F}`,D)});X.push(w)}return X}function b_({socket:T,store:$=AT.STORE}){return function J(W){let F=T,X=W.key,Y=RF(b2,`socket::${F.id}`,$).userKeyOfSocket,S=fT($,Y);if(!S)return $.logger.error("\u274C","continuity",X,`Tried to create a synchronizer for a socket (${F.id}) that is not connected to a user.`),()=>{};let A=RF(b2,S,$).socketKeyOfUser,w=z$($,A,`sync-continuity:${X}:${S}`,({newValue:j})=>{if($.logger.info("\uD83D\uDC4B","continuity",X,`seeing ${S} on new socket ${j}`),j===null){$.logger.warn("\u274C","continuity",X,`User (${S}) is not connected to a socket, waiting for them to reappear.`);return}let L=a($,iY,j);F=fT($,L);for(let E of G)F?.emit(`tx-new:${X}`,E)}),G=fT($,l0,S),M=[],H=sY($,W,S,F),f=aY($,W,S,F);M.push(...H,...f);let D=tY($,W,S,T);F.off(`get:${X}`,D),F.on(`get:${X}`,D);let R=lY($,W,S);F.off(`tx-run:${X}`,R),F.on(`tx-run:${X}`,R);let y=rY($,W,S,G);return F?.on(`ack:${X}`,y),()=>{for(let j of M)j();F?.off(`ack:${X}`,y),F?.off(`get:${X}`,D),F?.off(`tx-run:${X}`,R)}}}var T6=Symbol("Let zodToJsonSchema decide on which parser to use");var eY={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},$6=(T)=>typeof T==="string"?{...eY,name:T}:{...eY,...T};var J6=(T)=>{let $=$6(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([W,F])=>[F._def,{def:F._def,path:[...$.basePath,$.definitionPath,W],jsonSchema:void 0}]))}};function v2(T,$,J,W){if(!W?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function GT(T,$,J,W,F){T[$]=J,v2(T,$,W,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 X={};for(let Y of F)X[Y]=Y;return X},T.getValidEnumValues=(F)=>{let X=T.objectKeys(F).filter((S)=>typeof F[F[S]]!=="number"),Y={};for(let S of X)Y[S]=F[S];return T.objectValues(Y)},T.objectValues=(F)=>{return T.objectKeys(F).map(function(X){return F[X]})},T.objectKeys=typeof Object.keys==="function"?(F)=>Object.keys(F):(F)=>{let X=[];for(let Y in F)if(Object.prototype.hasOwnProperty.call(F,Y))X.push(Y);return X},T.find=(F,X)=>{for(let Y of F)if(X(Y))return Y;return},T.isInteger=typeof Number.isInteger==="function"?(F)=>Number.isInteger(F):(F)=>typeof F==="number"&&isFinite(F)&&Math.floor(F)===F;function W(F,X=" | "){return F.map((Y)=>typeof Y==="string"?`'${Y}'`:Y).join(X)}T.joinValues=W,T.jsonStringifyReplacer=(F,X)=>{if(typeof X==="bigint")return X.toString();return X}})(MT||(MT={}));var h2;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(h2||(h2={}));var c=MT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),UJ=(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"]),aw=(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:[]},W=(F)=>{for(let X of F.issues)if(X.code==="invalid_union")X.unionErrors.map(W);else if(X.code==="invalid_return_type")W(X.returnTypeError);else if(X.code==="invalid_arguments")W(X.argumentsError);else if(X.path.length===0)J._errors.push($(X));else{let Y=J,S=0;while(S<X.path.length){let A=X.path[S];if(S!==X.path.length-1)Y[A]=Y[A]||{_errors:[]};else Y[A]=Y[A]||{_errors:[]},Y[A]._errors.push($(X));Y=Y[A],S++}}};return W(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 W of this.issues)if(W.path.length>0)$[W.path[0]]=$[W.path[0]]||[],$[W.path[0]].push(T(W));else J.push(T(W));return{formErrors:J,fieldErrors:$}}get formErrors(){return this.flatten()}}C$.create=(T)=>{return new C$(T)};var e0=(T,$)=>{let J;switch(T.code){case C.invalid_type:if(T.received===c.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}},Y6=e0;function sw(T){Y6=T}function jF(){return Y6}var ZF=(T)=>{let{data:$,path:J,errorMaps:W,issueData:F}=T,X=[...J,...F.path||[]],Y={...F,path:X};if(F.message!==void 0)return{...F,path:X,message:F.message};let S="",A=W.filter((w)=>!!w).slice().reverse();for(let w of A)S=w(Y,{data:$,defaultError:S}).message;return{...F,path:X,message:S}},ew=[];function v(T,$){let J=jF(),W=ZF({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===e0?void 0:e0].filter((F)=>!!F)});T.common.issues.push(W)}class O${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 W of $){if(W.status==="aborted")return TT;if(W.status==="dirty")T.dirty();J.push(W.value)}return{status:T.value,value:J}}static async mergeObjectAsync(T,$){let J=[];for(let W of $){let F=await W.key,X=await W.value;J.push({key:F,value:X})}return O$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let W of $){let{key:F,value:X}=W;if(F.status==="aborted")return TT;if(X.status==="aborted")return TT;if(F.status==="dirty")T.dirty();if(X.status==="dirty")T.dirty();if(F.value!=="__proto__"&&(typeof X.value!=="undefined"||W.alwaysSet))J[F.value]=X.value}return{status:T.value,value:J}}}var TT=Object.freeze({status:"aborted"}),a0=(T)=>({status:"dirty",value:T}),Q$=(T)=>({status:"valid",value:T}),m2=(T)=>T.status==="aborted",g2=(T)=>T.status==="dirty",S0=(T)=>T.status==="valid",FW=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function qF(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)}function S6(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="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 JW,WW;class r${constructor(T,$,J,W){this._cachedPath=[],this.parent=T,this.data=$,this._path=J,this._key=W}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 W6=(T,$)=>{if(S0($))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:W,description:F}=T;if($&&(J||W))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:(Y,S)=>{var A,w;let{message:G}=T;if(Y.code==="invalid_enum_value")return{message:G!==null&&G!==void 0?G:S.defaultError};if(typeof S.data==="undefined")return{message:(A=G!==null&&G!==void 0?G:W)!==null&&A!==void 0?A:S.defaultError};if(Y.code!=="invalid_type")return{message:S.defaultError};return{message:(w=G!==null&&G!==void 0?G:J)!==null&&w!==void 0?w:S.defaultError}},description:F}}class WT{get description(){return this._def.description}_getType(T){return UJ(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:UJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new O$,ctx:{common:T.parent.common,data:T.data,parsedType:UJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(FW($))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 W={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:UJ(T)},F=this._parseSync({data:T,path:W.path,parent:W});return W6(W,F)}"~validate"(T){var $,J;let W={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:UJ(T)};if(!this["~standard"].async)try{let F=this._parseSync({data:T,path:[],parent:W});return S0(F)?{value:F.value}:{issues:W.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;W.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:W}).then((F)=>S0(F)?{value:F.value}:{issues:W.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:UJ(T)},W=this._parse({data:T,path:J.path,parent:J}),F=await(FW(W)?W:Promise.resolve(W));return W6(J,F)}refine(T,$){let J=(W)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(W);else return $};return this._refinement((W,F)=>{let X=T(W),Y=()=>F.addIssue({code:C.custom,...J(W)});if(typeof Promise!=="undefined"&&X instanceof Promise)return X.then((S)=>{if(!S)return Y(),!1;else return!0});if(!X)return Y(),!1;else return!0})}refinement(T,$){return this._refinement((J,W)=>{if(!T(J))return W.addIssue(typeof $==="function"?$(J,W):$),!1;else return!0})}_refinement(T){return new c$({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 x$.create(this,this._def)}nullable(){return _J.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return l$.create(this)}promise(){return M0.create(this,this._def)}or(T){return W1.create([this,T],this._def)}and(T){return F1.create(this,T,this._def)}transform(T){return new c$({...JT(this._def),schema:this,typeName:x.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new A1({...JT(this._def),innerType:this,defaultValue:$,typeName:x.ZodDefault})}brand(){return new bF({typeName:x.ZodBranded,type:this,...JT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new w1({...JT(this._def),innerType:this,catchValue:$,typeName:x.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return GW.create(this,T)}readonly(){return G1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var TG=/^c[^\s-]{8,}$/i,$G=/^[0-9a-z]+$/,JG=/^[0-9A-HJKMNP-TV-Z]{26}$/i,WG=/^[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,FG=/^[a-z0-9_-]{21}$/i,XG=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,YG=/^[-+]?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)?)??$/,SG=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,AG="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",P2,wG=/^(?:(?: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])$/,GG=/^(?:(?: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])$/,MG=/^(([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]))$/,HG=/^(([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])$/,zG=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,OG=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,A6="((\\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])))",KG=new RegExp(`^${A6}$`);function w6(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 fG(T){return new RegExp(`^${w6(T)}$`)}function G6(T){let $=`${A6}T${w6(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function DG(T,$){if(($==="v4"||!$)&&wG.test(T))return!0;if(($==="v6"||!$)&&MG.test(T))return!0;return!1}function QG(T,$){if(!XG.test(T))return!1;try{let[J]=T.split("."),W=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),F=JSON.parse(atob(W));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 EG(T,$){if(($==="v4"||!$)&&GG.test(T))return!0;if(($==="v6"||!$)&&HG.test(T))return!0;return!1}class t$ extends WT{_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}),TT}let J=new O$,W=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.length<F.value)W=this._getOrReturnCtx(T,W),v(W,{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)W=this._getOrReturnCtx(T,W),v(W,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="length"){let X=T.data.length>F.value,Y=T.data.length<F.value;if(X||Y){if(W=this._getOrReturnCtx(T,W),X)v(W,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});else if(Y)v(W,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});J.dirty()}}else if(F.kind==="email"){if(!SG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"email",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="emoji"){if(!P2)P2=new RegExp(AG,"u");if(!P2.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"emoji",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="uuid"){if(!WG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"uuid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="nanoid"){if(!FG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"nanoid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid"){if(!TG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"cuid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid2"){if(!$G.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"cuid2",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ulid"){if(!JG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"ulid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="url")try{new URL(T.data)}catch(X){W=this._getOrReturnCtx(T,W),v(W,{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))W=this._getOrReturnCtx(T,W),v(W,{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))W=this._getOrReturnCtx(T,W),v(W,{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))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:{startsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="endsWith"){if(!T.data.endsWith(F.value))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:{endsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="datetime"){if(!G6(F).test(T.data))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:"datetime",message:F.message}),J.dirty()}else if(F.kind==="date"){if(!KG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:"date",message:F.message}),J.dirty()}else if(F.kind==="time"){if(!fG(F).test(T.data))W=this._getOrReturnCtx(T,W),v(W,{code:C.invalid_string,validation:"time",message:F.message}),J.dirty()}else if(F.kind==="duration"){if(!YG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"duration",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ip"){if(!DG(T.data,F.version))W=this._getOrReturnCtx(T,W),v(W,{validation:"ip",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="jwt"){if(!QG(T.data,F.alg))W=this._getOrReturnCtx(T,W),v(W,{validation:"jwt",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cidr"){if(!EG(T.data,F.version))W=this._getOrReturnCtx(T,W),v(W,{validation:"cidr",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64"){if(!zG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{validation:"base64",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64url"){if(!OG.test(T.data))W=this._getOrReturnCtx(T,W),v(W,{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((W)=>T.test(W),{validation:$,code:C.invalid_string,...o.errToObj(J)})}_addCheck(T){return new t$({...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 t$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((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}}t$.create=(T)=>{var $;return new t$({checks:[],typeName:x.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};function RG(T,$){let J=(T.toString().split(".")[1]||"").length,W=($.toString().split(".")[1]||"").length,F=J>W?J:W,X=parseInt(T.toFixed(F).replace(".","")),Y=parseInt($.toFixed(F).replace(".",""));return X%Y/Math.pow(10,F)}class gJ extends WT{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}),TT}let J=void 0,W=new O$;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}),W.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}),W.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}),W.dirty()}else if(F.kind==="multipleOf"){if(RG(T.data,F.value)!==0)J=this._getOrReturnCtx(T,J),v(J,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),W.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}),W.dirty()}else MT.assertNever(F);return{status:W.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,W){return new gJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(W)}]})}_addCheck(T){return new gJ({...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)}}gJ.create=(T)=>{return new gJ({checks:[],typeName:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class cJ extends WT{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 J=void 0,W=new O$;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}),W.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}),W.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}),W.dirty()}else MT.assertNever(F);return{status:W.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:c.bigint,received:$.parsedType}),TT}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,W){return new cJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(W)}]})}_addCheck(T){return new cJ({...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}}cJ.create=(T)=>{var $;return new cJ({checks:[],typeName:x.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};class T1 extends WT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==c.boolean){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:c.boolean,received:J.parsedType}),TT}return Q$(T.data)}}T1.create=(T)=>{return new T1({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class A0 extends WT{_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}),TT}if(isNaN(T.data.getTime())){let F=this._getOrReturnCtx(T);return v(F,{code:C.invalid_date}),TT}let J=new O$,W=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.getTime()<F.value)W=this._getOrReturnCtx(T,W),v(W,{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)W=this._getOrReturnCtx(T,W),v(W,{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 A0({...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}}A0.create=(T)=>{return new A0({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:x.ZodDate,...JT(T)})};class XW extends WT{_parse(T){if(this._getType(T)!==c.symbol){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:c.symbol,received:J.parsedType}),TT}return Q$(T.data)}}XW.create=(T)=>{return new XW({typeName:x.ZodSymbol,...JT(T)})};class $1 extends WT{_parse(T){if(this._getType(T)!==c.undefined){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:c.undefined,received:J.parsedType}),TT}return Q$(T.data)}}$1.create=(T)=>{return new $1({typeName:x.ZodUndefined,...JT(T)})};class J1 extends WT{_parse(T){if(this._getType(T)!==c.null){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:c.null,received:J.parsedType}),TT}return Q$(T.data)}}J1.create=(T)=>{return new J1({typeName:x.ZodNull,...JT(T)})};class w0 extends WT{constructor(){super(...arguments);this._any=!0}_parse(T){return Q$(T.data)}}w0.create=(T)=>{return new w0({typeName:x.ZodAny,...JT(T)})};class mJ extends WT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return Q$(T.data)}}mJ.create=(T)=>{return new mJ({typeName:x.ZodUnknown,...JT(T)})};class SJ extends WT{_parse(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:c.never,received:$.parsedType}),TT}}SJ.create=(T)=>{return new SJ({typeName:x.ZodNever,...JT(T)})};class YW extends WT{_parse(T){if(this._getType(T)!==c.undefined){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:c.void,received:J.parsedType}),TT}return Q$(T.data)}}YW.create=(T)=>{return new YW({typeName:x.ZodVoid,...JT(T)})};class l$ extends WT{_parse(T){let{ctx:$,status:J}=this._processInputParams(T),W=this._def;if($.parsedType!==c.array)return v($,{code:C.invalid_type,expected:c.array,received:$.parsedType}),TT;if(W.exactLength!==null){let X=$.data.length>W.exactLength.value,Y=$.data.length<W.exactLength.value;if(X||Y)v($,{code:X?C.too_big:C.too_small,minimum:Y?W.exactLength.value:void 0,maximum:X?W.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:W.exactLength.message}),J.dirty()}if(W.minLength!==null){if($.data.length<W.minLength.value)v($,{code:C.too_small,minimum:W.minLength.value,type:"array",inclusive:!0,exact:!1,message:W.minLength.message}),J.dirty()}if(W.maxLength!==null){if($.data.length>W.maxLength.value)v($,{code:C.too_big,maximum:W.maxLength.value,type:"array",inclusive:!0,exact:!1,message:W.maxLength.message}),J.dirty()}if($.common.async)return Promise.all([...$.data].map((X,Y)=>{return W.type._parseAsync(new r$($,X,$.path,Y))})).then((X)=>{return O$.mergeArray(J,X)});let F=[...$.data].map((X,Y)=>{return W.type._parseSync(new r$($,X,$.path,Y))});return O$.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:x.ZodArray,...JT($)})};function r0(T){if(T instanceof bT){let $={};for(let J in T.shape){let W=T.shape[J];$[J]=x$.create(r0(W))}return new bT({...T._def,shape:()=>$})}else if(T instanceof l$)return new l$({...T._def,type:r0(T.element)});else if(T instanceof x$)return x$.create(r0(T.unwrap()));else if(T instanceof _J)return _J.create(r0(T.unwrap()));else if(T instanceof AJ)return AJ.create(T.items.map(($)=>r0($)));else return T}class bT extends WT{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 A=this._getOrReturnCtx(T);return v(A,{code:C.invalid_type,expected:c.object,received:A.parsedType}),TT}let{status:J,ctx:W}=this._processInputParams(T),{shape:F,keys:X}=this._getCached(),Y=[];if(!(this._def.catchall instanceof SJ&&this._def.unknownKeys==="strip")){for(let A in W.data)if(!X.includes(A))Y.push(A)}let S=[];for(let A of X){let w=F[A],G=W.data[A];S.push({key:{status:"valid",value:A},value:w._parse(new r$(W,G,W.path,A)),alwaysSet:A in W.data})}if(this._def.catchall instanceof SJ){let A=this._def.unknownKeys;if(A==="passthrough")for(let w of Y)S.push({key:{status:"valid",value:w},value:{status:"valid",value:W.data[w]}});else if(A==="strict"){if(Y.length>0)v(W,{code:C.unrecognized_keys,keys:Y}),J.dirty()}else if(A==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let A=this._def.catchall;for(let w of Y){let G=W.data[w];S.push({key:{status:"valid",value:w},value:A._parse(new r$(W,G,W.path,w)),alwaysSet:w in W.data})}}if(W.common.async)return Promise.resolve().then(async()=>{let A=[];for(let w of S){let G=await w.key,M=await w.value;A.push({key:G,value:M,alwaysSet:w.alwaysSet})}return A}).then((A)=>{return O$.mergeObjectSync(J,A)});else return O$.mergeObjectSync(J,S)}get shape(){return this._def.shape()}strict(T){return o.errToObj,new bT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var W,F,X,Y;let S=(X=(F=(W=this._def).errorMap)===null||F===void 0?void 0:F.call(W,$,J).message)!==null&&X!==void 0?X:J.defaultError;if($.code==="unrecognized_keys")return{message:(Y=o.errToObj(T).message)!==null&&Y!==void 0?Y:S};return{message:S}}}:{}})}strip(){return new bT({...this._def,unknownKeys:"strip"})}passthrough(){return new bT({...this._def,unknownKeys:"passthrough"})}extend(T){return new bT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new bT({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 bT({...this._def,catchall:T})}pick(T){let $={};return MT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new bT({...this._def,shape:()=>$})}omit(T){let $={};return MT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new bT({...this._def,shape:()=>$})}deepPartial(){return r0(this)}partial(T){let $={};return MT.objectKeys(this.shape).forEach((J)=>{let W=this.shape[J];if(T&&!T[J])$[J]=W;else $[J]=W.optional()}),new bT({...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 x$)F=F._def.innerType;$[J]=F}}),new bT({...this._def,shape:()=>$})}keyof(){return M6(MT.objectKeys(this.shape))}}bT.create=(T,$)=>{return new bT({shape:()=>T,unknownKeys:"strip",catchall:SJ.create(),typeName:x.ZodObject,...JT($)})};bT.strictCreate=(T,$)=>{return new bT({shape:()=>T,unknownKeys:"strict",catchall:SJ.create(),typeName:x.ZodObject,...JT($)})};bT.lazycreate=(T,$)=>{return new bT({shape:T,unknownKeys:"strip",catchall:SJ.create(),typeName:x.ZodObject,...JT($)})};class W1 extends WT{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function W(F){for(let Y of F)if(Y.result.status==="valid")return Y.result;for(let Y of F)if(Y.result.status==="dirty")return $.common.issues.push(...Y.ctx.common.issues),Y.result;let X=F.map((Y)=>new C$(Y.ctx.common.issues));return v($,{code:C.invalid_union,unionErrors:X}),TT}if($.common.async)return Promise.all(J.map(async(F)=>{let X={...$,common:{...$.common,issues:[]},parent:null};return{result:await F._parseAsync({data:$.data,path:$.path,parent:X}),ctx:X}})).then(W);else{let F=void 0,X=[];for(let S of J){let A={...$,common:{...$.common,issues:[]},parent:null},w=S._parseSync({data:$.data,path:$.path,parent:A});if(w.status==="valid")return w;else if(w.status==="dirty"&&!F)F={result:w,ctx:A};if(A.common.issues.length)X.push(A.common.issues)}if(F)return $.common.issues.push(...F.ctx.common.issues),F.result;let Y=X.map((S)=>new C$(S));return v($,{code:C.invalid_union,unionErrors:Y}),TT}}get options(){return this._def.options}}W1.create=(T,$)=>{return new W1({options:T,typeName:x.ZodUnion,...JT($)})};var RJ=(T)=>{if(T instanceof X1)return RJ(T.schema);else if(T instanceof c$)return RJ(T.innerType());else if(T instanceof Y1)return[T.value];else if(T instanceof nJ)return T.options;else if(T instanceof S1)return MT.objectValues(T.enum);else if(T instanceof A1)return RJ(T._def.innerType);else if(T instanceof $1)return[void 0];else if(T instanceof J1)return[null];else if(T instanceof x$)return[void 0,...RJ(T.unwrap())];else if(T instanceof _J)return[null,...RJ(T.unwrap())];else if(T instanceof bF)return RJ(T.unwrap());else if(T instanceof G1)return RJ(T.unwrap());else if(T instanceof w1)return RJ(T._def.innerType);else return[]};class IF extends WT{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==c.object)return v($,{code:C.invalid_type,expected:c.object,received:$.parsedType}),TT;let J=this.discriminator,W=$.data[J],F=this.optionsMap.get(W);if(!F)return v($,{code:C.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),TT;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 W=new Map;for(let F of $){let X=RJ(F.shape[T]);if(!X.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let Y of X){if(W.has(Y))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(Y)}`);W.set(Y,F)}}return new IF({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:W,...JT(J)})}}function c2(T,$){let J=UJ(T),W=UJ($);if(T===$)return{valid:!0,data:T};else if(J===c.object&&W===c.object){let F=MT.objectKeys($),X=MT.objectKeys(T).filter((S)=>F.indexOf(S)!==-1),Y={...T,...$};for(let S of X){let A=c2(T[S],$[S]);if(!A.valid)return{valid:!1};Y[S]=A.data}return{valid:!0,data:Y}}else if(J===c.array&&W===c.array){if(T.length!==$.length)return{valid:!1};let F=[];for(let X=0;X<T.length;X++){let Y=T[X],S=$[X],A=c2(Y,S);if(!A.valid)return{valid:!1};F.push(A.data)}return{valid:!0,data:F}}else if(J===c.date&&W===c.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class F1 extends WT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=(F,X)=>{if(m2(F)||m2(X))return TT;let Y=c2(F.value,X.value);if(!Y.valid)return v(J,{code:C.invalid_intersection_types}),TT;if(g2(F)||g2(X))$.dirty();return{status:$.value,value:Y.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,X])=>W(F,X));else return W(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}F1.create=(T,$,J)=>{return new F1({left:T,right:$,typeName:x.ZodIntersection,...JT(J)})};class AJ extends WT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==c.array)return v(J,{code:C.invalid_type,expected:c.array,received:J.parsedType}),TT;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"}),TT;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((X,Y)=>{let S=this._def.items[Y]||this._def.rest;if(!S)return null;return S._parse(new r$(J,X,J.path,Y))}).filter((X)=>!!X);if(J.common.async)return Promise.all(F).then((X)=>{return O$.mergeArray($,X)});else return O$.mergeArray($,F)}get items(){return this._def.items}rest(T){return new AJ({...this._def,rest:T})}}AJ.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new AJ({items:T,typeName:x.ZodTuple,rest:null,...JT($)})};class SW extends WT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==c.object)return v(J,{code:C.invalid_type,expected:c.object,received:J.parsedType}),TT;let W=[],F=this._def.keyType,X=this._def.valueType;for(let Y in J.data)W.push({key:F._parse(new r$(J,Y,J.path,Y)),value:X._parse(new r$(J,J.data[Y],J.path,Y)),alwaysSet:Y in J.data});if(J.common.async)return O$.mergeObjectAsync($,W);else return O$.mergeObjectSync($,W)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof WT)return new SW({keyType:T,valueType:$,typeName:x.ZodRecord,...JT(J)});return new SW({keyType:t$.create(),valueType:T,typeName:x.ZodRecord,...JT($)})}}class AW extends WT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==c.map)return v(J,{code:C.invalid_type,expected:c.map,received:J.parsedType}),TT;let W=this._def.keyType,F=this._def.valueType,X=[...J.data.entries()].map(([Y,S],A)=>{return{key:W._parse(new r$(J,Y,J.path,[A,"key"])),value:F._parse(new r$(J,S,J.path,[A,"value"]))}});if(J.common.async){let Y=new Map;return Promise.resolve().then(async()=>{for(let S of X){let A=await S.key,w=await S.value;if(A.status==="aborted"||w.status==="aborted")return TT;if(A.status==="dirty"||w.status==="dirty")$.dirty();Y.set(A.value,w.value)}return{status:$.value,value:Y}})}else{let Y=new Map;for(let S of X){let{key:A,value:w}=S;if(A.status==="aborted"||w.status==="aborted")return TT;if(A.status==="dirty"||w.status==="dirty")$.dirty();Y.set(A.value,w.value)}return{status:$.value,value:Y}}}}AW.create=(T,$,J)=>{return new AW({valueType:$,keyType:T,typeName:x.ZodMap,...JT(J)})};class G0 extends WT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==c.set)return v(J,{code:C.invalid_type,expected:c.set,received:J.parsedType}),TT;let W=this._def;if(W.minSize!==null){if(J.data.size<W.minSize.value)v(J,{code:C.too_small,minimum:W.minSize.value,type:"set",inclusive:!0,exact:!1,message:W.minSize.message}),$.dirty()}if(W.maxSize!==null){if(J.data.size>W.maxSize.value)v(J,{code:C.too_big,maximum:W.maxSize.value,type:"set",inclusive:!0,exact:!1,message:W.maxSize.message}),$.dirty()}let F=this._def.valueType;function X(S){let A=new Set;for(let w of S){if(w.status==="aborted")return TT;if(w.status==="dirty")$.dirty();A.add(w.value)}return{status:$.value,value:A}}let Y=[...J.data.values()].map((S,A)=>F._parse(new r$(J,S,J.path,A)));if(J.common.async)return Promise.all(Y).then((S)=>X(S));else return X(Y)}min(T,$){return new G0({...this._def,minSize:{value:T,message:o.toString($)}})}max(T,$){return new G0({...this._def,maxSize:{value:T,message:o.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}G0.create=(T,$)=>{return new G0({valueType:T,minSize:null,maxSize:null,typeName:x.ZodSet,...JT($)})};class s0 extends WT{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}),TT;function J(Y,S){return ZF({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,jF(),e0].filter((A)=>!!A),issueData:{code:C.invalid_arguments,argumentsError:S}})}function W(Y,S){return ZF({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,jF(),e0].filter((A)=>!!A),issueData:{code:C.invalid_return_type,returnTypeError:S}})}let F={errorMap:$.common.contextualErrorMap},X=$.data;if(this._def.returns instanceof M0){let Y=this;return Q$(async function(...S){let A=new C$([]),w=await Y._def.args.parseAsync(S,F).catch((H)=>{throw A.addIssue(J(S,H)),A}),G=await Reflect.apply(X,this,w);return await Y._def.returns._def.type.parseAsync(G,F).catch((H)=>{throw A.addIssue(W(G,H)),A})})}else{let Y=this;return Q$(function(...S){let A=Y._def.args.safeParse(S,F);if(!A.success)throw new C$([J(S,A.error)]);let w=Reflect.apply(X,this,A.data),G=Y._def.returns.safeParse(w,F);if(!G.success)throw new C$([W(w,G.error)]);return G.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new s0({...this._def,args:AJ.create(T).rest(mJ.create())})}returns(T){return new s0({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new s0({args:T?T:AJ.create([]).rest(mJ.create()),returns:$||mJ.create(),typeName:x.ZodFunction,...JT(J)})}}class X1 extends WT{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}X1.create=(T,$)=>{return new X1({getter:T,typeName:x.ZodLazy,...JT($)})};class Y1 extends WT{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return v($,{received:$.data,code:C.invalid_literal,expected:this._def.value}),TT}return{status:"valid",value:T.data}}get value(){return this._def.value}}Y1.create=(T,$)=>{return new Y1({value:T,typeName:x.ZodLiteral,...JT($)})};function M6(T,$){return new nJ({values:T,typeName:x.ZodEnum,...JT($)})}class nJ extends WT{constructor(){super(...arguments);JW.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}),TT}if(!qF(this,JW,"f"))S6(this,JW,new Set(this._def.values),"f");if(!qF(this,JW,"f").has(T.data)){let $=this._getOrReturnCtx(T),J=this._def.values;return v($,{received:$.data,code:C.invalid_enum_value,options:J}),TT}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,...$})}}JW=new WeakMap;nJ.create=M6;class S1 extends WT{constructor(){super(...arguments);WW.set(this,void 0)}_parse(T){let $=MT.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(T);if(J.parsedType!==c.string&&J.parsedType!==c.number){let W=MT.objectValues($);return v(J,{expected:MT.joinValues(W),received:J.parsedType,code:C.invalid_type}),TT}if(!qF(this,WW,"f"))S6(this,WW,new Set(MT.getValidEnumValues(this._def.values)),"f");if(!qF(this,WW,"f").has(T.data)){let W=MT.objectValues($);return v(J,{received:J.data,code:C.invalid_enum_value,options:W}),TT}return Q$(T.data)}get enum(){return this._def.values}}WW=new WeakMap;S1.create=(T,$)=>{return new S1({values:T,typeName:x.ZodNativeEnum,...JT($)})};class M0 extends WT{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}),TT;let J=$.parsedType===c.promise?$.data:Promise.resolve($.data);return Q$(J.then((W)=>{return this._def.type.parseAsync(W,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}M0.create=(T,$)=>{return new M0({type:T,typeName:x.ZodPromise,...JT($)})};class c$ extends WT{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:J}=this._processInputParams(T),W=this._def.effect||null,F={addIssue:(X)=>{if(v(J,X),X.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(F.addIssue=F.addIssue.bind(F),W.type==="preprocess"){let X=W.transform(J.data,F);if(J.common.async)return Promise.resolve(X).then(async(Y)=>{if($.value==="aborted")return TT;let S=await this._def.schema._parseAsync({data:Y,path:J.path,parent:J});if(S.status==="aborted")return TT;if(S.status==="dirty")return a0(S.value);if($.value==="dirty")return a0(S.value);return S});else{if($.value==="aborted")return TT;let Y=this._def.schema._parseSync({data:X,path:J.path,parent:J});if(Y.status==="aborted")return TT;if(Y.status==="dirty")return a0(Y.value);if($.value==="dirty")return a0(Y.value);return Y}}if(W.type==="refinement"){let X=(Y)=>{let S=W.refinement(Y,F);if(J.common.async)return Promise.resolve(S);if(S instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Y};if(J.common.async===!1){let Y=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(Y.status==="aborted")return TT;if(Y.status==="dirty")$.dirty();return X(Y.value),{status:$.value,value:Y.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((Y)=>{if(Y.status==="aborted")return TT;if(Y.status==="dirty")$.dirty();return X(Y.value).then(()=>{return{status:$.value,value:Y.value}})})}if(W.type==="transform")if(J.common.async===!1){let X=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!S0(X))return X;let Y=W.transform(X.value,F);if(Y instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:Y}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((X)=>{if(!S0(X))return X;return Promise.resolve(W.transform(X.value,F)).then((Y)=>({status:$.value,value:Y}))});MT.assertNever(W)}}c$.create=(T,$,J)=>{return new c$({schema:T,typeName:x.ZodEffects,effect:$,...JT(J)})};c$.createWithPreprocess=(T,$,J)=>{return new c$({schema:$,effect:{type:"preprocess",transform:T},typeName:x.ZodEffects,...JT(J)})};class x$ extends WT{_parse(T){if(this._getType(T)===c.undefined)return Q$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}x$.create=(T,$)=>{return new x$({innerType:T,typeName:x.ZodOptional,...JT($)})};class _J extends WT{_parse(T){if(this._getType(T)===c.null)return Q$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}_J.create=(T,$)=>{return new _J({innerType:T,typeName:x.ZodNullable,...JT($)})};class A1 extends WT{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;if($.parsedType===c.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}A1.create=(T,$)=>{return new A1({innerType:T,typeName:x.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...JT($)})};class w1 extends WT{_parse(T){let{ctx:$}=this._processInputParams(T),J={...$,common:{...$.common,issues:[]}},W=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(FW(W))return W.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:W.status==="valid"?W.value:this._def.catchValue({get error(){return new C$(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}w1.create=(T,$)=>{return new w1({innerType:T,typeName:x.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...JT($)})};class wW extends WT{_parse(T){if(this._getType(T)!==c.nan){let J=this._getOrReturnCtx(T);return v(J,{code:C.invalid_type,expected:c.nan,received:J.parsedType}),TT}return{status:"valid",value:T.data}}}wW.create=(T)=>{return new wW({typeName:x.ZodNaN,...JT(T)})};var UG=Symbol("zod_brand");class bF extends WT{_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 GW extends WT{_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 TT;if(F.status==="dirty")return $.dirty(),a0(F.value);else return this._def.out._parseAsync({data:F.value,path:J.path,parent:J})})();else{let W=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(W.status==="aborted")return TT;if(W.status==="dirty")return $.dirty(),{status:"dirty",value:W.value};else return this._def.out._parseSync({data:W.value,path:J.path,parent:J})}}static create(T,$){return new GW({in:T,out:$,typeName:x.ZodPipeline})}}class G1 extends WT{_parse(T){let $=this._def.innerType._parse(T),J=(W)=>{if(S0(W))W.value=Object.freeze(W.value);return W};return FW($)?$.then((W)=>J(W)):J($)}unwrap(){return this._def.innerType}}G1.create=(T,$)=>{return new G1({innerType:T,typeName:x.ZodReadonly,...JT($)})};function F6(T,$){let J=typeof T==="function"?T($):typeof T==="string"?{message:T}:T;return typeof J==="string"?{message:J}:J}function H6(T,$={},J){if(T)return w0.create().superRefine((W,F)=>{var X,Y;let S=T(W);if(S instanceof Promise)return S.then((A)=>{var w,G;if(!A){let M=F6($,W),H=(G=(w=M.fatal)!==null&&w!==void 0?w:J)!==null&&G!==void 0?G:!0;F.addIssue({code:"custom",...M,fatal:H})}});if(!S){let A=F6($,W),w=(Y=(X=A.fatal)!==null&&X!==void 0?X:J)!==null&&Y!==void 0?Y:!0;F.addIssue({code:"custom",...A,fatal:w})}return});return w0.create()}var _G={object:bT.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 kG=(T,$={message:`Input not instance of ${T.name}`})=>H6((J)=>J instanceof T,$),z6=t$.create,O6=gJ.create,VG=wW.create,BG=cJ.create,K6=T1.create,LG=A0.create,yG=XW.create,NG=$1.create,CG=J1.create,xG=w0.create,jG=mJ.create,ZG=SJ.create,qG=YW.create,IG=l$.create,bG=bT.create,vG=bT.strictCreate,PG=W1.create,hG=IF.create,mG=F1.create,gG=AJ.create,cG=SW.create,nG=AW.create,pG=G0.create,oG=s0.create,dG=X1.create,uG=Y1.create,iG=nJ.create,tG=S1.create,lG=M0.create,X6=c$.create,rG=x$.create,aG=_J.create,sG=c$.createWithPreprocess,eG=GW.create,TM=()=>z6().optional(),$M=()=>O6().optional(),JM=()=>K6().optional(),WM={string:(T)=>t$.create({...T,coerce:!0}),number:(T)=>gJ.create({...T,coerce:!0}),boolean:(T)=>T1.create({...T,coerce:!0}),bigint:(T)=>cJ.create({...T,coerce:!0}),date:(T)=>A0.create({...T,coerce:!0})},FM=TT,_T=Object.freeze({__proto__:null,defaultErrorMap:e0,setErrorMap:sw,getErrorMap:jF,makeIssue:ZF,EMPTY_PATH:ew,addIssueToContext:v,ParseStatus:O$,INVALID:TT,DIRTY:a0,OK:Q$,isAborted:m2,isDirty:g2,isValid:S0,isAsync:FW,get util(){return MT},get objectUtil(){return h2},ZodParsedType:c,getParsedType:UJ,ZodType:WT,datetimeRegex:G6,ZodString:t$,ZodNumber:gJ,ZodBigInt:cJ,ZodBoolean:T1,ZodDate:A0,ZodSymbol:XW,ZodUndefined:$1,ZodNull:J1,ZodAny:w0,ZodUnknown:mJ,ZodNever:SJ,ZodVoid:YW,ZodArray:l$,ZodObject:bT,ZodUnion:W1,ZodDiscriminatedUnion:IF,ZodIntersection:F1,ZodTuple:AJ,ZodRecord:SW,ZodMap:AW,ZodSet:G0,ZodFunction:s0,ZodLazy:X1,ZodLiteral:Y1,ZodEnum:nJ,ZodNativeEnum:S1,ZodPromise:M0,ZodEffects:c$,ZodTransformer:c$,ZodOptional:x$,ZodNullable:_J,ZodDefault:A1,ZodCatch:w1,ZodNaN:wW,BRAND:UG,ZodBranded:bF,ZodPipeline:GW,ZodReadonly:G1,custom:H6,Schema:WT,ZodSchema:WT,late:_G,get ZodFirstPartyTypeKind(){return x},coerce:WM,any:xG,array:IG,bigint:BG,boolean:K6,date:LG,discriminatedUnion:hG,effect:X6,enum:iG,function:oG,instanceof:kG,intersection:mG,lazy:dG,literal:uG,map:nG,nan:VG,nativeEnum:tG,never:ZG,null:CG,nullable:aG,number:O6,object:bG,oboolean:JM,onumber:$M,optional:rG,ostring:TM,pipeline:eG,preprocess:sG,promise:lG,record:cG,set:pG,strictObject:vG,string:z6,symbol:yG,transformer:X6,tuple:gG,undefined:NG,union:PG,unknown:jG,void:qG,NEVER:FM,ZodIssueCode:C,quotelessJson:aw,ZodError:C$});function f6(){return{}}function D6(T,$){let J={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==x.ZodAny)J.items=s(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)GT(J,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)GT(J,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)GT(J,"minItems",T.exactLength.value,T.exactLength.message,$),GT(J,"maxItems",T.exactLength.value,T.exactLength.message,$);return J}function Q6(T,$){let J={type:"integer",format:"int64"};if(!T.checks)return J;for(let W of T.checks)switch(W.kind){case"min":if($.target==="jsonSchema7")if(W.inclusive)GT(J,"minimum",W.value,W.message,$);else GT(J,"exclusiveMinimum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMinimum=!0;GT(J,"minimum",W.value,W.message,$)}break;case"max":if($.target==="jsonSchema7")if(W.inclusive)GT(J,"maximum",W.value,W.message,$);else GT(J,"exclusiveMaximum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMaximum=!0;GT(J,"maximum",W.value,W.message,$)}break;case"multipleOf":GT(J,"multipleOf",W.value,W.message,$);break}return J}function E6(){return{type:"boolean"}}function vF(T,$){return s(T.type._def,$)}var R6=(T,$)=>{return s(T.innerType._def,$)};function n2(T,$,J){let W=J??$.dateStrategy;if(Array.isArray(W))return{anyOf:W.map((F,X)=>n2(T,$,F))};switch(W){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return XM(T,$)}}var XM=(T,$)=>{let J={type:"integer",format:"unix-time"};if($.target==="openApi3")return J;for(let W of T.checks)switch(W.kind){case"min":GT(J,"minimum",W.value,W.message,$);break;case"max":GT(J,"maximum",W.value,W.message,$);break}return J};function U6(T,$){return{...s(T.innerType._def,$),default:T.defaultValue()}}function _6(T,$){return $.effectStrategy==="input"?s(T.schema._def,$):{}}function k6(T){return{type:"string",enum:Array.from(T.values)}}var YM=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function V6(T,$){let J=[s(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),s(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((X)=>!!X),W=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,F=[];return J.forEach((X)=>{if(YM(X)){if(F.push(...X.allOf),X.unevaluatedProperties===void 0)W=void 0}else{let Y=X;if("additionalProperties"in X&&X.additionalProperties===!1){let{additionalProperties:S,...A}=X;Y=A}else W=void 0;F.push(Y)}}),F.length?{allOf:F,...W}:void 0}function B6(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 p2=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(p2===void 0)p2=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return p2},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 PF(T,$){let J={type:"string"};if(T.checks)for(let W of T.checks)switch(W.kind){case"min":GT(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$);break;case"max":GT(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"email":switch($.emailStrategy){case"format:email":s$(J,"email",W.message,$);break;case"format:idn-email":s$(J,"idn-email",W.message,$);break;case"pattern:zod":E$(J,a$.email,W.message,$);break}break;case"url":s$(J,"uri",W.message,$);break;case"uuid":s$(J,"uuid",W.message,$);break;case"regex":E$(J,W.regex,W.message,$);break;case"cuid":E$(J,a$.cuid,W.message,$);break;case"cuid2":E$(J,a$.cuid2,W.message,$);break;case"startsWith":E$(J,RegExp(`^${o2(W.value,$)}`),W.message,$);break;case"endsWith":E$(J,RegExp(`${o2(W.value,$)}$`),W.message,$);break;case"datetime":s$(J,"date-time",W.message,$);break;case"date":s$(J,"date",W.message,$);break;case"time":s$(J,"time",W.message,$);break;case"duration":s$(J,"duration",W.message,$);break;case"length":GT(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$),GT(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"includes":{E$(J,RegExp(o2(W.value,$)),W.message,$);break}case"ip":{if(W.version!=="v6")s$(J,"ipv4",W.message,$);if(W.version!=="v4")s$(J,"ipv6",W.message,$);break}case"base64url":E$(J,a$.base64url,W.message,$);break;case"jwt":E$(J,a$.jwt,W.message,$);break;case"cidr":{if(W.version!=="v6")E$(J,a$.ipv4Cidr,W.message,$);if(W.version!=="v4")E$(J,a$.ipv6Cidr,W.message,$);break}case"emoji":E$(J,a$.emoji(),W.message,$);break;case"ulid":{E$(J,a$.ulid,W.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{s$(J,"binary",W.message,$);break}case"contentEncoding:base64":{GT(J,"contentEncoding","base64",W.message,$);break}case"pattern:zod":{E$(J,a$.base64,W.message,$);break}}break}case"nanoid":E$(J,a$.nanoid,W.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((F)=>{})(W)}return J}function o2(T,$){return $.patternStrategy==="escape"?AM(T):T}var SM=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function AM(T){let $="";for(let J=0;J<T.length;J++){if(!SM.has(T[J]))$+="\\";$+=T[J]}return $}function s$(T,$,J,W){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&&W.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&&W.errorMessages&&{errorMessage:{format:J}}})}else GT(T,"format",$,J,W)}function E$(T,$,J,W){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&&W.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:L6($,W),...J&&W.errorMessages&&{errorMessage:{pattern:J}}})}else GT(T,"pattern",L6($,W),J,W)}function L6(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")},W=J.i?T.source.toLowerCase():T.source,F="",X=!1,Y=!1,S=!1;for(let A=0;A<W.length;A++){if(X){F+=W[A],X=!1;continue}if(J.i){if(Y){if(W[A].match(/[a-z]/)){if(S)F+=W[A],F+=`${W[A-2]}-${W[A]}`.toUpperCase(),S=!1;else if(W[A+1]==="-"&&W[A+2]?.match(/[a-z]/))F+=W[A],S=!0;else F+=`${W[A]}${W[A].toUpperCase()}`;continue}}else if(W[A].match(/[a-z]/)){F+=`[${W[A]}${W[A].toUpperCase()}]`;continue}}if(J.m){if(W[A]==="^"){F+=`(^|(?<=[\r
17
17
  ]))`;continue}else if(W[A]==="$"){F+=`($|(?=[\r
18
- ]))`;continue}}if(J.s&&W[A]==="."){F+=S?`${W[A]}\r
18
+ ]))`;continue}}if(J.s&&W[A]==="."){F+=Y?`${W[A]}\r
19
19
  `:`[${W[A]}\r
20
- ]`;continue}if(F+=W[A],W[A]==="\\")X=!0;else if(S&&W[A]==="]")S=!1;else if(!S&&W[A]==="[")S=!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 hF(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((W,F)=>({...W,[F]:s(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",F]})??{}}),{}),additionalProperties:$.rejectedAdditionalProperties};let J={type:"object",additionalProperties:s(T.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??$.allowedAdditionalProperties};if($.target==="openApi3")return J;if(T.keyType?._def.typeName===x.ZodString&&T.keyType._def.checks?.length){let{type:W,...F}=PF(T.keyType._def,$);return{...J,propertyNames:F}}else if(T.keyType?._def.typeName===x.ZodEnum)return{...J,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:W,...F}=vF(T.keyType._def,$);return{...J,propertyNames:F}}return J}function VY(T,$){if($.mapStrategy==="record")return hF(T,$);let J=s(T.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},W=s(T.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[J,W],minItems:2,maxItems:2}}}function BY(T){let $=T.values,W=Object.keys(T.values).filter((X)=>{return typeof $[$[X]]!=="number"}).map((X)=>$[X]),F=Array.from(new Set(W.map((X)=>typeof X)));return{type:F.length===1?F[0]==="string"?"string":"number":["string","number"],enum:W}}function LY(){return{not:{}}}function yY(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var HW={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function CY(T,$){if($.target==="openApi3")return NY(T,$);let J=T.options instanceof Map?Array.from(T.options.values()):T.options;if(J.every((W)=>(W._def.typeName in HW)&&(!W._def.checks||!W._def.checks.length))){let W=J.reduce((F,X)=>{let S=HW[X._def.typeName];return S&&!F.includes(S)?[...F,S]:F},[]);return{type:W.length>1?W:W[0]}}else if(J.every((W)=>W._def.typeName==="ZodLiteral"&&!W.description)){let W=J.reduce((F,X)=>{let S=typeof X._def.value;switch(S){case"string":case"number":case"boolean":return[...F,S];case"bigint":return[...F,"integer"];case"object":if(X._def.value===null)return[...F,"null"];case"symbol":case"undefined":case"function":default:return F}},[]);if(W.length===J.length){let F=W.filter((X,S,Y)=>Y.indexOf(X)===S);return{type:F.length>1?F:F[0],enum:J.reduce((X,S)=>{return X.includes(S._def.value)?X:[...X,S._def.value]},[])}}}else if(J.every((W)=>W._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((W,F)=>[...W,...F._def.values.filter((X)=>!W.includes(X))],[])};return NY(T,$)}var NY=(T,$)=>{let J=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((W,F)=>s(W._def,{...$,currentPath:[...$.currentPath,"anyOf",`${F}`]})).filter((W)=>!!W&&(!$.strictUnions||typeof W==="object"&&Object.keys(W).length>0));return J.length?{anyOf:J}:void 0};function xY(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:HW[T.innerType._def.typeName],nullable:!0};return{type:[HW[T.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let W=s(T.innerType._def,{...$,currentPath:[...$.currentPath]});if(W&&"$ref"in W)return{allOf:[W],nullable:!0};return W&&{...W,nullable:!0}}let J=s(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function jY(T,$){let J={type:"number"};if(!T.checks)return J;for(let W of T.checks)switch(W.kind){case"int":J.type="integer",v2(J,"type",W.message,$);break;case"min":if($.target==="jsonSchema7")if(W.inclusive)GT(J,"minimum",W.value,W.message,$);else GT(J,"exclusiveMinimum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMinimum=!0;GT(J,"minimum",W.value,W.message,$)}break;case"max":if($.target==="jsonSchema7")if(W.inclusive)GT(J,"maximum",W.value,W.message,$);else GT(J,"exclusiveMaximum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMaximum=!0;GT(J,"maximum",W.value,W.message,$)}break;case"multipleOf":GT(J,"multipleOf",W.value,W.message,$);break}return J}function ZY(T,$){let J=$.target==="openAi",W={type:"object",properties:{}},F=[],X=T.shape();for(let Y in X){let A=X[Y];if(A===void 0||A._def===void 0)continue;let w=JM(A);if(w&&J){if(A instanceof x$)A=A._def.innerType;if(!A.isNullable())A=A.nullable();w=!1}let G=s(A._def,{...$,currentPath:[...$.currentPath,"properties",Y],propertyPath:[...$.currentPath,"properties",Y]});if(G===void 0)continue;if(W.properties[Y]=G,!w)F.push(Y)}if(F.length)W.required=F;let S=$M(T,$);if(S!==void 0)W.additionalProperties=S;return W}function $M(T,$){if(T.catchall._def.typeName!=="ZodNever")return s(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]});switch(T.unknownKeys){case"passthrough":return $.allowedAdditionalProperties;case"strict":return $.rejectedAdditionalProperties;case"strip":return $.removeAdditionalStrategy==="strict"?$.allowedAdditionalProperties:$.rejectedAdditionalProperties}}function JM(T){try{return T.isOptional()}catch{return!0}}var qY=(T,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return s(T.innerType._def,$);let J=s(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return J?{anyOf:[{not:{}},J]}:{}};var IY=(T,$)=>{if($.pipeStrategy==="input")return s(T.in._def,$);else if($.pipeStrategy==="output")return s(T.out._def,$);let J=s(T.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),W=s(T.out._def,{...$,currentPath:[...$.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,W].filter((F)=>F!==void 0)}};function bY(T,$){return s(T.type._def,$)}function vY(T,$){let W={type:"array",uniqueItems:!0,items:s(T.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(T.minSize)GT(W,"minItems",T.minSize.value,T.minSize.message,$);if(T.maxSize)GT(W,"maxItems",T.maxSize.value,T.maxSize.message,$);return W}function PY(T,$){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map((J,W)=>s(J._def,{...$,currentPath:[...$.currentPath,"items",`${W}`]})).reduce((J,W)=>W===void 0?J:[...J,W],[]),additionalItems:s(T.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map((J,W)=>s(J._def,{...$,currentPath:[...$.currentPath,"items",`${W}`]})).reduce((J,W)=>W===void 0?J:[...J,W],[])}}function hY(){return{not:{}}}function mY(){return{}}var gY=(T,$)=>{return s(T.innerType._def,$)};var cY=(T,$,J)=>{switch($){case x.ZodString:return PF(T,J);case x.ZodNumber:return jY(T,J);case x.ZodObject:return ZY(T,J);case x.ZodBigInt:return fY(T,J);case x.ZodBoolean:return KY();case x.ZodDate:return n2(T,J);case x.ZodUndefined:return hY();case x.ZodNull:return yY(J);case x.ZodArray:return zY(T,J);case x.ZodUnion:case x.ZodDiscriminatedUnion:return CY(T,J);case x.ZodIntersection:return UY(T,J);case x.ZodTuple:return PY(T,J);case x.ZodRecord:return hF(T,J);case x.ZodLiteral:return _Y(T,J);case x.ZodEnum:return RY(T);case x.ZodNativeEnum:return BY(T);case x.ZodNullable:return xY(T,J);case x.ZodOptional:return qY(T,J);case x.ZodMap:return VY(T,J);case x.ZodSet:return vY(T,J);case x.ZodLazy:return()=>T.getter()._def;case x.ZodPromise:return bY(T,J);case x.ZodNaN:case x.ZodNever:return LY();case x.ZodEffects:return EY(T,J);case x.ZodAny:return OY();case x.ZodUnknown:return mY();case x.ZodDefault:return QY(T,J);case x.ZodBranded:return vF(T,J);case x.ZodReadonly:return gY(T,J);case x.ZodCatch:return DY(T,J);case x.ZodPipeline:return IY(T,J);case x.ZodFunction:case x.ZodVoid:case x.ZodSymbol:return;default:return((W)=>{return})($)}};function s(T,$,J=!1){let W=$.seen.get(T);if($.override){let Y=$.override?.(T,$,W,J);if(Y!==aS)return Y}if(W&&!J){let Y=WM(W,$);if(Y!==void 0)return Y}let F={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,F);let X=cY(T,T.typeName,$),S=typeof X==="function"?s(X(),$):X;if(S)XM(T,$,S);if($.postProcess){let Y=$.postProcess(S,T,$);return F.jsonSchema=S,Y}return F.jsonSchema=S,S}var WM=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:FM($.currentPath,T.path)};case"none":case"seen":{if(T.path.length<$.currentPath.length&&T.path.every((J,W)=>$.currentPath[W]===J))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},FM=(T,$)=>{let J=0;for(;J<T.length&&J<$.length;J++)if(T[J]!==$[J])break;return[(T.length-J).toString(),...$.slice(J)].join("/")},XM=(T,$,J)=>{if(T.description){if(J.description=T.description,$.markdownDescription)J.markdownDescription=T.description}return J};var nY=(T,$)=>{let J=eS($),W=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((A,[w,G])=>({...A,[w]:s(G._def,{...J,currentPath:[...J.basePath,J.definitionPath,w]},!0)??{}}),{}):void 0,F=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,X=s(T._def,F===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,F]},!1)??{},S=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(S!==void 0)X.title=S;let Y=F===void 0?W?{...X,[J.definitionPath]:W}:X:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,F].join("/"),[J.definitionPath]:{...W,[F]:X}};if(J.target==="jsonSchema7")Y.$schema="http://json-schema.org/draft-07/schema#";else if(J.target==="jsonSchema2019-09"||J.target==="openAi")Y.$schema="https://json-schema.org/draft/2019-09/schema#";if(J.target==="openAi"&&(("anyOf"in Y)||("oneOf"in Y)||("allOf"in Y)||("type"in Y)&&Array.isArray(Y.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return Y};var pY=nY;function oY(T,$){return function J({schema:W,fallback:F}){let X=pY(W);return async function S(Y,A=3){let w,G=[];while(G.length<A){w=await T(Y,X,F,G);let M=W.safeParse(w);if(M.success)return M.data;$?.warn(`safegen failed to generate well-formed data.
20
+ ]`;continue}if(F+=W[A],W[A]==="\\")X=!0;else if(Y&&W[A]==="]")Y=!1;else if(!Y&&W[A]==="[")Y=!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 hF(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((W,F)=>({...W,[F]:s(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",F]})??{}}),{}),additionalProperties:$.rejectedAdditionalProperties};let J={type:"object",additionalProperties:s(T.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??$.allowedAdditionalProperties};if($.target==="openApi3")return J;if(T.keyType?._def.typeName===x.ZodString&&T.keyType._def.checks?.length){let{type:W,...F}=PF(T.keyType._def,$);return{...J,propertyNames:F}}else if(T.keyType?._def.typeName===x.ZodEnum)return{...J,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:W,...F}=vF(T.keyType._def,$);return{...J,propertyNames:F}}return J}function y6(T,$){if($.mapStrategy==="record")return hF(T,$);let J=s(T.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},W=s(T.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[J,W],minItems:2,maxItems:2}}}function N6(T){let $=T.values,W=Object.keys(T.values).filter((X)=>{return typeof $[$[X]]!=="number"}).map((X)=>$[X]),F=Array.from(new Set(W.map((X)=>typeof X)));return{type:F.length===1?F[0]==="string"?"string":"number":["string","number"],enum:W}}function C6(){return{not:{}}}function x6(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var MW={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function Z6(T,$){if($.target==="openApi3")return j6(T,$);let J=T.options instanceof Map?Array.from(T.options.values()):T.options;if(J.every((W)=>(W._def.typeName in MW)&&(!W._def.checks||!W._def.checks.length))){let W=J.reduce((F,X)=>{let Y=MW[X._def.typeName];return Y&&!F.includes(Y)?[...F,Y]:F},[]);return{type:W.length>1?W:W[0]}}else if(J.every((W)=>W._def.typeName==="ZodLiteral"&&!W.description)){let W=J.reduce((F,X)=>{let Y=typeof X._def.value;switch(Y){case"string":case"number":case"boolean":return[...F,Y];case"bigint":return[...F,"integer"];case"object":if(X._def.value===null)return[...F,"null"];case"symbol":case"undefined":case"function":default:return F}},[]);if(W.length===J.length){let F=W.filter((X,Y,S)=>S.indexOf(X)===Y);return{type:F.length>1?F:F[0],enum:J.reduce((X,Y)=>{return X.includes(Y._def.value)?X:[...X,Y._def.value]},[])}}}else if(J.every((W)=>W._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((W,F)=>[...W,...F._def.values.filter((X)=>!W.includes(X))],[])};return j6(T,$)}var j6=(T,$)=>{let J=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((W,F)=>s(W._def,{...$,currentPath:[...$.currentPath,"anyOf",`${F}`]})).filter((W)=>!!W&&(!$.strictUnions||typeof W==="object"&&Object.keys(W).length>0));return J.length?{anyOf:J}:void 0};function q6(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:MW[T.innerType._def.typeName],nullable:!0};return{type:[MW[T.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let W=s(T.innerType._def,{...$,currentPath:[...$.currentPath]});if(W&&"$ref"in W)return{allOf:[W],nullable:!0};return W&&{...W,nullable:!0}}let J=s(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function I6(T,$){let J={type:"number"};if(!T.checks)return J;for(let W of T.checks)switch(W.kind){case"int":J.type="integer",v2(J,"type",W.message,$);break;case"min":if($.target==="jsonSchema7")if(W.inclusive)GT(J,"minimum",W.value,W.message,$);else GT(J,"exclusiveMinimum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMinimum=!0;GT(J,"minimum",W.value,W.message,$)}break;case"max":if($.target==="jsonSchema7")if(W.inclusive)GT(J,"maximum",W.value,W.message,$);else GT(J,"exclusiveMaximum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMaximum=!0;GT(J,"maximum",W.value,W.message,$)}break;case"multipleOf":GT(J,"multipleOf",W.value,W.message,$);break}return J}function b6(T,$){let J=$.target==="openAi",W={type:"object",properties:{}},F=[],X=T.shape();for(let S in X){let A=X[S];if(A===void 0||A._def===void 0)continue;let w=GM(A);if(w&&J){if(A instanceof x$)A=A._def.innerType;if(!A.isNullable())A=A.nullable();w=!1}let G=s(A._def,{...$,currentPath:[...$.currentPath,"properties",S],propertyPath:[...$.currentPath,"properties",S]});if(G===void 0)continue;if(W.properties[S]=G,!w)F.push(S)}if(F.length)W.required=F;let Y=wM(T,$);if(Y!==void 0)W.additionalProperties=Y;return W}function wM(T,$){if(T.catchall._def.typeName!=="ZodNever")return s(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]});switch(T.unknownKeys){case"passthrough":return $.allowedAdditionalProperties;case"strict":return $.rejectedAdditionalProperties;case"strip":return $.removeAdditionalStrategy==="strict"?$.allowedAdditionalProperties:$.rejectedAdditionalProperties}}function GM(T){try{return T.isOptional()}catch{return!0}}var v6=(T,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return s(T.innerType._def,$);let J=s(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return J?{anyOf:[{not:{}},J]}:{}};var P6=(T,$)=>{if($.pipeStrategy==="input")return s(T.in._def,$);else if($.pipeStrategy==="output")return s(T.out._def,$);let J=s(T.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),W=s(T.out._def,{...$,currentPath:[...$.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,W].filter((F)=>F!==void 0)}};function h6(T,$){return s(T.type._def,$)}function m6(T,$){let W={type:"array",uniqueItems:!0,items:s(T.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(T.minSize)GT(W,"minItems",T.minSize.value,T.minSize.message,$);if(T.maxSize)GT(W,"maxItems",T.maxSize.value,T.maxSize.message,$);return W}function g6(T,$){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map((J,W)=>s(J._def,{...$,currentPath:[...$.currentPath,"items",`${W}`]})).reduce((J,W)=>W===void 0?J:[...J,W],[]),additionalItems:s(T.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map((J,W)=>s(J._def,{...$,currentPath:[...$.currentPath,"items",`${W}`]})).reduce((J,W)=>W===void 0?J:[...J,W],[])}}function c6(){return{not:{}}}function n6(){return{}}var p6=(T,$)=>{return s(T.innerType._def,$)};var o6=(T,$,J)=>{switch($){case x.ZodString:return PF(T,J);case x.ZodNumber:return I6(T,J);case x.ZodObject:return b6(T,J);case x.ZodBigInt:return Q6(T,J);case x.ZodBoolean:return E6();case x.ZodDate:return n2(T,J);case x.ZodUndefined:return c6();case x.ZodNull:return x6(J);case x.ZodArray:return D6(T,J);case x.ZodUnion:case x.ZodDiscriminatedUnion:return Z6(T,J);case x.ZodIntersection:return V6(T,J);case x.ZodTuple:return g6(T,J);case x.ZodRecord:return hF(T,J);case x.ZodLiteral:return B6(T,J);case x.ZodEnum:return k6(T);case x.ZodNativeEnum:return N6(T);case x.ZodNullable:return q6(T,J);case x.ZodOptional:return v6(T,J);case x.ZodMap:return y6(T,J);case x.ZodSet:return m6(T,J);case x.ZodLazy:return()=>T.getter()._def;case x.ZodPromise:return h6(T,J);case x.ZodNaN:case x.ZodNever:return C6();case x.ZodEffects:return _6(T,J);case x.ZodAny:return f6();case x.ZodUnknown:return n6();case x.ZodDefault:return U6(T,J);case x.ZodBranded:return vF(T,J);case x.ZodReadonly:return p6(T,J);case x.ZodCatch:return R6(T,J);case x.ZodPipeline:return P6(T,J);case x.ZodFunction:case x.ZodVoid:case x.ZodSymbol:return;default:return((W)=>{return})($)}};function s(T,$,J=!1){let W=$.seen.get(T);if($.override){let S=$.override?.(T,$,W,J);if(S!==T6)return S}if(W&&!J){let S=MM(W,$);if(S!==void 0)return S}let F={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,F);let X=o6(T,T.typeName,$),Y=typeof X==="function"?s(X(),$):X;if(Y)zM(T,$,Y);if($.postProcess){let S=$.postProcess(Y,T,$);return F.jsonSchema=Y,S}return F.jsonSchema=Y,Y}var MM=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:HM($.currentPath,T.path)};case"none":case"seen":{if(T.path.length<$.currentPath.length&&T.path.every((J,W)=>$.currentPath[W]===J))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},HM=(T,$)=>{let J=0;for(;J<T.length&&J<$.length;J++)if(T[J]!==$[J])break;return[(T.length-J).toString(),...$.slice(J)].join("/")},zM=(T,$,J)=>{if(T.description){if(J.description=T.description,$.markdownDescription)J.markdownDescription=T.description}return J};var d6=(T,$)=>{let J=J6($),W=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((A,[w,G])=>({...A,[w]:s(G._def,{...J,currentPath:[...J.basePath,J.definitionPath,w]},!0)??{}}),{}):void 0,F=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,X=s(T._def,F===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,F]},!1)??{},Y=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(Y!==void 0)X.title=Y;let S=F===void 0?W?{...X,[J.definitionPath]:W}:X:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,F].join("/"),[J.definitionPath]:{...W,[F]:X}};if(J.target==="jsonSchema7")S.$schema="http://json-schema.org/draft-07/schema#";else if(J.target==="jsonSchema2019-09"||J.target==="openAi")S.$schema="https://json-schema.org/draft/2019-09/schema#";if(J.target==="openAi"&&(("anyOf"in S)||("oneOf"in S)||("allOf"in S)||("type"in S)&&Array.isArray(S.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return S};var u6=d6;function i6(T,$){return function J({schema:W,fallback:F}){let X=u6(W);return async function Y(S,A=3){let w,G=[];while(G.length<A){w=await T(S,X,F,G);let M=W.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
22
  `,JSON.stringify(w,null,"\t"),`
23
23
  `,`Here's the error message from zod:
24
- `,M.error.toString()),G.push({response:w,error:M.error})}return $?.error(`safegen was unable to generate well-formed data after ${A} failed attempts.`),F}}}function dY(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
25
- `)}var mF="RFC3986",gF={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},uY="RFC1738";var SM=Array.isArray,wJ=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var d2=1024,iY=(T,$,J,W,F)=>{if(T.length===0)return T;let X=T;if(typeof T==="symbol")X=Symbol.prototype.toString.call(T);else if(typeof T!=="string")X=String(T);if(J==="iso-8859-1")return escape(X).replace(/%u[0-9a-f]{4}/gi,function(Y){return"%26%23"+parseInt(Y.slice(2),16)+"%3B"});let S="";for(let Y=0;Y<X.length;Y+=d2){let A=X.length>=d2?X.slice(Y,Y+d2):X,w=[];for(let G=0;G<A.length;++G){let M=A.charCodeAt(G);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===uY&&(M===40||M===41)){w[w.length]=A.charAt(G);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}G+=1,M=65536+((M&1023)<<10|A.charCodeAt(G)&1023),w[w.length]=wJ[240|M>>18]+wJ[128|M>>12&63]+wJ[128|M>>6&63]+wJ[128|M&63]}S+=w.join("")}return S};function tY(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function u2(T,$){if(SM(T)){let J=[];for(let W=0;W<T.length;W+=1)J.push($(T[W]));return J}return $(T)}var YM=Object.prototype.hasOwnProperty,lY={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},GJ=Array.isArray,AM=Array.prototype.push,rY=function(T,$){AM.apply(T,GJ($)?$:[$])},wM=Date.prototype.toISOString,rT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:iY,encodeValuesOnly:!1,format:mF,formatter:gF[mF],indices:!1,serializeDate(T){return wM.call(T)},skipNulls:!1,strictNullHandling:!1};function GM(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var i2={};function aY(T,$,J,W,F,X,S,Y,A,w,G,M,H,K,D,R,y,j){let L=T,Z=j,E=0,V=!1;while((Z=Z.get(i2))!==void 0&&!V){let U=Z.get(T);if(E+=1,typeof U!=="undefined")if(U===E)throw new RangeError("Cyclic object value");else V=!0;if(typeof Z.get(i2)==="undefined")E=0}if(typeof w==="function")L=w($,L);else if(L instanceof Date)L=H?.(L);else if(J==="comma"&&GJ(L))L=u2(L,function(U){if(U instanceof Date)return H?.(U);return U});if(L===null){if(X)return A&&!R?A($,rT.encoder,y,"key",K):$;L=""}if(GM(L)||tY(L)){if(A){let U=R?$:A($,rT.encoder,y,"key",K);return[D?.(U)+"="+D?.(A(L,rT.encoder,y,"value",K))]}return[D?.($)+"="+D?.(String(L))]}let B=[];if(typeof L==="undefined")return B;let k;if(J==="comma"&&GJ(L)){if(R&&A)L=u2(L,A);k=[{value:L.length>0?L.join(",")||null:void 0}]}else if(GJ(w))k=w;else{let U=Object.keys(L);k=G?U.sort(G):U}let b=Y?String($).replace(/\./g,"%2E"):String($),r=W&&GJ(L)&&L.length===1?b+"[]":b;if(F&&GJ(L)&&L.length===0)return r+"[]";for(let U=0;U<k.length;++U){let e=k[U],p=typeof e==="object"&&typeof e.value!=="undefined"?e.value:L[e];if(S&&p===null)continue;let $T=M&&Y?e.replace(/\./g,"%2E"):e,DT=GJ(L)?typeof J==="function"?J(r,$T):r:r+(M?"."+$T:"["+$T+"]");j.set(T,E);let PT=new WeakMap;PT.set(i2,j),rY(B,aY(p,DT,J,W,F,X,S,Y,J==="comma"&&R&&GJ(L)?null:A,w,G,M,H,K,D,R,y,PT))}return B}function MM(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=mF;if(typeof T.format!=="undefined"){if(!YM.call(gF,T.format))throw new TypeError("Unknown format option provided.");J=T.format}let W=gF[J],F=rT.filter;if(typeof T.filter==="function"||GJ(T.filter))F=T.filter;let X;if(T.arrayFormat&&T.arrayFormat in lY)X=T.arrayFormat;else if("indices"in T)X=T.indices?"indices":"repeat";else X=rT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let S=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:rT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:rT.addQueryPrefix,allowDots:S,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:rT.allowEmptyArrays,arrayFormat:X,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:W,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 t2(T,$={}){let J=T,W=MM($),F,X;if(typeof W.filter==="function")X=W.filter,J=X("",J);else if(GJ(W.filter))X=W.filter,F=X;let S=[];if(typeof J!=="object"||J===null)return"";let Y=lY[W.arrayFormat],A=Y==="comma"&&W.commaRoundTrip;if(!F)F=Object.keys(J);if(W.sort)F.sort(W.sort);let w=new WeakMap;for(let H=0;H<F.length;++H){let K=F[H];if(W.skipNulls&&J[K]===null)continue;rY(S,aY(J[K],K,Y,A,W.allowEmptyArrays,W.strictNullHandling,W.skipNulls,W.encodeDotInKeys,W.encode?W.encoder:null,W.filter,W.sort,W.allowDots,W.serializeDate,W.format,W.formatter,W.encodeValuesOnly,W.charset,w))}let G=S.join(W.delimiter),M=W.addQueryPrefix===!0?"?":"";if(W.charsetSentinel)if(W.charset==="iso-8859-1")M+="utf8=%26%2310003%3B&";else M+="utf8=%E2%9C%93&";return G.length>0?M+G:""}var M0="4.87.3";var sY=!1,H0=void 0,l2=void 0,OM=void 0,zM=void 0,fM=void 0,r2=void 0,KM=void 0,cF=void 0,a2=void 0,s2=void 0,e2=void 0,nF=void 0,T8=void 0;function eY(T,$={auto:!1}){if(sY)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(H0)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${H0}'\``);sY=$.auto,H0=T.kind,l2=T.fetch,OM=T.Request,zM=T.Response,fM=T.Headers,r2=T.FormData,KM=T.Blob,cF=T.File,a2=T.ReadableStream,s2=T.getMultipartRequestOptions,e2=T.getDefaultAgent,nF=T.fileFromPath,T8=T.isFsReadStream}class $8{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function T6({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,W,F,X;try{J=fetch,W=Request,F=Response,X=Headers}catch(S){throw new Error(`this environment is missing the following Web Fetch API type: ${S.message}. ${$}`)}return{kind:"web",fetch:J,Request:W,Response:F,Headers:X,FormData:typeof FormData!=="undefined"?FormData:class S{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class S{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class S{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class S{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(S,Y)=>({...Y,body:new $8(S)}),getDefaultAgent:(S)=>{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:(S)=>!1}}import{ReadStream as QM}from"fs";function $6(){let T=T6();function $(J){return J instanceof QM}return{...T,isFsReadStream:$}}if(!H0)eY($6(),{auto:!0});class d extends Error{}class nT extends d{constructor(T,$,J,W){super(`${nT.makeMessage(T,$,J)}`);this.status=T,this.headers=W,this.request_id=W?.["x-request-id"],this.error=$;let F=$;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(T,$,J){let W=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):J;if(T&&W)return`${T} ${W}`;if(T)return`${T} status code (no body)`;if(W)return W;return"(no status code or body)"}static generate(T,$,J,W){if(!T||!W)return new O0({message:J,cause:aF($)});let F=$?.error;if(T===400)return new pF(T,F,J,W);if(T===401)return new oF(T,F,J,W);if(T===403)return new dF(T,F,J,W);if(T===404)return new uF(T,F,J,W);if(T===409)return new iF(T,F,J,W);if(T===422)return new tF(T,F,J,W);if(T===429)return new lF(T,F,J,W);if(T>=500)return new rF(T,F,J,W);return new nT(T,F,J,W)}}class aT extends nT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class O0 extends nT{constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class z0 extends O0{constructor({message:T}={}){super({message:T??"Request timed out."})}}class pF extends nT{}class oF extends nT{}class dF extends nT{}class uF extends nT{}class iF extends nT{}class tF extends nT{}class lF extends nT{}class rF extends nT{}class OW extends d{constructor(){super("Could not parse response content as the length limit was reached")}}class zW extends d{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}var sF=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},f0=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},j$;class w1{constructor(){j$.set(this,void 0),this.buffer=new Uint8Array,sF(this,j$,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 W=[],F;while((F=RM(this.buffer,f0(this,j$,"f")))!=null){if(F.carriage&&f0(this,j$,"f")==null){sF(this,j$,F.index,"f");continue}if(f0(this,j$,"f")!=null&&(F.index!==f0(this,j$,"f")+1||F.carriage)){W.push(this.decodeText(this.buffer.slice(0,f0(this,j$,"f")-1))),this.buffer=this.buffer.slice(f0(this,j$,"f")),sF(this,j$,null,"f");continue}let X=f0(this,j$,"f")!==null?F.preceding-1:F.preceding,S=this.decodeText(this.buffer.slice(0,X));W.push(S),this.buffer=this.buffer.slice(F.index),sF(this,j$,null,"f")}return W}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 d(`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 d(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new d("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
26
- `)}}j$=new WeakMap;w1.NEWLINE_CHARS=new Set([`
27
- `,"\r"]);w1.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function RM(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 J6(T){for(let W=0;W<T.length-1;W++){if(T[W]===10&&T[W+1]===10)return W+2;if(T[W]===13&&T[W+1]===13)return W+2;if(T[W]===13&&T[W+1]===10&&W+3<T.length&&T[W+2]===13&&T[W+3]===10)return W+4}return-1}function J8(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 Z${constructor(T,$){this.iterator=T,this.controller=$}static fromSSEResponse(T,$){let J=!1;async function*W(){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 X of UM(T,$)){if(F)continue;if(X.data.startsWith("[DONE]")){F=!0;continue}if(X.event===null||X.event.startsWith("response.")){let S;try{S=JSON.parse(X.data)}catch(Y){throw console.error("Could not parse message into JSON:",X.data),console.error("From chunk:",X.raw),Y}if(S&&S.error)throw new nT(void 0,S.error,void 0,void 0);yield S}else{let S;try{S=JSON.parse(X.data)}catch(Y){throw console.error("Could not parse message into JSON:",X.data),console.error("From chunk:",X.raw),Y}if(X.event=="error")throw new nT(void 0,S.error,S.message,void 0);yield{event:X.event,data:S}}}F=!0}catch(X){if(X instanceof Error&&X.name==="AbortError")return;throw X}finally{if(!F)$.abort()}}return new Z$(W,$)}static fromReadableStream(T,$){let J=!1;async function*W(){let X=new w1,S=J8(T);for await(let Y of S)for(let A of X.decode(Y))yield A;for(let Y of X.flush())yield Y}async function*F(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let X=!1;try{for await(let S of W()){if(X)continue;if(S)yield JSON.parse(S)}X=!0}catch(S){if(S instanceof Error&&S.name==="AbortError")return;throw S}finally{if(!X)$.abort()}}return new Z$(F,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],J=this.iterator(),W=(F)=>{return{next:()=>{if(F.length===0){let X=J.next();T.push(X),$.push(X)}return F.shift()}}};return[new Z$(()=>W(T),this.controller),new Z$(()=>W($),this.controller)]}toReadableStream(){let T=this,$,J=new TextEncoder;return new a2({async start(){$=T[Symbol.asyncIterator]()},async pull(W){try{let{value:F,done:X}=await $.next();if(X)return W.close();let S=J.encode(JSON.stringify(F)+`
28
- `);W.enqueue(S)}catch(F){W.error(F)}},async cancel(){await $.return?.()}})}}async function*UM(T,$){if(!T.body)throw $.abort(),new d("Attempted to iterate over a response with no body");let J=new W6,W=new w1,F=J8(T.body);for await(let X of _M(F))for(let S of W.decode(X)){let Y=J.decode(S);if(Y)yield Y}for(let X of W.flush()){let S=J.decode(X);if(S)yield S}}async function*_M(T){let $=new Uint8Array;for await(let J of T){if(J==null)continue;let W=J instanceof ArrayBuffer?new Uint8Array(J):typeof J==="string"?new TextEncoder().encode(J):J,F=new Uint8Array($.length+W.length);F.set($),F.set(W,$.length),$=F;let X;while((X=J6($))!==-1)yield $.slice(0,X),$=$.slice(X)}if($.length>0)yield $}class W6{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,W]=kM(T,":");if(W.startsWith(" "))W=W.substring(1);if($==="event")this.event=W;else if($==="data")this.data.push(W);return null}}function kM(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}var F6=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",X6=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&fW(T),fW=(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",VM=(T)=>{return X6(T)||F6(T)||T8(T)};async function X8(T,$,J){if(T=await T,X6(T))return T;if(F6(T)){let F=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let X=fW(F)?[await F.arrayBuffer()]:[F];return new cF(X,$,J)}let W=await BM(T);if($||($=yM(T)??"unknown_file"),!J?.type){let F=W[0]?.type;if(typeof F==="string")J={...J,type:F}}return new cF(W,$,J)}async function BM(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(fW(T))$.push(await T.arrayBuffer());else if(NM(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${LM(T)}`);return $}function LM(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function yM(T){return W8(T.name)||W8(T.filename)||W8(T.path)?.split(/[\\/]/).pop()}var W8=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},NM=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",S8=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var n$=async(T)=>{let $=await S6(T.body);return s2($,T)},S6=async(T)=>{let $=new r2;return await Promise.all(Object.entries(T||{}).map(([J,W])=>F8($,J,W))),$};var F8=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(VM(J)){let W=await X8(J);T.append($,W)}else if(Array.isArray(J))await Promise.all(J.map((W)=>F8(T,$+"[]",W)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([W,F])=>F8(T,`${$}[${W}]`,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 xM=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},jM=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},eF;async function H6(T){let{response:$}=T;if(T.options.stream){if(G1("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 W=$.headers.get("content-type")?.split(";")[0]?.trim();if(W?.includes("application/json")||W?.endsWith("+json")){let S=await $.json();return G1("response",$.status,$.url,$.headers,S),O6(S,$)}let X=await $.text();return G1("response",$.status,$.url,$.headers,X),X}function O6(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 $X extends Promise{constructor(T,$=H6){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new $X(this.responsePromise,async($)=>O6(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 A8{constructor({baseURL:T,maxRetries:$=2,timeout:J=600000,httpAgent:W,fetch:F}){this.baseURL=T,this.maxRetries=Y8("maxRetries",$),this.timeout=Y8("timeout",J),this.httpAgent=W,this.fetch=F??l2}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...vM(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${gM()}`}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(W)=>{let F=W&&fW(W?.body)?new DataView(await W.body.arrayBuffer()):W?.body instanceof DataView?W.body:W?.body instanceof ArrayBuffer?new DataView(W.body):W&&ArrayBuffer.isView(W?.body)?new DataView(W.body.buffer):W?.body;return{method:T,path:$,...W,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:W,query:F,headers:X={}}=T,S=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:S8(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,Y=this.calculateContentLength(S),A=this.buildURL(W,F);if("timeout"in T)Y8("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let w=T.httpAgent??this.httpAgent??e2(A),G=T.timeout+1000;if(typeof w?.options?.timeout==="number"&&G>(w.options.timeout??0))w.options.timeout=G;if(this.idempotencyHeader&&J!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();X[this.idempotencyHeader]=T.idempotencyKey}let M=this.buildHeaders({options:T,headers:X,contentLength:Y,retryCount:$});return{req:{method:J,...S&&{body:S},headers:M,...w&&{agent:w},signal:T.signal??null},url:A,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:W}){let F={};if(J)F["content-length"]=J;let X=this.defaultHeaders(T);if(G6(F,X),G6(F,$),S8(T.body)&&H0!=="node")delete F["content-type"];if(TX(X,"x-stainless-retry-count")===void 0&&TX($,"x-stainless-retry-count")===void 0)F["x-stainless-retry-count"]=String(W);if(TX(X,"x-stainless-timeout")===void 0&&TX($,"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,W){return nT.generate(T,$,J,W)}request(T,$=null){return new $X(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,W=J.maxRetries??this.maxRetries;if($==null)$=W;await this.prepareOptions(J);let{req:F,url:X,timeout:S}=this.buildRequest(J,{retryCount:W-$});if(await this.prepareRequest(F,{url:X,options:J}),G1("request",X,J,F.headers),J.signal?.aborted)throw new aT;let Y=new AbortController,A=await this.fetchWithTimeout(X,F,S,Y).catch(aF);if(A instanceof Error){if(J.signal?.aborted)throw new aT;if($)return this.retryRequest(J,$);if(A.name==="AbortError")throw new z0;throw new O0({cause:A})}let w=ZM(A.headers);if(!A.ok){if($&&this.shouldRetry(A)){let R=`retrying, ${$} attempts remaining`;return G1(`response (error; ${R})`,A.status,X,w),this.retryRequest(J,$,w)}let G=await A.text().catch((R)=>aF(R).message),M=PM(G),H=M?void 0:G;throw G1(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,A.status,X,w,H),this.makeStatusError(A.status,M,H,w)}return{response:A,options:J,controller:Y}}requestAPIList(T,$){let J=this.makeRequest($,null);return new z6(this,J,T)}buildURL(T,$){let J=mM(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),W=this.defaultQuery();if(!f6(W))$={...W,...$};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 d(`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,W){let{signal:F,...X}=$||{};if(F)F.addEventListener("abort",()=>W.abort());let S=setTimeout(()=>W.abort(),J),Y={signal:W.signal,...X};if(Y.method)Y.method=Y.method.toUpperCase();return this.fetch.call(void 0,T,Y).finally(()=>{clearTimeout(S)})}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 W,F=J?.["retry-after-ms"];if(F){let S=parseFloat(F);if(!Number.isNaN(S))W=S}let X=J?.["retry-after"];if(X&&!W){let S=parseFloat(X);if(!Number.isNaN(S))W=S*1000;else W=Date.parse(X)-Date.now()}if(!(W&&0<=W&&W<60000)){let S=T.maxRetries??this.maxRetries;W=this.calculateDefaultRetryTimeoutMillis($,S)}return await kJ(W),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let F=$-T,X=Math.min(0.5*Math.pow(2,F),8),S=1-Math.random()*0.25;return X*S*1000}getUserAgent(){return`${this.constructor.name}/JS ${M0}`}}class JX{constructor(T,$,J,W){eF.set(this,void 0),xM(this,eF,T,"f"),this.options=W,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 d("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[W,F]of J)T.url.searchParams.set(W,F);$.query=void 0,$.path=T.url.toString()}return await jM(this,eF,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(eF=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class z6 extends $X{constructor(T,$,J){super($,async(W)=>new J(T,W.response,await H6(W),W.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var ZM=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,J){let W=J.toString();return $[W.toLowerCase()]||$[W]}})},qM={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},HT=(T)=>{return typeof T==="object"&&T!==null&&!f6(T)&&Object.keys(T).every(($)=>K6(qM,$))},IM=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":M0,"X-Stainless-OS":A6(Deno.build.os),"X-Stainless-Arch":Y6(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":M0,"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":M0,"X-Stainless-OS":A6(process.platform),"X-Stainless-Arch":Y6(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=bM();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":M0,"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":M0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function bM(){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 W=J.exec(navigator.userAgent);if(W){let F=W[1]||0,X=W[2]||0,S=W[3]||0;return{browser:$,version:`${F}.${X}.${S}`}}}return null}var Y6=(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"},A6=(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"},w6,vM=()=>{return w6??(w6=IM())},PM=(T)=>{try{return JSON.parse(T)}catch($){return}},hM=/^[a-z][a-z0-9+.-]*:/i,mM=(T)=>{return hM.test(T)},kJ=(T)=>new Promise(($)=>setTimeout($,T)),Y8=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new d(`${T} must be an integer`);if($<0)throw new d(`${T} must be a positive integer`);return $},aF=(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 KW=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function f6(T){if(!T)return!0;for(let $ in T)return!1;return!0}function K6(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function G6(T,$){for(let J in $){if(!K6($,J))continue;let W=J.toLowerCase();if(!W)continue;let F=$[J];if(F===null)delete T[W];else if(F!==void 0)T[W]=F}}var M6=new Set(["authorization","api-key"]);function G1(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let J=$.map((W)=>{if(!W)return W;if(W.headers){let X={...W,headers:{...W.headers}};for(let S in W.headers)if(M6.has(S.toLowerCase()))X.headers[S]="REDACTED";return X}let F=null;for(let X in W)if(M6.has(X.toLowerCase()))F??(F={...W}),F[X]="REDACTED";return F??W});console.log(`OpenAI:DEBUG:${T}`,...J)}}var gM=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},D6=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},cM=(T)=>{return typeof T?.get==="function"};var TX=(T,$)=>{let J=$.toLowerCase();if(cM(T)){let W=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(F,X,S)=>X+S.toUpperCase());for(let F of[$,J,$.toUpperCase(),W]){let X=T.get(F);if(X)return X}}for(let[W,F]of Object.entries(T))if(W.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 DW(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class D0 extends JX{constructor(T,$,J,W){super(T,$,J,W);this.data=J.data||[],this.object=J.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class kT extends JX{constructor(T,$,J,W){super(T,$,J,W);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 QW extends c{list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/chat/completions/${T}/messages`,w8,{query:$,...J})}}class Q0 extends c{constructor(){super(...arguments);this.messages=new QW(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(HT(T))return this.list({},T);return this._client.getAPIList("/chat/completions",E0,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class E0 extends kT{}class w8 extends kT{}Q0.ChatCompletionsPage=E0;Q0.Messages=QW;class nJ extends c{constructor(){super(...arguments);this.completions=new Q0(this._client)}}nJ.Completions=Q0;nJ.ChatCompletionsPage=E0;class EW extends c{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class RW extends c{create(T,$){return this._client.post("/audio/transcriptions",n$({body:T,...$,__metadata:{model:T.model}}))}}class UW extends c{create(T,$){return this._client.post("/audio/translations",n$({body:T,...$,__metadata:{model:T.model}}))}}class VJ extends c{constructor(){super(...arguments);this.transcriptions=new RW(this._client),this.translations=new UW(this._client),this.speech=new EW(this._client)}}VJ.Transcriptions=RW;VJ.Translations=UW;VJ.Speech=EW;class R0 extends c{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(HT(T))return this.list({},T);return this._client.getAPIList("/batches",M1,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class M1 extends kT{}R0.BatchesPage=M1;class H1 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(HT(T))return this.list({},T);return this._client.getAPIList("/assistants",_W,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class _W extends kT{}H1.AssistantsPage=_W;function G8(T){return typeof T.parse==="function"}var pJ=(T)=>{return T?.role==="assistant"},M8=(T)=>{return T?.role==="function"},H8=(T)=>{return T?.role==="tool"};var e$=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},vT=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},O8,WX,FX,kW,VW,XX,BW,BJ,LW,SX,YX,O1,Q6;class U0{constructor(){O8.add(this),this.controller=new AbortController,WX.set(this,void 0),FX.set(this,()=>{}),kW.set(this,()=>{}),VW.set(this,void 0),XX.set(this,()=>{}),BW.set(this,()=>{}),BJ.set(this,{}),LW.set(this,!1),SX.set(this,!1),YX.set(this,!1),O1.set(this,!1),e$(this,WX,new Promise((T,$)=>{e$(this,FX,T,"f"),e$(this,kW,$,"f")}),"f"),e$(this,VW,new Promise((T,$)=>{e$(this,XX,T,"f"),e$(this,BW,$,"f")}),"f"),vT(this,WX,"f").catch(()=>{}),vT(this,VW,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},vT(this,O8,"m",Q6).bind(this))},0)}_connected(){if(this.ended)return;vT(this,FX,"f").call(this),this._emit("connect")}get ended(){return vT(this,LW,"f")}get errored(){return vT(this,SX,"f")}get aborted(){return vT(this,YX,"f")}abort(){this.controller.abort()}on(T,$){return(vT(this,BJ,"f")[T]||(vT(this,BJ,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=vT(this,BJ,"f")[T];if(!J)return this;let W=J.findIndex((F)=>F.listener===$);if(W>=0)J.splice(W,1);return this}once(T,$){return(vT(this,BJ,"f")[T]||(vT(this,BJ,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(e$(this,O1,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){e$(this,O1,!0,"f"),await vT(this,VW,"f")}_emit(T,...$){if(vT(this,LW,"f"))return;if(T==="end")e$(this,LW,!0,"f"),vT(this,XX,"f").call(this);let J=vT(this,BJ,"f")[T];if(J)vT(this,BJ,"f")[T]=J.filter((W)=>!W.once),J.forEach(({listener:W})=>W(...$));if(T==="abort"){let W=$[0];if(!vT(this,O1,"f")&&!J?.length)Promise.reject(W);vT(this,kW,"f").call(this,W),vT(this,BW,"f").call(this,W),this._emit("end");return}if(T==="error"){let W=$[0];if(!vT(this,O1,"f")&&!J?.length)Promise.reject(W);vT(this,kW,"f").call(this,W),vT(this,BW,"f").call(this,W),this._emit("end")}}_emitFinal(){}}WX=new WeakMap,FX=new WeakMap,kW=new WeakMap,VW=new WeakMap,XX=new WeakMap,BW=new WeakMap,BJ=new WeakMap,LW=new WeakMap,SX=new WeakMap,YX=new WeakMap,O1=new WeakMap,O8=new WeakSet,Q6=function T($){if(e$(this,SX,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new aT;if($ instanceof aT)return e$(this,YX,!0,"f"),this._emit("abort",$);if($ instanceof d)return this._emit("error",$);if($ instanceof Error){let J=new d($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new d(String($)))};function yW(T){return T?.$brand==="auto-parseable-response-format"}function _0(T){return T?.$brand==="auto-parseable-tool"}function E6(T,$){if(!$||!z8($))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 NW(T,$)}function NW(T,$){let J=T.choices.map((W)=>{if(W.finish_reason==="length")throw new OW;if(W.finish_reason==="content_filter")throw new zW;return{...W,message:{...W.message,...W.message.tool_calls?{tool_calls:W.message.tool_calls?.map((F)=>lM($,F))??void 0}:void 0,parsed:W.message.content&&!W.message.refusal?tM($,W.message.content):null}}});return{...T,choices:J}}function tM(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 lM(T,$){let J=T.tools?.find((W)=>W.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:_0(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function R6(T,$){if(!T)return!1;let J=T.tools?.find((W)=>W.function?.name===$.function.name);return _0(J)||J?.function.strict||!1}function z8(T){if(yW(T.response_format))return!0;return T.tools?.some(($)=>_0($)||$.type==="function"&&$.function.strict===!0)??!1}function U6(T){for(let $ of T??[]){if($.type!=="function")throw new d(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new d(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var V$=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},f$,f8,AX,K8,D8,Q8,k6,E8,_6=10;class CW extends U0{constructor(){super(...arguments);f$.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),(M8(T)||H8(T))&&T.content)this._emit("functionCallResult",T.content);else if(pJ(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(pJ(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 d("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),V$(this,f$,"m",f8).call(this)}async finalMessage(){return await this.done(),V$(this,f$,"m",AX).call(this)}async finalFunctionCall(){return await this.done(),V$(this,f$,"m",K8).call(this)}async finalFunctionCallResult(){return await this.done(),V$(this,f$,"m",D8).call(this)}async totalUsage(){return await this.done(),V$(this,f$,"m",Q8).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=V$(this,f$,"m",AX).call(this);if($)this._emit("finalMessage",$);let J=V$(this,f$,"m",f8).call(this);if(J)this._emit("finalContent",J);let W=V$(this,f$,"m",K8).call(this);if(W)this._emit("finalFunctionCall",W);let F=V$(this,f$,"m",D8).call(this);if(F!=null)this._emit("finalFunctionCallResult",F);if(this._chatCompletions.some((X)=>X.usage))this._emit("totalUsage",V$(this,f$,"m",Q8).call(this))}async _createChatCompletion(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}V$(this,f$,"m",k6).call(this,$);let F=await T.chat.completions.create({...$,stream:!1},{...J,signal:this.controller.signal});return this._connected(),this._addChatCompletion(NW(F,$))}async _runChatCompletion(T,$,J){for(let W of $.messages)this._addMessage(W,!1);return await this._createChatCompletion(T,$,J)}async _runFunctions(T,$,J){let{function_call:F="auto",stream:X,...S}=$,Y=typeof F!=="string"&&F?.name,{maxChatCompletions:A=_6}=J||{},w={};for(let M of $.functions)w[M.name||M.function.name]=M;let G=$.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<A;++M){let K=(await this._createChatCompletion(T,{...S,function_call:F,functions:G,messages:[...this.messages]},J)).choices[0]?.message;if(!K)throw new d("missing message in ChatCompletion response");if(!K.function_call)return;let{name:D,arguments:R}=K.function_call,y=w[D];if(!y){let E=`Invalid function_call: ${JSON.stringify(D)}. Available options are: ${G.map((V)=>JSON.stringify(V.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:D,content:E});continue}else if(Y&&Y!==D){let E=`Invalid function_call: ${JSON.stringify(D)}. ${JSON.stringify(Y)} requested. Please try again`;this._addMessage({role:"function",name:D,content:E});continue}let j;try{j=G8(y)?await y.parse(R):R}catch(E){this._addMessage({role:"function",name:D,content:E instanceof Error?E.message:String(E)});continue}let L=await y.function(j,this),Z=V$(this,f$,"m",E8).call(this,L);if(this._addMessage({role:"function",name:D,content:Z}),Y)return}}async _runTools(T,$,J){let{tool_choice:F="auto",stream:X,...S}=$,Y=typeof F!=="string"&&F?.function?.name,{maxChatCompletions:A=_6}=J||{},w=$.tools.map((H)=>{if(_0(H)){if(!H.$callback)throw new d("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:H.$callback,name:H.function.name,description:H.function.description||"",parameters:H.function.parameters,parse:H.$parseRaw,strict:!0}}}return H}),G={};for(let H of w)if(H.type==="function")G[H.function.name||H.function.function.name]=H.function;let M="tools"in $?w.map((H)=>H.type==="function"?{type:"function",function:{name:H.function.name||H.function.function.name,parameters:H.function.parameters,description:H.function.description,strict:H.function.strict}}:H):void 0;for(let H of $.messages)this._addMessage(H,!1);for(let H=0;H<A;++H){let D=(await this._createChatCompletion(T,{...S,tool_choice:F,tools:M,messages:[...this.messages]},J)).choices[0]?.message;if(!D)throw new d("missing message in ChatCompletion response");if(!D.tool_calls?.length)return;for(let R of D.tool_calls){if(R.type!=="function")continue;let y=R.id,{name:j,arguments:L}=R.function,Z=G[j];if(!Z){let k=`Invalid tool_call: ${JSON.stringify(j)}. Available options are: ${Object.keys(G).map((b)=>JSON.stringify(b)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:y,content:k});continue}else if(Y&&Y!==j){let k=`Invalid tool_call: ${JSON.stringify(j)}. ${JSON.stringify(Y)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:y,content:k});continue}let E;try{E=G8(Z)?await Z.parse(L):L}catch(k){let b=k instanceof Error?k.message:String(k);this._addMessage({role:"tool",tool_call_id:y,content:b});continue}let V=await Z.function(E,this),B=V$(this,f$,"m",E8).call(this,V);if(this._addMessage({role:"tool",tool_call_id:y,content:B}),Y)return}}return}}f$=new WeakSet,f8=function T(){return V$(this,f$,"m",AX).call(this).content??null},AX=function T(){let $=this.messages.length;while($-- >0){let J=this.messages[$];if(pJ(J)){let{function_call:W,...F}=J,X={...F,content:J.content??null,refusal:J.refusal??null};if(W)X.function_call=W;return X}}throw new d("stream ended without producing a ChatCompletionMessage with role=assistant")},K8=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(pJ(J)&&J?.function_call)return J.function_call;if(pJ(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},D8=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(M8(J)&&J.content!=null)return J.content;if(H8(J)&&J.content!=null&&typeof J.content==="string"&&this.messages.some((W)=>W.role==="assistant"&&W.tool_calls?.some((F)=>F.type==="function"&&F.id===J.tool_call_id)))return J.content}return},Q8=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 $},k6=function T($){if($.n!=null&&$.n>1)throw new d("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},E8=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class z1 extends CW{static runFunctions(T,$,J){let W=new z1,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return W._run(()=>W._runFunctions(T,$,F)),W}static runTools(T,$,J){let W=new z1,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return W._run(()=>W._runTools(T,$,F)),W}_addMessage(T,$=!0){if(super._addMessage(T,$),pJ(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 V6 extends Error{}class B6 extends Error{}function rM(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 aM(T.trim(),$)}var aM=(T,$)=>{let J=T.length,W=0,F=(H)=>{throw new V6(`${H} at position ${W}`)},X=(H)=>{throw new B6(`${H} at position ${W}`)},S=()=>{if(M(),W>=J)F("Unexpected end of input");if(T[W]==='"')return Y();if(T[W]==="{")return A();if(T[W]==="[")return w();if(T.substring(W,W+4)==="null"||J$.NULL&$&&J-W<4&&"null".startsWith(T.substring(W)))return W+=4,null;if(T.substring(W,W+4)==="true"||J$.BOOL&$&&J-W<4&&"true".startsWith(T.substring(W)))return W+=4,!0;if(T.substring(W,W+5)==="false"||J$.BOOL&$&&J-W<5&&"false".startsWith(T.substring(W)))return W+=5,!1;if(T.substring(W,W+8)==="Infinity"||J$.INFINITY&$&&J-W<8&&"Infinity".startsWith(T.substring(W)))return W+=8,1/0;if(T.substring(W,W+9)==="-Infinity"||J$.MINUS_INFINITY&$&&1<J-W&&J-W<9&&"-Infinity".startsWith(T.substring(W)))return W+=9,-1/0;if(T.substring(W,W+3)==="NaN"||J$.NAN&$&&J-W<3&&"NaN".startsWith(T.substring(W)))return W+=3,NaN;return G()},Y=()=>{let H=W,K=!1;W++;while(W<J&&(T[W]!=='"'||K&&T[W-1]==="\\"))K=T[W]==="\\"?!K:!1,W++;if(T.charAt(W)=='"')try{return JSON.parse(T.substring(H,++W-Number(K)))}catch(D){X(String(D))}else if(J$.STR&$)try{return JSON.parse(T.substring(H,W-Number(K))+'"')}catch(D){return JSON.parse(T.substring(H,T.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},A=()=>{W++,M();let H={};try{while(T[W]!=="}"){if(M(),W>=J&&J$.OBJ&$)return H;let K=Y();M(),W++;try{let D=S();Object.defineProperty(H,K,{value:D,writable:!0,enumerable:!0,configurable:!0})}catch(D){if(J$.OBJ&$)return H;else throw D}if(M(),T[W]===",")W++}}catch(K){if(J$.OBJ&$)return H;else F("Expected '}' at end of object")}return W++,H},w=()=>{W++;let H=[];try{while(T[W]!=="]")if(H.push(S()),M(),T[W]===",")W++}catch(K){if(J$.ARR&$)return H;F("Expected ']' at end of array")}return W++,H},G=()=>{if(W===0){if(T==="-"&&J$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T)}catch(K){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){}X(String(K))}}let H=W;if(T[W]==="-")W++;while(T[W]&&!",]}".includes(T[W]))W++;if(W==J&&!(J$.NUM&$))F("Unterminated number literal");try{return JSON.parse(T.substring(H,W))}catch(K){if(T.substring(H,W)==="-"&&J$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T.substring(H,T.lastIndexOf("e")))}catch(D){X(String(D))}}},M=()=>{while(W<J&&`
30
- \r `.includes(T[W]))W++};return S()},R8=(T)=>rM(T,J$.ALL^J$.NUM);var f1=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},RT=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},sT,LJ,K1,oJ,U8,wX,_8,k8,V8,GX,B8,L6;class k0 extends CW{constructor(T){super();sT.add(this),LJ.set(this,void 0),K1.set(this,void 0),oJ.set(this,void 0),f1(this,LJ,T,"f"),f1(this,K1,[],"f")}get currentChatCompletionSnapshot(){return RT(this,oJ,"f")}static fromReadableStream(T){let $=new k0(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,J){let W=new k0($);return W._run(()=>W._runChatCompletion(T,{...$,stream:!0},{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}async _createChatCompletion(T,$,J){super._createChatCompletion;let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}RT(this,sT,"m",U8).call(this);let F=await T.chat.completions.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let X of F)RT(this,sT,"m",_8).call(this,X);if(F.controller.signal?.aborted)throw new aT;return this._addChatCompletion(RT(this,sT,"m",GX).call(this))}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}RT(this,sT,"m",U8).call(this),this._connected();let W=Z$.fromReadableStream(T,this.controller),F;for await(let X of W){if(F&&F!==X.id)this._addChatCompletion(RT(this,sT,"m",GX).call(this));RT(this,sT,"m",_8).call(this,X),F=X.id}if(W.controller.signal?.aborted)throw new aT;return this._addChatCompletion(RT(this,sT,"m",GX).call(this))}[(LJ=new WeakMap,K1=new WeakMap,oJ=new WeakMap,sT=new WeakSet,U8=function T(){if(this.ended)return;f1(this,oJ,void 0,"f")},wX=function T($){let J=RT(this,K1,"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,K1,"f")[$.index]=J,J},_8=function T($){if(this.ended)return;let J=RT(this,sT,"m",L6).call(this,$);this._emit("chunk",$,J);for(let W of $.choices){let F=J.choices[W.index];if(W.delta.content!=null&&F.message?.role==="assistant"&&F.message?.content)this._emit("content",W.delta.content,F.message.content),this._emit("content.delta",{delta:W.delta.content,snapshot:F.message.content,parsed:F.message.parsed});if(W.delta.refusal!=null&&F.message?.role==="assistant"&&F.message?.refusal)this._emit("refusal.delta",{delta:W.delta.refusal,snapshot:F.message.refusal});if(W.logprobs?.content!=null&&F.message?.role==="assistant")this._emit("logprobs.content.delta",{content:W.logprobs?.content,snapshot:F.logprobs?.content??[]});if(W.logprobs?.refusal!=null&&F.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:W.logprobs?.refusal,snapshot:F.logprobs?.refusal??[]});let X=RT(this,sT,"m",wX).call(this,F);if(F.finish_reason){if(RT(this,sT,"m",V8).call(this,F),X.current_tool_call_index!=null)RT(this,sT,"m",k8).call(this,F,X.current_tool_call_index)}for(let S of W.delta.tool_calls??[]){if(X.current_tool_call_index!==S.index){if(RT(this,sT,"m",V8).call(this,F),X.current_tool_call_index!=null)RT(this,sT,"m",k8).call(this,F,X.current_tool_call_index)}X.current_tool_call_index=S.index}for(let S of W.delta.tool_calls??[]){let Y=F.message.tool_calls?.[S.index];if(!Y?.type)continue;if(Y?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:Y.function?.name,index:S.index,arguments:Y.function.arguments,parsed_arguments:Y.function.parsed_arguments,arguments_delta:S.function?.arguments??""});else N6(Y?.type)}}},k8=function T($,J){if(RT(this,sT,"m",wX).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 X=RT(this,LJ,"f")?.tools?.find((S)=>S.type==="function"&&S.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:J,arguments:F.function.arguments,parsed_arguments:_0(X)?X.$parseRaw(F.function.arguments):X?.function.strict?JSON.parse(F.function.arguments):null})}else N6(F.type)},V8=function T($){let J=RT(this,sT,"m",wX).call(this,$);if($.message.content&&!J.content_done){J.content_done=!0;let W=RT(this,sT,"m",B8).call(this);this._emit("content.done",{content:$.message.content,parsed:W?W.$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})},GX=function T(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let $=RT(this,oJ,"f");if(!$)throw new d("request ended without sending any chunks");return f1(this,oJ,void 0,"f"),f1(this,K1,[],"f"),sM($,RT(this,LJ,"f"))},B8=function T(){let $=RT(this,LJ,"f")?.response_format;if(yW($))return $;return null},L6=function T($){var J,W,F,X;let S=RT(this,oJ,"f"),{choices:Y,...A}=$;if(!S)S=f1(this,oJ,{...A,choices:[]},"f");else Object.assign(S,A);for(let{delta:w,finish_reason:G,index:M,logprobs:H=null,...K}of $.choices){let D=S.choices[M];if(!D)D=S.choices[M]={finish_reason:G,index:M,message:{},logprobs:H,...K};if(H)if(!D.logprobs)D.logprobs=Object.assign({},H);else{let{content:V,refusal:B,...k}=H;if(y6(k),Object.assign(D.logprobs,k),V)(J=D.logprobs).content??(J.content=[]),D.logprobs.content.push(...V);if(B)(W=D.logprobs).refusal??(W.refusal=[]),D.logprobs.refusal.push(...B)}if(G){if(D.finish_reason=G,RT(this,LJ,"f")&&z8(RT(this,LJ,"f"))){if(G==="length")throw new OW;if(G==="content_filter")throw new zW}}if(Object.assign(D,K),!w)continue;let{content:R,refusal:y,function_call:j,role:L,tool_calls:Z,...E}=w;if(y6(E),Object.assign(D.message,E),y)D.message.refusal=(D.message.refusal||"")+y;if(L)D.message.role=L;if(j)if(!D.message.function_call)D.message.function_call=j;else{if(j.name)D.message.function_call.name=j.name;if(j.arguments)(F=D.message.function_call).arguments??(F.arguments=""),D.message.function_call.arguments+=j.arguments}if(R){if(D.message.content=(D.message.content||"")+R,!D.message.refusal&&RT(this,sT,"m",B8).call(this))D.message.parsed=R8(D.message.content)}if(Z){if(!D.message.tool_calls)D.message.tool_calls=[];for(let{index:V,id:B,type:k,function:b,...r}of Z){let U=(X=D.message.tool_calls)[V]??(X[V]={});if(Object.assign(U,r),B)U.id=B;if(k)U.type=k;if(b)U.function??(U.function={name:b.name??"",arguments:""});if(b?.name)U.function.name=b.name;if(b?.arguments){if(U.function.arguments+=b.arguments,R6(RT(this,LJ,"f"),U))U.function.parsed_arguments=R8(U.function.arguments)}}}}return S},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("chunk",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).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 sM(T,$){let{id:J,choices:W,created:F,model:X,system_fingerprint:S,...Y}=T,A={...Y,id:J,choices:W.map(({message:w,finish_reason:G,index:M,logprobs:H,...K})=>{if(!G)throw new d(`missing finish_reason for choice ${M}`);let{content:D=null,function_call:R,tool_calls:y,...j}=w,L=w.role;if(!L)throw new d(`missing role for choice ${M}`);if(R){let{arguments:Z,name:E}=R;if(Z==null)throw new d(`missing function_call.arguments for choice ${M}`);if(!E)throw new d(`missing function_call.name for choice ${M}`);return{...K,message:{content:D,function_call:{arguments:Z,name:E},role:L,refusal:w.refusal??null},finish_reason:G,index:M,logprobs:H}}if(y)return{...K,index:M,finish_reason:G,logprobs:H,message:{...j,role:L,content:D,refusal:w.refusal??null,tool_calls:y.map((Z,E)=>{let{function:V,type:B,id:k,...b}=Z,{arguments:r,name:U,...e}=V||{};if(k==null)throw new d(`missing choices[${M}].tool_calls[${E}].id
24
+ `,M.error.toString()),G.push({response:w,error:M.error})}return $?.error(`safegen was unable to generate well-formed data after ${A} failed attempts.`),F}}}function t6(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
25
+ `)}var mF="RFC3986",gF={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},l6="RFC1738";var OM=Array.isArray,wJ=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var d2=1024,r6=(T,$,J,W,F)=>{if(T.length===0)return T;let X=T;if(typeof T==="symbol")X=Symbol.prototype.toString.call(T);else if(typeof T!=="string")X=String(T);if(J==="iso-8859-1")return escape(X).replace(/%u[0-9a-f]{4}/gi,function(S){return"%26%23"+parseInt(S.slice(2),16)+"%3B"});let Y="";for(let S=0;S<X.length;S+=d2){let A=X.length>=d2?X.slice(S,S+d2):X,w=[];for(let G=0;G<A.length;++G){let M=A.charCodeAt(G);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===l6&&(M===40||M===41)){w[w.length]=A.charAt(G);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}G+=1,M=65536+((M&1023)<<10|A.charCodeAt(G)&1023),w[w.length]=wJ[240|M>>18]+wJ[128|M>>12&63]+wJ[128|M>>6&63]+wJ[128|M&63]}Y+=w.join("")}return Y};function a6(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function u2(T,$){if(OM(T)){let J=[];for(let W=0;W<T.length;W+=1)J.push($(T[W]));return J}return $(T)}var KM=Object.prototype.hasOwnProperty,s6={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},GJ=Array.isArray,fM=Array.prototype.push,e6=function(T,$){fM.apply(T,GJ($)?$:[$])},DM=Date.prototype.toISOString,rT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:r6,encodeValuesOnly:!1,format:mF,formatter:gF[mF],indices:!1,serializeDate(T){return DM.call(T)},skipNulls:!1,strictNullHandling:!1};function QM(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var i2={};function TS(T,$,J,W,F,X,Y,S,A,w,G,M,H,f,D,R,y,j){let L=T,Z=j,E=0,V=!1;while((Z=Z.get(i2))!==void 0&&!V){let U=Z.get(T);if(E+=1,typeof U!=="undefined")if(U===E)throw new RangeError("Cyclic object value");else V=!0;if(typeof Z.get(i2)==="undefined")E=0}if(typeof w==="function")L=w($,L);else if(L instanceof Date)L=H?.(L);else if(J==="comma"&&GJ(L))L=u2(L,function(U){if(U instanceof Date)return H?.(U);return U});if(L===null){if(X)return A&&!R?A($,rT.encoder,y,"key",f):$;L=""}if(QM(L)||a6(L)){if(A){let U=R?$:A($,rT.encoder,y,"key",f);return[D?.(U)+"="+D?.(A(L,rT.encoder,y,"value",f))]}return[D?.($)+"="+D?.(String(L))]}let B=[];if(typeof L==="undefined")return B;let k;if(J==="comma"&&GJ(L)){if(R&&A)L=u2(L,A);k=[{value:L.length>0?L.join(",")||null:void 0}]}else if(GJ(w))k=w;else{let U=Object.keys(L);k=G?U.sort(G):U}let b=S?String($).replace(/\./g,"%2E"):String($),r=W&&GJ(L)&&L.length===1?b+"[]":b;if(F&&GJ(L)&&L.length===0)return r+"[]";for(let U=0;U<k.length;++U){let e=k[U],p=typeof e==="object"&&typeof e.value!=="undefined"?e.value:L[e];if(Y&&p===null)continue;let $T=M&&S?e.replace(/\./g,"%2E"):e,DT=GJ(L)?typeof J==="function"?J(r,$T):r:r+(M?"."+$T:"["+$T+"]");j.set(T,E);let PT=new WeakMap;PT.set(i2,j),e6(B,TS(p,DT,J,W,F,X,Y,S,J==="comma"&&R&&GJ(L)?null:A,w,G,M,H,f,D,R,y,PT))}return B}function EM(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=mF;if(typeof T.format!=="undefined"){if(!KM.call(gF,T.format))throw new TypeError("Unknown format option provided.");J=T.format}let W=gF[J],F=rT.filter;if(typeof T.filter==="function"||GJ(T.filter))F=T.filter;let X;if(T.arrayFormat&&T.arrayFormat in s6)X=T.arrayFormat;else if("indices"in T)X=T.indices?"indices":"repeat";else X=rT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let Y=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:rT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:rT.addQueryPrefix,allowDots:Y,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:rT.allowEmptyArrays,arrayFormat:X,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:W,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 t2(T,$={}){let J=T,W=EM($),F,X;if(typeof W.filter==="function")X=W.filter,J=X("",J);else if(GJ(W.filter))X=W.filter,F=X;let Y=[];if(typeof J!=="object"||J===null)return"";let S=s6[W.arrayFormat],A=S==="comma"&&W.commaRoundTrip;if(!F)F=Object.keys(J);if(W.sort)F.sort(W.sort);let w=new WeakMap;for(let H=0;H<F.length;++H){let f=F[H];if(W.skipNulls&&J[f]===null)continue;e6(Y,TS(J[f],f,S,A,W.allowEmptyArrays,W.strictNullHandling,W.skipNulls,W.encodeDotInKeys,W.encode?W.encoder:null,W.filter,W.sort,W.allowDots,W.serializeDate,W.format,W.formatter,W.encodeValuesOnly,W.charset,w))}let G=Y.join(W.delimiter),M=W.addQueryPrefix===!0?"?":"";if(W.charsetSentinel)if(W.charset==="iso-8859-1")M+="utf8=%26%2310003%3B&";else M+="utf8=%E2%9C%93&";return G.length>0?M+G:""}var H0="4.91.0";var $S=!1,z0=void 0,l2=void 0,UM=void 0,_M=void 0,kM=void 0,r2=void 0,VM=void 0,cF=void 0,a2=void 0,s2=void 0,e2=void 0,nF=void 0,T8=void 0;function JS(T,$={auto:!1}){if($S)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(z0)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${z0}'\``);$S=$.auto,z0=T.kind,l2=T.fetch,UM=T.Request,_M=T.Response,kM=T.Headers,r2=T.FormData,VM=T.Blob,cF=T.File,a2=T.ReadableStream,s2=T.getMultipartRequestOptions,e2=T.getDefaultAgent,nF=T.fileFromPath,T8=T.isFsReadStream}class $8{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function WS({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,W,F,X;try{J=fetch,W=Request,F=Response,X=Headers}catch(Y){throw new Error(`this environment is missing the following Web Fetch API type: ${Y.message}. ${$}`)}return{kind:"web",fetch:J,Request:W,Response:F,Headers:X,FormData:typeof FormData!=="undefined"?FormData:class Y{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class Y{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class Y{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class Y{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(Y,S)=>({...S,body:new $8(Y)}),getDefaultAgent:(Y)=>{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:(Y)=>!1}}import{ReadStream as LM}from"node:fs";function FS(){let T=WS();function $(J){return J instanceof LM}return{...T,isFsReadStream:$}}var J8=()=>{if(!z0)JS(FS(),{auto:!0})};J8();class d extends Error{}class nT extends d{constructor(T,$,J,W){super(`${nT.makeMessage(T,$,J)}`);this.status=T,this.headers=W,this.request_id=W?.["x-request-id"],this.error=$;let F=$;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(T,$,J){let W=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):J;if(T&&W)return`${T} ${W}`;if(T)return`${T} status code (no body)`;if(W)return W;return"(no status code or body)"}static generate(T,$,J,W){if(!T||!W)return new O0({message:J,cause:aF($)});let F=$?.error;if(T===400)return new pF(T,F,J,W);if(T===401)return new oF(T,F,J,W);if(T===403)return new dF(T,F,J,W);if(T===404)return new uF(T,F,J,W);if(T===409)return new iF(T,F,J,W);if(T===422)return new tF(T,F,J,W);if(T===429)return new lF(T,F,J,W);if(T>=500)return new rF(T,F,J,W);return new nT(T,F,J,W)}}class aT extends nT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class O0 extends nT{constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class K0 extends O0{constructor({message:T}={}){super({message:T??"Request timed out."})}}class pF extends nT{}class oF extends nT{}class dF extends nT{}class uF extends nT{}class iF extends nT{}class tF extends nT{}class lF extends nT{}class rF extends nT{}class HW extends d{constructor(){super("Could not parse response content as the length limit was reached")}}class zW extends d{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}var sF=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},f0=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},j$;class M1{constructor(){j$.set(this,void 0),this.buffer=new Uint8Array,sF(this,j$,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 W=[],F;while((F=NM(this.buffer,f0(this,j$,"f")))!=null){if(F.carriage&&f0(this,j$,"f")==null){sF(this,j$,F.index,"f");continue}if(f0(this,j$,"f")!=null&&(F.index!==f0(this,j$,"f")+1||F.carriage)){W.push(this.decodeText(this.buffer.slice(0,f0(this,j$,"f")-1))),this.buffer=this.buffer.slice(f0(this,j$,"f")),sF(this,j$,null,"f");continue}let X=f0(this,j$,"f")!==null?F.preceding-1:F.preceding,Y=this.decodeText(this.buffer.slice(0,X));W.push(Y),this.buffer=this.buffer.slice(F.index),sF(this,j$,null,"f")}return W}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 d(`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 d(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new d("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
26
+ `)}}j$=new WeakMap;M1.NEWLINE_CHARS=new Set([`
27
+ `,"\r"]);M1.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function NM(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 XS(T){for(let W=0;W<T.length-1;W++){if(T[W]===10&&T[W+1]===10)return W+2;if(T[W]===13&&T[W+1]===13)return W+2;if(T[W]===13&&T[W+1]===10&&W+3<T.length&&T[W+2]===13&&T[W+3]===10)return W+4}return-1}function W8(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 Z${constructor(T,$){this.iterator=T,this.controller=$}static fromSSEResponse(T,$){let J=!1;async function*W(){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 X of CM(T,$)){if(F)continue;if(X.data.startsWith("[DONE]")){F=!0;continue}if(X.event===null||X.event.startsWith("response.")||X.event.startsWith("transcript.")){let Y;try{Y=JSON.parse(X.data)}catch(S){throw console.error("Could not parse message into JSON:",X.data),console.error("From chunk:",X.raw),S}if(Y&&Y.error)throw new nT(void 0,Y.error,void 0,F8(T.headers));yield Y}else{let Y;try{Y=JSON.parse(X.data)}catch(S){throw console.error("Could not parse message into JSON:",X.data),console.error("From chunk:",X.raw),S}if(X.event=="error")throw new nT(void 0,Y.error,Y.message,void 0);yield{event:X.event,data:Y}}}F=!0}catch(X){if(X instanceof Error&&X.name==="AbortError")return;throw X}finally{if(!F)$.abort()}}return new Z$(W,$)}static fromReadableStream(T,$){let J=!1;async function*W(){let X=new M1,Y=W8(T);for await(let S of Y)for(let A of X.decode(S))yield A;for(let S of X.flush())yield S}async function*F(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let X=!1;try{for await(let Y of W()){if(X)continue;if(Y)yield JSON.parse(Y)}X=!0}catch(Y){if(Y instanceof Error&&Y.name==="AbortError")return;throw Y}finally{if(!X)$.abort()}}return new Z$(F,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],J=this.iterator(),W=(F)=>{return{next:()=>{if(F.length===0){let X=J.next();T.push(X),$.push(X)}return F.shift()}}};return[new Z$(()=>W(T),this.controller),new Z$(()=>W($),this.controller)]}toReadableStream(){let T=this,$,J=new TextEncoder;return new a2({async start(){$=T[Symbol.asyncIterator]()},async pull(W){try{let{value:F,done:X}=await $.next();if(X)return W.close();let Y=J.encode(JSON.stringify(F)+`
28
+ `);W.enqueue(Y)}catch(F){W.error(F)}},async cancel(){await $.return?.()}})}}async function*CM(T,$){if(!T.body)throw $.abort(),new d("Attempted to iterate over a response with no body");let J=new YS,W=new M1,F=W8(T.body);for await(let X of xM(F))for(let Y of W.decode(X)){let S=J.decode(Y);if(S)yield S}for(let X of W.flush()){let Y=J.decode(X);if(Y)yield Y}}async function*xM(T){let $=new Uint8Array;for await(let J of T){if(J==null)continue;let W=J instanceof ArrayBuffer?new Uint8Array(J):typeof J==="string"?new TextEncoder().encode(J):J,F=new Uint8Array($.length+W.length);F.set($),F.set(W,$.length),$=F;let X;while((X=XS($))!==-1)yield $.slice(0,X),$=$.slice(X)}if($.length>0)yield $}class YS{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,W]=jM(T,":");if(W.startsWith(" "))W=W.substring(1);if($==="event")this.event=W;else if($==="data")this.data.push(W);return null}}function jM(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}var SS=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",AS=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&OW(T),OW=(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",ZM=(T)=>{return AS(T)||SS(T)||T8(T)};async function S8(T,$,J){if(T=await T,AS(T))return T;if(SS(T)){let F=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let X=OW(F)?[await F.arrayBuffer()]:[F];return new cF(X,$,J)}let W=await qM(T);if($||($=bM(T)??"unknown_file"),!J?.type){let F=W[0]?.type;if(typeof F==="string")J={...J,type:F}}return new cF(W,$,J)}async function qM(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(OW(T))$.push(await T.arrayBuffer());else if(vM(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${IM(T)}`);return $}function IM(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function bM(T){return X8(T.name)||X8(T.filename)||X8(T.path)?.split(/[\\/]/).pop()}var X8=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},vM=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",A8=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var n$=async(T)=>{let $=await wS(T.body);return s2($,T)},wS=async(T)=>{let $=new r2;return await Promise.all(Object.entries(T||{}).map(([J,W])=>Y8($,J,W))),$};var Y8=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(ZM(J)){let W=await S8(J);T.append($,W)}else if(Array.isArray(J))await Promise.all(J.map((W)=>Y8(T,$+"[]",W)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([W,F])=>Y8(T,`${$}[${W}]`,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 hM=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},mM=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},eF;J8();async function KS(T){let{response:$}=T;if(T.options.stream){if(kJ("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 W=$.headers.get("content-type")?.split(";")[0]?.trim();if(W?.includes("application/json")||W?.endsWith("+json")){let Y=await $.json();return kJ("response",$.status,$.url,$.headers,Y),fS(Y,$)}let X=await $.text();return kJ("response",$.status,$.url,$.headers,X),X}function fS(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 $X extends Promise{constructor(T,$=KS){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new $X(this.responsePromise,async($)=>fS(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 G8{constructor({baseURL:T,maxRetries:$=2,timeout:J=600000,httpAgent:W,fetch:F}){this.baseURL=T,this.maxRetries=w8("maxRetries",$),this.timeout=w8("timeout",J),this.httpAgent=W,this.fetch=F??l2}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...pM(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${iM()}`}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(W)=>{let F=W&&OW(W?.body)?new DataView(await W.body.arrayBuffer()):W?.body instanceof DataView?W.body:W?.body instanceof ArrayBuffer?new DataView(W.body):W&&ArrayBuffer.isView(W?.body)?new DataView(W.body.buffer):W?.body;return{method:T,path:$,...W,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:W,query:F,headers:X={}}=T,Y=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:A8(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,S=this.calculateContentLength(Y),A=this.buildURL(W,F);if("timeout"in T)w8("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let w=T.httpAgent??this.httpAgent??e2(A),G=T.timeout+1000;if(typeof w?.options?.timeout==="number"&&G>(w.options.timeout??0))w.options.timeout=G;if(this.idempotencyHeader&&J!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();X[this.idempotencyHeader]=T.idempotencyKey}let M=this.buildHeaders({options:T,headers:X,contentLength:S,retryCount:$});return{req:{method:J,...Y&&{body:Y},headers:M,...w&&{agent:w},signal:T.signal??null},url:A,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:W}){let F={};if(J)F["content-length"]=J;let X=this.defaultHeaders(T);if(zS(F,X),zS(F,$),A8(T.body)&&z0!=="node")delete F["content-type"];if(TX(X,"x-stainless-retry-count")===void 0&&TX($,"x-stainless-retry-count")===void 0)F["x-stainless-retry-count"]=String(W);if(TX(X,"x-stainless-timeout")===void 0&&TX($,"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,W){return nT.generate(T,$,J,W)}request(T,$=null){return new $X(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,W=J.maxRetries??this.maxRetries;if($==null)$=W;await this.prepareOptions(J);let{req:F,url:X,timeout:Y}=this.buildRequest(J,{retryCount:W-$});if(await this.prepareRequest(F,{url:X,options:J}),kJ("request",X,J,F.headers),J.signal?.aborted)throw new aT;let S=new AbortController,A=await this.fetchWithTimeout(X,F,Y,S).catch(aF);if(A instanceof Error){if(J.signal?.aborted)throw new aT;if($)return this.retryRequest(J,$);if(A.name==="AbortError")throw new K0;throw new O0({cause:A})}let w=F8(A.headers);if(!A.ok){if($&&this.shouldRetry(A)){let R=`retrying, ${$} attempts remaining`;return kJ(`response (error; ${R})`,A.status,X,w),this.retryRequest(J,$,w)}let G=await A.text().catch((R)=>aF(R).message),M=oM(G),H=M?void 0:G;throw kJ(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,A.status,X,w,H),this.makeStatusError(A.status,M,H,w)}return{response:A,options:J,controller:S}}requestAPIList(T,$){let J=this.makeRequest($,null);return new DS(this,J,T)}buildURL(T,$){let J=uM(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),W=this.defaultQuery();if(!QS(W))$={...W,...$};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 d(`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,W){let{signal:F,...X}=$||{};if(F)F.addEventListener("abort",()=>W.abort());let Y=setTimeout(()=>W.abort(),J),S={signal:W.signal,...X};if(S.method)S.method=S.method.toUpperCase();return this.fetch.call(void 0,T,S).finally(()=>{clearTimeout(Y)})}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 W,F=J?.["retry-after-ms"];if(F){let Y=parseFloat(F);if(!Number.isNaN(Y))W=Y}let X=J?.["retry-after"];if(X&&!W){let Y=parseFloat(X);if(!Number.isNaN(Y))W=Y*1000;else W=Date.parse(X)-Date.now()}if(!(W&&0<=W&&W<60000)){let Y=T.maxRetries??this.maxRetries;W=this.calculateDefaultRetryTimeoutMillis($,Y)}return await VJ(W),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let F=$-T,X=Math.min(0.5*Math.pow(2,F),8),Y=1-Math.random()*0.25;return X*Y*1000}getUserAgent(){return`${this.constructor.name}/JS ${H0}`}}class JX{constructor(T,$,J,W){eF.set(this,void 0),hM(this,eF,T,"f"),this.options=W,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 d("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[W,F]of J)T.url.searchParams.set(W,F);$.query=void 0,$.path=T.url.toString()}return await mM(this,eF,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(eF=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class DS extends $X{constructor(T,$,J){super($,async(W)=>new J(T,W.response,await KS(W),W.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var F8=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,J){let W=J.toString();return $[W.toLowerCase()]||$[W]}})},gM={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},HT=(T)=>{return typeof T==="object"&&T!==null&&!QS(T)&&Object.keys(T).every(($)=>ES(gM,$))},cM=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":H0,"X-Stainless-OS":MS(Deno.build.os),"X-Stainless-Arch":GS(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":H0,"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":H0,"X-Stainless-OS":MS(process.platform),"X-Stainless-Arch":GS(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=nM();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":H0,"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":H0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function nM(){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 W=J.exec(navigator.userAgent);if(W){let F=W[1]||0,X=W[2]||0,Y=W[3]||0;return{browser:$,version:`${F}.${X}.${Y}`}}}return null}var GS=(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"},MS=(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"},HS,pM=()=>{return HS??(HS=cM())},oM=(T)=>{try{return JSON.parse(T)}catch($){return}},dM=/^[a-z][a-z0-9+.-]*:/i,uM=(T)=>{return dM.test(T)},VJ=(T)=>new Promise(($)=>setTimeout($,T)),w8=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new d(`${T} must be an integer`);if($<0)throw new d(`${T} must be a positive integer`);return $},aF=(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 KW=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function QS(T){if(!T)return!0;for(let $ in T)return!1;return!0}function ES(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function zS(T,$){for(let J in $){if(!ES($,J))continue;let W=J.toLowerCase();if(!W)continue;let F=$[J];if(F===null)delete T[W];else if(F!==void 0)T[W]=F}}var OS=new Set(["authorization","api-key"]);function kJ(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let J=$.map((W)=>{if(!W)return W;if(W.headers){let X={...W,headers:{...W.headers}};for(let Y in W.headers)if(OS.has(Y.toLowerCase()))X.headers[Y]="REDACTED";return X}let F=null;for(let X in W)if(OS.has(X.toLowerCase()))F??(F={...W}),F[X]="REDACTED";return F??W});console.log(`OpenAI:DEBUG:${T}`,...J)}}var iM=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},RS=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},tM=(T)=>{return typeof T?.get==="function"};var TX=(T,$)=>{let J=$.toLowerCase();if(tM(T)){let W=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(F,X,Y)=>X+Y.toUpperCase());for(let F of[$,J,$.toUpperCase(),W]){let X=T.get(F);if(X)return X}}for(let[W,F]of Object.entries(T))if(W.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};var US=(T)=>{if(typeof Buffer!=="undefined")return Array.from(new Float32Array(Buffer.from(T,"base64").buffer));else{let $=atob(T),J=$.length,W=new Uint8Array(J);for(let F=0;F<J;F++)W[F]=$.charCodeAt(F);return Array.from(new Float32Array(W.buffer))}};function fW(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class D0 extends JX{constructor(T,$,J,W){super(T,$,J,W);this.data=J.data||[],this.object=J.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class kT extends JX{constructor(T,$,J,W){super(T,$,J,W);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 m{constructor(T){this._client=T}}class DW extends m{list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/chat/completions/${T}/messages`,M8,{query:$,...J})}}class Q0 extends m{constructor(){super(...arguments);this.messages=new DW(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(HT(T))return this.list({},T);return this._client.getAPIList("/chat/completions",E0,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class E0 extends kT{}class M8 extends kT{}Q0.ChatCompletionsPage=E0;Q0.Messages=DW;class oJ extends m{constructor(){super(...arguments);this.completions=new Q0(this._client)}}oJ.Completions=Q0;oJ.ChatCompletionsPage=E0;class QW extends m{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class EW extends m{create(T,$){return this._client.post("/audio/transcriptions",n$({body:T,...$,stream:T.stream??!1,__metadata:{model:T.model}}))}}class RW extends m{create(T,$){return this._client.post("/audio/translations",n$({body:T,...$,__metadata:{model:T.model}}))}}class BJ extends m{constructor(){super(...arguments);this.transcriptions=new EW(this._client),this.translations=new RW(this._client),this.speech=new QW(this._client)}}BJ.Transcriptions=EW;BJ.Translations=RW;BJ.Speech=QW;class R0 extends m{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(HT(T))return this.list({},T);return this._client.getAPIList("/batches",H1,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class H1 extends kT{}R0.BatchesPage=H1;class z1 extends m{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(HT(T))return this.list({},T);return this._client.getAPIList("/assistants",UW,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class UW extends kT{}z1.AssistantsPage=UW;function H8(T){return typeof T.parse==="function"}var dJ=(T)=>{return T?.role==="assistant"},z8=(T)=>{return T?.role==="function"},O8=(T)=>{return T?.role==="tool"};var e$=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},vT=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},K8,WX,FX,_W,kW,XX,VW,LJ,BW,YX,SX,O1,_S;class U0{constructor(){K8.add(this),this.controller=new AbortController,WX.set(this,void 0),FX.set(this,()=>{}),_W.set(this,()=>{}),kW.set(this,void 0),XX.set(this,()=>{}),VW.set(this,()=>{}),LJ.set(this,{}),BW.set(this,!1),YX.set(this,!1),SX.set(this,!1),O1.set(this,!1),e$(this,WX,new Promise((T,$)=>{e$(this,FX,T,"f"),e$(this,_W,$,"f")}),"f"),e$(this,kW,new Promise((T,$)=>{e$(this,XX,T,"f"),e$(this,VW,$,"f")}),"f"),vT(this,WX,"f").catch(()=>{}),vT(this,kW,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},vT(this,K8,"m",_S).bind(this))},0)}_connected(){if(this.ended)return;vT(this,FX,"f").call(this),this._emit("connect")}get ended(){return vT(this,BW,"f")}get errored(){return vT(this,YX,"f")}get aborted(){return vT(this,SX,"f")}abort(){this.controller.abort()}on(T,$){return(vT(this,LJ,"f")[T]||(vT(this,LJ,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=vT(this,LJ,"f")[T];if(!J)return this;let W=J.findIndex((F)=>F.listener===$);if(W>=0)J.splice(W,1);return this}once(T,$){return(vT(this,LJ,"f")[T]||(vT(this,LJ,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(e$(this,O1,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){e$(this,O1,!0,"f"),await vT(this,kW,"f")}_emit(T,...$){if(vT(this,BW,"f"))return;if(T==="end")e$(this,BW,!0,"f"),vT(this,XX,"f").call(this);let J=vT(this,LJ,"f")[T];if(J)vT(this,LJ,"f")[T]=J.filter((W)=>!W.once),J.forEach(({listener:W})=>W(...$));if(T==="abort"){let W=$[0];if(!vT(this,O1,"f")&&!J?.length)Promise.reject(W);vT(this,_W,"f").call(this,W),vT(this,VW,"f").call(this,W),this._emit("end");return}if(T==="error"){let W=$[0];if(!vT(this,O1,"f")&&!J?.length)Promise.reject(W);vT(this,_W,"f").call(this,W),vT(this,VW,"f").call(this,W),this._emit("end")}}_emitFinal(){}}WX=new WeakMap,FX=new WeakMap,_W=new WeakMap,kW=new WeakMap,XX=new WeakMap,VW=new WeakMap,LJ=new WeakMap,BW=new WeakMap,YX=new WeakMap,SX=new WeakMap,O1=new WeakMap,K8=new WeakSet,_S=function T($){if(e$(this,YX,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new aT;if($ instanceof aT)return e$(this,SX,!0,"f"),this._emit("abort",$);if($ instanceof d)return this._emit("error",$);if($ instanceof Error){let J=new d($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new d(String($)))};function LW(T){return T?.$brand==="auto-parseable-response-format"}function _0(T){return T?.$brand==="auto-parseable-tool"}function kS(T,$){if(!$||!f8($))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 yW(T,$)}function yW(T,$){let J=T.choices.map((W)=>{if(W.finish_reason==="length")throw new HW;if(W.finish_reason==="content_filter")throw new zW;return{...W,message:{...W.message,...W.message.tool_calls?{tool_calls:W.message.tool_calls?.map((F)=>JH($,F))??void 0}:void 0,parsed:W.message.content&&!W.message.refusal?$H($,W.message.content):null}}});return{...T,choices:J}}function $H(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 JH(T,$){let J=T.tools?.find((W)=>W.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:_0(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function VS(T,$){if(!T)return!1;let J=T.tools?.find((W)=>W.function?.name===$.function.name);return _0(J)||J?.function.strict||!1}function f8(T){if(LW(T.response_format))return!0;return T.tools?.some(($)=>_0($)||$.type==="function"&&$.function.strict===!0)??!1}function BS(T){for(let $ of T??[]){if($.type!=="function")throw new d(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new d(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var V$=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},K$,D8,AX,Q8,E8,R8,yS,U8,LS=10;class NW extends U0{constructor(){super(...arguments);K$.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),(z8(T)||O8(T))&&T.content)this._emit("functionCallResult",T.content);else if(dJ(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(dJ(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 d("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),V$(this,K$,"m",D8).call(this)}async finalMessage(){return await this.done(),V$(this,K$,"m",AX).call(this)}async finalFunctionCall(){return await this.done(),V$(this,K$,"m",Q8).call(this)}async finalFunctionCallResult(){return await this.done(),V$(this,K$,"m",E8).call(this)}async totalUsage(){return await this.done(),V$(this,K$,"m",R8).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=V$(this,K$,"m",AX).call(this);if($)this._emit("finalMessage",$);let J=V$(this,K$,"m",D8).call(this);if(J)this._emit("finalContent",J);let W=V$(this,K$,"m",Q8).call(this);if(W)this._emit("finalFunctionCall",W);let F=V$(this,K$,"m",E8).call(this);if(F!=null)this._emit("finalFunctionCallResult",F);if(this._chatCompletions.some((X)=>X.usage))this._emit("totalUsage",V$(this,K$,"m",R8).call(this))}async _createChatCompletion(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}V$(this,K$,"m",yS).call(this,$);let F=await T.chat.completions.create({...$,stream:!1},{...J,signal:this.controller.signal});return this._connected(),this._addChatCompletion(yW(F,$))}async _runChatCompletion(T,$,J){for(let W of $.messages)this._addMessage(W,!1);return await this._createChatCompletion(T,$,J)}async _runFunctions(T,$,J){let{function_call:F="auto",stream:X,...Y}=$,S=typeof F!=="string"&&F?.name,{maxChatCompletions:A=LS}=J||{},w={};for(let M of $.functions)w[M.name||M.function.name]=M;let G=$.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<A;++M){let f=(await this._createChatCompletion(T,{...Y,function_call:F,functions:G,messages:[...this.messages]},J)).choices[0]?.message;if(!f)throw new d("missing message in ChatCompletion response");if(!f.function_call)return;let{name:D,arguments:R}=f.function_call,y=w[D];if(!y){let E=`Invalid function_call: ${JSON.stringify(D)}. Available options are: ${G.map((V)=>JSON.stringify(V.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:D,content:E});continue}else if(S&&S!==D){let E=`Invalid function_call: ${JSON.stringify(D)}. ${JSON.stringify(S)} requested. Please try again`;this._addMessage({role:"function",name:D,content:E});continue}let j;try{j=H8(y)?await y.parse(R):R}catch(E){this._addMessage({role:"function",name:D,content:E instanceof Error?E.message:String(E)});continue}let L=await y.function(j,this),Z=V$(this,K$,"m",U8).call(this,L);if(this._addMessage({role:"function",name:D,content:Z}),S)return}}async _runTools(T,$,J){let{tool_choice:F="auto",stream:X,...Y}=$,S=typeof F!=="string"&&F?.function?.name,{maxChatCompletions:A=LS}=J||{},w=$.tools.map((H)=>{if(_0(H)){if(!H.$callback)throw new d("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:H.$callback,name:H.function.name,description:H.function.description||"",parameters:H.function.parameters,parse:H.$parseRaw,strict:!0}}}return H}),G={};for(let H of w)if(H.type==="function")G[H.function.name||H.function.function.name]=H.function;let M="tools"in $?w.map((H)=>H.type==="function"?{type:"function",function:{name:H.function.name||H.function.function.name,parameters:H.function.parameters,description:H.function.description,strict:H.function.strict}}:H):void 0;for(let H of $.messages)this._addMessage(H,!1);for(let H=0;H<A;++H){let D=(await this._createChatCompletion(T,{...Y,tool_choice:F,tools:M,messages:[...this.messages]},J)).choices[0]?.message;if(!D)throw new d("missing message in ChatCompletion response");if(!D.tool_calls?.length)return;for(let R of D.tool_calls){if(R.type!=="function")continue;let y=R.id,{name:j,arguments:L}=R.function,Z=G[j];if(!Z){let k=`Invalid tool_call: ${JSON.stringify(j)}. Available options are: ${Object.keys(G).map((b)=>JSON.stringify(b)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:y,content:k});continue}else if(S&&S!==j){let k=`Invalid tool_call: ${JSON.stringify(j)}. ${JSON.stringify(S)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:y,content:k});continue}let E;try{E=H8(Z)?await Z.parse(L):L}catch(k){let b=k instanceof Error?k.message:String(k);this._addMessage({role:"tool",tool_call_id:y,content:b});continue}let V=await Z.function(E,this),B=V$(this,K$,"m",U8).call(this,V);if(this._addMessage({role:"tool",tool_call_id:y,content:B}),S)return}}return}}K$=new WeakSet,D8=function T(){return V$(this,K$,"m",AX).call(this).content??null},AX=function T(){let $=this.messages.length;while($-- >0){let J=this.messages[$];if(dJ(J)){let{function_call:W,...F}=J,X={...F,content:J.content??null,refusal:J.refusal??null};if(W)X.function_call=W;return X}}throw new d("stream ended without producing a ChatCompletionMessage with role=assistant")},Q8=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(dJ(J)&&J?.function_call)return J.function_call;if(dJ(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},E8=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(z8(J)&&J.content!=null)return J.content;if(O8(J)&&J.content!=null&&typeof J.content==="string"&&this.messages.some((W)=>W.role==="assistant"&&W.tool_calls?.some((F)=>F.type==="function"&&F.id===J.tool_call_id)))return J.content}return},R8=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 $},yS=function T($){if($.n!=null&&$.n>1)throw new d("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},U8=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class K1 extends NW{static runFunctions(T,$,J){let W=new K1,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return W._run(()=>W._runFunctions(T,$,F)),W}static runTools(T,$,J){let W=new K1,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return W._run(()=>W._runTools(T,$,F)),W}_addMessage(T,$=!0){if(super._addMessage(T,$),dJ(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 NS extends Error{}class CS extends Error{}function WH(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 FH(T.trim(),$)}var FH=(T,$)=>{let J=T.length,W=0,F=(H)=>{throw new NS(`${H} at position ${W}`)},X=(H)=>{throw new CS(`${H} at position ${W}`)},Y=()=>{if(M(),W>=J)F("Unexpected end of input");if(T[W]==='"')return S();if(T[W]==="{")return A();if(T[W]==="[")return w();if(T.substring(W,W+4)==="null"||J$.NULL&$&&J-W<4&&"null".startsWith(T.substring(W)))return W+=4,null;if(T.substring(W,W+4)==="true"||J$.BOOL&$&&J-W<4&&"true".startsWith(T.substring(W)))return W+=4,!0;if(T.substring(W,W+5)==="false"||J$.BOOL&$&&J-W<5&&"false".startsWith(T.substring(W)))return W+=5,!1;if(T.substring(W,W+8)==="Infinity"||J$.INFINITY&$&&J-W<8&&"Infinity".startsWith(T.substring(W)))return W+=8,1/0;if(T.substring(W,W+9)==="-Infinity"||J$.MINUS_INFINITY&$&&1<J-W&&J-W<9&&"-Infinity".startsWith(T.substring(W)))return W+=9,-1/0;if(T.substring(W,W+3)==="NaN"||J$.NAN&$&&J-W<3&&"NaN".startsWith(T.substring(W)))return W+=3,NaN;return G()},S=()=>{let H=W,f=!1;W++;while(W<J&&(T[W]!=='"'||f&&T[W-1]==="\\"))f=T[W]==="\\"?!f:!1,W++;if(T.charAt(W)=='"')try{return JSON.parse(T.substring(H,++W-Number(f)))}catch(D){X(String(D))}else if(J$.STR&$)try{return JSON.parse(T.substring(H,W-Number(f))+'"')}catch(D){return JSON.parse(T.substring(H,T.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},A=()=>{W++,M();let H={};try{while(T[W]!=="}"){if(M(),W>=J&&J$.OBJ&$)return H;let f=S();M(),W++;try{let D=Y();Object.defineProperty(H,f,{value:D,writable:!0,enumerable:!0,configurable:!0})}catch(D){if(J$.OBJ&$)return H;else throw D}if(M(),T[W]===",")W++}}catch(f){if(J$.OBJ&$)return H;else F("Expected '}' at end of object")}return W++,H},w=()=>{W++;let H=[];try{while(T[W]!=="]")if(H.push(Y()),M(),T[W]===",")W++}catch(f){if(J$.ARR&$)return H;F("Expected ']' at end of array")}return W++,H},G=()=>{if(W===0){if(T==="-"&&J$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T)}catch(f){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){}X(String(f))}}let H=W;if(T[W]==="-")W++;while(T[W]&&!",]}".includes(T[W]))W++;if(W==J&&!(J$.NUM&$))F("Unterminated number literal");try{return JSON.parse(T.substring(H,W))}catch(f){if(T.substring(H,W)==="-"&&J$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T.substring(H,T.lastIndexOf("e")))}catch(D){X(String(D))}}},M=()=>{while(W<J&&`
30
+ \r `.includes(T[W]))W++};return Y()},_8=(T)=>WH(T,J$.ALL^J$.NUM);var f1=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},RT=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},sT,yJ,D1,uJ,k8,wX,V8,B8,L8,GX,y8,xS;class k0 extends NW{constructor(T){super();sT.add(this),yJ.set(this,void 0),D1.set(this,void 0),uJ.set(this,void 0),f1(this,yJ,T,"f"),f1(this,D1,[],"f")}get currentChatCompletionSnapshot(){return RT(this,uJ,"f")}static fromReadableStream(T){let $=new k0(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,J){let W=new k0($);return W._run(()=>W._runChatCompletion(T,{...$,stream:!0},{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}async _createChatCompletion(T,$,J){super._createChatCompletion;let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}RT(this,sT,"m",k8).call(this);let F=await T.chat.completions.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let X of F)RT(this,sT,"m",V8).call(this,X);if(F.controller.signal?.aborted)throw new aT;return this._addChatCompletion(RT(this,sT,"m",GX).call(this))}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}RT(this,sT,"m",k8).call(this),this._connected();let W=Z$.fromReadableStream(T,this.controller),F;for await(let X of W){if(F&&F!==X.id)this._addChatCompletion(RT(this,sT,"m",GX).call(this));RT(this,sT,"m",V8).call(this,X),F=X.id}if(W.controller.signal?.aborted)throw new aT;return this._addChatCompletion(RT(this,sT,"m",GX).call(this))}[(yJ=new WeakMap,D1=new WeakMap,uJ=new WeakMap,sT=new WeakSet,k8=function T(){if(this.ended)return;f1(this,uJ,void 0,"f")},wX=function T($){let J=RT(this,D1,"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,D1,"f")[$.index]=J,J},V8=function T($){if(this.ended)return;let J=RT(this,sT,"m",xS).call(this,$);this._emit("chunk",$,J);for(let W of $.choices){let F=J.choices[W.index];if(W.delta.content!=null&&F.message?.role==="assistant"&&F.message?.content)this._emit("content",W.delta.content,F.message.content),this._emit("content.delta",{delta:W.delta.content,snapshot:F.message.content,parsed:F.message.parsed});if(W.delta.refusal!=null&&F.message?.role==="assistant"&&F.message?.refusal)this._emit("refusal.delta",{delta:W.delta.refusal,snapshot:F.message.refusal});if(W.logprobs?.content!=null&&F.message?.role==="assistant")this._emit("logprobs.content.delta",{content:W.logprobs?.content,snapshot:F.logprobs?.content??[]});if(W.logprobs?.refusal!=null&&F.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:W.logprobs?.refusal,snapshot:F.logprobs?.refusal??[]});let X=RT(this,sT,"m",wX).call(this,F);if(F.finish_reason){if(RT(this,sT,"m",L8).call(this,F),X.current_tool_call_index!=null)RT(this,sT,"m",B8).call(this,F,X.current_tool_call_index)}for(let Y of W.delta.tool_calls??[]){if(X.current_tool_call_index!==Y.index){if(RT(this,sT,"m",L8).call(this,F),X.current_tool_call_index!=null)RT(this,sT,"m",B8).call(this,F,X.current_tool_call_index)}X.current_tool_call_index=Y.index}for(let Y of W.delta.tool_calls??[]){let S=F.message.tool_calls?.[Y.index];if(!S?.type)continue;if(S?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:S.function?.name,index:Y.index,arguments:S.function.arguments,parsed_arguments:S.function.parsed_arguments,arguments_delta:Y.function?.arguments??""});else ZS(S?.type)}}},B8=function T($,J){if(RT(this,sT,"m",wX).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 X=RT(this,yJ,"f")?.tools?.find((Y)=>Y.type==="function"&&Y.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:J,arguments:F.function.arguments,parsed_arguments:_0(X)?X.$parseRaw(F.function.arguments):X?.function.strict?JSON.parse(F.function.arguments):null})}else ZS(F.type)},L8=function T($){let J=RT(this,sT,"m",wX).call(this,$);if($.message.content&&!J.content_done){J.content_done=!0;let W=RT(this,sT,"m",y8).call(this);this._emit("content.done",{content:$.message.content,parsed:W?W.$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})},GX=function T(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let $=RT(this,uJ,"f");if(!$)throw new d("request ended without sending any chunks");return f1(this,uJ,void 0,"f"),f1(this,D1,[],"f"),XH($,RT(this,yJ,"f"))},y8=function T(){let $=RT(this,yJ,"f")?.response_format;if(LW($))return $;return null},xS=function T($){var J,W,F,X;let Y=RT(this,uJ,"f"),{choices:S,...A}=$;if(!Y)Y=f1(this,uJ,{...A,choices:[]},"f");else Object.assign(Y,A);for(let{delta:w,finish_reason:G,index:M,logprobs:H=null,...f}of $.choices){let D=Y.choices[M];if(!D)D=Y.choices[M]={finish_reason:G,index:M,message:{},logprobs:H,...f};if(H)if(!D.logprobs)D.logprobs=Object.assign({},H);else{let{content:V,refusal:B,...k}=H;if(jS(k),Object.assign(D.logprobs,k),V)(J=D.logprobs).content??(J.content=[]),D.logprobs.content.push(...V);if(B)(W=D.logprobs).refusal??(W.refusal=[]),D.logprobs.refusal.push(...B)}if(G){if(D.finish_reason=G,RT(this,yJ,"f")&&f8(RT(this,yJ,"f"))){if(G==="length")throw new HW;if(G==="content_filter")throw new zW}}if(Object.assign(D,f),!w)continue;let{content:R,refusal:y,function_call:j,role:L,tool_calls:Z,...E}=w;if(jS(E),Object.assign(D.message,E),y)D.message.refusal=(D.message.refusal||"")+y;if(L)D.message.role=L;if(j)if(!D.message.function_call)D.message.function_call=j;else{if(j.name)D.message.function_call.name=j.name;if(j.arguments)(F=D.message.function_call).arguments??(F.arguments=""),D.message.function_call.arguments+=j.arguments}if(R){if(D.message.content=(D.message.content||"")+R,!D.message.refusal&&RT(this,sT,"m",y8).call(this))D.message.parsed=_8(D.message.content)}if(Z){if(!D.message.tool_calls)D.message.tool_calls=[];for(let{index:V,id:B,type:k,function:b,...r}of Z){let U=(X=D.message.tool_calls)[V]??(X[V]={});if(Object.assign(U,r),B)U.id=B;if(k)U.type=k;if(b)U.function??(U.function={name:b.name??"",arguments:""});if(b?.name)U.function.name=b.name;if(b?.arguments){if(U.function.arguments+=b.arguments,VS(RT(this,yJ,"f"),U))U.function.parsed_arguments=_8(U.function.arguments)}}}}return Y},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("chunk",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).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 XH(T,$){let{id:J,choices:W,created:F,model:X,system_fingerprint:Y,...S}=T,A={...S,id:J,choices:W.map(({message:w,finish_reason:G,index:M,logprobs:H,...f})=>{if(!G)throw new d(`missing finish_reason for choice ${M}`);let{content:D=null,function_call:R,tool_calls:y,...j}=w,L=w.role;if(!L)throw new d(`missing role for choice ${M}`);if(R){let{arguments:Z,name:E}=R;if(Z==null)throw new d(`missing function_call.arguments for choice ${M}`);if(!E)throw new d(`missing function_call.name for choice ${M}`);return{...f,message:{content:D,function_call:{arguments:Z,name:E},role:L,refusal:w.refusal??null},finish_reason:G,index:M,logprobs:H}}if(y)return{...f,index:M,finish_reason:G,logprobs:H,message:{...j,role:L,content:D,refusal:w.refusal??null,tool_calls:y.map((Z,E)=>{let{function:V,type:B,id:k,...b}=Z,{arguments:r,name:U,...e}=V||{};if(k==null)throw new d(`missing choices[${M}].tool_calls[${E}].id
31
31
  ${MX(T)}`);if(B==null)throw new d(`missing choices[${M}].tool_calls[${E}].type
32
32
  ${MX(T)}`);if(U==null)throw new d(`missing choices[${M}].tool_calls[${E}].function.name
33
33
  ${MX(T)}`);if(r==null)throw new d(`missing choices[${M}].tool_calls[${E}].function.arguments
34
- ${MX(T)}`);return{...b,id:k,type:B,function:{...e,name:U,arguments:r}}})}};return{...K,message:{...j,content:D,role:L,refusal:w.refusal??null},finish_reason:G,index:M,logprobs:H}}),created:F,model:X,object:"chat.completion",...S?{system_fingerprint:S}:{}};return E6(A,$)}function MX(T){return JSON.stringify(T)}function y6(T){return}function N6(T){}class V0 extends k0{static fromReadableStream(T){let $=new V0(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,J){let W=new V0(null),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return W._run(()=>W._runFunctions(T,$,F)),W}static runTools(T,$,J){let W=new V0($),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return W._run(()=>W._runTools(T,$,F)),W}}class HX extends c{parse(T,$){return U6(T.tools),this._client.chat.completions.create(T,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((J)=>NW(J,T))}runFunctions(T,$){if(T.stream)return V0.runFunctions(this._client,T,$);return z1.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return V0.runTools(this._client,T,$);return z1.runTools(this._client,T,$)}stream(T,$){return k0.createChatCompletion(this._client,T,$)}}class xW extends c{constructor(){super(...arguments);this.completions=new HX(this._client)}}(function(T){T.Completions=HX})(xW||(xW={}));class jW extends c{create(T,$){return this._client.post("/realtime/sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class D1 extends c{constructor(){super(...arguments);this.sessions=new jW(this._client)}}D1.Sessions=jW;var u=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},q$=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},S$,L8,MJ,OX,TJ,L0,Q1,B0,KX,I$,zX,fX,IW,ZW,qW,C6,x6,j6,Z6,q6,I6,b6;class b$ extends U0{constructor(){super(...arguments);S$.add(this),L8.set(this,[]),MJ.set(this,{}),OX.set(this,{}),TJ.set(this,void 0),L0.set(this,void 0),Q1.set(this,void 0),B0.set(this,void 0),KX.set(this,void 0),I$.set(this,void 0),zX.set(this,void 0),fX.set(this,void 0),IW.set(this,void 0)}[(L8=new WeakMap,MJ=new WeakMap,OX=new WeakMap,TJ=new WeakMap,L0=new WeakMap,Q1=new WeakMap,B0=new WeakMap,KX=new WeakMap,I$=new WeakMap,zX=new WeakMap,fX=new WeakMap,IW=new WeakMap,S$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).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 W=Z$.fromReadableStream(T,this.controller);for await(let F of W)u(this,S$,"m",ZW).call(this,F);if(W.controller.signal?.aborted)throw new aT;return this._addRun(u(this,S$,"m",qW).call(this))}toReadableStream(){return new Z$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,J,W,F){let X=new b$;return X._run(()=>X._runToolAssistantStream(T,$,J,W,{...F,headers:{...F?.headers,"X-Stainless-Helper-Method":"stream"}})),X}async _createToolAssistantStream(T,$,J,W,F){let X=F?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}let S={...W,stream:!0},Y=await T.submitToolOutputs($,J,S,{...F,signal:this.controller.signal});this._connected();for await(let A of Y)u(this,S$,"m",ZW).call(this,A);if(Y.controller.signal?.aborted)throw new aT;return this._addRun(u(this,S$,"m",qW).call(this))}static createThreadAssistantStream(T,$,J){let W=new b$;return W._run(()=>W._threadAssistantStream(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}static createAssistantStream(T,$,J,W){let F=new b$;return F._run(()=>F._runAssistantStream(T,$,J,{...W,headers:{...W?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return u(this,zX,"f")}currentRun(){return u(this,fX,"f")}currentMessageSnapshot(){return u(this,TJ,"f")}currentRunStepSnapshot(){return u(this,IW,"f")}async finalRunSteps(){return await this.done(),Object.values(u(this,MJ,"f"))}async finalMessages(){return await this.done(),Object.values(u(this,OX,"f"))}async finalRun(){if(await this.done(),!u(this,L0,"f"))throw Error("Final run was not received.");return u(this,L0,"f")}async _createThreadAssistantStream(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}let F={...$,stream:!0},X=await T.createAndRun(F,{...J,signal:this.controller.signal});this._connected();for await(let S of X)u(this,S$,"m",ZW).call(this,S);if(X.controller.signal?.aborted)throw new aT;return this._addRun(u(this,S$,"m",qW).call(this))}async _createAssistantStream(T,$,J,W){let F=W?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let X={...J,stream:!0},S=await T.create($,X,{...W,signal:this.controller.signal});this._connected();for await(let Y of S)u(this,S$,"m",ZW).call(this,Y);if(S.controller.signal?.aborted)throw new aT;return this._addRun(u(this,S$,"m",qW).call(this))}static accumulateDelta(T,$){for(let[J,W]of Object.entries($)){if(!T.hasOwnProperty(J)){T[J]=W;continue}let F=T[J];if(F===null||F===void 0){T[J]=W;continue}if(J==="index"||J==="type"){T[J]=W;continue}if(typeof F==="string"&&typeof W==="string")F+=W;else if(typeof F==="number"&&typeof W==="number")F+=W;else if(DW(F)&&DW(W))F=this.accumulateDelta(F,W);else if(Array.isArray(F)&&Array.isArray(W)){if(F.every((X)=>typeof X==="string"||typeof X==="number")){F.push(...W);continue}for(let X of W){if(!DW(X))throw new Error(`Expected array delta entry to be an object but got: ${X}`);let S=X.index;if(S==null)throw console.error(X),new Error("Expected array delta entry to have an `index` property");if(typeof S!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${S}`);let Y=F[S];if(Y==null)F.push(X);else F[S]=this.accumulateDelta(Y,X)}continue}else throw Error(`Unhandled record type: ${J}, deltaValue: ${W}, 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,W){return await this._createAssistantStream($,T,J,W)}async _runToolAssistantStream(T,$,J,W,F){return await this._createToolAssistantStream(J,T,$,W,F)}}ZW=function T($){if(this.ended)return;switch(q$(this,zX,$,"f"),u(this,S$,"m",j6).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":u(this,S$,"m",b6).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":u(this,S$,"m",x6).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":u(this,S$,"m",C6).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:WH($)}},qW=function T(){if(this.ended)throw new d("stream has ended, this shouldn't happen");if(!u(this,L0,"f"))throw Error("Final run has not been received");return u(this,L0,"f")},C6=function T($){let[J,W]=u(this,S$,"m",q6).call(this,$,u(this,TJ,"f"));q$(this,TJ,J,"f"),u(this,OX,"f")[J.id]=J;for(let F of W){let X=J.content[F.index];if(X?.type=="text")this._emit("textCreated",X.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 X=F.text,S=J.content[F.index];if(S&&S.type=="text")this._emit("textDelta",X,S.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=u(this,Q1,"f")){if(u(this,B0,"f"))switch(u(this,B0,"f").type){case"text":this._emit("textDone",u(this,B0,"f").text,u(this,TJ,"f"));break;case"image_file":this._emit("imageFileDone",u(this,B0,"f").image_file,u(this,TJ,"f"));break}q$(this,Q1,F.index,"f")}q$(this,B0,J.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(u(this,Q1,"f")!==void 0){let F=$.data.content[u(this,Q1,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,u(this,TJ,"f"));break;case"text":this._emit("textDone",F.text,u(this,TJ,"f"));break}}if(u(this,TJ,"f"))this._emit("messageDone",$.data);q$(this,TJ,void 0,"f")}},x6=function T($){let J=u(this,S$,"m",Z6).call(this,$);switch(q$(this,IW,J,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let W=$.data.delta;if(W.step_details&&W.step_details.type=="tool_calls"&&W.step_details.tool_calls&&J.step_details.type=="tool_calls")for(let X of W.step_details.tool_calls)if(X.index==u(this,KX,"f"))this._emit("toolCallDelta",X,J.step_details.tool_calls[X.index]);else{if(u(this,I$,"f"))this._emit("toolCallDone",u(this,I$,"f"));if(q$(this,KX,X.index,"f"),q$(this,I$,J.step_details.tool_calls[X.index],"f"),u(this,I$,"f"))this._emit("toolCallCreated",u(this,I$,"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(q$(this,IW,void 0,"f"),$.data.step_details.type=="tool_calls"){if(u(this,I$,"f"))this._emit("toolCallDone",u(this,I$,"f")),q$(this,I$,void 0,"f")}this._emit("runStepDone",$.data,J);break;case"thread.run.step.in_progress":break}},j6=function T($){u(this,L8,"f").push($),this._emit("event",$)},Z6=function T($){switch($.event){case"thread.run.step.created":return u(this,MJ,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let J=u(this,MJ,"f")[$.data.id];if(!J)throw Error("Received a RunStepDelta before creation of a snapshot");let W=$.data;if(W.delta){let F=b$.accumulateDelta(J,W.delta);u(this,MJ,"f")[$.data.id]=F}return u(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":u(this,MJ,"f")[$.data.id]=$.data;break}if(u(this,MJ,"f")[$.data.id])return u(this,MJ,"f")[$.data.id];throw new Error("No snapshot available")},q6=function T($,J){let W=[];switch($.event){case"thread.message.created":return[$.data,W];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 X of F.delta.content)if(X.index in J.content){let S=J.content[X.index];J.content[X.index]=u(this,S$,"m",I6).call(this,X,S)}else J.content[X.index]=X,W.push(X);return[J,W];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(J)return[J,W];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},I6=function T($,J){return b$.accumulateDelta(J,$)},b6=function T($){switch(q$(this,fX,$.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,L0,$.data,"f"),u(this,I$,"f"))this._emit("toolCallDone",u(this,I$,"f")),q$(this,I$,void 0,"f");break;case"thread.run.cancelling":break}};function WH(T){}class E1 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,W){return this._client.post(`/threads/${T}/messages/${$}`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/messages`,bW,{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 bW extends kT{}E1.MessagesPage=bW;class R1 extends c{retrieve(T,$,J,W={},F){if(HT(W))return this.retrieve(T,$,J,{},W);return this._client.get(`/threads/${T}/runs/${$}/steps/${J}`,{query:W,...F,headers:{"OpenAI-Beta":"assistants=v2",...F?.headers}})}list(T,$,J={},W){if(HT(J))return this.list(T,$,{},J);return this._client.getAPIList(`/threads/${T}/runs/${$}/steps`,vW,{query:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}}class vW extends kT{}R1.RunStepsPage=vW;class dJ extends c{constructor(){super(...arguments);this.steps=new R1(this._client)}create(T,$,J){let{include:W,...F}=$;return this._client.post(`/threads/${T}/runs`,{query:{include:W},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,W){return this._client.post(`/threads/${T}/runs/${$}`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/runs`,PW,{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 W=await this.create(T,$,J);return await this.poll(T,W.id,J)}createAndStream(T,$,J){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}async poll(T,$,J){let W={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)W["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:X}=await this.retrieve(T,$,{...J,headers:{...J?.headers,...W}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let S=5000;if(J?.pollIntervalMs)S=J.pollIntervalMs;else{let Y=X.headers.get("openai-poll-after-ms");if(Y){let A=parseInt(Y);if(!isNaN(A))S=A}}await kJ(S);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,W){return this._client.post(`/threads/${T}/runs/${$}/submit_tool_outputs`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers},stream:J.stream??!1})}async submitToolOutputsAndPoll(T,$,J,W){let F=await this.submitToolOutputs(T,$,J,W);return await this.poll(T,F.id,W)}submitToolOutputsStream(T,$,J,W){return b$.createToolAssistantStream(T,$,this._client.beta.threads.runs,J,W)}}class PW extends kT{}dJ.RunsPage=PW;dJ.Steps=R1;dJ.RunStepsPage=vW;class yJ extends c{constructor(){super(...arguments);this.runs=new dJ(this._client),this.messages=new E1(this._client)}create(T={},$){if(HT(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=dJ;yJ.RunsPage=PW;yJ.Messages=E1;yJ.MessagesPage=bW;class HJ extends c{constructor(){super(...arguments);this.realtime=new D1(this._client),this.chat=new xW(this._client),this.assistants=new H1(this._client),this.threads=new yJ(this._client)}}HJ.Realtime=D1;HJ.Assistants=H1;HJ.AssistantsPage=_W;HJ.Threads=yJ;class U1 extends c{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class _1 extends c{create(T,$){return this._client.post("/embeddings",{body:T,...$})}}class y0 extends c{create(T,$){return this._client.post("/files",n$({body:T,...$}))}retrieve(T,$){return this._client.get(`/files/${T}`,$)}list(T={},$){if(HT(T))return this.list({},T);return this._client.getAPIList("/files",k1,{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 W=new Set(["processed","error","deleted"]),F=Date.now(),X=await this.retrieve(T);while(!X.status||!W.has(X.status))if(await kJ($),X=await this.retrieve(T),Date.now()-F>J)throw new z0({message:`Giving up on waiting for file ${T} to finish processing after ${J} milliseconds.`});return X}}class k1 extends kT{}y0.FileObjectsPage=k1;class V1 extends c{list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,hW,{query:$,...J})}}class hW extends kT{}V1.FineTuningJobCheckpointsPage=hW;class NJ extends c{constructor(){super(...arguments);this.checkpoints=new V1(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(HT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",mW,{query:T,...$})}cancel(T,$){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,$)}listEvents(T,$={},J){if(HT($))return this.listEvents(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,gW,{query:$,...J})}}class mW extends kT{}class gW extends kT{}NJ.FineTuningJobsPage=mW;NJ.FineTuningJobEventsPage=gW;NJ.Checkpoints=V1;NJ.FineTuningJobCheckpointsPage=hW;class CJ extends c{constructor(){super(...arguments);this.jobs=new NJ(this._client)}}CJ.Jobs=NJ;CJ.FineTuningJobsPage=mW;CJ.FineTuningJobEventsPage=gW;class B1 extends c{createVariation(T,$){return this._client.post("/images/variations",n$({body:T,...$}))}edit(T,$){return this._client.post("/images/edits",n$({body:T,...$}))}generate(T,$){return this._client.post("/images/generations",{body:T,...$})}}class N0 extends c{retrieve(T,$){return this._client.get(`/models/${T}`,$)}list(T){return this._client.getAPIList("/models",L1,T)}del(T,$){return this._client.delete(`/models/${T}`,$)}}class L1 extends D0{}N0.ModelsPage=L1;class y1 extends c{create(T,$){return this._client.post("/moderations",{body:T,...$})}}function v6(T,$){if(!$||!MH($))return{...T,output_parsed:null,output:T.output.map((J)=>{if(J.type==="function_call")return{...J,parsed_arguments:null};if(J.type==="message")return{...J,content:J.content.map((W)=>({...W,parsed:null}))};else return J})};return y8(T,$)}function y8(T,$){let J=T.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:zH($,F)};if(F.type==="message"){let X=F.content.map((S)=>{if(S.type==="output_text")return{...S,parsed:GH($,S.text)};return S});return{...F,content:X}}return F}),W=Object.assign({},T,{output:J});if(!Object.getOwnPropertyDescriptor(T,"output_text"))N8(W);return Object.defineProperty(W,"output_parsed",{enumerable:!0,get(){for(let F of W.output){if(F.type!=="message")continue;for(let X of F.content)if(X.type==="output_text"&&X.parsed!==null)return X.parsed}return null}}),W}function GH(T,$){if(T.text?.format?.type!=="json_schema")return null;if("$parseRaw"in T.text?.format)return(T.text?.format).$parseRaw($);return JSON.parse($)}function MH(T){if(yW(T.text?.format))return!0;return!1}function HH(T){return T?.$brand==="auto-parseable-tool"}function OH(T,$){return T.find((J)=>J.type==="function"&&J.name===$)}function zH(T,$){let J=OH(T.tools??[],$.name);return{...$,...$,parsed_arguments:HH(J)?J.$parseRaw($.arguments):J?.strict?JSON.parse($.arguments):null}}function N8(T){let $=[];for(let J of T.output){if(J.type!=="message")continue;for(let W of J.content)if(W.type==="output_text")$.push(W.text)}T.output_text=$.join("")}class N1 extends c{list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/responses/${T}/input_items`,cW,{query:$,...J})}}class cW extends kT{}N1.ResponseItemListDataPage=cW;var C1=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},uJ=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},x1,DX,iJ,QX,P6,h6,m6,g6;class EX extends U0{constructor(T){super();x1.add(this),DX.set(this,void 0),iJ.set(this,void 0),QX.set(this,void 0),C1(this,DX,T,"f")}static createResponse(T,$,J){let W=new EX($);return W._run(()=>W._createResponse(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}async _createResponse(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}uJ(this,x1,"m",P6).call(this);let F=await T.responses.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let X of F)uJ(this,x1,"m",h6).call(this,X);if(F.controller.signal?.aborted)throw new aT;return uJ(this,x1,"m",m6).call(this)}[(DX=new WeakMap,iJ=new WeakMap,QX=new WeakMap,x1=new WeakSet,P6=function T(){if(this.ended)return;C1(this,iJ,void 0,"f")},h6=function T($){if(this.ended)return;let J=uJ(this,x1,"m",g6).call(this,$);switch(this._emit("event",$),$.type){case"response.output_text.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="message"){let F=W.content[$.content_index];if(!F)throw new d(`missing content at index ${$.content_index}`);if(F.type!=="output_text")throw new d(`expected content to be 'output_text', got ${F.type}`);this._emit("response.output_text.delta",{...$,snapshot:F.text})}break}case"response.function_call_arguments.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="function_call")this._emit("response.function_call_arguments.delta",{...$,snapshot:W.arguments});break}default:this._emit($.type,$);break}},m6=function T(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let $=uJ(this,iJ,"f");if(!$)throw new d("request ended without sending any events");C1(this,iJ,void 0,"f");let J=KH($,uJ(this,DX,"f"));return C1(this,QX,J,"f"),J},g6=function T($){let J=uJ(this,iJ,"f");if(!J){if($.type!=="response.created")throw new d(`When snapshot hasn't been set yet, expected 'response.created' event, got ${$.type}`);return J=C1(this,iJ,$.response,"f"),J}switch($.type){case"response.output_item.added":{J.output.push($.item);break}case"response.content_part.added":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="message")W.content.push($.part);break}case"response.output_text.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="message"){let F=W.content[$.content_index];if(!F)throw new d(`missing content at index ${$.content_index}`);if(F.type!=="output_text")throw new d(`expected content to be 'output_text', got ${F.type}`);F.text+=$.delta}break}case"response.function_call_arguments.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="function_call")W.arguments+=$.delta;break}case"response.completed":{C1(this,iJ,$.response,"f");break}}return J},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).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}}}}async finalResponse(){await this.done();let T=uJ(this,QX,"f");if(!T)throw new d("stream ended without producing a ChatCompletion");return T}}function KH(T,$){return v6(T,$)}class tJ extends c{constructor(){super(...arguments);this.inputItems=new N1(this._client)}create(T,$){return this._client.post("/responses",{body:T,...$,stream:T.stream??!1})._thenUnwrap((J)=>{if("object"in J&&J.object==="response")N8(J);return J})}retrieve(T,$={},J){if(HT($))return this.retrieve(T,{},$);return this._client.get(`/responses/${T}`,{query:$,...J})}del(T,$){return this._client.delete(`/responses/${T}`,{...$,headers:{Accept:"*/*",...$?.headers}})}parse(T,$){return this._client.responses.create(T,$)._thenUnwrap((J)=>y8(J,T))}stream(T,$){return EX.createResponse(this._client,T,$)}}tJ.InputItems=N1;tJ.ResponseItemListDataPage=cW;class nW extends c{create(T,$,J){return this._client.post(`/uploads/${T}/parts`,n$({body:$,...J}))}}class C0 extends c{constructor(){super(...arguments);this.parts=new nW(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})}}C0.Parts=nW;var c6=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 W=[];for(let F of $)if(F.status==="fulfilled")W.push(F.value);return W};class x0 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}})}update(T,$,J,W){return this._client.post(`/vector_stores/${T}/files/${$}`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/vector_stores/${T}/files`,j0,{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 W=await this.create(T,$,J);return await this.poll(T,W.id,J)}async poll(T,$,J){let W={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)W["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let F=await this.retrieve(T,$,{...J,headers:W}).withResponse(),X=F.data;switch(X.status){case"in_progress":let S=5000;if(J?.pollIntervalMs)S=J.pollIntervalMs;else{let Y=F.response.headers.get("openai-poll-after-ms");if(Y){let A=parseInt(Y);if(!isNaN(A))S=A}}await kJ(S);break;case"failed":case"completed":return X}}}async upload(T,$,J){let W=await this._client.files.create({file:$,purpose:"assistants"},J);return this.create(T,{file_id:W.id},J)}async uploadAndPoll(T,$,J){let W=await this.upload(T,$,J);return await this.poll(T,W.id,J)}content(T,$,J){return this._client.getAPIList(`/vector_stores/${T}/files/${$}/content`,pW,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class j0 extends kT{}class pW extends D0{}x0.VectorStoreFilesPage=j0;x0.FileContentResponsesPage=pW;class oW 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 W=await this.create(T,$);return await this.poll(T,W.id,J)}listFiles(T,$,J={},W){if(HT(J))return this.listFiles(T,$,{},J);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${$}/files`,j0,{query:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}async poll(T,$,J){let W={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)W["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:X}=await this.retrieve(T,$,{...J,headers:W}).withResponse();switch(F.status){case"in_progress":let S=5000;if(J?.pollIntervalMs)S=J.pollIntervalMs;else{let Y=X.headers.get("openai-poll-after-ms");if(Y){let A=parseInt(Y);if(!isNaN(A))S=A}}await kJ(S);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(T,{files:$,fileIds:J=[]},W){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=W?.maxConcurrency??5,X=Math.min(F,$.length),S=this._client,Y=$.values(),A=[...J];async function w(M){for(let H of M){let K=await S.files.create({file:H,purpose:"assistants"},W);A.push(K.id)}}let G=Array(X).fill(Y).map(w);return await c6(G),await this.createAndPoll(T,{file_ids:A})}}class p$ extends c{constructor(){super(...arguments);this.files=new x0(this._client),this.fileBatches=new oW(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(HT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",j1,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}search(T,$,J){return this._client.getAPIList(`/vector_stores/${T}/search`,Z1,{body:$,method:"post",...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class j1 extends kT{}class Z1 extends D0{}p$.VectorStoresPage=j1;p$.VectorStoreSearchResponsesPage=Z1;p$.Files=x0;p$.VectorStoreFilesPage=j0;p$.FileContentResponsesPage=pW;p$.FileBatches=oW;var n6;class FT extends A8{constructor({baseURL:T=KW("OPENAI_BASE_URL"),apiKey:$=KW("OPENAI_API_KEY"),organization:J=KW("OPENAI_ORG_ID")??null,project:W=KW("OPENAI_PROJECT_ID")??null,...F}={}){if($===void 0)throw new d("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 X={apiKey:$,organization:J,project:W,...F,baseURL:T||"https://api.openai.com/v1"};if(!X.dangerouslyAllowBrowser&&D6())throw new d(`It looks like you're running in a browser-like environment.
34
+ ${MX(T)}`);return{...b,id:k,type:B,function:{...e,name:U,arguments:r}}})}};return{...f,message:{...j,content:D,role:L,refusal:w.refusal??null},finish_reason:G,index:M,logprobs:H}}),created:F,model:X,object:"chat.completion",...Y?{system_fingerprint:Y}:{}};return kS(A,$)}function MX(T){return JSON.stringify(T)}function jS(T){return}function ZS(T){}class V0 extends k0{static fromReadableStream(T){let $=new V0(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,J){let W=new V0(null),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return W._run(()=>W._runFunctions(T,$,F)),W}static runTools(T,$,J){let W=new V0($),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return W._run(()=>W._runTools(T,$,F)),W}}class HX extends m{parse(T,$){return BS(T.tools),this._client.chat.completions.create(T,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((J)=>yW(J,T))}runFunctions(T,$){if(T.stream)return V0.runFunctions(this._client,T,$);return K1.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return V0.runTools(this._client,T,$);return K1.runTools(this._client,T,$)}stream(T,$){return k0.createChatCompletion(this._client,T,$)}}class CW extends m{constructor(){super(...arguments);this.completions=new HX(this._client)}}(function(T){T.Completions=HX})(CW||(CW={}));class xW extends m{create(T,$){return this._client.post("/realtime/sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class jW extends m{create(T,$){return this._client.post("/realtime/transcription_sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class B0 extends m{constructor(){super(...arguments);this.sessions=new xW(this._client),this.transcriptionSessions=new jW(this._client)}}B0.Sessions=xW;B0.TranscriptionSessions=jW;var u=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},q$=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},Y$,N8,MJ,zX,TJ,y0,Q1,L0,fX,I$,OX,KX,IW,ZW,qW,qS,IS,bS,vS,PS,hS,mS;class b$ extends U0{constructor(){super(...arguments);Y$.add(this),N8.set(this,[]),MJ.set(this,{}),zX.set(this,{}),TJ.set(this,void 0),y0.set(this,void 0),Q1.set(this,void 0),L0.set(this,void 0),fX.set(this,void 0),I$.set(this,void 0),OX.set(this,void 0),KX.set(this,void 0),IW.set(this,void 0)}[(N8=new WeakMap,MJ=new WeakMap,zX=new WeakMap,TJ=new WeakMap,y0=new WeakMap,Q1=new WeakMap,L0=new WeakMap,fX=new WeakMap,I$=new WeakMap,OX=new WeakMap,KX=new WeakMap,IW=new WeakMap,Y$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).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 W=Z$.fromReadableStream(T,this.controller);for await(let F of W)u(this,Y$,"m",ZW).call(this,F);if(W.controller.signal?.aborted)throw new aT;return this._addRun(u(this,Y$,"m",qW).call(this))}toReadableStream(){return new Z$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,J,W,F){let X=new b$;return X._run(()=>X._runToolAssistantStream(T,$,J,W,{...F,headers:{...F?.headers,"X-Stainless-Helper-Method":"stream"}})),X}async _createToolAssistantStream(T,$,J,W,F){let X=F?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}let Y={...W,stream:!0},S=await T.submitToolOutputs($,J,Y,{...F,signal:this.controller.signal});this._connected();for await(let A of S)u(this,Y$,"m",ZW).call(this,A);if(S.controller.signal?.aborted)throw new aT;return this._addRun(u(this,Y$,"m",qW).call(this))}static createThreadAssistantStream(T,$,J){let W=new b$;return W._run(()=>W._threadAssistantStream(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}static createAssistantStream(T,$,J,W){let F=new b$;return F._run(()=>F._runAssistantStream(T,$,J,{...W,headers:{...W?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return u(this,OX,"f")}currentRun(){return u(this,KX,"f")}currentMessageSnapshot(){return u(this,TJ,"f")}currentRunStepSnapshot(){return u(this,IW,"f")}async finalRunSteps(){return await this.done(),Object.values(u(this,MJ,"f"))}async finalMessages(){return await this.done(),Object.values(u(this,zX,"f"))}async finalRun(){if(await this.done(),!u(this,y0,"f"))throw Error("Final run was not received.");return u(this,y0,"f")}async _createThreadAssistantStream(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}let F={...$,stream:!0},X=await T.createAndRun(F,{...J,signal:this.controller.signal});this._connected();for await(let Y of X)u(this,Y$,"m",ZW).call(this,Y);if(X.controller.signal?.aborted)throw new aT;return this._addRun(u(this,Y$,"m",qW).call(this))}async _createAssistantStream(T,$,J,W){let F=W?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let X={...J,stream:!0},Y=await T.create($,X,{...W,signal:this.controller.signal});this._connected();for await(let S of Y)u(this,Y$,"m",ZW).call(this,S);if(Y.controller.signal?.aborted)throw new aT;return this._addRun(u(this,Y$,"m",qW).call(this))}static accumulateDelta(T,$){for(let[J,W]of Object.entries($)){if(!T.hasOwnProperty(J)){T[J]=W;continue}let F=T[J];if(F===null||F===void 0){T[J]=W;continue}if(J==="index"||J==="type"){T[J]=W;continue}if(typeof F==="string"&&typeof W==="string")F+=W;else if(typeof F==="number"&&typeof W==="number")F+=W;else if(fW(F)&&fW(W))F=this.accumulateDelta(F,W);else if(Array.isArray(F)&&Array.isArray(W)){if(F.every((X)=>typeof X==="string"||typeof X==="number")){F.push(...W);continue}for(let X of W){if(!fW(X))throw new Error(`Expected array delta entry to be an object but got: ${X}`);let Y=X.index;if(Y==null)throw console.error(X),new Error("Expected array delta entry to have an `index` property");if(typeof Y!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${Y}`);let S=F[Y];if(S==null)F.push(X);else F[Y]=this.accumulateDelta(S,X)}continue}else throw Error(`Unhandled record type: ${J}, deltaValue: ${W}, 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,W){return await this._createAssistantStream($,T,J,W)}async _runToolAssistantStream(T,$,J,W,F){return await this._createToolAssistantStream(J,T,$,W,F)}}ZW=function T($){if(this.ended)return;switch(q$(this,OX,$,"f"),u(this,Y$,"m",bS).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":u(this,Y$,"m",mS).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":u(this,Y$,"m",IS).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":u(this,Y$,"m",qS).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:MH($)}},qW=function T(){if(this.ended)throw new d("stream has ended, this shouldn't happen");if(!u(this,y0,"f"))throw Error("Final run has not been received");return u(this,y0,"f")},qS=function T($){let[J,W]=u(this,Y$,"m",PS).call(this,$,u(this,TJ,"f"));q$(this,TJ,J,"f"),u(this,zX,"f")[J.id]=J;for(let F of W){let X=J.content[F.index];if(X?.type=="text")this._emit("textCreated",X.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 X=F.text,Y=J.content[F.index];if(Y&&Y.type=="text")this._emit("textDelta",X,Y.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=u(this,Q1,"f")){if(u(this,L0,"f"))switch(u(this,L0,"f").type){case"text":this._emit("textDone",u(this,L0,"f").text,u(this,TJ,"f"));break;case"image_file":this._emit("imageFileDone",u(this,L0,"f").image_file,u(this,TJ,"f"));break}q$(this,Q1,F.index,"f")}q$(this,L0,J.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(u(this,Q1,"f")!==void 0){let F=$.data.content[u(this,Q1,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,u(this,TJ,"f"));break;case"text":this._emit("textDone",F.text,u(this,TJ,"f"));break}}if(u(this,TJ,"f"))this._emit("messageDone",$.data);q$(this,TJ,void 0,"f")}},IS=function T($){let J=u(this,Y$,"m",vS).call(this,$);switch(q$(this,IW,J,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let W=$.data.delta;if(W.step_details&&W.step_details.type=="tool_calls"&&W.step_details.tool_calls&&J.step_details.type=="tool_calls")for(let X of W.step_details.tool_calls)if(X.index==u(this,fX,"f"))this._emit("toolCallDelta",X,J.step_details.tool_calls[X.index]);else{if(u(this,I$,"f"))this._emit("toolCallDone",u(this,I$,"f"));if(q$(this,fX,X.index,"f"),q$(this,I$,J.step_details.tool_calls[X.index],"f"),u(this,I$,"f"))this._emit("toolCallCreated",u(this,I$,"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(q$(this,IW,void 0,"f"),$.data.step_details.type=="tool_calls"){if(u(this,I$,"f"))this._emit("toolCallDone",u(this,I$,"f")),q$(this,I$,void 0,"f")}this._emit("runStepDone",$.data,J);break;case"thread.run.step.in_progress":break}},bS=function T($){u(this,N8,"f").push($),this._emit("event",$)},vS=function T($){switch($.event){case"thread.run.step.created":return u(this,MJ,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let J=u(this,MJ,"f")[$.data.id];if(!J)throw Error("Received a RunStepDelta before creation of a snapshot");let W=$.data;if(W.delta){let F=b$.accumulateDelta(J,W.delta);u(this,MJ,"f")[$.data.id]=F}return u(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":u(this,MJ,"f")[$.data.id]=$.data;break}if(u(this,MJ,"f")[$.data.id])return u(this,MJ,"f")[$.data.id];throw new Error("No snapshot available")},PS=function T($,J){let W=[];switch($.event){case"thread.message.created":return[$.data,W];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 X of F.delta.content)if(X.index in J.content){let Y=J.content[X.index];J.content[X.index]=u(this,Y$,"m",hS).call(this,X,Y)}else J.content[X.index]=X,W.push(X);return[J,W];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(J)return[J,W];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},hS=function T($,J){return b$.accumulateDelta(J,$)},mS=function T($){switch(q$(this,KX,$.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,y0,$.data,"f"),u(this,I$,"f"))this._emit("toolCallDone",u(this,I$,"f")),q$(this,I$,void 0,"f");break;case"thread.run.cancelling":break}};function MH(T){}class E1 extends m{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,W){return this._client.post(`/threads/${T}/messages/${$}`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/messages`,bW,{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 bW extends kT{}E1.MessagesPage=bW;class R1 extends m{retrieve(T,$,J,W={},F){if(HT(W))return this.retrieve(T,$,J,{},W);return this._client.get(`/threads/${T}/runs/${$}/steps/${J}`,{query:W,...F,headers:{"OpenAI-Beta":"assistants=v2",...F?.headers}})}list(T,$,J={},W){if(HT(J))return this.list(T,$,{},J);return this._client.getAPIList(`/threads/${T}/runs/${$}/steps`,vW,{query:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}}class vW extends kT{}R1.RunStepsPage=vW;class iJ extends m{constructor(){super(...arguments);this.steps=new R1(this._client)}create(T,$,J){let{include:W,...F}=$;return this._client.post(`/threads/${T}/runs`,{query:{include:W},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,W){return this._client.post(`/threads/${T}/runs/${$}`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/runs`,PW,{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 W=await this.create(T,$,J);return await this.poll(T,W.id,J)}createAndStream(T,$,J){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}async poll(T,$,J){let W={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)W["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:X}=await this.retrieve(T,$,{...J,headers:{...J?.headers,...W}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let Y=5000;if(J?.pollIntervalMs)Y=J.pollIntervalMs;else{let S=X.headers.get("openai-poll-after-ms");if(S){let A=parseInt(S);if(!isNaN(A))Y=A}}await VJ(Y);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,W){return this._client.post(`/threads/${T}/runs/${$}/submit_tool_outputs`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers},stream:J.stream??!1})}async submitToolOutputsAndPoll(T,$,J,W){let F=await this.submitToolOutputs(T,$,J,W);return await this.poll(T,F.id,W)}submitToolOutputsStream(T,$,J,W){return b$.createToolAssistantStream(T,$,this._client.beta.threads.runs,J,W)}}class PW extends kT{}iJ.RunsPage=PW;iJ.Steps=R1;iJ.RunStepsPage=vW;class NJ extends m{constructor(){super(...arguments);this.runs=new iJ(this._client),this.messages=new E1(this._client)}create(T={},$){if(HT(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,$)}}NJ.Runs=iJ;NJ.RunsPage=PW;NJ.Messages=E1;NJ.MessagesPage=bW;class HJ extends m{constructor(){super(...arguments);this.realtime=new B0(this._client),this.chat=new CW(this._client),this.assistants=new z1(this._client),this.threads=new NJ(this._client)}}HJ.Realtime=B0;HJ.Assistants=z1;HJ.AssistantsPage=UW;HJ.Threads=NJ;class U1 extends m{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class _1 extends m{create(T,$){let J=!!T.encoding_format,W=J?T.encoding_format:"base64";if(J)kJ("Request","User defined encoding_format:",T.encoding_format);let F=this._client.post("/embeddings",{body:{...T,encoding_format:W},...$});if(J)return F;return kJ("response","Decoding base64 embeddings to float32 array"),F._thenUnwrap((X)=>{if(X&&X.data)X.data.forEach((Y)=>{let S=Y.embedding;Y.embedding=US(S)});return X})}}class N0 extends m{create(T,$){return this._client.post("/files",n$({body:T,...$}))}retrieve(T,$){return this._client.get(`/files/${T}`,$)}list(T={},$){if(HT(T))return this.list({},T);return this._client.getAPIList("/files",k1,{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 W=new Set(["processed","error","deleted"]),F=Date.now(),X=await this.retrieve(T);while(!X.status||!W.has(X.status))if(await VJ($),X=await this.retrieve(T),Date.now()-F>J)throw new K0({message:`Giving up on waiting for file ${T} to finish processing after ${J} milliseconds.`});return X}}class k1 extends kT{}N0.FileObjectsPage=k1;class V1 extends m{list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,hW,{query:$,...J})}}class hW extends kT{}V1.FineTuningJobCheckpointsPage=hW;class CJ extends m{constructor(){super(...arguments);this.checkpoints=new V1(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(HT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",mW,{query:T,...$})}cancel(T,$){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,$)}listEvents(T,$={},J){if(HT($))return this.listEvents(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,gW,{query:$,...J})}}class mW extends kT{}class gW extends kT{}CJ.FineTuningJobsPage=mW;CJ.FineTuningJobEventsPage=gW;CJ.Checkpoints=V1;CJ.FineTuningJobCheckpointsPage=hW;class xJ extends m{constructor(){super(...arguments);this.jobs=new CJ(this._client)}}xJ.Jobs=CJ;xJ.FineTuningJobsPage=mW;xJ.FineTuningJobEventsPage=gW;class B1 extends m{createVariation(T,$){return this._client.post("/images/variations",n$({body:T,...$}))}edit(T,$){return this._client.post("/images/edits",n$({body:T,...$}))}generate(T,$){return this._client.post("/images/generations",{body:T,...$})}}class C0 extends m{retrieve(T,$){return this._client.get(`/models/${T}`,$)}list(T){return this._client.getAPIList("/models",L1,T)}del(T,$){return this._client.delete(`/models/${T}`,$)}}class L1 extends D0{}C0.ModelsPage=L1;class y1 extends m{create(T,$){return this._client.post("/moderations",{body:T,...$})}}function gS(T,$){if(!$||!EH($))return{...T,output_parsed:null,output:T.output.map((J)=>{if(J.type==="function_call")return{...J,parsed_arguments:null};if(J.type==="message")return{...J,content:J.content.map((W)=>({...W,parsed:null}))};else return J})};return C8(T,$)}function C8(T,$){let J=T.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:_H($,F)};if(F.type==="message"){let X=F.content.map((Y)=>{if(Y.type==="output_text")return{...Y,parsed:QH($,Y.text)};return Y});return{...F,content:X}}return F}),W=Object.assign({},T,{output:J});if(!Object.getOwnPropertyDescriptor(T,"output_text"))x8(W);return Object.defineProperty(W,"output_parsed",{enumerable:!0,get(){for(let F of W.output){if(F.type!=="message")continue;for(let X of F.content)if(X.type==="output_text"&&X.parsed!==null)return X.parsed}return null}}),W}function QH(T,$){if(T.text?.format?.type!=="json_schema")return null;if("$parseRaw"in T.text?.format)return(T.text?.format).$parseRaw($);return JSON.parse($)}function EH(T){if(LW(T.text?.format))return!0;return!1}function RH(T){return T?.$brand==="auto-parseable-tool"}function UH(T,$){return T.find((J)=>J.type==="function"&&J.name===$)}function _H(T,$){let J=UH(T.tools??[],$.name);return{...$,...$,parsed_arguments:RH(J)?J.$parseRaw($.arguments):J?.strict?JSON.parse($.arguments):null}}function x8(T){let $=[];for(let J of T.output){if(J.type!=="message")continue;for(let W of J.content)if(W.type==="output_text")$.push(W.text)}T.output_text=$.join("")}class cW extends m{list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/responses/${T}/input_items`,j8,{query:$,...J})}}var N1=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="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 W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},tJ=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},C1,DX,lJ,QX,cS,nS,pS,oS;class EX extends U0{constructor(T){super();C1.add(this),DX.set(this,void 0),lJ.set(this,void 0),QX.set(this,void 0),N1(this,DX,T,"f")}static createResponse(T,$,J){let W=new EX($);return W._run(()=>W._createResponse(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}async _createResponse(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}tJ(this,C1,"m",cS).call(this);let F=await T.responses.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let X of F)tJ(this,C1,"m",nS).call(this,X);if(F.controller.signal?.aborted)throw new aT;return tJ(this,C1,"m",pS).call(this)}[(DX=new WeakMap,lJ=new WeakMap,QX=new WeakMap,C1=new WeakSet,cS=function T(){if(this.ended)return;N1(this,lJ,void 0,"f")},nS=function T($){if(this.ended)return;let J=tJ(this,C1,"m",oS).call(this,$);switch(this._emit("event",$),$.type){case"response.output_text.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="message"){let F=W.content[$.content_index];if(!F)throw new d(`missing content at index ${$.content_index}`);if(F.type!=="output_text")throw new d(`expected content to be 'output_text', got ${F.type}`);this._emit("response.output_text.delta",{...$,snapshot:F.text})}break}case"response.function_call_arguments.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="function_call")this._emit("response.function_call_arguments.delta",{...$,snapshot:W.arguments});break}default:this._emit($.type,$);break}},pS=function T(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let $=tJ(this,lJ,"f");if(!$)throw new d("request ended without sending any events");N1(this,lJ,void 0,"f");let J=VH($,tJ(this,DX,"f"));return N1(this,QX,J,"f"),J},oS=function T($){let J=tJ(this,lJ,"f");if(!J){if($.type!=="response.created")throw new d(`When snapshot hasn't been set yet, expected 'response.created' event, got ${$.type}`);return J=N1(this,lJ,$.response,"f"),J}switch($.type){case"response.output_item.added":{J.output.push($.item);break}case"response.content_part.added":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="message")W.content.push($.part);break}case"response.output_text.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="message"){let F=W.content[$.content_index];if(!F)throw new d(`missing content at index ${$.content_index}`);if(F.type!=="output_text")throw new d(`expected content to be 'output_text', got ${F.type}`);F.text+=$.delta}break}case"response.function_call_arguments.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="function_call")W.arguments+=$.delta;break}case"response.completed":{N1(this,lJ,$.response,"f");break}}return J},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).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}}}}async finalResponse(){await this.done();let T=tJ(this,QX,"f");if(!T)throw new d("stream ended without producing a ChatCompletion");return T}}function VH(T,$){return gS(T,$)}class x0 extends m{constructor(){super(...arguments);this.inputItems=new cW(this._client)}create(T,$){return this._client.post("/responses",{body:T,...$,stream:T.stream??!1})._thenUnwrap((J)=>{if("object"in J&&J.object==="response")x8(J);return J})}retrieve(T,$={},J){if(HT($))return this.retrieve(T,{},$);return this._client.get(`/responses/${T}`,{query:$,...J})}del(T,$){return this._client.delete(`/responses/${T}`,{...$,headers:{Accept:"*/*",...$?.headers}})}parse(T,$){return this._client.responses.create(T,$)._thenUnwrap((J)=>C8(J,T))}stream(T,$){return EX.createResponse(this._client,T,$)}}class j8 extends kT{}x0.InputItems=cW;class nW extends m{create(T,$,J){return this._client.post(`/uploads/${T}/parts`,n$({body:$,...J}))}}class j0 extends m{constructor(){super(...arguments);this.parts=new nW(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})}}j0.Parts=nW;var dS=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 W=[];for(let F of $)if(F.status==="fulfilled")W.push(F.value);return W};class Z0 extends m{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}})}update(T,$,J,W){return this._client.post(`/vector_stores/${T}/files/${$}`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}list(T,$={},J){if(HT($))return this.list(T,{},$);return this._client.getAPIList(`/vector_stores/${T}/files`,q0,{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 W=await this.create(T,$,J);return await this.poll(T,W.id,J)}async poll(T,$,J){let W={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)W["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let F=await this.retrieve(T,$,{...J,headers:W}).withResponse(),X=F.data;switch(X.status){case"in_progress":let Y=5000;if(J?.pollIntervalMs)Y=J.pollIntervalMs;else{let S=F.response.headers.get("openai-poll-after-ms");if(S){let A=parseInt(S);if(!isNaN(A))Y=A}}await VJ(Y);break;case"failed":case"completed":return X}}}async upload(T,$,J){let W=await this._client.files.create({file:$,purpose:"assistants"},J);return this.create(T,{file_id:W.id},J)}async uploadAndPoll(T,$,J){let W=await this.upload(T,$,J);return await this.poll(T,W.id,J)}content(T,$,J){return this._client.getAPIList(`/vector_stores/${T}/files/${$}/content`,pW,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class q0 extends kT{}class pW extends D0{}Z0.VectorStoreFilesPage=q0;Z0.FileContentResponsesPage=pW;class oW extends m{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 W=await this.create(T,$);return await this.poll(T,W.id,J)}listFiles(T,$,J={},W){if(HT(J))return this.listFiles(T,$,{},J);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${$}/files`,q0,{query:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}async poll(T,$,J){let W={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)W["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:X}=await this.retrieve(T,$,{...J,headers:W}).withResponse();switch(F.status){case"in_progress":let Y=5000;if(J?.pollIntervalMs)Y=J.pollIntervalMs;else{let S=X.headers.get("openai-poll-after-ms");if(S){let A=parseInt(S);if(!isNaN(A))Y=A}}await VJ(Y);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(T,{files:$,fileIds:J=[]},W){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=W?.maxConcurrency??5,X=Math.min(F,$.length),Y=this._client,S=$.values(),A=[...J];async function w(M){for(let H of M){let f=await Y.files.create({file:H,purpose:"assistants"},W);A.push(f.id)}}let G=Array(X).fill(S).map(w);return await dS(G),await this.createAndPoll(T,{file_ids:A})}}class p$ extends m{constructor(){super(...arguments);this.files=new Z0(this._client),this.fileBatches=new oW(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(HT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",x1,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}search(T,$,J){return this._client.getAPIList(`/vector_stores/${T}/search`,j1,{body:$,method:"post",...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class x1 extends kT{}class j1 extends D0{}p$.VectorStoresPage=x1;p$.VectorStoreSearchResponsesPage=j1;p$.Files=Z0;p$.VectorStoreFilesPage=q0;p$.FileContentResponsesPage=pW;p$.FileBatches=oW;var uS;class FT extends G8{constructor({baseURL:T=KW("OPENAI_BASE_URL"),apiKey:$=KW("OPENAI_API_KEY"),organization:J=KW("OPENAI_ORG_ID")??null,project:W=KW("OPENAI_PROJECT_ID")??null,...F}={}){if($===void 0)throw new d("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 X={apiKey:$,organization:J,project:W,...F,baseURL:T||"https://api.openai.com/v1"};if(!X.dangerouslyAllowBrowser&&RS())throw new d(`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,14 +40,14 @@ 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:X.baseURL,timeout:X.timeout??600000,httpAgent:X.httpAgent,maxRetries:X.maxRetries,fetch:X.fetch});this.completions=new U1(this),this.chat=new nJ(this),this.embeddings=new _1(this),this.files=new y0(this),this.images=new B1(this),this.audio=new VJ(this),this.moderations=new y1(this),this.models=new N0(this),this.fineTuning=new CJ(this),this.vectorStores=new p$(this),this.beta=new HJ(this),this.batches=new R0(this),this.uploads=new C0(this),this.responses=new tJ(this),this._options=X,this.apiKey=$,this.organization=J,this.project=W}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 t2(T,{arrayFormat:"brackets"})}}n6=FT;FT.OpenAI=n6;FT.DEFAULT_TIMEOUT=600000;FT.OpenAIError=d;FT.APIError=nT;FT.APIConnectionError=O0;FT.APIConnectionTimeoutError=z0;FT.APIUserAbortError=aT;FT.NotFoundError=uF;FT.ConflictError=iF;FT.RateLimitError=lF;FT.BadRequestError=pF;FT.AuthenticationError=oF;FT.InternalServerError=rF;FT.PermissionDeniedError=dF;FT.UnprocessableEntityError=tF;FT.toFile=X8;FT.fileFromPath=nF;FT.Completions=U1;FT.Chat=nJ;FT.ChatCompletionsPage=E0;FT.Embeddings=_1;FT.Files=y0;FT.FileObjectsPage=k1;FT.Images=B1;FT.Audio=VJ;FT.Moderations=y1;FT.Models=N0;FT.ModelsPage=L1;FT.FineTuning=CJ;FT.VectorStores=p$;FT.VectorStoresPage=j1;FT.VectorStoreSearchResponsesPage=Z1;FT.Beta=HJ;FT.Batches=R0;FT.BatchesPage=M1;FT.Uploads=C0;FT.Responses=tJ;var p6=FT;var a6=qw(u6(),1);import{createHash as LH}from"crypto";import*as B$ from"fs";import{copyFile as yH}from"fs/promises";import*as q1 from"path";import{resolve as NH}from"path";import{existsSync as C8,mkdirSync as i6,readdirSync as t6,readFileSync as VH,rmSync as l6,statSync as r6,writeFileSync as BH}from"fs";import{resolve as x8}from"path";class j8{rootDir;get initialized(){return C8(this.rootDir)}initialize(){if(!this.initialized)i6(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=x8(this.rootDir,T);if(C8($))return VH($,"utf-8");return null}setItem(T,$){this.initialize();let J=x8(this.rootDir,T);BH(J,$)}removeItem(T){let $=x8(this.rootDir,T);if(C8($))this.initialize(),l6($)}key(T){return t6(this.rootDir).sort((W,F)=>{let X=r6(W);return r6(F).ctimeMs-X.ctimeMs})[T]??null}clear(){l6(this.rootDir,{recursive:!0}),i6(this.rootDir,{recursive:!0})}get length(){return t6(this.rootDir).length}}var s6=/[^a-zA-Z0-9\-._]/g;function I1(T,$=64){let J=T.replace(s6,"-");if(J.length<=$)return J;let W=LH("sha256").update(T).digest("hex");return J.slice(-$)+"+"+W}var CH=a6.default("varmint"),iW=I1(process.cwd(),150),Z8=NH(CH,iW),pT="_-$-_-$-_",e6=`file${pT}`,T7=`list${pT}`,$7=`root${pT}`,xH=`unmatched${pT}`,VT={storage:new j8({path:Z8,eagerInit:!1}),startGlobalTracking(){if(console.log(`\uD83D\uDC3F\uFE0F Starting global tracking of varmint files using project identifier "${iW}"`),VT.storage.initialized)console.error(`\uD83D\uDCA5 The global cache for the project "${iW}" was found already initialized. Clearing it and starting fresh.`),VT.storage.clear();VT.storage.initialize()},async prepareUploads(T){console.log(`\uD83D\uDC3F\uFE0F Moving unmatched inputs to /tmp/varmint-uploads using project identifier "${iW}"`);let $=[];for(let J of B$.readdirSync(VT.storage.rootDir))if(RX(`unmatched${pT}`,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:",`
43
+ `);super({baseURL:X.baseURL,timeout:X.timeout??600000,httpAgent:X.httpAgent,maxRetries:X.maxRetries,fetch:X.fetch});this.completions=new U1(this),this.chat=new oJ(this),this.embeddings=new _1(this),this.files=new N0(this),this.images=new B1(this),this.audio=new BJ(this),this.moderations=new y1(this),this.models=new C0(this),this.fineTuning=new xJ(this),this.vectorStores=new p$(this),this.beta=new HJ(this),this.batches=new R0(this),this.uploads=new j0(this),this.responses=new x0(this),this._options=X,this.apiKey=$,this.organization=J,this.project=W}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 t2(T,{arrayFormat:"brackets"})}}uS=FT;FT.OpenAI=uS;FT.DEFAULT_TIMEOUT=600000;FT.OpenAIError=d;FT.APIError=nT;FT.APIConnectionError=O0;FT.APIConnectionTimeoutError=K0;FT.APIUserAbortError=aT;FT.NotFoundError=uF;FT.ConflictError=iF;FT.RateLimitError=lF;FT.BadRequestError=pF;FT.AuthenticationError=oF;FT.InternalServerError=rF;FT.PermissionDeniedError=dF;FT.UnprocessableEntityError=tF;FT.toFile=S8;FT.fileFromPath=nF;FT.Completions=U1;FT.Chat=oJ;FT.ChatCompletionsPage=E0;FT.Embeddings=_1;FT.Files=N0;FT.FileObjectsPage=k1;FT.Images=B1;FT.Audio=BJ;FT.Moderations=y1;FT.Models=C0;FT.ModelsPage=L1;FT.FineTuning=xJ;FT.VectorStores=p$;FT.VectorStoresPage=x1;FT.VectorStoreSearchResponsesPage=j1;FT.Beta=HJ;FT.Batches=R0;FT.BatchesPage=H1;FT.Uploads=j0;FT.Responses=x0;var iS=FT;var $9=cw(rS(),1);import{createHash as IH}from"node:crypto";import*as B$ from"node:fs";import{copyFile as bH}from"node:fs/promises";import*as Z1 from"node:path";import{resolve as vH}from"node:path";import{existsSync as Z8,mkdirSync as aS,readdirSync as sS,readFileSync as ZH,rmSync as eS,statSync as T9,writeFileSync as qH}from"node:fs";import{resolve as q8}from"node:path";class I8{rootDir;get initialized(){return Z8(this.rootDir)}initialize(){if(!this.initialized)aS(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=q8(this.rootDir,T);if(Z8($))return ZH($,"utf-8");return null}setItem(T,$){this.initialize();let J=q8(this.rootDir,T);qH(J,$)}removeItem(T){let $=q8(this.rootDir,T);if(Z8($))this.initialize(),eS($)}key(T){return sS(this.rootDir).sort((W,F)=>{let X=T9(W);return T9(F).ctimeMs-X.ctimeMs})[T]??null}clear(){eS(this.rootDir,{recursive:!0}),aS(this.rootDir,{recursive:!0})}get length(){return sS(this.rootDir).length}}var J9=/[^a-zA-Z0-9\-._]/g;function q1(T,$=64){let J=T.replace(J9,"-");if(J.length<=$)return J;let W=IH("sha256").update(T).digest("hex");return J.slice(-$)+"+"+W}var PH=$9.default("varmint"),iW=q1(process.cwd(),150),b8=vH(PH,iW),pT="_-$-_-$-_",W9=`file${pT}`,F9=`list${pT}`,X9=`root${pT}`,hH=`unmatched${pT}`,VT={storage:new I8({path:b8,eagerInit:!1}),startGlobalTracking(){if(console.log(`\uD83D\uDC3F\uFE0F Starting global tracking of varmint files using project identifier "${iW}"`),VT.storage.initialized)console.error(`\uD83D\uDCA5 The global cache for the project "${iW}" was found already initialized. Clearing it and starting fresh.`),VT.storage.clear();VT.storage.initialize()},async prepareUploads(T){console.log(`\uD83D\uDC3F\uFE0F Moving unmatched inputs to /tmp/varmint-uploads using project identifier "${iW}"`);let $=[];for(let J of B$.readdirSync(VT.storage.rootDir))if(RX(`unmatched${pT}`,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
- `,Z8),process.env[T])B$.mkdirSync("/tmp/varmint-uploads",{recursive:!0}),await Promise.all($.map(async(J)=>{let W=q1.join(Z8,J),F=q1.join("/tmp/varmint-uploads",J);await yH(W,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 "${iW}" and starting cleanup of untouched files.`),!VT.storage.initialized){console.error("\uD83D\uDCA5 called flushGlobal, but the global cache wasn't initialized with startGlobalTracking");return}let T=B$.readdirSync(VT.storage.rootDir),$=new Map,J=[],W=[],F=[];for(let S of T)if(RX(`root${pT}`,S))J.push(S);else if(RX(`list${pT}`,S))W.push(S);else if(RX(`file${pT}`,S))F.push(S);if(VT.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 S=new Map;for(let Y of J){let A=Y.replace($7,"");S.set(A,new Map);let w=VT.storage.getItem(Y);if(w)$.set(A,w);else console.error(`\uD83D\uDCA5 Could not find folder ${w} referenced in the global cache`)}for(let Y of W){let A=Y.replace(T7,""),[w,G]=A.split(pT),M=S.get(w);if(M)M.set(G,new Set);else console.error(`\uD83D\uDCA5 Could not find root ${w} for list ${G}`)}for(let Y of F){let A=Y.replace(e6,""),[w,G,M]=A.split(pT),H=S.get(w);if(H){let K=H.get(G);if(K)K.add(M);else console.error(`\uD83D\uDCA5 Could not find list ${G} for file ${A}`)}else console.error(`\uD83D\uDCA5 Could not find root ${w} for file ${A}`)}console.log("\uD83D\uDC3F\uFE0F ",S);for(let[Y,A]of S.entries()){let w=$.get(Y);if(!w){console.error(`\uD83D\uDCA5 Could not find root ${Y}`);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 H of M)if(H!==".ferret"&&!A.has(H)){let K=q1.join(w,H);console.log(`\uD83E\uDDF9 globalFlush: removing directory ${K}`),B$.rmSync(K,{recursive:!0})}for(let[H,K]of A.entries()){let D=q1.join(w,H);if(!B$.existsSync(D)){console.warn(`\uD83D\uDCA5 List folder ${D}, identified as being used during tracking, no longer exists.`);continue}let y=B$.readdirSync(D);for(let j of y){let L=j.replace(".input.json","").replace(".output.json","").replace(".stream.txt","");if(!K.has(L)){let Z=q1.join(D,j);console.log(`\uD83E\uDDF9 globalFlush: removing file ${Z}`),B$.rmSync(Z)}}}}}B$.rmSync(VT.storage.rootDir,{recursive:!0})}};function RX(T,$){return $.startsWith(T)}import*as ZT from"fs";import*as $J from"path";import{inspect as J7}from"util";var W7=class{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=I1(this.baseDir),VT.storage.initialized&&!VT.storage.getItem(`root${pT}${this.rootName}`))VT.storage.setItem(`root${pT}${this.rootName}`,this.baseDir)}read(T,$,J){let W=$J.join(this.baseDir,T),F=`${$}.input.json`,X=$J.join(W,F);if(!ZT.existsSync(X)){if(!ZT.existsSync(W)){if(VT.storage.initialized&&this.mode==="read")VT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with "${$}" was not found. Directory "${W}" does not exist.`)}let M=ZT.readdirSync(W).map((D)=>[D,ZT.readFileSync($J.join(W,D),"utf-8")]).filter(([D])=>D.endsWith(".input.json")),H=[];for(let[D,R]of M){let y=` ${D}`,j=` ${J7(JSON.parse(R),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
47
+ `,b8),process.env[T])B$.mkdirSync("/tmp/varmint-uploads",{recursive:!0}),await Promise.all($.map(async(J)=>{let W=Z1.join(b8,J),F=Z1.join("/tmp/varmint-uploads",J);await bH(W,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 "${iW}" and starting cleanup of untouched files.`),!VT.storage.initialized){console.error("\uD83D\uDCA5 called flushGlobal, but the global cache wasn't initialized with startGlobalTracking");return}let T=B$.readdirSync(VT.storage.rootDir),$=new Map,J=[],W=[],F=[];for(let Y of T)if(RX(`root${pT}`,Y))J.push(Y);else if(RX(`list${pT}`,Y))W.push(Y);else if(RX(`file${pT}`,Y))F.push(Y);if(VT.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 Y=new Map;for(let S of J){let A=S.replace(X9,"");Y.set(A,new Map);let w=VT.storage.getItem(S);if(w)$.set(A,w);else console.error(`\uD83D\uDCA5 Could not find folder ${w} referenced in the global cache`)}for(let S of W){let A=S.replace(F9,""),[w,G]=A.split(pT),M=Y.get(w);if(M)M.set(G,new Set);else console.error(`\uD83D\uDCA5 Could not find root ${w} for list ${G}`)}for(let S of F){let A=S.replace(W9,""),[w,G,M]=A.split(pT),H=Y.get(w);if(H){let f=H.get(G);if(f)f.add(M);else console.error(`\uD83D\uDCA5 Could not find list ${G} for file ${A}`)}else console.error(`\uD83D\uDCA5 Could not find root ${w} for file ${A}`)}console.log("\uD83D\uDC3F\uFE0F ",Y);for(let[S,A]of Y.entries()){let w=$.get(S);if(!w){console.error(`\uD83D\uDCA5 Could not find root ${S}`);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 H of M)if(H!==".ferret"&&!A.has(H)){let f=Z1.join(w,H);console.log(`\uD83E\uDDF9 globalFlush: removing directory ${f}`),B$.rmSync(f,{recursive:!0})}for(let[H,f]of A.entries()){let D=Z1.join(w,H);if(!B$.existsSync(D)){console.warn(`\uD83D\uDCA5 List folder ${D}, identified as being used during tracking, no longer exists.`);continue}let y=B$.readdirSync(D);for(let j of y){let L=j.replace(".input.json","").replace(".output.json","").replace(".stream.txt","");if(!f.has(L)){let Z=Z1.join(D,j);console.log(`\uD83E\uDDF9 globalFlush: removing file ${Z}`),B$.rmSync(Z)}}}}}B$.rmSync(VT.storage.rootDir,{recursive:!0})}};function RX(T,$){return $.startsWith(T)}import*as ZT from"node:fs";import*as $J from"node:path";import{inspect as Y9}from"node:util";var S9=class{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=q1(this.baseDir),VT.storage.initialized&&!VT.storage.getItem(`root${pT}${this.rootName}`))VT.storage.setItem(`root${pT}${this.rootName}`,this.baseDir)}read(T,$,J){let W=$J.join(this.baseDir,T),F=`${$}.input.json`,X=$J.join(W,F);if(!ZT.existsSync(X)){if(!ZT.existsSync(W)){if(VT.storage.initialized&&this.mode==="read")VT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with "${$}" was not found. Directory "${W}" does not exist.`)}let M=ZT.readdirSync(W).map((D)=>[D,ZT.readFileSync($J.join(W,D),"utf-8")]).filter(([D])=>D.endsWith(".input.json")),H=[];for(let[D,R]of M){let y=` ${D}`,j=` ${Y9(JSON.parse(R),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
48
48
  `).join(`
49
- `)}`;H.push(y,j)}let K=` ${F}
50
- ${J7(J,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
49
+ `)}`;H.push(y,j)}let f=` ${F}
50
+ ${Y9(J,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
51
51
  `).join(`
52
52
  `)}`;if(VT.storage.initialized&&this.mode==="read")VT.storage.setItem(`unmatched${pT}${F}`,JSON.stringify(J,null,"\t")),VT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with subKey "${$}" (${X}) was not found. Directory "${W}" 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
 
@@ -56,28 +56,28 @@ ${H.join(`
56
56
  `)}
57
57
 
58
58
  YOUR INPUT DATA:
59
- ${K}
60
- `)}let S=ZT.readFileSync(X,"utf-8"),Y=JSON.stringify(J,null,"\t");if(Y!==S){if(VT.storage.initialized&&this.mode==="read")VT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: the content of the cached input file ${X} does not match the input provided.
59
+ ${f}
60
+ `)}let Y=ZT.readFileSync(X,"utf-8"),S=JSON.stringify(J,null,"\t");if(S!==Y){if(VT.storage.initialized&&this.mode==="read")VT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: the content of the cached input file ${X} does not match the input provided.
61
61
 
62
62
  Provided:
63
- ${Y}
63
+ ${S}
64
64
 
65
65
  Cached:
66
- ${S}`)}let A=$J.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(ZT.readFileSync(A,"utf-8"))}async write(T,$,J,W){let F=$J.join(this.baseDir,T),X=$J.join(F,`${$}.input.json`),S=$J.join(F,`${$}.output.json`),Y=JSON.stringify(J,null,"\t");if(!ZT.existsSync(this.baseDir))ZT.mkdirSync(this.baseDir,{recursive:!0});if(!ZT.existsSync(F))ZT.mkdirSync(F);if(ZT.writeFileSync(X,Y),ZT.existsSync(S))ZT.unlinkSync(S);let A=await W(...J),w=JSON.stringify(A,null,"\t");return ZT.writeFileSync(S,w),A}add(T,$){let J=`${this.rootName}${pT}${I1(T)}`;return{flush:()=>{this.flush(T)},for:(W)=>{if(this.mode!=="off"){if(this.filesTouched.set(T,new Set),VT.storage.initialized&&!VT.storage.getItem(`list${pT}${J}`))VT.storage.setItem(`list${pT}${J}`,"true")}return{get:async(...F)=>{let X=W;if(this.mode!=="off"){let S=this.filenameCache.get(W);if(!S)S=I1(W),this.filenameCache.set(W,S);X=S,this.filesTouched.get(T)?.add(X);let Y=`${J}${pT}${X}`,A=`file${pT}${Y}`;if(VT.storage.initialized&&!VT.storage.getItem(A))VT.storage.setItem(A,"true")}switch(this.mode){case"off":return $(...F);case"read":return this.read(T,X,F);case"write":return this.write(T,X,F,$);case"read-write":try{return this.read(T,X,F)}catch(S){if(S instanceof Error)return this.write(T,X,F,$);throw S}}}}}}}flush(...T){console.log(this.filesTouched);for(let[$,J]of this.filesTouched.entries())if(T.length===0||T.includes($)){let W=$J.join(this.baseDir,$),F=ZT.readdirSync(W);for(let X of F){let S=X.replace(".input.json","").replace(".output.json","");if(!J.has(S))console.info(`\uD83E\uDDF9 Flushing ${S}`),ZT.unlinkSync($J.join(W,X))}}}};function jH(T,...$){let[J,W,F,X]=$,S=[{role:"user",content:dY(W)},{role:"user",content:J}],Y=X.at(-1);if(Y)S.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(Y.response,null,2),"Here's the error message:",Y.error.toString()].join(`
67
- `)});return{model:T,messages:S}}var q8={"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 ZH(T){return async function $(J,W){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"}},W),X=F.choices[0].message?.content,{usage:S}=F;if(X&&S){let Y=S.prompt_tokens,A=S.prompt_tokens_details?.cached_tokens??0,w=Y-A,G=S.completion_tokens,M=Y*q8[J.model].promptPricePerToken+w*q8[J.model].promptPricePerTokenCached+G*q8[J.model].completionPricePerToken;return{data:JSON.parse(X),usage:S,usdPrice:M}}if(!X&&!S)throw new Error("No content or usage found in completion");if(!X)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var F7=new Map,X7=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:W,cachingMode:F,cacheKey:X="openai-safegen",logger:S}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new W7(F);let Y=F7.get(W);if(F!=="read"){if(!Y)Y=new p6({apiKey:W,dangerouslyAllowBrowser:!1}),F7.set(W,Y);this.client=Y}this.getUnknownJsonFromOpenAi=ZH(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(X,this.getUnknownJsonFromOpenAi),this.from=oY(async(...A)=>{if(this.usdBudget<this.usdMinimum)return S?.warn("SafeGen budget exhausted"),A[1];let w=jH(T,...A),G=A[0],M=A[3],{data:H,usage:K,usdPrice:D}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${G.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${M.length}`).get(w);return this.lastUsage=K,this.usdBudget-=D,H})}from};import{exec as i3}from"child_process";var I8=(T)=>{let $=N$(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let J=new Map;for(let[W,F]of T.atoms){if(PJ(W))continue;let X=k$(F);if(F.family){let S=J.get(F.family.key);if(!S||!("familyMembers"in S))S={key:F.family.key,familyMembers:new Map},J.set(F.family.key,S);S.familyMembers.set(F.family.subKey,X)}else J.set(W,X)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(W)=>{if(PJ(W.key))return;J((F)=>{if(W.family){let{key:X,subKey:S}=W.family,Y=F.get(X);if(Y===void 0||!("familyMembers"in Y))Y={key:X,familyMembers:new Map},F.set(X,Y);Y.familyMembers.set(S,W)}else F.set(W.key,W);return F})}),T.on.atomDisposal.subscribe("introspection",(W)=>{J((F)=>{if(W.family){let{key:X,subKey:S}=W.family,Y=F.get(X);if(Y&&"familyMembers"in Y){if(Y.familyMembers.delete(S),Y.familyMembers.size===0)F.delete(X)}}else F.delete(W.key);return F})})}]},void 0);return KJ(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:J})=>J($)})};var b8=(T)=>{let $=N$(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let J=new Map;for(let W of[T.readonlySelectors,T.selectors])for(let[F,X]of W){if(PJ(F))continue;let S=k$(X);if(X.family){let Y=J.get(X.family.key);if(!Y||!("familyMembers"in Y))Y={key:X.family.key,familyMembers:new Map},J.set(X.family.key,Y);Y.familyMembers.set(X.family.subKey,S)}else J.set(F,S)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(W)=>{if(PJ(W.key))return;J((F)=>{if(W.family){let{key:X,subKey:S}=W.family,Y=F.get(X);if(Y===void 0||!("familyMembers"in Y))Y={key:X,familyMembers:new Map},F.set(X,Y);Y.familyMembers.set(S,W)}else F.set(W.key,W);return F})}),T.on.selectorDisposal.subscribe("introspection",(W)=>{J((F)=>{if(W.family){let{key:X,subKey:S}=W.family,Y=F.get(X);if(Y&&"familyMembers"in Y){if(Y.familyMembers.delete(S),Y.familyMembers.size===0)F.delete(X)}}else F.delete(W.key);return F})})}]},void 0);return KJ(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:J})=>J($)})};class UX{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(W){try{if(T instanceof J)return{type:$,data:T}}catch(F){}}return null}}var v8=new UX({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function P8(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var h8=new UX({object:P8,array:(T)=>Array.isArray(T)}),qH=new UX({...v8.supported,...h8.supported}),b1=(T)=>{if(T===void 0)return"undefined";let $=qH.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class S7{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=AT.STORE){this.store=T,this.atomIndex=I8(this.store),this.selectorIndex=b8(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=S7.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=z2(this.atomIndex),J=z2(this.selectorIndex),W=[...$.values()].filter((Y)=>("familyMembers"in Y)),F=[...J.values()].filter((Y)=>("familyMembers"in Y)),X=performance.now(),S=[];if(T.atomFamilies)for(let Y of W){let A=Y.familyMembers.values();for(let w of A){let M=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,H=X-M;S.push([w,H])}}if(T.selectorFamilies)for(let Y of F){let A=Y.familyMembers.values();for(let w of A){let M=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,H=X-M;S.push([w,H])}}return S}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var m8=(T,$)=>{let J=(W,F)=>{let S=((A,w)=>{let G=$(A,w);if(G)return G;return null})(W,F);if(S?.jobComplete??S?.pathComplete)return S;let Y=Array.isArray(F)?F.map((A,w)=>[w,A]):P8(F)?Object.entries(F):[];for(let[A,w]of Y){let G=J([...W,A],w);if(G?.jobComplete)return G}return{}};J([],T)};function IH(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function bH(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function vH(T,$){return{summary:`${T} \u2192 ${$}`}}function Y7(T,$,J){let W="",F=[],X=[],S=[];return m8(T,(Y,A)=>{let w;for(w of Y){let G=$[w];if(G===void 0)X.push([w,JSON.stringify(A)]);else{let M=J(A,G);if(M.summary!=="No Change")S.push([w,M])}}}),m8($,(Y,A)=>{let w;for(w of Y)if(T[w]===void 0)F.push([w,JSON.stringify(A)])}),W=`\uFF5E${S.length} \uFF0B${F.length} \uFF0D${X.length}`,{summary:W,added:F,removed:X,changed:S}}function PH(T,$,J){return Y7(T,$,J)}class A7{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,J){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let W of Object.keys(T.supported)){let F=J[W];this.leafDiffers[W]=F}for(let W of Object.keys($.supported)){let F=J[W];this.treeDiffers[W]=F}}diff(T,$){if(T===$)return{summary:"No Change"};let J=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),W=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(J!==null&&W!==null){if(J.type===W.type){if(J.type in this.leafDiffers)return this.leafDiffers[J.type](J.data,W.data);if(J.type in this.treeDiffers)return this.treeDiffers[J.type](J.data,W.data,(Y,A)=>this.diff(Y,A))}}let F=b1(T),X=b1($);if(F===X)return{summary:`${F} \u2192 ${X}`};return{summary:`Type change: ${F} \u2192 ${X}`}}}var hx=new A7(v8,h8,{number:IH,string:bH,boolean:vH,null:()=>({summary:"No Change"}),object:Y7,array:PH});var z=Symbol.for("drizzle:entityKind"),ux=Symbol.for("drizzle:hasOwnEntityKind");function _(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,z))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(z in J&&J[z]===$[z])return!0;J=Object.getPrototypeOf(J)}return!1}class BT{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[z]="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 g8{static[z]="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 c8{static[z]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:W,foreignColumns:F}=T();return{name:J,columns:W,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 w7(T,this)}}class w7{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[z]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:J}=this.reference(),W=$.map((S)=>S.name),F=J.map((S)=>S.name),X=[this.table[JJ],...W,J[0].table[JJ],...F];return T??`${X.join("_")}_fk`}}function _X(T,...$){return T(...$)}function G7(T,$){return`${T[JJ]}_${$.join("_")}_unique`}function M7(T,$,J){for(let W=$;W<T.length;W++){let F=T[W];if(F==="\\"){W++;continue}if(F==='"')return[T.slice($,W).replace(/\\/g,""),W+1];if(J)continue;if(F===","||F==="}")return[T.slice($,W).replace(/\\/g,""),W]}return[T.slice($).replace(/\\/g,""),T.length]}function H7(T,$=0){let J=[],W=$,F=!1;while(W<T.length){let X=T[W];if(X===","){if(F||W===$)J.push("");F=!0,W++;continue}if(F=!1,X==="\\"){W+=2;continue}if(X==='"'){let[A,w]=M7(T,W+1,!0);J.push(A),W=w;continue}if(X==="}")return[J,W+1];if(X==="{"){let[A,w]=H7(T,W+1);J.push(A),W=w;continue}let[S,Y]=M7(T,W,!1);J.push(S),W=Y}return[J,W]}function O7(T){let[$]=H7(T,1);return $}function n8(T){return`{${T.map(($)=>{if(Array.isArray($))return n8($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class n extends g8{foreignKeyConfigs=[];static[z]="PgColumnBuilder";array(T){return new f7(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:W})=>{return _X((F,X)=>{let S=new c8(()=>{let Y=F();return{columns:[T],foreignColumns:[Y]}});if(X.onUpdate)S.onUpdate(X.onUpdate);if(X.onDelete)S.onDelete(X.onDelete);return S.build($)},J,W)})}buildExtraConfigColumn(T){return new z7(T,this.config)}}class q extends BT{constructor(T,$){if(!$.uniqueName)$.uniqueName=G7(T,[$.name]);super(T,$);this.table=T}static[z]="PgColumn"}class z7 extends q{static[z]="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 tW{static[z]="IndexedColumn";constructor(T,$,J,W){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=W}name;keyAsName;type;indexConfig}class f7 extends n{static[z]="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 p8(T,this.config,$)}}class p8 extends q{constructor(T,$,J,W){super(T,$);this.baseColumn=J,this.range=W,this.size=$.size}size;static[z]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=O7(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let J=T.map((W)=>W===null?null:_(this.baseColumn,p8)?this.baseColumn.mapToDriverValue(W,!0):this.baseColumn.mapToDriverValue(W));if($)return J;return n8(J)}}var o8=Symbol.for("drizzle:isPgEnum");function K7(T){return!!T&&typeof T==="function"&&o8 in T&&T[o8]===!0}class D7 extends n{static[z]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new Q7(T,this.config)}}class Q7 extends q{static[z]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function kX(T,$){return hH(T,$,void 0)}function hH(T,$,J){let W=Object.assign((F)=>new D7(F??"",W),{enumName:T,enumValues:$,schema:J,[o8]:!0});return W}class eT{static[z]="Subquery";constructor(T,$,J,W=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:W}}}class lW extends eT{static[z]="WithSubquery"}var E7="0.40.0";var d8,u8,LT={startActiveSpan(T,$){if(!d8)return $();if(!u8)u8=d8.trace.getTracer("drizzle-orm",E7);return _X((J,W)=>W.startActiveSpan(T,(F)=>{try{return $(F)}catch(X){throw F.setStatus({code:J.SpanStatusCode.ERROR,message:X instanceof Error?X.message:"Unknown error"}),X}finally{F.end()}}),d8,u8)}};var CT=Symbol.for("drizzle:ViewBaseConfig");var VX=Symbol.for("drizzle:Schema"),BX=Symbol.for("drizzle:Columns"),R7=Symbol.for("drizzle:ExtraConfigColumns"),i8=Symbol.for("drizzle:OriginalName"),t8=Symbol.for("drizzle:BaseName"),rW=Symbol.for("drizzle:IsAlias"),U7=Symbol.for("drizzle:ExtraConfigBuilder"),mH=Symbol.for("drizzle:IsDrizzleTable");class h{static[z]="Table";static Symbol={Name:JJ,Schema:VX,OriginalName:i8,Columns:BX,ExtraConfigColumns:R7,BaseName:t8,IsAlias:rW,ExtraConfigBuilder:U7};[JJ];[i8];[VX];[BX];[R7];[t8];[rW]=!1;[mH]=!0;[U7]=void 0;constructor(T,$,J){this[JJ]=this[i8]=T,this[VX]=$,this[t8]=J}}function W$(T){return T[JJ]}function Z0(T){return`${T[VX]??"public"}.${T[JJ]}`}function l8(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function gH(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[z]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new m([this])}}class m{constructor(T){this.queryChunks=T}static[z]="SQL";decoder=k7;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return LT.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:W,escapeName:F,escapeParam:X,prepareTyping:S,inlineParams:Y,paramStartIndex:A}=J;return gH(T.map((w)=>{if(_(w,T$))return{sql:w.value.join(""),params:[]};if(_(w,LX))return{sql:F(w.value),params:[]};if(w===void 0)return{sql:"",params:[]};if(Array.isArray(w)){let G=[new T$("(")];for(let[M,H]of w.entries())if(G.push(H),M<w.length-1)G.push(new T$(", "));return G.push(new T$(")")),this.buildQueryFromSourceParams(G,J)}if(_(w,m))return this.buildQueryFromSourceParams(w.queryChunks,{...J,inlineParams:Y||w.shouldInlineParams});if(_(w,h)){let G=w[h.Symbol.Schema],M=w[h.Symbol.Name];return{sql:G===void 0||w[rW]?F(M):F(G)+"."+F(M),params:[]}}if(_(w,BT)){let G=W.getColumnCasing(w);if($.invokeSource==="indexes")return{sql:F(G),params:[]};let M=w.table[h.Symbol.Schema];return{sql:w.table[rW]||M===void 0?F(w.table[h.Symbol.Name])+"."+F(G):F(M)+"."+F(w.table[h.Symbol.Name])+"."+F(G),params:[]}}if(_(w,L$)){let G=w[CT].schema,M=w[CT].name;return{sql:G===void 0||w[CT].isAlias?F(M):F(G)+"."+F(M),params:[]}}if(_(w,v$)){if(_(w.value,lJ))return{sql:X(A.value++,w),params:[w],typings:["none"]};let G=w.value===null?null:w.encoder.mapToDriverValue(w.value);if(_(G,m))return this.buildQueryFromSourceParams([G],J);if(Y)return{sql:this.mapInlineParam(G,J),params:[]};let M=["none"];if(S)M=[S(w.encoder)];return{sql:X(A.value++,G),params:[G],typings:M}}if(_(w,lJ))return{sql:X(A.value++,w),params:[w],typings:["none"]};if(_(w,m.Aliased)&&w.fieldAlias!==void 0)return{sql:F(w.fieldAlias),params:[]};if(_(w,eT)){if(w._.isWith)return{sql:F(w._.alias),params:[]};return this.buildQueryFromSourceParams([new T$("("),w._.sql,new T$(") "),new LX(w._.alias)],J)}if(K7(w)){if(w.schema)return{sql:F(w.schema)+"."+F(w.enumName),params:[]};return{sql:F(w.enumName),params:[]}}if(l8(w)){if(w.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([w.getSQL()],J);return this.buildQueryFromSourceParams([new T$("("),w.getSQL(),new T$(")")],J)}if(Y)return{sql:this.mapInlineParam(w,J),params:[]};return{sql:X(A.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 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 LX{constructor(T){this.value=T}static[z]="Name";brand;getSQL(){return new m([this])}}function _7(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var k7={mapFromDriverValue:(T)=>T},V7={mapToDriverValue:(T)=>T},Ij={...k7,...V7};class v${constructor(T,$=V7){this.value=T,this.encoder=$}static[z]="Param";brand;getSQL(){return new m([this])}}function f(T,...$){let J=[];if($.length>0||T.length>0&&T[0]!=="")J.push(new T$(T[0]));for(let[W,F]of $.entries())J.push(F,new T$(T[W+1]));return new m(J)}((T)=>{function $(){return new m([])}T.empty=$;function J(A){return new m(A)}T.fromList=J;function W(A){return new m([new T$(A)])}T.raw=W;function F(A,w){let G=[];for(let[M,H]of A.entries()){if(M>0&&w!==void 0)G.push(w);G.push(H)}return new m(G)}T.join=F;function X(A){return new LX(A)}T.identifier=X;function S(A){return new lJ(A)}T.placeholder=S;function Y(A,w){return new v$(A,w)}T.param=Y})(f||(f={}));((T)=>{class ${constructor(J,W){this.sql=J,this.fieldAlias=W}static[z]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(m||(m={}));class lJ{constructor(T){this.name=T}static[z]="Placeholder";getSQL(){return new m([this])}}function r8(T,$){return T.map((J)=>{if(_(J,lJ)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(_(J,v$)&&_(J.value,lJ)){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 cH=Symbol.for("drizzle:IsDrizzleView");class L${static[z]="View";[CT];[cH]=!0;constructor({name:T,schema:$,selectedFields:J,query:W}){this[CT]={name:T,originalName:T,schema:$,selectedFields:J,query:W,isExisting:!W,isAlias:!1}}getSQL(){return new m([this])}}BT.prototype.getSQL=function(){return new m([this])};h.prototype.getSQL=function(){return new m([this])};eT.prototype.getSQL=function(){return new m([this])};class v1{constructor(T){this.table=T}static[z]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class aW{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[z]="TableAliasProxyHandler";get(T,$){if($===h.Symbol.IsAlias)return!0;if($===h.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===h.Symbol.OriginalName)return this.alias;if($===CT)return{...T[CT],name:this.alias,isAlias:!0};if($===h.Symbol.Columns){let W=T[h.Symbol.Columns];if(!W)return W;let F={};return Object.keys(W).map((X)=>{F[X]=new Proxy(W[X],new v1(new Proxy(T,this)))}),F}let J=T[$];if(_(J,BT))return new Proxy(J,new v1(new Proxy(T,this)));return J}}function yX(T,$){return new Proxy(T,new aW($,!1))}function OJ(T,$){return new Proxy(T,new v1(new Proxy(T.table,new aW($,!1))))}function a8(T,$){return new m.Aliased(sW(T.sql,$),T.fieldAlias)}function sW(T,$){return f.join(T.queryChunks.map((J)=>{if(_(J,BT))return OJ(J,$);if(_(J,m))return sW(J,$);if(_(J,m.Aliased))return a8(J,$);return J}))}class NX extends Error{static[z]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class s8 extends NX{static[z]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function y$(T,$){if(_7($)&&!l8(T)&&!_(T,v$)&&!_(T,lJ)&&!_(T,BT)&&!_(T,h)&&!_(T,L$))return new v$(T,$);return T}var CX=(T,$)=>{return f`${T} = ${y$($,T)}`},B7=(T,$)=>{return f`${T} <> ${y$($,T)}`};function eW(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new T$("("),f.join($,new T$(" and ")),new T$(")")])}function L7(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new T$("("),f.join($,new T$(" or ")),new T$(")")])}function y7(T){return f`not ${T}`}var xX=(T,$)=>{return f`${T} > ${y$($,T)}`},N7=(T,$)=>{return f`${T} >= ${y$($,T)}`},C7=(T,$)=>{return f`${T} < ${y$($,T)}`},x7=(T,$)=>{return f`${T} <= ${y$($,T)}`};function j7(T,$){if(Array.isArray($)){if($.length===0)return f`false`;return f`${T} in ${$.map((J)=>y$(J,T))}`}return f`${T} in ${y$($,T)}`}function Z7(T,$){if(Array.isArray($)){if($.length===0)return f`true`;return f`${T} not in ${$.map((J)=>y$(J,T))}`}return f`${T} not in ${y$($,T)}`}function q7(T){return f`${T} is null`}function I7(T){return f`${T} is not null`}function b7(T){return f`exists ${T}`}function v7(T){return f`not exists ${T}`}function P7(T,$,J){return f`${T} between ${y$($,T)} and ${y$(J,T)}`}function h7(T,$,J){return f`${T} not between ${y$($,T)} and ${y$(J,T)}`}function m7(T,$){return f`${T} like ${$}`}function g7(T,$){return f`${T} not like ${$}`}function c7(T,$){return f`${T} ilike ${$}`}function n7(T,$){return f`${T} not ilike ${$}`}function p7(T){return f`${T} asc`}function o7(T){return f`${T} desc`}class d7{static[z]="ConsoleLogWriter";write(T){console.log(T)}}class e8{static[z]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new d7}logQuery(T,$){let J=$.map((F)=>{try{return JSON.stringify(F)}catch{return String(F)}}),W=J.length?` -- params: [${J.join(", ")}]`:"";this.writer.write(`Query: ${T}${W}`)}}class T4{static[z]="NoopLogger";logQuery(){}}class R${static[z]="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 u7(T,$,J){let W={},F=T.reduce((X,{path:S,field:Y},A)=>{let w;if(_(Y,BT))w=Y;else if(_(Y,m))w=Y.decoder;else w=Y.sql.decoder;let G=X;for(let[M,H]of S.entries())if(M<S.length-1){if(!(H in G))G[H]={};G=G[H]}else{let K=$[A],D=G[H]=K===null?null:w.mapFromDriverValue(K);if(J&&_(Y,BT)&&S.length===2){let R=S[0];if(!(R in W))W[R]=D===null?W$(Y.table):!1;else if(typeof W[R]==="string"&&W[R]!==W$(Y.table))W[R]=!1}}return X},{});if(J&&Object.keys(W).length>0){for(let[X,S]of Object.entries(W))if(typeof S==="string"&&!J[S])F[X]=null}return F}function o$(T,$){return Object.entries(T).reduce((J,[W,F])=>{if(typeof W!=="string")return J;let X=$?[...$,W]:[W];if(_(F,BT)||_(F,m)||_(F,m.Aliased))J.push({path:X,field:F});else if(_(F,h))J.push(...o$(F[h.Symbol.Columns],X));else J.push(...o$(F,X));return J},[])}function TF(T,$){let J=Object.keys(T),W=Object.keys($);if(J.length!==W.length)return!1;for(let[F,X]of J.entries())if(X!==W[F])return!1;return!0}function jX(T,$){let J=Object.entries($).filter(([,W])=>W!==void 0).map(([W,F])=>{if(_(F,m)||_(F,BT))return[W,F];else return[W,new v$(F,T[h.Symbol.Columns][W])]});if(J.length===0)throw new Error("No values to set");return Object.fromEntries(J)}function i7(T,$){for(let J of $)for(let W of Object.getOwnPropertyNames(J.prototype)){if(W==="constructor")continue;Object.defineProperty(T.prototype,W,Object.getOwnPropertyDescriptor(J.prototype,W)||Object.create(null))}}function t7(T){return T[h.Symbol.Columns]}function xJ(T){return _(T,eT)?T._.alias:_(T,L$)?T[CT].name:_(T,m)?void 0:T[h.Symbol.IsAlias]?T[h.Symbol.Name]:T[h.Symbol.BaseName]}function wT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function l7(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 rJ extends n{static[z]="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 r7 extends rJ{static[z]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new a7(T,this.config)}}class a7 extends q{static[z]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class s7 extends rJ{static[z]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new e7(T,this.config)}}class e7 extends q{static[z]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function T9(T,$){let{name:J,config:W}=wT(T,$);if(W.mode==="number")return new r7(J);return new s7(J)}class $9 extends n{static[z]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new J9(T,this.config)}}class J9 extends q{static[z]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class W9 extends n{static[z]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new F9(T,this.config)}}class F9 extends q{static[z]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function X9(T,$){let{name:J,config:W}=wT(T,$);if(W.mode==="number")return new $9(J);return new W9(J)}class S9 extends n{static[z]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new Y9(T,this.config)}}class Y9 extends q{static[z]="PgBoolean";getSQLType(){return"boolean"}}function $F(T){return new S9(T??"")}class A9 extends n{static[z]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new w9(T,this.config)}}class w9 extends q{static[z]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function G9(T,$={}){let{name:J,config:W}=wT(T,$);return new A9(J,W)}class M9 extends n{static[z]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new H9(T,this.config)}}class H9 extends q{static[z]="PgCidr";getSQLType(){return"cidr"}}function O9(T){return new M9(T??"")}class z9 extends n{static[z]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new f9(T,this.config)}}class f9 extends q{static[z]="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 K9(T){return($,J)=>{let{name:W,config:F}=wT($,J);return new z9(W,F,T)}}class jJ extends n{static[z]="PgDateColumnBaseBuilder";defaultNow(){return this.default(f`now()`)}}class D9 extends jJ{static[z]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new ZX(T,this.config)}}class ZX extends q{static[z]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class Q9 extends jJ{static[z]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new qX(T,this.config)}}class qX extends q{static[z]="PgDateString";getSQLType(){return"date"}}function E9(T,$){let{name:J,config:W}=wT(T,$);if(W?.mode==="date")return new D9(J);return new Q9(J)}class R9 extends n{static[z]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new U9(T,this.config)}}class U9 extends q{static[z]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function _9(T){return new R9(T??"")}class k9 extends n{static[z]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new V9(T,this.config)}}class V9 extends q{static[z]="PgInet";getSQLType(){return"inet"}}function B9(T){return new k9(T??"")}class L9 extends rJ{static[z]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new y9(T,this.config)}}class y9 extends q{static[z]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function IX(T){return new L9(T??"")}class N9 extends n{static[z]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new C9(T,this.config)}}class C9 extends q{static[z]="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 x9(T,$={}){let{name:J,config:W}=wT(T,$);return new N9(J,W)}class j9 extends n{static[z]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new bX(T,this.config)}}class bX extends q{static[z]="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 Z9(T){return new j9(T??"")}class q9 extends n{static[z]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new vX(T,this.config)}}class vX extends q{static[z]="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 I9(T){return new q9(T??"")}class b9 extends n{static[z]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new v9(T,this.config)}}class v9 extends q{static[z]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J),Number.parseFloat(W)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class P9 extends n{static[z]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new h9(T,this.config)}}class h9 extends q{static[z]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(J),c:Number.parseFloat(W)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function m9(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new b9(J);return new P9(J)}class g9 extends n{static[z]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new c9(T,this.config)}}class c9 extends q{static[z]="PgMacaddr";getSQLType(){return"macaddr"}}function n9(T){return new g9(T??"")}class p9 extends n{static[z]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new o9(T,this.config)}}class o9 extends q{static[z]="PgMacaddr8";getSQLType(){return"macaddr8"}}function d9(T){return new p9(T??"")}class u9 extends n{static[z]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new PX(T,this.config)}}class PX extends q{static[z]="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 i9(T,$){let{name:J,config:W}=wT(T,$);return new u9(J,W?.precision,W?.scale)}class t9 extends n{static[z]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new l9(T,this.config)}}class l9 extends q{static[z]="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 r9 extends n{static[z]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new a9(T,this.config)}}class a9 extends q{static[z]="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 s9(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new t9(J);return new r9(J)}function nH(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function e9(T,$){let J=new ArrayBuffer(8),W=new DataView(J);for(let F=0;F<8;F++)W.setUint8(F,T[$+F]);return W.getFloat64(0,!0)}function $4(T){let $=nH(T),J=0,W=$[J];J+=1;let F=new DataView($.buffer),X=F.getUint32(J,W===1);J+=4;let S;if(X&536870912)S=F.getUint32(J,W===1),J+=4;if((X&65535)===1){let Y=e9($,J);J+=8;let A=e9($,J);return J+=8,[Y,A]}throw new Error("Unsupported geometry type")}class T5 extends n{static[z]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new $5(T,this.config)}}class $5 extends q{static[z]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return $4(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class J5 extends n{static[z]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new W5(T,this.config)}}class W5 extends q{static[z]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=$4(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function F5(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new T5(J);return new J5(J)}class X5 extends n{static[z]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new S5(T,this.config)}}class S5 extends q{static[z]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function Y5(T){return new X5(T??"")}class A5 extends n{static[z]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new w5(T,this.config)}}class w5 extends q{static[z]="PgSerial";getSQLType(){return"serial"}}function G5(T){return new A5(T??"")}class M5 extends rJ{static[z]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new H5(T,this.config)}}class H5 extends q{static[z]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function O5(T){return new M5(T??"")}class z5 extends n{static[z]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new f5(T,this.config)}}class f5 extends q{static[z]="PgSmallSerial";getSQLType(){return"smallserial"}}function K5(T){return new z5(T??"")}class D5 extends n{static[z]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new Q5(T,this.config)}}class Q5 extends q{static[z]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function E5(T,$={}){let{name:J,config:W}=wT(T,$);return new D5(J,W)}class R5 extends jJ{constructor(T,$,J){super(T,"string","PgTime");this.withTimezone=$,this.precision=J,this.config.withTimezone=$,this.config.precision=J}static[z]="PgTimeBuilder";build(T){return new hX(T,this.config)}}class hX extends q{static[z]="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 U5(T,$={}){let{name:J,config:W}=wT(T,$);return new R5(J,W.withTimezone??!1,W.precision)}class _5 extends jJ{static[z]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new mX(T,this.config)}}class mX extends q{static[z]="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 k5 extends jJ{static[z]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new gX(T,this.config)}}class gX extends q{static[z]="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 WJ(T,$={}){let{name:J,config:W}=wT(T,$);if(W?.mode==="string")return new k5(J,W.withTimezone??!1,W.precision);return new _5(J,W?.withTimezone??!1,W?.precision)}class V5 extends n{static[z]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(f`gen_random_uuid()`)}build(T){return new cX(T,this.config)}}class cX extends q{static[z]="PgUUID";getSQLType(){return"uuid"}}function P$(T){return new V5(T??"")}class B5 extends n{static[z]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new L5(T,this.config)}}class L5 extends q{static[z]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function Y$(T,$={}){let{name:J,config:W}=wT(T,$);return new B5(J,W)}class y5 extends n{static[z]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new N5(T,this.config)}}class N5 extends q{static[z]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function C5(T,$){let{name:J,config:W}=wT(T,$);return new y5(J,W)}class x5 extends n{static[z]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new j5(T,this.config)}}class j5 extends q{static[z]="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 Z5(T,$){let{name:J,config:W}=wT(T,$);return new x5(J,W)}class q5 extends n{static[z]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new I5(T,this.config)}}class I5 extends q{static[z]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function b5(T,$){let{name:J,config:W}=wT(T,$);return new q5(J,W)}class v5 extends n{static[z]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new P5(T,this.config)}}class P5 extends q{static[z]="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 h5(T,$){let{name:J,config:W}=wT(T,$);return new v5(J,W)}function m5(){return{bigint:T9,bigserial:X9,boolean:$F,char:G9,cidr:O9,customType:K9,date:E9,doublePrecision:_9,inet:B9,integer:IX,interval:x9,json:Z9,jsonb:I9,line:m9,macaddr:n9,macaddr8:d9,numeric:i9,point:s9,geometry:F5,real:Y5,serial:G5,smallint:O5,smallserial:K5,text:E5,time:U5,timestamp:WJ,uuid:P$,varchar:Y$,bit:C5,halfvec:Z5,sparsevec:b5,vector:h5}}var J4=Symbol.for("drizzle:PgInlineForeignKeys"),g5=Symbol.for("drizzle:EnableRLS");class A$ extends h{static[z]="PgTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:J4,EnableRLS:g5});[J4]=[];[g5]=!1;[h.Symbol.ExtraConfigBuilder]=void 0;[h.Symbol.ExtraConfigColumns]={}}function pH(T,$,J,W,F=T){let X=new A$(T,W,F),S=typeof $==="function"?$(m5()):$,Y=Object.fromEntries(Object.entries(S).map(([G,M])=>{let H=M;H.setName(G);let K=H.build(X);return X[J4].push(...H.buildForeignKeys(K,X)),[G,K]})),A=Object.fromEntries(Object.entries(S).map(([G,M])=>{let H=M;H.setName(G);let K=H.buildExtraConfigColumn(X);return[G,K]})),w=Object.assign(X,Y);if(w[h.Symbol.Columns]=Y,w[h.Symbol.ExtraConfigColumns]=A,J)w[A$.Symbol.ExtraConfigBuilder]=J;return Object.assign(w,{enableRLS:()=>{return w[A$.Symbol.EnableRLS]=!0,w}})}var aJ=(T,$,J)=>{return pH(T,$,J,void 0)};function c5(...T){if(T[0].columns)return new JF(T[0].columns,T[0].name);return new JF(T)}class JF{static[z]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new n5(T,this.columns,this.name)}}class n5{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[z]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[A$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class W4{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[h.Symbol.Name]}static[z]="Relation";referencedTableName;fieldName}class p5{constructor(T,$){this.table=T,this.config=$}static[z]="Relations"}class sJ extends W4{constructor(T,$,J,W){super(T,$,J?.relationName);this.config=J,this.isNullable=W}static[z]="One";withFieldName(T){let $=new sJ(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class WF extends W4{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[z]="Many";withFieldName(T){let $=new WF(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function o5(){return{and:eW,between:P7,eq:CX,exists:b7,gt:xX,gte:N7,ilike:c7,inArray:j7,isNull:q7,isNotNull:I7,like:m7,lt:C7,lte:x7,ne:B7,not:y7,notBetween:h7,notExists:v7,notLike:g7,notIlike:n7,notInArray:Z7,or:L7,sql:f}}function d5(){return{sql:f,asc:p7,desc:o7}}function u5(T,$){if(Object.keys(T).length===1&&"default"in T&&!_(T.default,h))T=T.default;let J={},W={},F={};for(let[X,S]of Object.entries(T))if(_(S,h)){let Y=Z0(S),A=W[Y];J[Y]=X,F[X]={tsName:X,dbName:S[h.Symbol.Name],schema:S[h.Symbol.Schema],columns:S[h.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let G of Object.values(S[h.Symbol.Columns]))if(G.primary)F[X].primaryKey.push(G);let w=S[h.Symbol.ExtraConfigBuilder]?.(S[h.Symbol.ExtraConfigColumns]);if(w){for(let G of Object.values(w))if(_(G,JF))F[X].primaryKey.push(...G.columns)}}else if(_(S,p5)){let Y=Z0(S.table),A=J[Y],w=S.config($(S.table)),G;for(let[M,H]of Object.entries(w))if(A){let K=F[A];if(K.relations[M]=H,G)K.primaryKey.push(...G)}else{if(!(Y in W))W[Y]={relations:{},primaryKey:G};W[Y].relations[M]=H}}return{tables:F,tableNamesMap:J}}function oH(T){return function $(J,W){return new sJ(T,J,W,W?.fields.reduce((F,X)=>F&&X.notNull,!0)??!1)}}function dH(T){return function $(J,W){return new WF(T,J,W)}}function i5(T,$,J){if(_(J,sJ)&&J.config)return{fields:J.config.fields,references:J.config.references};let W=$[Z0(J.referencedTable)];if(!W)throw new Error(`Table "${J.referencedTable[h.Symbol.Name]}" not found in schema`);let F=T[W];if(!F)throw new Error(`Table "${W}" not found in schema`);let X=J.sourceTable,S=$[Z0(X)];if(!S)throw new Error(`Table "${X[h.Symbol.Name]}" not found in schema`);let Y=[];for(let A of Object.values(F.relations))if(J.relationName&&J!==A&&A.relationName===J.relationName||!J.relationName&&A.referencedTable===J.sourceTable)Y.push(A);if(Y.length>1)throw J.relationName?new Error(`There are multiple relations with name "${J.relationName}" in table "${W}"`):new Error(`There are multiple relations between "${W}" and "${J.sourceTable[h.Symbol.Name]}". Please specify relation name`);if(Y[0]&&_(Y[0],sJ)&&Y[0].config)return{fields:Y[0].config.references,references:Y[0].config.fields};throw new Error(`There is not enough information to infer relation "${S}.${J.fieldName}"`)}function t5(T){return{one:oH(T),many:dH(T)}}function nX(T,$,J,W,F=(X)=>X){let X={};for(let[S,Y]of W.entries())if(Y.isJson){let A=$.relations[Y.tsKey],w=J[S],G=typeof w==="string"?JSON.parse(w):w;X[Y.tsKey]=_(A,sJ)?G&&nX(T,T[Y.relationTableTsKey],G,Y.selection,F):G.map((M)=>nX(T,T[Y.relationTableTsKey],M,Y.selection,F))}else{let A=F(J[S]),w=Y.field,G;if(_(w,BT))G=w;else if(_(w,m))G=w.decoder;else G=w.sql.decoder;X[Y.tsKey]=A===null?null:G.mapFromDriverValue(A)}return X}import c3 from"path";import f3 from"os";import K3 from"fs";var pX=new Map,F4=new Map,X4=Symbol("OriginError"),P1={};class d$ extends Promise{constructor(T,$,J,W,F={}){let X,S;super((Y,A)=>{X=Y,S=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=W,this.options=F,this.state=null,this.statement=null,this.resolve=(Y)=>(this.active=!1,X(Y)),this.reject=(Y)=>(this.active=!1,S(Y)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[X4]=this.handler.debug?new Error:this.tagged&&uH(this.strings)}get origin(){return(this.handler.debug?this[X4].stack:this.tagged&&F4.has(this.strings)?F4.get(this.strings):F4.set(this.strings,this[X4].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 W=new Promise((F,X)=>{this.cursorFn=(S)=>{return F({value:S,done:!1}),new Promise((Y)=>J=Y)},this.resolve=()=>(this.active=!1,F({done:!0})),this.reject=(S)=>(this.active=!1,X(S))});return this.execute(),W},return(){return J&&J(P1),{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 uH(T){if(pX.has(T))return pX.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,pX.set(T,new Error),Error.stackTraceLimit=$,pX.get(T)}class h1 extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var oT={connection:l5,postgres:r5,generic:a5,notSupported:s5};function l5(T,$,J){let{host:W,port:F}=J||$,X=Object.assign(new Error("write "+T+" "+($.path||W+":"+F)),{code:T,errno:T,address:$.path||W},$.path?{}:{port:F});return Error.captureStackTrace(X,l5),X}function r5(T){let $=new h1(T);return Error.captureStackTrace($,r5),$}function a5(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,a5),J}function s5(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,s5),$}var iH={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 uX{then(){S4()}catch(){S4()}finally(){S4()}}class YF extends uX{constructor(T){super();this.value=lX(T)}}class zJ extends uX{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class iX extends uX{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,W){let F=tH.map(([X,S])=>({fn:S,i:T.search(X)})).sort((X,S)=>X.i-S.i).pop();return F.i===-1?M4(this.first,W):F.fn(this.first,this.rest,$,J,W)}}function tX(T,$,J,W){let F=T instanceof zJ?T.value:T;if(F===void 0){if(T instanceof zJ?T.value=W.transform.undefined:F=T=W.transform.undefined,F===void 0)throw oT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof zJ?($.push(T.value),T.array?T.array[T.type||dX(T.value)]||T.type||JA(T.value):T.type):($.push(T),dX(T)))}var TA=FA(iH);function w4(T,$,J,W,F,X){for(let S=1;S<T.strings.length;S++)$+=G4($,J,W,F,X)+T.strings[S],J=T.args[S];return $}function G4(T,$,J,W,F){return $ instanceof iX?$.build(T,J,W,F):$ instanceof d$?A4($,J,W,F):$ instanceof YF?$.value:$&&$[0]instanceof d$?$.reduce((X,S)=>X+" "+A4(S,J,W,F),""):tX($,J,W,F)}function A4(T,$,J,W){return T.fragment=!0,w4(T,T.strings[0],T.args[0],$,J,W)}function $A(T,$,J,W,F){return T.map((X)=>"("+W.map((S)=>G4("values",X[S],$,J,F)).join(",")+")").join(",")}function e5(T,$,J,W,F){let X=Array.isArray(T[0]),S=$.length?$.flat():Object.keys(X?T[0]:T);return $A(X?T:[T],J,W,S,F)}function oX(T,$,J,W,F){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return M4(T,F);let X;return($.length?$.flat():Object.keys(T)).map((Y)=>{return X=T[Y],(X instanceof d$?A4(X,J,W,F):X instanceof YF?X.value:tX(X,J,W,F))+" as "+lX(F.transform.column.to?F.transform.column.to(Y):Y)}).join(",")}var tH=Object.entries({values:e5,in:(...T)=>{let $=e5(...T);return $==="()"?"(null)":$},select:oX,as:oX,returning:oX,"\\(":oX,update(T,$,J,W,F){return($.length?$.flat():Object.keys(T)).map((X)=>lX(F.transform.column.to?F.transform.column.to(X):X)+"="+G4("values",T[X],J,W,F))},insert(T,$,J,W,F){let X=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+M4(X,F)+")values"+$A(Array.isArray(T)?T:[T],J,W,X,F)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function S4(){throw oT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:lH,parsers:rH}=TA;function JA(T){if(Array.isArray(T))return JA(T[0]);return typeof T==="string"?1009:0}var WA=function(T){let $=FA(T||{});return{serializers:Object.assign({},lH,$.serializers),parsers:Object.assign({},rH,$.parsers)}};function FA(T){return Object.keys(T).reduce(($,J)=>{if(T[J].from&&[].concat(T[J].from).forEach((W)=>$.parsers[W]=T[J].parse),T[J].serialize)$.serializers[T[J].to]=T[J].serialize,T[J].from&&[].concat(T[J].from).forEach((W)=>$.serializers[W]=T[J].serialize);return $},{parsers:{},serializers:{}})}function M4(T,{transform:{column:$}}){return T.map((J)=>lX($.to?$.to(J):J)).join(",")}var lX=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},dX=function T($){return $ instanceof zJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},aH=/\\/g,sH=/"/g;function eH(T){return T.replace(aH,"\\\\").replace(sH,"\\\"")}var XA=function T($,J,W,F){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let X=$[0],S=F===1020?";":",";if(Array.isArray(X)&&!X.type)return"{"+$.map((Y)=>T(Y,J,W,F)).join(S)+"}";return"{"+$.map((Y)=>{if(Y===void 0){if(Y=W.transform.undefined,Y===void 0)throw oT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return Y===null?"null":'"'+eH(J?J(Y.type?Y.value:Y):""+Y)+'"'}).join(S)+"}"},Y4={i:0,char:null,str:"",quoted:!1,last:0},SA=function T($,J,W){return Y4.i=Y4.last=0,YA(Y4,$,J,W)};function YA(T,$,J,W){let F=[],X=W===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(YA(T,$,J,W));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===X&&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 q0=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},I0=(T)=>{let $=T[0].toUpperCase();for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},b0=(T)=>T.replace(/_/g,"-"),FF=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),XF=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),SF=(T)=>T.replace(/-/g,"_");function H4(T){return function $(J,W){return typeof J==="object"&&J!==null&&(W.type===114||W.type===3802)?Array.isArray(J)?J.map((F)=>$(F,W)):Object.entries(J).reduce((F,[X,S])=>Object.assign(F,{[T(X)]:$(S,W)}),{}):J}}q0.column={from:q0};q0.value={from:H4(q0)};FF.column={to:FF};var O4={...q0};O4.column.to=FF;I0.column={from:I0};I0.value={from:H4(I0)};XF.column={to:XF};var z4={...I0};z4.column.to=XF;b0.column={from:b0};b0.value={from:H4(b0)};SF.column={to:SF};var f4={...b0};f4.column.to=SF;import AA from"net";import W3 from"tls";import AF from"crypto";import K4 from"stream";import{performance as wA}from"perf_hooks";class v0 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 h$=T3;function T3(T=[]){let $=T.slice(),J=0;return{get length(){return $.length-J},remove:(W)=>{let F=$.indexOf(W);return F===-1?null:($.splice(F,1),W)},push:(W)=>($.push(W),W),shift:()=>{let W=$[J++];if(J===$.length)J=0,$=[];else $[J-1]=void 0;return W}}}var K$=Buffer.allocUnsafe(256),$3="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return K$[0]=J,UT.i=5,UT},T},{}),UT=Object.assign(J3,$3,{N:String.fromCharCode(0),i:0,inc(T){return UT.i+=T,UT},str(T){let $=Buffer.byteLength(T);return rX($),UT.i+=K$.write(T,UT.i,$,"utf8"),UT},i16(T){return rX(2),K$.writeUInt16BE(T,UT.i),UT.i+=2,UT},i32(T,$){if($||$===0)return K$.writeUInt32BE(T,$),UT;return rX(4),K$.writeUInt32BE(T,UT.i),UT.i+=4,UT},z(T){return rX(T),K$.fill(0,UT.i,UT.i+T),UT.i+=T,UT},raw(T){return K$=Buffer.concat([K$.subarray(0,UT.i),T]),UT.i=K$.length,UT},end(T=1){K$.writeUInt32BE(UT.i-T,T);let $=K$.subarray(0,UT.i);return UT.i=0,K$=Buffer.allocUnsafe(256),$}}),t=UT;function rX(T){if(K$.length-UT.i<T){let $=K$,J=$.length;K$=Buffer.allocUnsafe(J+(J>>1)+T),$.copy(K$)}}function J3(){return UT.i=0,UT}var E4=HA,F3=1,eJ=t().S().end(),GA=t().H().end(),X3=t().i32(8).i32(80877103).end(8),S3=Buffer.concat([t().E().str(t.N).i32(0).end(),eJ]),Y3=t().D().str("S").str(t.N).end(),m1=()=>{},A3=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),w3={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 HA(T,$={},{onopen:J=m1,onend:W=m1,onclose:F=m1}={}){let{ssl:X,max:S,user:Y,host:A,port:w,database:G,parsers:M,transform:H,onnotice:K,onnotify:D,onparameter:R,max_pipeline:y,keep_alive:j,backoff:L,target_session_attrs:Z}=T,E=h$(),V=F3++,B={pid:null,secret:null},k=Q4(G2,T.idle_timeout),b=Q4(G2,T.max_lifetime),r=Q4(nA,T.connect_timeout),U=null,e,p=new v0,$T=Buffer.alloc(0),DT=T.fetch_types,PT={},_$={},fJ=Math.random().toString(36).slice(2),N=1,i=0,zT=0,qT=0,dT=0,ST=0,yT=0,cT=0,IT=null,xT=null,w$=!1,NT=null,u$=null,G$=null,IJ=null,uT=null,jT=null,i$=null,FJ=null,I=null,p1=null,M$={queue:$.closed,idleTimer:k,connect(O){G$=O||!0,u4()},terminate:d1,execute:o1,cancel:hA,end:G2,count:0,id:V};return $.closed&&$.closed.push(M$),M$;async function PA(){let O;try{O=T.socket?await Promise.resolve(T.socket(T)):new AA.Socket}catch(Q){g0(Q);return}return O.on("error",g0),O.on("close",i4),O.on("drain",o4),O}async function hA({pid:O,secret:Q},l,fT){try{e=t().i32(16).i32(80877102).i32(O).i32(Q).end(16),await d4(),U.once("error",fT),U.once("close",l)}catch(hT){fT(hT)}}function o1(O){if(w$)return fF(O,oT.connection("CONNECTION_DESTROYED",T));if(O.cancelled)return;try{return O.state=B,I?E.push(O):(I=O,I.active=!0),cA(O),F$(mA(O))&&!O.describeFirst&&!O.cursorFn&&E.length<y&&(!O.options.onexecute||O.options.onexecute(M$))}catch(Q){return E.length===0&&F$(eJ),XJ(Q),!0}}function mA(O){if(O.parameters.length>=65534)throw oT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return O.options.simple?t().Q().str(O.statement.string+t.N).end():O.describeFirst?Buffer.concat([c4(O),GA]):O.prepare?O.prepared?zF(O):Buffer.concat([c4(O),zF(O)]):gA(O)}function c4(O){return Buffer.concat([l4(O.statement.string,O.parameters,O.statement.types,O.statement.name),Lw("S",O.statement.name)])}function zF(O){return Buffer.concat([Bw(O.parameters,O.statement.types,O.statement.name,O.cursorName),O.cursorFn?r4("",O.cursorRows):S3])}function gA(O){return Buffer.concat([l4(O.statement.string,O.parameters,O.statement.types),Y3,zF(O)])}function cA(O){let Q=[],l=[],fT=w4(O,O.strings[0],O.args[0],Q,l,T);!O.tagged&&O.args.forEach((hT)=>tX(hT,Q,l,T)),O.prepare=T.prepare&&("prepare"in O.options?O.options.prepare:!0),O.string=fT,O.signature=O.prepare&&l+fT,O.onlyDescribe&&delete _$[O.signature],O.parameters=O.parameters||Q,O.prepared=O.prepare&&O.signature in _$,O.describeFirst=O.onlyDescribe||Q.length&&!O.prepared,O.statement=O.prepared?_$[O.signature]:{string:fT,types:l,name:O.prepare?fJ+N++:""},typeof T.debug==="function"&&T.debug(V,fT,Q,l)}function F$(O,Q){if(jT=jT?Buffer.concat([jT,O]):Buffer.from(O),Q||jT.length>=1024)return n4(Q);return xT===null&&(xT=setImmediate(n4)),!0}function n4(O){let Q=U.write(jT,O);return xT!==null&&clearImmediate(xT),jT=xT=null,Q}function nA(){XJ(oT.connection("CONNECT_TIMEOUT",T,U)),U.destroy()}async function p4(){if(F$(X3),!await new Promise((Q)=>U.once("data",(l)=>Q(l[0]===83)))&&X==="prefer")return m0();U.removeAllListeners(),U=W3.connect({socket:U,servername:AA.isIP(U.host)?void 0:U.host,...X==="require"||X==="allow"||X==="prefer"?{rejectUnauthorized:!1}:X==="verify-full"?{}:typeof X==="object"?X:{}}),U.on("secureConnect",m0),U.on("error",g0),U.on("close",i4),U.on("drain",o4)}function o4(){!I&&J(M$)}function w2(O){if(NT){if(NT.push(O),zT-=O.length,zT>=0)return}$T=NT?Buffer.concat(NT,ST-zT):$T.length===0?O:Buffer.concat([$T,O],$T.length+O.length);while($T.length>4){if(ST=$T.readUInt32BE(1),ST>=$T.length){zT=ST-$T.length,NT=[$T];break}try{pA($T.subarray(0,ST+1))}catch(Q){I&&(I.cursorFn||I.describeFirst)&&F$(eJ),XJ(Q)}$T=$T.subarray(ST+1),zT=0,NT=null}}async function d4(){if(w$=!1,PT={},U||(U=await PA()),!U)return;if(r.start(),T.socket)return X?p4():m0();if(U.on("connect",X?p4:m0),T.path)return U.connect(T.path);U.ssl=X,U.connect(w[qT],A[qT]),U.host=A[qT],U.port=w[qT],qT=(qT+1)%w.length}function u4(){setTimeout(d4,i?i+yT-wA.now():0)}function m0(){try{_$={},DT=T.fetch_types,fJ=Math.random().toString(36).slice(2),N=1,b.start(),U.on("data",w2),j&&U.setKeepAlive&&U.setKeepAlive(!0,1000*j);let O=Nw();F$(O)}catch(O){g0(O)}}function g0(O){if(M$.queue===$.connecting&&T.host[dT+1])return;XJ(O);while(E.length)fF(E.shift(),O)}function XJ(O){uT&&(uT.destroy(O),uT=null),I&&fF(I,O),G$&&(fF(G$,O),G$=null)}function fF(O,Q){"query"in Q||"parameters"in Q||Object.defineProperties(Q,{stack:{value:Q.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(Q)}function G2(){return IJ||(!M$.reserved&&W(M$),!M$.reserved&&!G$&&!I&&E.length===0?(d1(),new Promise((O)=>U&&U.readyState!=="closed"?U.once("close",O):O())):IJ=new Promise((O)=>i$=O))}function d1(){if(w$=!0,uT||I||G$||E.length)g0(oT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(xT),U)U.removeListener("data",w2),U.removeListener("connect",m0),U.readyState==="open"&&U.end(t().X().end());i$&&(i$(),IJ=i$=null)}async function i4(O){if($T=Buffer.alloc(0),zT=0,NT=null,clearImmediate(xT),U.removeListener("data",w2),U.removeListener("connect",m0),k.cancel(),b.cancel(),r.cancel(),U.removeAllListeners(),U=null,G$)return u4();!O&&(I||E.length)&&g0(oT.connection("CONNECTION_CLOSED",T,U)),i=wA.now(),O&&T.shared.retries++,yT=(typeof L==="function"?L(T.shared.retries):L)*1000,F(M$,oT.connection("CONNECTION_CLOSED",T,U))}function pA(O,Q=O[0]){(Q===68?oA:Q===100?Dw:Q===65?Mw:Q===83?dA:Q===90?uA:Q===67?iA:Q===50?t4:Q===49?tA:Q===116?lA:Q===84?rA:Q===82?aA:Q===110?Ww:Q===75?Fw:Q===69?ww:Q===115?Hw:Q===51?Ow:Q===71?zw:Q===78?Ew:Q===72?fw:Q===99?Qw:Q===73?Rw:Q===86?Uw:Q===118?_w:Q===87?Kw:kw)(O)}function oA(O){let Q=7,l,fT,hT,H$=I.isRaw?new Array(I.statement.columns.length):{};for(let D$=0;D$<I.statement.columns.length;D$++)fT=I.statement.columns[D$],l=O.readInt32BE(Q),Q+=4,hT=l===-1?null:I.isRaw===!0?O.subarray(Q,Q+=l):fT.parser===void 0?O.toString("utf8",Q,Q+=l):fT.parser.array===!0?fT.parser(O.toString("utf8",Q+1,Q+=l)):fT.parser(O.toString("utf8",Q,Q+=l)),I.isRaw?H$[D$]=I.isRaw===!0?hT:H.value.from?H.value.from(hT,fT):hT:H$[fT.name]=H.value.from?H.value.from(hT,fT):hT;I.forEachFn?I.forEachFn(H.row.from?H.row.from(H$):H$,p):p[cT++]=H.row.from?H.row.from(H$):H$}function dA(O){let[Q,l]=O.toString("utf8",5,O.length-1).split(t.N);if(PT[Q]=l,T.parameters[Q]!==l)T.parameters[Q]=l,R&&R(Q,l)}function uA(O){if(I&&I.options.simple&&I.resolve(u$||p),I=u$=null,p=new v0,r.cancel(),G$){if(Z){if(!PT.in_hot_standby||!PT.default_transaction_read_only)return Aw();else if(Yw(Z,PT))return d1()}if(DT)return G$===!0&&(G$=null),Xw();G$!==!0&&o1(G$),T.shared.retries=dT=0,G$=null;return}while(E.length&&(I=E.shift())&&(I.active=!0,I.cancelled))HA(T).cancel(I.state,I.cancelled.resolve,I.cancelled.reject);if(I)return;M$.reserved?!M$.reserved.release&&O[5]===73?IJ?d1():(M$.reserved=null,J(M$)):M$.reserved():IJ?d1():J(M$)}function iA(O){cT=0;for(let Q=O.length-1;Q>0;Q--){if(O[Q]===32&&O[Q+1]<58&&p.count===null)p.count=+O.toString("utf8",Q+1,O.length-1);if(O[Q-1]>=65){p.command=O.toString("utf8",5,Q),p.state=B;break}}if(p1&&(p1(),p1=null),p.command==="BEGIN"&&S!==1&&!M$.reserved)return XJ(oT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(I.options.simple)return t4();if(I.cursorFn)p.count&&I.cursorFn(p),F$(eJ);I.resolve(p)}function tA(){I.parsing=!1}function t4(){!p.statement&&(p.statement=I.statement),p.columns=I.statement.columns}function lA(O){let Q=O.readUInt16BE(5);for(let l=0;l<Q;++l)!I.statement.types[l]&&(I.statement.types[l]=O.readUInt32BE(7+l*4));I.prepare&&(_$[I.signature]=I.statement),I.describeFirst&&!I.onlyDescribe&&(F$(zF(I)),I.describeFirst=!1)}function rA(O){if(p.command)u$=u$||[p],u$.push(p=new v0),p.count=null,I.statement.columns=null;let Q=O.readUInt16BE(5),l=7,fT;I.statement.columns=Array(Q);for(let hT=0;hT<Q;++hT){fT=l;while(O[l++]!==0);let H$=O.readUInt32BE(l),D$=O.readUInt16BE(l+4),bJ=O.readUInt32BE(l+6);I.statement.columns[hT]={name:H.column.from?H.column.from(O.toString("utf8",fT,l-1)):O.toString("utf8",fT,l-1),parser:M[bJ],table:H$,number:D$,type:bJ},l+=18}if(p.statement=I.statement,I.onlyDescribe)return I.resolve(I.statement),F$(eJ)}async function aA(O,Q=O.readUInt32BE(5)){(Q===3?sA:Q===5?eA:Q===10?Tw:Q===11?$w:Q===12?Jw:Q!==0?Vw:m1)(O,Q)}async function sA(){let O=await M2();F$(t().p().str(O).z(1).end())}async function eA(O){let Q="md5"+await MA(Buffer.concat([Buffer.from(await MA(await M2()+Y)),O.subarray(9)]));F$(t().p().str(Q).z(1).end())}async function Tw(){FJ=(await AF.randomBytes(18)).toString("base64"),t().p().str("SCRAM-SHA-256"+t.N);let O=t.i;F$(t.inc(4).str("n,,n=*,r="+FJ).i32(t.i-O-4,O).end())}async function $w(O){let Q=O.toString("utf8",9).split(",").reduce((D$,bJ)=>(D$[bJ[0]]=bJ.slice(2),D$),{}),l=await AF.pbkdf2Sync(await M2(),Buffer.from(Q.s,"base64"),parseInt(Q.i),32,"sha256"),fT=await aX(l,"Client Key"),hT="n=*,r="+FJ+",r="+Q.r+",s="+Q.s+",i="+Q.i+",c=biws,r="+Q.r;IT=(await aX(await aX(l,"Server Key"),hT)).toString("base64");let H$="c=biws,r="+Q.r+",p="+M3(fT,Buffer.from(await aX(await G3(fT),hT))).toString("base64");F$(t().p().str(H$).end())}function Jw(O){if(O.toString("utf8",9).split(t.N,1)[0].slice(2)===IT)return;XJ(oT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),U.destroy()}function M2(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function Ww(){if(p.statement=I.statement,p.statement.columns=[],I.onlyDescribe)return I.resolve(I.statement),F$(eJ)}function Fw(O){B.pid=O.readUInt32BE(5),B.secret=O.readUInt32BE(9)}async function Xw(){DT=!1,(await new d$([`
66
+ ${Y}`)}let A=$J.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(ZT.readFileSync(A,"utf-8"))}async write(T,$,J,W){let F=$J.join(this.baseDir,T),X=$J.join(F,`${$}.input.json`),Y=$J.join(F,`${$}.output.json`),S=JSON.stringify(J,null,"\t");if(!ZT.existsSync(this.baseDir))ZT.mkdirSync(this.baseDir,{recursive:!0});if(!ZT.existsSync(F))ZT.mkdirSync(F);if(ZT.writeFileSync(X,S),ZT.existsSync(Y))ZT.unlinkSync(Y);let A=await W(...J),w=JSON.stringify(A,null,"\t");return ZT.writeFileSync(Y,w),A}add(T,$){let J=`${this.rootName}${pT}${q1(T)}`;return{flush:()=>{this.flush(T)},for:(W)=>{if(this.mode!=="off"){if(this.filesTouched.set(T,new Set),VT.storage.initialized&&!VT.storage.getItem(`list${pT}${J}`))VT.storage.setItem(`list${pT}${J}`,"true")}return{get:async(...F)=>{let X=W;if(this.mode!=="off"){let Y=this.filenameCache.get(W);if(!Y)Y=q1(W),this.filenameCache.set(W,Y);X=Y,this.filesTouched.get(T)?.add(X);let S=`${J}${pT}${X}`,A=`file${pT}${S}`;if(VT.storage.initialized&&!VT.storage.getItem(A))VT.storage.setItem(A,"true")}switch(this.mode){case"off":return $(...F);case"read":return this.read(T,X,F);case"write":return this.write(T,X,F,$);case"read-write":try{return this.read(T,X,F)}catch(Y){if(Y instanceof Error)return this.write(T,X,F,$);throw Y}}}}}}}flush(...T){console.log(this.filesTouched);for(let[$,J]of this.filesTouched.entries())if(T.length===0||T.includes($)){let W=$J.join(this.baseDir,$),F=ZT.readdirSync(W);for(let X of F){let Y=X.replace(".input.json","").replace(".output.json","");if(!J.has(Y))console.info(`\uD83E\uDDF9 Flushing ${Y}`),ZT.unlinkSync($J.join(W,X))}}}};function mH(T,...$){let[J,W,F,X]=$,Y=[{role:"user",content:t6(W)},{role:"user",content:J}],S=X.at(-1);if(S)Y.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(S.response,null,2),"Here's the error message:",S.error.toString()].join(`
67
+ `)});return{model:T,messages:Y}}var v8={"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 gH(T){return async function $(J,W){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"}},W),X=F.choices[0].message?.content,{usage:Y}=F;if(X&&Y){let S=Y.prompt_tokens,A=Y.prompt_tokens_details?.cached_tokens??0,w=S-A,G=Y.completion_tokens,M=S*v8[J.model].promptPricePerToken+w*v8[J.model].promptPricePerTokenCached+G*v8[J.model].completionPricePerToken;return{data:JSON.parse(X),usage:Y,usdPrice:M}}if(!X&&!Y)throw new Error("No content or usage found in completion");if(!X)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var A9=new Map,w9=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:W,cachingMode:F,cacheKey:X="openai-safegen",logger:Y}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new S9(F);let S=A9.get(W);if(F!=="read"){if(!S)S=new iS({apiKey:W,dangerouslyAllowBrowser:!1}),A9.set(W,S);this.client=S}this.getUnknownJsonFromOpenAi=gH(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(X,this.getUnknownJsonFromOpenAi),this.from=i6(async(...A)=>{if(this.usdBudget<this.usdMinimum)return Y?.warn("SafeGen budget exhausted"),A[1];let w=mH(T,...A),G=A[0],M=A[3],{data:H,usage:f,usdPrice:D}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${G.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${M.length}`).get(w);return this.lastUsage=f,this.usdBudget-=D,H})}from};import{exec as $z}from"node:child_process";var P8=(T)=>{let $=N$(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let J=new Map;for(let[W,F]of T.atoms){if(hJ(W))continue;let X=k$(F);if(F.family){let Y=J.get(F.family.key);if(!Y||!("familyMembers"in Y))Y={key:F.family.key,familyMembers:new Map},J.set(F.family.key,Y);Y.familyMembers.set(F.family.subKey,X)}else J.set(W,X)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(W)=>{if(hJ(W.key))return;J((F)=>{if(W.family){let{key:X,subKey:Y}=W.family,S=F.get(X);if(S===void 0||!("familyMembers"in S))S={key:X,familyMembers:new Map},F.set(X,S);S.familyMembers.set(Y,W)}else F.set(W.key,W);return F})}),T.on.atomDisposal.subscribe("introspection",(W)=>{J((F)=>{if(W.family){let{key:X,subKey:Y}=W.family,S=F.get(X);if(S&&"familyMembers"in S){if(S.familyMembers.delete(Y),S.familyMembers.size===0)F.delete(X)}}else F.delete(W.key);return F})})}]},void 0);return fJ(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:J})=>J($)})};var h8=(T)=>{let $=N$(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let J=new Map;for(let W of[T.readonlySelectors,T.selectors])for(let[F,X]of W){if(hJ(F))continue;let Y=k$(X);if(X.family){let S=J.get(X.family.key);if(!S||!("familyMembers"in S))S={key:X.family.key,familyMembers:new Map},J.set(X.family.key,S);S.familyMembers.set(X.family.subKey,Y)}else J.set(F,Y)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(W)=>{if(hJ(W.key))return;J((F)=>{if(W.family){let{key:X,subKey:Y}=W.family,S=F.get(X);if(S===void 0||!("familyMembers"in S))S={key:X,familyMembers:new Map},F.set(X,S);S.familyMembers.set(Y,W)}else F.set(W.key,W);return F})}),T.on.selectorDisposal.subscribe("introspection",(W)=>{J((F)=>{if(W.family){let{key:X,subKey:Y}=W.family,S=F.get(X);if(S&&"familyMembers"in S){if(S.familyMembers.delete(Y),S.familyMembers.size===0)F.delete(X)}}else F.delete(W.key);return F})})}]},void 0);return fJ(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:J})=>J($)})};class UX{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(W){try{if(T instanceof J)return{type:$,data:T}}catch(F){}}return null}}var m8=new UX({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function g8(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var c8=new UX({object:g8,array:(T)=>Array.isArray(T)}),cH=new UX({...m8.supported,...c8.supported}),I1=(T)=>{if(T===void 0)return"undefined";let $=cH.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class G9{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=AT.STORE){this.store=T,this.atomIndex=P8(this.store),this.selectorIndex=h8(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=G9.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=O2(this.atomIndex),J=O2(this.selectorIndex),W=[...$.values()].filter((S)=>("familyMembers"in S)),F=[...J.values()].filter((S)=>("familyMembers"in S)),X=performance.now(),Y=[];if(T.atomFamilies)for(let S of W){let A=S.familyMembers.values();for(let w of A){let M=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,H=X-M;Y.push([w,H])}}if(T.selectorFamilies)for(let S of F){let A=S.familyMembers.values();for(let w of A){let M=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,H=X-M;Y.push([w,H])}}return Y}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var n8=(T,$)=>{let J=(W,F)=>{let Y=((A,w)=>{let G=$(A,w);if(G)return G;return null})(W,F);if(Y?.jobComplete??Y?.pathComplete)return Y;let S=Array.isArray(F)?F.map((A,w)=>[w,A]):g8(F)?Object.entries(F):[];for(let[A,w]of S){let G=J([...W,A],w);if(G?.jobComplete)return G}return{}};J([],T)};function nH(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function pH(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function oH(T,$){return{summary:`${T} \u2192 ${$}`}}function M9(T,$,J){let W="",F=[],X=[],Y=[];return n8(T,(S,A)=>{let w;for(w of S){let G=$[w];if(G===void 0)X.push([w,JSON.stringify(A)]);else{let M=J(A,G);if(M.summary!=="No Change")Y.push([w,M])}}}),n8($,(S,A)=>{let w;for(w of S)if(T[w]===void 0)F.push([w,JSON.stringify(A)])}),W=`\uFF5E${Y.length} \uFF0B${F.length} \uFF0D${X.length}`,{summary:W,added:F,removed:X,changed:Y}}function dH(T,$,J){return M9(T,$,J)}class H9{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,J){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let W of Object.keys(T.supported)){let F=J[W];this.leafDiffers[W]=F}for(let W of Object.keys($.supported)){let F=J[W];this.treeDiffers[W]=F}}diff(T,$){if(T===$)return{summary:"No Change"};let J=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),W=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(J!==null&&W!==null){if(J.type===W.type){if(J.type in this.leafDiffers)return this.leafDiffers[J.type](J.data,W.data);if(J.type in this.treeDiffers)return this.treeDiffers[J.type](J.data,W.data,(S,A)=>this.diff(S,A))}}let F=I1(T),X=I1($);if(F===X)return{summary:`${F} \u2192 ${X}`};return{summary:`Type change: ${F} \u2192 ${X}`}}}var rx=new H9(m8,c8,{number:nH,string:pH,boolean:oH,null:()=>({summary:"No Change"}),object:M9,array:dH});var O=Symbol.for("drizzle:entityKind"),Fj=Symbol.for("drizzle:hasOwnEntityKind");function _(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,O))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(O in J&&J[O]===$[O])return!0;J=Object.getPrototypeOf(J)}return!1}class BT{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[O]="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 p8{static[O]="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 o8{static[O]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:W,foreignColumns:F}=T();return{name:J,columns:W,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 z9(T,this)}}class z9{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[O]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:J}=this.reference(),W=$.map((Y)=>Y.name),F=J.map((Y)=>Y.name),X=[this.table[JJ],...W,J[0].table[JJ],...F];return T??`${X.join("_")}_fk`}}function _X(T,...$){return T(...$)}function O9(T,$){return`${T[JJ]}_${$.join("_")}_unique`}function K9(T,$,J){for(let W=$;W<T.length;W++){let F=T[W];if(F==="\\"){W++;continue}if(F==='"')return[T.slice($,W).replace(/\\/g,""),W+1];if(J)continue;if(F===","||F==="}")return[T.slice($,W).replace(/\\/g,""),W]}return[T.slice($).replace(/\\/g,""),T.length]}function f9(T,$=0){let J=[],W=$,F=!1;while(W<T.length){let X=T[W];if(X===","){if(F||W===$)J.push("");F=!0,W++;continue}if(F=!1,X==="\\"){W+=2;continue}if(X==='"'){let[A,w]=K9(T,W+1,!0);J.push(A),W=w;continue}if(X==="}")return[J,W+1];if(X==="{"){let[A,w]=f9(T,W+1);J.push(A),W=w;continue}let[Y,S]=K9(T,W,!1);J.push(Y),W=S}return[J,W]}function D9(T){let[$]=f9(T,1);return $}function d8(T){return`{${T.map(($)=>{if(Array.isArray($))return d8($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class n extends p8{foreignKeyConfigs=[];static[O]="PgColumnBuilder";array(T){return new E9(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:W})=>{return _X((F,X)=>{let Y=new o8(()=>{let S=F();return{columns:[T],foreignColumns:[S]}});if(X.onUpdate)Y.onUpdate(X.onUpdate);if(X.onDelete)Y.onDelete(X.onDelete);return Y.build($)},J,W)})}buildExtraConfigColumn(T){return new Q9(T,this.config)}}class q extends BT{constructor(T,$){if(!$.uniqueName)$.uniqueName=O9(T,[$.name]);super(T,$);this.table=T}static[O]="PgColumn"}class Q9 extends q{static[O]="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 tW{static[O]="IndexedColumn";constructor(T,$,J,W){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=W}name;keyAsName;type;indexConfig}class E9 extends n{static[O]="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 u8(T,this.config,$)}}class u8 extends q{constructor(T,$,J,W){super(T,$);this.baseColumn=J,this.range=W,this.size=$.size}size;static[O]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=D9(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let J=T.map((W)=>W===null?null:_(this.baseColumn,u8)?this.baseColumn.mapToDriverValue(W,!0):this.baseColumn.mapToDriverValue(W));if($)return J;return d8(J)}}var i8=Symbol.for("drizzle:isPgEnum");function R9(T){return!!T&&typeof T==="function"&&i8 in T&&T[i8]===!0}class U9 extends n{static[O]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new _9(T,this.config)}}class _9 extends q{static[O]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function kX(T,$){return uH(T,$,void 0)}function uH(T,$,J){let W=Object.assign((F)=>new U9(F??"",W),{enumName:T,enumValues:$,schema:J,[i8]:!0});return W}class eT{static[O]="Subquery";constructor(T,$,J,W=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:W}}}class lW extends eT{static[O]="WithSubquery"}var k9="0.41.0";var t8,l8,LT={startActiveSpan(T,$){if(!t8)return $();if(!l8)l8=t8.trace.getTracer("drizzle-orm",k9);return _X((J,W)=>W.startActiveSpan(T,(F)=>{try{return $(F)}catch(X){throw F.setStatus({code:J.SpanStatusCode.ERROR,message:X instanceof Error?X.message:"Unknown error"}),X}finally{F.end()}}),t8,l8)}};var CT=Symbol.for("drizzle:ViewBaseConfig");var VX=Symbol.for("drizzle:Schema"),BX=Symbol.for("drizzle:Columns"),V9=Symbol.for("drizzle:ExtraConfigColumns"),r8=Symbol.for("drizzle:OriginalName"),a8=Symbol.for("drizzle:BaseName"),rW=Symbol.for("drizzle:IsAlias"),B9=Symbol.for("drizzle:ExtraConfigBuilder"),iH=Symbol.for("drizzle:IsDrizzleTable");class h{static[O]="Table";static Symbol={Name:JJ,Schema:VX,OriginalName:r8,Columns:BX,ExtraConfigColumns:V9,BaseName:a8,IsAlias:rW,ExtraConfigBuilder:B9};[JJ];[r8];[VX];[BX];[V9];[a8];[rW]=!1;[iH]=!0;[B9]=void 0;constructor(T,$,J){this[JJ]=this[r8]=T,this[VX]=$,this[a8]=J}}function W$(T){return T[JJ]}function I0(T){return`${T[VX]??"public"}.${T[JJ]}`}function s8(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function tH(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[O]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new g([this])}}class g{constructor(T){this.queryChunks=T}static[O]="SQL";decoder=y9;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return LT.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:W,escapeName:F,escapeParam:X,prepareTyping:Y,inlineParams:S,paramStartIndex:A}=J;return tH(T.map((w)=>{if(_(w,T$))return{sql:w.value.join(""),params:[]};if(_(w,LX))return{sql:F(w.value),params:[]};if(w===void 0)return{sql:"",params:[]};if(Array.isArray(w)){let G=[new T$("(")];for(let[M,H]of w.entries())if(G.push(H),M<w.length-1)G.push(new T$(", "));return G.push(new T$(")")),this.buildQueryFromSourceParams(G,J)}if(_(w,g))return this.buildQueryFromSourceParams(w.queryChunks,{...J,inlineParams:S||w.shouldInlineParams});if(_(w,h)){let G=w[h.Symbol.Schema],M=w[h.Symbol.Name];return{sql:G===void 0||w[rW]?F(M):F(G)+"."+F(M),params:[]}}if(_(w,BT)){let G=W.getColumnCasing(w);if($.invokeSource==="indexes")return{sql:F(G),params:[]};let M=w.table[h.Symbol.Schema];return{sql:w.table[rW]||M===void 0?F(w.table[h.Symbol.Name])+"."+F(G):F(M)+"."+F(w.table[h.Symbol.Name])+"."+F(G),params:[]}}if(_(w,L$)){let G=w[CT].schema,M=w[CT].name;return{sql:G===void 0||w[CT].isAlias?F(M):F(G)+"."+F(M),params:[]}}if(_(w,v$)){if(_(w.value,rJ))return{sql:X(A.value++,w),params:[w],typings:["none"]};let G=w.value===null?null:w.encoder.mapToDriverValue(w.value);if(_(G,g))return this.buildQueryFromSourceParams([G],J);if(S)return{sql:this.mapInlineParam(G,J),params:[]};let M=["none"];if(Y)M=[Y(w.encoder)];return{sql:X(A.value++,G),params:[G],typings:M}}if(_(w,rJ))return{sql:X(A.value++,w),params:[w],typings:["none"]};if(_(w,g.Aliased)&&w.fieldAlias!==void 0)return{sql:F(w.fieldAlias),params:[]};if(_(w,eT)){if(w._.isWith)return{sql:F(w._.alias),params:[]};return this.buildQueryFromSourceParams([new T$("("),w._.sql,new T$(") "),new LX(w._.alias)],J)}if(R9(w)){if(w.schema)return{sql:F(w.schema)+"."+F(w.enumName),params:[]};return{sql:F(w.enumName),params:[]}}if(s8(w)){if(w.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([w.getSQL()],J);return this.buildQueryFromSourceParams([new T$("("),w.getSQL(),new T$(")")],J)}if(S)return{sql:this.mapInlineParam(w,J),params:[]};return{sql:X(A.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 g.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 LX{constructor(T){this.value=T}static[O]="Name";brand;getSQL(){return new g([this])}}function L9(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var y9={mapFromDriverValue:(T)=>T},N9={mapToDriverValue:(T)=>T},uj={...y9,...N9};class v${constructor(T,$=N9){this.value=T,this.encoder=$}static[O]="Param";brand;getSQL(){return new g([this])}}function K(T,...$){let J=[];if($.length>0||T.length>0&&T[0]!=="")J.push(new T$(T[0]));for(let[W,F]of $.entries())J.push(F,new T$(T[W+1]));return new g(J)}((T)=>{function $(){return new g([])}T.empty=$;function J(A){return new g(A)}T.fromList=J;function W(A){return new g([new T$(A)])}T.raw=W;function F(A,w){let G=[];for(let[M,H]of A.entries()){if(M>0&&w!==void 0)G.push(w);G.push(H)}return new g(G)}T.join=F;function X(A){return new LX(A)}T.identifier=X;function Y(A){return new rJ(A)}T.placeholder=Y;function S(A,w){return new v$(A,w)}T.param=S})(K||(K={}));((T)=>{class ${constructor(J,W){this.sql=J,this.fieldAlias=W}static[O]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(g||(g={}));class rJ{constructor(T){this.name=T}static[O]="Placeholder";getSQL(){return new g([this])}}function e8(T,$){return T.map((J)=>{if(_(J,rJ)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(_(J,v$)&&_(J.value,rJ)){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 lH=Symbol.for("drizzle:IsDrizzleView");class L${static[O]="View";[CT];[lH]=!0;constructor({name:T,schema:$,selectedFields:J,query:W}){this[CT]={name:T,originalName:T,schema:$,selectedFields:J,query:W,isExisting:!W,isAlias:!1}}getSQL(){return new g([this])}}BT.prototype.getSQL=function(){return new g([this])};h.prototype.getSQL=function(){return new g([this])};eT.prototype.getSQL=function(){return new g([this])};class b1{constructor(T){this.table=T}static[O]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class aW{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[O]="TableAliasProxyHandler";get(T,$){if($===h.Symbol.IsAlias)return!0;if($===h.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===h.Symbol.OriginalName)return this.alias;if($===CT)return{...T[CT],name:this.alias,isAlias:!0};if($===h.Symbol.Columns){let W=T[h.Symbol.Columns];if(!W)return W;let F={};return Object.keys(W).map((X)=>{F[X]=new Proxy(W[X],new b1(new Proxy(T,this)))}),F}let J=T[$];if(_(J,BT))return new Proxy(J,new b1(new Proxy(T,this)));return J}}function yX(T,$){return new Proxy(T,new aW($,!1))}function zJ(T,$){return new Proxy(T,new b1(new Proxy(T.table,new aW($,!1))))}function T4(T,$){return new g.Aliased(sW(T.sql,$),T.fieldAlias)}function sW(T,$){return K.join(T.queryChunks.map((J)=>{if(_(J,BT))return zJ(J,$);if(_(J,g))return sW(J,$);if(_(J,g.Aliased))return T4(J,$);return J}))}class NX extends Error{static[O]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class $4 extends NX{static[O]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function y$(T,$){if(L9($)&&!s8(T)&&!_(T,v$)&&!_(T,rJ)&&!_(T,BT)&&!_(T,h)&&!_(T,L$))return new v$(T,$);return T}var CX=(T,$)=>{return K`${T} = ${y$($,T)}`},C9=(T,$)=>{return K`${T} <> ${y$($,T)}`};function eW(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new g($);return new g([new T$("("),K.join($,new T$(" and ")),new T$(")")])}function x9(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new g($);return new g([new T$("("),K.join($,new T$(" or ")),new T$(")")])}function j9(T){return K`not ${T}`}var xX=(T,$)=>{return K`${T} > ${y$($,T)}`},Z9=(T,$)=>{return K`${T} >= ${y$($,T)}`},q9=(T,$)=>{return K`${T} < ${y$($,T)}`},I9=(T,$)=>{return K`${T} <= ${y$($,T)}`};function b9(T,$){if(Array.isArray($)){if($.length===0)return K`false`;return K`${T} in ${$.map((J)=>y$(J,T))}`}return K`${T} in ${y$($,T)}`}function v9(T,$){if(Array.isArray($)){if($.length===0)return K`true`;return K`${T} not in ${$.map((J)=>y$(J,T))}`}return K`${T} not in ${y$($,T)}`}function P9(T){return K`${T} is null`}function h9(T){return K`${T} is not null`}function m9(T){return K`exists ${T}`}function g9(T){return K`not exists ${T}`}function c9(T,$,J){return K`${T} between ${y$($,T)} and ${y$(J,T)}`}function n9(T,$,J){return K`${T} not between ${y$($,T)} and ${y$(J,T)}`}function p9(T,$){return K`${T} like ${$}`}function o9(T,$){return K`${T} not like ${$}`}function d9(T,$){return K`${T} ilike ${$}`}function u9(T,$){return K`${T} not ilike ${$}`}function i9(T){return K`${T} asc`}function t9(T){return K`${T} desc`}class l9{static[O]="ConsoleLogWriter";write(T){console.log(T)}}class J4{static[O]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new l9}logQuery(T,$){let J=$.map((F)=>{try{return JSON.stringify(F)}catch{return String(F)}}),W=J.length?` -- params: [${J.join(", ")}]`:"";this.writer.write(`Query: ${T}${W}`)}}class W4{static[O]="NoopLogger";logQuery(){}}class R${static[O]="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 r9(T,$,J){let W={},F=T.reduce((X,{path:Y,field:S},A)=>{let w;if(_(S,BT))w=S;else if(_(S,g))w=S.decoder;else w=S.sql.decoder;let G=X;for(let[M,H]of Y.entries())if(M<Y.length-1){if(!(H in G))G[H]={};G=G[H]}else{let f=$[A],D=G[H]=f===null?null:w.mapFromDriverValue(f);if(J&&_(S,BT)&&Y.length===2){let R=Y[0];if(!(R in W))W[R]=D===null?W$(S.table):!1;else if(typeof W[R]==="string"&&W[R]!==W$(S.table))W[R]=!1}}return X},{});if(J&&Object.keys(W).length>0){for(let[X,Y]of Object.entries(W))if(typeof Y==="string"&&!J[Y])F[X]=null}return F}function o$(T,$){return Object.entries(T).reduce((J,[W,F])=>{if(typeof W!=="string")return J;let X=$?[...$,W]:[W];if(_(F,BT)||_(F,g)||_(F,g.Aliased))J.push({path:X,field:F});else if(_(F,h))J.push(...o$(F[h.Symbol.Columns],X));else J.push(...o$(F,X));return J},[])}function TF(T,$){let J=Object.keys(T),W=Object.keys($);if(J.length!==W.length)return!1;for(let[F,X]of J.entries())if(X!==W[F])return!1;return!0}function jX(T,$){let J=Object.entries($).filter(([,W])=>W!==void 0).map(([W,F])=>{if(_(F,g)||_(F,BT))return[W,F];else return[W,new v$(F,T[h.Symbol.Columns][W])]});if(J.length===0)throw new Error("No values to set");return Object.fromEntries(J)}function a9(T,$){for(let J of $)for(let W of Object.getOwnPropertyNames(J.prototype)){if(W==="constructor")continue;Object.defineProperty(T.prototype,W,Object.getOwnPropertyDescriptor(J.prototype,W)||Object.create(null))}}function s9(T){return T[h.Symbol.Columns]}function jJ(T){return _(T,eT)?T._.alias:_(T,L$)?T[CT].name:_(T,g)?void 0:T[h.Symbol.IsAlias]?T[h.Symbol.Name]:T[h.Symbol.BaseName]}function wT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function e9(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.schema;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in T){let $=typeof T.casing;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 aJ extends n{static[O]="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 T7 extends aJ{static[O]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new $7(T,this.config)}}class $7 extends q{static[O]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class J7 extends aJ{static[O]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new W7(T,this.config)}}class W7 extends q{static[O]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function F7(T,$){let{name:J,config:W}=wT(T,$);if(W.mode==="number")return new T7(J);return new J7(J)}class X7 extends n{static[O]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new Y7(T,this.config)}}class Y7 extends q{static[O]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class S7 extends n{static[O]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new A7(T,this.config)}}class A7 extends q{static[O]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function w7(T,$){let{name:J,config:W}=wT(T,$);if(W.mode==="number")return new X7(J);return new S7(J)}class G7 extends n{static[O]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new M7(T,this.config)}}class M7 extends q{static[O]="PgBoolean";getSQLType(){return"boolean"}}function $F(T){return new G7(T??"")}class H7 extends n{static[O]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new z7(T,this.config)}}class z7 extends q{static[O]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function O7(T,$={}){let{name:J,config:W}=wT(T,$);return new H7(J,W)}class K7 extends n{static[O]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new f7(T,this.config)}}class f7 extends q{static[O]="PgCidr";getSQLType(){return"cidr"}}function D7(T){return new K7(T??"")}class Q7 extends n{static[O]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new E7(T,this.config)}}class E7 extends q{static[O]="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 R7(T){return($,J)=>{let{name:W,config:F}=wT($,J);return new Q7(W,F,T)}}class ZJ extends n{static[O]="PgDateColumnBaseBuilder";defaultNow(){return this.default(K`now()`)}}class U7 extends ZJ{static[O]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new ZX(T,this.config)}}class ZX extends q{static[O]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class _7 extends ZJ{static[O]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new qX(T,this.config)}}class qX extends q{static[O]="PgDateString";getSQLType(){return"date"}}function k7(T,$){let{name:J,config:W}=wT(T,$);if(W?.mode==="date")return new U7(J);return new _7(J)}class V7 extends n{static[O]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new B7(T,this.config)}}class B7 extends q{static[O]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function L7(T){return new V7(T??"")}class y7 extends n{static[O]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new N7(T,this.config)}}class N7 extends q{static[O]="PgInet";getSQLType(){return"inet"}}function C7(T){return new y7(T??"")}class x7 extends aJ{static[O]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new j7(T,this.config)}}class j7 extends q{static[O]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function IX(T){return new x7(T??"")}class Z7 extends n{static[O]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new q7(T,this.config)}}class q7 extends q{static[O]="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 I7(T,$={}){let{name:J,config:W}=wT(T,$);return new Z7(J,W)}class b7 extends n{static[O]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new bX(T,this.config)}}class bX extends q{static[O]="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 v7(T){return new b7(T??"")}class P7 extends n{static[O]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new vX(T,this.config)}}class vX extends q{static[O]="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 h7(T){return new P7(T??"")}class m7 extends n{static[O]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new g7(T,this.config)}}class g7 extends q{static[O]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J),Number.parseFloat(W)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class c7 extends n{static[O]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new n7(T,this.config)}}class n7 extends q{static[O]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(J),c:Number.parseFloat(W)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function p7(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new m7(J);return new c7(J)}class o7 extends n{static[O]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new d7(T,this.config)}}class d7 extends q{static[O]="PgMacaddr";getSQLType(){return"macaddr"}}function u7(T){return new o7(T??"")}class i7 extends n{static[O]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new t7(T,this.config)}}class t7 extends q{static[O]="PgMacaddr8";getSQLType(){return"macaddr8"}}function l7(T){return new i7(T??"")}class r7 extends n{static[O]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new PX(T,this.config)}}class PX extends q{static[O]="PgNumeric";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(T){if(typeof T==="string")return T;return String(T)}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})`}}class a7 extends n{static[O]="PgNumericNumberBuilder";constructor(T,$,J){super(T,"number","PgNumericNumber");this.config.precision=$,this.config.scale=J}build(T){return new s7(T,this.config)}}class s7 extends q{static[O]="PgNumericNumber";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}mapToDriverValue=String;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})`}}class e7 extends n{static[O]="PgNumericBigIntBuilder";constructor(T,$,J){super(T,"bigint","PgNumericBigInt");this.config.precision=$,this.config.scale=J}build(T){return new TA(T,this.config)}}class TA extends q{static[O]="PgNumericBigInt";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;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 $A(T,$){let{name:J,config:W}=wT(T,$),F=W?.mode;return F==="number"?new a7(J,W?.precision,W?.scale):F==="bigint"?new e7(J,W?.precision,W?.scale):new r7(J,W?.precision,W?.scale)}class JA extends n{static[O]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new WA(T,this.config)}}class WA extends q{static[O]="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 FA extends n{static[O]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new XA(T,this.config)}}class XA extends q{static[O]="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 YA(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new JA(J);return new FA(J)}function rH(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function SA(T,$){let J=new ArrayBuffer(8),W=new DataView(J);for(let F=0;F<8;F++)W.setUint8(F,T[$+F]);return W.getFloat64(0,!0)}function F4(T){let $=rH(T),J=0,W=$[J];J+=1;let F=new DataView($.buffer),X=F.getUint32(J,W===1);J+=4;let Y;if(X&536870912)Y=F.getUint32(J,W===1),J+=4;if((X&65535)===1){let S=SA($,J);J+=8;let A=SA($,J);return J+=8,[S,A]}throw new Error("Unsupported geometry type")}class AA extends n{static[O]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new wA(T,this.config)}}class wA extends q{static[O]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return F4(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class GA extends n{static[O]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new MA(T,this.config)}}class MA extends q{static[O]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=F4(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function HA(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new AA(J);return new GA(J)}class zA extends n{static[O]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new OA(T,this.config)}}class OA extends q{static[O]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function KA(T){return new zA(T??"")}class fA extends n{static[O]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new DA(T,this.config)}}class DA extends q{static[O]="PgSerial";getSQLType(){return"serial"}}function QA(T){return new fA(T??"")}class EA extends aJ{static[O]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new RA(T,this.config)}}class RA extends q{static[O]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function UA(T){return new EA(T??"")}class _A extends n{static[O]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new kA(T,this.config)}}class kA extends q{static[O]="PgSmallSerial";getSQLType(){return"smallserial"}}function VA(T){return new _A(T??"")}class BA extends n{static[O]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new LA(T,this.config)}}class LA extends q{static[O]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function yA(T,$={}){let{name:J,config:W}=wT(T,$);return new BA(J,W)}class NA extends ZJ{constructor(T,$,J){super(T,"string","PgTime");this.withTimezone=$,this.precision=J,this.config.withTimezone=$,this.config.precision=J}static[O]="PgTimeBuilder";build(T){return new hX(T,this.config)}}class hX extends q{static[O]="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 CA(T,$={}){let{name:J,config:W}=wT(T,$);return new NA(J,W.withTimezone??!1,W.precision)}class xA extends ZJ{static[O]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new mX(T,this.config)}}class mX extends q{static[O]="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 jA extends ZJ{static[O]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new gX(T,this.config)}}class gX extends q{static[O]="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 WJ(T,$={}){let{name:J,config:W}=wT(T,$);if(W?.mode==="string")return new jA(J,W.withTimezone??!1,W.precision);return new xA(J,W?.withTimezone??!1,W?.precision)}class ZA extends n{static[O]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(K`gen_random_uuid()`)}build(T){return new cX(T,this.config)}}class cX extends q{static[O]="PgUUID";getSQLType(){return"uuid"}}function P$(T){return new ZA(T??"")}class qA extends n{static[O]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new IA(T,this.config)}}class IA extends q{static[O]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function S$(T,$={}){let{name:J,config:W}=wT(T,$);return new qA(J,W)}class bA extends n{static[O]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new vA(T,this.config)}}class vA extends q{static[O]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function PA(T,$){let{name:J,config:W}=wT(T,$);return new bA(J,W)}class hA extends n{static[O]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new mA(T,this.config)}}class mA extends q{static[O]="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 gA(T,$){let{name:J,config:W}=wT(T,$);return new hA(J,W)}class cA extends n{static[O]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new nA(T,this.config)}}class nA extends q{static[O]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function pA(T,$){let{name:J,config:W}=wT(T,$);return new cA(J,W)}class oA extends n{static[O]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new dA(T,this.config)}}class dA extends q{static[O]="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 uA(T,$){let{name:J,config:W}=wT(T,$);return new oA(J,W)}function iA(){return{bigint:F7,bigserial:w7,boolean:$F,char:O7,cidr:D7,customType:R7,date:k7,doublePrecision:L7,inet:C7,integer:IX,interval:I7,json:v7,jsonb:h7,line:p7,macaddr:u7,macaddr8:l7,numeric:$A,point:YA,geometry:HA,real:KA,serial:QA,smallint:UA,smallserial:VA,text:yA,time:CA,timestamp:WJ,uuid:P$,varchar:S$,bit:PA,halfvec:gA,sparsevec:pA,vector:uA}}var X4=Symbol.for("drizzle:PgInlineForeignKeys"),tA=Symbol.for("drizzle:EnableRLS");class A$ extends h{static[O]="PgTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:X4,EnableRLS:tA});[X4]=[];[tA]=!1;[h.Symbol.ExtraConfigBuilder]=void 0;[h.Symbol.ExtraConfigColumns]={}}function aH(T,$,J,W,F=T){let X=new A$(T,W,F),Y=typeof $==="function"?$(iA()):$,S=Object.fromEntries(Object.entries(Y).map(([G,M])=>{let H=M;H.setName(G);let f=H.build(X);return X[X4].push(...H.buildForeignKeys(f,X)),[G,f]})),A=Object.fromEntries(Object.entries(Y).map(([G,M])=>{let H=M;H.setName(G);let f=H.buildExtraConfigColumn(X);return[G,f]})),w=Object.assign(X,S);if(w[h.Symbol.Columns]=S,w[h.Symbol.ExtraConfigColumns]=A,J)w[A$.Symbol.ExtraConfigBuilder]=J;return Object.assign(w,{enableRLS:()=>{return w[A$.Symbol.EnableRLS]=!0,w}})}var sJ=(T,$,J)=>{return aH(T,$,J,void 0)};function lA(...T){if(T[0].columns)return new JF(T[0].columns,T[0].name);return new JF(T)}class JF{static[O]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new rA(T,this.columns,this.name)}}class rA{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[O]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[A$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class Y4{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[h.Symbol.Name]}static[O]="Relation";referencedTableName;fieldName}class aA{constructor(T,$){this.table=T,this.config=$}static[O]="Relations"}class eJ extends Y4{constructor(T,$,J,W){super(T,$,J?.relationName);this.config=J,this.isNullable=W}static[O]="One";withFieldName(T){let $=new eJ(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class WF extends Y4{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[O]="Many";withFieldName(T){let $=new WF(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function sA(){return{and:eW,between:c9,eq:CX,exists:m9,gt:xX,gte:Z9,ilike:d9,inArray:b9,isNull:P9,isNotNull:h9,like:p9,lt:q9,lte:I9,ne:C9,not:j9,notBetween:n9,notExists:g9,notLike:o9,notIlike:u9,notInArray:v9,or:x9,sql:K}}function eA(){return{sql:K,asc:i9,desc:t9}}function T5(T,$){if(Object.keys(T).length===1&&"default"in T&&!_(T.default,h))T=T.default;let J={},W={},F={};for(let[X,Y]of Object.entries(T))if(_(Y,h)){let S=I0(Y),A=W[S];J[S]=X,F[X]={tsName:X,dbName:Y[h.Symbol.Name],schema:Y[h.Symbol.Schema],columns:Y[h.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let G of Object.values(Y[h.Symbol.Columns]))if(G.primary)F[X].primaryKey.push(G);let w=Y[h.Symbol.ExtraConfigBuilder]?.(Y[h.Symbol.ExtraConfigColumns]);if(w){for(let G of Object.values(w))if(_(G,JF))F[X].primaryKey.push(...G.columns)}}else if(_(Y,aA)){let S=I0(Y.table),A=J[S],w=Y.config($(Y.table)),G;for(let[M,H]of Object.entries(w))if(A){let f=F[A];if(f.relations[M]=H,G)f.primaryKey.push(...G)}else{if(!(S in W))W[S]={relations:{},primaryKey:G};W[S].relations[M]=H}}return{tables:F,tableNamesMap:J}}function sH(T){return function $(J,W){return new eJ(T,J,W,W?.fields.reduce((F,X)=>F&&X.notNull,!0)??!1)}}function eH(T){return function $(J,W){return new WF(T,J,W)}}function $5(T,$,J){if(_(J,eJ)&&J.config)return{fields:J.config.fields,references:J.config.references};let W=$[I0(J.referencedTable)];if(!W)throw new Error(`Table "${J.referencedTable[h.Symbol.Name]}" not found in schema`);let F=T[W];if(!F)throw new Error(`Table "${W}" not found in schema`);let X=J.sourceTable,Y=$[I0(X)];if(!Y)throw new Error(`Table "${X[h.Symbol.Name]}" not found in schema`);let S=[];for(let A of Object.values(F.relations))if(J.relationName&&J!==A&&A.relationName===J.relationName||!J.relationName&&A.referencedTable===J.sourceTable)S.push(A);if(S.length>1)throw J.relationName?new Error(`There are multiple relations with name "${J.relationName}" in table "${W}"`):new Error(`There are multiple relations between "${W}" and "${J.sourceTable[h.Symbol.Name]}". Please specify relation name`);if(S[0]&&_(S[0],eJ)&&S[0].config)return{fields:S[0].config.references,references:S[0].config.fields};throw new Error(`There is not enough information to infer relation "${Y}.${J.fieldName}"`)}function J5(T){return{one:sH(T),many:eH(T)}}function nX(T,$,J,W,F=(X)=>X){let X={};for(let[Y,S]of W.entries())if(S.isJson){let A=$.relations[S.tsKey],w=J[Y],G=typeof w==="string"?JSON.parse(w):w;X[S.tsKey]=_(A,eJ)?G&&nX(T,T[S.relationTableTsKey],G,S.selection,F):G.map((M)=>nX(T,T[S.relationTableTsKey],M,S.selection,F))}else{let A=F(J[Y]),w=S.field,G;if(_(w,BT))G=w;else if(_(w,g))G=w.decoder;else G=w.sql.decoder;X[S.tsKey]=A===null?null:G.mapFromDriverValue(A)}return X}import l3 from"node:path";import k3 from"node:os";import V3 from"node:fs";var pX=new Map,S4=new Map,A4=Symbol("OriginError"),v1={};class d$ extends Promise{constructor(T,$,J,W,F={}){let X,Y;super((S,A)=>{X=S,Y=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=W,this.options=F,this.state=null,this.statement=null,this.resolve=(S)=>(this.active=!1,X(S)),this.reject=(S)=>(this.active=!1,Y(S)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[A4]=this.handler.debug?new Error:this.tagged&&T3(this.strings)}get origin(){return(this.handler.debug?this[A4].stack:this.tagged&&S4.has(this.strings)?S4.get(this.strings):S4.set(this.strings,this[A4].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 W=new Promise((F,X)=>{this.cursorFn=(Y)=>{return F({value:Y,done:!1}),new Promise((S)=>J=S)},this.resolve=()=>(this.active=!1,F({done:!0})),this.reject=(Y)=>(this.active=!1,X(Y))});return this.execute(),W},return(){return J&&J(v1),{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 T3(T){if(pX.has(T))return pX.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,pX.set(T,new Error),Error.stackTraceLimit=$,pX.get(T)}class P1 extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var oT={connection:W5,postgres:F5,generic:X5,notSupported:Y5};function W5(T,$,J){let{host:W,port:F}=J||$,X=Object.assign(new Error("write "+T+" "+($.path||W+":"+F)),{code:T,errno:T,address:$.path||W},$.path?{}:{port:F});return Error.captureStackTrace(X,W5),X}function F5(T){let $=new P1(T);return Error.captureStackTrace($,F5),$}function X5(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,X5),J}function Y5(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,Y5),$}var $3={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 uX{then(){w4()}catch(){w4()}finally(){w4()}}class SF extends uX{constructor(T){super();this.value=lX(T)}}class OJ extends uX{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class iX extends uX{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,W){let F=J3.map(([X,Y])=>({fn:Y,i:T.search(X)})).sort((X,Y)=>X.i-Y.i).pop();return F.i===-1?O4(this.first,W):F.fn(this.first,this.rest,$,J,W)}}function tX(T,$,J,W){let F=T instanceof OJ?T.value:T;if(F===void 0){if(T instanceof OJ?T.value=W.transform.undefined:F=T=W.transform.undefined,F===void 0)throw oT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof OJ?($.push(T.value),T.array?T.array[T.type||dX(T.value)]||T.type||G5(T.value):T.type):($.push(T),dX(T)))}var A5=H5($3);function H4(T,$,J,W,F,X){for(let Y=1;Y<T.strings.length;Y++)$+=z4($,J,W,F,X)+T.strings[Y],J=T.args[Y];return $}function z4(T,$,J,W,F){return $ instanceof iX?$.build(T,J,W,F):$ instanceof d$?M4($,J,W,F):$ instanceof SF?$.value:$&&$[0]instanceof d$?$.reduce((X,Y)=>X+" "+M4(Y,J,W,F),""):tX($,J,W,F)}function M4(T,$,J,W){return T.fragment=!0,H4(T,T.strings[0],T.args[0],$,J,W)}function w5(T,$,J,W,F){return T.map((X)=>"("+W.map((Y)=>z4("values",X[Y],$,J,F)).join(",")+")").join(",")}function S5(T,$,J,W,F){let X=Array.isArray(T[0]),Y=$.length?$.flat():Object.keys(X?T[0]:T);return w5(X?T:[T],J,W,Y,F)}function oX(T,$,J,W,F){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return O4(T,F);let X;return($.length?$.flat():Object.keys(T)).map((S)=>{return X=T[S],(X instanceof d$?M4(X,J,W,F):X instanceof SF?X.value:tX(X,J,W,F))+" as "+lX(F.transform.column.to?F.transform.column.to(S):S)}).join(",")}var J3=Object.entries({values:S5,in:(...T)=>{let $=S5(...T);return $==="()"?"(null)":$},select:oX,as:oX,returning:oX,"\\(":oX,update(T,$,J,W,F){return($.length?$.flat():Object.keys(T)).map((X)=>lX(F.transform.column.to?F.transform.column.to(X):X)+"="+z4("values",T[X],J,W,F))},insert(T,$,J,W,F){let X=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+O4(X,F)+")values"+w5(Array.isArray(T)?T:[T],J,W,X,F)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function w4(){throw oT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:W3,parsers:F3}=A5;function G5(T){if(Array.isArray(T))return G5(T[0]);return typeof T==="string"?1009:0}var M5=function(T){let $=H5(T||{});return{serializers:Object.assign({},W3,$.serializers),parsers:Object.assign({},F3,$.parsers)}};function H5(T){return Object.keys(T).reduce(($,J)=>{if(T[J].from&&[].concat(T[J].from).forEach((W)=>$.parsers[W]=T[J].parse),T[J].serialize)$.serializers[T[J].to]=T[J].serialize,T[J].from&&[].concat(T[J].from).forEach((W)=>$.serializers[W]=T[J].serialize);return $},{parsers:{},serializers:{}})}function O4(T,{transform:{column:$}}){return T.map((J)=>lX($.to?$.to(J):J)).join(",")}var lX=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},dX=function T($){return $ instanceof OJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},X3=/\\/g,Y3=/"/g;function S3(T){return T.replace(X3,"\\\\").replace(Y3,"\\\"")}var z5=function T($,J,W,F){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let X=$[0],Y=F===1020?";":",";if(Array.isArray(X)&&!X.type)return"{"+$.map((S)=>T(S,J,W,F)).join(Y)+"}";return"{"+$.map((S)=>{if(S===void 0){if(S=W.transform.undefined,S===void 0)throw oT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return S===null?"null":'"'+S3(J?J(S.type?S.value:S):""+S)+'"'}).join(Y)+"}"},G4={i:0,char:null,str:"",quoted:!1,last:0},O5=function T($,J,W){return G4.i=G4.last=0,K5(G4,$,J,W)};function K5(T,$,J,W){let F=[],X=W===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(K5(T,$,J,W));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===X&&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 b0=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},v0=(T)=>{let $=T[0].toUpperCase();for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},P0=(T)=>T.replace(/_/g,"-"),FF=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),XF=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),YF=(T)=>T.replace(/-/g,"_");function K4(T){return function $(J,W){return typeof J==="object"&&J!==null&&(W.type===114||W.type===3802)?Array.isArray(J)?J.map((F)=>$(F,W)):Object.entries(J).reduce((F,[X,Y])=>Object.assign(F,{[T(X)]:$(Y,W)}),{}):J}}b0.column={from:b0};b0.value={from:K4(b0)};FF.column={to:FF};var f4={...b0};f4.column.to=FF;v0.column={from:v0};v0.value={from:K4(v0)};XF.column={to:XF};var D4={...v0};D4.column.to=XF;P0.column={from:P0};P0.value={from:K4(P0)};YF.column={to:YF};var Q4={...P0};Q4.column.to=YF;import f5 from"node:net";import M3 from"node:tls";import AF from"node:crypto";import E4 from"node:stream";import{performance as D5}from"node:perf_hooks";class h0 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 h$=A3;function A3(T=[]){let $=T.slice(),J=0;return{get length(){return $.length-J},remove:(W)=>{let F=$.indexOf(W);return F===-1?null:($.splice(F,1),W)},push:(W)=>($.push(W),W),shift:()=>{let W=$[J++];if(J===$.length)J=0,$=[];else $[J-1]=void 0;return W}}}var f$=Buffer.allocUnsafe(256),w3="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return f$[0]=J,UT.i=5,UT},T},{}),UT=Object.assign(G3,w3,{N:String.fromCharCode(0),i:0,inc(T){return UT.i+=T,UT},str(T){let $=Buffer.byteLength(T);return rX($),UT.i+=f$.write(T,UT.i,$,"utf8"),UT},i16(T){return rX(2),f$.writeUInt16BE(T,UT.i),UT.i+=2,UT},i32(T,$){if($||$===0)return f$.writeUInt32BE(T,$),UT;return rX(4),f$.writeUInt32BE(T,UT.i),UT.i+=4,UT},z(T){return rX(T),f$.fill(0,UT.i,UT.i+T),UT.i+=T,UT},raw(T){return f$=Buffer.concat([f$.subarray(0,UT.i),T]),UT.i=f$.length,UT},end(T=1){f$.writeUInt32BE(UT.i-T,T);let $=f$.subarray(0,UT.i);return UT.i=0,f$=Buffer.allocUnsafe(256),$}}),t=UT;function rX(T){if(f$.length-UT.i<T){let $=f$,J=$.length;f$=Buffer.allocUnsafe(J+(J>>1)+T),$.copy(f$)}}function G3(){return UT.i=0,UT}var _4=R5,H3=1,T0=t().S().end(),Q5=t().H().end(),z3=t().i32(8).i32(80877103).end(8),O3=Buffer.concat([t().E().str(t.N).i32(0).end(),T0]),K3=t().D().str("S").str(t.N).end(),h1=()=>{},f3=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),D3={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 R5(T,$={},{onopen:J=h1,onend:W=h1,onclose:F=h1}={}){let{ssl:X,max:Y,user:S,host:A,port:w,database:G,parsers:M,transform:H,onnotice:f,onnotify:D,onparameter:R,max_pipeline:y,keep_alive:j,backoff:L,target_session_attrs:Z}=T,E=h$(),V=H3++,B={pid:null,secret:null},k=U4(G2,T.idle_timeout),b=U4(G2,T.max_lifetime),r=U4(r5,T.connect_timeout),U=null,e,p=new h0,$T=Buffer.alloc(0),DT=T.fetch_types,PT={},_$={},KJ=Math.random().toString(36).slice(2),N=1,i=0,OT=0,qT=0,dT=0,YT=0,yT=0,cT=0,IT=null,xT=null,w$=!1,NT=null,u$=null,G$=null,bJ=null,uT=null,jT=null,i$=null,FJ=null,I=null,n1=null,M$={queue:$.closed,idleTimer:k,connect(z){G$=z||!0,l4()},terminate:o1,execute:p1,cancel:u5,end:G2,count:0,id:V};return $.closed&&$.closed.push(M$),M$;async function d5(){let z;try{z=T.socket?await Promise.resolve(T.socket(T)):new f5.Socket}catch(Q){n0(Q);return}return z.on("error",n0),z.on("close",r4),z.on("drain",i4),z}async function u5({pid:z,secret:Q},l,KT){try{e=t().i32(16).i32(80877102).i32(z).i32(Q).end(16),await t4(),U.once("error",KT),U.once("close",l)}catch(hT){KT(hT)}}function p1(z){if(w$)return KF(z,oT.connection("CONNECTION_DESTROYED",T));if(z.cancelled)return;try{return z.state=B,I?E.push(z):(I=z,I.active=!0),l5(z),F$(i5(z))&&!z.describeFirst&&!z.cursorFn&&E.length<y&&(!z.options.onexecute||z.options.onexecute(M$))}catch(Q){return E.length===0&&F$(T0),XJ(Q),!0}}function i5(z){if(z.parameters.length>=65534)throw oT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return z.options.simple?t().Q().str(z.statement.string+t.N).end():z.describeFirst?Buffer.concat([o4(z),Q5]):z.prepare?z.prepared?OF(z):Buffer.concat([o4(z),OF(z)]):t5(z)}function o4(z){return Buffer.concat([s4(z.statement.string,z.parameters,z.statement.types,z.statement.name),Iw("S",z.statement.name)])}function OF(z){return Buffer.concat([qw(z.parameters,z.statement.types,z.statement.name,z.cursorName),z.cursorFn?e4("",z.cursorRows):O3])}function t5(z){return Buffer.concat([s4(z.statement.string,z.parameters,z.statement.types),K3,OF(z)])}function l5(z){let Q=[],l=[],KT=H4(z,z.strings[0],z.args[0],Q,l,T);!z.tagged&&z.args.forEach((hT)=>tX(hT,Q,l,T)),z.prepare=T.prepare&&("prepare"in z.options?z.options.prepare:!0),z.string=KT,z.signature=z.prepare&&l+KT,z.onlyDescribe&&delete _$[z.signature],z.parameters=z.parameters||Q,z.prepared=z.prepare&&z.signature in _$,z.describeFirst=z.onlyDescribe||Q.length&&!z.prepared,z.statement=z.prepared?_$[z.signature]:{string:KT,types:l,name:z.prepare?KJ+N++:""},typeof T.debug==="function"&&T.debug(V,KT,Q,l)}function F$(z,Q){if(jT=jT?Buffer.concat([jT,z]):Buffer.from(z),Q||jT.length>=1024)return d4(Q);return xT===null&&(xT=setImmediate(d4)),!0}function d4(z){let Q=U.write(jT,z);return xT!==null&&clearImmediate(xT),jT=xT=null,Q}function r5(){XJ(oT.connection("CONNECT_TIMEOUT",T,U)),U.destroy()}async function u4(){if(F$(z3),!await new Promise((Q)=>U.once("data",(l)=>Q(l[0]===83)))&&X==="prefer")return c0();U.removeAllListeners(),U=M3.connect({socket:U,servername:f5.isIP(U.host)?void 0:U.host,...X==="require"||X==="allow"||X==="prefer"?{rejectUnauthorized:!1}:X==="verify-full"?{}:typeof X==="object"?X:{}}),U.on("secureConnect",c0),U.on("error",n0),U.on("close",r4),U.on("drain",i4)}function i4(){!I&&J(M$)}function w2(z){if(NT){if(NT.push(z),OT-=z.length,OT>=0)return}$T=NT?Buffer.concat(NT,YT-OT):$T.length===0?z:Buffer.concat([$T,z],$T.length+z.length);while($T.length>4){if(YT=$T.readUInt32BE(1),YT>=$T.length){OT=YT-$T.length,NT=[$T];break}try{a5($T.subarray(0,YT+1))}catch(Q){I&&(I.cursorFn||I.describeFirst)&&F$(T0),XJ(Q)}$T=$T.subarray(YT+1),OT=0,NT=null}}async function t4(){if(w$=!1,PT={},U||(U=await d5()),!U)return;if(r.start(),T.socket)return X?u4():c0();if(U.on("connect",X?u4:c0),T.path)return U.connect(T.path);U.ssl=X,U.connect(w[qT],A[qT]),U.host=A[qT],U.port=w[qT],qT=(qT+1)%w.length}function l4(){setTimeout(t4,i?i+yT-D5.now():0)}function c0(){try{_$={},DT=T.fetch_types,KJ=Math.random().toString(36).slice(2),N=1,b.start(),U.on("data",w2),j&&U.setKeepAlive&&U.setKeepAlive(!0,1000*j);let z=vw();F$(z)}catch(z){n0(z)}}function n0(z){if(M$.queue===$.connecting&&T.host[dT+1])return;XJ(z);while(E.length)KF(E.shift(),z)}function XJ(z){uT&&(uT.destroy(z),uT=null),I&&KF(I,z),G$&&(KF(G$,z),G$=null)}function KF(z,Q){"query"in Q||"parameters"in Q||Object.defineProperties(Q,{stack:{value:Q.stack+z.origin.replace(/.*\n/,`
68
+ `),enumerable:T.debug},query:{value:z.string,enumerable:T.debug},parameters:{value:z.parameters,enumerable:T.debug},args:{value:z.args,enumerable:T.debug},types:{value:z.statement&&z.statement.types,enumerable:T.debug}}),z.reject(Q)}function G2(){return bJ||(!M$.reserved&&W(M$),!M$.reserved&&!G$&&!I&&E.length===0?(o1(),new Promise((z)=>U&&U.readyState!=="closed"?U.once("close",z):z())):bJ=new Promise((z)=>i$=z))}function o1(){if(w$=!0,uT||I||G$||E.length)n0(oT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(xT),U)U.removeListener("data",w2),U.removeListener("connect",c0),U.readyState==="open"&&U.end(t().X().end());i$&&(i$(),bJ=i$=null)}async function r4(z){if($T=Buffer.alloc(0),OT=0,NT=null,clearImmediate(xT),U.removeListener("data",w2),U.removeListener("connect",c0),k.cancel(),b.cancel(),r.cancel(),U.removeAllListeners(),U=null,G$)return l4();!z&&(I||E.length)&&n0(oT.connection("CONNECTION_CLOSED",T,U)),i=D5.now(),z&&T.shared.retries++,yT=(typeof L==="function"?L(T.shared.retries):L)*1000,F(M$,oT.connection("CONNECTION_CLOSED",T,U))}function a5(z,Q=z[0]){(Q===68?s5:Q===100?Bw:Q===65?Ew:Q===83?e5:Q===90?Tw:Q===67?$w:Q===50?a4:Q===49?Jw:Q===116?Ww:Q===84?Fw:Q===82?Xw:Q===110?Mw:Q===75?Hw:Q===69?Dw:Q===115?Rw:Q===51?Uw:Q===71?_w:Q===78?yw:Q===72?kw:Q===99?Lw:Q===73?Nw:Q===86?Cw:Q===118?xw:Q===87?Vw:jw)(z)}function s5(z){let Q=7,l,KT,hT,H$=I.isRaw?new Array(I.statement.columns.length):{};for(let D$=0;D$<I.statement.columns.length;D$++)KT=I.statement.columns[D$],l=z.readInt32BE(Q),Q+=4,hT=l===-1?null:I.isRaw===!0?z.subarray(Q,Q+=l):KT.parser===void 0?z.toString("utf8",Q,Q+=l):KT.parser.array===!0?KT.parser(z.toString("utf8",Q+1,Q+=l)):KT.parser(z.toString("utf8",Q,Q+=l)),I.isRaw?H$[D$]=I.isRaw===!0?hT:H.value.from?H.value.from(hT,KT):hT:H$[KT.name]=H.value.from?H.value.from(hT,KT):hT;I.forEachFn?I.forEachFn(H.row.from?H.row.from(H$):H$,p):p[cT++]=H.row.from?H.row.from(H$):H$}function e5(z){let[Q,l]=z.toString("utf8",5,z.length-1).split(t.N);if(PT[Q]=l,T.parameters[Q]!==l)T.parameters[Q]=l,R&&R(Q,l)}function Tw(z){if(I&&I.options.simple&&I.resolve(u$||p),I=u$=null,p=new h0,r.cancel(),G$){if(Z){if(!PT.in_hot_standby||!PT.default_transaction_read_only)return fw();else if(Kw(Z,PT))return o1()}if(DT)return G$===!0&&(G$=null),zw();G$!==!0&&p1(G$),T.shared.retries=dT=0,G$=null;return}while(E.length&&(I=E.shift())&&(I.active=!0,I.cancelled))R5(T).cancel(I.state,I.cancelled.resolve,I.cancelled.reject);if(I)return;M$.reserved?!M$.reserved.release&&z[5]===73?bJ?o1():(M$.reserved=null,J(M$)):M$.reserved():bJ?o1():J(M$)}function $w(z){cT=0;for(let Q=z.length-1;Q>0;Q--){if(z[Q]===32&&z[Q+1]<58&&p.count===null)p.count=+z.toString("utf8",Q+1,z.length-1);if(z[Q-1]>=65){p.command=z.toString("utf8",5,Q),p.state=B;break}}if(n1&&(n1(),n1=null),p.command==="BEGIN"&&Y!==1&&!M$.reserved)return XJ(oT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(I.options.simple)return a4();if(I.cursorFn)p.count&&I.cursorFn(p),F$(T0);I.resolve(p)}function Jw(){I.parsing=!1}function a4(){!p.statement&&(p.statement=I.statement),p.columns=I.statement.columns}function Ww(z){let Q=z.readUInt16BE(5);for(let l=0;l<Q;++l)!I.statement.types[l]&&(I.statement.types[l]=z.readUInt32BE(7+l*4));I.prepare&&(_$[I.signature]=I.statement),I.describeFirst&&!I.onlyDescribe&&(F$(OF(I)),I.describeFirst=!1)}function Fw(z){if(p.command)u$=u$||[p],u$.push(p=new h0),p.count=null,I.statement.columns=null;let Q=z.readUInt16BE(5),l=7,KT;I.statement.columns=Array(Q);for(let hT=0;hT<Q;++hT){KT=l;while(z[l++]!==0);let H$=z.readUInt32BE(l),D$=z.readUInt16BE(l+4),vJ=z.readUInt32BE(l+6);I.statement.columns[hT]={name:H.column.from?H.column.from(z.toString("utf8",KT,l-1)):z.toString("utf8",KT,l-1),parser:M[vJ],table:H$,number:D$,type:vJ},l+=18}if(p.statement=I.statement,I.onlyDescribe)return I.resolve(I.statement),F$(T0)}async function Xw(z,Q=z.readUInt32BE(5)){(Q===3?Yw:Q===5?Sw:Q===10?Aw:Q===11?ww:Q===12?Gw:Q!==0?Zw:h1)(z,Q)}async function Yw(){let z=await M2();F$(t().p().str(z).z(1).end())}async function Sw(z){let Q="md5"+await E5(Buffer.concat([Buffer.from(await E5(await M2()+S)),z.subarray(9)]));F$(t().p().str(Q).z(1).end())}async function Aw(){FJ=(await AF.randomBytes(18)).toString("base64"),t().p().str("SCRAM-SHA-256"+t.N);let z=t.i;F$(t.inc(4).str("n,,n=*,r="+FJ).i32(t.i-z-4,z).end())}async function ww(z){let Q=z.toString("utf8",9).split(",").reduce((D$,vJ)=>(D$[vJ[0]]=vJ.slice(2),D$),{}),l=await AF.pbkdf2Sync(await M2(),Buffer.from(Q.s,"base64"),parseInt(Q.i),32,"sha256"),KT=await aX(l,"Client Key"),hT="n=*,r="+FJ+",r="+Q.r+",s="+Q.s+",i="+Q.i+",c=biws,r="+Q.r;IT=(await aX(await aX(l,"Server Key"),hT)).toString("base64");let H$="c=biws,r="+Q.r+",p="+E3(KT,Buffer.from(await aX(await Q3(KT),hT))).toString("base64");F$(t().p().str(H$).end())}function Gw(z){if(z.toString("utf8",9).split(t.N,1)[0].slice(2)===IT)return;XJ(oT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),U.destroy()}function M2(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function Mw(){if(p.statement=I.statement,p.statement.columns=[],I.onlyDescribe)return I.resolve(I.statement),F$(T0)}function Hw(z){B.pid=z.readUInt32BE(5),B.secret=z.readUInt32BE(9)}async function zw(){DT=!1,(await new d$([`
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
- `],[],o1)).forEach(({oid:Q,typarray:l})=>Sw(Q,l))}function Sw(O,Q){if(!!T.parsers[Q]&&!!T.serializers[Q])return;let l=T.parsers[O];T.shared.typeArrayMap[O]=Q,T.parsers[Q]=(fT)=>SA(fT,l,Q),T.parsers[Q].array=!0,T.serializers[Q]=(fT)=>XA(fT,T.serializers[O],T,Q)}function Yw(O,Q){return O==="read-write"&&Q.default_transaction_read_only==="on"||O==="read-only"&&Q.default_transaction_read_only==="off"||O==="primary"&&Q.in_hot_standby==="on"||O==="standby"&&Q.in_hot_standby==="off"||O==="prefer-standby"&&Q.in_hot_standby==="off"&&T.host[dT]}function Aw(){let O=new d$([`
75
+ `],[],p1)).forEach(({oid:Q,typarray:l})=>Ow(Q,l))}function Ow(z,Q){if(!!T.parsers[Q]&&!!T.serializers[Q])return;let l=T.parsers[z];T.shared.typeArrayMap[z]=Q,T.parsers[Q]=(KT)=>O5(KT,l,Q),T.parsers[Q].array=!0,T.serializers[Q]=(KT)=>z5(KT,T.serializers[z],T,Q)}function Kw(z,Q){return z==="read-write"&&Q.default_transaction_read_only==="on"||z==="read-only"&&Q.default_transaction_read_only==="off"||z==="primary"&&Q.in_hot_standby==="on"||z==="standby"&&Q.in_hot_standby==="off"||z==="prefer-standby"&&Q.in_hot_standby==="off"&&T.host[dT]}function fw(){let z=new d$([`
76
76
  show transaction_read_only;
77
77
  select pg_catalog.pg_is_in_recovery()
78
- `],[],o1,null,{simple:!0});O.resolve=([[Q],[l]])=>{PT.default_transaction_read_only=Q.transaction_read_only,PT.in_hot_standby=l.pg_is_in_recovery?"on":"off"},O.execute()}function ww(O){I&&(I.cursorFn||I.describeFirst)&&F$(eJ);let Q=oT.postgres(D4(O));I&&I.retried?XJ(I.retried):I&&I.prepared&&A3.has(Q.routine)?Gw(I,Q):XJ(Q)}function Gw(O,Q){delete _$[O.signature],O.retried=Q,o1(O)}function Mw(O){if(!D)return;let Q=9;while(O[Q++]!==0);D(O.toString("utf8",9,Q-1),O.toString("utf8",Q,O.length-1))}async function Hw(){try{let O=await Promise.resolve(I.cursorFn(p));cT=0,O===P1?F$(yw(I.portal)):(p=new v0,F$(r4("",I.cursorRows)))}catch(O){F$(eJ),I.reject(O)}}function Ow(){p.count&&I.cursorFn(p),I.resolve(p)}function zw(){uT=new K4.Writable({autoDestroy:!0,write(O,Q,l){U.write(t().d().raw(O).end(),l)},destroy(O,Q){Q(O),U.write(t().f().str(O+t.N).end()),uT=null},final(O){U.write(t().c().end()),p1=O}}),I.resolve(uT)}function fw(){uT=new K4.Readable({read(){U.resume()}}),I.resolve(uT)}function Kw(){uT=new K4.Duplex({autoDestroy:!0,read(){U.resume()},write(O,Q,l){U.write(t().d().raw(O).end(),l)},destroy(O,Q){Q(O),U.write(t().f().str(O+t.N).end()),uT=null},final(O){U.write(t().c().end()),p1=O}}),I.resolve(uT)}function Dw(O){uT&&(uT.push(O.subarray(5))||U.pause())}function Qw(){uT&&uT.push(null),uT=null}function Ew(O){K?K(D4(O)):console.log(D4(O))}function Rw(){}function Uw(){XJ(oT.notSupported("FunctionCallResponse"))}function _w(){XJ(oT.notSupported("NegotiateProtocolVersion"))}function kw(O){console.error("Postgres.js : Unknown Message:",O[0])}function Vw(O,Q){console.error("Postgres.js : Unknown Auth:",Q)}function Bw(O,Q,l="",fT=""){let hT,H$;return t().B().str(fT+t.N).str(l+t.N).i16(0).i16(O.length),O.forEach((D$,bJ)=>{if(D$===null)return t.i32(4294967295);H$=Q[bJ],O[bJ]=D$=H$ in T.serializers?T.serializers[H$](D$):""+D$,hT=t.i,t.inc(4).str(D$).i32(t.i-hT-4,hT)}),t.i16(0),t.end()}function l4(O,Q,l,fT=""){return t().P().str(fT+t.N).str(O+t.N).i16(Q.length),Q.forEach((hT,H$)=>t.i32(l[H$]||0)),t.end()}function Lw(O,Q=""){return t().D().str(O).str(Q+t.N).end()}function r4(O="",Q=0){return Buffer.concat([t().E().str(O+t.N).i32(Q).end(),GA])}function yw(O=""){return Buffer.concat([t().C().str("P").str(O+t.N).end(),t().S().end()])}function Nw(){return e||t().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:Y,database:G,client_encoding:"UTF8"},T.connection)).filter(([,O])=>O).map(([O,Q])=>O+t.N+Q).join(t.N)).z(2).end(0)}}function D4(T){let $={},J=5;for(let W=5;W<T.length-1;W++)if(T[W]===0)$[w3[T[J]]]=T.toString("utf8",J+1,W),J=W+1;return $}function MA(T){return AF.createHash("md5").update(T).digest("hex")}function aX(T,$){return AF.createHmac("sha256",T).update($).digest()}function G3(T){return AF.createHash("sha256").update(T).digest()}function M3(T,$){let J=Math.max(T.length,$.length),W=Buffer.allocUnsafe(J);for(let F=0;F<J;F++)W[F]=T[F]^$[F];return W}function Q4(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:m1,start:m1};let J;return{cancel(){J&&(clearTimeout(J),J=null)},start(){J&&clearTimeout(J),J=setTimeout(W,$*1000,arguments)}};function W(F){T.apply(null,F),J=null}}var OA=()=>{};function R4(T,$){let J=new Map,W="postgresjs_"+Math.random().toString(36).slice(2),F={},X,S,Y=!1,A=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(Y)return;S=null,F.pid=F.secret=void 0,H(await K(A,W,$.publications)),J.forEach((R)=>R.forEach(({onsubscribe:y})=>y()))},no_subscribe:!0}),w=A.end,G=A.close;return A.end=async()=>{return Y=!0,S&&await new Promise((R)=>(S.once("close",R),S.end())),w()},A.close=async()=>{return S&&await new Promise((R)=>(S.once("close",R),S.end())),G()},M;async function M(R,y,j=OA,L=OA){if(R=z3(R),!X)X=K(A,W,$.publications);let Z={fn:y,onsubscribe:j},E=J.has(R)?J.get(R).add(Z):J.set(R,new Set([Z])).get(R),V=()=>{E.delete(Z),E.size===0&&J.delete(R)};return X.then((B)=>{return H(B),j(),S&&S.on("error",L),{unsubscribe:V,state:F,sql:A}})}function H(R){S=R.stream,F.pid=R.state.pid,F.secret=R.state.secret}async function K(R,y,j){if(!j)throw new Error("Missing publication names");let L=await R.unsafe(`CREATE_REPLICATION_SLOT ${y} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[Z]=L,E=await R.unsafe(`START_REPLICATION SLOT ${y} LOGICAL ${Z.consistent_point} (proto_version '1', publication_names '${j}')`).writable(),V={lsn:Buffer.concat(Z.consistent_point.split("/").map((U)=>Buffer.from(("00000000"+U).slice(-8),"hex")))};return E.on("data",k),E.on("error",B),E.on("close",R.close),{stream:E,state:L.state};function B(U){console.error("Unexpected error during logical streaming - reconnecting",U)}function k(U){if(U[0]===119)O3(U.subarray(25),V,R.options.parsers,b,$.transform);else if(U[0]===107&&U[17])V.lsn=U.subarray(1,9),r()}function b(U,e){let p=e.relation.schema+"."+e.relation.table;D("*",U,e),D("*:"+p,U,e),e.relation.keys.length&&D("*:"+p+"="+e.relation.keys.map(($T)=>U[$T.name]),U,e),D(e.command,U,e),D(e.command+":"+p,U,e),e.relation.keys.length&&D(e.command+":"+p+"="+e.relation.keys.map(($T)=>U[$T.name]),U,e)}function r(){let U=Buffer.alloc(34);U[0]=114,U.fill(V.lsn,1),U.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),E.write(U)}}function D(R,y,j){J.has(R)&&J.get(R).forEach(({fn:L})=>L(y,j,R))}}function H3(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function O3(T,$,J,W,F){let X=(S,[Y,A])=>(S[Y.charCodeAt(0)]=A,S);Object.entries({R:(S)=>{let Y=1,A=$[S.readUInt32BE(Y)]={schema:S.toString("utf8",Y+=4,Y=S.indexOf(0,Y))||"pg_catalog",table:S.toString("utf8",Y+1,Y=S.indexOf(0,Y+1)),columns:Array(S.readUInt16BE(Y+=2)),keys:[]};Y+=2;let w=0,G;while(Y<S.length)G=A.columns[w++]={key:S[Y++],name:F.column.from?F.column.from(S.toString("utf8",Y,Y=S.indexOf(0,Y))):S.toString("utf8",Y,Y=S.indexOf(0,Y)),type:S.readUInt32BE(Y+=1),parser:J[S.readUInt32BE(Y)],atttypmod:S.readUInt32BE(Y+=4)},G.key&&A.keys.push(G),Y+=4},Y:()=>{},O:()=>{},B:(S)=>{$.date=H3(S.readBigInt64BE(9)),$.lsn=S.subarray(1,9)},I:(S)=>{let Y=1,A=$[S.readUInt32BE(Y)],{row:w}=sX(S,A.columns,Y+=7,F);W(w,{command:"insert",relation:A})},D:(S)=>{let Y=1,A=$[S.readUInt32BE(Y)];Y+=4;let w=S[Y]===75;W(w||S[Y]===79?sX(S,A.columns,Y+=3,F).row:null,{command:"delete",relation:A,key:w})},U:(S)=>{let Y=1,A=$[S.readUInt32BE(Y)];Y+=4;let w=S[Y]===75,G=w||S[Y]===79?sX(S,A.columns,Y+=3,F):null;G&&(Y=G.i);let{row:M}=sX(S,A.columns,Y+3,F);W(M,{command:"update",relation:A,key:w,old:G&&G.row})},T:()=>{},C:()=>{}}).reduce(X,{})[T[0]](T)}function sX(T,$,J,W){let F,X,S,Y=W.raw?new Array($.length):{};for(let A=0;A<$.length;A++)F=T[J++],X=$[A],S=F===110?null:F===117?void 0:X.parser===void 0?T.toString("utf8",J+4,J+=4+T.readUInt32BE(J)):X.parser.array===!0?X.parser(T.toString("utf8",J+5,J+=4+T.readUInt32BE(J))):X.parser(T.toString("utf8",J+4,J+=4+T.readUInt32BE(J))),W.raw?Y[A]=W.raw===!0?S:W.value.from?W.value.from(S,X):S:Y[X.name]=W.value.from?W.value.from(S,X):S;return{i:J,row:W.row.from?W.row.from(Y):Y}}function z3(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,J,W,F]=$;return(J||"*")+(W?":"+(W.indexOf(".")===-1?"public."+W:W):"")+(F?"="+F:"")}import zA from"stream";function U4(T,$,J=393216){return new Promise(async(W,F)=>{await T.begin(async(X)=>{let S;!$&&([{oid:$}]=await X`select lo_creat(-1) as oid`);let[{fd:Y}]=await X`select lo_open(${$}, ${J}) as fd`,A={writable:G,readable:w,close:()=>X`select lo_close(${Y})`.then(S),tell:()=>X`select lo_tell64(${Y})`,read:(M)=>X`select loread(${Y}, ${M}) as data`,write:(M)=>X`select lowrite(${Y}, ${M})`,truncate:(M)=>X`select lo_truncate64(${Y}, ${M})`,seek:(M,H=0)=>X`select lo_lseek64(${Y}, ${M}, ${H})`,size:()=>X`
78
+ `],[],p1,null,{simple:!0});z.resolve=([[Q],[l]])=>{PT.default_transaction_read_only=Q.transaction_read_only,PT.in_hot_standby=l.pg_is_in_recovery?"on":"off"},z.execute()}function Dw(z){I&&(I.cursorFn||I.describeFirst)&&F$(T0);let Q=oT.postgres(R4(z));I&&I.retried?XJ(I.retried):I&&I.prepared&&f3.has(Q.routine)?Qw(I,Q):XJ(Q)}function Qw(z,Q){delete _$[z.signature],z.retried=Q,p1(z)}function Ew(z){if(!D)return;let Q=9;while(z[Q++]!==0);D(z.toString("utf8",9,Q-1),z.toString("utf8",Q,z.length-1))}async function Rw(){try{let z=await Promise.resolve(I.cursorFn(p));cT=0,z===v1?F$(bw(I.portal)):(p=new h0,F$(e4("",I.cursorRows)))}catch(z){F$(T0),I.reject(z)}}function Uw(){p.count&&I.cursorFn(p),I.resolve(p)}function _w(){uT=new E4.Writable({autoDestroy:!0,write(z,Q,l){U.write(t().d().raw(z).end(),l)},destroy(z,Q){Q(z),U.write(t().f().str(z+t.N).end()),uT=null},final(z){U.write(t().c().end()),n1=z}}),I.resolve(uT)}function kw(){uT=new E4.Readable({read(){U.resume()}}),I.resolve(uT)}function Vw(){uT=new E4.Duplex({autoDestroy:!0,read(){U.resume()},write(z,Q,l){U.write(t().d().raw(z).end(),l)},destroy(z,Q){Q(z),U.write(t().f().str(z+t.N).end()),uT=null},final(z){U.write(t().c().end()),n1=z}}),I.resolve(uT)}function Bw(z){uT&&(uT.push(z.subarray(5))||U.pause())}function Lw(){uT&&uT.push(null),uT=null}function yw(z){f?f(R4(z)):console.log(R4(z))}function Nw(){}function Cw(){XJ(oT.notSupported("FunctionCallResponse"))}function xw(){XJ(oT.notSupported("NegotiateProtocolVersion"))}function jw(z){console.error("Postgres.js : Unknown Message:",z[0])}function Zw(z,Q){console.error("Postgres.js : Unknown Auth:",Q)}function qw(z,Q,l="",KT=""){let hT,H$;return t().B().str(KT+t.N).str(l+t.N).i16(0).i16(z.length),z.forEach((D$,vJ)=>{if(D$===null)return t.i32(4294967295);H$=Q[vJ],z[vJ]=D$=H$ in T.serializers?T.serializers[H$](D$):""+D$,hT=t.i,t.inc(4).str(D$).i32(t.i-hT-4,hT)}),t.i16(0),t.end()}function s4(z,Q,l,KT=""){return t().P().str(KT+t.N).str(z+t.N).i16(Q.length),Q.forEach((hT,H$)=>t.i32(l[H$]||0)),t.end()}function Iw(z,Q=""){return t().D().str(z).str(Q+t.N).end()}function e4(z="",Q=0){return Buffer.concat([t().E().str(z+t.N).i32(Q).end(),Q5])}function bw(z=""){return Buffer.concat([t().C().str("P").str(z+t.N).end(),t().S().end()])}function vw(){return e||t().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:S,database:G,client_encoding:"UTF8"},T.connection)).filter(([,z])=>z).map(([z,Q])=>z+t.N+Q).join(t.N)).z(2).end(0)}}function R4(T){let $={},J=5;for(let W=5;W<T.length-1;W++)if(T[W]===0)$[D3[T[J]]]=T.toString("utf8",J+1,W),J=W+1;return $}function E5(T){return AF.createHash("md5").update(T).digest("hex")}function aX(T,$){return AF.createHmac("sha256",T).update($).digest()}function Q3(T){return AF.createHash("sha256").update(T).digest()}function E3(T,$){let J=Math.max(T.length,$.length),W=Buffer.allocUnsafe(J);for(let F=0;F<J;F++)W[F]=T[F]^$[F];return W}function U4(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:h1,start:h1};let J;return{cancel(){J&&(clearTimeout(J),J=null)},start(){J&&clearTimeout(J),J=setTimeout(W,$*1000,arguments)}};function W(F){T.apply(null,F),J=null}}var U5=()=>{};function k4(T,$){let J=new Map,W="postgresjs_"+Math.random().toString(36).slice(2),F={},X,Y,S=!1,A=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(S)return;Y=null,F.pid=F.secret=void 0,H(await f(A,W,$.publications)),J.forEach((R)=>R.forEach(({onsubscribe:y})=>y()))},no_subscribe:!0}),w=A.end,G=A.close;return A.end=async()=>{return S=!0,Y&&await new Promise((R)=>(Y.once("close",R),Y.end())),w()},A.close=async()=>{return Y&&await new Promise((R)=>(Y.once("close",R),Y.end())),G()},M;async function M(R,y,j=U5,L=U5){if(R=_3(R),!X)X=f(A,W,$.publications);let Z={fn:y,onsubscribe:j},E=J.has(R)?J.get(R).add(Z):J.set(R,new Set([Z])).get(R),V=()=>{E.delete(Z),E.size===0&&J.delete(R)};return X.then((B)=>{return H(B),j(),Y&&Y.on("error",L),{unsubscribe:V,state:F,sql:A}})}function H(R){Y=R.stream,F.pid=R.state.pid,F.secret=R.state.secret}async function f(R,y,j){if(!j)throw new Error("Missing publication names");let L=await R.unsafe(`CREATE_REPLICATION_SLOT ${y} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[Z]=L,E=await R.unsafe(`START_REPLICATION SLOT ${y} LOGICAL ${Z.consistent_point} (proto_version '1', publication_names '${j}')`).writable(),V={lsn:Buffer.concat(Z.consistent_point.split("/").map((U)=>Buffer.from(("00000000"+U).slice(-8),"hex")))};return E.on("data",k),E.on("error",B),E.on("close",R.close),{stream:E,state:L.state};function B(U){console.error("Unexpected error during logical streaming - reconnecting",U)}function k(U){if(U[0]===119)U3(U.subarray(25),V,R.options.parsers,b,$.transform);else if(U[0]===107&&U[17])V.lsn=U.subarray(1,9),r()}function b(U,e){let p=e.relation.schema+"."+e.relation.table;D("*",U,e),D("*:"+p,U,e),e.relation.keys.length&&D("*:"+p+"="+e.relation.keys.map(($T)=>U[$T.name]),U,e),D(e.command,U,e),D(e.command+":"+p,U,e),e.relation.keys.length&&D(e.command+":"+p+"="+e.relation.keys.map(($T)=>U[$T.name]),U,e)}function r(){let U=Buffer.alloc(34);U[0]=114,U.fill(V.lsn,1),U.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),E.write(U)}}function D(R,y,j){J.has(R)&&J.get(R).forEach(({fn:L})=>L(y,j,R))}}function R3(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function U3(T,$,J,W,F){let X=(Y,[S,A])=>(Y[S.charCodeAt(0)]=A,Y);Object.entries({R:(Y)=>{let S=1,A=$[Y.readUInt32BE(S)]={schema:Y.toString("utf8",S+=4,S=Y.indexOf(0,S))||"pg_catalog",table:Y.toString("utf8",S+1,S=Y.indexOf(0,S+1)),columns:Array(Y.readUInt16BE(S+=2)),keys:[]};S+=2;let w=0,G;while(S<Y.length)G=A.columns[w++]={key:Y[S++],name:F.column.from?F.column.from(Y.toString("utf8",S,S=Y.indexOf(0,S))):Y.toString("utf8",S,S=Y.indexOf(0,S)),type:Y.readUInt32BE(S+=1),parser:J[Y.readUInt32BE(S)],atttypmod:Y.readUInt32BE(S+=4)},G.key&&A.keys.push(G),S+=4},Y:()=>{},O:()=>{},B:(Y)=>{$.date=R3(Y.readBigInt64BE(9)),$.lsn=Y.subarray(1,9)},I:(Y)=>{let S=1,A=$[Y.readUInt32BE(S)],{row:w}=sX(Y,A.columns,S+=7,F);W(w,{command:"insert",relation:A})},D:(Y)=>{let S=1,A=$[Y.readUInt32BE(S)];S+=4;let w=Y[S]===75;W(w||Y[S]===79?sX(Y,A.columns,S+=3,F).row:null,{command:"delete",relation:A,key:w})},U:(Y)=>{let S=1,A=$[Y.readUInt32BE(S)];S+=4;let w=Y[S]===75,G=w||Y[S]===79?sX(Y,A.columns,S+=3,F):null;G&&(S=G.i);let{row:M}=sX(Y,A.columns,S+3,F);W(M,{command:"update",relation:A,key:w,old:G&&G.row})},T:()=>{},C:()=>{}}).reduce(X,{})[T[0]](T)}function sX(T,$,J,W){let F,X,Y,S=W.raw?new Array($.length):{};for(let A=0;A<$.length;A++)F=T[J++],X=$[A],Y=F===110?null:F===117?void 0:X.parser===void 0?T.toString("utf8",J+4,J+=4+T.readUInt32BE(J)):X.parser.array===!0?X.parser(T.toString("utf8",J+5,J+=4+T.readUInt32BE(J))):X.parser(T.toString("utf8",J+4,J+=4+T.readUInt32BE(J))),W.raw?S[A]=W.raw===!0?Y:W.value.from?W.value.from(Y,X):Y:S[X.name]=W.value.from?W.value.from(Y,X):Y;return{i:J,row:W.row.from?W.row.from(S):S}}function _3(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,J,W,F]=$;return(J||"*")+(W?":"+(W.indexOf(".")===-1?"public."+W:W):"")+(F?"="+F:"")}import _5 from"node:stream";function V4(T,$,J=393216){return new Promise(async(W,F)=>{await T.begin(async(X)=>{let Y;!$&&([{oid:$}]=await X`select lo_creat(-1) as oid`);let[{fd:S}]=await X`select lo_open(${$}, ${J}) as fd`,A={writable:G,readable:w,close:()=>X`select lo_close(${S})`.then(Y),tell:()=>X`select lo_tell64(${S})`,read:(M)=>X`select loread(${S}, ${M}) as data`,write:(M)=>X`select lowrite(${S}, ${M})`,truncate:(M)=>X`select lo_truncate64(${S}, ${M})`,seek:(M,H=0)=>X`select lo_lseek64(${S}, ${M}, ${H})`,size:()=>X`
79
79
  select
80
- lo_lseek64(${Y}, location, 0) as position,
80
+ lo_lseek64(${S}, location, 0) as position,
81
81
  seek.size
82
82
  from (
83
83
  select
@@ -85,18 +85,18 @@ ${S}`)}let A=$J.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(ZT.
85
85
  tell.location
86
86
  from (select lo_tell64($1) as location) tell
87
87
  ) seek
88
- `};return W(A),new Promise(async(M)=>S=M);async function w({highWaterMark:M=16384,start:H=0,end:K=1/0}={}){let D=K-H;return H&&await A.seek(H),new zA.Readable({highWaterMark:M,async read(R){let y=R>D?R-D:R;D-=R;let[{data:j}]=await A.read(y);if(this.push(j),j.length<R)this.push(null)}})}async function G({highWaterMark:M=16384,start:H=0}={}){return H&&await A.seek(H),new zA.Writable({highWaterMark:M,write(K,D,R){A.write(K).then(()=>R(),R)}})}}).catch(F)})}Object.assign(eX,{PostgresError:h1,toPascal:I0,pascal:z4,toCamel:q0,camel:O4,toKebab:b0,kebab:f4,fromPascal:XF,fromCamel:FF,fromKebab:SF,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var g1=eX;function eX(T,$){let J=D3(T,$),W=J.no_subscribe||R4(eX,{...J}),F=!1,X=h$(),S=h$(),Y=h$(),A=h$(),w=h$(),G=h$(),M=h$(),H=h$(),K={connecting:S,reserved:Y,closed:A,ended:w,open:G,busy:M,full:H},D=[...Array(J.max)].map(()=>E4(J,K,{onopen:_$,onend:PT,onclose:fJ})),R=y(b);return Object.assign(R,{get parameters(){return J.parameters},largeObject:U4.bind(null,R),subscribe:W,CLOSE:P1,END:P1,PostgresError:h1,options:J,reserve:Z,listen:j,begin:E,close:p,end:e}),R;function y(N){return N.debug=J.debug,Object.entries(J.types).reduce((ST,[yT,cT])=>{return ST[yT]=(IT)=>new zJ(IT,cT.to),ST},i),Object.assign(zT,{types:i,typed:i,unsafe:qT,notify:L,array:k,json:B,file:dT}),zT;function i(ST,yT){return new zJ(ST,yT)}function zT(ST,...yT){return ST&&Array.isArray(ST.raw)?new d$(ST,yT,N,U):typeof ST==="string"&&!yT.length?new YF(J.transform.column.to?J.transform.column.to(ST):ST):new iX(ST,yT)}function qT(ST,yT=[],cT={}){return arguments.length===2&&!Array.isArray(yT)&&(cT=yT,yT=[]),new d$([ST],yT,N,U,{prepare:!1,...cT,simple:"simple"in cT?cT.simple:yT.length===0})}function dT(ST,yT=[],cT={}){return arguments.length===2&&!Array.isArray(yT)&&(cT=yT,yT=[]),new d$([],yT,(xT)=>{K3.readFile(ST,"utf8",(w$,NT)=>{if(w$)return xT.reject(w$);xT.strings=[NT],N(xT)})},U,{...cT,simple:"simple"in cT?cT.simple:yT.length===0})}}async function j(N,i,zT){let qT={fn:i,onlisten:zT},dT=j.sql||(j.sql=eX({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(j.channels).forEach(([xT,{listeners:w$}])=>{delete j.channels[xT],Promise.all(w$.map((NT)=>j(xT,NT.fn,NT.onlisten).catch(()=>{})))})},onnotify(xT,w$){xT in j.channels&&j.channels[xT].listeners.forEach((NT)=>NT.fn(w$))}})),ST=j.channels||(j.channels={});if(N in ST){ST[N].listeners.push(qT);let xT=await ST[N].result;return qT.onlisten&&qT.onlisten(),{state:xT.state,unlisten:IT}}ST[N]={result:dT`listen ${dT.unsafe('"'+N.replace(/"/g,'""')+'"')}`,listeners:[qT]};let cT=await ST[N].result;return qT.onlisten&&qT.onlisten(),{state:cT.state,unlisten:IT};async function IT(){if(N in ST===!1)return;if(ST[N].listeners=ST[N].listeners.filter((xT)=>xT!==qT),ST[N].listeners.length)return;return delete ST[N],dT`unlisten ${dT.unsafe('"'+N.replace(/"/g,'""')+'"')}`}}async function L(N,i){return await R`select pg_notify(${N}, ${""+i})`}async function Z(){let N=h$(),i=G.length?G.shift():await new Promise((dT)=>{X.push({reserve:dT}),A.length&&DT(A.shift())});V(i,Y),i.reserved=()=>N.length?i.execute(N.shift()):V(i,Y),i.reserved.release=!0;let zT=y(qT);return zT.release=()=>{i.reserved=null,_$(i)},zT;function qT(dT){i.queue===H?N.push(dT):i.execute(dT)||V(i,H)}}async function E(N,i){!i&&(i=N,N="");let zT=h$(),qT=0,dT,ST=null;try{return await R.unsafe("begin "+N.replace(/[^a-z ]/ig,""),[],{onexecute:cT}).execute(),await Promise.race([yT(dT,i),new Promise((IT,xT)=>dT.onclose=xT)])}catch(IT){throw IT}async function yT(IT,xT,w$){let NT=y(uT);NT.savepoint=IJ,NT.prepare=(jT)=>ST=jT.replace(/[^a-z0-9$-_. ]/gi);let u$,G$;w$&&await NT`savepoint ${NT(w$)}`;try{if(G$=await new Promise((jT,i$)=>{let FJ=xT(NT);Promise.resolve(Array.isArray(FJ)?Promise.all(FJ):FJ).then(jT,i$)}),u$)throw u$}catch(jT){throw await(w$?NT`rollback to ${NT(w$)}`:NT`rollback`),jT instanceof h1&&jT.code==="25P02"&&u$||jT}if(!w$)ST?await NT`prepare transaction '${NT.unsafe(ST)}'`:await NT`commit`;return G$;function IJ(jT,i$){if(jT&&Array.isArray(jT.raw))return IJ((FJ)=>FJ.apply(FJ,arguments));return arguments.length===1&&(i$=jT,jT=null),yT(IT,i$,"s"+qT+++(jT?"_"+jT:""))}function uT(jT){jT.catch((i$)=>u$||(u$=i$)),IT.queue===H?zT.push(jT):IT.execute(jT)||V(IT,H)}}function cT(IT){dT=IT,V(IT,Y),IT.reserved=()=>zT.length?IT.execute(zT.shift()):V(IT,Y)}}function V(N,i){return N.queue.remove(N),i.push(N),N.queue=i,i===G?N.idleTimer.start():N.idleTimer.cancel(),N}function B(N){return new zJ(N,3802)}function k(N,i){if(!Array.isArray(N))return k(Array.from(arguments));return new zJ(N,i||(N.length?dX(N)||25:0),J.shared.typeArrayMap)}function b(N){if(F)return N.reject(oT.connection("CONNECTION_ENDED",J,J));if(G.length)return r(G.shift(),N);if(A.length)return DT(A.shift(),N);M.length?r(M.shift(),N):X.push(N)}function r(N,i){return N.execute(i)?V(N,M):V(N,H)}function U(N){return new Promise((i,zT)=>{N.state?N.active?E4(J).cancel(N.state,i,zT):N.cancelled={resolve:i,reject:zT}:(X.remove(N),N.cancelled=!0,N.reject(oT.generic("57014","canceling statement due to user request")),i())})}async function e({timeout:N=null}={}){if(F)return F;await 1;let i;return F=Promise.race([new Promise((zT)=>N!==null&&(i=setTimeout($T,N*1000,zT))),Promise.all(D.map((zT)=>zT.end()).concat(j.sql?j.sql.end({timeout:0}):[],W.sql?W.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(i))}async function p(){await Promise.all(D.map((N)=>N.end()))}async function $T(N){await Promise.all(D.map((i)=>i.terminate()));while(X.length)X.shift().reject(oT.connection("CONNECTION_DESTROYED",J));N()}function DT(N,i){return V(N,S),N.connect(i),N}function PT(N){V(N,w)}function _$(N){if(X.length===0)return V(N,G);let i=Math.ceil(X.length/(S.length+1)),zT=!0;while(zT&&X.length&&i-- >0){let qT=X.shift();if(qT.reserve)return qT.reserve(N);zT=N.execute(qT)}zT?V(N,M):V(N,H)}function fJ(N,i){V(N,A),N.reserved=null,N.onclose&&(N.onclose(i),N.onclose=null),J.onclose&&J.onclose(N.id),X.length&&DT(N,X.shift())}}function D3(T,$){if(T&&T.shared)return T;let J=process.env,W=(!T||typeof T==="string"?$:T)||{},{url:F,multihost:X}=_3(T),S=[...F.searchParams].reduce((H,[K,D])=>(H[K]=D,H),{}),Y=W.hostname||W.host||X||F.hostname||J.PGHOST||"localhost",A=W.port||F.port||J.PGPORT||5432,w=W.user||W.username||F.username||J.PGUSERNAME||J.PGUSER||k3();W.no_prepare&&(W.prepare=!1),S.sslmode&&(S.ssl=S.sslmode,delete S.sslmode),"timeout"in W&&(console.log("The timeout option is deprecated, use idle_timeout instead"),W.idle_timeout=W.timeout),S.sslrootcert==="system"&&(S.ssl="verify-full");let G=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],M={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:R3,max_pipeline:100,backoff:E3,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(Y)?Y:Y.split(",").map((H)=>H.split(":")[0]),port:Array.isArray(A)?A:Y.split(",").map((H)=>parseInt(H.split(":")[1]||A)),path:W.path||Y.indexOf("/")>-1&&Y+"/.s.PGSQL."+A,database:W.database||W.db||(F.pathname||"").slice(1)||J.PGDATABASE||w,user:w,pass:W.pass||W.password||F.password||J.PGPASSWORD||"",...Object.entries(M).reduce((H,[K,D])=>{let R=K in W?W[K]:(K in S)?S[K]==="disable"||S[K]==="false"?!1:S[K]:J["PG"+K.toUpperCase()]||D;return H[K]=typeof R==="string"&&G.includes(K)?+R:R,H},{}),connection:{application_name:"postgres.js",...W.connection,...Object.entries(S).reduce((H,[K,D])=>((K in M)||(H[K]=D),H),{})},types:W.types||{},target_session_attrs:Q3(W,F,J),onnotice:W.onnotice,onnotify:W.onnotify,onclose:W.onclose,onparameter:W.onparameter,socket:W.socket,transform:U3(W.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...WA(W.types)}}function Q3(T,$,J){let W=T.target_session_attrs||$.searchParams.get("target_session_attrs")||J.PGTARGETSESSIONATTRS;if(!W||["read-write","read-only","primary","standby","prefer-standby"].includes(W))return W;throw new Error("target_session_attrs "+W+" is not supported")}function E3(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function R3(){return 60*(30+Math.random()*30)}function U3(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 _3(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 k3(){try{return f3.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class mT{static[z]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===CT)return{...T[CT],selectedFields:new Proxy(T[CT].selectedFields,this)};if(typeof $==="symbol")return T[$];let W=(_(T,eT)?T._.selectedFields:_(T,L$)?T[CT].selectedFields:T)[$];if(_(W,m.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!W.isSelectionField)return W.sql;let F=W.clone();return F.isSelectionField=!0,F}if(_(W,m)){if(this.config.sqlBehavior==="sql")return W;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(_(W,BT)){if(this.config.alias)return new Proxy(W,new v1(new Proxy(W.table,new aW(this.config.alias,this.config.replaceOriginalName??!1))));return W}if(typeof W!=="object"||W===null)return W;return new Proxy(W,new mT(this.config))}}class T2 extends R${constructor(T,$,J,W){super();this.session=$,this.dialect=J,this.config={table:T,withList:W}}static[z]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[h.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 LT.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 LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new mT({alias:W$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function V3(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function B3(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((J,W,F)=>{let X=F===0?W.toLowerCase():`${W[0].toUpperCase()}${W.slice(1)}`;return J+X},"")}function L3(T){return T}class _4{static[z]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?V3:T==="camelCase"?B3:L3}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[h.Symbol.Schema]??"public",J=T.table[h.Symbol.OriginalName],W=`${$}.${J}.${T.name}`;if(!this.cache[W])this.cacheTable(T.table);return this.cache[W]}cacheTable(T){let $=T[h.Symbol.Schema]??"public",J=T[h.Symbol.OriginalName],W=`${$}.${J}`;if(!this.cachedTables[W]){for(let F of Object.values(T[h.Symbol.Columns])){let X=`${W}.${F.name}`;this.cache[X]=this.convert(F.name)}this.cachedTables[W]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class wF extends L${static[z]="PgViewBase"}class P0{static[z]="PgDialect";casing;constructor(T){this.casing=new _4(T?.casing)}async migrate(T,$,J){let W=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",F=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",X=f`
89
- CREATE TABLE IF NOT EXISTS ${f.identifier(F)}.${f.identifier(W)} (
88
+ `};return W(A),new Promise(async(M)=>Y=M);async function w({highWaterMark:M=16384,start:H=0,end:f=1/0}={}){let D=f-H;return H&&await A.seek(H),new _5.Readable({highWaterMark:M,async read(R){let y=R>D?R-D:R;D-=R;let[{data:j}]=await A.read(y);if(this.push(j),j.length<R)this.push(null)}})}async function G({highWaterMark:M=16384,start:H=0}={}){return H&&await A.seek(H),new _5.Writable({highWaterMark:M,write(f,D,R){A.write(f).then(()=>R(),R)}})}}).catch(F)})}Object.assign(eX,{PostgresError:P1,toPascal:v0,pascal:D4,toCamel:b0,camel:f4,toKebab:P0,kebab:Q4,fromPascal:XF,fromCamel:FF,fromKebab:YF,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var m1=eX;function eX(T,$){let J=B3(T,$),W=J.no_subscribe||k4(eX,{...J}),F=!1,X=h$(),Y=h$(),S=h$(),A=h$(),w=h$(),G=h$(),M=h$(),H=h$(),f={connecting:Y,reserved:S,closed:A,ended:w,open:G,busy:M,full:H},D=[...Array(J.max)].map(()=>_4(J,f,{onopen:_$,onend:PT,onclose:KJ})),R=y(b);return Object.assign(R,{get parameters(){return J.parameters},largeObject:V4.bind(null,R),subscribe:W,CLOSE:v1,END:v1,PostgresError:P1,options:J,reserve:Z,listen:j,begin:E,close:p,end:e}),R;function y(N){return N.debug=J.debug,Object.entries(J.types).reduce((YT,[yT,cT])=>{return YT[yT]=(IT)=>new OJ(IT,cT.to),YT},i),Object.assign(OT,{types:i,typed:i,unsafe:qT,notify:L,array:k,json:B,file:dT}),OT;function i(YT,yT){return new OJ(YT,yT)}function OT(YT,...yT){return YT&&Array.isArray(YT.raw)?new d$(YT,yT,N,U):typeof YT==="string"&&!yT.length?new SF(J.transform.column.to?J.transform.column.to(YT):YT):new iX(YT,yT)}function qT(YT,yT=[],cT={}){return arguments.length===2&&!Array.isArray(yT)&&(cT=yT,yT=[]),new d$([YT],yT,N,U,{prepare:!1,...cT,simple:"simple"in cT?cT.simple:yT.length===0})}function dT(YT,yT=[],cT={}){return arguments.length===2&&!Array.isArray(yT)&&(cT=yT,yT=[]),new d$([],yT,(xT)=>{V3.readFile(YT,"utf8",(w$,NT)=>{if(w$)return xT.reject(w$);xT.strings=[NT],N(xT)})},U,{...cT,simple:"simple"in cT?cT.simple:yT.length===0})}}async function j(N,i,OT){let qT={fn:i,onlisten:OT},dT=j.sql||(j.sql=eX({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(j.channels).forEach(([xT,{listeners:w$}])=>{delete j.channels[xT],Promise.all(w$.map((NT)=>j(xT,NT.fn,NT.onlisten).catch(()=>{})))})},onnotify(xT,w$){xT in j.channels&&j.channels[xT].listeners.forEach((NT)=>NT.fn(w$))}})),YT=j.channels||(j.channels={});if(N in YT){YT[N].listeners.push(qT);let xT=await YT[N].result;return qT.onlisten&&qT.onlisten(),{state:xT.state,unlisten:IT}}YT[N]={result:dT`listen ${dT.unsafe('"'+N.replace(/"/g,'""')+'"')}`,listeners:[qT]};let cT=await YT[N].result;return qT.onlisten&&qT.onlisten(),{state:cT.state,unlisten:IT};async function IT(){if(N in YT===!1)return;if(YT[N].listeners=YT[N].listeners.filter((xT)=>xT!==qT),YT[N].listeners.length)return;return delete YT[N],dT`unlisten ${dT.unsafe('"'+N.replace(/"/g,'""')+'"')}`}}async function L(N,i){return await R`select pg_notify(${N}, ${""+i})`}async function Z(){let N=h$(),i=G.length?G.shift():await new Promise((dT)=>{X.push({reserve:dT}),A.length&&DT(A.shift())});V(i,S),i.reserved=()=>N.length?i.execute(N.shift()):V(i,S),i.reserved.release=!0;let OT=y(qT);return OT.release=()=>{i.reserved=null,_$(i)},OT;function qT(dT){i.queue===H?N.push(dT):i.execute(dT)||V(i,H)}}async function E(N,i){!i&&(i=N,N="");let OT=h$(),qT=0,dT,YT=null;try{return await R.unsafe("begin "+N.replace(/[^a-z ]/ig,""),[],{onexecute:cT}).execute(),await Promise.race([yT(dT,i),new Promise((IT,xT)=>dT.onclose=xT)])}catch(IT){throw IT}async function yT(IT,xT,w$){let NT=y(uT);NT.savepoint=bJ,NT.prepare=(jT)=>YT=jT.replace(/[^a-z0-9$-_. ]/gi);let u$,G$;w$&&await NT`savepoint ${NT(w$)}`;try{if(G$=await new Promise((jT,i$)=>{let FJ=xT(NT);Promise.resolve(Array.isArray(FJ)?Promise.all(FJ):FJ).then(jT,i$)}),u$)throw u$}catch(jT){throw await(w$?NT`rollback to ${NT(w$)}`:NT`rollback`),jT instanceof P1&&jT.code==="25P02"&&u$||jT}if(!w$)YT?await NT`prepare transaction '${NT.unsafe(YT)}'`:await NT`commit`;return G$;function bJ(jT,i$){if(jT&&Array.isArray(jT.raw))return bJ((FJ)=>FJ.apply(FJ,arguments));return arguments.length===1&&(i$=jT,jT=null),yT(IT,i$,"s"+qT+++(jT?"_"+jT:""))}function uT(jT){jT.catch((i$)=>u$||(u$=i$)),IT.queue===H?OT.push(jT):IT.execute(jT)||V(IT,H)}}function cT(IT){dT=IT,V(IT,S),IT.reserved=()=>OT.length?IT.execute(OT.shift()):V(IT,S)}}function V(N,i){return N.queue.remove(N),i.push(N),N.queue=i,i===G?N.idleTimer.start():N.idleTimer.cancel(),N}function B(N){return new OJ(N,3802)}function k(N,i){if(!Array.isArray(N))return k(Array.from(arguments));return new OJ(N,i||(N.length?dX(N)||25:0),J.shared.typeArrayMap)}function b(N){if(F)return N.reject(oT.connection("CONNECTION_ENDED",J,J));if(G.length)return r(G.shift(),N);if(A.length)return DT(A.shift(),N);M.length?r(M.shift(),N):X.push(N)}function r(N,i){return N.execute(i)?V(N,M):V(N,H)}function U(N){return new Promise((i,OT)=>{N.state?N.active?_4(J).cancel(N.state,i,OT):N.cancelled={resolve:i,reject:OT}:(X.remove(N),N.cancelled=!0,N.reject(oT.generic("57014","canceling statement due to user request")),i())})}async function e({timeout:N=null}={}){if(F)return F;await 1;let i;return F=Promise.race([new Promise((OT)=>N!==null&&(i=setTimeout($T,N*1000,OT))),Promise.all(D.map((OT)=>OT.end()).concat(j.sql?j.sql.end({timeout:0}):[],W.sql?W.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(i))}async function p(){await Promise.all(D.map((N)=>N.end()))}async function $T(N){await Promise.all(D.map((i)=>i.terminate()));while(X.length)X.shift().reject(oT.connection("CONNECTION_DESTROYED",J));N()}function DT(N,i){return V(N,Y),N.connect(i),N}function PT(N){V(N,w)}function _$(N){if(X.length===0)return V(N,G);let i=Math.ceil(X.length/(Y.length+1)),OT=!0;while(OT&&X.length&&i-- >0){let qT=X.shift();if(qT.reserve)return qT.reserve(N);OT=N.execute(qT)}OT?V(N,M):V(N,H)}function KJ(N,i){V(N,A),N.reserved=null,N.onclose&&(N.onclose(i),N.onclose=null),J.onclose&&J.onclose(N.id),X.length&&DT(N,X.shift())}}function B3(T,$){if(T&&T.shared)return T;let J=process.env,W=(!T||typeof T==="string"?$:T)||{},{url:F,multihost:X}=x3(T),Y=[...F.searchParams].reduce((H,[f,D])=>(H[f]=D,H),{}),S=W.hostname||W.host||X||F.hostname||J.PGHOST||"localhost",A=W.port||F.port||J.PGPORT||5432,w=W.user||W.username||F.username||J.PGUSERNAME||J.PGUSER||j3();W.no_prepare&&(W.prepare=!1),Y.sslmode&&(Y.ssl=Y.sslmode,delete Y.sslmode),"timeout"in W&&(console.log("The timeout option is deprecated, use idle_timeout instead"),W.idle_timeout=W.timeout),Y.sslrootcert==="system"&&(Y.ssl="verify-full");let G=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],M={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:N3,max_pipeline:100,backoff:y3,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(S)?S:S.split(",").map((H)=>H.split(":")[0]),port:Array.isArray(A)?A:S.split(",").map((H)=>parseInt(H.split(":")[1]||A)),path:W.path||S.indexOf("/")>-1&&S+"/.s.PGSQL."+A,database:W.database||W.db||(F.pathname||"").slice(1)||J.PGDATABASE||w,user:w,pass:W.pass||W.password||F.password||J.PGPASSWORD||"",...Object.entries(M).reduce((H,[f,D])=>{let R=f in W?W[f]:(f in Y)?Y[f]==="disable"||Y[f]==="false"?!1:Y[f]:J["PG"+f.toUpperCase()]||D;return H[f]=typeof R==="string"&&G.includes(f)?+R:R,H},{}),connection:{application_name:"postgres.js",...W.connection,...Object.entries(Y).reduce((H,[f,D])=>((f in M)||(H[f]=D),H),{})},types:W.types||{},target_session_attrs:L3(W,F,J),onnotice:W.onnotice,onnotify:W.onnotify,onclose:W.onclose,onparameter:W.onparameter,socket:W.socket,transform:C3(W.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...M5(W.types)}}function L3(T,$,J){let W=T.target_session_attrs||$.searchParams.get("target_session_attrs")||J.PGTARGETSESSIONATTRS;if(!W||["read-write","read-only","primary","standby","prefer-standby"].includes(W))return W;throw new Error("target_session_attrs "+W+" is not supported")}function y3(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function N3(){return 60*(30+Math.random()*30)}function C3(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 x3(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 j3(){try{return k3.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class mT{static[O]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===CT)return{...T[CT],selectedFields:new Proxy(T[CT].selectedFields,this)};if(typeof $==="symbol")return T[$];let W=(_(T,eT)?T._.selectedFields:_(T,L$)?T[CT].selectedFields:T)[$];if(_(W,g.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!W.isSelectionField)return W.sql;let F=W.clone();return F.isSelectionField=!0,F}if(_(W,g)){if(this.config.sqlBehavior==="sql")return W;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(_(W,BT)){if(this.config.alias)return new Proxy(W,new b1(new Proxy(W.table,new aW(this.config.alias,this.config.replaceOriginalName??!1))));return W}if(typeof W!=="object"||W===null)return W;return new Proxy(W,new mT(this.config))}}class T2 extends R${constructor(T,$,J,W){super();this.session=$,this.dialect=J,this.config={table:T,withList:W}}static[O]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[h.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 LT.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 LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new mT({alias:W$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function Z3(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function q3(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((J,W,F)=>{let X=F===0?W.toLowerCase():`${W[0].toUpperCase()}${W.slice(1)}`;return J+X},"")}function I3(T){return T}class B4{static[O]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?Z3:T==="camelCase"?q3:I3}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[h.Symbol.Schema]??"public",J=T.table[h.Symbol.OriginalName],W=`${$}.${J}.${T.name}`;if(!this.cache[W])this.cacheTable(T.table);return this.cache[W]}cacheTable(T){let $=T[h.Symbol.Schema]??"public",J=T[h.Symbol.OriginalName],W=`${$}.${J}`;if(!this.cachedTables[W]){for(let F of Object.values(T[h.Symbol.Columns])){let X=`${W}.${F.name}`;this.cache[X]=this.convert(F.name)}this.cachedTables[W]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class wF extends L${static[O]="PgViewBase"}class m0{static[O]="PgDialect";casing;constructor(T){this.casing=new B4(T?.casing)}async migrate(T,$,J){let W=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",F=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",X=K`
89
+ CREATE TABLE IF NOT EXISTS ${K.identifier(F)}.${K.identifier(W)} (
90
90
  id SERIAL PRIMARY KEY,
91
91
  hash text NOT NULL,
92
92
  created_at bigint
93
93
  )
94
- `;await $.execute(f`CREATE SCHEMA IF NOT EXISTS ${f.identifier(F)}`),await $.execute(X);let Y=(await $.all(f`select id, hash, created_at from ${f.identifier(F)}.${f.identifier(W)} order by created_at desc limit 1`))[0];await $.transaction(async(A)=>{for await(let w of T)if(!Y||Number(Y.created_at)<w.folderMillis){for(let G of w.sql)await A.execute(f.raw(G));await A.execute(f`insert into ${f.identifier(F)}.${f.identifier(W)} ("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 $=[f`with `];for(let[J,W]of T.entries())if($.push(f`${f.identifier(W._.alias)} as (${W._.sql})`),J<T.length-1)$.push(f`, `);return $.push(f` `),f.join($)}buildDeleteQuery({table:T,where:$,returning:J,withList:W}){let F=this.buildWithCTE(W),X=J?f` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,S=$?f` where ${$}`:void 0;return f`${F}delete from ${T}${S}${X}`}buildUpdateSet(T,$){let J=T[h.Symbol.Columns],W=Object.keys(J).filter((X)=>$[X]!==void 0||J[X]?.onUpdateFn!==void 0),F=W.length;return f.join(W.flatMap((X,S)=>{let Y=J[X],A=$[X]??f.param(Y.onUpdateFn(),Y),w=f`${f.identifier(this.casing.getColumnCasing(Y))} = ${A}`;if(S<F-1)return[w,f.raw(", ")];return[w]}))}buildUpdateQuery({table:T,set:$,where:J,returning:W,withList:F,from:X,joins:S}){let Y=this.buildWithCTE(F),A=T[A$.Symbol.Name],w=T[A$.Symbol.Schema],G=T[A$.Symbol.OriginalName],M=A===G?void 0:A,H=f`${w?f`${f.identifier(w)}.`:void 0}${f.identifier(G)}${M&&f` ${f.identifier(M)}`}`,K=this.buildUpdateSet(T,$),D=X&&f.join([f.raw(" from "),this.buildFromTable(X)]),R=this.buildJoins(S),y=W?f` returning ${this.buildSelection(W,{isSingleTable:!X})}`:void 0,j=J?f` where ${J}`:void 0;return f`${Y}update ${H} set ${K}${D}${R}${j}${y}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,W=T.flatMap(({field:F},X)=>{let S=[];if(_(F,m.Aliased)&&F.isSelectionField)S.push(f.identifier(F.fieldAlias));else if(_(F,m.Aliased)||_(F,m)){let Y=_(F,m.Aliased)?F.sql:F;if($)S.push(new m(Y.queryChunks.map((A)=>{if(_(A,q))return f.identifier(this.casing.getColumnCasing(A));return A})));else S.push(Y);if(_(F,m.Aliased))S.push(f` as ${f.identifier(F.fieldAlias)}`)}else if(_(F,BT))if($)S.push(f.identifier(this.casing.getColumnCasing(F)));else S.push(F);if(X<J-1)S.push(f`, `);return S});return f.join(W)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[J,W]of T.entries()){if(J===0)$.push(f` `);let F=W.table,X=W.lateral?f` lateral`:void 0;if(_(F,A$)){let S=F[A$.Symbol.Name],Y=F[A$.Symbol.Schema],A=F[A$.Symbol.OriginalName],w=S===A?void 0:W.alias;$.push(f`${f.raw(W.joinType)} join${X} ${Y?f`${f.identifier(Y)}.`:void 0}${f.identifier(A)}${w&&f` ${f.identifier(w)}`} on ${W.on}`)}else if(_(F,L$)){let S=F[CT].name,Y=F[CT].schema,A=F[CT].originalName,w=S===A?void 0:W.alias;$.push(f`${f.raw(W.joinType)} join${X} ${Y?f`${f.identifier(Y)}.`:void 0}${f.identifier(A)}${w&&f` ${f.identifier(w)}`} on ${W.on}`)}else $.push(f`${f.raw(W.joinType)} join${X} ${F} on ${W.on}`);if(J<T.length-1)$.push(f` `)}return f.join($)}buildFromTable(T){if(_(T,h)&&T[h.Symbol.OriginalName]!==T[h.Symbol.Name]){let $=f`${f.identifier(T[h.Symbol.OriginalName])}`;if(T[h.Symbol.Schema])$=f`${f.identifier(T[h.Symbol.Schema])}.${$}`;return f`${$} ${f.identifier(T[h.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:J,where:W,having:F,table:X,joins:S,orderBy:Y,groupBy:A,limit:w,offset:G,lockingClause:M,distinct:H,setOperators:K}){let D=J??o$($);for(let $T of D)if(_($T.field,BT)&&W$($T.field.table)!==(_(X,eT)?X._.alias:_(X,wF)?X[CT].name:_(X,m)?void 0:W$(X))&&!((DT)=>S?.some(({alias:PT})=>PT===(DT[h.Symbol.IsAlias]?W$(DT):DT[h.Symbol.BaseName])))($T.field.table)){let DT=W$($T.field.table);throw new Error(`Your "${$T.path.join("->")}" field references a column "${DT}"."${$T.field.name}", but the table "${DT}" is not part of the query! Did you forget to join it?`)}let R=!S||S.length===0,y=this.buildWithCTE(T),j;if(H)j=H===!0?f` distinct`:f` distinct on (${f.join(H.on,f`, `)})`;let L=this.buildSelection(D,{isSingleTable:R}),Z=this.buildFromTable(X),E=this.buildJoins(S),V=W?f` where ${W}`:void 0,B=F?f` having ${F}`:void 0,k;if(Y&&Y.length>0)k=f` order by ${f.join(Y,f`, `)}`;let b;if(A&&A.length>0)b=f` group by ${f.join(A,f`, `)}`;let r=typeof w==="object"||typeof w==="number"&&w>=0?f` limit ${w}`:void 0,U=G?f` offset ${G}`:void 0,e=f.empty();if(M){let $T=f` for ${f.raw(M.strength)}`;if(M.config.of)$T.append(f` of ${f.join(Array.isArray(M.config.of)?M.config.of:[M.config.of],f`, `)}`);if(M.config.noWait)$T.append(f` no wait`);else if(M.config.skipLocked)$T.append(f` skip locked`);e.append($T)}let p=f`${y}select${j} ${L} from ${Z}${E}${V}${b}${B}${k}${r}${U}${e}`;if(K.length>0)return this.buildSetOperations(p,K);return p}buildSetOperations(T,$){let[J,...W]=$;if(!J)throw new Error("Cannot pass undefined values to any set operator");if(W.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:J});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:J}),W)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:J,rightSelect:W,limit:F,orderBy:X,offset:S}}){let Y=f`(${T.getSQL()}) `,A=f`(${W.getSQL()})`,w;if(X&&X.length>0){let K=[];for(let D of X)if(_(D,q))K.push(f.identifier(D.name));else if(_(D,m)){for(let R=0;R<D.queryChunks.length;R++){let y=D.queryChunks[R];if(_(y,q))D.queryChunks[R]=f.identifier(y.name)}K.push(f`${D}`)}else K.push(f`${D}`);w=f` order by ${f.join(K,f`, `)} `}let G=typeof F==="object"||typeof F==="number"&&F>=0?f` limit ${F}`:void 0,M=f.raw(`${$} ${J?"all ":""}`),H=S?f` offset ${S}`:void 0;return f`${Y}${M}${A}${w}${G}${H}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:W,withList:F,select:X,overridingSystemValue_:S}){let Y=[],A=T[h.Symbol.Columns],w=Object.entries(A).filter(([y,j])=>!j.shouldDisableInsert()),G=w.map(([,y])=>f.identifier(this.casing.getColumnCasing(y)));if(X){let y=$;if(_(y,m))Y.push(y);else Y.push(y.getSQL())}else{let y=$;Y.push(f.raw("values "));for(let[j,L]of y.entries()){let Z=[];for(let[E,V]of w){let B=L[E];if(B===void 0||_(B,v$)&&B.value===void 0)if(V.defaultFn!==void 0){let k=V.defaultFn(),b=_(k,m)?k:f.param(k,V);Z.push(b)}else if(!V.default&&V.onUpdateFn!==void 0){let k=V.onUpdateFn(),b=_(k,m)?k:f.param(k,V);Z.push(b)}else Z.push(f`default`);else Z.push(B)}if(Y.push(Z),j<y.length-1)Y.push(f`, `)}}let M=this.buildWithCTE(F),H=f.join(Y),K=W?f` returning ${this.buildSelection(W,{isSingleTable:!0})}`:void 0,D=J?f` on conflict ${J}`:void 0,R=S===!0?f`overriding system value `:void 0;return f`${M}insert into ${T} ${G} ${R}${H}${D}${K}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:J}){let W=$?f` concurrently`:void 0,F=J?f` with no data`:void 0;return f`refresh materialized view${W} ${T}${F}`}prepareTyping(T){if(_(T,vX)||_(T,bX))return"json";else if(_(T,PX))return"decimal";else if(_(T,hX))return"time";else if(_(T,mX)||_(T,gX))return"timestamp";else if(_(T,ZX)||_(T,qX))return"date";else if(_(T,cX))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:W,tableConfig:F,queryConfig:X,tableAlias:S,nestedQueryRelation:Y,joinOn:A}){let w=[],G,M,H=[],K,D=[];if(X===!0)w=Object.entries(F.columns).map(([j,L])=>({dbKey:L.name,tsKey:j,field:OJ(L,S),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let y=Object.fromEntries(Object.entries(F.columns).map(([B,k])=>[B,OJ(k,S)]));if(X.where){let B=typeof X.where==="function"?X.where(y,o5()):X.where;K=B&&sW(B,S)}let j=[],L=[];if(X.columns){let B=!1;for(let[k,b]of Object.entries(X.columns)){if(b===void 0)continue;if(k in F.columns){if(!B&&b===!0)B=!0;L.push(k)}}if(L.length>0)L=B?L.filter((k)=>X.columns?.[k]===!0):Object.keys(F.columns).filter((k)=>!L.includes(k))}else L=Object.keys(F.columns);for(let B of L){let k=F.columns[B];j.push({tsKey:B,value:k})}let Z=[];if(X.with)Z=Object.entries(X.with).filter((B)=>!!B[1]).map(([B,k])=>({tsKey:B,queryConfig:k,relation:F.relations[B]}));let E;if(X.extras){E=typeof X.extras==="function"?X.extras(y,{sql:f}):X.extras;for(let[B,k]of Object.entries(E))j.push({tsKey:B,value:a8(k,S)})}for(let{tsKey:B,value:k}of j)w.push({dbKey:_(k,m.Aliased)?k.fieldAlias:F.columns[B].name,tsKey:B,field:_(k,BT)?OJ(k,S):k,relationTableTsKey:void 0,isJson:!1,selection:[]});let V=typeof X.orderBy==="function"?X.orderBy(y,d5()):X.orderBy??[];if(!Array.isArray(V))V=[V];H=V.map((B)=>{if(_(B,BT))return OJ(B,S);return sW(B,S)}),G=X.limit,M=X.offset;for(let{tsKey:B,queryConfig:k,relation:b}of Z){let r=i5($,J,b),U=Z0(b.referencedTable),e=J[U],p=`${S}_${B}`,$T=eW(...r.fields.map((_$,fJ)=>CX(OJ(r.references[fJ],p),OJ(_$,S)))),DT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[e],tableConfig:$[e],queryConfig:_(b,sJ)?k===!0?{limit:1}:{...k,limit:1}:k,tableAlias:p,joinOn:$T,nestedQueryRelation:b}),PT=f`${f.identifier(p)}.${f.identifier("data")}`.as(B);D.push({on:f`true`,table:new eT(DT.sql,{},p),alias:p,joinType:"left",lateral:!0}),w.push({dbKey:B,tsKey:B,field:PT,relationTableTsKey:e,isJson:!0,selection:DT.selection})}}if(w.length===0)throw new NX({message:`No fields selected for table "${F.tsName}" ("${S}")`});let R;if(K=eW(A,K),Y){let y=f`json_build_array(${f.join(w.map(({field:Z,tsKey:E,isJson:V})=>V?f`${f.identifier(`${S}_${E}`)}.${f.identifier("data")}`:_(Z,m.Aliased)?Z.sql:Z),f`, `)})`;if(_(Y,WF))y=f`coalesce(json_agg(${y}${H.length>0?f` order by ${f.join(H,f`, `)}`:void 0}), '[]'::json)`;let j=[{dbKey:"data",tsKey:"data",field:y.as("data"),isJson:!0,relationTableTsKey:F.tsName,selection:w}];if(G!==void 0||M!==void 0||H.length>0)R=this.buildSelectQuery({table:yX(W,S),fields:{},fieldsFlat:[{path:[],field:f.raw("*")}],where:K,limit:G,offset:M,orderBy:H,setOperators:[]}),K=void 0,G=void 0,M=void 0,H=[];else R=yX(W,S);R=this.buildSelectQuery({table:_(R,A$)?R:new eT(R,{},S),fields:{},fieldsFlat:j.map(({field:Z})=>({path:[],field:_(Z,BT)?OJ(Z,S):Z})),joins:D,where:K,limit:G,offset:M,orderBy:H,setOperators:[]})}else R=this.buildSelectQuery({table:yX(W,S),fields:{},fieldsFlat:w.map(({field:y})=>({path:[],field:_(y,BT)?OJ(y,S):y})),joins:D,where:K,limit:G,offset:M,orderBy:H,setOperators:[]});return{tableTsKey:F.tsName,sql:R,selection:w}}}class k4{static[z]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class U${static[z]="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,W;if(this.fields)W=this.fields;else if(_(J,eT))W=Object.fromEntries(Object.keys(J._.selectedFields).map((F)=>[F,J[F]]));else if(_(J,wF))W=J[CT].selectedFields;else if(_(J,m))W={};else W=t7(J);return new V4({table:J,fields:W,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class fA extends k4{static[z]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:W,dialect:F,withList:X,distinct:S}){super();this.config={withList:X,table:T,fields:{...$},distinct:S,setOperators:[]},this.isPartialSelect=J,this.session=W,this.dialect=F,this._={selectedFields:$},this.tableName=xJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let W=this.tableName,F=xJ($);if(typeof F==="string"&&this.config.joins?.some((X)=>X.alias===F))throw new Error(`Alias "${F}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof W==="string")this.config.fields={[W]:this.config.fields};if(typeof F==="string"&&!_($,m)){let X=_($,eT)?$._.selectedFields:_($,L$)?$[CT].selectedFields:$[h.Symbol.Columns];this.config.fields[F]=X}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new mT({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(([X])=>[X,!1])),this.joinsNotNullableMap[F]=!0;break}case"inner":{this.joinsNotNullableMap[F]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([X])=>[X,!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 W=typeof J==="function"?J(y3()):J;if(!TF(this.getSelectedFields(),W.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:W}),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"}))),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 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 V4 extends fA{static[z]="PgSelect";_prepare(T){let{session:$,config:J,dialect:W,joinsNotNullableMap:F,authToken:X}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return LT.startActiveSpan("drizzle.prepareQuery",()=>{let S=o$(J.fields),Y=$.prepareQuery(W.sqlToQuery(this.getSQL()),S,T,!0);return Y.joinsNotNullableMap=F,Y.setToken(X)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}i7(V4,[R$]);function c1(T,$){return(J,W,...F)=>{let X=[W,...F].map((S)=>({type:T,isAll:$,rightSelect:S}));for(let S of X)if(!TF(J.getSelectedFields(),S.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(X)}}var y3=()=>({union:N3,unionAll:C3,intersect:x3,intersectAll:j3,except:Z3,exceptAll:q3}),N3=c1("union",!1),C3=c1("union",!0),x3=c1("intersect",!1),j3=c1("intersect",!0),Z3=c1("except",!1),q3=c1("except",!0);class GF{static[z]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=_(T,P0)?T:void 0,this.dialectConfig=_(T,P0)?void 0:T}$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(J);return new Proxy(new lW(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function J(X){return new U$({fields:X??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function W(X){return new U$({fields:X??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function F(X,S){return new U$({fields:S??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:X}})}return{select:J,selectDistinct:W,selectDistinctOn:F}}select(T){return new U$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new U$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new U$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new P0(this.dialectConfig);return this.dialect}}class $2{constructor(T,$,J,W,F){this.table=T,this.session=$,this.dialect=J,this.withList=W,this.overridingSystemValue_=F}static[z]="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 W={},F=this.table[h.Symbol.Columns];for(let X of Object.keys(J)){let S=J[X];W[X]=_(S,m)?S:new v$(S,F[X])}return W});return new B4(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new GF):T;if(!_($,m)&&!TF(this.table[BX],$._.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 B4(this.table,$,this.session,this.dialect,this.withList,!0)}}class B4 extends R${constructor(T,$,J,W,F,X,S){super();this.session=J,this.dialect=W,this.config={table:T,values:$,withList:F,select:X,overridingSystemValue_:S}}static[z]="PgInsert";config;returning(T=this.config.table[h.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=o$(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=f`do nothing`;else{let $="";$=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));let J=T.where?f` where ${T.where}`:void 0;this.config.onConflict=f`(${f.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?f` where ${T.where}`:void 0,J=T.targetWhere?f` where ${T.targetWhere}`:void 0,W=T.setWhere?f` where ${T.setWhere}`:void 0,F=this.dialect.buildUpdateSet(this.config.table,jX(this.config.table,T.set)),X="";return X=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)),this.config.onConflict=f`(${f.raw(X)})${J} do update set ${F}${$}${W}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return LT.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 LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new mT({alias:W$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class L4 extends R${constructor(T,$,J){super();this.session=$,this.dialect=J,this.config={view:T}}static[z]="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 LT.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 LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class J2{constructor(T,$,J,W){this.table=T,this.session=$,this.dialect=J,this.withList=W}static[z]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new KA(this.table,jX(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class KA extends R${constructor(T,$,J,W,F){super();this.session=J,this.dialect=W,this.config={set:$,table:T,withList:F,joins:[]},this.tableName=xJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[z]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,J=xJ($);if(typeof J==="string")this.joinsNotNullableMap[J]=!0;return this.config.from=$,this}getTableLikeFields(T){if(_(T,A$))return T[h.Symbol.Columns];else if(_(T,eT))return T._.selectedFields;return T[CT].selectedFields}createJoin(T){return($,J)=>{let W=xJ($);if(typeof W==="string"&&this.config.joins.some((F)=>F.alias===W))throw new Error(`Alias "${W}" is already used in this query`);if(typeof J==="function"){let F=this.config.from&&!_(this.config.from,m)?this.getTableLikeFields(this.config.from):void 0;J=J(new Proxy(this.config.table[h.Symbol.Columns],new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),F&&new Proxy(F,new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:J,table:$,joinType:T,alias:W}),typeof W==="string")switch(T){case"left":{this.joinsNotNullableMap[W]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[W]=!0;break}case"inner":{this.joinsNotNullableMap[W]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[W]=!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[h.Symbol.Columns]),this.config.from){let $=xJ(this.config.from);if(typeof $==="string"&&this.config.from&&!_(this.config.from,m)){let J=this.getTableLikeFields(this.config.from);T[$]=J}for(let J of this.config.joins){let W=xJ(J.table);if(typeof W==="string"&&!_(J.table,m)){let F=this.getTableLikeFields(J.table);T[W]=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 mT({alias:W$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class MF extends m{constructor(T){super(MF.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=MF.buildCount(T.source,T.filters)}sql;token;static[z]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return f`(select count(*) from ${T}${f.raw(" where ").if($)}${$})`}static buildCount(T,$){return f`select count(*) as count from ${T}${f.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 N4{constructor(T,$,J,W,F,X,S){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=F,this.dialect=X,this.session=S}static[z]="PgRelationalQueryBuilder";findMany(T){return new y4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new y4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class y4 extends R${constructor(T,$,J,W,F,X,S,Y,A){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=F,this.dialect=X,this.session=S,this.config=Y,this.mode=A}static[z]="PgRelationalQuery";_prepare(T){return LT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(W,F)=>{let X=W.map((S)=>nX(this.schema,this.tableConfig,S,$.selection,F));if(this.mode==="first")return X[0];return X})})}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 LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class C4 extends R${constructor(T,$,J,W){super();this.execute=T,this.sql=$,this.query=J,this.mapBatchResult=W}static[z]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class HF{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[W,F]of Object.entries(this._.schema))this.query[W]=new N4(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[W],F,T,$)}static[z]="PgDatabase";query;$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(new GF(J.dialect));return new Proxy(new lW(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new MF({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(A){return new U$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T})}function W(A){return new U$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function F(A,w){return new U$({fields:w??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:A}})}function X(A){return new J2(A,$.session,$.dialect,T)}function S(A){return new $2(A,$.session,$.dialect,T)}function Y(A){return new T2(A,$.session,$.dialect,T)}return{select:J,selectDistinct:W,selectDistinctOn:F,update:X,insert:S,delete:Y}}select(T){return new U$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new U$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new U$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new J2(T,this.session,this.dialect)}insert(T){return new $2(T,this.session,this.dialect)}delete(T){return new T2(T,this.session,this.dialect)}refreshMaterializedView(T){return new L4(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?f.raw(T):T.getSQL(),J=this.dialect.sqlToQuery($),W=this.session.prepareQuery(J,void 0,void 0,!1);return new C4(()=>W.execute(void 0,this.authToken),$,J,(F)=>W.mapResult(F,!0))}transaction(T,$){return this.session.transaction(T,$)}}class DA{constructor(T,$){this.unique=T,this.name=$}static[z]="PgIndexBuilderOn";on(...T){return new W2(T.map(($)=>{if(_($,m))return $;$=$;let J=new tW($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),J}),this.unique,!1,this.name)}onOnly(...T){return new W2(T.map(($)=>{if(_($,m))return $;$=$;let J=new tW($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,J}),this.unique,!0,this.name)}using(T,...$){return new W2($.map((J)=>{if(_(J,m))return J;J=J;let W=new tW(J.name,!!J.keyAsName,J.columnType,J.indexConfig);return J.indexConfig=JSON.parse(JSON.stringify(J.defaultConfig)),W}),this.unique,!0,this.name,T)}}class W2{static[z]="PgIndexBuilder";config;constructor(T,$,J,W,F="btree"){this.config={name:W,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 QA(this.config,T)}}class QA{static[z]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function x4(T){return new DA(!0,T)}class j4{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[z]="PgPreparedQuery";joinsNotNullableMap}class Z4{constructor(T){this.dialect=T}static[z]="PgSession";execute(T,$){return LT.startActiveSpan("drizzle.operation",()=>{return LT.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 q4 extends HF{constructor(T,$,J,W=0){super(T,$,J);this.schema=J,this.nestedIndex=W}static[z]="PgTransaction";rollback(){throw new s8}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 f.raw($.join(" "))}setTransaction(T){return this.session.execute(f`set transaction ${this.getTransactionConfigSQL(T)}`)}}class EA extends j4{constructor(T,$,J,W,F,X,S){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=W,this.fields=F,this._isResponseInArrayMode=X,this.customResultMapper=S}static[z]="PostgresJsPreparedQuery";async execute(T={}){return LT.startActiveSpan("drizzle.execute",async($)=>{let J=r8(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J);let{fields:W,queryString:F,client:X,joinsNotNullableMap:S,customResultMapper:Y}=this;if(!W&&!Y)return LT.startActiveSpan("drizzle.driver.execute",()=>{return X.unsafe(F,J)});let A=await LT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":F,"drizzle.query.params":JSON.stringify(J)}),X.unsafe(F,J).values()});return LT.startActiveSpan("drizzle.mapResponse",()=>{return Y?Y(A):A.map((w)=>u7(W,w,S))})})}all(T={}){return LT.startActiveSpan("drizzle.execute",async($)=>{let J=r8(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J),LT.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 OF extends Z4{constructor(T,$,J,W={}){super($);this.client=T,this.schema=J,this.options=W,this.logger=W.logger??new T4}static[z]="PostgresJsSession";logger;prepareQuery(T,$,J,W,F){return new EA(this.client,T.sql,T.params,this.logger,$,W,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 W=new OF(J,this.dialect,this.schema,this.options),F=new I4(this.dialect,W,this.schema);if($)await F.setTransaction($);return T(F)})}}class I4 extends q4{constructor(T,$,J,W=0){super(T,$,J,W);this.session=$}static[z]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new OF($,this.dialect,this.schema,this.session.options),W=new I4(this.dialect,J,this.schema);return T(W)})}}class RA extends HF{static[z]="PostgresJsDatabase"}function n1(T,$={}){let J=(A)=>A;for(let A of["1184","1082","1083","1114"])T.options.parsers[A]=J,T.options.serializers[A]=J;T.options.serializers["114"]=J,T.options.serializers["3802"]=J;let W=new P0({casing:$.casing}),F;if($.logger===!0)F=new e8;else if($.logger!==!1)F=$.logger;let X;if($.schema){let A=u5($.schema,t5);X={fullSchema:$.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let S=new OF(T,W,X,{logger:F}),Y=new RA(W,S,X);return Y.$client=T,Y}function F2(...T){if(typeof T[0]==="string"){let $=g1(T[0]);return n1($,T[1])}if(l7(T[0])){let{connection:$,client:J,...W}=T[0];if(J)return n1(J,W);if(typeof $==="object"&&$.url!==void 0){let{url:X,...S}=$,Y=g1(X,S);return n1(Y,W)}let F=g1($);return n1(F,W)}return n1(T[0],T[1])}((T)=>{function $(J){return n1({options:{parsers:{},serializers:{}}},J)}T.mock=$})(F2||(F2={}));function I3(T,$){let J={},W=[];for(let F in T){let X=T[F],S=$[F],Y=X["~standard"].validate(S);if(Y instanceof Promise)throw new Error(`Validation must be synchronous, but ${F} returned a Promise.`);if(Y.issues){W.push(...Y.issues.map((A)=>({...A,path:[F,...A.path??[]]})));continue}J[F]=Y.value}if(W.length)return{issues:W};return{value:J}}function UA(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[L,Z]of Object.entries($))if(Z==="")delete $[L]}if(!!T.skipValidation)return $;let F=typeof T.client==="object"?T.client:{},X=typeof T.server==="object"?T.server:{},S=typeof T.shared==="object"?T.shared:{},Y=T.isServer??(typeof window==="undefined"||("Deno"in window)),A=Y?{...X,...S,...F}:{...F,...S},w=I3(A,$),G=T.onValidationError??((L)=>{throw console.error("\u274C Invalid environment variables:",L),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 G(w.issues);let H=(L)=>{if(!T.clientPrefix)return!0;return!L.startsWith(T.clientPrefix)&&!(L in S)},K=(L)=>{return Y||!H(L)},D=(L)=>{return L==="__esModule"||L==="$$typeof"},R=(T.extends??[]).reduce((L,Z)=>{return Object.assign(L,Z)},{}),y=Object.assign(w.value,R);return new Proxy(y,{get(L,Z){if(typeof Z!=="string")return;if(D(Z))return;if(!K(Z))return M(Z);return Reflect.get(L,Z)}})}var b3="__vite_start_time"in globalThis,v3=typeof window!=="undefined",Bh="vitest"in globalThis,ZJ=UA({isServer:!b3&&!v3,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 v4={};bw(v4,{users:()=>h0,userChanges:()=>h3,untrackedUserColumnNames:()=>P3,twoFactorMethod:()=>LA,trackedUserColumnName:()=>BA,trackableUserColumnNames:()=>VA,role:()=>kA,players:()=>b4,passwordResetAttempts:()=>g3,loginHistory:()=>m3,games:()=>X2,banishedIps:()=>S2});function _A(T){return f`lower(${T})`}var kA=kX("role",["admin","user"]),h0=aJ("users",{id:P$().primaryKey().defaultRandom(),username:Y$({length:16}).notNull(),email:Y$({length:254}).notNull(),hash:Y$({length:64}).notNull(),salt:Y$({length:36}).notNull(),createdAt:WJ({withTimezone:!0}).notNull().defaultNow(),createdIp:Y$({length:45}).notNull(),isActive:$F().notNull().default(!1),verifiedAt:WJ({withTimezone:!0}),userRole:kA().default("user")},(T)=>[x4("usernameUniqueIndex").on(_A(T.username)),x4("emailUniqueIndex").on(_A(T.email))]),P3=["id","createdAt","createdIp","isActive","salt","verifiedAt"],VA=["username","email","hash","userRole"],BA=kX("trackedUserColumnName",VA),h3=aJ("userChanges",{id:P$().primaryKey().defaultRandom(),userId:P$().notNull().references(()=>h0.id),changedAt:WJ({withTimezone:!0}).notNull().defaultNow(),changedIp:Y$({length:45}).notNull(),changedColumn:BA().notNull(),oldValue:Y$({length:255}),newValue:Y$({length:255})}),X2=aJ("games",{id:P$().primaryKey().defaultRandom()}),b4=aJ("players",{userId:P$().notNull().references(()=>h0.id),gameId:P$().notNull().references(()=>X2.id),score:IX().notNull()},(T)=>[c5({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),m3=aJ("loginHistory",{id:P$().primaryKey().defaultRandom(),userId:P$().references(()=>h0.id),loginTime:WJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:Y$({length:45}).notNull(),userAgent:Y$({length:1024}),successful:$F().notNull().default(!1)}),LA=kX("twoFactorMethod",["email","phone"]),g3=aJ("passwordResetAttempts",{id:P$().primaryKey().defaultRandom(),userId:P$().notNull().references(()=>h0.id),requestedIp:Y$({length:45}).notNull(),requestedAt:WJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:Y$({length:45}),succeededAt:WJ({withTimezone:!0}),verificationMethod:LA().notNull()}),S2=aJ("banishedIps",{ip:Y$({length:45}).primaryKey(),reason:Y$({length:2048}).notNull(),banishedAt:WJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:WJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class P4{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(c3.resolve(__dirname,"notify_update.sql"));let T=[W$(h0),W$(X2),W$(b4)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let J=$.split(","),W=J[0],F=J[1],X=`${W}("${F}")`;if(this.observers.has(X))this.observers.get(X).next(X)})}constructor(T=!1,$={host:ZJ.POSTGRES_HOST,port:ZJ.POSTGRES_PORT,user:ZJ.POSTGRES_USER,password:ZJ.POSTGRES_PASSWORD,database:ZJ.POSTGRES_DATABASE}){this.options=$,this.sql=g1($),this.drizzle=F2(this.sql,{schema:v4,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new XT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as o3}from"path";import{existsSync as h4,mkdirSync as yA,readFileSync as n3,writeFileSync as p3,rmSync as NA,readdirSync as CA,statSync as xA}from"fs";import{resolve as m4}from"path";var jA=class{get initialized(){return h4(this.rootDir)}initialize(){if(!this.initialized)yA(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=m4(this.rootDir,T);if(h4($))return n3($,"utf-8");return null}setItem(T,$){this.initialize();let J=m4(this.rootDir,T);p3(J,$)}removeItem(T){let $=m4(this.rootDir,T);if(h4($))this.initialize(),NA($)}key(T){var $;return($=CA(this.rootDir).sort((F,X)=>{let S=xA(F);return xA(X).ctimeMs-S.ctimeMs})[T])!=null?$:null}clear(){NA(this.rootDir,{recursive:!0}),yA(this.rootDir,{recursive:!0})}get length(){return CA(this.rootDir).length}};var g4=new jA({path:o3(process.cwd(),"storage")});import*as Y2 from"fs";import*as ZA from"readline";function d3(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(W,F,X,S,Y)=>{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"}[X];return`${S}-${w}-${F}T${Y}`});return new Date(J)}async function qA(T,$="/var/log/nginx/access.log",J=new Date){let W=new Map;if(!Y2.existsSync($))return T.error(`Log file not found: ${$}`),W;let F=Y2.createReadStream($),X=ZA.createInterface({input:F,crlfDelay:Number.POSITIVE_INFINITY}),S=new Date(J.getTime()-3600000);return X.on("line",(Y)=>{let A=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,w=Y.match(A);if(w?.groups){let G=w.groups.ip,M=w.groups.dateTime,H=d3(M);if(!Number.isNaN(H.getTime())){if(H>=S&&H<=J){let K=W.get(G);if(!K)K=[],W.set(G,K);K.push(Y)}}else T.error(`Failed to parse date: ${M}`)}}),new Promise((Y,A)=>{X.on("error",(w)=>{A(w)}),X.on("close",()=>{Y(W)})})}var u3=["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 IA(T){return u3+T.join(`
94
+ `;await $.execute(K`CREATE SCHEMA IF NOT EXISTS ${K.identifier(F)}`),await $.execute(X);let S=(await $.all(K`select id, hash, created_at from ${K.identifier(F)}.${K.identifier(W)} order by created_at desc limit 1`))[0];await $.transaction(async(A)=>{for await(let w of T)if(!S||Number(S.created_at)<w.folderMillis){for(let G of w.sql)await A.execute(K.raw(G));await A.execute(K`insert into ${K.identifier(F)}.${K.identifier(W)} ("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 $=[K`with `];for(let[J,W]of T.entries())if($.push(K`${K.identifier(W._.alias)} as (${W._.sql})`),J<T.length-1)$.push(K`, `);return $.push(K` `),K.join($)}buildDeleteQuery({table:T,where:$,returning:J,withList:W}){let F=this.buildWithCTE(W),X=J?K` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,Y=$?K` where ${$}`:void 0;return K`${F}delete from ${T}${Y}${X}`}buildUpdateSet(T,$){let J=T[h.Symbol.Columns],W=Object.keys(J).filter((X)=>$[X]!==void 0||J[X]?.onUpdateFn!==void 0),F=W.length;return K.join(W.flatMap((X,Y)=>{let S=J[X],A=$[X]??K.param(S.onUpdateFn(),S),w=K`${K.identifier(this.casing.getColumnCasing(S))} = ${A}`;if(Y<F-1)return[w,K.raw(", ")];return[w]}))}buildUpdateQuery({table:T,set:$,where:J,returning:W,withList:F,from:X,joins:Y}){let S=this.buildWithCTE(F),A=T[A$.Symbol.Name],w=T[A$.Symbol.Schema],G=T[A$.Symbol.OriginalName],M=A===G?void 0:A,H=K`${w?K`${K.identifier(w)}.`:void 0}${K.identifier(G)}${M&&K` ${K.identifier(M)}`}`,f=this.buildUpdateSet(T,$),D=X&&K.join([K.raw(" from "),this.buildFromTable(X)]),R=this.buildJoins(Y),y=W?K` returning ${this.buildSelection(W,{isSingleTable:!X})}`:void 0,j=J?K` where ${J}`:void 0;return K`${S}update ${H} set ${f}${D}${R}${j}${y}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,W=T.flatMap(({field:F},X)=>{let Y=[];if(_(F,g.Aliased)&&F.isSelectionField)Y.push(K.identifier(F.fieldAlias));else if(_(F,g.Aliased)||_(F,g)){let S=_(F,g.Aliased)?F.sql:F;if($)Y.push(new g(S.queryChunks.map((A)=>{if(_(A,q))return K.identifier(this.casing.getColumnCasing(A));return A})));else Y.push(S);if(_(F,g.Aliased))Y.push(K` as ${K.identifier(F.fieldAlias)}`)}else if(_(F,BT))if($)Y.push(K.identifier(this.casing.getColumnCasing(F)));else Y.push(F);if(X<J-1)Y.push(K`, `);return Y});return K.join(W)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[J,W]of T.entries()){if(J===0)$.push(K` `);let F=W.table,X=W.lateral?K` lateral`:void 0;if(_(F,A$)){let Y=F[A$.Symbol.Name],S=F[A$.Symbol.Schema],A=F[A$.Symbol.OriginalName],w=Y===A?void 0:W.alias;$.push(K`${K.raw(W.joinType)} join${X} ${S?K`${K.identifier(S)}.`:void 0}${K.identifier(A)}${w&&K` ${K.identifier(w)}`} on ${W.on}`)}else if(_(F,L$)){let Y=F[CT].name,S=F[CT].schema,A=F[CT].originalName,w=Y===A?void 0:W.alias;$.push(K`${K.raw(W.joinType)} join${X} ${S?K`${K.identifier(S)}.`:void 0}${K.identifier(A)}${w&&K` ${K.identifier(w)}`} on ${W.on}`)}else $.push(K`${K.raw(W.joinType)} join${X} ${F} on ${W.on}`);if(J<T.length-1)$.push(K` `)}return K.join($)}buildFromTable(T){if(_(T,h)&&T[h.Symbol.IsAlias]){let $=K`${K.identifier(T[h.Symbol.OriginalName])}`;if(T[h.Symbol.Schema])$=K`${K.identifier(T[h.Symbol.Schema])}.${$}`;return K`${$} ${K.identifier(T[h.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:J,where:W,having:F,table:X,joins:Y,orderBy:S,groupBy:A,limit:w,offset:G,lockingClause:M,distinct:H,setOperators:f}){let D=J??o$($);for(let $T of D)if(_($T.field,BT)&&W$($T.field.table)!==(_(X,eT)?X._.alias:_(X,wF)?X[CT].name:_(X,g)?void 0:W$(X))&&!((DT)=>Y?.some(({alias:PT})=>PT===(DT[h.Symbol.IsAlias]?W$(DT):DT[h.Symbol.BaseName])))($T.field.table)){let DT=W$($T.field.table);throw new Error(`Your "${$T.path.join("->")}" field references a column "${DT}"."${$T.field.name}", but the table "${DT}" is not part of the query! Did you forget to join it?`)}let R=!Y||Y.length===0,y=this.buildWithCTE(T),j;if(H)j=H===!0?K` distinct`:K` distinct on (${K.join(H.on,K`, `)})`;let L=this.buildSelection(D,{isSingleTable:R}),Z=this.buildFromTable(X),E=this.buildJoins(Y),V=W?K` where ${W}`:void 0,B=F?K` having ${F}`:void 0,k;if(S&&S.length>0)k=K` order by ${K.join(S,K`, `)}`;let b;if(A&&A.length>0)b=K` group by ${K.join(A,K`, `)}`;let r=typeof w==="object"||typeof w==="number"&&w>=0?K` limit ${w}`:void 0,U=G?K` offset ${G}`:void 0,e=K.empty();if(M){let $T=K` for ${K.raw(M.strength)}`;if(M.config.of)$T.append(K` of ${K.join(Array.isArray(M.config.of)?M.config.of:[M.config.of],K`, `)}`);if(M.config.noWait)$T.append(K` no wait`);else if(M.config.skipLocked)$T.append(K` skip locked`);e.append($T)}let p=K`${y}select${j} ${L} from ${Z}${E}${V}${b}${B}${k}${r}${U}${e}`;if(f.length>0)return this.buildSetOperations(p,f);return p}buildSetOperations(T,$){let[J,...W]=$;if(!J)throw new Error("Cannot pass undefined values to any set operator");if(W.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:J});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:J}),W)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:J,rightSelect:W,limit:F,orderBy:X,offset:Y}}){let S=K`(${T.getSQL()}) `,A=K`(${W.getSQL()})`,w;if(X&&X.length>0){let f=[];for(let D of X)if(_(D,q))f.push(K.identifier(D.name));else if(_(D,g)){for(let R=0;R<D.queryChunks.length;R++){let y=D.queryChunks[R];if(_(y,q))D.queryChunks[R]=K.identifier(y.name)}f.push(K`${D}`)}else f.push(K`${D}`);w=K` order by ${K.join(f,K`, `)} `}let G=typeof F==="object"||typeof F==="number"&&F>=0?K` limit ${F}`:void 0,M=K.raw(`${$} ${J?"all ":""}`),H=Y?K` offset ${Y}`:void 0;return K`${S}${M}${A}${w}${G}${H}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:W,withList:F,select:X,overridingSystemValue_:Y}){let S=[],A=T[h.Symbol.Columns],w=Object.entries(A).filter(([y,j])=>!j.shouldDisableInsert()),G=w.map(([,y])=>K.identifier(this.casing.getColumnCasing(y)));if(X){let y=$;if(_(y,g))S.push(y);else S.push(y.getSQL())}else{let y=$;S.push(K.raw("values "));for(let[j,L]of y.entries()){let Z=[];for(let[E,V]of w){let B=L[E];if(B===void 0||_(B,v$)&&B.value===void 0)if(V.defaultFn!==void 0){let k=V.defaultFn(),b=_(k,g)?k:K.param(k,V);Z.push(b)}else if(!V.default&&V.onUpdateFn!==void 0){let k=V.onUpdateFn(),b=_(k,g)?k:K.param(k,V);Z.push(b)}else Z.push(K`default`);else Z.push(B)}if(S.push(Z),j<y.length-1)S.push(K`, `)}}let M=this.buildWithCTE(F),H=K.join(S),f=W?K` returning ${this.buildSelection(W,{isSingleTable:!0})}`:void 0,D=J?K` on conflict ${J}`:void 0,R=Y===!0?K`overriding system value `:void 0;return K`${M}insert into ${T} ${G} ${R}${H}${D}${f}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:J}){let W=$?K` concurrently`:void 0,F=J?K` with no data`:void 0;return K`refresh materialized view${W} ${T}${F}`}prepareTyping(T){if(_(T,vX)||_(T,bX))return"json";else if(_(T,PX))return"decimal";else if(_(T,hX))return"time";else if(_(T,mX)||_(T,gX))return"timestamp";else if(_(T,ZX)||_(T,qX))return"date";else if(_(T,cX))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:W,tableConfig:F,queryConfig:X,tableAlias:Y,nestedQueryRelation:S,joinOn:A}){let w=[],G,M,H=[],f,D=[];if(X===!0)w=Object.entries(F.columns).map(([j,L])=>({dbKey:L.name,tsKey:j,field:zJ(L,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let y=Object.fromEntries(Object.entries(F.columns).map(([B,k])=>[B,zJ(k,Y)]));if(X.where){let B=typeof X.where==="function"?X.where(y,sA()):X.where;f=B&&sW(B,Y)}let j=[],L=[];if(X.columns){let B=!1;for(let[k,b]of Object.entries(X.columns)){if(b===void 0)continue;if(k in F.columns){if(!B&&b===!0)B=!0;L.push(k)}}if(L.length>0)L=B?L.filter((k)=>X.columns?.[k]===!0):Object.keys(F.columns).filter((k)=>!L.includes(k))}else L=Object.keys(F.columns);for(let B of L){let k=F.columns[B];j.push({tsKey:B,value:k})}let Z=[];if(X.with)Z=Object.entries(X.with).filter((B)=>!!B[1]).map(([B,k])=>({tsKey:B,queryConfig:k,relation:F.relations[B]}));let E;if(X.extras){E=typeof X.extras==="function"?X.extras(y,{sql:K}):X.extras;for(let[B,k]of Object.entries(E))j.push({tsKey:B,value:T4(k,Y)})}for(let{tsKey:B,value:k}of j)w.push({dbKey:_(k,g.Aliased)?k.fieldAlias:F.columns[B].name,tsKey:B,field:_(k,BT)?zJ(k,Y):k,relationTableTsKey:void 0,isJson:!1,selection:[]});let V=typeof X.orderBy==="function"?X.orderBy(y,eA()):X.orderBy??[];if(!Array.isArray(V))V=[V];H=V.map((B)=>{if(_(B,BT))return zJ(B,Y);return sW(B,Y)}),G=X.limit,M=X.offset;for(let{tsKey:B,queryConfig:k,relation:b}of Z){let r=$5($,J,b),U=I0(b.referencedTable),e=J[U],p=`${Y}_${B}`,$T=eW(...r.fields.map((_$,KJ)=>CX(zJ(r.references[KJ],p),zJ(_$,Y)))),DT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[e],tableConfig:$[e],queryConfig:_(b,eJ)?k===!0?{limit:1}:{...k,limit:1}:k,tableAlias:p,joinOn:$T,nestedQueryRelation:b}),PT=K`${K.identifier(p)}.${K.identifier("data")}`.as(B);D.push({on:K`true`,table:new eT(DT.sql,{},p),alias:p,joinType:"left",lateral:!0}),w.push({dbKey:B,tsKey:B,field:PT,relationTableTsKey:e,isJson:!0,selection:DT.selection})}}if(w.length===0)throw new NX({message:`No fields selected for table "${F.tsName}" ("${Y}")`});let R;if(f=eW(A,f),S){let y=K`json_build_array(${K.join(w.map(({field:Z,tsKey:E,isJson:V})=>V?K`${K.identifier(`${Y}_${E}`)}.${K.identifier("data")}`:_(Z,g.Aliased)?Z.sql:Z),K`, `)})`;if(_(S,WF))y=K`coalesce(json_agg(${y}${H.length>0?K` order by ${K.join(H,K`, `)}`:void 0}), '[]'::json)`;let j=[{dbKey:"data",tsKey:"data",field:y.as("data"),isJson:!0,relationTableTsKey:F.tsName,selection:w}];if(G!==void 0||M!==void 0||H.length>0)R=this.buildSelectQuery({table:yX(W,Y),fields:{},fieldsFlat:[{path:[],field:K.raw("*")}],where:f,limit:G,offset:M,orderBy:H,setOperators:[]}),f=void 0,G=void 0,M=void 0,H=[];else R=yX(W,Y);R=this.buildSelectQuery({table:_(R,A$)?R:new eT(R,{},Y),fields:{},fieldsFlat:j.map(({field:Z})=>({path:[],field:_(Z,BT)?zJ(Z,Y):Z})),joins:D,where:f,limit:G,offset:M,orderBy:H,setOperators:[]})}else R=this.buildSelectQuery({table:yX(W,Y),fields:{},fieldsFlat:w.map(({field:y})=>({path:[],field:_(y,BT)?zJ(y,Y):y})),joins:D,where:f,limit:G,offset:M,orderBy:H,setOperators:[]});return{tableTsKey:F.tsName,sql:R,selection:w}}}class L4{static[O]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class U${static[O]="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,W;if(this.fields)W=this.fields;else if(_(J,eT))W=Object.fromEntries(Object.keys(J._.selectedFields).map((F)=>[F,J[F]]));else if(_(J,wF))W=J[CT].selectedFields;else if(_(J,g))W={};else W=s9(J);return new y4({table:J,fields:W,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class k5 extends L4{static[O]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:W,dialect:F,withList:X,distinct:Y}){super();this.config={withList:X,table:T,fields:{...$},distinct:Y,setOperators:[]},this.isPartialSelect=J,this.session=W,this.dialect=F,this._={selectedFields:$},this.tableName=jJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let W=this.tableName,F=jJ($);if(typeof F==="string"&&this.config.joins?.some((X)=>X.alias===F))throw new Error(`Alias "${F}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof W==="string")this.config.fields={[W]:this.config.fields};if(typeof F==="string"&&!_($,g)){let X=_($,eT)?$._.selectedFields:_($,L$)?$[CT].selectedFields:$[h.Symbol.Columns];this.config.fields[F]=X}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new mT({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(([X])=>[X,!1])),this.joinsNotNullableMap[F]=!0;break}case"inner":{this.joinsNotNullableMap[F]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([X])=>[X,!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 W=typeof J==="function"?J(b3()):J;if(!TF(this.getSelectedFields(),W.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:W}),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"}))),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 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 y4 extends k5{static[O]="PgSelect";_prepare(T){let{session:$,config:J,dialect:W,joinsNotNullableMap:F,authToken:X}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return LT.startActiveSpan("drizzle.prepareQuery",()=>{let Y=o$(J.fields),S=$.prepareQuery(W.sqlToQuery(this.getSQL()),Y,T,!0);return S.joinsNotNullableMap=F,S.setToken(X)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}a9(y4,[R$]);function g1(T,$){return(J,W,...F)=>{let X=[W,...F].map((Y)=>({type:T,isAll:$,rightSelect:Y}));for(let Y of X)if(!TF(J.getSelectedFields(),Y.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(X)}}var b3=()=>({union:v3,unionAll:P3,intersect:h3,intersectAll:m3,except:g3,exceptAll:c3}),v3=g1("union",!1),P3=g1("union",!0),h3=g1("intersect",!1),m3=g1("intersect",!0),g3=g1("except",!1),c3=g1("except",!0);class GF{static[O]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=_(T,m0)?T:void 0,this.dialectConfig=_(T,m0)?void 0:T}$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(J);return new Proxy(new lW(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function J(X){return new U$({fields:X??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function W(X){return new U$({fields:X??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function F(X,Y){return new U$({fields:Y??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:X}})}return{select:J,selectDistinct:W,selectDistinctOn:F}}select(T){return new U$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new U$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new U$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new m0(this.dialectConfig);return this.dialect}}class $2{constructor(T,$,J,W,F){this.table=T,this.session=$,this.dialect=J,this.withList=W,this.overridingSystemValue_=F}static[O]="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 W={},F=this.table[h.Symbol.Columns];for(let X of Object.keys(J)){let Y=J[X];W[X]=_(Y,g)?Y:new v$(Y,F[X])}return W});return new N4(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new GF):T;if(!_($,g)&&!TF(this.table[BX],$._.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 N4(this.table,$,this.session,this.dialect,this.withList,!0)}}class N4 extends R${constructor(T,$,J,W,F,X,Y){super();this.session=J,this.dialect=W,this.config={table:T,values:$,withList:F,select:X,overridingSystemValue_:Y}}static[O]="PgInsert";config;returning(T=this.config.table[h.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=o$(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=K`do nothing`;else{let $="";$=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));let J=T.where?K` where ${T.where}`:void 0;this.config.onConflict=K`(${K.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?K` where ${T.where}`:void 0,J=T.targetWhere?K` where ${T.targetWhere}`:void 0,W=T.setWhere?K` where ${T.setWhere}`:void 0,F=this.dialect.buildUpdateSet(this.config.table,jX(this.config.table,T.set)),X="";return X=Array.isArray(T.target)?T.target.map((Y)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=K`(${K.raw(X)})${J} do update set ${F}${$}${W}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return LT.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 LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new mT({alias:W$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class C4 extends R${constructor(T,$,J){super();this.session=$,this.dialect=J,this.config={view:T}}static[O]="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 LT.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 LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class J2{constructor(T,$,J,W){this.table=T,this.session=$,this.dialect=J,this.withList=W}static[O]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new V5(this.table,jX(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class V5 extends R${constructor(T,$,J,W,F){super();this.session=J,this.dialect=W,this.config={set:$,table:T,withList:F,joins:[]},this.tableName=jJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[O]="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(_(T,A$))return T[h.Symbol.Columns];else if(_(T,eT))return T._.selectedFields;return T[CT].selectedFields}createJoin(T){return($,J)=>{let W=jJ($);if(typeof W==="string"&&this.config.joins.some((F)=>F.alias===W))throw new Error(`Alias "${W}" is already used in this query`);if(typeof J==="function"){let F=this.config.from&&!_(this.config.from,g)?this.getTableLikeFields(this.config.from):void 0;J=J(new Proxy(this.config.table[h.Symbol.Columns],new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),F&&new Proxy(F,new mT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:J,table:$,joinType:T,alias:W}),typeof W==="string")switch(T){case"left":{this.joinsNotNullableMap[W]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[W]=!0;break}case"inner":{this.joinsNotNullableMap[W]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[W]=!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[h.Symbol.Columns]),this.config.from){let $=jJ(this.config.from);if(typeof $==="string"&&this.config.from&&!_(this.config.from,g)){let J=this.getTableLikeFields(this.config.from);T[$]=J}for(let J of this.config.joins){let W=jJ(J.table);if(typeof W==="string"&&!_(J.table,g)){let F=this.getTableLikeFields(J.table);T[W]=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 mT({alias:W$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class MF extends g{constructor(T){super(MF.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=MF.buildCount(T.source,T.filters)}sql;token;static[O]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return K`(select count(*) from ${T}${K.raw(" where ").if($)}${$})`}static buildCount(T,$){return K`select count(*) as count from ${T}${K.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 j4{constructor(T,$,J,W,F,X,Y){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=F,this.dialect=X,this.session=Y}static[O]="PgRelationalQueryBuilder";findMany(T){return new x4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new x4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class x4 extends R${constructor(T,$,J,W,F,X,Y,S,A){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=F,this.dialect=X,this.session=Y,this.config=S,this.mode=A}static[O]="PgRelationalQuery";_prepare(T){return LT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(W,F)=>{let X=W.map((Y)=>nX(this.schema,this.tableConfig,Y,$.selection,F));if(this.mode==="first")return X[0];return X})})}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 LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class Z4 extends R${constructor(T,$,J,W){super();this.execute=T,this.sql=$,this.query=J,this.mapBatchResult=W}static[O]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class HF{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[W,F]of Object.entries(this._.schema))this.query[W]=new j4(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[W],F,T,$)}static[O]="PgDatabase";query;$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(new GF(J.dialect));return new Proxy(new lW(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new MF({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(A){return new U$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T})}function W(A){return new U$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function F(A,w){return new U$({fields:w??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:A}})}function X(A){return new J2(A,$.session,$.dialect,T)}function Y(A){return new $2(A,$.session,$.dialect,T)}function S(A){return new T2(A,$.session,$.dialect,T)}return{select:J,selectDistinct:W,selectDistinctOn:F,update:X,insert:Y,delete:S}}select(T){return new U$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new U$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new U$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new J2(T,this.session,this.dialect)}insert(T){return new $2(T,this.session,this.dialect)}delete(T){return new T2(T,this.session,this.dialect)}refreshMaterializedView(T){return new C4(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?K.raw(T):T.getSQL(),J=this.dialect.sqlToQuery($),W=this.session.prepareQuery(J,void 0,void 0,!1);return new Z4(()=>W.execute(void 0,this.authToken),$,J,(F)=>W.mapResult(F,!0))}transaction(T,$){return this.session.transaction(T,$)}}class B5{constructor(T,$){this.unique=T,this.name=$}static[O]="PgIndexBuilderOn";on(...T){return new W2(T.map(($)=>{if(_($,g))return $;$=$;let J=new tW($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),J}),this.unique,!1,this.name)}onOnly(...T){return new W2(T.map(($)=>{if(_($,g))return $;$=$;let J=new tW($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,J}),this.unique,!0,this.name)}using(T,...$){return new W2($.map((J)=>{if(_(J,g))return J;J=J;let W=new tW(J.name,!!J.keyAsName,J.columnType,J.indexConfig);return J.indexConfig=JSON.parse(JSON.stringify(J.defaultConfig)),W}),this.unique,!0,this.name,T)}}class W2{static[O]="PgIndexBuilder";config;constructor(T,$,J,W,F="btree"){this.config={name:W,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 L5(this.config,T)}}class L5{static[O]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function q4(T){return new B5(!0,T)}class I4{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[O]="PgPreparedQuery";joinsNotNullableMap}class b4{constructor(T){this.dialect=T}static[O]="PgSession";execute(T,$){return LT.startActiveSpan("drizzle.operation",()=>{return LT.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 v4 extends HF{constructor(T,$,J,W=0){super(T,$,J);this.schema=J,this.nestedIndex=W}static[O]="PgTransaction";rollback(){throw new $4}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 K.raw($.join(" "))}setTransaction(T){return this.session.execute(K`set transaction ${this.getTransactionConfigSQL(T)}`)}}class y5 extends I4{constructor(T,$,J,W,F,X,Y){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=W,this.fields=F,this._isResponseInArrayMode=X,this.customResultMapper=Y}static[O]="PostgresJsPreparedQuery";async execute(T={}){return LT.startActiveSpan("drizzle.execute",async($)=>{let J=e8(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J);let{fields:W,queryString:F,client:X,joinsNotNullableMap:Y,customResultMapper:S}=this;if(!W&&!S)return LT.startActiveSpan("drizzle.driver.execute",()=>{return X.unsafe(F,J)});let A=await LT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":F,"drizzle.query.params":JSON.stringify(J)}),X.unsafe(F,J).values()});return LT.startActiveSpan("drizzle.mapResponse",()=>{return S?S(A):A.map((w)=>r9(W,w,Y))})})}all(T={}){return LT.startActiveSpan("drizzle.execute",async($)=>{let J=e8(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J),LT.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 zF extends b4{constructor(T,$,J,W={}){super($);this.client=T,this.schema=J,this.options=W,this.logger=W.logger??new W4}static[O]="PostgresJsSession";logger;prepareQuery(T,$,J,W,F){return new y5(this.client,T.sql,T.params,this.logger,$,W,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 W=new zF(J,this.dialect,this.schema,this.options),F=new P4(this.dialect,W,this.schema);if($)await F.setTransaction($);return T(F)})}}class P4 extends v4{constructor(T,$,J,W=0){super(T,$,J,W);this.session=$}static[O]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new zF($,this.dialect,this.schema,this.session.options),W=new P4(this.dialect,J,this.schema);return T(W)})}}class N5 extends HF{static[O]="PostgresJsDatabase"}function c1(T,$={}){let J=(A)=>A;for(let A of["1184","1082","1083","1114","1182","1185","1115","1231"])T.options.parsers[A]=J,T.options.serializers[A]=J;T.options.serializers["114"]=J,T.options.serializers["3802"]=J;let W=new m0({casing:$.casing}),F;if($.logger===!0)F=new J4;else if($.logger!==!1)F=$.logger;let X;if($.schema){let A=T5($.schema,J5);X={fullSchema:$.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let Y=new zF(T,W,X,{logger:F}),S=new N5(W,Y,X);return S.$client=T,S}function F2(...T){if(typeof T[0]==="string"){let $=m1(T[0]);return c1($,T[1])}if(e9(T[0])){let{connection:$,client:J,...W}=T[0];if(J)return c1(J,W);if(typeof $==="object"&&$.url!==void 0){let{url:X,...Y}=$,S=m1(X,Y);return c1(S,W)}let F=m1($);return c1(F,W)}return c1(T[0],T[1])}((T)=>{function $(J){return c1({options:{parsers:{},serializers:{}}},J)}T.mock=$})(F2||(F2={}));function n3(T,$){let J={},W=[];for(let F in T){let X=T[F],Y=$[F],S=X["~standard"].validate(Y);if(S instanceof Promise)throw new Error(`Validation must be synchronous, but ${F} returned a Promise.`);if(S.issues){W.push(...S.issues.map((A)=>({...A,path:[F,...A.path??[]]})));continue}J[F]=S.value}if(W.length)return{issues:W};return{value:J}}function C5(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[L,Z]of Object.entries($))if(Z==="")delete $[L]}if(!!T.skipValidation)return $;let F=typeof T.client==="object"?T.client:{},X=typeof T.server==="object"?T.server:{},Y=typeof T.shared==="object"?T.shared:{},S=T.isServer??(typeof window==="undefined"||("Deno"in window)),A=S?{...X,...Y,...F}:{...F,...Y},w=n3(A,$),G=T.onValidationError??((L)=>{throw console.error("\u274C Invalid environment variables:",L),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 G(w.issues);let H=(L)=>{if(!T.clientPrefix)return!0;return!L.startsWith(T.clientPrefix)&&!(L in Y)},f=(L)=>{return S||!H(L)},D=(L)=>{return L==="__esModule"||L==="$$typeof"},R=(T.extends??[]).reduce((L,Z)=>{return Object.assign(L,Z)},{}),y=Object.assign(w.value,R);return new Proxy(y,{get(L,Z){if(typeof Z!=="string")return;if(D(Z))return;if(!f(Z))return M(Z);return Reflect.get(L,Z)}})}var p3="__vite_start_time"in globalThis,o3=typeof window!=="undefined",Ph="vitest"in globalThis,qJ=C5({isServer:!p3&&!o3,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 m4={};pw(m4,{users:()=>g0,userChanges:()=>u3,untrackedUserColumnNames:()=>d3,twoFactorMethod:()=>I5,trackedUserColumnName:()=>q5,trackableUserColumnNames:()=>Z5,role:()=>j5,players:()=>h4,passwordResetAttempts:()=>t3,loginHistory:()=>i3,games:()=>X2,banishedIps:()=>Y2});function x5(T){return K`lower(${T})`}var j5=kX("role",["admin","user"]),g0=sJ("users",{id:P$().primaryKey().defaultRandom(),username:S$({length:16}).notNull(),email:S$({length:254}).notNull(),hash:S$({length:64}).notNull(),salt:S$({length:36}).notNull(),createdAt:WJ({withTimezone:!0}).notNull().defaultNow(),createdIp:S$({length:45}).notNull(),isActive:$F().notNull().default(!1),verifiedAt:WJ({withTimezone:!0}),userRole:j5().default("user")},(T)=>[q4("usernameUniqueIndex").on(x5(T.username)),q4("emailUniqueIndex").on(x5(T.email))]),d3=["id","createdAt","createdIp","isActive","salt","verifiedAt"],Z5=["username","email","hash","userRole"],q5=kX("trackedUserColumnName",Z5),u3=sJ("userChanges",{id:P$().primaryKey().defaultRandom(),userId:P$().notNull().references(()=>g0.id),changedAt:WJ({withTimezone:!0}).notNull().defaultNow(),changedIp:S$({length:45}).notNull(),changedColumn:q5().notNull(),oldValue:S$({length:255}),newValue:S$({length:255})}),X2=sJ("games",{id:P$().primaryKey().defaultRandom()}),h4=sJ("players",{userId:P$().notNull().references(()=>g0.id),gameId:P$().notNull().references(()=>X2.id),score:IX().notNull()},(T)=>[lA({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),i3=sJ("loginHistory",{id:P$().primaryKey().defaultRandom(),userId:P$().references(()=>g0.id),loginTime:WJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:S$({length:45}).notNull(),userAgent:S$({length:1024}),successful:$F().notNull().default(!1)}),I5=kX("twoFactorMethod",["email","phone"]),t3=sJ("passwordResetAttempts",{id:P$().primaryKey().defaultRandom(),userId:P$().notNull().references(()=>g0.id),requestedIp:S$({length:45}).notNull(),requestedAt:WJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:S$({length:45}),succeededAt:WJ({withTimezone:!0}),verificationMethod:I5().notNull()}),Y2=sJ("banishedIps",{ip:S$({length:45}).primaryKey(),reason:S$({length:2048}).notNull(),banishedAt:WJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:WJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class g4{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(l3.resolve(__dirname,"notify_update.sql"));let T=[W$(g0),W$(X2),W$(h4)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let J=$.split(","),W=J[0],F=J[1],X=`${W}("${F}")`;if(this.observers.has(X))this.observers.get(X).next(X)})}constructor(T=!1,$={host:qJ.POSTGRES_HOST,port:qJ.POSTGRES_PORT,user:qJ.POSTGRES_USER,password:qJ.POSTGRES_PASSWORD,database:qJ.POSTGRES_DATABASE}){this.options=$,this.sql=m1($),this.drizzle=F2(this.sql,{schema:m4,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new XT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as s3}from"node:path";import{existsSync as c4,mkdirSync as b5,readFileSync as r3,writeFileSync as a3,rmSync as v5,readdirSync as P5,statSync as h5}from"node:fs";import{resolve as n4}from"node:path";var m5=class{get initialized(){return c4(this.rootDir)}initialize(){if(!this.initialized)b5(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=n4(this.rootDir,T);if(c4($))return r3($,"utf-8");return null}setItem(T,$){this.initialize();let J=n4(this.rootDir,T);a3(J,$)}removeItem(T){let $=n4(this.rootDir,T);if(c4($))this.initialize(),v5($)}key(T){var $;return($=P5(this.rootDir).sort((F,X)=>{let Y=h5(F);return h5(X).ctimeMs-Y.ctimeMs})[T])!=null?$:null}clear(){v5(this.rootDir,{recursive:!0}),b5(this.rootDir,{recursive:!0})}get length(){return P5(this.rootDir).length}};var p4=new m5({path:s3(process.cwd(),"storage")});import*as S2 from"node:fs";import*as g5 from"node:readline";function e3(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(W,F,X,Y,S)=>{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"}[X];return`${Y}-${w}-${F}T${S}`});return new Date(J)}async function c5(T,$="/var/log/nginx/access.log",J=new Date){let W=new Map;if(!S2.existsSync($))return T.error(`Log file not found: ${$}`),W;let F=S2.createReadStream($),X=g5.createInterface({input:F,crlfDelay:Number.POSITIVE_INFINITY}),Y=new Date(J.getTime()-3600000);return X.on("line",(S)=>{let A=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,w=S.match(A);if(w?.groups){let G=w.groups.ip,M=w.groups.dateTime,H=e3(M);if(!Number.isNaN(H.getTime())){if(H>=Y&&H<=J){let f=W.get(G);if(!f)f=[],W.set(G,f);f.push(S)}}else T.error(`Failed to parse date: ${M}`)}}),new Promise((S,A)=>{X.on("error",(w)=>{A(w)}),X.on("close",()=>{S(W)})})}var Tz=["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 n5(T){return Tz+T.join(`
96
96
 
97
- `)}var bA={schema:_T.union([_T.object({shouldBanIp:_T.literal(!1)}),_T.object({shouldBanIp:_T.literal(!0),veryConciseReason:_T.string()})]),fallback:{shouldBanIp:!1}};var t3=[".env","php"];async function vA({generator:T,logFilePath:$,logger:J,now:W=new Date}){let F=T.usdBudget,X=new P4({logQuery(Z,E){J.info("\uD83D\uDCDD query",Z,E)}}),S=await qA(J,$,W),Y=[],A=T.from(bA),w=0,G=0;for(let[Z,E]of S){J.info(`\uD83D\uDD0D ruling on ${Z}. logs:`),J.info(E.map((B)=>` ${B}`).join(`
98
- `));let V=!1;for(let B of t3)if(E.some((k)=>k.includes(B))){Y.push({ip:Z,reason:`Always ban ${B}`}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${Z}--always ban ${B}
99
- `),V=!0;break}if(V)continue;if(T.usdBudget>T.usdMinimum){let B=IA(E),k=await A(B);if(k.shouldBanIp)Y.push({ip:Z,reason:k.veryConciseReason}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${Z}--${k.veryConciseReason}
97
+ `)}var p5={schema:_T.union([_T.object({shouldBanIp:_T.literal(!1)}),_T.object({shouldBanIp:_T.literal(!0),veryConciseReason:_T.string()})]),fallback:{shouldBanIp:!1}};var Jz=[".env","php"];async function o5({generator:T,logFilePath:$,logger:J,now:W=new Date}){let F=T.usdBudget,X=new g4({logQuery(Z,E){J.info("\uD83D\uDCDD query",Z,E)}}),Y=await c5(J,$,W),S=[],A=T.from(p5),w=0,G=0;for(let[Z,E]of Y){J.info(`\uD83D\uDD0D ruling on ${Z}. logs:`),J.info(E.map((B)=>` ${B}`).join(`
98
+ `));let V=!1;for(let B of Jz)if(E.some((k)=>k.includes(B))){S.push({ip:Z,reason:`Always ban ${B}`}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${Z}--always ban ${B}
99
+ `),V=!0;break}if(V)continue;if(T.usdBudget>T.usdMinimum){let B=n5(E),k=await A(B);if(k.shouldBanIp)S.push({ip:Z,reason:k.veryConciseReason}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${Z}--${k.veryConciseReason}
100
100
  `);else G++,J.info(` \uD83D\uDD4A\uFE0F not banning ${Z}
101
- `);w++}else{J.warn("\uD83D\uDCB0 insufficient funds to process all logs"),J.warn(`\uD83D\uDCB0 got through ${w}/${S.size} ips
102
- `);break}}let M=Y.length;if(Y.length>0)await X.drizzle.insert(S2).values(Y).onConflictDoNothing();let H=[],K=g4.getItem("lastTribunalProcessedDate"),D=new Date(K??"1970-01-01");try{H.push(...await X.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:xX(S2.banishedAt,D)}))}catch(Z){J.error(Z)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(H.map((Z)=>new Promise((E,V)=>i3(`iptables -D INPUT -s ${Z.ip} -j DROP`).on("exit",(B)=>{if(B===0)J.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${Z.ip}`),E();else V(new Error(`iptables exited with code ${B}`))}))));else J.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(Z){if(Z instanceof Error)J.error(Z.message);else{let E=b1(Z);J.error("iptables exited with error",E)}}g4.setItem("lastTribunalProcessedDate",W.toISOString()),J.info(`\u2728 banned ${M} ips, didn't ban ${G} ips`);let R=F-T.usdBudget,y=R.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),j=F.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),L=Math.round(R/F*100);J.info(`\uD83D\uDCB8 spent ${y}, ${L}% of ${j} budget`)}var qJ=new Z2;Object.assign(console,qJ.logger,{log:qJ.logger.info});process.on("SIGINT",()=>{qJ.logger.info("\u2757 received SIGINT; exiting gracefully"),A2()});process.on("SIGTERM",()=>{qJ.logger.info("\u2757 received SIGTERM; exiting gracefully"),A2()});process.on("exit",()=>{qJ.logger.info("\u2757 received exit; exiting gracefully"),A2()});qJ.logger.info("\uD83D\uDEEB tribunal worker ready");var l3=new X7({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:ZJ.OPENAI_API_KEY,cachingMode:"off",logger:qJ.logger});if(ZJ.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 vA({generator:l3,logFilePath:"/var/log/nginx/access.log",logger:qJ.logger});A2();function A2(){qJ.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}
101
+ `);w++}else{J.warn("\uD83D\uDCB0 insufficient funds to process all logs"),J.warn(`\uD83D\uDCB0 got through ${w}/${Y.size} ips
102
+ `);break}}let M=S.length;if(S.length>0)await X.drizzle.insert(Y2).values(S).onConflictDoNothing();let H=[],f=p4.getItem("lastTribunalProcessedDate"),D=new Date(f??"1970-01-01");try{H.push(...await X.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:xX(Y2.banishedAt,D)}))}catch(Z){J.error(Z)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(H.map((Z)=>new Promise((E,V)=>$z(`iptables -D INPUT -s ${Z.ip} -j DROP`).on("exit",(B)=>{if(B===0)J.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${Z.ip}`),E();else V(new Error(`iptables exited with code ${B}`))}))));else J.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(Z){if(Z instanceof Error)J.error(Z.message);else{let E=I1(Z);J.error("iptables exited with error",E)}}p4.setItem("lastTribunalProcessedDate",W.toISOString()),J.info(`\u2728 banned ${M} ips, didn't ban ${G} ips`);let R=F-T.usdBudget,y=R.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),j=F.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),L=Math.round(R/F*100);J.info(`\uD83D\uDCB8 spent ${y}, ${L}% of ${j} budget`)}var IJ=new Z2;Object.assign(console,IJ.logger,{log:IJ.logger.info});process.on("SIGINT",()=>{IJ.logger.info("\u2757 received SIGINT; exiting gracefully"),A2()});process.on("SIGTERM",()=>{IJ.logger.info("\u2757 received SIGTERM; exiting gracefully"),A2()});process.on("exit",()=>{IJ.logger.info("\u2757 received exit; exiting gracefully"),A2()});IJ.logger.info("\uD83D\uDEEB tribunal worker ready");var Wz=new w9({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:qJ.OPENAI_API_KEY,cachingMode:"off",logger:IJ.logger});if(qJ.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 o5({generator:Wz,logFilePath:"/var/log/nginx/access.log",logger:IJ.logger});A2();function A2(){IJ.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}