tempest.games 0.1.38 → 0.1.39

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 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`
3
+ var oU=Object.create;var{getPrototypeOf:dU,defineProperty:e4,getOwnPropertyNames:lU}=Object;var nU=Object.prototype.hasOwnProperty;var iU=(T,$,J)=>{J=T!=null?oU(dU(T)):{};let W=$||!T||!T.__esModule?e4(J,"default",{value:T,enumerable:!0}):J;for(let X of lU(T))if(!nU.call(W,X))e4(W,X,{get:()=>T[X],enumerable:!0});return W};var tU=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var rU=(T,$)=>{for(var J in $)e4(T,J,{get:$[J],enumerable:!0,configurable:!0,set:(W)=>$[J]=()=>W})};var X7=import.meta.require;var t3=tU((zp,i3)=>{var R2=X7("os"),L2=X7("path");function n3(T){let $=process.env.XDG_CACHE_HOME||L2.join(R2.homedir(),".cache");return L2.join($,T)}function $D(T){return L2.join(R2.homedir(),"Library","Caches",T)}function JD(T){let $=process.env.LOCALAPPDATA||L2.join(R2.homedir(),"AppData","Local");return L2.join($,T,"Cache")}var WD=function(){switch(R2.platform()){case"darwin":return $D;case"win32":return JD;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return n3;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${R2.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`),n3}}();i3.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 WD($)}});function R8(T=Math.random){return T().toString(36).slice(2)}class wX extends Promise{fate;resolve;reject;done=!1;constructor(T){let $,J;super((W,X)=>{$=W,J=X});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}}var F7=(T,$,J=DT.STORE)=>{return W1(J,{key:`${T.key}:JSON`,get:({get:W})=>$.toJson(W(T)),set:({set:W},X)=>{W(T,$.fromJson(X))}})};function g(T){while(T.child!==null)T=T.child;return T}class QT{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 T6 extends QT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function X1(T,$,J){let W={key:$.key,type:"atom_family"},X=T.families.get($.key);if(X)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${cJ(X)} "${X.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new QT,G=Object.assign((H)=>{let A=ST(H),z={key:$.key,subKey:A},M=`${$.key}(${A})`,w=g(T),S=$.default,_={key:M,default:S instanceof Function?S(H):S};if($.effects)_.effects=$.effects(H);let K=XJ(w,_,z);return F.next({type:"state_creation",token:K}),K},W,{subject:F,install:(H)=>X1(H,$),internalRoles:J});return T.families.set($.key,G),T.defaults.set($.key,$.default),W}function Y7(T,$){if("mutable"in $)return QX(T,$);return X1(T,$)}function F1(T,$,J){let W={key:$.key,type:"readonly_selector_family"},X=T.families.get($.key);if(X)T.logger.error("\u2757","readonly_selector_family",$.key,`Overwriting an existing ${cJ(X)} "${X.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new QT,G=Object.assign((H)=>{let A=ST(H),z={key:$.key,subKey:A},M=`${$.key}(${A})`,w=g(T),S=OX(w,{key:M,get:$.get(H)},z);return F.next({type:"state_creation",token:S}),S},W,{internalRoles:J,subject:F,install:(H)=>F1(H,$),default:(H)=>{return $.get(H)({get:(...z)=>kT(T,...z),find:(...z)=>JT(T,...z),json:(z)=>w$(T,z)})}});return T.families.set($.key,G),W}function L8(T,$){if("set"in $)return UX(T,$);return F1(T,$)}class B8{_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 B8([...this._buffer]);return T._index=this._index,T}}var aU={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function G7(T,$){let J=ST($),W=`${T.key}(${J})`,X=aU[T.type],F={key:W,type:X};return Object.assign(F,{family:{key:T.key,subKey:J}}),Object.assign(F,{counterfeit:!0}),F}function n$(T){let $={key:T.key,type:T.type};if("family"in T)$.family=T.family;return $}function a0(T){return H7(DT.STORE,T)}function H0(T){return Y7(DT.STORE,T)}function $6(...T){if(T.length===2)return kT(DT.STORE,...T);return kT(DT.STORE,...T)}function f8(T,$,J=DT.STORE){return J.joins.set(T.key,new SX(T,$,J)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function z7(T){return M7(T,DT.STORE)}var J6=(T)=>($,J,W,X,...F)=>{console[T](`${$} ${J} "${W}" ${X}`,...F)},sU={error:J6("error"),info:J6("info"),warn:J6("warn")};class W6{logLevel;filter;logger;constructor(T,$,J=sU){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 JB=Symbol("claim");class w7{store;constructor(T=DT.STORE){this.store=T,Q7("root",T)}allocate(T,$,J){return A0(this.store,T,$,J)}fuse(T,$,J){return O7(this.store,T,$,J)}deallocate(T){z0(this.store,T)}claim(T,$,J){return s0(this.store,T,$,J)}}class X6{store;realm;constructor(T=DT.STORE){this.store=T,this.realm=new w7(T)}allocate(T,$,J){A0(this.store,T,$,J)}deallocate(T){z0(this.store,T)}claim(T,$,J){s0(this.store,T,$,J)}}function C8(T){return L8(DT.STORE,T)}function N$(T){return"epoch"in T.transactionMeta}function qT(T){return"phase"in T.transactionMeta}var U7=(T)=>{let $=g(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 jT(T){return T[0].toUpperCase()+T.slice(1)}function cJ(T){return T.type.split("_").map(jT).join(" ")}class M0 extends Error{constructor(T,$){super(`${cJ(T)} ${ST(T.key)} not found in store "${$.config.name}".`)}}function e0(T,$,J){return(...W)=>{let X=BT(T,$);if(X)return X.run(W,J);throw new M0($,T)}}var Z8=(T)=>($)=>T instanceof Function?T($):T;var v1=(T,$)=>{if(T.valueMap.has($.key))return T.logger.info("\uD83D\uDCD6",$.type,$.key,"reading cached value"),S7($,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 _7=(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}"`}`)},D7=(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)},K7=(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($)},TW=(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 V7=(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 F6=(T,$)=>{let J=g(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 X of W){if(K7(J,X))continue;E7(X,J),TW(J,X)}}};var R7=(T,$,J)=>{let W=v1(T,$),X=W;if($.type==="mutable_atom"&&qT(T)){let{parent:Y}=T;X=DX(T,$,Y)}if(X=Z8(J)(X),T.logger.info("\uD83D\uDCDD","atom",$.key,"set to",X),X=UJ(T,$.key,X,$.subject),B7(T,$.key))f7(T,$.key);TW(T,$.key),F6(T,$);let F={oldValue:W,newValue:X};if(!qT(T)){V7(T,$,F);return}if(T.on.transactionApplying.state===null){let{key:Y}=$;if(L7(F.newValue))return;let G={type:"atom_update",key:Y,...F};if($.family)G.family=$.family;T.transactionMeta.update.updates.push(G),T.logger.info("\uD83D\uDCC1","atom",Y,"stowed (",F.oldValue,"->",F.newValue,")")}else if($.key.startsWith("*")){let Y=$.key.slice(1),G=T.atoms.get(Y),H=T.valueMap.get(Y);if(G.type==="mutable_atom"&&qT(T)){let{parent:z}=T;H=DX(T,G,z)}if(H.do(F.newValue)===null)F6(T,G)}};var k8=(T,$,J)=>{switch($.type){case"atom":case"mutable_atom":R7(T,$,J);break;case"selector":$.set(J);break}};function N7(T,$){if($.family){let J=T.families.get($.family.key);if(J)return J}}function W$(T,...$){let J,W,X,F;if($.length===2){if(J=$[0],F=$[1],W=N7(T,J)??null,W)X=J.family?R$(J.family.subKey):null,J=JT(T,W,X)}else W=$[0],X=$[1],F=$[2],J=JT(T,W,X);if("counterfeit"in J&&"family"in J){let H=J.family.subKey,A=T.disposalTraces.buffer.find((z)=>z?.key===H);T.logger.error("\u274C",J.type,J.key,`could not be set because it was not found in the store "${T.config.name}".`,A?`This state was previously disposed:
4
+ ${A.trace}`:"No previous disposal trace was found.");return}let Y=_7(T,J);if(Y){let H=T.on.operationClose.subscribe(`waiting to set "${J.key}" at T-${Y}`,()=>{H(),T.logger.info("\uD83D\uDFE2",J.type,J.key,`resuming deferred setState from T-${Y}`),W$(T,J,F)});return}let G=BT(T,J);k8(T,G,F),D7(T)}function y8(T,$,J){let{key:W,newValue:X,oldValue:F}=$,Y=T==="newValue"?X:F,G={key:W,type:"atom"};if($.family)Object.assign(G,{family:$.family});W$(J,G,Y)}function C7(T){let{stack:$}=T;if($)return`
5
5
  `+$.split(`
6
6
  `)?.slice(1)?.join(`
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
- ${G} was most recently disposed
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?`
7
+ `);return""}function Q7(T,$=DT.STORE){let J={key:T,stringKey:ST(T),dependsOn:"any"};return $.molecules.set(ST(T),J),T}function A0(T,$,J,W="any"){let X=$,F=ST(J),Y=[],G=g(T);if(Array.isArray(X))for(let z of X){let M=ST(z);if(G.molecules.get(M))T.moleculeGraph.set(M,F,{source:M});else Y.push(M)}else{let z=ST(X);if(G.molecules.get(z))T.moleculeGraph.set(z,F,{source:z});else Y.push(z)}if(Y.length===0)G.molecules.set(F,{key:J,stringKey:F,dependsOn:W});let H={type:"molecule_creation",key:J,provenance:X};if(qT(G)&&G.transactionMeta.phase==="building")G.transactionMeta.update.updates.push(H);else G.on.moleculeCreation.next(H);for(let z of Y){let M=T.disposalTraces.buffer.find((w)=>w?.key===z);T.logger.error("\u274C","molecule",J,"allocation failed:",`Could not allocate to ${z} in store "${T.config.name}".`,M?`
8
+ ${z} was most recently disposed
9
+ ${M.trace}`:`No previous disposal trace for ${z} was found.`)}return J}function O7(T,$,J,W){let X=`T$--${$}==${J}++${W}`;return A0(T,[J,W],X,"all"),X}function z0(T,$){let J=ST($),W=T.molecules.get(J);if(!W){let S=T.disposalTraces.buffer.find((_)=>_?.key===J);T.logger.error("\u274C","molecule",$,"deallocation failed:",`Could not find allocation for ${J} in store "${T.config.name}".`,S?`
10
10
  This state was most recently deallocated
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
- ${F} was most recently disposed
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
- ]))`;continue}else if(W[A]==="$"){F+=`($|(?=[\r
18
- ]))`;continue}}if(J.s&&W[A]==="."){F+=Y?`${W[A]}\r
19
- `:`[${W[A]}\r
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.
11
+ ${S.trace}`:`No previous disposal trace for ${J} was found.`);return}let X=T.moleculeJoins.getRelatedKeys(W.key);if(X)for(let S of X){let _=T.joins.get(S);if(_)_.relations.delete(W.key),_.molecules.delete(W.stringKey)}T.moleculeJoins.delete(W.stringKey);let F=[],Y=[],G={type:"molecule_disposal",key:W.key,values:Y,provenance:F},H=g(T);H.molecules.delete(J);let A=qT(H)&&H.transactionMeta.phase==="building";if(A)H.transactionMeta.update.updates.push(G);let z=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey});if(z)for(let[S,{source:_}]of z)if(_===W.stringKey){let K=R$(S);z0(T,K)}else F.push(_);let M=H.moleculeData.getRelatedKeys(W.stringKey);if(M)for(let S of M){let _=H.families.get(S),K=JT(T,_,W.key);Y.push([_.key,K]),w0(T,K)}if(H.moleculeGraph.delete(W.stringKey),H.moleculeJoins.delete(W.stringKey),H.moleculeData.delete(W.stringKey),!A)H.on.moleculeDisposal.next(G);H.molecules.delete(W.stringKey);let w=C7(new Error);T.disposalTraces.add({key:J,trace:w})}function s0(T,$,J,W){let X=ST(J),F=g(T),Y=F.molecules.get(X);if(!Y){let w=T.disposalTraces.buffer.find((S)=>S?.key===X);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${X} in store "${T.config.name}".`,w?`
12
+ ${X} was most recently disposed
13
+ ${w.trace}`:`No previous disposal trace for ${X} was found.`),J}let G=ST($),H=F.molecules.get(G);if(!H){let w=T.disposalTraces.buffer.find((S)=>S?.key===G);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${G} in store "${T.config.name}".`,w?`
14
+ ${G} was most recently disposed
15
+ ${w.trace}`:`No previous disposal trace for ${G} was found.`),J}let A=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:Y.stringKey}).filter(([,{source:w}])=>w!==X).map(([w])=>R$(w));if(W)F.moleculeGraph.delete(X);F.moleculeGraph.set({upstreamMoleculeKey:H.stringKey,downstreamMoleculeKey:Y.stringKey},{source:H.stringKey});let z={type:"molecule_transfer",key:Y.key,from:A,to:[H.key]};if(qT(F)&&F.transactionMeta.phase==="building")F.transactionMeta.update.updates.push(z);return J}function Y6(T,$,J){switch($){case"newValue":{Z7(T,J);break}case"oldValue":{w0(J,T.token);break}}}function G6(T,$,J){switch($){case"newValue":{w0(J,T.token);break}case"oldValue":{if(Z7(T,J),T.subType==="atom")J.valueMap.set(T.token.key,T.value);break}}}function Z7(T,$){let{family:J}=T.token;if(J){let W=$.families.get(J.key);if(W)JT($,W,R$(J.subKey))}}function k7(T,$,J){switch($){case"newValue":A0(J,T.provenance,T.key);break;case"oldValue":z0(J,T.key);break}}function y7(T,$,J){switch($){case"newValue":z0(J,T.key);break;case"oldValue":{let W=T.provenance.map(R$);A0(J,W,T.key);for(let[X,F]of T.values){let Y=J.families.get(X);if(Y){JT(J,Y,T.key);let G=`${X}(${ST(T.key)})`;J.valueMap.set(G,F)}}}break}}function q7(T,$,J){switch($){case"newValue":{let W=T.to.length===1?T.to[0]:T.to;s0(J,W,T.key,"exclusive")}break;case"oldValue":{let W=T.from.length===1?T.from[0]:T.from;s0(J,W,T.key,"exclusive")}break}}function q8(T,$,J){let W=T==="newValue"?$.updates:[...$.updates].reverse();for(let X of W)switch(X.type){case"atom_update":case"selector_update":y8(T,X,J);break;case"state_creation":Y6(X,T,J);break;case"state_disposal":G6(X,T,J);break;case"molecule_creation":k7(X,T,J);break;case"molecule_disposal":y7(X,T,J);break;case"molecule_transfer":q7(X,T,J);break;case"transaction_update":q8(T,X,J);break}}function H6(T,$){return T.transactionMeta.actionContinuities.getRelatedKey($)}function eU(T,$){return T.transactionMeta.epoch.get($)}function I7(T,$){if(!N$(T))return;let W=H6(T,$);if(W===void 0)return;return eU(T,W)}function j7(T,$,J){if(N$(T)&&$)T.transactionMeta.epoch.set($,J)}function x7(T,$,J){if(!N$(T))return;let X=H6(T,$);if(X!==void 0)T.transactionMeta.epoch.set(X,J)}var b7=(T,$)=>{let J=g($),{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:X}=J.transactionMeta.update;if($.logger.info("\uD83D\uDEC4","transaction",J.transactionMeta.update.key,`Applying transaction with ${X.length} updates:`,X),q8("newValue",J.transactionMeta.update,W),N$(W))x7(W,J.transactionMeta.update.key,J.transactionMeta.update.epoch),BT($,{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 P7(T,$,J){if(!N$(T))return;let{epoch:X,actionContinuities:F}=T.transactionMeta;if(F.set($,J),!X.has($))X.set($,-1)}function v7(T){return{store:T}}function kT(T,...$){let J,W,X;if($.length===1)J=$[0];else W=$[0],X=$[1],J=JT(T,W,X);if("counterfeit"in J&&"family"in J){W=T.families.get(J.family.key);let F=J.family.subKey,Y=T.disposalTraces.buffer.find((G)=>G?.key===F);switch(T.logger.error("\u274C",J.type,J.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,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 G=BT(T,W).default(F);return T.defaults.set(W.key,G),G}}}return v1(T,BT(T,J))}class Q${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,X=W===void 0?T:void 0;if(J)for(let F of J){W??=F,X??=F;let Y=this.relations.get(F);if(Y){if(Y.size===1)this.relations.delete(F);else Y.delete(T);this.contents.delete(this.makeContentKey(W,X))}}this.relations.set(T,new Set($));for(let F of $){let Y=this.relations.get(F);if(Y)Y.add(T);else Y=new Set().add(T),this.relations.set(F,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,X)=>J.has(W,X),this.addRelation=(W,X)=>{J.addRelation(W,X)},this.deleteRelation=(W,X)=>{J.deleteRelation(W,X)},this.replaceRelationsSafely=(W,X)=>{J.replaceRelationsSafely(W,X)},this.replaceRelationsUnsafely=(W,X)=>{J.replaceRelationsUnsafely(W,X)},this.getRelatedKeys=(W)=>J.getRelatedKeys(W),J.getContent)this.getContentInternal=(W)=>{return J.getContent(W)},this.setContent=(W,X)=>{J.setContent(W,X)},this.deleteContent=(W)=>{J.deleteContent(W)};for(let[W,X]of T.relations??[]){let F=this.isAType?.(W)?W:void 0,Y=F===void 0?W:void 0;for(let G of X)F??=G,Y??=G,this.addRelation(F,Y)}for(let[W,X]of T.contents??[])this.setContent(W,X)}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 X=T[0];$=X[this.a],J=X[this.b],W=void 0;break}case 2:{let X=T[0];if(typeof X==="string")[$,J]=T;else $=X[this.a],J=X[this.b],W=T[1];break}default:{$=T[0],J=T[1],W=T[2];break}}switch(this.cardinality){case"1:1":{let X=this.getRelatedKey($);if(X&&X!==J)this.delete($,X)}case"1:n":{let X=this.getRelatedKey(J);if(X&&X!==$)this.delete(X,J)}break;case"n:n":}if(W){let X=this.makeContentKey($,J);this.setContent(X,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 X of W)this.delete(X,$)}if(typeof J==="string"&&$===void 0){let W=this.getRelatedKeys(J);if(W)for(let X of W)this.delete(J,X)}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($),X=W?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,X);else this.replaceRelationsSafely(T,X);if(W)for(let F of X){let Y=this.makeContentKey(T,F),G=$[F];this.setContent(Y,G)}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((X)=>{return[X,this.getContent($,X)]})}if($===void 0&&J!==void 0){let W=this.getRelatedKeys(J);if(W)return[...W].map((X)=>{return[X,this.getContent(X,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class SJ 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 h7=(T,$,J,W)=>{let X=g(T),F={parent:X,child:null,on:X.on,loggers:X.loggers,logger:X.logger,config:X.config,atoms:new SJ(X.atoms),atomsThatAreDefault:new Set(X.atomsThatAreDefault),families:new SJ(X.families),joins:new SJ(X.joins),operation:{open:!1},readonlySelectors:new SJ(X.readonlySelectors),timelines:new SJ(X.timelines),timelineTopics:new Q$(X.timelineTopics.toJSON()),trackers:new Map,transactions:new SJ(X.transactions),selectorAtoms:new Q$(X.selectorAtoms.toJSON()),selectorGraph:new Q$(X.selectorGraph.toJSON(),{makeContentKey:(...A)=>A.sort().join(":")}),selectors:new SJ(X.selectors),valueMap:new SJ(X.valueMap),defaults:X.defaults,disposalTraces:T.disposalTraces.copy(),molecules:new SJ(X.molecules),moleculeGraph:new Q$(X.moleculeGraph.toJSON(),{makeContentKey:X.moleculeGraph.makeContentKey}),moleculeData:new Q$(X.moleculeData.toJSON(),{makeContentKey:X.moleculeData.makeContentKey}),moleculeJoins:new Q$(X.moleculeJoins.toJSON(),{makeContentKey:X.moleculeJoins.makeContentKey}),miscResources:new SJ(X.miscResources)},Y=I7(T,$),G={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:(...A)=>kT(H,...A),set:(...A)=>{W$(H,...A)},run:(A,z=R8())=>e0(H,A,z),find:(A,z)=>JT(H,A,z),json:(A)=>w$(H,A),dispose:(...A)=>{w0(H,...A)},env:()=>v7(H)}},H=Object.assign(F,{transactionMeta:G});return X.child=H,T.logger.info("\uD83D\uDEEB","transaction",$,"Building transaction with params:",J),H};function A6(T,$){let J={key:$.key,type:"transaction",run:(F,Y)=>{let G=h7(T,$.key,F,Y);try{let H=g(T),{toolkit:A}=G.transactionMeta,z=$.do(A,...F);return b7(z,H),z}catch(H){throw U7(W),T.logger.warn("\uD83D\uDCA5","transaction",$.key,"caught:",H),H}},install:(F)=>A6(F,$),subject:new QT},W=g(T);W.transactions.set(J.key,J);let X=n$(J);return T.on.transactionCreation.next(X),X}function KX(T){return A6(DT.STORE,T)}class m7{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new Q$({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new Q$({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 Q$({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new Q$({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new B8(100);molecules=new Map;moleculeJoins=new Q$({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new Q$({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new Q$({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new QT,atomDisposal:new QT,selectorCreation:new QT,selectorDisposal:new QT,timelineCreation:new QT,transactionCreation:new QT,transactionApplying:new T6(null),operationClose:new QT,moleculeCreation:new QT,moleculeDisposal:new QT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new W6("warn",(T,$,J)=>!h1(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},N$($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new Q$($?.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 X=w$($,W),F=Y1(W);J.add(X.key),J.add(F.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 DT={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new m7({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function BT(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 M0($,T)}function g7(T,$,J){let W=T.families.get($.key);if(W===void 0)throw new M0($,T);let X=W(J),F=g(T);if(X.family){if(N$(F))switch(X.type){case"atom":case"mutable_atom":T.on.atomCreation.next(X);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(X);break}else if(qT(F)&&F.on.transactionApplying.state===null)F.transactionMeta.update.updates.push({type:"state_creation",token:X})}return X}function p7(T,$,J){let W=ST(J),X=`${$.key}(${W})`,F=g(T),Y;switch($.type){case"atom_family":case"mutable_atom_family":Y=F.atoms.get(X);break;case"selector_family":Y=F.selectors.get(X);break;case"readonly_selector_family":Y=F.readonlySelectors.get(X);break}if(Y)return n$(Y);return Y}function JT(T,$,J){let W=p7(T,$,J);if(W)return W;let X=ST(J),F=T.molecules.get(X);if(!F&&T.config.lifespan==="immortal"){let Y=G7($,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=g7(T,$,J),F)g(T).moleculeData.set(X,$.key);return W}function w0(T,...$){let J;if($.length===1)J=$[0];else{let W=$[0],X=$[1];J=JT(T,W,X)}try{BT(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":z6(T,J);break;case"selector":case"readonly_selector":u7(T,J);break}}var I8=(T,$)=>g(T).atoms.has($),TS=(T,$)=>g(T).selectors.has($),$S=(T,$)=>g(T).readonlySelectors.has($),c7=(T,$)=>I8(T,$)||TS(T,$)||$S(T,$);var j8=(T,$)=>{return g($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([W,{source:X}])=>X!==T).map(([W,{source:X}])=>X).filter((W)=>c7($,W))};var M6=(T,$,J)=>{let W=[],X=j8(T,J);while(X.length>0){let F=X.shift();if($.has(F))continue;if($.add(F),!I8(J,F))X.push(...j8(F,J));else if(!W.includes(F))W.push(F)}return W},o7=(T,$)=>{let J=T.key,W=j8(J,$),X=new Set;return W.flatMap((F)=>I8($,F)?F:M6(F,X,$))};var d7=(T,$,J,W)=>{let X=g(W);if($.type==="atom"||$.type==="mutable_atom")X.selectorAtoms.set({selectorKey:T,atomKey:$.key}),W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let F=M6($.key,J,W);W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${F.map((Y)=>`"${Y}"`).join(", ")} ]`);for(let Y of F)X.selectorAtoms=X.selectorAtoms.set({selectorKey:T,atomKey:Y})}J.add($.key)};var x8=(T,$,J)=>({get:(...W)=>{let X=g(J),F;if(W.length===2){let[H,A]=W;F=JT(J,H,A)}else[F]=W;let Y=BT(J,F),G=v1(J,Y);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${F.key}" =`,G,")"),X.selectorGraph.set({upstreamSelectorKey:F.key,downstreamSelectorKey:T},{source:F.key}),d7(T,F,$,J),G},set:(...W)=>{let X,F;if(W.length===2)X=W[0],F=W[1];else{let H=W[0],A=W[1];F=W[2],X=JT(J,H,A)}let Y=g(J),G=BT(Y,X);k8(Y,G,F)},find:(W,X)=>JT(J,W,X),json:(W)=>w$(J,W)});var OX=(T,$,J)=>{let W=g(T),X=new QT,F=new Set,{get:Y,find:G,json:H}=x8($.key,F,W),A=()=>{let S=$.get({get:Y,find:G,json:H});return UJ(g(T),$.key,S,X),F.clear(),S},z={...$,subject:X,install:(S)=>OX(S,$,J),get:A,type:"readonly_selector",...J&&{family:J}};W.readonlySelectors.set($.key,z);let M=A();T.logger.info("\u2728",z.type,z.key,"=",M);let w={key:$.key,type:"readonly_selector"};if(J)w.family=J;return w};var VX=(T,$,J)=>{let W=g(T),X=new QT,F=new Set,Y=x8($.key,F,W),{find:G,get:H,json:A}=Y,z={find:G,get:H,json:A},M=(Z=$.get,k=g(T))=>{let N=Z(z);return UJ(k,$.key,N,X),F.clear(),N},S={...$,subject:X,install:(Z)=>VX(Z,$,J),get:M,set:(Z)=>{let k=g(T),N=M($.get,k),q=Z8(Z)(N);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",N,"->",q,")"),UJ(k,$.key,q,X),TW(k,$.key),N$(k))X.next({newValue:q,oldValue:N});$.set(Y,q)},type:"selector",...J&&{family:J}};W.selectors.set($.key,S);let _=M();T.logger.info("\u2728",S.type,S.key,"=",_);let K={key:$.key,type:"selector"};if(J)K.family=J;return K};function W1(T,$){if("set"in $){let X=VX(T,$,void 0);return T.on.selectorCreation.next(X),X}let W=OX(T,$,void 0);return T.on.selectorCreation.next(W),W}function u7(T,$){let J=g(T),{key:W}=$,X=BT(J,$);if(!X.family)T.logger.error("\u274C","selector",W,"Standalone selectors cannot be disposed.");else{if(J.molecules.get(X.family.subKey))J.moleculeData.delete(X.family.subKey,X.family.key);let Y;switch($.type){case"selector":J.selectors.delete(W),Y={key:X.family.key,type:"selector_family"},BT(T,Y).subject.next({type:"state_disposal",subType:"selector",token:$});break;case"readonly_selector":J.readonlySelectors.delete(W),Y={key:X.family.key,type:"readonly_selector_family"},BT(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 UX(T,$,J){let W={key:$.key,type:"selector_family"},X=T.families.get($.key);if(X)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${cJ(X)} "${X.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new QT,G=Object.assign((H)=>{let A=ST(H),z={key:$.key,subKey:A},M=`${$.key}(${A})`,w=g(T),S=VX(w,{key:M,get:$.get(H),set:$.set(H)},z);return F.next({type:"state_creation",token:S}),S},W,{internalRoles:J,subject:F,install:(H)=>UX(H,$),default:(H)=>{return $.get(H)({get:(...z)=>kT(T,...z),find:(z,M)=>JT(T,z,M),json:(z)=>w$(T,z)})}});return T.families.set($.key,G),W}function l7(T,$,J){return UX(T,{key:`${$.key}:JSON`,get:(X)=>({get:F})=>{let Y=F($,X);return J.toJson(Y)},set:(X)=>({set:F},Y)=>{F($,X,J.fromJson(Y))}},["mutable","json"])}var R$=(T)=>JSON.parse(T),ST=(T)=>JSON.stringify(T),UZ=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var n7=(T,$)=>{let J=g(T);if(J.operation.open)return J.operation.prev.get($.key);return J.valueMap.get($.key)};var O6=(T,$)=>{let J=g(T);return o7($,T).map((X)=>{let F=J.atoms.get(X);if(F===void 0)throw new Error(`Atom "${X}", a dependency of selector "${$.key}", not found in store "${T.config.name}".`);return F.subject.subscribe(`${$.type}:${$.key}`,(Y)=>{T.logger.info("\uD83D\uDCE2",$.type,$.key,"root",X,"went",Y.oldValue,"->",Y.newValue);let G=n7(J,$),H=v1(J,$);T.logger.info("\u2728",$.type,$.key,"went",G,"->",H),$.subject.next({newValue:H,oldValue:G})})})};function x$(T,$,J,W){function X(M){if(T.operation.open){let w=T.on.operationClose.subscribe(`state subscription ${J}`,()=>{w(),W(M)})}else W(M)}let F=BT(T,$);T.logger.info("\uD83D\uDC40",F.type,F.key,`Adding subscription "${J}"`);let Y=F.type==="selector"||F.type==="readonly_selector",G=null,H=X;if(Y)G=O6(T,F),H=(M)=>{if(G)G.length=0,G.push(...O6(T,F));X(M)};let A=F.subject.subscribe(J,H);return()=>{if(T.logger.info("\uD83D\uDE48",F.type,F.key,`Removing subscription "${J}"`),A(),G)for(let M of G)M()}}var w6=(T,$,J,W)=>{let X=BT(T,$);T.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${J}"`);let F=X.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${J}" from timeline`),F()}};var Q6=(T,$,J,W)=>{let X=BT(T,$);T.logger.info("\uD83D\uDC40","transaction",$.key,`Adding subscription "${J}"`);let F=X.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","transaction",$.key,`Removing subscription "${J}"`),F()}};class Q0{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,X=XJ($,{key:J,default:null},W);if($.parent?.valueMap.has(J)){let F=$.parent.valueMap.get(J);$.valueMap.set(J,F)}return X}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,J){let W=`tracker:${J.config.name}:${qT(J)?J.transactionMeta.update.key:"main"}:${T.key}`,X=kT(J,T);this.unsubscribeFromInnerValue=X.subscribe(W,(F)=>{W$(J,$,F)}),this.unsubscribeFromState=x$(J,T,W,(F)=>{if(F.newValue!==F.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=F.newValue.subscribe(W,(Y)=>{W$(J,$,Y)})})}updateCore(T,$,J){let W=`tracker:${J.config.name}:${qT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;x$(J,$,W,({newValue:X,oldValue:F})=>{let Y=J.timelineTopics.getRelatedKey($.key);if(Y){if(J.timelines.get(Y)?.timeTraveling){let A=w6(J,{key:Y,type:"timeline"},W,(z)=>{A(),W$(J,T,(M)=>{if(z==="redo"&&X)M.do(X);else if(z==="undo"&&F)M.undo(F);return M})});return}}let G=J.on.operationClose.subscribe(W,()=>{G();let H=kT(J,T),A=X===null?-1:H.getUpdateNumber(X),z=A-H.cacheUpdateNumber;if(X&&z===1)W$(J,T,(M)=>(M.do(X),M));else J.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${H.cacheUpdateNumber+1}, but got ${A}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,$){this.mutableState=T;let J=g($);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 EX(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=g(T),X=W.atoms.get($.key);if(X&&X.type==="mutable_atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),n$(X);let F=new QT,Y={...$,type:"mutable_atom",install:(A)=>{return A.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${A.config.name}"`),EX(A,$,J)},subject:F};if(J)Y.family=J;let G=$.default();W.atoms.set(Y.key,Y),b8(T,$.key),UJ(W,$.key,G,F);let H=n$(Y);if($.effects){let A=0,z=[];for(let M of $.effects){let w=M({setSelf:(S)=>{W$(T,H,S)},onSet:(S)=>x$(T,H,`effect[${A}]`,S)});if(w)z.push(w);++A}Y.cleanup=()=>{for(let M of z)M()}}if(new Q0(H,T),!J)F7(H,$,T);return H}class U6{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=X1($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=BT($,J),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(W)=>{let{type:X,token:F}=W;if(F.family){let Y=R$(F.family.subKey);switch(X){case"state_creation":this.trackers.set(Y,new Q0(F,$));break;case"state_disposal":{let G=this.trackers.get(Y);if(G)G[Symbol.dispose](),this.trackers.delete(Y)}break}}})}}function QX(T,$,J){let W={key:$.key,type:"mutable_atom_family"},X=T.families.get($.key);if(X)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${cJ(X)} "${X.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new QT,G=Object.assign((H)=>{let A=ST(H),z={key:$.key,subKey:A},M=`${$.key}(${A})`,w=g(T),S={key:M,default:()=>$.default(H),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)S.effects=$.effects(H);let _=EX(w,S,z);return F.next({type:"state_creation",token:_}),_},W,{subject:F,install:(H)=>QX(H,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:J});return T.families.set($.key,G),l7(T,G,$),new U6(G,T),W}var S6=(T,$)=>{let J=g($),W=`${T.key}:JSON`;return J.families.get(W)};var w$=(T,$)=>{if($.family){let W=g(T),F={key:`${$.family.key}:JSON`,type:"selector_family"},Y=BT(W,F),G=JSON.parse($.family.subKey);return JT(T,Y,G)}return{type:"selector",key:`${$.key}:JSON`}};var Y1=(T)=>{let J={type:"atom",key:`*${T.key}`};if(T.family)J.family={key:`*${T.family.key}`,subKey:T.family.subKey};return J};function L7(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function DX(T,$,J){let W=J.valueMap.get($.key),X=T.valueMap.get($.key);if(W!==X)return X;if(W===void 0)return $.default();J.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let F=$.toJson(W),Y=$.fromJson(F);return T.valueMap.set($.key,Y),new Q0($,J),Y}function UJ(T,$,J,W){let X=T.valueMap.get($);if(X instanceof wX)X.use(J);if(J instanceof Promise){let F=new wX(J);return T.valueMap.set($,F),F.then((Y)=>{UJ(T,$,Y,W),W.next({newValue:Y,oldValue:F})}).catch((Y)=>{T.logger.error("\uD83D\uDCA5","state",$,"rejected:",Y)}),F}return T.valueMap.set($,J),J}var S7=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&qT($)){let{parent:W}=$;J=DX($,T,W)}return J},E7=(T,$)=>{let J=$.valueMap.get(T);if(J instanceof wX){let W=J,X=$.selectors.get(T)??$.readonlySelectors.get(T);if(X)W.use(X.get());return}if($.operation.open)$.operation.prev.set(T,J);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var B7=(T,$)=>{return g(T).atomsThatAreDefault.has($)},b8=(T,$)=>{let J=g(T);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add($)},f7=(T,$)=>{let J=g(T);J.atomsThatAreDefault=new Set(g(T).atomsThatAreDefault),J.atomsThatAreDefault.delete($)};function XJ(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=g(T),X=W.atoms.get($.key);if(X&&X.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),n$(X);let F=new QT,Y={...$,type:"atom",install:(A)=>{return A.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${A.config.name}"`),XJ(A,$,J)},subject:F};if(J)Y.family=J;let G=$.default;if($.default instanceof Function)G=$.default();W.atoms.set(Y.key,Y),b8(T,$.key),UJ(W,$.key,G,F);let H=n$(Y);if($.effects){let A=0,z=[];for(let M of $.effects){let w=M({setSelf:(S)=>{W$(T,H,S)},onSet:(S)=>x$(T,H,`effect[${A}]`,S)});if(w)z.push(w);++A}Y.cleanup=()=>{for(let M of z)M()}}return H}function H7(T,$){if("mutable"in $){let X=EX(T,$,void 0);return T.on.atomCreation.next(X),X}let W=XJ(T,$,void 0);return T.on.atomCreation.next(W),W}function z6(T,$){let J=g(T),{key:W,family:X}=$,F=BT(J,$);if(!X)T.logger.error("\u274C","atom",W,"Standalone atoms cannot be disposed.");else{F.cleanup?.();let Y=T.valueMap.get(F.key),G=BT(T,{key:X.key,type:"atom_family"}),H={type:"state_disposal",subType:"atom",token:$,value:Y};G.subject.next(H);let A=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 z=Y1($);z6(T,z),T.trackers.delete(W)}if(T.logger.info("\uD83D\uDD25","atom",W,"deleted"),A&&J.transactionMeta.phase==="building"){let z=J.transactionMeta.update.updates.at(-1);if(!(z?.type==="molecule_disposal"&&z.values.some(([S])=>S===F.family?.key)))J.transactionMeta.update.updates.push(H)}else T.on.atomDisposal.next($)}}class O$ extends Set{mode="record";subject=new QT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,$=0){super(T);if(T instanceof O$)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 O$(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 O$(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 X of W.split(";"))this.doStep(X)}}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 F=T.substring($+1);return this.doStep(F),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(W)<this.cacheLimit){let F=this.cacheIdx+W;if(this.cache[F]===T)return null;this.mode="playback";let G=!1;while(!G){this.cacheIdx%=this.cacheLimit;let A=this.cache[this.cacheIdx];if(this.cacheIdx--,!A)return"OUT_OF_RANGE";this.undo(A),G=this.cacheIdx===F-1}let H=T.substring($+1);return this.doStep(H),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 X=JSON.parse(W);for(let F of X)this.add(F);break}case"tx":{let X=W.split(";");for(let F=X.length-1;F>=0;F--)this.undoStep(X[F])}}}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 SX{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=DT.STORE){this.store=J,this.realm=new X6(J),this.options=T,this.defaultContent=$,this.store.miscResources.set(`join:${T.key}`,this),this.realm.allocate("root",T.key),this.toolkit={get:(...V)=>kT(J,...V),set:(...V)=>{W$(J,...V)},find:(...V)=>JT(J,...V),json:(V)=>w$(J,V)};let W=T.between[0],X=T.between[1],F=QX(J,{key:`${T.key}/relatedKeys`,default:()=>new O$,mutable:!0,fromJson:(V)=>O$.fromJSON(V),toJson:(V)=>V.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:F};let Y=({get:V},f)=>V(F,f),G=({set:V},f,C)=>{if(!this.store.molecules.has(ST(f)))this.realm.allocate(T.key,f);V(F,f,(B)=>B.add(C)),V(F,C,(B)=>B.add(f))},H=({set:V},f,C)=>{V(F,f,(B)=>{return B.delete(C),B}),V(F,C,(B)=>{return B.delete(f),B})},A=(V,f,C)=>{let{find:B,get:m,set:$T}=V,E=B(F,f),XT=m(E);for(let n of XT){if(C.includes(n))continue;$T(F,n,(yT)=>{return yT.delete(f),yT})}$T(E,(n)=>{return n.transaction((HT)=>{HT.clear();for(let yT of C){let eT=Y(V,yT),l$=eT.has(f);if(this.relations.cardinality==="1:n"){let J1=[];for(let I of eT){if(I===f)continue;let a=Y(V,I);if(a.delete(yT),a.size===0)J1.push(I)}if(!l$&&eT.size>0)eT.clear();for(let I of J1){let a=[yT,I].sort(),CT=`"${a[0]}:${a[1]}"`;this.molecules.delete(CT)}}if(!l$)eT.add(f);HT.add(yT)}return!0}),n})},z=(V,f,C)=>{let{set:B}=V;B(F,f,(m)=>{return m.transaction(($T)=>{for(let E of C)$T.add(E);return!0}),m});for(let m of C)B(F,m,($T)=>{return $T.add(f),$T});return!0},M=(V,f,C)=>{let B=Y(V,f);return C?B.has(C):B.size>0},w={getRelatedKeys:(V)=>Y(this.toolkit,V),addRelation:(V,f)=>{this.store.moleculeJoins.set(V,T.key),this.store.moleculeJoins.set(f,T.key),G(this.toolkit,V,f)},deleteRelation:(V,f)=>{H(this.toolkit,V,f)},replaceRelationsSafely:(V,f)=>{A(this.toolkit,V,f)},replaceRelationsUnsafely:(V,f)=>{z(this.toolkit,V,f)},has:(V,f)=>M(this.toolkit,V,f)},S,_;if($){_=X1(J,{key:`${T.key}/content`,default:$},["join","content"]);let V=({get:B},m)=>B(_,m),f=({set:B},m,$T)=>{B(_,m,$T)};S=Object.assign(w,{getContent:(B)=>{return V(this.toolkit,B)},setContent:(B,m)=>{f(this.toolkit,B,m)},deleteContent:(B)=>{this.realm.deallocate(B)}})}else S=w;let K=new Q$(T,{externalStore:S,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...V)=>{let[f,C]=V,B=V.sort(),m=`${B[0]}:${B[1]}`,$T=J.molecules.get(ST(f)),E=J.molecules.get(ST(C));if(!$T)this.realm.allocate(T.key,f);if(!E)this.realm.allocate(T.key,C);return this.realm.allocate(f,m,"all"),this.realm.claim(C,m),this.store.moleculeJoins.set(m,T.key),m}}),Z=()=>F1(J,{key:`${T.key}/singleRelatedKey`,get:(V)=>({get:f})=>{let C=f(F,V);for(let B of C)return B;return null}},["join","keys"]),k=()=>{return F1(J,{key:`${T.key}/multipleRelatedKeys`,get:(V)=>({get:f})=>{let C=S6(F,J);return f(C,V).members}},["join","keys"])},N=()=>F1(J,{key:`${T.key}/singleRelatedEntry`,get:(V)=>({get:f})=>{let C=f(F,V);for(let B of C){let m=K.isAType?.(V)?V:void 0,$T=m===void 0?V:void 0;m??=B,$T??=B;let E=K.makeContentKey(m,$T),XT=f(_,E);return[B,XT]}return null}},["join","entries"]),q=()=>F1(J,{key:`${T.key}/multipleRelatedEntries`,get:(V)=>({get:f})=>{let C=S6(F,J);return f(C,V).members.map((m)=>{let $T=K.isAType?.(V)?V:void 0,E=$T===void 0?V:void 0;$T??=m,E??=m;let XT=K.makeContentKey($T,E),n=f(_,XT);return[m,n]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let V=Z(),f=`${W}KeyOf${jT(X)}`,C=`${X}KeyOf${jT(W)}`,B={[f]:V,[C]:V},m;if($){let $T=N(),E=`${W}EntryOf${jT(X)}`,XT=`${X}EntryOf${jT(W)}`,n={[E]:$T,[XT]:$T};m=Object.assign(B,n)}else m=B;this.relations=K,this.states=m;break}case"1:n":{let V=Z(),f=k(),C=`${W}KeyOf${jT(X)}`,B=`${X}KeysOf${jT(W)}`,m={[C]:V,[B]:f},$T;if($){let E=N(),XT=q(),n=`${W}EntryOf${jT(X)}`,HT=`${X}EntriesOf${jT(W)}`,yT={[n]:E,[HT]:XT};$T=Object.assign(m,yT)}else $T=m;this.relations=K,this.states=$T;break}case"n:n":{let V=k(),f=`${W}KeysOf${jT(X)}`,C=`${X}KeysOf${jT(W)}`,B={[f]:V,[C]:V},m;if($){let $T=q(),E=`${W}EntriesOf${jT(X)}`,XT=`${X}EntriesOf${jT(W)}`,n={[E]:$T,[XT]:$T};m=Object.assign(B,n)}else m=B;this.relations=K,this.states=m}}}}function $W(T,$){let J=$.joins.get(T.key);if(J===void 0){let X=DT.STORE.joins.get(T.key);if(X===void 0)throw new Error(`Join "${T.key}" not found in store "${$.config.name}"`);J=new SX(X.options,X.defaultContent,$),$.joins.set(T.key,J)}return J}function _X(T,$,J){let W=$W(T,J),X=g(J);if(qT(X)){let{toolkit:F}=X.transactionMeta;W.transact(F,({relations:Y})=>{$(Y)})}else $(W.relations)}function N8(T,$,J){let W=$W(T,J),X;switch(T.cardinality){case"1:1":{let F=`${T.a}KeyOf${jT(T.b)}`,Y=`${T.b}KeyOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntryOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntryOf${jT(T.a)}`;Object.assign(X,{get[G](){let A=W.states[G];return JT(J,A,$)},get[H](){let A=W.states[H];return JT(J,A,$)}})}break}case"1:n":{let F=`${T.a}KeyOf${jT(T.b)}`,Y=`${T.b}KeysOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntryOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntriesOf${jT(T.a)}`;Object.assign(X,{get[G](){let A=W.states[G];return JT(J,A,$)},get[H](){let A=W.states[H];return JT(J,A,$)}})}break}case"n:n":{let F=`${T.a}KeysOf${jT(T.b)}`,Y=`${T.b}KeysOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntriesOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntriesOf${jT(T.a)}`;Object.assign(X,{get[G](){let A=W.states[G];return JT(J,A,$)},get[H](){let A=W.states[H];return JT(J,A,$)}})}}}return X}function M7(T,$){return $W(T,$).core.relatedKeysAtoms}function h1(T){return T.startsWith("\uD83D\uDD0D ")}class i7 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 P8{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(T){this.key=T}static existing=new i7;static create(T,$){let J=new P8(T),{type:W,globals:X,actions:F,perspectives:Y}=$(J),G={type:W,key:T,globals:X,actions:F,perspectives:Y};return P8.existing.set(T,G),G}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 qq(T){let{key:$,config:J}=T,W=P8.create($,J),{actions:X}=W;for(let F of X)P7(DT.STORE,$,F.key);return j7(DT.STORE,$,-1),W}var bq=a0({key:"usersInRoomIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),_6=a0({key:"roomIndex",default:()=>new O$,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),JS={enteredAtEpoch:0},RX=f8({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},JS),Pq=C8({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=z7(RX);return[$(J,T)]}});import{spawn as WS}from"child_process";class JW{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 D6 extends JW{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,...X)=>{let F=JSON.stringify([W,...X])+"\x03",Y=(G)=>{if(G.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(F),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 X=W.toString();if(X==="ALIVE")return;this.unprocessedEvents.push(...X.split("\x03"));let F=this.unprocessedEvents.shift();this.incompleteData+=F??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let Y=R$(this.incompleteData);this.handleEvent(...Y);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;Y=R$(G),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 X=W.toString();this.unprocessedLogs.push(...X.split("\x03"));let F=this.unprocessedLogs.shift();this.incompleteLog+=F??"";try{let Y=R$(this.incompleteLog);this.handleLog(Y);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)Y=R$(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 t7 extends JW{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new QT,this.out=new QT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class K6 extends JW{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(ST(T.map(($)=>$ instanceof O$?`{ ${$.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=R$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W);while(this.unprocessedEvents.length>0){let X=this.unprocessedEvents.shift();if(X){if(this.unprocessedEvents.length===0)this.incompleteData=X;let F=R$(X);this.handleEvent(...F)}}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 t7(`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 V6=H0({key:"roomArguments",default:["echo",["Hello World!"]]}),r7=C8({key:"room",get:(T)=>async({get:$,find:J})=>{let W=J(V6,T),X=$(W),[F,Y]=X,G=await new Promise((H)=>{let A=WS(F,Y,{env:process.env}),z=(M)=>{if(M.toString()==="ALIVE")A.stdout.off("data",z),H(A)};A.stdout.on("data",z)});return new D6(G,T)}});var AI=KX({key:"createRoom",do:({get:T,set:$,find:J},W,X,F)=>{let Y=F?[X,F]:[X],G=J(V6,W);$(G,Y),$(_6,(z)=>z.add(W));let H=J(r7,W);return T(H)}}),zI=KX({key:"joinRoom",do:(T,$,J,W)=>{let X={enteredAtEpoch:W};return _X(RX,(F)=>{F.set({room:$,user:J},X)},T.env().store),X}}),MI=KX({key:"leaveRoom",do:(T,$,J)=>{_X(RX,(W)=>{W.delete({room:$,user:J})},T.env().store)}}),wI=KX({key:"destroyRoom",do:(T,$)=>{_X(RX,(J)=>{J.delete({room:$})},T.env().store),T.set(_6,(J)=>(J.delete($),J))}});function E6(T,$){return $.map((J)=>{switch(J.type){case"transaction_update":{let W=E6(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 UI=H0({key:"redactor",default:{occlude:(T)=>T}}),WW=H0({key:"unacknowledgedUpdates",default:()=>[]});var a7=H0({key:"sockets",default:null}),KI=a0({key:"socketsIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),VI=a0({key:"usersIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),R6=f8({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function s7(T,$,J,W){let X=$.key;return function F(){let Y=[];for(let H of $.globals){let A=H.type==="mutable_atom"?w$(T,H):H,z=kT(T,A);Y.push(A,z)}for(let H of $.perspectives){let{viewAtoms:A,resourceAtoms:z}=H,M=JT(T,A,J),w=kT(T,M);T.logger.info("\uD83D\uDC41","atom",z.key,`${J} can see`,{viewAtoms:A,resourceAtoms:z,userView:w});for(let S of w){let _=S.type==="mutable_atom"?w$(T,S):S,K=kT(T,_);Y.push(_,K)}}let G=N$(T)?T.transactionMeta.epoch.get(X)??null:null;W?.emit(`continuity-init:${X}`,G,Y)}}function e7(T,$,J){let W=$.key;return function X(F){T.logger.info("\uD83D\uDECE\uFE0F","continuity",W,"received",F);let{key:Y,id:G}=F,H=`tx-run:${Y}:${G}`,A=`${H}:start`,z=`${H}:end`;performance.mark(A);try{e0(T,{type:"transaction",key:Y},G)(...F.params)}catch(w){if(w instanceof Error)T.logger.error("\u274C","continuity",W,`failed to run transaction ${Y} from ${J} with update ${G}`,w.message)}performance.mark(z);let M=performance.measure(H,A,z);T?.logger.info("\uD83D\uDE80","transaction",Y,G,J,M.duration)}}function TG(T,$,J,W){let X=$.key;return function F(Y){if(T.logger.info("\uD83D\uDC4D","continuity",X,`${J} acknowledged epoch ${Y}`),W[0]?.epoch===Y)W$(T,WW,J,(H)=>{return H.shift(),T.logger.info("\uD83D\uDC4D","continuity",X,`${J} unacknowledged update queue now has`,H.length,"items"),H})}}function $G(T,$,J,W){let X=$.key,F=[];for(let Y of $.actions){let G=Q6(T,Y,`sync-continuity:${X}:${J}`,(H)=>{try{let A=$.globals.map((w)=>{if(w.type==="atom")return w.key;return Y1(w).key}).concat($.perspectives.flatMap((w)=>{let{viewAtoms:S}=w,_=JT(T,S,J);return kT(T,_).map((Z)=>{return Z.type==="mutable_atom"?"*"+Z.key:Z.key})})),z=E6(A,H.updates),M={...H,updates:z};W$(T,WW,J,(w)=>{if(M)w.push(M),w.sort((S,_)=>S.epoch-_.epoch),T.logger.info("\uD83D\uDC4D","continuity",X,`${J} unacknowledged update queue now has`,w.length,"items");return w}),W?.emit(`tx-new:${X}`,M)}catch(A){if(A instanceof Error)T.logger.error("\u274C","continuity",X,`${J} failed to send update from transaction ${Y.key} to ${J}`,A.message)}});F.push(G)}return F}function JG(T,$,J,W){let X=$.key,F=[];for(let Y of $.perspectives){let{viewAtoms:G}=Y,H=JT(T,G,J),A=x$(T,H,`sync-continuity:${X}:${J}:perspective:${Y.resourceAtoms.key}`,({oldValue:z,newValue:M})=>{let w=z.map((Z)=>Z.key),S=M.map((Z)=>Z.key),_=z.filter((Z)=>!S.includes(Z.key)),K=M.filter((Z)=>!w.includes(Z.key)).flatMap((Z)=>{let k=Z.type==="mutable_atom"?w$(T,Z):Z,N=kT(T,k);return[k,N]});if(T.logger.info("\uD83D\uDC41","atom",Y.resourceAtoms.key,`${J} has a new perspective`,{oldKeys:w,newKeys:S,revealed:K,concealed:_}),K.length>0)W?.emit(`reveal:${X}`,K);if(_.length>0)W?.emit(`conceal:${X}`,_)});F.push(A)}return F}function tI({socket:T,store:$=DT.STORE}){return function J(W){let X=T,F=W.key,Y=N8(R6,`socket::${X.id}`,$).userKeyOfSocket,G=kT($,Y);if(!G)return $.logger.error("\u274C","continuity",F,`Tried to create a synchronizer for a socket (${X.id}) that is not connected to a user.`),()=>{};let H=N8(R6,G,$).socketKeyOfUser,A=x$($,H,`sync-continuity:${F}:${G}`,({newValue:k})=>{if($.logger.info("\uD83D\uDC4B","continuity",F,`seeing ${G} on new socket ${k}`),k===null){$.logger.warn("\u274C","continuity",F,`User (${G}) is not connected to a socket, waiting for them to reappear.`);return}let N=JT($,a7,k);X=kT($,N);for(let V of z)X?.emit(`tx-new:${F}`,V)}),z=kT($,WW,G),M=[],w=JG($,W,G,X),S=$G($,W,G,X);M.push(...w,...S);let _=s7($,W,G,T);X.off(`get:${F}`,_),X.on(`get:${F}`,_);let K=e7($,W,G);X.off(`tx-run:${F}`,K),X.on(`tx-run:${F}`,K);let Z=TG($,W,G,z);return X?.on(`ack:${F}`,Z),()=>{for(let k of M)k();X?.off(`ack:${F}`,Z),X?.off(`get:${F}`,_),X?.off(`tx-run:${F}`,K)}}}var XG=Symbol("Let zodToJsonSchema decide on which parser to use");var WG={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"},FG=(T)=>typeof T==="string"?{...WG,name:T}:{...WG,...T};var YG=(T)=>{let $=FG(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([W,X])=>[X._def,{def:X._def,path:[...$.basePath,$.definitionPath,W],jsonSchema:void 0}]))}};function L6(T,$,J,W){if(!W?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function ET(T,$,J,W,X){T[$]=J,L6(T,$,W,X)}var RT;(function(T){T.assertEqual=(X)=>X;function $(X){}T.assertIs=$;function J(X){throw new Error}T.assertNever=J,T.arrayToEnum=(X)=>{let F={};for(let Y of X)F[Y]=Y;return F},T.getValidEnumValues=(X)=>{let F=T.objectKeys(X).filter((G)=>typeof X[X[G]]!=="number"),Y={};for(let G of F)Y[G]=X[G];return T.objectValues(Y)},T.objectValues=(X)=>{return T.objectKeys(X).map(function(F){return X[F]})},T.objectKeys=typeof Object.keys==="function"?(X)=>Object.keys(X):(X)=>{let F=[];for(let Y in X)if(Object.prototype.hasOwnProperty.call(X,Y))F.push(Y);return F},T.find=(X,F)=>{for(let Y of X)if(F(Y))return Y;return},T.isInteger=typeof Number.isInteger==="function"?(X)=>Number.isInteger(X):(X)=>typeof X==="number"&&isFinite(X)&&Math.floor(X)===X;function W(X,F=" | "){return X.map((Y)=>typeof Y==="string"?`'${Y}'`:Y).join(F)}T.joinValues=W,T.jsonStringifyReplacer=(X,F)=>{if(typeof F==="bigint")return F.toString();return F}})(RT||(RT={}));var GG;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(GG||(GG={}));var o=RT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),m1=(T)=>{switch(typeof T){case"undefined":return o.undefined;case"string":return o.string;case"number":return isNaN(T)?o.nan:o.number;case"boolean":return o.boolean;case"function":return o.function;case"bigint":return o.bigint;case"symbol":return o.symbol;case"object":if(Array.isArray(T))return o.array;if(T===null)return o.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return o.promise;if(typeof Map!=="undefined"&&T instanceof Map)return o.map;if(typeof Set!=="undefined"&&T instanceof Set)return o.set;if(typeof Date!=="undefined"&&T instanceof Date)return o.date;return o.object;default:return o.unknown}},j=RT.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"]);class _J 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(X){return X.message},J={_errors:[]},W=(X)=>{for(let F of X.issues)if(F.code==="invalid_union")F.unionErrors.map(W);else if(F.code==="invalid_return_type")W(F.returnTypeError);else if(F.code==="invalid_arguments")W(F.argumentsError);else if(F.path.length===0)J._errors.push($(F));else{let Y=J,G=0;while(G<F.path.length){let H=F.path[G];if(G!==F.path.length-1)Y[H]=Y[H]||{_errors:[]};else Y[H]=Y[H]||{_errors:[]},Y[H]._errors.push($(F));Y=Y[H],G++}}};return W(this),J}static assert(T){if(!(T instanceof _J))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,RT.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()}}_J.create=(T)=>{return new _J(T)};var CX=(T,$)=>{let J;switch(T.code){case j.invalid_type:if(T.received===o.undefined)J="Required";else J=`Expected ${T.expected}, received ${T.received}`;break;case j.invalid_literal:J=`Invalid literal value, expected ${JSON.stringify(T.expected,RT.jsonStringifyReplacer)}`;break;case j.unrecognized_keys:J=`Unrecognized key(s) in object: ${RT.joinValues(T.keys,", ")}`;break;case j.invalid_union:J="Invalid input";break;case j.invalid_union_discriminator:J=`Invalid discriminator value. Expected ${RT.joinValues(T.options)}`;break;case j.invalid_enum_value:J=`Invalid enum value. Expected ${RT.joinValues(T.options)}, received '${T.received}'`;break;case j.invalid_arguments:J="Invalid function arguments";break;case j.invalid_return_type:J="Invalid function return type";break;case j.invalid_date:J="Invalid date";break;case j.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 RT.assertNever(T.validation);else if(T.validation!=="regex")J=`Invalid ${T.validation}`;else J="Invalid";break;case j.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 j.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 j.custom:J="Invalid input";break;case j.invalid_intersection_types:J="Intersection results could not be merged";break;case j.not_multiple_of:J=`Number must be a multiple of ${T.multipleOf}`;break;case j.not_finite:J="Number must be finite";break;default:J=$.defaultError,RT.assertNever(T)}return{message:J}},XS=CX;function f6(){return XS}var N6=(T)=>{let{data:$,path:J,errorMaps:W,issueData:X}=T,F=[...J,...X.path||[]],Y={...X,path:F};if(X.message!==void 0)return{...X,path:F,message:X.message};let G="",H=W.filter((A)=>!!A).slice().reverse();for(let A of H)G=A(Y,{data:$,defaultError:G}).message;return{...X,path:F,message:G}};function p(T,$){let J=f6(),W=N6({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===CX?void 0:CX].filter((X)=>!!X)});T.common.issues.push(W)}class g${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 FT;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 X=await W.key,F=await W.value;J.push({key:X,value:F})}return g$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let W of $){let{key:X,value:F}=W;if(X.status==="aborted")return FT;if(F.status==="aborted")return FT;if(X.status==="dirty")T.dirty();if(F.status==="dirty")T.dirty();if(X.value!=="__proto__"&&(typeof F.value!=="undefined"||W.alwaysSet))J[X.value]=F.value}return{status:T.value,value:J}}}var FT=Object.freeze({status:"aborted"}),LX=(T)=>({status:"dirty",value:T}),i$=(T)=>({status:"valid",value:T}),HG=(T)=>T.status==="aborted",AG=(T)=>T.status==="dirty",FW=(T)=>T.status==="valid",v8=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function h8(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 MG(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J}var i;(function(T){T.errToObj=($)=>typeof $==="string"?{message:$}:$||{},T.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(i||(i={}));var BX,fX;class kJ{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 zG=(T,$)=>{if(FW($))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 _J(T.common.issues);return this._error=J,this._error}}}};function zT(T){if(!T)return{};let{errorMap:$,invalid_type_error:J,required_error:W,description:X}=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:X};return{errorMap:(Y,G)=>{var H,A;let{message:z}=T;if(Y.code==="invalid_enum_value")return{message:z!==null&&z!==void 0?z:G.defaultError};if(typeof G.data==="undefined")return{message:(H=z!==null&&z!==void 0?z:W)!==null&&H!==void 0?H:G.defaultError};if(Y.code!=="invalid_type")return{message:G.defaultError};return{message:(A=z!==null&&z!==void 0?z:J)!==null&&A!==void 0?A:G.defaultError}},description:X}}class _T{get description(){return this._def.description}_getType(T){return m1(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:m1(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new g$,ctx:{common:T.parent.common,data:T.data,parsedType:m1(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(v8($))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:m1(T)},X=this._parseSync({data:T,path:W.path,parent:W});return zG(W,X)}"~validate"(T){var $,J;let W={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:m1(T)};if(!this["~standard"].async)try{let X=this._parseSync({data:T,path:[],parent:W});return FW(X)?{value:X.value}:{issues:W.common.issues}}catch(X){if((J=($=X===null||X===void 0?void 0:X.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((X)=>FW(X)?{value:X.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:m1(T)},W=this._parse({data:T,path:J.path,parent:J}),X=await(v8(W)?W:Promise.resolve(W));return zG(J,X)}refine(T,$){let J=(W)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(W);else return $};return this._refinement((W,X)=>{let F=T(W),Y=()=>X.addIssue({code:j.custom,...J(W)});if(typeof Promise!=="undefined"&&F instanceof Promise)return F.then((G)=>{if(!G)return Y(),!1;else return!0});if(!F)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 dJ({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 DJ.create(this,this._def)}nullable(){return g1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return oJ.create(this)}promise(){return AW.create(this,this._def)}or(T){return qX.create([this,T],this._def)}and(T){return IX.create(this,T,this._def)}transform(T){return new dJ({...zT(this._def),schema:this,typeName:x.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new PX({...zT(this._def),innerType:this,defaultValue:$,typeName:x.ZodDefault})}brand(){return new k6({typeName:x.ZodBranded,type:this,...zT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new vX({...zT(this._def),innerType:this,catchValue:$,typeName:x.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return l8.create(this,T)}readonly(){return hX.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var FS=/^c[^\s-]{8,}$/i,YS=/^[0-9a-z]+$/,GS=/^[0-9A-HJKMNP-TV-Z]{26}$/i,HS=/^[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,AS=/^[a-z0-9_-]{21}$/i,zS=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,MS=/^[-+]?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)?)??$/,wS=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,QS="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",B6,OS=/^(?:(?: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])$/,US=/^(?:(?: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])$/,SS=/^(([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]))$/,_S=/^(([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])$/,DS=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,KS=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,wG="((\\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])))",VS=new RegExp(`^${wG}$`);function QG(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 ES(T){return new RegExp(`^${QG(T)}$`)}function RS(T){let $=`${wG}T${QG(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function LS(T,$){if(($==="v4"||!$)&&OS.test(T))return!0;if(($==="v6"||!$)&&SS.test(T))return!0;return!1}function BS(T,$){if(!zS.test(T))return!1;try{let[J]=T.split("."),W=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),X=JSON.parse(atob(W));if(typeof X!=="object"||X===null)return!1;if(!X.typ||!X.alg)return!1;if($&&X.alg!==$)return!1;return!0}catch(J){return!1}}function fS(T,$){if(($==="v4"||!$)&&US.test(T))return!0;if(($==="v6"||!$)&&_S.test(T))return!0;return!1}class H1 extends _T{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==o.string){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.string,received:X.parsedType}),FT}let J=new g$,W=void 0;for(let X of this._def.checks)if(X.kind==="min"){if(T.data.length<X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),J.dirty()}else if(X.kind==="max"){if(T.data.length>X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),J.dirty()}else if(X.kind==="length"){let F=T.data.length>X.value,Y=T.data.length<X.value;if(F||Y){if(W=this._getOrReturnCtx(T,W),F)p(W,{code:j.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});else if(Y)p(W,{code:j.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});J.dirty()}}else if(X.kind==="email"){if(!wS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"email",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="emoji"){if(!B6)B6=new RegExp(QS,"u");if(!B6.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"emoji",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="uuid"){if(!HS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"uuid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="nanoid"){if(!AS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"nanoid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cuid"){if(!FS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"cuid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cuid2"){if(!YS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"cuid2",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="ulid"){if(!GS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"ulid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="url")try{new URL(T.data)}catch(F){W=this._getOrReturnCtx(T,W),p(W,{validation:"url",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="regex"){if(X.regex.lastIndex=0,!X.regex.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"regex",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="trim")T.data=T.data.trim();else if(X.kind==="includes"){if(!T.data.includes(X.value,X.position))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{includes:X.value,position:X.position},message:X.message}),J.dirty()}else if(X.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(X.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(X.kind==="startsWith"){if(!T.data.startsWith(X.value))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{startsWith:X.value},message:X.message}),J.dirty()}else if(X.kind==="endsWith"){if(!T.data.endsWith(X.value))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{endsWith:X.value},message:X.message}),J.dirty()}else if(X.kind==="datetime"){if(!RS(X).test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"datetime",message:X.message}),J.dirty()}else if(X.kind==="date"){if(!VS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"date",message:X.message}),J.dirty()}else if(X.kind==="time"){if(!ES(X).test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"time",message:X.message}),J.dirty()}else if(X.kind==="duration"){if(!MS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"duration",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="ip"){if(!LS(T.data,X.version))W=this._getOrReturnCtx(T,W),p(W,{validation:"ip",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="jwt"){if(!BS(T.data,X.alg))W=this._getOrReturnCtx(T,W),p(W,{validation:"jwt",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cidr"){if(!fS(T.data,X.version))W=this._getOrReturnCtx(T,W),p(W,{validation:"cidr",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="base64"){if(!DS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"base64",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="base64url"){if(!KS.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"base64url",code:j.invalid_string,message:X.message}),J.dirty()}else RT.assertNever(X);return{status:J.value,value:T.data}}_regex(T,$,J){return this.refinement((W)=>T.test(W),{validation:$,code:j.invalid_string,...i.errToObj(J)})}_addCheck(T){return new H1({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...i.errToObj(T)})}url(T){return this._addCheck({kind:"url",...i.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...i.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...i.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...i.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...i.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...i.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...i.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...i.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...i.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...i.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...i.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...i.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,...i.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,...i.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...i.errToObj(T)})}regex(T,$){return this._addCheck({kind:"regex",regex:T,...i.errToObj($)})}includes(T,$){return this._addCheck({kind:"includes",value:T,position:$===null||$===void 0?void 0:$.position,...i.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(T,$){return this._addCheck({kind:"startsWith",value:T,...i.errToObj($)})}endsWith(T,$){return this._addCheck({kind:"endsWith",value:T,...i.errToObj($)})}min(T,$){return this._addCheck({kind:"min",value:T,...i.errToObj($)})}max(T,$){return this._addCheck({kind:"max",value:T,...i.errToObj($)})}length(T,$){return this._addCheck({kind:"length",value:T,...i.errToObj($)})}nonempty(T){return this.min(1,i.errToObj(T))}trim(){return new H1({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new H1({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new H1({...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}}H1.create=(T)=>{var $;return new H1({checks:[],typeName:x.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...zT(T)})};function NS(T,$){let J=(T.toString().split(".")[1]||"").length,W=($.toString().split(".")[1]||"").length,X=J>W?J:W,F=parseInt(T.toFixed(X).replace(".","")),Y=parseInt($.toFixed(X).replace(".",""));return F%Y/Math.pow(10,X)}class YW extends _T{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)!==o.number){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.number,received:X.parsedType}),FT}let J=void 0,W=new g$;for(let X of this._def.checks)if(X.kind==="int"){if(!RT.isInteger(T.data))J=this._getOrReturnCtx(T,J),p(J,{code:j.invalid_type,expected:"integer",received:"float",message:X.message}),W.dirty()}else if(X.kind==="min"){if(X.inclusive?T.data<X.value:T.data<=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_small,minimum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),W.dirty()}else if(X.kind==="max"){if(X.inclusive?T.data>X.value:T.data>=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_big,maximum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),W.dirty()}else if(X.kind==="multipleOf"){if(NS(T.data,X.value)!==0)J=this._getOrReturnCtx(T,J),p(J,{code:j.not_multiple_of,multipleOf:X.value,message:X.message}),W.dirty()}else if(X.kind==="finite"){if(!Number.isFinite(T.data))J=this._getOrReturnCtx(T,J),p(J,{code:j.not_finite,message:X.message}),W.dirty()}else RT.assertNever(X);return{status:W.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,i.toString($))}gt(T,$){return this.setLimit("min",T,!1,i.toString($))}lte(T,$){return this.setLimit("max",T,!0,i.toString($))}lt(T,$){return this.setLimit("max",T,!1,i.toString($))}setLimit(T,$,J,W){return new YW({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:i.toString(W)}]})}_addCheck(T){return new YW({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:i.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:i.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:i.toString($)})}finite(T){return this._addCheck({kind:"finite",message:i.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:i.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:i.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"&&RT.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)}}YW.create=(T)=>{return new YW({checks:[],typeName:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...zT(T)})};class GW extends _T{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(X){return this._getInvalidInput(T)}if(this._getType(T)!==o.bigint)return this._getInvalidInput(T);let J=void 0,W=new g$;for(let X of this._def.checks)if(X.kind==="min"){if(X.inclusive?T.data<X.value:T.data<=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_small,type:"bigint",minimum:X.value,inclusive:X.inclusive,message:X.message}),W.dirty()}else if(X.kind==="max"){if(X.inclusive?T.data>X.value:T.data>=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_big,type:"bigint",maximum:X.value,inclusive:X.inclusive,message:X.message}),W.dirty()}else if(X.kind==="multipleOf"){if(T.data%X.value!==BigInt(0))J=this._getOrReturnCtx(T,J),p(J,{code:j.not_multiple_of,multipleOf:X.value,message:X.message}),W.dirty()}else RT.assertNever(X);return{status:W.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return p($,{code:j.invalid_type,expected:o.bigint,received:$.parsedType}),FT}gte(T,$){return this.setLimit("min",T,!0,i.toString($))}gt(T,$){return this.setLimit("min",T,!1,i.toString($))}lte(T,$){return this.setLimit("max",T,!0,i.toString($))}lt(T,$){return this.setLimit("max",T,!1,i.toString($))}setLimit(T,$,J,W){return new GW({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:i.toString(W)}]})}_addCheck(T){return new GW({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:i.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:i.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}}GW.create=(T)=>{var $;return new GW({checks:[],typeName:x.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...zT(T)})};class m8 extends _T{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==o.boolean){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.boolean,received:J.parsedType}),FT}return i$(T.data)}}m8.create=(T)=>{return new m8({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...zT(T)})};class ZX extends _T{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==o.date){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.date,received:X.parsedType}),FT}if(isNaN(T.data.getTime())){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_date}),FT}let J=new g$,W=void 0;for(let X of this._def.checks)if(X.kind==="min"){if(T.data.getTime()<X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_small,message:X.message,inclusive:!0,exact:!1,minimum:X.value,type:"date"}),J.dirty()}else if(X.kind==="max"){if(T.data.getTime()>X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_big,message:X.message,inclusive:!0,exact:!1,maximum:X.value,type:"date"}),J.dirty()}else RT.assertNever(X);return{status:J.value,value:new Date(T.data.getTime())}}_addCheck(T){return new ZX({...this._def,checks:[...this._def.checks,T]})}min(T,$){return this._addCheck({kind:"min",value:T.getTime(),message:i.toString($)})}max(T,$){return this._addCheck({kind:"max",value:T.getTime(),message:i.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}}ZX.create=(T)=>{return new ZX({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:x.ZodDate,...zT(T)})};class g8 extends _T{_parse(T){if(this._getType(T)!==o.symbol){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.symbol,received:J.parsedType}),FT}return i$(T.data)}}g8.create=(T)=>{return new g8({typeName:x.ZodSymbol,...zT(T)})};class kX extends _T{_parse(T){if(this._getType(T)!==o.undefined){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.undefined,received:J.parsedType}),FT}return i$(T.data)}}kX.create=(T)=>{return new kX({typeName:x.ZodUndefined,...zT(T)})};class yX extends _T{_parse(T){if(this._getType(T)!==o.null){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.null,received:J.parsedType}),FT}return i$(T.data)}}yX.create=(T)=>{return new yX({typeName:x.ZodNull,...zT(T)})};class p8 extends _T{constructor(){super(...arguments);this._any=!0}_parse(T){return i$(T.data)}}p8.create=(T)=>{return new p8({typeName:x.ZodAny,...zT(T)})};class O0 extends _T{constructor(){super(...arguments);this._unknown=!0}_parse(T){return i$(T.data)}}O0.create=(T)=>{return new O0({typeName:x.ZodUnknown,...zT(T)})};class A1 extends _T{_parse(T){let $=this._getOrReturnCtx(T);return p($,{code:j.invalid_type,expected:o.never,received:$.parsedType}),FT}}A1.create=(T)=>{return new A1({typeName:x.ZodNever,...zT(T)})};class u8 extends _T{_parse(T){if(this._getType(T)!==o.undefined){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.void,received:J.parsedType}),FT}return i$(T.data)}}u8.create=(T)=>{return new u8({typeName:x.ZodVoid,...zT(T)})};class oJ extends _T{_parse(T){let{ctx:$,status:J}=this._processInputParams(T),W=this._def;if($.parsedType!==o.array)return p($,{code:j.invalid_type,expected:o.array,received:$.parsedType}),FT;if(W.exactLength!==null){let F=$.data.length>W.exactLength.value,Y=$.data.length<W.exactLength.value;if(F||Y)p($,{code:F?j.too_big:j.too_small,minimum:Y?W.exactLength.value:void 0,maximum:F?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)p($,{code:j.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)p($,{code:j.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((F,Y)=>{return W.type._parseAsync(new kJ($,F,$.path,Y))})).then((F)=>{return g$.mergeArray(J,F)});let X=[...$.data].map((F,Y)=>{return W.type._parseSync(new kJ($,F,$.path,Y))});return g$.mergeArray(J,X)}get element(){return this._def.type}min(T,$){return new oJ({...this._def,minLength:{value:T,message:i.toString($)}})}max(T,$){return new oJ({...this._def,maxLength:{value:T,message:i.toString($)}})}length(T,$){return new oJ({...this._def,exactLength:{value:T,message:i.toString($)}})}nonempty(T){return this.min(1,T)}}oJ.create=(T,$)=>{return new oJ({type:T,minLength:null,maxLength:null,exactLength:null,typeName:x.ZodArray,...zT($)})};function XW(T){if(T instanceof $$){let $={};for(let J in T.shape){let W=T.shape[J];$[J]=DJ.create(XW(W))}return new $$({...T._def,shape:()=>$})}else if(T instanceof oJ)return new oJ({...T._def,type:XW(T.element)});else if(T instanceof DJ)return DJ.create(XW(T.unwrap()));else if(T instanceof g1)return g1.create(XW(T.unwrap()));else if(T instanceof z1)return z1.create(T.items.map(($)=>XW($)));else return T}class $$ extends _T{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(),$=RT.objectKeys(T);return this._cached={shape:T,keys:$}}_parse(T){if(this._getType(T)!==o.object){let H=this._getOrReturnCtx(T);return p(H,{code:j.invalid_type,expected:o.object,received:H.parsedType}),FT}let{status:J,ctx:W}=this._processInputParams(T),{shape:X,keys:F}=this._getCached(),Y=[];if(!(this._def.catchall instanceof A1&&this._def.unknownKeys==="strip")){for(let H in W.data)if(!F.includes(H))Y.push(H)}let G=[];for(let H of F){let A=X[H],z=W.data[H];G.push({key:{status:"valid",value:H},value:A._parse(new kJ(W,z,W.path,H)),alwaysSet:H in W.data})}if(this._def.catchall instanceof A1){let H=this._def.unknownKeys;if(H==="passthrough")for(let A of Y)G.push({key:{status:"valid",value:A},value:{status:"valid",value:W.data[A]}});else if(H==="strict"){if(Y.length>0)p(W,{code:j.unrecognized_keys,keys:Y}),J.dirty()}else if(H==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let A of Y){let z=W.data[A];G.push({key:{status:"valid",value:A},value:H._parse(new kJ(W,z,W.path,A)),alwaysSet:A in W.data})}}if(W.common.async)return Promise.resolve().then(async()=>{let H=[];for(let A of G){let z=await A.key,M=await A.value;H.push({key:z,value:M,alwaysSet:A.alwaysSet})}return H}).then((H)=>{return g$.mergeObjectSync(J,H)});else return g$.mergeObjectSync(J,G)}get shape(){return this._def.shape()}strict(T){return i.errToObj,new $$({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var W,X,F,Y;let G=(F=(X=(W=this._def).errorMap)===null||X===void 0?void 0:X.call(W,$,J).message)!==null&&F!==void 0?F:J.defaultError;if($.code==="unrecognized_keys")return{message:(Y=i.errToObj(T).message)!==null&&Y!==void 0?Y:G};return{message:G}}}:{}})}strip(){return new $$({...this._def,unknownKeys:"strip"})}passthrough(){return new $$({...this._def,unknownKeys:"passthrough"})}extend(T){return new $$({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new $$({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 $$({...this._def,catchall:T})}pick(T){let $={};return RT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new $$({...this._def,shape:()=>$})}omit(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new $$({...this._def,shape:()=>$})}deepPartial(){return XW(this)}partial(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{let W=this.shape[J];if(T&&!T[J])$[J]=W;else $[J]=W.optional()}),new $$({...this._def,shape:()=>$})}required(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{if(T&&!T[J])$[J]=this.shape[J];else{let X=this.shape[J];while(X instanceof DJ)X=X._def.innerType;$[J]=X}}),new $$({...this._def,shape:()=>$})}keyof(){return OG(RT.objectKeys(this.shape))}}$$.create=(T,$)=>{return new $$({shape:()=>T,unknownKeys:"strip",catchall:A1.create(),typeName:x.ZodObject,...zT($)})};$$.strictCreate=(T,$)=>{return new $$({shape:()=>T,unknownKeys:"strict",catchall:A1.create(),typeName:x.ZodObject,...zT($)})};$$.lazycreate=(T,$)=>{return new $$({shape:T,unknownKeys:"strip",catchall:A1.create(),typeName:x.ZodObject,...zT($)})};class qX extends _T{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function W(X){for(let Y of X)if(Y.result.status==="valid")return Y.result;for(let Y of X)if(Y.result.status==="dirty")return $.common.issues.push(...Y.ctx.common.issues),Y.result;let F=X.map((Y)=>new _J(Y.ctx.common.issues));return p($,{code:j.invalid_union,unionErrors:F}),FT}if($.common.async)return Promise.all(J.map(async(X)=>{let F={...$,common:{...$.common,issues:[]},parent:null};return{result:await X._parseAsync({data:$.data,path:$.path,parent:F}),ctx:F}})).then(W);else{let X=void 0,F=[];for(let G of J){let H={...$,common:{...$.common,issues:[]},parent:null},A=G._parseSync({data:$.data,path:$.path,parent:H});if(A.status==="valid")return A;else if(A.status==="dirty"&&!X)X={result:A,ctx:H};if(H.common.issues.length)F.push(H.common.issues)}if(X)return $.common.issues.push(...X.ctx.common.issues),X.result;let Y=F.map((G)=>new _J(G));return p($,{code:j.invalid_union,unionErrors:Y}),FT}}get options(){return this._def.options}}qX.create=(T,$)=>{return new qX({options:T,typeName:x.ZodUnion,...zT($)})};var G1=(T)=>{if(T instanceof jX)return G1(T.schema);else if(T instanceof dJ)return G1(T.innerType());else if(T instanceof xX)return[T.value];else if(T instanceof U0)return T.options;else if(T instanceof bX)return RT.objectValues(T.enum);else if(T instanceof PX)return G1(T._def.innerType);else if(T instanceof kX)return[void 0];else if(T instanceof yX)return[null];else if(T instanceof DJ)return[void 0,...G1(T.unwrap())];else if(T instanceof g1)return[null,...G1(T.unwrap())];else if(T instanceof k6)return G1(T.unwrap());else if(T instanceof hX)return G1(T.unwrap());else if(T instanceof vX)return G1(T._def.innerType);else return[]};class Z6 extends _T{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.object)return p($,{code:j.invalid_type,expected:o.object,received:$.parsedType}),FT;let J=this.discriminator,W=$.data[J],X=this.optionsMap.get(W);if(!X)return p($,{code:j.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),FT;if($.common.async)return X._parseAsync({data:$.data,path:$.path,parent:$});else return X._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 X of $){let F=G1(X.shape[T]);if(!F.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let Y of F){if(W.has(Y))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(Y)}`);W.set(Y,X)}}return new Z6({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:W,...zT(J)})}}function C6(T,$){let J=m1(T),W=m1($);if(T===$)return{valid:!0,data:T};else if(J===o.object&&W===o.object){let X=RT.objectKeys($),F=RT.objectKeys(T).filter((G)=>X.indexOf(G)!==-1),Y={...T,...$};for(let G of F){let H=C6(T[G],$[G]);if(!H.valid)return{valid:!1};Y[G]=H.data}return{valid:!0,data:Y}}else if(J===o.array&&W===o.array){if(T.length!==$.length)return{valid:!1};let X=[];for(let F=0;F<T.length;F++){let Y=T[F],G=$[F],H=C6(Y,G);if(!H.valid)return{valid:!1};X.push(H.data)}return{valid:!0,data:X}}else if(J===o.date&&W===o.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class IX extends _T{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=(X,F)=>{if(HG(X)||HG(F))return FT;let Y=C6(X.value,F.value);if(!Y.valid)return p(J,{code:j.invalid_intersection_types}),FT;if(AG(X)||AG(F))$.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(([X,F])=>W(X,F));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}))}}IX.create=(T,$,J)=>{return new IX({left:T,right:$,typeName:x.ZodIntersection,...zT(J)})};class z1 extends _T{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.array)return p(J,{code:j.invalid_type,expected:o.array,received:J.parsedType}),FT;if(J.data.length<this._def.items.length)return p(J,{code:j.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),FT;if(!this._def.rest&&J.data.length>this._def.items.length)p(J,{code:j.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let X=[...J.data].map((F,Y)=>{let G=this._def.items[Y]||this._def.rest;if(!G)return null;return G._parse(new kJ(J,F,J.path,Y))}).filter((F)=>!!F);if(J.common.async)return Promise.all(X).then((F)=>{return g$.mergeArray($,F)});else return g$.mergeArray($,X)}get items(){return this._def.items}rest(T){return new z1({...this._def,rest:T})}}z1.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new z1({items:T,typeName:x.ZodTuple,rest:null,...zT($)})};class c8 extends _T{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.object)return p(J,{code:j.invalid_type,expected:o.object,received:J.parsedType}),FT;let W=[],X=this._def.keyType,F=this._def.valueType;for(let Y in J.data)W.push({key:X._parse(new kJ(J,Y,J.path,Y)),value:F._parse(new kJ(J,J.data[Y],J.path,Y)),alwaysSet:Y in J.data});if(J.common.async)return g$.mergeObjectAsync($,W);else return g$.mergeObjectSync($,W)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof _T)return new c8({keyType:T,valueType:$,typeName:x.ZodRecord,...zT(J)});return new c8({keyType:H1.create(),valueType:T,typeName:x.ZodRecord,...zT($)})}}class o8 extends _T{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.map)return p(J,{code:j.invalid_type,expected:o.map,received:J.parsedType}),FT;let W=this._def.keyType,X=this._def.valueType,F=[...J.data.entries()].map(([Y,G],H)=>{return{key:W._parse(new kJ(J,Y,J.path,[H,"key"])),value:X._parse(new kJ(J,G,J.path,[H,"value"]))}});if(J.common.async){let Y=new Map;return Promise.resolve().then(async()=>{for(let G of F){let H=await G.key,A=await G.value;if(H.status==="aborted"||A.status==="aborted")return FT;if(H.status==="dirty"||A.status==="dirty")$.dirty();Y.set(H.value,A.value)}return{status:$.value,value:Y}})}else{let Y=new Map;for(let G of F){let{key:H,value:A}=G;if(H.status==="aborted"||A.status==="aborted")return FT;if(H.status==="dirty"||A.status==="dirty")$.dirty();Y.set(H.value,A.value)}return{status:$.value,value:Y}}}}o8.create=(T,$,J)=>{return new o8({valueType:$,keyType:T,typeName:x.ZodMap,...zT(J)})};class HW extends _T{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.set)return p(J,{code:j.invalid_type,expected:o.set,received:J.parsedType}),FT;let W=this._def;if(W.minSize!==null){if(J.data.size<W.minSize.value)p(J,{code:j.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)p(J,{code:j.too_big,maximum:W.maxSize.value,type:"set",inclusive:!0,exact:!1,message:W.maxSize.message}),$.dirty()}let X=this._def.valueType;function F(G){let H=new Set;for(let A of G){if(A.status==="aborted")return FT;if(A.status==="dirty")$.dirty();H.add(A.value)}return{status:$.value,value:H}}let Y=[...J.data.values()].map((G,H)=>X._parse(new kJ(J,G,J.path,H)));if(J.common.async)return Promise.all(Y).then((G)=>F(G));else return F(Y)}min(T,$){return new HW({...this._def,minSize:{value:T,message:i.toString($)}})}max(T,$){return new HW({...this._def,maxSize:{value:T,message:i.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}HW.create=(T,$)=>{return new HW({valueType:T,minSize:null,maxSize:null,typeName:x.ZodSet,...zT($)})};class NX extends _T{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.function)return p($,{code:j.invalid_type,expected:o.function,received:$.parsedType}),FT;function J(Y,G){return N6({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f6(),CX].filter((H)=>!!H),issueData:{code:j.invalid_arguments,argumentsError:G}})}function W(Y,G){return N6({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f6(),CX].filter((H)=>!!H),issueData:{code:j.invalid_return_type,returnTypeError:G}})}let X={errorMap:$.common.contextualErrorMap},F=$.data;if(this._def.returns instanceof AW){let Y=this;return i$(async function(...G){let H=new _J([]),A=await Y._def.args.parseAsync(G,X).catch((w)=>{throw H.addIssue(J(G,w)),H}),z=await Reflect.apply(F,this,A);return await Y._def.returns._def.type.parseAsync(z,X).catch((w)=>{throw H.addIssue(W(z,w)),H})})}else{let Y=this;return i$(function(...G){let H=Y._def.args.safeParse(G,X);if(!H.success)throw new _J([J(G,H.error)]);let A=Reflect.apply(F,this,H.data),z=Y._def.returns.safeParse(A,X);if(!z.success)throw new _J([W(A,z.error)]);return z.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new NX({...this._def,args:z1.create(T).rest(O0.create())})}returns(T){return new NX({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new NX({args:T?T:z1.create([]).rest(O0.create()),returns:$||O0.create(),typeName:x.ZodFunction,...zT(J)})}}class jX extends _T{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}jX.create=(T,$)=>{return new jX({getter:T,typeName:x.ZodLazy,...zT($)})};class xX extends _T{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return p($,{received:$.data,code:j.invalid_literal,expected:this._def.value}),FT}return{status:"valid",value:T.data}}get value(){return this._def.value}}xX.create=(T,$)=>{return new xX({value:T,typeName:x.ZodLiteral,...zT($)})};function OG(T,$){return new U0({values:T,typeName:x.ZodEnum,...zT($)})}class U0 extends _T{constructor(){super(...arguments);BX.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let $=this._getOrReturnCtx(T),J=this._def.values;return p($,{expected:RT.joinValues(J),received:$.parsedType,code:j.invalid_type}),FT}if(!h8(this,BX,"f"))MG(this,BX,new Set(this._def.values),"f");if(!h8(this,BX,"f").has(T.data)){let $=this._getOrReturnCtx(T),J=this._def.values;return p($,{received:$.data,code:j.invalid_enum_value,options:J}),FT}return i$(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 U0.create(T,{...this._def,...$})}exclude(T,$=this._def){return U0.create(this.options.filter((J)=>!T.includes(J)),{...this._def,...$})}}BX=new WeakMap;U0.create=OG;class bX extends _T{constructor(){super(...arguments);fX.set(this,void 0)}_parse(T){let $=RT.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(T);if(J.parsedType!==o.string&&J.parsedType!==o.number){let W=RT.objectValues($);return p(J,{expected:RT.joinValues(W),received:J.parsedType,code:j.invalid_type}),FT}if(!h8(this,fX,"f"))MG(this,fX,new Set(RT.getValidEnumValues(this._def.values)),"f");if(!h8(this,fX,"f").has(T.data)){let W=RT.objectValues($);return p(J,{received:J.data,code:j.invalid_enum_value,options:W}),FT}return i$(T.data)}get enum(){return this._def.values}}fX=new WeakMap;bX.create=(T,$)=>{return new bX({values:T,typeName:x.ZodNativeEnum,...zT($)})};class AW extends _T{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.promise&&$.common.async===!1)return p($,{code:j.invalid_type,expected:o.promise,received:$.parsedType}),FT;let J=$.parsedType===o.promise?$.data:Promise.resolve($.data);return i$(J.then((W)=>{return this._def.type.parseAsync(W,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}AW.create=(T,$)=>{return new AW({type:T,typeName:x.ZodPromise,...zT($)})};class dJ extends _T{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,X={addIssue:(F)=>{if(p(J,F),F.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(X.addIssue=X.addIssue.bind(X),W.type==="preprocess"){let F=W.transform(J.data,X);if(J.common.async)return Promise.resolve(F).then(async(Y)=>{if($.value==="aborted")return FT;let G=await this._def.schema._parseAsync({data:Y,path:J.path,parent:J});if(G.status==="aborted")return FT;if(G.status==="dirty")return LX(G.value);if($.value==="dirty")return LX(G.value);return G});else{if($.value==="aborted")return FT;let Y=this._def.schema._parseSync({data:F,path:J.path,parent:J});if(Y.status==="aborted")return FT;if(Y.status==="dirty")return LX(Y.value);if($.value==="dirty")return LX(Y.value);return Y}}if(W.type==="refinement"){let F=(Y)=>{let G=W.refinement(Y,X);if(J.common.async)return Promise.resolve(G);if(G 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 FT;if(Y.status==="dirty")$.dirty();return F(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 FT;if(Y.status==="dirty")$.dirty();return F(Y.value).then(()=>{return{status:$.value,value:Y.value}})})}if(W.type==="transform")if(J.common.async===!1){let F=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!FW(F))return F;let Y=W.transform(F.value,X);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((F)=>{if(!FW(F))return F;return Promise.resolve(W.transform(F.value,X)).then((Y)=>({status:$.value,value:Y}))});RT.assertNever(W)}}dJ.create=(T,$,J)=>{return new dJ({schema:T,typeName:x.ZodEffects,effect:$,...zT(J)})};dJ.createWithPreprocess=(T,$,J)=>{return new dJ({schema:$,effect:{type:"preprocess",transform:T},typeName:x.ZodEffects,...zT(J)})};class DJ extends _T{_parse(T){if(this._getType(T)===o.undefined)return i$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}DJ.create=(T,$)=>{return new DJ({innerType:T,typeName:x.ZodOptional,...zT($)})};class g1 extends _T{_parse(T){if(this._getType(T)===o.null)return i$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}g1.create=(T,$)=>{return new g1({innerType:T,typeName:x.ZodNullable,...zT($)})};class PX extends _T{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;if($.parsedType===o.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}PX.create=(T,$)=>{return new PX({innerType:T,typeName:x.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...zT($)})};class vX extends _T{_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(v8(W))return W.then((X)=>{return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new _J(J.common.issues)},input:J.data})}});else return{status:"valid",value:W.status==="valid"?W.value:this._def.catchValue({get error(){return new _J(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}vX.create=(T,$)=>{return new vX({innerType:T,typeName:x.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...zT($)})};class d8 extends _T{_parse(T){if(this._getType(T)!==o.nan){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.nan,received:J.parsedType}),FT}return{status:"valid",value:T.data}}}d8.create=(T)=>{return new d8({typeName:x.ZodNaN,...zT(T)})};var fj=Symbol("zod_brand");class k6 extends _T{_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 l8 extends _T{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.common.async)return(async()=>{let X=await this._def.in._parseAsync({data:J.data,path:J.path,parent:J});if(X.status==="aborted")return FT;if(X.status==="dirty")return $.dirty(),LX(X.value);else return this._def.out._parseAsync({data:X.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 FT;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 l8({in:T,out:$,typeName:x.ZodPipeline})}}class hX extends _T{_parse(T){let $=this._def.innerType._parse(T),J=(W)=>{if(FW(W))W.value=Object.freeze(W.value);return W};return v8($)?$.then((W)=>J(W)):J($)}unwrap(){return this._def.innerType}}hX.create=(T,$)=>{return new hX({innerType:T,typeName:x.ZodReadonly,...zT($)})};var Nj={object:$$.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 Cj=H1.create,Zj=YW.create,kj=d8.create,yj=GW.create,qj=m8.create,Ij=ZX.create,jj=g8.create,xj=kX.create,bj=yX.create,Pj=p8.create,vj=O0.create,hj=A1.create,mj=u8.create,gj=oJ.create,pj=$$.create,uj=$$.strictCreate,cj=qX.create,oj=Z6.create,dj=IX.create,lj=z1.create,nj=c8.create,ij=o8.create,tj=HW.create,rj=NX.create,aj=jX.create,sj=xX.create,ej=U0.create,Tx=bX.create,$x=AW.create,Jx=dJ.create,Wx=DJ.create,Xx=g1.create,Fx=dJ.createWithPreprocess,Yx=l8.create;function UG(){return{}}function SG(T,$){let J={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==x.ZodAny)J.items=WT(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)ET(J,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)ET(J,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)ET(J,"minItems",T.exactLength.value,T.exactLength.message,$),ET(J,"maxItems",T.exactLength.value,T.exactLength.message,$);return J}function _G(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)ET(J,"minimum",W.value,W.message,$);else ET(J,"exclusiveMinimum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMinimum=!0;ET(J,"minimum",W.value,W.message,$)}break;case"max":if($.target==="jsonSchema7")if(W.inclusive)ET(J,"maximum",W.value,W.message,$);else ET(J,"exclusiveMaximum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMaximum=!0;ET(J,"maximum",W.value,W.message,$)}break;case"multipleOf":ET(J,"multipleOf",W.value,W.message,$);break}return J}function DG(){return{type:"boolean"}}function n8(T,$){return WT(T.type._def,$)}var KG=(T,$)=>{return WT(T.innerType._def,$)};function y6(T,$,J){let W=J??$.dateStrategy;if(Array.isArray(W))return{anyOf:W.map((X,F)=>y6(T,$,X))};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 CS(T,$)}}var CS=(T,$)=>{let J={type:"integer",format:"unix-time"};if($.target==="openApi3")return J;for(let W of T.checks)switch(W.kind){case"min":ET(J,"minimum",W.value,W.message,$);break;case"max":ET(J,"maximum",W.value,W.message,$);break}return J};function VG(T,$){return{...WT(T.innerType._def,$),default:T.defaultValue()}}function EG(T,$){return $.effectStrategy==="input"?WT(T.schema._def,$):{}}function RG(T){return{type:"string",enum:Array.from(T.values)}}var ZS=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function LG(T,$){let J=[WT(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),WT(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((F)=>!!F),W=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,X=[];return J.forEach((F)=>{if(ZS(F)){if(X.push(...F.allOf),F.unevaluatedProperties===void 0)W=void 0}else{let Y=F;if("additionalProperties"in F&&F.additionalProperties===!1){let{additionalProperties:G,...H}=F;Y=H}else W=void 0;X.push(Y)}}),X.length?{allOf:X,...W}:void 0}function BG(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 q6=void 0,yJ={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(q6===void 0)q6=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return q6},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 i8(T,$){let J={type:"string"};if(T.checks)for(let W of T.checks)switch(W.kind){case"min":ET(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$);break;case"max":ET(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"email":switch($.emailStrategy){case"format:email":qJ(J,"email",W.message,$);break;case"format:idn-email":qJ(J,"idn-email",W.message,$);break;case"pattern:zod":p$(J,yJ.email,W.message,$);break}break;case"url":qJ(J,"uri",W.message,$);break;case"uuid":qJ(J,"uuid",W.message,$);break;case"regex":p$(J,W.regex,W.message,$);break;case"cuid":p$(J,yJ.cuid,W.message,$);break;case"cuid2":p$(J,yJ.cuid2,W.message,$);break;case"startsWith":p$(J,RegExp(`^${I6(W.value,$)}`),W.message,$);break;case"endsWith":p$(J,RegExp(`${I6(W.value,$)}$`),W.message,$);break;case"datetime":qJ(J,"date-time",W.message,$);break;case"date":qJ(J,"date",W.message,$);break;case"time":qJ(J,"time",W.message,$);break;case"duration":qJ(J,"duration",W.message,$);break;case"length":ET(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$),ET(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"includes":{p$(J,RegExp(I6(W.value,$)),W.message,$);break}case"ip":{if(W.version!=="v6")qJ(J,"ipv4",W.message,$);if(W.version!=="v4")qJ(J,"ipv6",W.message,$);break}case"base64url":p$(J,yJ.base64url,W.message,$);break;case"jwt":p$(J,yJ.jwt,W.message,$);break;case"cidr":{if(W.version!=="v6")p$(J,yJ.ipv4Cidr,W.message,$);if(W.version!=="v4")p$(J,yJ.ipv6Cidr,W.message,$);break}case"emoji":p$(J,yJ.emoji(),W.message,$);break;case"ulid":{p$(J,yJ.ulid,W.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{qJ(J,"binary",W.message,$);break}case"contentEncoding:base64":{ET(J,"contentEncoding","base64",W.message,$);break}case"pattern:zod":{p$(J,yJ.base64,W.message,$);break}}break}case"nanoid":p$(J,yJ.nanoid,W.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((X)=>{})(W)}return J}function I6(T,$){return $.patternStrategy==="escape"?yS(T):T}var kS=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function yS(T){let $="";for(let J=0;J<T.length;J++){if(!kS.has(T[J]))$+="\\";$+=T[J]}return $}function qJ(T,$,J,W){if(T.format||T.anyOf?.some((X)=>X.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 ET(T,"format",$,J,W)}function p$(T,$,J,W){if(T.pattern||T.allOf?.some((X)=>X.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:fG($,W),...J&&W.errorMessages&&{errorMessage:{pattern:J}}})}else ET(T,"pattern",fG($,W),J,W)}function fG(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,X="",F=!1,Y=!1,G=!1;for(let H=0;H<W.length;H++){if(F){X+=W[H],F=!1;continue}if(J.i){if(Y){if(W[H].match(/[a-z]/)){if(G)X+=W[H],X+=`${W[H-2]}-${W[H]}`.toUpperCase(),G=!1;else if(W[H+1]==="-"&&W[H+2]?.match(/[a-z]/))X+=W[H],G=!0;else X+=`${W[H]}${W[H].toUpperCase()}`;continue}}else if(W[H].match(/[a-z]/)){X+=`[${W[H]}${W[H].toUpperCase()}]`;continue}}if(J.m){if(W[H]==="^"){X+=`(^|(?<=[\r
17
+ ]))`;continue}else if(W[H]==="$"){X+=`($|(?=[\r
18
+ ]))`;continue}}if(J.s&&W[H]==="."){X+=Y?`${W[H]}\r
19
+ `:`[${W[H]}\r
20
+ ]`;continue}if(X+=W[H],W[H]==="\\")F=!0;else if(Y&&W[H]==="]")Y=!1;else if(!Y&&W[H]==="[")Y=!0}try{new RegExp(X)}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 X}function t8(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,X)=>({...W,[X]:WT(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",X]})??{}}),{}),additionalProperties:$.rejectedAdditionalProperties};let J={type:"object",additionalProperties:WT(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,...X}=i8(T.keyType._def,$);return{...J,propertyNames:X}}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,...X}=n8(T.keyType._def,$);return{...J,propertyNames:X}}return J}function NG(T,$){if($.mapStrategy==="record")return t8(T,$);let J=WT(T.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},W=WT(T.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[J,W],minItems:2,maxItems:2}}}function CG(T){let $=T.values,W=Object.keys(T.values).filter((F)=>{return typeof $[$[F]]!=="number"}).map((F)=>$[F]),X=Array.from(new Set(W.map((F)=>typeof F)));return{type:X.length===1?X[0]==="string"?"string":"number":["string","number"],enum:W}}function ZG(){return{not:{}}}function kG(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var mX={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function qG(T,$){if($.target==="openApi3")return yG(T,$);let J=T.options instanceof Map?Array.from(T.options.values()):T.options;if(J.every((W)=>(W._def.typeName in mX)&&(!W._def.checks||!W._def.checks.length))){let W=J.reduce((X,F)=>{let Y=mX[F._def.typeName];return Y&&!X.includes(Y)?[...X,Y]:X},[]);return{type:W.length>1?W:W[0]}}else if(J.every((W)=>W._def.typeName==="ZodLiteral"&&!W.description)){let W=J.reduce((X,F)=>{let Y=typeof F._def.value;switch(Y){case"string":case"number":case"boolean":return[...X,Y];case"bigint":return[...X,"integer"];case"object":if(F._def.value===null)return[...X,"null"];case"symbol":case"undefined":case"function":default:return X}},[]);if(W.length===J.length){let X=W.filter((F,Y,G)=>G.indexOf(F)===Y);return{type:X.length>1?X:X[0],enum:J.reduce((F,Y)=>{return F.includes(Y._def.value)?F:[...F,Y._def.value]},[])}}}else if(J.every((W)=>W._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((W,X)=>[...W,...X._def.values.filter((F)=>!W.includes(F))],[])};return yG(T,$)}var yG=(T,$)=>{let J=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((W,X)=>WT(W._def,{...$,currentPath:[...$.currentPath,"anyOf",`${X}`]})).filter((W)=>!!W&&(!$.strictUnions||typeof W==="object"&&Object.keys(W).length>0));return J.length?{anyOf:J}:void 0};function IG(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:mX[T.innerType._def.typeName],nullable:!0};return{type:[mX[T.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let W=WT(T.innerType._def,{...$,currentPath:[...$.currentPath]});if(W&&"$ref"in W)return{allOf:[W],nullable:!0};return W&&{...W,nullable:!0}}let J=WT(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function jG(T,$){let J={type:"number"};if(!T.checks)return J;for(let W of T.checks)switch(W.kind){case"int":J.type="integer",L6(J,"type",W.message,$);break;case"min":if($.target==="jsonSchema7")if(W.inclusive)ET(J,"minimum",W.value,W.message,$);else ET(J,"exclusiveMinimum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMinimum=!0;ET(J,"minimum",W.value,W.message,$)}break;case"max":if($.target==="jsonSchema7")if(W.inclusive)ET(J,"maximum",W.value,W.message,$);else ET(J,"exclusiveMaximum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMaximum=!0;ET(J,"maximum",W.value,W.message,$)}break;case"multipleOf":ET(J,"multipleOf",W.value,W.message,$);break}return J}function xG(T,$){let J=$.target==="openAi",W={type:"object",properties:{}},X=[],F=T.shape();for(let G in F){let H=F[G];if(H===void 0||H._def===void 0)continue;let A=IS(H);if(A&&J){if(H instanceof DJ)H=H._def.innerType;if(!H.isNullable())H=H.nullable();A=!1}let z=WT(H._def,{...$,currentPath:[...$.currentPath,"properties",G],propertyPath:[...$.currentPath,"properties",G]});if(z===void 0)continue;if(W.properties[G]=z,!A)X.push(G)}if(X.length)W.required=X;let Y=qS(T,$);if(Y!==void 0)W.additionalProperties=Y;return W}function qS(T,$){if(T.catchall._def.typeName!=="ZodNever")return WT(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 IS(T){try{return T.isOptional()}catch{return!0}}var bG=(T,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return WT(T.innerType._def,$);let J=WT(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return J?{anyOf:[{not:{}},J]}:{}};var PG=(T,$)=>{if($.pipeStrategy==="input")return WT(T.in._def,$);else if($.pipeStrategy==="output")return WT(T.out._def,$);let J=WT(T.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),W=WT(T.out._def,{...$,currentPath:[...$.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,W].filter((X)=>X!==void 0)}};function vG(T,$){return WT(T.type._def,$)}function hG(T,$){let W={type:"array",uniqueItems:!0,items:WT(T.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(T.minSize)ET(W,"minItems",T.minSize.value,T.minSize.message,$);if(T.maxSize)ET(W,"maxItems",T.maxSize.value,T.maxSize.message,$);return W}function mG(T,$){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map((J,W)=>WT(J._def,{...$,currentPath:[...$.currentPath,"items",`${W}`]})).reduce((J,W)=>W===void 0?J:[...J,W],[]),additionalItems:WT(T.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map((J,W)=>WT(J._def,{...$,currentPath:[...$.currentPath,"items",`${W}`]})).reduce((J,W)=>W===void 0?J:[...J,W],[])}}function gG(){return{not:{}}}function pG(){return{}}var uG=(T,$)=>{return WT(T.innerType._def,$)};var cG=(T,$,J)=>{switch($){case x.ZodString:return i8(T,J);case x.ZodNumber:return jG(T,J);case x.ZodObject:return xG(T,J);case x.ZodBigInt:return _G(T,J);case x.ZodBoolean:return DG();case x.ZodDate:return y6(T,J);case x.ZodUndefined:return gG();case x.ZodNull:return kG(J);case x.ZodArray:return SG(T,J);case x.ZodUnion:case x.ZodDiscriminatedUnion:return qG(T,J);case x.ZodIntersection:return LG(T,J);case x.ZodTuple:return mG(T,J);case x.ZodRecord:return t8(T,J);case x.ZodLiteral:return BG(T,J);case x.ZodEnum:return RG(T);case x.ZodNativeEnum:return CG(T);case x.ZodNullable:return IG(T,J);case x.ZodOptional:return bG(T,J);case x.ZodMap:return NG(T,J);case x.ZodSet:return hG(T,J);case x.ZodLazy:return()=>T.getter()._def;case x.ZodPromise:return vG(T,J);case x.ZodNaN:case x.ZodNever:return ZG();case x.ZodEffects:return EG(T,J);case x.ZodAny:return UG();case x.ZodUnknown:return pG();case x.ZodDefault:return VG(T,J);case x.ZodBranded:return n8(T,J);case x.ZodReadonly:return uG(T,J);case x.ZodCatch:return KG(T,J);case x.ZodPipeline:return PG(T,J);case x.ZodFunction:case x.ZodVoid:case x.ZodSymbol:return;default:return((W)=>{return})($)}};function WT(T,$,J=!1){let W=$.seen.get(T);if($.override){let G=$.override?.(T,$,W,J);if(G!==XG)return G}if(W&&!J){let G=jS(W,$);if(G!==void 0)return G}let X={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,X);let F=cG(T,T.typeName,$),Y=typeof F==="function"?WT(F(),$):F;if(Y)bS(T,$,Y);if($.postProcess){let G=$.postProcess(Y,T,$);return X.jsonSchema=Y,G}return X.jsonSchema=Y,Y}var jS=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:xS($.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}}},xS=(T,$)=>{let J=0;for(;J<T.length&&J<$.length;J++)if(T[J]!==$[J])break;return[(T.length-J).toString(),...$.slice(J)].join("/")},bS=(T,$,J)=>{if(T.description){if(J.description=T.description,$.markdownDescription)J.markdownDescription=T.description}return J};var oG=(T,$)=>{let J=YG($),W=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((H,[A,z])=>({...H,[A]:WT(z._def,{...J,currentPath:[...J.basePath,J.definitionPath,A]},!0)??{}}),{}):void 0,X=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,F=WT(T._def,X===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,X]},!1)??{},Y=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(Y!==void 0)F.title=Y;let G=X===void 0?W?{...F,[J.definitionPath]:W}:F:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,X].join("/"),[J.definitionPath]:{...W,[X]:F}};if(J.target==="jsonSchema7")G.$schema="http://json-schema.org/draft-07/schema#";else if(J.target==="jsonSchema2019-09"||J.target==="openAi")G.$schema="https://json-schema.org/draft/2019-09/schema#";if(J.target==="openAi"&&(("anyOf"in G)||("oneOf"in G)||("allOf"in G)||("type"in G)&&Array.isArray(G.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return G};var dG=oG;function lG(T,$){return function J({schema:W,fallback:X,toJsonSchema:F=dG}){let Y=F(W);return async function G(H,A=3){let z,M=[];while(M.length<A){z=await T(H,Y,X,M);let w=await W["~standard"].validate(z);if("value"in w)return w.value;$?.warn(`safegen failed to generate well-formed data.
21
21
  `,`Here's what was returned last time:
22
- `,JSON.stringify(w,null,"\t"),`
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 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.1";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
- ${MX(T)}`);if(B==null)throw new d(`missing choices[${M}].tool_calls[${E}].type
32
- ${MX(T)}`);if(U==null)throw new d(`missing choices[${M}].tool_calls[${E}].function.name
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{...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.
22
+ `,JSON.stringify(z,null,"\t"),`
23
+ `,`Here are the issues returned from our validation:
24
+ `,JSON.stringify(w.issues,null,"\t")),M.push({response:z,error:w})}return $?.error(`safegen was unable to generate well-formed data after ${A} failed attempts.`),X}}}function nG(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
25
+ `)}var r8="RFC3986",a8={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},iG="RFC1738";var PS=Array.isArray,lJ=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var j6=1024,tG=(T,$,J,W,X)=>{if(T.length===0)return T;let F=T;if(typeof T==="symbol")F=Symbol.prototype.toString.call(T);else if(typeof T!=="string")F=String(T);if(J==="iso-8859-1")return escape(F).replace(/%u[0-9a-f]{4}/gi,function(G){return"%26%23"+parseInt(G.slice(2),16)+"%3B"});let Y="";for(let G=0;G<F.length;G+=j6){let H=F.length>=j6?F.slice(G,G+j6):F,A=[];for(let z=0;z<H.length;++z){let M=H.charCodeAt(z);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||X===iG&&(M===40||M===41)){A[A.length]=H.charAt(z);continue}if(M<128){A[A.length]=lJ[M];continue}if(M<2048){A[A.length]=lJ[192|M>>6]+lJ[128|M&63];continue}if(M<55296||M>=57344){A[A.length]=lJ[224|M>>12]+lJ[128|M>>6&63]+lJ[128|M&63];continue}z+=1,M=65536+((M&1023)<<10|H.charCodeAt(z)&1023),A[A.length]=lJ[240|M>>18]+lJ[128|M>>12&63]+lJ[128|M>>6&63]+lJ[128|M&63]}Y+=A.join("")}return Y};function rG(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function x6(T,$){if(PS(T)){let J=[];for(let W=0;W<T.length;W+=1)J.push($(T[W]));return J}return $(T)}var vS=Object.prototype.hasOwnProperty,aG={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},nJ=Array.isArray,hS=Array.prototype.push,sG=function(T,$){hS.apply(T,nJ($)?$:[$])},mS=Date.prototype.toISOString,U$={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:tG,encodeValuesOnly:!1,format:r8,formatter:a8[r8],indices:!1,serializeDate(T){return mS.call(T)},skipNulls:!1,strictNullHandling:!1};function gS(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var b6={};function eG(T,$,J,W,X,F,Y,G,H,A,z,M,w,S,_,K,Z,k){let N=T,q=k,V=0,f=!1;while((q=q.get(b6))!==void 0&&!f){let E=q.get(T);if(V+=1,typeof E!=="undefined")if(E===V)throw new RangeError("Cyclic object value");else f=!0;if(typeof q.get(b6)==="undefined")V=0}if(typeof A==="function")N=A($,N);else if(N instanceof Date)N=w?.(N);else if(J==="comma"&&nJ(N))N=x6(N,function(E){if(E instanceof Date)return w?.(E);return E});if(N===null){if(F)return H&&!K?H($,U$.encoder,Z,"key",S):$;N=""}if(gS(N)||rG(N)){if(H){let E=K?$:H($,U$.encoder,Z,"key",S);return[_?.(E)+"="+_?.(H(N,U$.encoder,Z,"value",S))]}return[_?.($)+"="+_?.(String(N))]}let C=[];if(typeof N==="undefined")return C;let B;if(J==="comma"&&nJ(N)){if(K&&H)N=x6(N,H);B=[{value:N.length>0?N.join(",")||null:void 0}]}else if(nJ(A))B=A;else{let E=Object.keys(N);B=z?E.sort(z):E}let m=G?String($).replace(/\./g,"%2E"):String($),$T=W&&nJ(N)&&N.length===1?m+"[]":m;if(X&&nJ(N)&&N.length===0)return $T+"[]";for(let E=0;E<B.length;++E){let XT=B[E],n=typeof XT==="object"&&typeof XT.value!=="undefined"?XT.value:N[XT];if(Y&&n===null)continue;let HT=M&&G?XT.replace(/\./g,"%2E"):XT,yT=nJ(N)?typeof J==="function"?J($T,HT):$T:$T+(M?"."+HT:"["+HT+"]");k.set(T,V);let eT=new WeakMap;eT.set(b6,k),sG(C,eG(n,yT,J,W,X,F,Y,G,J==="comma"&&K&&nJ(N)?null:H,A,z,M,w,S,_,K,Z,eT))}return C}function pS(T=U$){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||U$.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=r8;if(typeof T.format!=="undefined"){if(!vS.call(a8,T.format))throw new TypeError("Unknown format option provided.");J=T.format}let W=a8[J],X=U$.filter;if(typeof T.filter==="function"||nJ(T.filter))X=T.filter;let F;if(T.arrayFormat&&T.arrayFormat in aG)F=T.arrayFormat;else if("indices"in T)F=T.indices?"indices":"repeat";else F=U$.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:U$.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:U$.addQueryPrefix,allowDots:Y,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:U$.allowEmptyArrays,arrayFormat:F,charset:$,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:U$.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?U$.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:U$.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:U$.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:U$.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:U$.encodeValuesOnly,filter:X,format:J,formatter:W,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:U$.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:U$.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:U$.strictNullHandling}}function P6(T,$={}){let J=T,W=pS($),X,F;if(typeof W.filter==="function")F=W.filter,J=F("",J);else if(nJ(W.filter))F=W.filter,X=F;let Y=[];if(typeof J!=="object"||J===null)return"";let G=aG[W.arrayFormat],H=G==="comma"&&W.commaRoundTrip;if(!X)X=Object.keys(J);if(W.sort)X.sort(W.sort);let A=new WeakMap;for(let w=0;w<X.length;++w){let S=X[w];if(W.skipNulls&&J[S]===null)continue;sG(Y,eG(J[S],S,G,H,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,A))}let z=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 z.length>0?M+z:""}var S0="4.93.0";var T3=!1,_0=void 0,v6=void 0,cS=void 0,oS=void 0,dS=void 0,h6=void 0,lS=void 0,s8=void 0,m6=void 0,g6=void 0,p6=void 0,e8=void 0,u6=void 0;function $3(T,$={auto:!1}){if(T3)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(_0)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${_0}'\``);T3=$.auto,_0=T.kind,v6=T.fetch,cS=T.Request,oS=T.Response,dS=T.Headers,h6=T.FormData,lS=T.Blob,s8=T.File,m6=T.ReadableStream,g6=T.getMultipartRequestOptions,p6=T.getDefaultAgent,e8=T.fileFromPath,u6=T.isFsReadStream}class c6{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function J3({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,X,F;try{J=fetch,W=Request,X=Response,F=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:X,Headers:F,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,G)=>({...G,body:new c6(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 iS}from"fs";function W3(){let T=J3();function $(J){return J instanceof iS}return{...T,isFsReadStream:$}}var o6=()=>{if(!_0)$3(W3(),{auto:!0})};o6();class t extends Error{}class Y$ extends t{constructor(T,$,J,W){super(`${Y$.makeMessage(T,$,J)}`);this.status=T,this.headers=W,this.request_id=W?.["x-request-id"],this.error=$;let X=$;this.code=X?.code,this.param=X?.param,this.type=X?.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 D0({message:J,cause:HF($)});let X=$?.error;if(T===400)return new TF(T,X,J,W);if(T===401)return new $F(T,X,J,W);if(T===403)return new JF(T,X,J,W);if(T===404)return new WF(T,X,J,W);if(T===409)return new XF(T,X,J,W);if(T===422)return new FF(T,X,J,W);if(T===429)return new YF(T,X,J,W);if(T>=500)return new GF(T,X,J,W);return new Y$(T,X,J,W)}}class S$ extends Y${constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class D0 extends Y${constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class K0 extends D0{constructor({message:T}={}){super({message:T??"Request timed out."})}}class TF extends Y${}class $F extends Y${}class JF extends Y${}class WF extends Y${}class XF extends Y${}class FF extends Y${}class YF extends Y${}class GF extends Y${}class gX extends t{constructor(){super("Could not parse response content as the length limit was reached")}}class pX extends t{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}var AF=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},V0=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)},FJ;class zW{constructor(){FJ.set(this,void 0),this.buffer=new Uint8Array,AF(this,FJ,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=[],X;while((X=rS(this.buffer,V0(this,FJ,"f")))!=null){if(X.carriage&&V0(this,FJ,"f")==null){AF(this,FJ,X.index,"f");continue}if(V0(this,FJ,"f")!=null&&(X.index!==V0(this,FJ,"f")+1||X.carriage)){W.push(this.decodeText(this.buffer.slice(0,V0(this,FJ,"f")-1))),this.buffer=this.buffer.slice(V0(this,FJ,"f")),AF(this,FJ,null,"f");continue}let F=V0(this,FJ,"f")!==null?X.preceding-1:X.preceding,Y=this.decodeText(this.buffer.slice(0,F));W.push(Y),this.buffer=this.buffer.slice(X.index),AF(this,FJ,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 t(`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 t(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new t("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
26
+ `)}}FJ=new WeakMap;zW.NEWLINE_CHARS=new Set([`
27
+ `,"\r"]);zW.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function rS(T,$){for(let X=$??0;X<T.length;X++){if(T[X]===10)return{preceding:X,index:X+1,carriage:!1};if(T[X]===13)return{preceding:X,index:X+1,carriage:!0}}return null}function X3(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 d6(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 YJ{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 X=!1;try{for await(let F of aS(T,$)){if(X)continue;if(F.data.startsWith("[DONE]")){X=!0;continue}if(F.event===null||F.event.startsWith("response.")||F.event.startsWith("transcript.")){let Y;try{Y=JSON.parse(F.data)}catch(G){throw console.error("Could not parse message into JSON:",F.data),console.error("From chunk:",F.raw),G}if(Y&&Y.error)throw new Y$(void 0,Y.error,void 0,l6(T.headers));yield Y}else{let Y;try{Y=JSON.parse(F.data)}catch(G){throw console.error("Could not parse message into JSON:",F.data),console.error("From chunk:",F.raw),G}if(F.event=="error")throw new Y$(void 0,Y.error,Y.message,void 0);yield{event:F.event,data:Y}}}X=!0}catch(F){if(F instanceof Error&&F.name==="AbortError")return;throw F}finally{if(!X)$.abort()}}return new YJ(W,$)}static fromReadableStream(T,$){let J=!1;async function*W(){let F=new zW,Y=d6(T);for await(let G of Y)for(let H of F.decode(G))yield H;for(let G of F.flush())yield G}async function*X(){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 Y of W()){if(F)continue;if(Y)yield JSON.parse(Y)}F=!0}catch(Y){if(Y instanceof Error&&Y.name==="AbortError")return;throw Y}finally{if(!F)$.abort()}}return new YJ(X,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],J=this.iterator(),W=(X)=>{return{next:()=>{if(X.length===0){let F=J.next();T.push(F),$.push(F)}return X.shift()}}};return[new YJ(()=>W(T),this.controller),new YJ(()=>W($),this.controller)]}toReadableStream(){let T=this,$,J=new TextEncoder;return new m6({async start(){$=T[Symbol.asyncIterator]()},async pull(W){try{let{value:X,done:F}=await $.next();if(F)return W.close();let Y=J.encode(JSON.stringify(X)+`
28
+ `);W.enqueue(Y)}catch(X){W.error(X)}},async cancel(){await $.return?.()}})}}async function*aS(T,$){if(!T.body)throw $.abort(),new t("Attempted to iterate over a response with no body");let J=new F3,W=new zW,X=d6(T.body);for await(let F of sS(X))for(let Y of W.decode(F)){let G=J.decode(Y);if(G)yield G}for(let F of W.flush()){let Y=J.decode(F);if(Y)yield Y}}async function*sS(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,X=new Uint8Array($.length+W.length);X.set($),X.set(W,$.length),$=X;let F;while((F=X3($))!==-1)yield $.slice(0,F),$=$.slice(F)}if($.length>0)yield $}class F3{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 X={event:this.event,data:this.data.join(`
29
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],X}if(this.chunks.push(T),T.startsWith(":"))return null;let[$,J,W]=eS(T,":");if(W.startsWith(" "))W=W.substring(1);if($==="event")this.event=W;else if($==="data")this.data.push(W);return null}}function eS(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}var Y3=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",G3=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&uX(T),uX=(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",T_=(T)=>{return G3(T)||Y3(T)||u6(T)};async function t6(T,$,J){if(T=await T,G3(T))return T;if(Y3(T)){let X=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let F=uX(X)?[await X.arrayBuffer()]:[X];return new s8(F,$,J)}let W=await $_(T);if($||($=W_(T)??"unknown_file"),!J?.type){let X=W[0]?.type;if(typeof X==="string")J={...J,type:X}}return new s8(W,$,J)}async function $_(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(uX(T))$.push(await T.arrayBuffer());else if(X_(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${J_(T)}`);return $}function J_(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function W_(T){return n6(T.name)||n6(T.filename)||n6(T.path)?.split(/[\\/]/).pop()}var n6=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},X_=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",r6=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var KJ=async(T)=>{let $=await H3(T.body);return g6($,T)},H3=async(T)=>{let $=new h6;return await Promise.all(Object.entries(T||{}).map(([J,W])=>i6($,J,W))),$};var i6=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(T_(J)){let W=await t6(J);T.append($,W)}else if(Array.isArray(J))await Promise.all(J.map((W)=>i6(T,$+"[]",W)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([W,X])=>i6(T,`${$}[${W}]`,X)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${J} instead`)};var Y_=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},G_=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)},zF;o6();async function O3(T){let{response:$}=T;if(T.options.stream){if(M1("response",$.status,$.url,$.headers,$.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse($,T.controller);return YJ.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 M1("response",$.status,$.url,$.headers,Y),U3(Y,$)}let F=await $.text();return M1("response",$.status,$.url,$.headers,F),F}function U3(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 wF extends Promise{constructor(T,$=O3){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new wF(this.responsePromise,async($)=>U3(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 s6{constructor({baseURL:T,maxRetries:$=2,timeout:J=600000,httpAgent:W,fetch:X}){this.baseURL=T,this.maxRetries=a6("maxRetries",$),this.timeout=a6("timeout",J),this.httpAgent=W,this.fetch=X??v6}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...M_(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${U_()}`}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 X=W&&uX(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:X}}))}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:X,headers:F={}}=T,Y=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:r6(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,G=this.calculateContentLength(Y),H=this.buildURL(W,X);if("timeout"in T)a6("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let A=T.httpAgent??this.httpAgent??p6(H),z=T.timeout+1000;if(typeof A?.options?.timeout==="number"&&z>(A.options.timeout??0))A.options.timeout=z;if(this.idempotencyHeader&&J!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=T.idempotencyKey}let M=this.buildHeaders({options:T,headers:F,contentLength:G,retryCount:$});return{req:{method:J,...Y&&{body:Y},headers:M,...A&&{agent:A},signal:T.signal??null},url:H,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:W}){let X={};if(J)X["content-length"]=J;let F=this.defaultHeaders(T);if(w3(X,F),w3(X,$),r6(T.body)&&_0!=="node")delete X["content-type"];if(MF(F,"x-stainless-retry-count")===void 0&&MF($,"x-stainless-retry-count")===void 0)X["x-stainless-retry-count"]=String(W);if(MF(F,"x-stainless-timeout")===void 0&&MF($,"x-stainless-timeout")===void 0&&T.timeout)X["x-stainless-timeout"]=String(Math.trunc(T.timeout/1000));return this.validateHeaders(X,$),X}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 Y$.generate(T,$,J,W)}request(T,$=null){return new wF(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,W=J.maxRetries??this.maxRetries;if($==null)$=W;await this.prepareOptions(J);let{req:X,url:F,timeout:Y}=this.buildRequest(J,{retryCount:W-$});if(await this.prepareRequest(X,{url:F,options:J}),M1("request",F,J,X.headers),J.signal?.aborted)throw new S$;let G=new AbortController,H=await this.fetchWithTimeout(F,X,Y,G).catch(HF);if(H instanceof Error){if(J.signal?.aborted)throw new S$;if($)return this.retryRequest(J,$);if(H.name==="AbortError")throw new K0;throw new D0({cause:H})}let A=l6(H.headers);if(!H.ok){if($&&this.shouldRetry(H)){let K=`retrying, ${$} attempts remaining`;return M1(`response (error; ${K})`,H.status,F,A),this.retryRequest(J,$,A)}let z=await H.text().catch((K)=>HF(K).message),M=w_(z),w=M?void 0:z;throw M1(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,H.status,F,A,w),this.makeStatusError(H.status,M,w,A)}return{response:H,options:J,controller:G}}requestAPIList(T,$){let J=this.makeRequest($,null);return new S3(this,J,T)}buildURL(T,$){let J=O_(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),W=this.defaultQuery();if(!_3(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 t(`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:X,...F}=$||{};if(X)X.addEventListener("abort",()=>W.abort());let Y=setTimeout(()=>W.abort(),J),G={signal:W.signal,...F};if(G.method)G.method=G.method.toUpperCase();return this.fetch.call(void 0,T,G).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,X=J?.["retry-after-ms"];if(X){let Y=parseFloat(X);if(!Number.isNaN(Y))W=Y}let F=J?.["retry-after"];if(F&&!W){let Y=parseFloat(F);if(!Number.isNaN(Y))W=Y*1000;else W=Date.parse(F)-Date.now()}if(!(W&&0<=W&&W<60000)){let Y=T.maxRetries??this.maxRetries;W=this.calculateDefaultRetryTimeoutMillis($,Y)}return await w1(W),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let X=$-T,F=Math.min(0.5*Math.pow(2,X),8),Y=1-Math.random()*0.25;return F*Y*1000}getUserAgent(){return`${this.constructor.name}/JS ${S0}`}}class QF{constructor(T,$,J,W){zF.set(this,void 0),Y_(this,zF,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 t("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,X]of J)T.url.searchParams.set(W,X);$.query=void 0,$.path=T.url.toString()}return await G_(this,zF,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(zF=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class S3 extends wF{constructor(T,$,J){super($,async(W)=>new J(T,W.response,await O3(W),W.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var l6=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,J){let W=J.toString();return $[W.toLowerCase()]||$[W]}})},H_={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},MT=(T)=>{return typeof T==="object"&&T!==null&&!_3(T)&&Object.keys(T).every(($)=>D3(H_,$))},A_=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":S0,"X-Stainless-OS":z3(Deno.build.os),"X-Stainless-Arch":A3(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":S0,"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":S0,"X-Stainless-OS":z3(process.platform),"X-Stainless-Arch":A3(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=z_();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":S0,"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":S0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function z_(){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 X=W[1]||0,F=W[2]||0,Y=W[3]||0;return{browser:$,version:`${X}.${F}.${Y}`}}}return null}var A3=(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"},z3=(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"},M3,M_=()=>{return M3??(M3=A_())},w_=(T)=>{try{return JSON.parse(T)}catch($){return}},Q_=/^[a-z][a-z0-9+.-]*:/i,O_=(T)=>{return Q_.test(T)},w1=(T)=>new Promise(($)=>setTimeout($,T)),a6=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new t(`${T} must be an integer`);if($<0)throw new t(`${T} must be a positive integer`);return $},HF=(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 cX=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function _3(T){if(!T)return!0;for(let $ in T)return!1;return!0}function D3(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function w3(T,$){for(let J in $){if(!D3($,J))continue;let W=J.toLowerCase();if(!W)continue;let X=$[J];if(X===null)delete T[W];else if(X!==void 0)T[W]=X}}var Q3=new Set(["authorization","api-key"]);function M1(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let J=$.map((W)=>{if(!W)return W;if(W.headers){let F={...W,headers:{...W.headers}};for(let Y in W.headers)if(Q3.has(Y.toLowerCase()))F.headers[Y]="REDACTED";return F}let X=null;for(let F in W)if(Q3.has(F.toLowerCase()))X??(X={...W}),X[F]="REDACTED";return X??W});console.log(`OpenAI:DEBUG:${T}`,...J)}}var U_=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},K3=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},S_=(T)=>{return typeof T?.get==="function"};var MF=(T,$)=>{let J=$.toLowerCase();if(S_(T)){let W=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(X,F,Y)=>F+Y.toUpperCase());for(let X of[$,J,$.toUpperCase(),W]){let F=T.get(X);if(F)return F}}for(let[W,X]of Object.entries(T))if(W.toLowerCase()===J){if(Array.isArray(X)){if(X.length<=1)return X[0];return console.warn(`Received ${X.length} entries for the ${$} header, using the first entry.`),X[0]}return X}return};var V3=(T)=>{if(typeof Buffer!=="undefined"){let $=Buffer.from(T,"base64");return Array.from(new Float32Array($.buffer,$.byteOffset,$.length/Float32Array.BYTES_PER_ELEMENT))}else{let $=atob(T),J=$.length,W=new Uint8Array(J);for(let X=0;X<J;X++)W[X]=$.charCodeAt(X);return Array.from(new Float32Array(W.buffer))}};function oX(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class Q1 extends QF{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 LT extends QF{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 P{constructor(T){this._client=T}}class dX extends P{list(T,$={},J){if(MT($))return this.list(T,{},$);return this._client.getAPIList(`/chat/completions/${T}/messages`,e6,{query:$,...J})}}class E0 extends P{constructor(){super(...arguments);this.messages=new dX(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(MT(T))return this.list({},T);return this._client.getAPIList("/chat/completions",R0,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class R0 extends LT{}class e6 extends LT{}E0.ChatCompletionsPage=R0;E0.Messages=dX;class u1 extends P{constructor(){super(...arguments);this.completions=new E0(this._client)}}u1.Completions=E0;u1.ChatCompletionsPage=R0;class lX extends P{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class nX extends P{create(T,$){return this._client.post("/audio/transcriptions",KJ({body:T,...$,stream:T.stream??!1,__metadata:{model:T.model}}))}}class iX extends P{create(T,$){return this._client.post("/audio/translations",KJ({body:T,...$,__metadata:{model:T.model}}))}}class O1 extends P{constructor(){super(...arguments);this.transcriptions=new nX(this._client),this.translations=new iX(this._client),this.speech=new lX(this._client)}}O1.Transcriptions=nX;O1.Translations=iX;O1.Speech=lX;class L0 extends P{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(MT(T))return this.list({},T);return this._client.getAPIList("/batches",MW,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class MW extends LT{}L0.BatchesPage=MW;class wW extends P{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(MT(T))return this.list({},T);return this._client.getAPIList("/assistants",tX,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class tX extends LT{}wW.AssistantsPage=tX;function TY(T){return typeof T.parse==="function"}var c1=(T)=>{return T?.role==="assistant"},$Y=(T)=>{return T?.role==="function"},JY=(T)=>{return T?.role==="tool"};var IJ=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},aT=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)},WY,OF,UF,rX,aX,SF,sX,U1,eX,_F,DF,QW,E3;class B0{constructor(){WY.add(this),this.controller=new AbortController,OF.set(this,void 0),UF.set(this,()=>{}),rX.set(this,()=>{}),aX.set(this,void 0),SF.set(this,()=>{}),sX.set(this,()=>{}),U1.set(this,{}),eX.set(this,!1),_F.set(this,!1),DF.set(this,!1),QW.set(this,!1),IJ(this,OF,new Promise((T,$)=>{IJ(this,UF,T,"f"),IJ(this,rX,$,"f")}),"f"),IJ(this,aX,new Promise((T,$)=>{IJ(this,SF,T,"f"),IJ(this,sX,$,"f")}),"f"),aT(this,OF,"f").catch(()=>{}),aT(this,aX,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},aT(this,WY,"m",E3).bind(this))},0)}_connected(){if(this.ended)return;aT(this,UF,"f").call(this),this._emit("connect")}get ended(){return aT(this,eX,"f")}get errored(){return aT(this,_F,"f")}get aborted(){return aT(this,DF,"f")}abort(){this.controller.abort()}on(T,$){return(aT(this,U1,"f")[T]||(aT(this,U1,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=aT(this,U1,"f")[T];if(!J)return this;let W=J.findIndex((X)=>X.listener===$);if(W>=0)J.splice(W,1);return this}once(T,$){return(aT(this,U1,"f")[T]||(aT(this,U1,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(IJ(this,QW,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){IJ(this,QW,!0,"f"),await aT(this,aX,"f")}_emit(T,...$){if(aT(this,eX,"f"))return;if(T==="end")IJ(this,eX,!0,"f"),aT(this,SF,"f").call(this);let J=aT(this,U1,"f")[T];if(J)aT(this,U1,"f")[T]=J.filter((W)=>!W.once),J.forEach(({listener:W})=>W(...$));if(T==="abort"){let W=$[0];if(!aT(this,QW,"f")&&!J?.length)Promise.reject(W);aT(this,rX,"f").call(this,W),aT(this,sX,"f").call(this,W),this._emit("end");return}if(T==="error"){let W=$[0];if(!aT(this,QW,"f")&&!J?.length)Promise.reject(W);aT(this,rX,"f").call(this,W),aT(this,sX,"f").call(this,W),this._emit("end")}}_emitFinal(){}}OF=new WeakMap,UF=new WeakMap,rX=new WeakMap,aX=new WeakMap,SF=new WeakMap,sX=new WeakMap,U1=new WeakMap,eX=new WeakMap,_F=new WeakMap,DF=new WeakMap,QW=new WeakMap,WY=new WeakSet,E3=function T($){if(IJ(this,_F,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new S$;if($ instanceof S$)return IJ(this,DF,!0,"f"),this._emit("abort",$);if($ instanceof t)return this._emit("error",$);if($ instanceof Error){let J=new t($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new t(String($)))};function T2(T){return T?.$brand==="auto-parseable-response-format"}function f0(T){return T?.$brand==="auto-parseable-tool"}function R3(T,$){if(!$||!XY($))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 $2(T,$)}function $2(T,$){let J=T.choices.map((W)=>{if(W.finish_reason==="length")throw new gX;if(W.finish_reason==="content_filter")throw new pX;return{...W,message:{...W.message,...W.message.tool_calls?{tool_calls:W.message.tool_calls?.map((X)=>B_($,X))??void 0}:void 0,parsed:W.message.content&&!W.message.refusal?L_($,W.message.content):null}}});return{...T,choices:J}}function L_(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 B_(T,$){let J=T.tools?.find((W)=>W.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:f0(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function L3(T,$){if(!T)return!1;let J=T.tools?.find((W)=>W.function?.name===$.function.name);return f0(J)||J?.function.strict||!1}function XY(T){if(T2(T.response_format))return!0;return T.tools?.some(($)=>f0($)||$.type==="function"&&$.function.strict===!0)??!1}function B3(T){for(let $ of T??[]){if($.type!=="function")throw new t(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new t(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var t$=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)},b$,FY,KF,YY,GY,HY,N3,AY,f3=10;class J2 extends B0{constructor(){super(...arguments);b$.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),($Y(T)||JY(T))&&T.content)this._emit("functionCallResult",T.content);else if(c1(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(c1(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 t("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),t$(this,b$,"m",FY).call(this)}async finalMessage(){return await this.done(),t$(this,b$,"m",KF).call(this)}async finalFunctionCall(){return await this.done(),t$(this,b$,"m",YY).call(this)}async finalFunctionCallResult(){return await this.done(),t$(this,b$,"m",GY).call(this)}async totalUsage(){return await this.done(),t$(this,b$,"m",HY).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=t$(this,b$,"m",KF).call(this);if($)this._emit("finalMessage",$);let J=t$(this,b$,"m",FY).call(this);if(J)this._emit("finalContent",J);let W=t$(this,b$,"m",YY).call(this);if(W)this._emit("finalFunctionCall",W);let X=t$(this,b$,"m",GY).call(this);if(X!=null)this._emit("finalFunctionCallResult",X);if(this._chatCompletions.some((F)=>F.usage))this._emit("totalUsage",t$(this,b$,"m",HY).call(this))}async _createChatCompletion(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}t$(this,b$,"m",N3).call(this,$);let X=await T.chat.completions.create({...$,stream:!1},{...J,signal:this.controller.signal});return this._connected(),this._addChatCompletion($2(X,$))}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:X="auto",stream:F,...Y}=$,G=typeof X!=="string"&&X?.name,{maxChatCompletions:H=f3}=J||{},A={};for(let M of $.functions)A[M.name||M.function.name]=M;let z=$.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<H;++M){let S=(await this._createChatCompletion(T,{...Y,function_call:X,functions:z,messages:[...this.messages]},J)).choices[0]?.message;if(!S)throw new t("missing message in ChatCompletion response");if(!S.function_call)return;let{name:_,arguments:K}=S.function_call,Z=A[_];if(!Z){let V=`Invalid function_call: ${JSON.stringify(_)}. Available options are: ${z.map((f)=>JSON.stringify(f.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:_,content:V});continue}else if(G&&G!==_){let V=`Invalid function_call: ${JSON.stringify(_)}. ${JSON.stringify(G)} requested. Please try again`;this._addMessage({role:"function",name:_,content:V});continue}let k;try{k=TY(Z)?await Z.parse(K):K}catch(V){this._addMessage({role:"function",name:_,content:V instanceof Error?V.message:String(V)});continue}let N=await Z.function(k,this),q=t$(this,b$,"m",AY).call(this,N);if(this._addMessage({role:"function",name:_,content:q}),G)return}}async _runTools(T,$,J){let{tool_choice:X="auto",stream:F,...Y}=$,G=typeof X!=="string"&&X?.function?.name,{maxChatCompletions:H=f3}=J||{},A=$.tools.map((w)=>{if(f0(w)){if(!w.$callback)throw new t("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:w.$callback,name:w.function.name,description:w.function.description||"",parameters:w.function.parameters,parse:w.$parseRaw,strict:!0}}}return w}),z={};for(let w of A)if(w.type==="function")z[w.function.name||w.function.function.name]=w.function;let M="tools"in $?A.map((w)=>w.type==="function"?{type:"function",function:{name:w.function.name||w.function.function.name,parameters:w.function.parameters,description:w.function.description,strict:w.function.strict}}:w):void 0;for(let w of $.messages)this._addMessage(w,!1);for(let w=0;w<H;++w){let _=(await this._createChatCompletion(T,{...Y,tool_choice:X,tools:M,messages:[...this.messages]},J)).choices[0]?.message;if(!_)throw new t("missing message in ChatCompletion response");if(!_.tool_calls?.length)return;for(let K of _.tool_calls){if(K.type!=="function")continue;let Z=K.id,{name:k,arguments:N}=K.function,q=z[k];if(!q){let B=`Invalid tool_call: ${JSON.stringify(k)}. Available options are: ${Object.keys(z).map((m)=>JSON.stringify(m)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:Z,content:B});continue}else if(G&&G!==k){let B=`Invalid tool_call: ${JSON.stringify(k)}. ${JSON.stringify(G)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:Z,content:B});continue}let V;try{V=TY(q)?await q.parse(N):N}catch(B){let m=B instanceof Error?B.message:String(B);this._addMessage({role:"tool",tool_call_id:Z,content:m});continue}let f=await q.function(V,this),C=t$(this,b$,"m",AY).call(this,f);if(this._addMessage({role:"tool",tool_call_id:Z,content:C}),G)return}}return}}b$=new WeakSet,FY=function T(){return t$(this,b$,"m",KF).call(this).content??null},KF=function T(){let $=this.messages.length;while($-- >0){let J=this.messages[$];if(c1(J)){let{function_call:W,...X}=J,F={...X,content:J.content??null,refusal:J.refusal??null};if(W)F.function_call=W;return F}}throw new t("stream ended without producing a ChatCompletionMessage with role=assistant")},YY=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(c1(J)&&J?.function_call)return J.function_call;if(c1(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},GY=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if($Y(J)&&J.content!=null)return J.content;if(JY(J)&&J.content!=null&&typeof J.content==="string"&&this.messages.some((W)=>W.role==="assistant"&&W.tool_calls?.some((X)=>X.type==="function"&&X.id===J.tool_call_id)))return J.content}return},HY=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 $},N3=function T($){if($.n!=null&&$.n>1)throw new t("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},AY=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class OW extends J2{static runFunctions(T,$,J){let W=new OW,X={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return W._run(()=>W._runFunctions(T,$,X)),W}static runTools(T,$,J){let W=new OW,X={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return W._run(()=>W._runTools(T,$,X)),W}_addMessage(T,$=!0){if(super._addMessage(T,$),c1(T)&&T.content)this._emit("content",T.content)}}var L$={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 C3 extends Error{}class Z3 extends Error{}function f_(T,$=L$.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return N_(T.trim(),$)}var N_=(T,$)=>{let J=T.length,W=0,X=(w)=>{throw new C3(`${w} at position ${W}`)},F=(w)=>{throw new Z3(`${w} at position ${W}`)},Y=()=>{if(M(),W>=J)X("Unexpected end of input");if(T[W]==='"')return G();if(T[W]==="{")return H();if(T[W]==="[")return A();if(T.substring(W,W+4)==="null"||L$.NULL&$&&J-W<4&&"null".startsWith(T.substring(W)))return W+=4,null;if(T.substring(W,W+4)==="true"||L$.BOOL&$&&J-W<4&&"true".startsWith(T.substring(W)))return W+=4,!0;if(T.substring(W,W+5)==="false"||L$.BOOL&$&&J-W<5&&"false".startsWith(T.substring(W)))return W+=5,!1;if(T.substring(W,W+8)==="Infinity"||L$.INFINITY&$&&J-W<8&&"Infinity".startsWith(T.substring(W)))return W+=8,1/0;if(T.substring(W,W+9)==="-Infinity"||L$.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"||L$.NAN&$&&J-W<3&&"NaN".startsWith(T.substring(W)))return W+=3,NaN;return z()},G=()=>{let w=W,S=!1;W++;while(W<J&&(T[W]!=='"'||S&&T[W-1]==="\\"))S=T[W]==="\\"?!S:!1,W++;if(T.charAt(W)=='"')try{return JSON.parse(T.substring(w,++W-Number(S)))}catch(_){F(String(_))}else if(L$.STR&$)try{return JSON.parse(T.substring(w,W-Number(S))+'"')}catch(_){return JSON.parse(T.substring(w,T.lastIndexOf("\\"))+'"')}X("Unterminated string literal")},H=()=>{W++,M();let w={};try{while(T[W]!=="}"){if(M(),W>=J&&L$.OBJ&$)return w;let S=G();M(),W++;try{let _=Y();Object.defineProperty(w,S,{value:_,writable:!0,enumerable:!0,configurable:!0})}catch(_){if(L$.OBJ&$)return w;else throw _}if(M(),T[W]===",")W++}}catch(S){if(L$.OBJ&$)return w;else X("Expected '}' at end of object")}return W++,w},A=()=>{W++;let w=[];try{while(T[W]!=="]")if(w.push(Y()),M(),T[W]===",")W++}catch(S){if(L$.ARR&$)return w;X("Expected ']' at end of array")}return W++,w},z=()=>{if(W===0){if(T==="-"&&L$.NUM&$)X("Not sure what '-' is");try{return JSON.parse(T)}catch(S){if(L$.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(_){}F(String(S))}}let w=W;if(T[W]==="-")W++;while(T[W]&&!",]}".includes(T[W]))W++;if(W==J&&!(L$.NUM&$))X("Unterminated number literal");try{return JSON.parse(T.substring(w,W))}catch(S){if(T.substring(w,W)==="-"&&L$.NUM&$)X("Not sure what '-' is");try{return JSON.parse(T.substring(w,T.lastIndexOf("e")))}catch(_){F(String(_))}}},M=()=>{while(W<J&&`
30
+ \r `.includes(T[W]))W++};return Y()},zY=(T)=>f_(T,L$.ALL^L$.NUM);var UW=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},xT=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)},_$,S1,SW,o1,MY,VF,wY,QY,OY,EF,UY,k3;class N0 extends J2{constructor(T){super();_$.add(this),S1.set(this,void 0),SW.set(this,void 0),o1.set(this,void 0),UW(this,S1,T,"f"),UW(this,SW,[],"f")}get currentChatCompletionSnapshot(){return xT(this,o1,"f")}static fromReadableStream(T){let $=new N0(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,J){let W=new N0($);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())}xT(this,_$,"m",MY).call(this);let X=await T.chat.completions.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let F of X)xT(this,_$,"m",wY).call(this,F);if(X.controller.signal?.aborted)throw new S$;return this._addChatCompletion(xT(this,_$,"m",EF).call(this))}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}xT(this,_$,"m",MY).call(this),this._connected();let W=YJ.fromReadableStream(T,this.controller),X;for await(let F of W){if(X&&X!==F.id)this._addChatCompletion(xT(this,_$,"m",EF).call(this));xT(this,_$,"m",wY).call(this,F),X=F.id}if(W.controller.signal?.aborted)throw new S$;return this._addChatCompletion(xT(this,_$,"m",EF).call(this))}[(S1=new WeakMap,SW=new WeakMap,o1=new WeakMap,_$=new WeakSet,MY=function T(){if(this.ended)return;UW(this,o1,void 0,"f")},VF=function T($){let J=xT(this,SW,"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},xT(this,SW,"f")[$.index]=J,J},wY=function T($){if(this.ended)return;let J=xT(this,_$,"m",k3).call(this,$);this._emit("chunk",$,J);for(let W of $.choices){let X=J.choices[W.index];if(W.delta.content!=null&&X.message?.role==="assistant"&&X.message?.content)this._emit("content",W.delta.content,X.message.content),this._emit("content.delta",{delta:W.delta.content,snapshot:X.message.content,parsed:X.message.parsed});if(W.delta.refusal!=null&&X.message?.role==="assistant"&&X.message?.refusal)this._emit("refusal.delta",{delta:W.delta.refusal,snapshot:X.message.refusal});if(W.logprobs?.content!=null&&X.message?.role==="assistant")this._emit("logprobs.content.delta",{content:W.logprobs?.content,snapshot:X.logprobs?.content??[]});if(W.logprobs?.refusal!=null&&X.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:W.logprobs?.refusal,snapshot:X.logprobs?.refusal??[]});let F=xT(this,_$,"m",VF).call(this,X);if(X.finish_reason){if(xT(this,_$,"m",OY).call(this,X),F.current_tool_call_index!=null)xT(this,_$,"m",QY).call(this,X,F.current_tool_call_index)}for(let Y of W.delta.tool_calls??[]){if(F.current_tool_call_index!==Y.index){if(xT(this,_$,"m",OY).call(this,X),F.current_tool_call_index!=null)xT(this,_$,"m",QY).call(this,X,F.current_tool_call_index)}F.current_tool_call_index=Y.index}for(let Y of W.delta.tool_calls??[]){let G=X.message.tool_calls?.[Y.index];if(!G?.type)continue;if(G?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:G.function?.name,index:Y.index,arguments:G.function.arguments,parsed_arguments:G.function.parsed_arguments,arguments_delta:Y.function?.arguments??""});else q3(G?.type)}}},QY=function T($,J){if(xT(this,_$,"m",VF).call(this,$).done_tool_calls.has(J))return;let X=$.message.tool_calls?.[J];if(!X)throw new Error("no tool call snapshot");if(!X.type)throw new Error("tool call snapshot missing `type`");if(X.type==="function"){let F=xT(this,S1,"f")?.tools?.find((Y)=>Y.type==="function"&&Y.function.name===X.function.name);this._emit("tool_calls.function.arguments.done",{name:X.function.name,index:J,arguments:X.function.arguments,parsed_arguments:f0(F)?F.$parseRaw(X.function.arguments):F?.function.strict?JSON.parse(X.function.arguments):null})}else q3(X.type)},OY=function T($){let J=xT(this,_$,"m",VF).call(this,$);if($.message.content&&!J.content_done){J.content_done=!0;let W=xT(this,_$,"m",UY).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})},EF=function T(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let $=xT(this,o1,"f");if(!$)throw new t("request ended without sending any chunks");return UW(this,o1,void 0,"f"),UW(this,SW,[],"f"),C_($,xT(this,S1,"f"))},UY=function T(){let $=xT(this,S1,"f")?.response_format;if(T2($))return $;return null},k3=function T($){var J,W,X,F;let Y=xT(this,o1,"f"),{choices:G,...H}=$;if(!Y)Y=UW(this,o1,{...H,choices:[]},"f");else Object.assign(Y,H);for(let{delta:A,finish_reason:z,index:M,logprobs:w=null,...S}of $.choices){let _=Y.choices[M];if(!_)_=Y.choices[M]={finish_reason:z,index:M,message:{},logprobs:w,...S};if(w)if(!_.logprobs)_.logprobs=Object.assign({},w);else{let{content:f,refusal:C,...B}=w;if(y3(B),Object.assign(_.logprobs,B),f)(J=_.logprobs).content??(J.content=[]),_.logprobs.content.push(...f);if(C)(W=_.logprobs).refusal??(W.refusal=[]),_.logprobs.refusal.push(...C)}if(z){if(_.finish_reason=z,xT(this,S1,"f")&&XY(xT(this,S1,"f"))){if(z==="length")throw new gX;if(z==="content_filter")throw new pX}}if(Object.assign(_,S),!A)continue;let{content:K,refusal:Z,function_call:k,role:N,tool_calls:q,...V}=A;if(y3(V),Object.assign(_.message,V),Z)_.message.refusal=(_.message.refusal||"")+Z;if(N)_.message.role=N;if(k)if(!_.message.function_call)_.message.function_call=k;else{if(k.name)_.message.function_call.name=k.name;if(k.arguments)(X=_.message.function_call).arguments??(X.arguments=""),_.message.function_call.arguments+=k.arguments}if(K){if(_.message.content=(_.message.content||"")+K,!_.message.refusal&&xT(this,_$,"m",UY).call(this))_.message.parsed=zY(_.message.content)}if(q){if(!_.message.tool_calls)_.message.tool_calls=[];for(let{index:f,id:C,type:B,function:m,...$T}of q){let E=(F=_.message.tool_calls)[f]??(F[f]={});if(Object.assign(E,$T),C)E.id=C;if(B)E.type=B;if(m)E.function??(E.function={name:m.name??"",arguments:""});if(m?.name)E.function.name=m.name;if(m?.arguments){if(E.function.arguments+=m.arguments,L3(xT(this,S1,"f"),E))E.function.parsed_arguments=zY(E.function.arguments)}}}}return Y},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("chunk",(W)=>{let X=$.shift();if(X)X.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 X of $)X.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let X of $)X.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((X,F)=>$.push({resolve:X,reject:F})).then((X)=>X?{value:X,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 YJ(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function C_(T,$){let{id:J,choices:W,created:X,model:F,system_fingerprint:Y,...G}=T,H={...G,id:J,choices:W.map(({message:A,finish_reason:z,index:M,logprobs:w,...S})=>{if(!z)throw new t(`missing finish_reason for choice ${M}`);let{content:_=null,function_call:K,tool_calls:Z,...k}=A,N=A.role;if(!N)throw new t(`missing role for choice ${M}`);if(K){let{arguments:q,name:V}=K;if(q==null)throw new t(`missing function_call.arguments for choice ${M}`);if(!V)throw new t(`missing function_call.name for choice ${M}`);return{...S,message:{content:_,function_call:{arguments:q,name:V},role:N,refusal:A.refusal??null},finish_reason:z,index:M,logprobs:w}}if(Z)return{...S,index:M,finish_reason:z,logprobs:w,message:{...k,role:N,content:_,refusal:A.refusal??null,tool_calls:Z.map((q,V)=>{let{function:f,type:C,id:B,...m}=q,{arguments:$T,name:E,...XT}=f||{};if(B==null)throw new t(`missing choices[${M}].tool_calls[${V}].id
31
+ ${RF(T)}`);if(C==null)throw new t(`missing choices[${M}].tool_calls[${V}].type
32
+ ${RF(T)}`);if(E==null)throw new t(`missing choices[${M}].tool_calls[${V}].function.name
33
+ ${RF(T)}`);if($T==null)throw new t(`missing choices[${M}].tool_calls[${V}].function.arguments
34
+ ${RF(T)}`);return{...m,id:B,type:C,function:{...XT,name:E,arguments:$T}}})}};return{...S,message:{...k,content:_,role:N,refusal:A.refusal??null},finish_reason:z,index:M,logprobs:w}}),created:X,model:F,object:"chat.completion",...Y?{system_fingerprint:Y}:{}};return R3(H,$)}function RF(T){return JSON.stringify(T)}function y3(T){return}function q3(T){}class C0 extends N0{static fromReadableStream(T){let $=new C0(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,J){let W=new C0(null),X={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return W._run(()=>W._runFunctions(T,$,X)),W}static runTools(T,$,J){let W=new C0($),X={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return W._run(()=>W._runTools(T,$,X)),W}}class LF extends P{parse(T,$){return B3(T.tools),this._client.chat.completions.create(T,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((J)=>$2(J,T))}runFunctions(T,$){if(T.stream)return C0.runFunctions(this._client,T,$);return OW.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return C0.runTools(this._client,T,$);return OW.runTools(this._client,T,$)}stream(T,$){return N0.createChatCompletion(this._client,T,$)}}class W2 extends P{constructor(){super(...arguments);this.completions=new LF(this._client)}}(function(T){T.Completions=LF})(W2||(W2={}));class X2 extends P{create(T,$){return this._client.post("/realtime/sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class F2 extends P{create(T,$){return this._client.post("/realtime/transcription_sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class Z0 extends P{constructor(){super(...arguments);this.sessions=new X2(this._client),this.transcriptionSessions=new F2(this._client)}}Z0.Sessions=X2;Z0.TranscriptionSessions=F2;var r=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)},GJ=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},C$,SY,iJ,BF,jJ,y0,_W,k0,CF,HJ,fF,NF,H2,Y2,G2,I3,j3,x3,b3,P3,v3,h3;class AJ extends B0{constructor(){super(...arguments);C$.add(this),SY.set(this,[]),iJ.set(this,{}),BF.set(this,{}),jJ.set(this,void 0),y0.set(this,void 0),_W.set(this,void 0),k0.set(this,void 0),CF.set(this,void 0),HJ.set(this,void 0),fF.set(this,void 0),NF.set(this,void 0),H2.set(this,void 0)}[(SY=new WeakMap,iJ=new WeakMap,BF=new WeakMap,jJ=new WeakMap,y0=new WeakMap,_W=new WeakMap,k0=new WeakMap,CF=new WeakMap,HJ=new WeakMap,fF=new WeakMap,NF=new WeakMap,H2=new WeakMap,C$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(W)=>{let X=$.shift();if(X)X.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 X of $)X.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let X of $)X.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((X,F)=>$.push({resolve:X,reject:F})).then((X)=>X?{value:X,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 AJ;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=YJ.fromReadableStream(T,this.controller);for await(let X of W)r(this,C$,"m",Y2).call(this,X);if(W.controller.signal?.aborted)throw new S$;return this._addRun(r(this,C$,"m",G2).call(this))}toReadableStream(){return new YJ(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,J,W,X){let F=new AJ;return F._run(()=>F._runToolAssistantStream(T,$,J,W,{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),F}async _createToolAssistantStream(T,$,J,W,X){let F=X?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let Y={...W,stream:!0},G=await T.submitToolOutputs($,J,Y,{...X,signal:this.controller.signal});this._connected();for await(let H of G)r(this,C$,"m",Y2).call(this,H);if(G.controller.signal?.aborted)throw new S$;return this._addRun(r(this,C$,"m",G2).call(this))}static createThreadAssistantStream(T,$,J){let W=new AJ;return W._run(()=>W._threadAssistantStream(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}static createAssistantStream(T,$,J,W){let X=new AJ;return X._run(()=>X._runAssistantStream(T,$,J,{...W,headers:{...W?.headers,"X-Stainless-Helper-Method":"stream"}})),X}currentEvent(){return r(this,fF,"f")}currentRun(){return r(this,NF,"f")}currentMessageSnapshot(){return r(this,jJ,"f")}currentRunStepSnapshot(){return r(this,H2,"f")}async finalRunSteps(){return await this.done(),Object.values(r(this,iJ,"f"))}async finalMessages(){return await this.done(),Object.values(r(this,BF,"f"))}async finalRun(){if(await this.done(),!r(this,y0,"f"))throw Error("Final run was not received.");return r(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 X={...$,stream:!0},F=await T.createAndRun(X,{...J,signal:this.controller.signal});this._connected();for await(let Y of F)r(this,C$,"m",Y2).call(this,Y);if(F.controller.signal?.aborted)throw new S$;return this._addRun(r(this,C$,"m",G2).call(this))}async _createAssistantStream(T,$,J,W){let X=W?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}let F={...J,stream:!0},Y=await T.create($,F,{...W,signal:this.controller.signal});this._connected();for await(let G of Y)r(this,C$,"m",Y2).call(this,G);if(Y.controller.signal?.aborted)throw new S$;return this._addRun(r(this,C$,"m",G2).call(this))}static accumulateDelta(T,$){for(let[J,W]of Object.entries($)){if(!T.hasOwnProperty(J)){T[J]=W;continue}let X=T[J];if(X===null||X===void 0){T[J]=W;continue}if(J==="index"||J==="type"){T[J]=W;continue}if(typeof X==="string"&&typeof W==="string")X+=W;else if(typeof X==="number"&&typeof W==="number")X+=W;else if(oX(X)&&oX(W))X=this.accumulateDelta(X,W);else if(Array.isArray(X)&&Array.isArray(W)){if(X.every((F)=>typeof F==="string"||typeof F==="number")){X.push(...W);continue}for(let F of W){if(!oX(F))throw new Error(`Expected array delta entry to be an object but got: ${F}`);let Y=F.index;if(Y==null)throw console.error(F),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 G=X[Y];if(G==null)X.push(F);else X[Y]=this.accumulateDelta(G,F)}continue}else throw Error(`Unhandled record type: ${J}, deltaValue: ${W}, accValue: ${X}`);T[J]=X}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,X){return await this._createToolAssistantStream(J,T,$,W,X)}}Y2=function T($){if(this.ended)return;switch(GJ(this,fF,$,"f"),r(this,C$,"m",x3).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":r(this,C$,"m",h3).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":r(this,C$,"m",j3).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":r(this,C$,"m",I3).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:j_($)}},G2=function T(){if(this.ended)throw new t("stream has ended, this shouldn't happen");if(!r(this,y0,"f"))throw Error("Final run has not been received");return r(this,y0,"f")},I3=function T($){let[J,W]=r(this,C$,"m",P3).call(this,$,r(this,jJ,"f"));GJ(this,jJ,J,"f"),r(this,BF,"f")[J.id]=J;for(let X of W){let F=J.content[X.index];if(F?.type=="text")this._emit("textCreated",F.text)}switch($.event){case"thread.message.created":this._emit("messageCreated",$.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",$.data.delta,J),$.data.delta.content)for(let X of $.data.delta.content){if(X.type=="text"&&X.text){let F=X.text,Y=J.content[X.index];if(Y&&Y.type=="text")this._emit("textDelta",F,Y.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(X.index!=r(this,_W,"f")){if(r(this,k0,"f"))switch(r(this,k0,"f").type){case"text":this._emit("textDone",r(this,k0,"f").text,r(this,jJ,"f"));break;case"image_file":this._emit("imageFileDone",r(this,k0,"f").image_file,r(this,jJ,"f"));break}GJ(this,_W,X.index,"f")}GJ(this,k0,J.content[X.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(r(this,_W,"f")!==void 0){let X=$.data.content[r(this,_W,"f")];if(X)switch(X.type){case"image_file":this._emit("imageFileDone",X.image_file,r(this,jJ,"f"));break;case"text":this._emit("textDone",X.text,r(this,jJ,"f"));break}}if(r(this,jJ,"f"))this._emit("messageDone",$.data);GJ(this,jJ,void 0,"f")}},j3=function T($){let J=r(this,C$,"m",b3).call(this,$);switch(GJ(this,H2,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 F of W.step_details.tool_calls)if(F.index==r(this,CF,"f"))this._emit("toolCallDelta",F,J.step_details.tool_calls[F.index]);else{if(r(this,HJ,"f"))this._emit("toolCallDone",r(this,HJ,"f"));if(GJ(this,CF,F.index,"f"),GJ(this,HJ,J.step_details.tool_calls[F.index],"f"),r(this,HJ,"f"))this._emit("toolCallCreated",r(this,HJ,"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(GJ(this,H2,void 0,"f"),$.data.step_details.type=="tool_calls"){if(r(this,HJ,"f"))this._emit("toolCallDone",r(this,HJ,"f")),GJ(this,HJ,void 0,"f")}this._emit("runStepDone",$.data,J);break;case"thread.run.step.in_progress":break}},x3=function T($){r(this,SY,"f").push($),this._emit("event",$)},b3=function T($){switch($.event){case"thread.run.step.created":return r(this,iJ,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let J=r(this,iJ,"f")[$.data.id];if(!J)throw Error("Received a RunStepDelta before creation of a snapshot");let W=$.data;if(W.delta){let X=AJ.accumulateDelta(J,W.delta);r(this,iJ,"f")[$.data.id]=X}return r(this,iJ,"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":r(this,iJ,"f")[$.data.id]=$.data;break}if(r(this,iJ,"f")[$.data.id])return r(this,iJ,"f")[$.data.id];throw new Error("No snapshot available")},P3=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 X=$.data;if(X.delta.content)for(let F of X.delta.content)if(F.index in J.content){let Y=J.content[F.index];J.content[F.index]=r(this,C$,"m",v3).call(this,F,Y)}else J.content[F.index]=F,W.push(F);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")},v3=function T($,J){return AJ.accumulateDelta(J,$)},h3=function T($){switch(GJ(this,NF,$.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(GJ(this,y0,$.data,"f"),r(this,HJ,"f"))this._emit("toolCallDone",r(this,HJ,"f")),GJ(this,HJ,void 0,"f");break;case"thread.run.cancelling":break}};function j_(T){}class DW extends P{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(MT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/messages`,A2,{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 A2 extends LT{}DW.MessagesPage=A2;class KW extends P{retrieve(T,$,J,W={},X){if(MT(W))return this.retrieve(T,$,J,{},W);return this._client.get(`/threads/${T}/runs/${$}/steps/${J}`,{query:W,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}list(T,$,J={},W){if(MT(J))return this.list(T,$,{},J);return this._client.getAPIList(`/threads/${T}/runs/${$}/steps`,z2,{query:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}}class z2 extends LT{}KW.RunStepsPage=z2;class d1 extends P{constructor(){super(...arguments);this.steps=new KW(this._client)}create(T,$,J){let{include:W,...X}=$;return this._client.post(`/threads/${T}/runs`,{query:{include:W},body:X,...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(MT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/runs`,M2,{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 AJ.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:X,response:F}=await this.retrieve(T,$,{...J,headers:{...J?.headers,...W}}).withResponse();switch(X.status){case"queued":case"in_progress":case"cancelling":let Y=5000;if(J?.pollIntervalMs)Y=J.pollIntervalMs;else{let G=F.headers.get("openai-poll-after-ms");if(G){let H=parseInt(G);if(!isNaN(H))Y=H}}await w1(Y);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return X}}}stream(T,$,J){return AJ.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 X=await this.submitToolOutputs(T,$,J,W);return await this.poll(T,X.id,W)}submitToolOutputsStream(T,$,J,W){return AJ.createToolAssistantStream(T,$,this._client.beta.threads.runs,J,W)}}class M2 extends LT{}d1.RunsPage=M2;d1.Steps=KW;d1.RunStepsPage=z2;class _1 extends P{constructor(){super(...arguments);this.runs=new d1(this._client),this.messages=new DW(this._client)}create(T={},$){if(MT(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 AJ.createThreadAssistantStream(T,this._client.beta.threads,$)}}_1.Runs=d1;_1.RunsPage=M2;_1.Messages=DW;_1.MessagesPage=A2;class tJ extends P{constructor(){super(...arguments);this.realtime=new Z0(this._client),this.chat=new W2(this._client),this.assistants=new wW(this._client),this.threads=new _1(this._client)}}tJ.Realtime=Z0;tJ.Assistants=wW;tJ.AssistantsPage=tX;tJ.Threads=_1;class VW extends P{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class EW extends P{create(T,$){let J=!!T.encoding_format,W=J?T.encoding_format:"base64";if(J)M1("Request","User defined encoding_format:",T.encoding_format);let X=this._client.post("/embeddings",{body:{...T,encoding_format:W},...$});if(J)return X;return M1("response","Decoding base64 embeddings to float32 array"),X._thenUnwrap((F)=>{if(F&&F.data)F.data.forEach((Y)=>{let G=Y.embedding;Y.embedding=V3(G)});return F})}}class RW extends P{retrieve(T,$,J,W){return this._client.get(`/evals/${T}/runs/${$}/output_items/${J}`,W)}list(T,$,J={},W){if(MT(J))return this.list(T,$,{},J);return this._client.getAPIList(`/evals/${T}/runs/${$}/output_items`,w2,{query:J,...W})}}class w2 extends LT{}RW.OutputItemListResponsesPage=w2;class l1 extends P{constructor(){super(...arguments);this.outputItems=new RW(this._client)}create(T,$,J){return this._client.post(`/evals/${T}/runs`,{body:$,...J})}retrieve(T,$,J){return this._client.get(`/evals/${T}/runs/${$}`,J)}list(T,$={},J){if(MT($))return this.list(T,{},$);return this._client.getAPIList(`/evals/${T}/runs`,Q2,{query:$,...J})}del(T,$,J){return this._client.delete(`/evals/${T}/runs/${$}`,J)}cancel(T,$,J){return this._client.post(`/evals/${T}/runs/${$}`,J)}}class Q2 extends LT{}l1.RunListResponsesPage=Q2;l1.OutputItems=RW;l1.OutputItemListResponsesPage=w2;class D1 extends P{constructor(){super(...arguments);this.runs=new l1(this._client)}create(T,$){return this._client.post("/evals",{body:T,...$})}retrieve(T,$){return this._client.get(`/evals/${T}`,$)}update(T,$,J){return this._client.post(`/evals/${T}`,{body:$,...J})}list(T={},$){if(MT(T))return this.list({},T);return this._client.getAPIList("/evals",LW,{query:T,...$})}del(T,$){return this._client.delete(`/evals/${T}`,$)}}class LW extends LT{}D1.EvalListResponsesPage=LW;D1.Runs=l1;D1.RunListResponsesPage=Q2;class q0 extends P{create(T,$){return this._client.post("/files",KJ({body:T,...$}))}retrieve(T,$){return this._client.get(`/files/${T}`,$)}list(T={},$){if(MT(T))return this.list({},T);return this._client.getAPIList("/files",BW,{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"]),X=Date.now(),F=await this.retrieve(T);while(!F.status||!W.has(F.status))if(await w1($),F=await this.retrieve(T),Date.now()-X>J)throw new K0({message:`Giving up on waiting for file ${T} to finish processing after ${J} milliseconds.`});return F}}class BW extends LT{}q0.FileObjectsPage=BW;class fW extends P{create(T,$,J){return this._client.getAPIList(`/fine_tuning/checkpoints/${T}/permissions`,O2,{body:$,method:"post",...J})}retrieve(T,$={},J){if(MT($))return this.retrieve(T,{},$);return this._client.get(`/fine_tuning/checkpoints/${T}/permissions`,{query:$,...J})}del(T,$){return this._client.delete(`/fine_tuning/checkpoints/${T}/permissions`,$)}}class O2 extends Q1{}fW.PermissionCreateResponsesPage=O2;class I0 extends P{constructor(){super(...arguments);this.permissions=new fW(this._client)}}I0.Permissions=fW;I0.PermissionCreateResponsesPage=O2;class NW extends P{list(T,$={},J){if(MT($))return this.list(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,U2,{query:$,...J})}}class U2 extends LT{}NW.FineTuningJobCheckpointsPage=U2;class K1 extends P{constructor(){super(...arguments);this.checkpoints=new NW(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(MT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",S2,{query:T,...$})}cancel(T,$){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,$)}listEvents(T,$={},J){if(MT($))return this.listEvents(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,_2,{query:$,...J})}}class S2 extends LT{}class _2 extends LT{}K1.FineTuningJobsPage=S2;K1.FineTuningJobEventsPage=_2;K1.Checkpoints=NW;K1.FineTuningJobCheckpointsPage=U2;class rJ extends P{constructor(){super(...arguments);this.jobs=new K1(this._client),this.checkpoints=new I0(this._client)}}rJ.Jobs=K1;rJ.FineTuningJobsPage=S2;rJ.FineTuningJobEventsPage=_2;rJ.Checkpoints=I0;class CW extends P{createVariation(T,$){return this._client.post("/images/variations",KJ({body:T,...$}))}edit(T,$){return this._client.post("/images/edits",KJ({body:T,...$}))}generate(T,$){return this._client.post("/images/generations",{body:T,...$})}}class j0 extends P{retrieve(T,$){return this._client.get(`/models/${T}`,$)}list(T){return this._client.getAPIList("/models",ZW,T)}del(T,$){return this._client.delete(`/models/${T}`,$)}}class ZW extends Q1{}j0.ModelsPage=ZW;class kW extends P{create(T,$){return this._client.post("/moderations",{body:T,...$})}}function m3(T,$){if(!$||!d_($))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 _Y(T,$)}function _Y(T,$){let J=T.output.map((X)=>{if(X.type==="function_call")return{...X,parsed_arguments:i_($,X)};if(X.type==="message"){let F=X.content.map((Y)=>{if(Y.type==="output_text")return{...Y,parsed:o_($,Y.text)};return Y});return{...X,content:F}}return X}),W=Object.assign({},T,{output:J});if(!Object.getOwnPropertyDescriptor(T,"output_text"))DY(W);return Object.defineProperty(W,"output_parsed",{enumerable:!0,get(){for(let X of W.output){if(X.type!=="message")continue;for(let F of X.content)if(F.type==="output_text"&&F.parsed!==null)return F.parsed}return null}}),W}function o_(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 d_(T){if(T2(T.text?.format))return!0;return!1}function l_(T){return T?.$brand==="auto-parseable-tool"}function n_(T,$){return T.find((J)=>J.type==="function"&&J.name===$)}function i_(T,$){let J=n_(T.tools??[],$.name);return{...$,...$,parsed_arguments:l_(J)?J.$parseRaw($.arguments):J?.strict?JSON.parse($.arguments):null}}function DY(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 D2 extends P{list(T,$={},J){if(MT($))return this.list(T,{},$);return this._client.getAPIList(`/responses/${T}/input_items`,KY,{query:$,...J})}}var yW=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},n1=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)},qW,ZF,i1,kF,g3,p3,u3,c3;class yF extends B0{constructor(T){super();qW.add(this),ZF.set(this,void 0),i1.set(this,void 0),kF.set(this,void 0),yW(this,ZF,T,"f")}static createResponse(T,$,J){let W=new yF($);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())}n1(this,qW,"m",g3).call(this);let X=await T.responses.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let F of X)n1(this,qW,"m",p3).call(this,F);if(X.controller.signal?.aborted)throw new S$;return n1(this,qW,"m",u3).call(this)}[(ZF=new WeakMap,i1=new WeakMap,kF=new WeakMap,qW=new WeakSet,g3=function T(){if(this.ended)return;yW(this,i1,void 0,"f")},p3=function T($){if(this.ended)return;let J=n1(this,qW,"m",c3).call(this,$);switch(this._emit("event",$),$.type){case"response.output_text.delta":{let W=J.output[$.output_index];if(!W)throw new t(`missing output at index ${$.output_index}`);if(W.type==="message"){let X=W.content[$.content_index];if(!X)throw new t(`missing content at index ${$.content_index}`);if(X.type!=="output_text")throw new t(`expected content to be 'output_text', got ${X.type}`);this._emit("response.output_text.delta",{...$,snapshot:X.text})}break}case"response.function_call_arguments.delta":{let W=J.output[$.output_index];if(!W)throw new t(`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}},u3=function T(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let $=n1(this,i1,"f");if(!$)throw new t("request ended without sending any events");yW(this,i1,void 0,"f");let J=r_($,n1(this,ZF,"f"));return yW(this,kF,J,"f"),J},c3=function T($){let J=n1(this,i1,"f");if(!J){if($.type!=="response.created")throw new t(`When snapshot hasn't been set yet, expected 'response.created' event, got ${$.type}`);return J=yW(this,i1,$.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 t(`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 t(`missing output at index ${$.output_index}`);if(W.type==="message"){let X=W.content[$.content_index];if(!X)throw new t(`missing content at index ${$.content_index}`);if(X.type!=="output_text")throw new t(`expected content to be 'output_text', got ${X.type}`);X.text+=$.delta}break}case"response.function_call_arguments.delta":{let W=J.output[$.output_index];if(!W)throw new t(`missing output at index ${$.output_index}`);if(W.type==="function_call")W.arguments+=$.delta;break}case"response.completed":{yW(this,i1,$.response,"f");break}}return J},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(W)=>{let X=$.shift();if(X)X.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 X of $)X.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let X of $)X.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((X,F)=>$.push({resolve:X,reject:F})).then((X)=>X?{value:X,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=n1(this,kF,"f");if(!T)throw new t("stream ended without producing a ChatCompletion");return T}}function r_(T,$){return m3(T,$)}class x0 extends P{constructor(){super(...arguments);this.inputItems=new D2(this._client)}create(T,$){return this._client.post("/responses",{body:T,...$,stream:T.stream??!1})._thenUnwrap((J)=>{if("object"in J&&J.object==="response")DY(J);return J})}retrieve(T,$={},J){if(MT($))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)=>_Y(J,T))}stream(T,$){return yF.createResponse(this._client,T,$)}}class KY extends LT{}x0.InputItems=D2;class K2 extends P{create(T,$,J){return this._client.post(`/uploads/${T}/parts`,KJ({body:$,...J}))}}class b0 extends P{constructor(){super(...arguments);this.parts=new K2(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})}}b0.Parts=K2;var o3=async(T)=>{let $=await Promise.allSettled(T),J=$.filter((X)=>X.status==="rejected");if(J.length){for(let X of J)console.error(X.reason);throw new Error(`${J.length} promise(s) failed - see the above errors`)}let W=[];for(let X of $)if(X.status==="fulfilled")W.push(X.value);return W};class P0 extends P{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(MT($))return this.list(T,{},$);return this._client.getAPIList(`/vector_stores/${T}/files`,v0,{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 X=await this.retrieve(T,$,{...J,headers:W}).withResponse(),F=X.data;switch(F.status){case"in_progress":let Y=5000;if(J?.pollIntervalMs)Y=J.pollIntervalMs;else{let G=X.response.headers.get("openai-poll-after-ms");if(G){let H=parseInt(G);if(!isNaN(H))Y=H}}await w1(Y);break;case"failed":case"completed":return F}}}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`,V2,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class v0 extends LT{}class V2 extends Q1{}P0.VectorStoreFilesPage=v0;P0.FileContentResponsesPage=V2;class E2 extends P{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(MT(J))return this.listFiles(T,$,{},J);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${$}/files`,v0,{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:X,response:F}=await this.retrieve(T,$,{...J,headers:W}).withResponse();switch(X.status){case"in_progress":let Y=5000;if(J?.pollIntervalMs)Y=J.pollIntervalMs;else{let G=F.headers.get("openai-poll-after-ms");if(G){let H=parseInt(G);if(!isNaN(H))Y=H}}await w1(Y);break;case"failed":case"cancelled":case"completed":return X}}}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 X=W?.maxConcurrency??5,F=Math.min(X,$.length),Y=this._client,G=$.values(),H=[...J];async function A(M){for(let w of M){let S=await Y.files.create({file:w,purpose:"assistants"},W);H.push(S.id)}}let z=Array(F).fill(G).map(A);return await o3(z),await this.createAndPoll(T,{file_ids:H})}}class VJ extends P{constructor(){super(...arguments);this.files=new P0(this._client),this.fileBatches=new E2(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(MT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",IW,{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`,jW,{body:$,method:"post",...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class IW extends LT{}class jW extends Q1{}VJ.VectorStoresPage=IW;VJ.VectorStoreSearchResponsesPage=jW;VJ.Files=P0;VJ.VectorStoreFilesPage=v0;VJ.FileContentResponsesPage=V2;VJ.FileBatches=E2;var d3;class wT extends s6{constructor({baseURL:T=cX("OPENAI_BASE_URL"),apiKey:$=cX("OPENAI_API_KEY"),organization:J=cX("OPENAI_ORG_ID")??null,project:W=cX("OPENAI_PROJECT_ID")??null,...X}={}){if($===void 0)throw new t("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let F={apiKey:$,organization:J,project:W,...X,baseURL:T||"https://api.openai.com/v1"};if(!F.dangerouslyAllowBrowser&&K3())throw new t(`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,44 +40,44 @@ 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 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:",`
43
+ `);super({baseURL:F.baseURL,timeout:F.timeout??600000,httpAgent:F.httpAgent,maxRetries:F.maxRetries,fetch:F.fetch});this.completions=new VW(this),this.chat=new u1(this),this.embeddings=new EW(this),this.files=new q0(this),this.images=new CW(this),this.audio=new O1(this),this.moderations=new kW(this),this.models=new j0(this),this.fineTuning=new rJ(this),this.vectorStores=new VJ(this),this.beta=new tJ(this),this.batches=new L0(this),this.uploads=new b0(this),this.responses=new x0(this),this.evals=new D1(this),this._options=F,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 P6(T,{arrayFormat:"brackets"})}}d3=wT;wT.OpenAI=d3;wT.DEFAULT_TIMEOUT=600000;wT.OpenAIError=t;wT.APIError=Y$;wT.APIConnectionError=D0;wT.APIConnectionTimeoutError=K0;wT.APIUserAbortError=S$;wT.NotFoundError=WF;wT.ConflictError=XF;wT.RateLimitError=YF;wT.BadRequestError=TF;wT.AuthenticationError=$F;wT.InternalServerError=GF;wT.PermissionDeniedError=JF;wT.UnprocessableEntityError=FF;wT.toFile=t6;wT.fileFromPath=e8;wT.Completions=VW;wT.Chat=u1;wT.ChatCompletionsPage=R0;wT.Embeddings=EW;wT.Files=q0;wT.FileObjectsPage=BW;wT.Images=CW;wT.Audio=O1;wT.Moderations=kW;wT.Models=j0;wT.ModelsPage=ZW;wT.FineTuning=rJ;wT.VectorStores=VJ;wT.VectorStoresPage=IW;wT.VectorStoreSearchResponsesPage=jW;wT.Beta=tJ;wT.Batches=L0;wT.BatchesPage=MW;wT.Uploads=b0;wT.Responses=x0;wT.Evals=D1;wT.EvalListResponsesPage=LW;var l3=wT;var TH=iU(t3(),1);import{createHash as YD}from"crypto";import*as r$ from"fs";import{copyFile as GD}from"fs/promises";import*as xW from"path";import{resolve as HD}from"path";import{existsSync as VY,mkdirSync as r3,readdirSync as a3,readFileSync as XD,rmSync as s3,statSync as e3,writeFileSync as FD}from"fs";import{resolve as EY}from"path";class RY{rootDir;get initialized(){return VY(this.rootDir)}initialize(){if(!this.initialized)r3(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=EY(this.rootDir,T);if(VY($))return XD($,"utf-8");return null}setItem(T,$){this.initialize();let J=EY(this.rootDir,T);FD(J,$)}removeItem(T){let $=EY(this.rootDir,T);if(VY($))this.initialize(),s3($)}key(T){return a3(this.rootDir).sort((W,X)=>{let F=e3(W);return e3(X).ctimeMs-F.ctimeMs})[T]??null}clear(){s3(this.rootDir,{recursive:!0}),r3(this.rootDir,{recursive:!0})}get length(){return a3(this.rootDir).length}}var $H=/[^a-zA-Z0-9\-._]/g;function bW(T,$=64){let J=T.replace($H,"-");if(J.length<=$)return J;let W=YD("sha256").update(T).digest("hex");return J.slice(-$)+"+"+W}var AD=TH.default("varmint"),B2=bW(process.cwd(),150),LY=HD(AD,B2),G$="_-$-_-$-_",JH=`file${G$}`,WH=`list${G$}`,XH=`root${G$}`,zD=`unmatched${G$}`,PT={storage:new RY({path:LY,eagerInit:!1}),startGlobalTracking(){if(console.log(`\uD83D\uDC3F\uFE0F Starting global tracking of varmint files using project identifier "${B2}"`),PT.storage.initialized)console.error(`\uD83D\uDCA5 The global cache for the project "${B2}" was found already initialized. Clearing it and starting fresh.`),PT.storage.clear();PT.storage.initialize()},async prepareUploads(T){console.log(`\uD83D\uDC3F\uFE0F Moving unmatched inputs to /tmp/varmint-uploads using project identifier "${B2}"`);let $=[];for(let J of r$.readdirSync(PT.storage.rootDir))if(qF(`unmatched${G$}`,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
- `,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(`
47
+ `,LY),process.env[T])r$.mkdirSync("/tmp/varmint-uploads",{recursive:!0}),await Promise.all($.map(async(J)=>{let W=xW.join(LY,J),X=xW.join("/tmp/varmint-uploads",J);await GD(W,X)}));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 "${B2}" and starting cleanup of untouched files.`),!PT.storage.initialized){console.error("\uD83D\uDCA5 called flushGlobal, but the global cache wasn't initialized with startGlobalTracking");return}let T=r$.readdirSync(PT.storage.rootDir),$=new Map,J=[],W=[],X=[];for(let Y of T)if(qF(`root${G$}`,Y))J.push(Y);else if(qF(`list${G$}`,Y))W.push(Y);else if(qF(`file${G$}`,Y))X.push(Y);if(PT.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 G of J){let H=G.replace(XH,"");Y.set(H,new Map);let A=PT.storage.getItem(G);if(A)$.set(H,A);else console.error(`\uD83D\uDCA5 Could not find folder ${A} referenced in the global cache`)}for(let G of W){let H=G.replace(WH,""),[A,z]=H.split(G$),M=Y.get(A);if(M)M.set(z,new Set);else console.error(`\uD83D\uDCA5 Could not find root ${A} for list ${z}`)}for(let G of X){let H=G.replace(JH,""),[A,z,M]=H.split(G$),w=Y.get(A);if(w){let S=w.get(z);if(S)S.add(M);else console.error(`\uD83D\uDCA5 Could not find list ${z} for file ${H}`)}else console.error(`\uD83D\uDCA5 Could not find root ${A} for file ${H}`)}console.log("\uD83D\uDC3F\uFE0F ",Y);for(let[G,H]of Y.entries()){let A=$.get(G);if(!A){console.error(`\uD83D\uDCA5 Could not find root ${G}`);continue}if(!r$.existsSync(A)){console.warn(`\uD83D\uDCA5 Root folder ${A}, identified as being used during tracking, no longer exists during cleanup.`);continue}let M=r$.readdirSync(A);for(let w of M)if(w!==".ferret"&&!H.has(w)){let S=xW.join(A,w);console.log(`\uD83E\uDDF9 globalFlush: removing directory ${S}`),r$.rmSync(S,{recursive:!0})}for(let[w,S]of H.entries()){let _=xW.join(A,w);if(!r$.existsSync(_)){console.warn(`\uD83D\uDCA5 List folder ${_}, identified as being used during tracking, no longer exists.`);continue}let Z=r$.readdirSync(_);for(let k of Z){let N=k.replace(".input.json","").replace(".output.json","").replace(".stream.txt","");if(!S.has(N)){let q=xW.join(_,k);console.log(`\uD83E\uDDF9 globalFlush: removing file ${q}`),r$.rmSync(q)}}}}}r$.rmSync(PT.storage.rootDir,{recursive:!0})}};function qF(T,$){return $.startsWith(T)}import*as nT from"fs";import*as xJ from"path";import{inspect as FH}from"util";var YH=class{filenameCache=new Map;filesTouched=new Map;mode;baseDir;rootName;constructor(T="off",$=xJ.join(process.cwd(),".varmint")){if(this.mode=T,this.baseDir=$,this.rootName=bW(this.baseDir),PT.storage.initialized&&!PT.storage.getItem(`root${G$}${this.rootName}`))PT.storage.setItem(`root${G$}${this.rootName}`,this.baseDir)}read(T,$,J){let W=xJ.join(this.baseDir,T),X=`${$}.input.json`,F=xJ.join(W,X);if(!nT.existsSync(F)){if(!nT.existsSync(W)){if(PT.storage.initialized&&this.mode==="read")PT.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=nT.readdirSync(W).map((_)=>[_,nT.readFileSync(xJ.join(W,_),"utf-8")]).filter(([_])=>_.endsWith(".input.json")),w=[];for(let[_,K]of M){let Z=` ${_}`,k=` ${FH(JSON.parse(K),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
48
48
  `).join(`
49
- `)}`;H.push(y,j)}let f=` ${F}
50
- ${Y9(J,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
49
+ `)}`;w.push(Z,k)}let S=` ${X}
50
+ ${FH(J,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
51
51
  `).join(`
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.
52
+ `)}`;if(PT.storage.initialized&&this.mode==="read")PT.storage.setItem(`unmatched${G$}${X}`,JSON.stringify(J,null,"\t")),PT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with subKey "${$}" (${F}) 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
 
54
54
  CACHED INPUT FILES:
55
- ${H.join(`
55
+ ${w.join(`
56
56
  `)}
57
57
 
58
58
  YOUR INPUT DATA:
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.
59
+ ${S}
60
+ `)}let Y=nT.readFileSync(F,"utf-8"),G=JSON.stringify(J,null,"\t");if(G!==Y){if(PT.storage.initialized&&this.mode==="read")PT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: the content of the cached input file ${F} does not match the input provided.
61
61
 
62
62
  Provided:
63
- ${S}
63
+ ${G}
64
64
 
65
65
  Cached:
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$([`
66
+ ${Y}`)}let H=xJ.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(nT.readFileSync(H,"utf-8"))}async write(T,$,J,W){let X=xJ.join(this.baseDir,T),F=xJ.join(X,`${$}.input.json`),Y=xJ.join(X,`${$}.output.json`),G=JSON.stringify(J,null,"\t");if(!nT.existsSync(this.baseDir))nT.mkdirSync(this.baseDir,{recursive:!0});if(!nT.existsSync(X))nT.mkdirSync(X);if(nT.writeFileSync(F,G),nT.existsSync(Y))nT.unlinkSync(Y);let H=await W(...J),A=JSON.stringify(H,null,"\t");return nT.writeFileSync(Y,A),H}add(T,$){let J=`${this.rootName}${G$}${bW(T)}`;return{flush:()=>{this.flush(T)},for:(W)=>{if(this.mode!=="off"){if(this.filesTouched.set(T,new Set),PT.storage.initialized&&!PT.storage.getItem(`list${G$}${J}`))PT.storage.setItem(`list${G$}${J}`,"true")}return{get:async(...X)=>{let F=W;if(this.mode!=="off"){let Y=this.filenameCache.get(W);if(!Y)Y=bW(W),this.filenameCache.set(W,Y);F=Y,this.filesTouched.get(T)?.add(F);let G=`${J}${G$}${F}`,H=`file${G$}${G}`;if(PT.storage.initialized&&!PT.storage.getItem(H))PT.storage.setItem(H,"true")}switch(this.mode){case"off":return $(...X);case"read":return this.read(T,F,X);case"write":return this.write(T,F,X,$);case"read-write":try{return this.read(T,F,X)}catch(Y){if(Y instanceof Error)return this.write(T,F,X,$);throw Y}}}}}}}flush(...T){console.log(this.filesTouched);for(let[$,J]of this.filesTouched.entries())if(T.length===0||T.includes($)){let W=xJ.join(this.baseDir,$),X=nT.readdirSync(W);for(let F of X){let Y=F.replace(".input.json","").replace(".output.json","");if(!J.has(Y))console.info(`\uD83E\uDDF9 Flushing ${Y}`),nT.unlinkSync(xJ.join(W,F))}}}};function MD(T,...$){let[J,W,X,F]=$,Y=[{role:"user",content:nG(W)},{role:"user",content:J}],G=F.at(-1);if(G)Y.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(G.response,null,2),"Here's the error message:",JSON.stringify(G.error.issues,null,2)].join(`
67
+ `)});return{model:T,messages:Y}}var BY={"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 wD(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 X=await T.chat.completions.create({...J,stream:!1,response_format:{type:"json_object"}},W),F=X.choices[0].message?.content,{usage:Y}=X;if(F&&Y){let G=Y.prompt_tokens,H=Y.prompt_tokens_details?.cached_tokens??0,A=G-H,z=Y.completion_tokens,M=G*BY[J.model].promptPricePerToken+A*BY[J.model].promptPricePerTokenCached+z*BY[J.model].completionPricePerToken;return{data:JSON.parse(F),usage:Y,usdPrice:M}}if(!F&&!Y)throw new Error("No content or usage found in completion");if(!F)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var GH=new Map,HH=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:W,cachingMode:X,cacheKey:F="openai-safegen",logger:Y}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new YH(X);let G=GH.get(W);if(X!=="read"){if(!G)G=new l3({apiKey:W,dangerouslyAllowBrowser:!1}),GH.set(W,G);this.client=G}this.getUnknownJsonFromOpenAi=wD(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(F,this.getUnknownJsonFromOpenAi),this.from=lG(async(...H)=>{if(this.usdBudget<this.usdMinimum)return Y?.warn("SafeGen budget exhausted"),H[1];let A=MD(T,...H),z=H[0],M=H[3],{data:w,usage:S,usdPrice:_}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${z.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${M.length}`).get(A);return this.lastUsage=S,this.usdBudget-=_,w},Y)}from};import{exec as SL}from"child_process";var fY=(T)=>{let $=XJ(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let J=new Map;for(let[W,X]of T.atoms){if(h1(W))continue;let F=n$(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,F)}else J.set(W,F)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(W)=>{if(h1(W.key))return;J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G===void 0||!("familyMembers"in G))G={key:F,familyMembers:new Map},X.set(F,G);G.familyMembers.set(Y,W)}else X.set(W.key,W);return X})}),T.on.atomDisposal.subscribe("introspection",(W)=>{J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G&&"familyMembers"in G){if(G.familyMembers.delete(Y),G.familyMembers.size===0)X.delete(F)}}else X.delete(W.key);return X})})}]},void 0);return W1(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:J})=>J($)})};var NY=(T)=>{let $=XJ(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let J=new Map;for(let W of[T.readonlySelectors,T.selectors])for(let[X,F]of W){if(h1(X))continue;let Y=n$(F);if(F.family){let G=J.get(F.family.key);if(!G||!("familyMembers"in G))G={key:F.family.key,familyMembers:new Map},J.set(F.family.key,G);G.familyMembers.set(F.family.subKey,Y)}else J.set(X,Y)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(W)=>{if(h1(W.key))return;J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G===void 0||!("familyMembers"in G))G={key:F,familyMembers:new Map},X.set(F,G);G.familyMembers.set(Y,W)}else X.set(W.key,W);return X})}),T.on.selectorDisposal.subscribe("introspection",(W)=>{J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G&&"familyMembers"in G){if(G.familyMembers.delete(Y),G.familyMembers.size===0)X.delete(F)}}else X.delete(W.key);return X})})}]},void 0);return W1(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:J})=>J($)})};class IF{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(X){}}return null}}var CY=new IF({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function ZY(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var kY=new IF({object:ZY,array:(T)=>Array.isArray(T)}),QD=new IF({...CY.supported,...kY.supported}),PW=(T)=>{if(T===void 0)return"undefined";let $=QD.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class AH{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=DT.STORE){this.store=T,this.atomIndex=fY(this.store),this.selectorIndex=NY(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=AH.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=$6(this.atomIndex),J=$6(this.selectorIndex),W=[...$.values()].filter((G)=>("familyMembers"in G)),X=[...J.values()].filter((G)=>("familyMembers"in G)),F=performance.now(),Y=[];if(T.atomFamilies)for(let G of W){let H=G.familyMembers.values();for(let A of H){let M=this.statesCreatedAt.get(A.key)??this.auditorCreatedAt,w=F-M;Y.push([A,w])}}if(T.selectorFamilies)for(let G of X){let H=G.familyMembers.values();for(let A of H){let M=this.statesCreatedAt.get(A.key)??this.auditorCreatedAt,w=F-M;Y.push([A,w])}}return Y}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var yY=(T,$)=>{let J=(W,X)=>{let Y=((H,A)=>{let z=$(H,A);if(z)return z;return null})(W,X);if(Y?.jobComplete??Y?.pathComplete)return Y;let G=Array.isArray(X)?X.map((H,A)=>[A,H]):ZY(X)?Object.entries(X):[];for(let[H,A]of G){let z=J([...W,H],A);if(z?.jobComplete)return z}return{}};J([],T)};function OD(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function UD(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function SD(T,$){return{summary:`${T} \u2192 ${$}`}}function zH(T,$,J){let W="",X=[],F=[],Y=[];return yY(T,(G,H)=>{let A;for(A of G){let z=$[A];if(z===void 0)F.push([A,JSON.stringify(H)]);else{let M=J(H,z);if(M.summary!=="No Change")Y.push([A,M])}}}),yY($,(G,H)=>{let A;for(A of G)if(T[A]===void 0)X.push([A,JSON.stringify(H)])}),W=`\uFF5E${Y.length} \uFF0B${X.length} \uFF0D${F.length}`,{summary:W,added:X,removed:F,changed:Y}}function _D(T,$,J){return zH(T,$,J)}class MH{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 X=J[W];this.leafDiffers[W]=X}for(let W of Object.keys($.supported)){let X=J[W];this.treeDiffers[W]=X}}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,(G,H)=>this.diff(G,H))}}let X=PW(T),F=PW($);if(X===F)return{summary:`${X} \u2192 ${F}`};return{summary:`Type change: ${X} \u2192 ${F}`}}}var wu=new MH(CY,kY,{number:OD,string:UD,boolean:SD,null:()=>({summary:"No Change"}),object:zH,array:_D});var O=Symbol.for("drizzle:entityKind"),Vu=Symbol.for("drizzle:hasOwnEntityKind");function L(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 vT{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 qY{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 bJ=Symbol.for("drizzle:Name");class IY{static[O]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:W,foreignColumns:X}=T();return{name:J,columns:W,foreignTable:X[0].table,foreignColumns:X}},$)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 wH(T,this)}}class wH{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),X=J.map((Y)=>Y.name),F=[this.table[bJ],...W,J[0].table[bJ],...X];return T??`${F.join("_")}_fk`}}function jF(T,...$){return T(...$)}function QH(T,$){return`${T[bJ]}_${$.join("_")}_unique`}function OH(T,$,J){for(let W=$;W<T.length;W++){let X=T[W];if(X==="\\"){W++;continue}if(X==='"')return[T.slice($,W).replace(/\\/g,""),W+1];if(J)continue;if(X===","||X==="}")return[T.slice($,W).replace(/\\/g,""),W]}return[T.slice($).replace(/\\/g,""),T.length]}function UH(T,$=0){let J=[],W=$,X=!1;while(W<T.length){let F=T[W];if(F===","){if(X||W===$)J.push("");X=!0,W++;continue}if(X=!1,F==="\\"){W+=2;continue}if(F==='"'){let[H,A]=OH(T,W+1,!0);J.push(H),W=A;continue}if(F==="}")return[J,W+1];if(F==="{"){let[H,A]=UH(T,W+1);J.push(H),W=A;continue}let[Y,G]=OH(T,W,!1);J.push(Y),W=G}return[J,W]}function SH(T){let[$]=UH(T,1);return $}function jY(T){return`{${T.map(($)=>{if(Array.isArray($))return jY($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class d extends qY{foreignKeyConfigs=[];static[O]="PgColumnBuilder";array(T){return new DH(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 jF((X,F)=>{let Y=new IY(()=>{let G=X();return{columns:[T],foreignColumns:[G]}});if(F.onUpdate)Y.onUpdate(F.onUpdate);if(F.onDelete)Y.onDelete(F.onDelete);return Y.build($)},J,W)})}buildExtraConfigColumn(T){return new _H(T,this.config)}}class b extends vT{constructor(T,$){if(!$.uniqueName)$.uniqueName=QH(T,[$.name]);super(T,$);this.table=T}static[O]="PgColumn"}class _H extends b{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 f2{static[O]="IndexedColumn";constructor(T,$,J,W){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=W}name;keyAsName;type;indexConfig}class DH extends d{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 xY(T,this.config,$)}}class xY extends b{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=SH(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let J=T.map((W)=>W===null?null:L(this.baseColumn,xY)?this.baseColumn.mapToDriverValue(W,!0):this.baseColumn.mapToDriverValue(W));if($)return J;return jY(J)}}var bY=Symbol.for("drizzle:isPgEnum");function KH(T){return!!T&&typeof T==="function"&&bY in T&&T[bY]===!0}class VH extends d{static[O]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new EH(T,this.config)}}class EH extends b{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 xF(T,$){return DD(T,$,void 0)}function DD(T,$,J){let W=Object.assign((X)=>new VH(X??"",W),{enumName:T,enumValues:$,schema:J,[bY]:!0});return W}class D${static[O]="Subquery";constructor(T,$,J,W=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:W}}}class N2 extends D${static[O]="WithSubquery"}var RH="0.41.0";var PY,vY,hT={startActiveSpan(T,$){if(!PY)return $();if(!vY)vY=PY.trace.getTracer("drizzle-orm",RH);return jF((J,W)=>W.startActiveSpan(T,(X)=>{try{return $(X)}catch(F){throw X.setStatus({code:J.SpanStatusCode.ERROR,message:F instanceof Error?F.message:"Unknown error"}),F}finally{X.end()}}),PY,vY)}};var uT=Symbol.for("drizzle:ViewBaseConfig");var bF=Symbol.for("drizzle:Schema"),PF=Symbol.for("drizzle:Columns"),LH=Symbol.for("drizzle:ExtraConfigColumns"),hY=Symbol.for("drizzle:OriginalName"),mY=Symbol.for("drizzle:BaseName"),C2=Symbol.for("drizzle:IsAlias"),BH=Symbol.for("drizzle:ExtraConfigBuilder"),KD=Symbol.for("drizzle:IsDrizzleTable");class u{static[O]="Table";static Symbol={Name:bJ,Schema:bF,OriginalName:hY,Columns:PF,ExtraConfigColumns:LH,BaseName:mY,IsAlias:C2,ExtraConfigBuilder:BH};[bJ];[hY];[bF];[PF];[LH];[mY];[C2]=!1;[KD]=!0;[BH]=void 0;constructor(T,$,J){this[bJ]=this[hY]=T,this[bF]=$,this[mY]=J}}function B$(T){return T[bJ]}function h0(T){return`${T[bF]??"public"}.${T[bJ]}`}function gY(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function VD(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 K${static[O]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new c([this])}}class c{constructor(T){this.queryChunks=T}static[O]="SQL";decoder=NH;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return hT.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:X,escapeParam:F,prepareTyping:Y,inlineParams:G,paramStartIndex:H}=J;return VD(T.map((A)=>{if(L(A,K$))return{sql:A.value.join(""),params:[]};if(L(A,vF))return{sql:X(A.value),params:[]};if(A===void 0)return{sql:"",params:[]};if(Array.isArray(A)){let z=[new K$("(")];for(let[M,w]of A.entries())if(z.push(w),M<A.length-1)z.push(new K$(", "));return z.push(new K$(")")),this.buildQueryFromSourceParams(z,J)}if(L(A,c))return this.buildQueryFromSourceParams(A.queryChunks,{...J,inlineParams:G||A.shouldInlineParams});if(L(A,u)){let z=A[u.Symbol.Schema],M=A[u.Symbol.Name];return{sql:z===void 0||A[C2]?X(M):X(z)+"."+X(M),params:[]}}if(L(A,vT)){let z=W.getColumnCasing(A);if($.invokeSource==="indexes")return{sql:X(z),params:[]};let M=A.table[u.Symbol.Schema];return{sql:A.table[C2]||M===void 0?X(A.table[u.Symbol.Name])+"."+X(z):X(M)+"."+X(A.table[u.Symbol.Name])+"."+X(z),params:[]}}if(L(A,a$)){let z=A[uT].schema,M=A[uT].name;return{sql:z===void 0||A[uT].isAlias?X(M):X(z)+"."+X(M),params:[]}}if(L(A,zJ)){if(L(A.value,t1))return{sql:F(H.value++,A),params:[A],typings:["none"]};let z=A.value===null?null:A.encoder.mapToDriverValue(A.value);if(L(z,c))return this.buildQueryFromSourceParams([z],J);if(G)return{sql:this.mapInlineParam(z,J),params:[]};let M=["none"];if(Y)M=[Y(A.encoder)];return{sql:F(H.value++,z),params:[z],typings:M}}if(L(A,t1))return{sql:F(H.value++,A),params:[A],typings:["none"]};if(L(A,c.Aliased)&&A.fieldAlias!==void 0)return{sql:X(A.fieldAlias),params:[]};if(L(A,D$)){if(A._.isWith)return{sql:X(A._.alias),params:[]};return this.buildQueryFromSourceParams([new K$("("),A._.sql,new K$(") "),new vF(A._.alias)],J)}if(KH(A)){if(A.schema)return{sql:X(A.schema)+"."+X(A.enumName),params:[]};return{sql:X(A.enumName),params:[]}}if(gY(A)){if(A.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([A.getSQL()],J);return this.buildQueryFromSourceParams([new K$("("),A.getSQL(),new K$(")")],J)}if(G)return{sql:this.mapInlineParam(A,J),params:[]};return{sql:F(H.value++,A),params:[A],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 c.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 vF{constructor(T){this.value=T}static[O]="Name";brand;getSQL(){return new c([this])}}function fH(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var NH={mapFromDriverValue:(T)=>T},CH={mapToDriverValue:(T)=>T},Hc={...NH,...CH};class zJ{constructor(T,$=CH){this.value=T,this.encoder=$}static[O]="Param";brand;getSQL(){return new c([this])}}function U(T,...$){let J=[];if($.length>0||T.length>0&&T[0]!=="")J.push(new K$(T[0]));for(let[W,X]of $.entries())J.push(X,new K$(T[W+1]));return new c(J)}((T)=>{function $(){return new c([])}T.empty=$;function J(H){return new c(H)}T.fromList=J;function W(H){return new c([new K$(H)])}T.raw=W;function X(H,A){let z=[];for(let[M,w]of H.entries()){if(M>0&&A!==void 0)z.push(A);z.push(w)}return new c(z)}T.join=X;function F(H){return new vF(H)}T.identifier=F;function Y(H){return new t1(H)}T.placeholder=Y;function G(H,A){return new zJ(H,A)}T.param=G})(U||(U={}));((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=$})(c||(c={}));class t1{constructor(T){this.name=T}static[O]="Placeholder";getSQL(){return new c([this])}}function pY(T,$){return T.map((J)=>{if(L(J,t1)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(L(J,zJ)&&L(J.value,t1)){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 ED=Symbol.for("drizzle:IsDrizzleView");class a${static[O]="View";[uT];[ED]=!0;constructor({name:T,schema:$,selectedFields:J,query:W}){this[uT]={name:T,originalName:T,schema:$,selectedFields:J,query:W,isExisting:!W,isAlias:!1}}getSQL(){return new c([this])}}vT.prototype.getSQL=function(){return new c([this])};u.prototype.getSQL=function(){return new c([this])};D$.prototype.getSQL=function(){return new c([this])};class vW{constructor(T){this.table=T}static[O]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class Z2{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[O]="TableAliasProxyHandler";get(T,$){if($===u.Symbol.IsAlias)return!0;if($===u.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===u.Symbol.OriginalName)return this.alias;if($===uT)return{...T[uT],name:this.alias,isAlias:!0};if($===u.Symbol.Columns){let W=T[u.Symbol.Columns];if(!W)return W;let X={};return Object.keys(W).map((F)=>{X[F]=new Proxy(W[F],new vW(new Proxy(T,this)))}),X}let J=T[$];if(L(J,vT))return new Proxy(J,new vW(new Proxy(T,this)));return J}}function hF(T,$){return new Proxy(T,new Z2($,!1))}function aJ(T,$){return new Proxy(T,new vW(new Proxy(T.table,new Z2($,!1))))}function uY(T,$){return new c.Aliased(k2(T.sql,$),T.fieldAlias)}function k2(T,$){return U.join(T.queryChunks.map((J)=>{if(L(J,vT))return aJ(J,$);if(L(J,c))return k2(J,$);if(L(J,c.Aliased))return uY(J,$);return J}))}class mF extends Error{static[O]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class cY extends mF{static[O]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function s$(T,$){if(fH($)&&!gY(T)&&!L(T,zJ)&&!L(T,t1)&&!L(T,vT)&&!L(T,u)&&!L(T,a$))return new zJ(T,$);return T}var gF=(T,$)=>{return U`${T} = ${s$($,T)}`},ZH=(T,$)=>{return U`${T} <> ${s$($,T)}`};function y2(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new c($);return new c([new K$("("),U.join($,new K$(" and ")),new K$(")")])}function kH(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new c($);return new c([new K$("("),U.join($,new K$(" or ")),new K$(")")])}function yH(T){return U`not ${T}`}var pF=(T,$)=>{return U`${T} > ${s$($,T)}`},qH=(T,$)=>{return U`${T} >= ${s$($,T)}`},IH=(T,$)=>{return U`${T} < ${s$($,T)}`},jH=(T,$)=>{return U`${T} <= ${s$($,T)}`};function xH(T,$){if(Array.isArray($)){if($.length===0)return U`false`;return U`${T} in ${$.map((J)=>s$(J,T))}`}return U`${T} in ${s$($,T)}`}function bH(T,$){if(Array.isArray($)){if($.length===0)return U`true`;return U`${T} not in ${$.map((J)=>s$(J,T))}`}return U`${T} not in ${s$($,T)}`}function PH(T){return U`${T} is null`}function vH(T){return U`${T} is not null`}function hH(T){return U`exists ${T}`}function mH(T){return U`not exists ${T}`}function gH(T,$,J){return U`${T} between ${s$($,T)} and ${s$(J,T)}`}function pH(T,$,J){return U`${T} not between ${s$($,T)} and ${s$(J,T)}`}function uH(T,$){return U`${T} like ${$}`}function cH(T,$){return U`${T} not like ${$}`}function oH(T,$){return U`${T} ilike ${$}`}function dH(T,$){return U`${T} not ilike ${$}`}function lH(T){return U`${T} asc`}function nH(T){return U`${T} desc`}class iH{static[O]="ConsoleLogWriter";write(T){console.log(T)}}class oY{static[O]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new iH}logQuery(T,$){let J=$.map((X)=>{try{return JSON.stringify(X)}catch{return String(X)}}),W=J.length?` -- params: [${J.join(", ")}]`:"";this.writer.write(`Query: ${T}${W}`)}}class dY{static[O]="NoopLogger";logQuery(){}}class u${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 tH(T,$,J){let W={},X=T.reduce((F,{path:Y,field:G},H)=>{let A;if(L(G,vT))A=G;else if(L(G,c))A=G.decoder;else A=G.sql.decoder;let z=F;for(let[M,w]of Y.entries())if(M<Y.length-1){if(!(w in z))z[w]={};z=z[w]}else{let S=$[H],_=z[w]=S===null?null:A.mapFromDriverValue(S);if(J&&L(G,vT)&&Y.length===2){let K=Y[0];if(!(K in W))W[K]=_===null?B$(G.table):!1;else if(typeof W[K]==="string"&&W[K]!==B$(G.table))W[K]=!1}}return F},{});if(J&&Object.keys(W).length>0){for(let[F,Y]of Object.entries(W))if(typeof Y==="string"&&!J[Y])X[F]=null}return X}function EJ(T,$){return Object.entries(T).reduce((J,[W,X])=>{if(typeof W!=="string")return J;let F=$?[...$,W]:[W];if(L(X,vT)||L(X,c)||L(X,c.Aliased))J.push({path:F,field:X});else if(L(X,u))J.push(...EJ(X[u.Symbol.Columns],F));else J.push(...EJ(X,F));return J},[])}function q2(T,$){let J=Object.keys(T),W=Object.keys($);if(J.length!==W.length)return!1;for(let[X,F]of J.entries())if(F!==W[X])return!1;return!0}function uF(T,$){let J=Object.entries($).filter(([,W])=>W!==void 0).map(([W,X])=>{if(L(X,c)||L(X,vT))return[W,X];else return[W,new zJ(X,T[u.Symbol.Columns][W])]});if(J.length===0)throw new Error("No values to set");return Object.fromEntries(J)}function rH(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 aH(T){return T[u.Symbol.Columns]}function V1(T){return L(T,D$)?T._.alias:L(T,a$)?T[uT].name:L(T,c)?void 0:T[u.Symbol.IsAlias]?T[u.Symbol.Name]:T[u.Symbol.BaseName]}function VT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function sH(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 r1 extends d{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 eH extends r1{static[O]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new TA(T,this.config)}}class TA extends b{static[O]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class $A extends r1{static[O]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new JA(T,this.config)}}class JA extends b{static[O]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function WA(T,$){let{name:J,config:W}=VT(T,$);if(W.mode==="number")return new eH(J);return new $A(J)}class XA extends d{static[O]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new FA(T,this.config)}}class FA extends b{static[O]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class YA extends d{static[O]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new GA(T,this.config)}}class GA extends b{static[O]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function HA(T,$){let{name:J,config:W}=VT(T,$);if(W.mode==="number")return new XA(J);return new YA(J)}class AA extends d{static[O]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new zA(T,this.config)}}class zA extends b{static[O]="PgBoolean";getSQLType(){return"boolean"}}function I2(T){return new AA(T??"")}class MA extends d{static[O]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new wA(T,this.config)}}class wA extends b{static[O]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function QA(T,$={}){let{name:J,config:W}=VT(T,$);return new MA(J,W)}class OA extends d{static[O]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new UA(T,this.config)}}class UA extends b{static[O]="PgCidr";getSQLType(){return"cidr"}}function SA(T){return new OA(T??"")}class _A extends d{static[O]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new DA(T,this.config)}}class DA extends b{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 KA(T){return($,J)=>{let{name:W,config:X}=VT($,J);return new _A(W,X,T)}}class E1 extends d{static[O]="PgDateColumnBaseBuilder";defaultNow(){return this.default(U`now()`)}}class VA extends E1{static[O]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new cF(T,this.config)}}class cF extends b{static[O]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class EA extends E1{static[O]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new oF(T,this.config)}}class oF extends b{static[O]="PgDateString";getSQLType(){return"date"}}function RA(T,$){let{name:J,config:W}=VT(T,$);if(W?.mode==="date")return new VA(J);return new EA(J)}class LA extends d{static[O]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new BA(T,this.config)}}class BA extends b{static[O]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function fA(T){return new LA(T??"")}class NA extends d{static[O]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new CA(T,this.config)}}class CA extends b{static[O]="PgInet";getSQLType(){return"inet"}}function ZA(T){return new NA(T??"")}class kA extends r1{static[O]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new yA(T,this.config)}}class yA extends b{static[O]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function dF(T){return new kA(T??"")}class qA extends d{static[O]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new IA(T,this.config)}}class IA extends b{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 jA(T,$={}){let{name:J,config:W}=VT(T,$);return new qA(J,W)}class xA extends d{static[O]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new lF(T,this.config)}}class lF extends b{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 bA(T){return new xA(T??"")}class PA extends d{static[O]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new nF(T,this.config)}}class nF extends b{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 vA(T){return new PA(T??"")}class hA extends d{static[O]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new mA(T,this.config)}}class mA extends b{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 gA extends d{static[O]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new pA(T,this.config)}}class pA extends b{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 uA(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new hA(J);return new gA(J)}class cA extends d{static[O]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new oA(T,this.config)}}class oA extends b{static[O]="PgMacaddr";getSQLType(){return"macaddr"}}function dA(T){return new cA(T??"")}class lA extends d{static[O]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new nA(T,this.config)}}class nA extends b{static[O]="PgMacaddr8";getSQLType(){return"macaddr8"}}function iA(T){return new lA(T??"")}class tA extends d{static[O]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new iF(T,this.config)}}class iF extends b{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 rA extends d{static[O]="PgNumericNumberBuilder";constructor(T,$,J){super(T,"number","PgNumericNumber");this.config.precision=$,this.config.scale=J}build(T){return new aA(T,this.config)}}class aA extends b{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 sA extends d{static[O]="PgNumericBigIntBuilder";constructor(T,$,J){super(T,"bigint","PgNumericBigInt");this.config.precision=$,this.config.scale=J}build(T){return new eA(T,this.config)}}class eA extends b{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 Tz(T,$){let{name:J,config:W}=VT(T,$),X=W?.mode;return X==="number"?new rA(J,W?.precision,W?.scale):X==="bigint"?new sA(J,W?.precision,W?.scale):new tA(J,W?.precision,W?.scale)}class $z extends d{static[O]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new Jz(T,this.config)}}class Jz extends b{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 Wz extends d{static[O]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new Xz(T,this.config)}}class Xz extends b{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 Fz(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new $z(J);return new Wz(J)}function RD(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function Yz(T,$){let J=new ArrayBuffer(8),W=new DataView(J);for(let X=0;X<8;X++)W.setUint8(X,T[$+X]);return W.getFloat64(0,!0)}function lY(T){let $=RD(T),J=0,W=$[J];J+=1;let X=new DataView($.buffer),F=X.getUint32(J,W===1);J+=4;let Y;if(F&536870912)Y=X.getUint32(J,W===1),J+=4;if((F&65535)===1){let G=Yz($,J);J+=8;let H=Yz($,J);return J+=8,[G,H]}throw new Error("Unsupported geometry type")}class Gz extends d{static[O]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new Hz(T,this.config)}}class Hz extends b{static[O]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return lY(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class Az extends d{static[O]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new zz(T,this.config)}}class zz extends b{static[O]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=lY(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function Mz(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new Gz(J);return new Az(J)}class wz extends d{static[O]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new Qz(T,this.config)}}class Qz extends b{static[O]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function Oz(T){return new wz(T??"")}class Uz extends d{static[O]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new Sz(T,this.config)}}class Sz extends b{static[O]="PgSerial";getSQLType(){return"serial"}}function _z(T){return new Uz(T??"")}class Dz extends r1{static[O]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new Kz(T,this.config)}}class Kz extends b{static[O]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function Vz(T){return new Dz(T??"")}class Ez extends d{static[O]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new Rz(T,this.config)}}class Rz extends b{static[O]="PgSmallSerial";getSQLType(){return"smallserial"}}function Lz(T){return new Ez(T??"")}class Bz extends d{static[O]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new fz(T,this.config)}}class fz extends b{static[O]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function Nz(T,$={}){let{name:J,config:W}=VT(T,$);return new Bz(J,W)}class Cz extends E1{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 tF(T,this.config)}}class tF extends b{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 Zz(T,$={}){let{name:J,config:W}=VT(T,$);return new Cz(J,W.withTimezone??!1,W.precision)}class kz extends E1{static[O]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new rF(T,this.config)}}class rF extends b{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 yz extends E1{static[O]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new aF(T,this.config)}}class aF extends b{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 PJ(T,$={}){let{name:J,config:W}=VT(T,$);if(W?.mode==="string")return new yz(J,W.withTimezone??!1,W.precision);return new kz(J,W?.withTimezone??!1,W?.precision)}class qz extends d{static[O]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(U`gen_random_uuid()`)}build(T){return new sF(T,this.config)}}class sF extends b{static[O]="PgUUID";getSQLType(){return"uuid"}}function MJ(T){return new qz(T??"")}class Iz extends d{static[O]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new jz(T,this.config)}}class jz extends b{static[O]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function Z$(T,$={}){let{name:J,config:W}=VT(T,$);return new Iz(J,W)}class xz extends d{static[O]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new bz(T,this.config)}}class bz extends b{static[O]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function Pz(T,$){let{name:J,config:W}=VT(T,$);return new xz(J,W)}class vz extends d{static[O]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new hz(T,this.config)}}class hz extends b{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 mz(T,$){let{name:J,config:W}=VT(T,$);return new vz(J,W)}class gz extends d{static[O]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new pz(T,this.config)}}class pz extends b{static[O]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function uz(T,$){let{name:J,config:W}=VT(T,$);return new gz(J,W)}class cz extends d{static[O]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new oz(T,this.config)}}class oz extends b{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 dz(T,$){let{name:J,config:W}=VT(T,$);return new cz(J,W)}function lz(){return{bigint:WA,bigserial:HA,boolean:I2,char:QA,cidr:SA,customType:KA,date:RA,doublePrecision:fA,inet:ZA,integer:dF,interval:jA,json:bA,jsonb:vA,line:uA,macaddr:dA,macaddr8:iA,numeric:Tz,point:Fz,geometry:Mz,real:Oz,serial:_z,smallint:Vz,smallserial:Lz,text:Nz,time:Zz,timestamp:PJ,uuid:MJ,varchar:Z$,bit:Pz,halfvec:mz,sparsevec:uz,vector:dz}}var nY=Symbol.for("drizzle:PgInlineForeignKeys"),nz=Symbol.for("drizzle:EnableRLS");class k$ extends u{static[O]="PgTable";static Symbol=Object.assign({},u.Symbol,{InlineForeignKeys:nY,EnableRLS:nz});[nY]=[];[nz]=!1;[u.Symbol.ExtraConfigBuilder]=void 0;[u.Symbol.ExtraConfigColumns]={}}function LD(T,$,J,W,X=T){let F=new k$(T,W,X),Y=typeof $==="function"?$(lz()):$,G=Object.fromEntries(Object.entries(Y).map(([z,M])=>{let w=M;w.setName(z);let S=w.build(F);return F[nY].push(...w.buildForeignKeys(S,F)),[z,S]})),H=Object.fromEntries(Object.entries(Y).map(([z,M])=>{let w=M;w.setName(z);let S=w.buildExtraConfigColumn(F);return[z,S]})),A=Object.assign(F,G);if(A[u.Symbol.Columns]=G,A[u.Symbol.ExtraConfigColumns]=H,J)A[k$.Symbol.ExtraConfigBuilder]=J;return Object.assign(A,{enableRLS:()=>{return A[k$.Symbol.EnableRLS]=!0,A}})}var a1=(T,$,J)=>{return LD(T,$,J,void 0)};function iz(...T){if(T[0].columns)return new j2(T[0].columns,T[0].name);return new j2(T)}class j2{static[O]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new tz(T,this.columns,this.name)}}class tz{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[O]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[k$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class iY{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[u.Symbol.Name]}static[O]="Relation";referencedTableName;fieldName}class rz{constructor(T,$){this.table=T,this.config=$}static[O]="Relations"}class s1 extends iY{constructor(T,$,J,W){super(T,$,J?.relationName);this.config=J,this.isNullable=W}static[O]="One";withFieldName(T){let $=new s1(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class x2 extends iY{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[O]="Many";withFieldName(T){let $=new x2(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function az(){return{and:y2,between:gH,eq:gF,exists:hH,gt:pF,gte:qH,ilike:oH,inArray:xH,isNull:PH,isNotNull:vH,like:uH,lt:IH,lte:jH,ne:ZH,not:yH,notBetween:pH,notExists:mH,notLike:cH,notIlike:dH,notInArray:bH,or:kH,sql:U}}function sz(){return{sql:U,asc:lH,desc:nH}}function ez(T,$){if(Object.keys(T).length===1&&"default"in T&&!L(T.default,u))T=T.default;let J={},W={},X={};for(let[F,Y]of Object.entries(T))if(L(Y,u)){let G=h0(Y),H=W[G];J[G]=F,X[F]={tsName:F,dbName:Y[u.Symbol.Name],schema:Y[u.Symbol.Schema],columns:Y[u.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let z of Object.values(Y[u.Symbol.Columns]))if(z.primary)X[F].primaryKey.push(z);let A=Y[u.Symbol.ExtraConfigBuilder]?.(Y[u.Symbol.ExtraConfigColumns]);if(A){for(let z of Object.values(A))if(L(z,j2))X[F].primaryKey.push(...z.columns)}}else if(L(Y,rz)){let G=h0(Y.table),H=J[G],A=Y.config($(Y.table)),z;for(let[M,w]of Object.entries(A))if(H){let S=X[H];if(S.relations[M]=w,z)S.primaryKey.push(...z)}else{if(!(G in W))W[G]={relations:{},primaryKey:z};W[G].relations[M]=w}}return{tables:X,tableNamesMap:J}}function BD(T){return function $(J,W){return new s1(T,J,W,W?.fields.reduce((X,F)=>X&&F.notNull,!0)??!1)}}function fD(T){return function $(J,W){return new x2(T,J,W)}}function TM(T,$,J){if(L(J,s1)&&J.config)return{fields:J.config.fields,references:J.config.references};let W=$[h0(J.referencedTable)];if(!W)throw new Error(`Table "${J.referencedTable[u.Symbol.Name]}" not found in schema`);let X=T[W];if(!X)throw new Error(`Table "${W}" not found in schema`);let F=J.sourceTable,Y=$[h0(F)];if(!Y)throw new Error(`Table "${F[u.Symbol.Name]}" not found in schema`);let G=[];for(let H of Object.values(X.relations))if(J.relationName&&J!==H&&H.relationName===J.relationName||!J.relationName&&H.referencedTable===J.sourceTable)G.push(H);if(G.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[u.Symbol.Name]}". Please specify relation name`);if(G[0]&&L(G[0],s1)&&G[0].config)return{fields:G[0].config.references,references:G[0].config.fields};throw new Error(`There is not enough information to infer relation "${Y}.${J.fieldName}"`)}function $M(T){return{one:BD(T),many:fD(T)}}function eF(T,$,J,W,X=(F)=>F){let F={};for(let[Y,G]of W.entries())if(G.isJson){let H=$.relations[G.tsKey],A=J[Y],z=typeof A==="string"?JSON.parse(A):A;F[G.tsKey]=L(H,s1)?z&&eF(T,T[G.relationTableTsKey],z,G.selection,X):z.map((M)=>eF(T,T[G.relationTableTsKey],M,G.selection,X))}else{let H=X(J[Y]),A=G.field,z;if(L(A,vT))z=A;else if(L(A,c))z=A.decoder;else z=A.sql.decoder;F[G.tsKey]=H===null?null:z.mapFromDriverValue(H)}return F}import zL from"path";import tD from"os";import rD from"fs";var T4=new Map,tY=new Map,rY=Symbol("OriginError"),hW={};class RJ extends Promise{constructor(T,$,J,W,X={}){let F,Y;super((G,H)=>{F=G,Y=H});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=W,this.options=X,this.state=null,this.statement=null,this.resolve=(G)=>(this.active=!1,F(G)),this.reject=(G)=>(this.active=!1,Y(G)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[rY]=this.handler.debug?new Error:this.tagged&&ND(this.strings)}get origin(){return(this.handler.debug?this[rY].stack:this.tagged&&tY.has(this.strings)?tY.get(this.strings):tY.set(this.strings,this[rY].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((X,F)=>{this.cursorFn=(Y)=>{return X({value:Y,done:!1}),new Promise((G)=>J=G)},this.resolve=()=>(this.active=!1,X({done:!0})),this.reject=(Y)=>(this.active=!1,F(Y))});return this.execute(),W},return(){return J&&J(hW),{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 ND(T){if(T4.has(T))return T4.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,T4.set(T,new Error),Error.stackTraceLimit=$,T4.get(T)}class mW extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var H$={connection:JM,postgres:WM,generic:XM,notSupported:FM};function JM(T,$,J){let{host:W,port:X}=J||$,F=Object.assign(new Error("write "+T+" "+($.path||W+":"+X)),{code:T,errno:T,address:$.path||W},$.path?{}:{port:X});return Error.captureStackTrace(F,JM),F}function WM(T){let $=new mW(T);return Error.captureStackTrace($,WM),$}function XM(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,XM),J}function FM(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,FM),$}var CD={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 W4{then(){aY()}catch(){aY()}finally(){aY()}}class h2 extends W4{constructor(T){super();this.value=Y4(T)}}class sJ extends W4{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class X4 extends W4{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,W){let X=ZD.map(([F,Y])=>({fn:Y,i:T.search(F)})).sort((F,Y)=>F.i-Y.i).pop();return X.i===-1?J9(this.first,W):X.fn(this.first,this.rest,$,J,W)}}function F4(T,$,J,W){let X=T instanceof sJ?T.value:T;if(X===void 0){if(T instanceof sJ?T.value=W.transform.undefined:X=T=W.transform.undefined,X===void 0)throw H$.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof sJ?($.push(T.value),T.array?T.array[T.type||J4(T.value)]||T.type||AM(T.value):T.type):($.push(T),J4(T)))}var GM=MM(CD);function T9(T,$,J,W,X,F){for(let Y=1;Y<T.strings.length;Y++)$+=$9($,J,W,X,F)+T.strings[Y],J=T.args[Y];return $}function $9(T,$,J,W,X){return $ instanceof X4?$.build(T,J,W,X):$ instanceof RJ?eY($,J,W,X):$ instanceof h2?$.value:$&&$[0]instanceof RJ?$.reduce((F,Y)=>F+" "+eY(Y,J,W,X),""):F4($,J,W,X)}function eY(T,$,J,W){return T.fragment=!0,T9(T,T.strings[0],T.args[0],$,J,W)}function HM(T,$,J,W,X){return T.map((F)=>"("+W.map((Y)=>$9("values",F[Y],$,J,X)).join(",")+")").join(",")}function YM(T,$,J,W,X){let F=Array.isArray(T[0]),Y=$.length?$.flat():Object.keys(F?T[0]:T);return HM(F?T:[T],J,W,Y,X)}function $4(T,$,J,W,X){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return J9(T,X);let F;return($.length?$.flat():Object.keys(T)).map((G)=>{return F=T[G],(F instanceof RJ?eY(F,J,W,X):F instanceof h2?F.value:F4(F,J,W,X))+" as "+Y4(X.transform.column.to?X.transform.column.to(G):G)}).join(",")}var ZD=Object.entries({values:YM,in:(...T)=>{let $=YM(...T);return $==="()"?"(null)":$},select:$4,as:$4,returning:$4,"\\(":$4,update(T,$,J,W,X){return($.length?$.flat():Object.keys(T)).map((F)=>Y4(X.transform.column.to?X.transform.column.to(F):F)+"="+$9("values",T[F],J,W,X))},insert(T,$,J,W,X){let F=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+J9(F,X)+")values"+HM(Array.isArray(T)?T:[T],J,W,F,X)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function aY(){throw H$.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:kD,parsers:yD}=GM;function AM(T){if(Array.isArray(T))return AM(T[0]);return typeof T==="string"?1009:0}var zM=function(T){let $=MM(T||{});return{serializers:Object.assign({},kD,$.serializers),parsers:Object.assign({},yD,$.parsers)}};function MM(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 J9(T,{transform:{column:$}}){return T.map((J)=>Y4($.to?$.to(J):J)).join(",")}var Y4=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},J4=function T($){return $ instanceof sJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},qD=/\\/g,ID=/"/g;function jD(T){return T.replace(qD,"\\\\").replace(ID,"\\\"")}var wM=function T($,J,W,X){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let F=$[0],Y=X===1020?";":",";if(Array.isArray(F)&&!F.type)return"{"+$.map((G)=>T(G,J,W,X)).join(Y)+"}";return"{"+$.map((G)=>{if(G===void 0){if(G=W.transform.undefined,G===void 0)throw H$.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return G===null?"null":'"'+jD(J?J(G.type?G.value:G):""+G)+'"'}).join(Y)+"}"},sY={i:0,char:null,str:"",quoted:!1,last:0},QM=function T($,J,W){return sY.i=sY.last=0,OM(sY,$,J,W)};function OM(T,$,J,W){let X=[],F=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==='"')X.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,X.push(OM(T,$,J,W));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&X.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===F&&T.p!=="}"&&T.p!=='"')X.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&&X.push(J?J($.slice(T.last,T.i+1)):$.slice(T.last,T.i+1)),X}var m0=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},g0=(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,"-"),b2=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),P2=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),v2=(T)=>T.replace(/-/g,"_");function W9(T){return function $(J,W){return typeof J==="object"&&J!==null&&(W.type===114||W.type===3802)?Array.isArray(J)?J.map((X)=>$(X,W)):Object.entries(J).reduce((X,[F,Y])=>Object.assign(X,{[T(F)]:$(Y,W)}),{}):J}}m0.column={from:m0};m0.value={from:W9(m0)};b2.column={to:b2};var X9={...m0};X9.column.to=b2;g0.column={from:g0};g0.value={from:W9(g0)};P2.column={to:P2};var F9={...g0};F9.column.to=P2;p0.column={from:p0};p0.value={from:W9(p0)};v2.column={to:v2};var Y9={...p0};Y9.column.to=v2;import UM from"net";import vD from"tls";import m2 from"crypto";import G9 from"stream";import{performance as SM}from"perf_hooks";class u0 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 wJ=xD;function xD(T=[]){let $=T.slice(),J=0;return{get length(){return $.length-J},remove:(W)=>{let X=$.indexOf(W);return X===-1?null:($.splice(X,1),W)},push:(W)=>($.push(W),W),shift:()=>{let W=$[J++];if(J===$.length)J=0,$=[];else $[J-1]=void 0;return W}}}var P$=Buffer.allocUnsafe(256),bD="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return P$[0]=J,bT.i=5,bT},T},{}),bT=Object.assign(PD,bD,{N:String.fromCharCode(0),i:0,inc(T){return bT.i+=T,bT},str(T){let $=Buffer.byteLength(T);return G4($),bT.i+=P$.write(T,bT.i,$,"utf8"),bT},i16(T){return G4(2),P$.writeUInt16BE(T,bT.i),bT.i+=2,bT},i32(T,$){if($||$===0)return P$.writeUInt32BE(T,$),bT;return G4(4),P$.writeUInt32BE(T,bT.i),bT.i+=4,bT},z(T){return G4(T),P$.fill(0,bT.i,bT.i+T),bT.i+=T,bT},raw(T){return P$=Buffer.concat([P$.subarray(0,bT.i),T]),bT.i=P$.length,bT},end(T=1){P$.writeUInt32BE(bT.i-T,T);let $=P$.subarray(0,bT.i);return bT.i=0,P$=Buffer.allocUnsafe(256),$}}),s=bT;function G4(T){if(P$.length-bT.i<T){let $=P$,J=$.length;P$=Buffer.allocUnsafe(J+(J>>1)+T),$.copy(P$)}}function PD(){return bT.i=0,bT}var z9=KM,hD=1,e1=s().S().end(),_M=s().H().end(),mD=s().i32(8).i32(80877103).end(8),gD=Buffer.concat([s().E().str(s.N).i32(0).end(),e1]),pD=s().D().str("S").str(s.N).end(),gW=()=>{},uD=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),cD={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 KM(T,$={},{onopen:J=gW,onend:W=gW,onclose:X=gW}={}){let{ssl:F,max:Y,user:G,host:H,port:A,database:z,parsers:M,transform:w,onnotice:S,onnotify:_,onparameter:K,max_pipeline:Z,keep_alive:k,backoff:N,target_session_attrs:q}=T,V=wJ(),f=hD++,C={pid:null,secret:null},B=A9(a4,T.idle_timeout),m=A9(a4,T.max_lifetime),$T=A9(WU,T.connect_timeout),E=null,XT,n=new u0,HT=Buffer.alloc(0),yT=T.fetch_types,eT={},l$={},J1=Math.random().toString(36).slice(2),I=1,a=0,CT=0,tT=0,z$=0,UT=0,gT=0,F$=0,rT=null,dT=null,y$=!1,pT=null,CJ=null,q$=null,b1=null,M$=null,lT=null,ZJ=null,pJ=null,h=null,AX=null,I$={queue:$.closed,idleTimer:B,connect(Q){q$=Q||!0,e5()},terminate:MX,execute:zX,cancel:eO,end:a4,count:0,id:f};return $.closed&&$.closed.push(I$),I$;async function sO(){let Q;try{Q=T.socket?await Promise.resolve(T.socket(T)):new UM.Socket}catch(D){r0(D);return}return Q.on("error",r0),Q.on("close",T7),Q.on("drain",a5),Q}async function eO({pid:Q,secret:D},TT,ZT){try{XT=s().i32(16).i32(80877102).i32(Q).i32(D).end(16),await s5(),E.once("error",ZT),E.once("close",TT)}catch(T$){ZT(T$)}}function zX(Q){if(y$)return E8(Q,H$.connection("CONNECTION_DESTROYED",T));if(Q.cancelled)return;try{return Q.state=C,h?V.push(Q):(h=Q,h.active=!0),JU(Q),f$(TU(Q))&&!Q.describeFirst&&!Q.cursorFn&&V.length<Z&&(!Q.options.onexecute||Q.options.onexecute(I$))}catch(D){return V.length===0&&f$(e1),uJ(D),!0}}function TU(Q){if(Q.parameters.length>=65534)throw H$.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return Q.options.simple?s().Q().str(Q.statement.string+s.N).end():Q.describeFirst?Buffer.concat([i5(Q),_M]):Q.prepare?Q.prepared?V8(Q):Buffer.concat([i5(Q),V8(Q)]):$U(Q)}function i5(Q){return Buffer.concat([J7(Q.statement.string,Q.parameters,Q.statement.types,Q.statement.name),pU("S",Q.statement.name)])}function V8(Q){return Buffer.concat([gU(Q.parameters,Q.statement.types,Q.statement.name,Q.cursorName),Q.cursorFn?W7("",Q.cursorRows):gD])}function $U(Q){return Buffer.concat([J7(Q.statement.string,Q.parameters,Q.statement.types),pD,V8(Q)])}function JU(Q){let D=[],TT=[],ZT=T9(Q,Q.strings[0],Q.args[0],D,TT,T);!Q.tagged&&Q.args.forEach((T$)=>F4(T$,D,TT,T)),Q.prepare=T.prepare&&("prepare"in Q.options?Q.options.prepare:!0),Q.string=ZT,Q.signature=Q.prepare&&TT+ZT,Q.onlyDescribe&&delete l$[Q.signature],Q.parameters=Q.parameters||D,Q.prepared=Q.prepare&&Q.signature in l$,Q.describeFirst=Q.onlyDescribe||D.length&&!Q.prepared,Q.statement=Q.prepared?l$[Q.signature]:{string:ZT,types:TT,name:Q.prepare?J1+I++:""},typeof T.debug==="function"&&T.debug(f,ZT,D,TT)}function f$(Q,D){if(lT=lT?Buffer.concat([lT,Q]):Buffer.from(Q),D||lT.length>=1024)return t5(D);return dT===null&&(dT=setImmediate(t5)),!0}function t5(Q){let D=E.write(lT,Q);return dT!==null&&clearImmediate(dT),lT=dT=null,D}function WU(){uJ(H$.connection("CONNECT_TIMEOUT",T,E)),E.destroy()}async function r5(){if(f$(mD),!await new Promise((D)=>E.once("data",(TT)=>D(TT[0]===83)))&&F==="prefer")return t0();E.removeAllListeners(),E=vD.connect({socket:E,servername:UM.isIP(E.host)?void 0:E.host,...F==="require"||F==="allow"||F==="prefer"?{rejectUnauthorized:!1}:F==="verify-full"?{}:typeof F==="object"?F:{}}),E.on("secureConnect",t0),E.on("error",r0),E.on("close",T7),E.on("drain",a5)}function a5(){!h&&J(I$)}function r4(Q){if(pT){if(pT.push(Q),CT-=Q.length,CT>=0)return}HT=pT?Buffer.concat(pT,UT-CT):HT.length===0?Q:Buffer.concat([HT,Q],HT.length+Q.length);while(HT.length>4){if(UT=HT.readUInt32BE(1),UT>=HT.length){CT=UT-HT.length,pT=[HT];break}try{XU(HT.subarray(0,UT+1))}catch(D){h&&(h.cursorFn||h.describeFirst)&&f$(e1),uJ(D)}HT=HT.subarray(UT+1),CT=0,pT=null}}async function s5(){if(y$=!1,eT={},E||(E=await sO()),!E)return;if($T.start(),T.socket)return F?r5():t0();if(E.on("connect",F?r5:t0),T.path)return E.connect(T.path);E.ssl=F,E.connect(A[tT],H[tT]),E.host=H[tT],E.port=A[tT],tT=(tT+1)%A.length}function e5(){setTimeout(s5,a?a+gT-SM.now():0)}function t0(){try{l$={},yT=T.fetch_types,J1=Math.random().toString(36).slice(2),I=1,m.start(),E.on("data",r4),k&&E.setKeepAlive&&E.setKeepAlive(!0,1000*k);let Q=cU();f$(Q)}catch(Q){r0(Q)}}function r0(Q){if(I$.queue===$.connecting&&T.host[z$+1])return;uJ(Q);while(V.length)E8(V.shift(),Q)}function uJ(Q){M$&&(M$.destroy(Q),M$=null),h&&E8(h,Q),q$&&(E8(q$,Q),q$=null)}function E8(Q,D){"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+Q.origin.replace(/.*\n/,`
68
+ `),enumerable:T.debug},query:{value:Q.string,enumerable:T.debug},parameters:{value:Q.parameters,enumerable:T.debug},args:{value:Q.args,enumerable:T.debug},types:{value:Q.statement&&Q.statement.types,enumerable:T.debug}}),Q.reject(D)}function a4(){return b1||(!I$.reserved&&W(I$),!I$.reserved&&!q$&&!h&&V.length===0?(MX(),new Promise((Q)=>E&&E.readyState!=="closed"?E.once("close",Q):Q())):b1=new Promise((Q)=>ZJ=Q))}function MX(){if(y$=!0,M$||h||q$||V.length)r0(H$.connection("CONNECTION_DESTROYED",T));if(clearImmediate(dT),E)E.removeListener("data",r4),E.removeListener("connect",t0),E.readyState==="open"&&E.end(s().X().end());ZJ&&(ZJ(),b1=ZJ=null)}async function T7(Q){if(HT=Buffer.alloc(0),CT=0,pT=null,clearImmediate(dT),E.removeListener("data",r4),E.removeListener("connect",t0),B.cancel(),m.cancel(),$T.cancel(),E.removeAllListeners(),E=null,q$)return e5();!Q&&(h||V.length)&&r0(H$.connection("CONNECTION_CLOSED",T,E)),a=SM.now(),Q&&T.shared.retries++,gT=(typeof N==="function"?N(T.shared.retries):N)*1000,X(I$,H$.connection("CONNECTION_CLOSED",T,E))}function XU(Q,D=Q[0]){(D===68?FU:D===100?IU:D===65?NU:D===83?YU:D===90?GU:D===67?HU:D===50?$7:D===49?AU:D===116?zU:D===84?MU:D===82?wU:D===110?DU:D===75?KU:D===69?BU:D===115?CU:D===51?ZU:D===71?kU:D===78?xU:D===72?yU:D===99?jU:D===73?bU:D===86?PU:D===118?vU:D===87?qU:hU)(Q)}function FU(Q){let D=7,TT,ZT,T$,j$=h.isRaw?new Array(h.statement.columns.length):{};for(let m$=0;m$<h.statement.columns.length;m$++)ZT=h.statement.columns[m$],TT=Q.readInt32BE(D),D+=4,T$=TT===-1?null:h.isRaw===!0?Q.subarray(D,D+=TT):ZT.parser===void 0?Q.toString("utf8",D,D+=TT):ZT.parser.array===!0?ZT.parser(Q.toString("utf8",D+1,D+=TT)):ZT.parser(Q.toString("utf8",D,D+=TT)),h.isRaw?j$[m$]=h.isRaw===!0?T$:w.value.from?w.value.from(T$,ZT):T$:j$[ZT.name]=w.value.from?w.value.from(T$,ZT):T$;h.forEachFn?h.forEachFn(w.row.from?w.row.from(j$):j$,n):n[F$++]=w.row.from?w.row.from(j$):j$}function YU(Q){let[D,TT]=Q.toString("utf8",5,Q.length-1).split(s.N);if(eT[D]=TT,T.parameters[D]!==TT)T.parameters[D]=TT,K&&K(D,TT)}function GU(Q){if(h&&h.options.simple&&h.resolve(CJ||n),h=CJ=null,n=new u0,$T.cancel(),q$){if(q){if(!eT.in_hot_standby||!eT.default_transaction_read_only)return LU();else if(RU(q,eT))return MX()}if(yT)return q$===!0&&(q$=null),VU();q$!==!0&&zX(q$),T.shared.retries=z$=0,q$=null;return}while(V.length&&(h=V.shift())&&(h.active=!0,h.cancelled))KM(T).cancel(h.state,h.cancelled.resolve,h.cancelled.reject);if(h)return;I$.reserved?!I$.reserved.release&&Q[5]===73?b1?MX():(I$.reserved=null,J(I$)):I$.reserved():b1?MX():J(I$)}function HU(Q){F$=0;for(let D=Q.length-1;D>0;D--){if(Q[D]===32&&Q[D+1]<58&&n.count===null)n.count=+Q.toString("utf8",D+1,Q.length-1);if(Q[D-1]>=65){n.command=Q.toString("utf8",5,D),n.state=C;break}}if(AX&&(AX(),AX=null),n.command==="BEGIN"&&Y!==1&&!I$.reserved)return uJ(H$.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(h.options.simple)return $7();if(h.cursorFn)n.count&&h.cursorFn(n),f$(e1);h.resolve(n)}function AU(){h.parsing=!1}function $7(){!n.statement&&(n.statement=h.statement),n.columns=h.statement.columns}function zU(Q){let D=Q.readUInt16BE(5);for(let TT=0;TT<D;++TT)!h.statement.types[TT]&&(h.statement.types[TT]=Q.readUInt32BE(7+TT*4));h.prepare&&(l$[h.signature]=h.statement),h.describeFirst&&!h.onlyDescribe&&(f$(V8(h)),h.describeFirst=!1)}function MU(Q){if(n.command)CJ=CJ||[n],CJ.push(n=new u0),n.count=null,h.statement.columns=null;let D=Q.readUInt16BE(5),TT=7,ZT;h.statement.columns=Array(D);for(let T$=0;T$<D;++T$){ZT=TT;while(Q[TT++]!==0);let j$=Q.readUInt32BE(TT),m$=Q.readUInt16BE(TT+4),P1=Q.readUInt32BE(TT+6);h.statement.columns[T$]={name:w.column.from?w.column.from(Q.toString("utf8",ZT,TT-1)):Q.toString("utf8",ZT,TT-1),parser:M[P1],table:j$,number:m$,type:P1},TT+=18}if(n.statement=h.statement,h.onlyDescribe)return h.resolve(h.statement),f$(e1)}async function wU(Q,D=Q.readUInt32BE(5)){(D===3?QU:D===5?OU:D===10?UU:D===11?SU:D===12?_U:D!==0?mU:gW)(Q,D)}async function QU(){let Q=await s4();f$(s().p().str(Q).z(1).end())}async function OU(Q){let D="md5"+await DM(Buffer.concat([Buffer.from(await DM(await s4()+G)),Q.subarray(9)]));f$(s().p().str(D).z(1).end())}async function UU(){pJ=(await m2.randomBytes(18)).toString("base64"),s().p().str("SCRAM-SHA-256"+s.N);let Q=s.i;f$(s.inc(4).str("n,,n=*,r="+pJ).i32(s.i-Q-4,Q).end())}async function SU(Q){let D=Q.toString("utf8",9).split(",").reduce((m$,P1)=>(m$[P1[0]]=P1.slice(2),m$),{}),TT=await m2.pbkdf2Sync(await s4(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),ZT=await H4(TT,"Client Key"),T$="n=*,r="+pJ+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;rT=(await H4(await H4(TT,"Server Key"),T$)).toString("base64");let j$="c=biws,r="+D.r+",p="+dD(ZT,Buffer.from(await H4(await oD(ZT),T$))).toString("base64");f$(s().p().str(j$).end())}function _U(Q){if(Q.toString("utf8",9).split(s.N,1)[0].slice(2)===rT)return;uJ(H$.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),E.destroy()}function s4(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function DU(){if(n.statement=h.statement,n.statement.columns=[],h.onlyDescribe)return h.resolve(h.statement),f$(e1)}function KU(Q){C.pid=Q.readUInt32BE(5),C.secret=Q.readUInt32BE(9)}async function VU(){yT=!1,(await new RJ([`
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
- `],[],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$([`
75
+ `],[],zX)).forEach(({oid:D,typarray:TT})=>EU(D,TT))}function EU(Q,D){if(!!T.parsers[D]&&!!T.serializers[D])return;let TT=T.parsers[Q];T.shared.typeArrayMap[Q]=D,T.parsers[D]=(ZT)=>QM(ZT,TT,D),T.parsers[D].array=!0,T.serializers[D]=(ZT)=>wM(ZT,T.serializers[Q],T,D)}function RU(Q,D){return Q==="read-write"&&D.default_transaction_read_only==="on"||Q==="read-only"&&D.default_transaction_read_only==="off"||Q==="primary"&&D.in_hot_standby==="on"||Q==="standby"&&D.in_hot_standby==="off"||Q==="prefer-standby"&&D.in_hot_standby==="off"&&T.host[z$]}function LU(){let Q=new RJ([`
76
76
  show transaction_read_only;
77
77
  select pg_catalog.pg_is_in_recovery()
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`
78
+ `],[],zX,null,{simple:!0});Q.resolve=([[D],[TT]])=>{eT.default_transaction_read_only=D.transaction_read_only,eT.in_hot_standby=TT.pg_is_in_recovery?"on":"off"},Q.execute()}function BU(Q){h&&(h.cursorFn||h.describeFirst)&&f$(e1);let D=H$.postgres(H9(Q));h&&h.retried?uJ(h.retried):h&&h.prepared&&uD.has(D.routine)?fU(h,D):uJ(D)}function fU(Q,D){delete l$[Q.signature],Q.retried=D,zX(Q)}function NU(Q){if(!_)return;let D=9;while(Q[D++]!==0);_(Q.toString("utf8",9,D-1),Q.toString("utf8",D,Q.length-1))}async function CU(){try{let Q=await Promise.resolve(h.cursorFn(n));F$=0,Q===hW?f$(uU(h.portal)):(n=new u0,f$(W7("",h.cursorRows)))}catch(Q){f$(e1),h.reject(Q)}}function ZU(){n.count&&h.cursorFn(n),h.resolve(n)}function kU(){M$=new G9.Writable({autoDestroy:!0,write(Q,D,TT){E.write(s().d().raw(Q).end(),TT)},destroy(Q,D){D(Q),E.write(s().f().str(Q+s.N).end()),M$=null},final(Q){E.write(s().c().end()),AX=Q}}),h.resolve(M$)}function yU(){M$=new G9.Readable({read(){E.resume()}}),h.resolve(M$)}function qU(){M$=new G9.Duplex({autoDestroy:!0,read(){E.resume()},write(Q,D,TT){E.write(s().d().raw(Q).end(),TT)},destroy(Q,D){D(Q),E.write(s().f().str(Q+s.N).end()),M$=null},final(Q){E.write(s().c().end()),AX=Q}}),h.resolve(M$)}function IU(Q){M$&&(M$.push(Q.subarray(5))||E.pause())}function jU(){M$&&M$.push(null),M$=null}function xU(Q){S?S(H9(Q)):console.log(H9(Q))}function bU(){}function PU(){uJ(H$.notSupported("FunctionCallResponse"))}function vU(){uJ(H$.notSupported("NegotiateProtocolVersion"))}function hU(Q){console.error("Postgres.js : Unknown Message:",Q[0])}function mU(Q,D){console.error("Postgres.js : Unknown Auth:",D)}function gU(Q,D,TT="",ZT=""){let T$,j$;return s().B().str(ZT+s.N).str(TT+s.N).i16(0).i16(Q.length),Q.forEach((m$,P1)=>{if(m$===null)return s.i32(4294967295);j$=D[P1],Q[P1]=m$=j$ in T.serializers?T.serializers[j$](m$):""+m$,T$=s.i,s.inc(4).str(m$).i32(s.i-T$-4,T$)}),s.i16(0),s.end()}function J7(Q,D,TT,ZT=""){return s().P().str(ZT+s.N).str(Q+s.N).i16(D.length),D.forEach((T$,j$)=>s.i32(TT[j$]||0)),s.end()}function pU(Q,D=""){return s().D().str(Q).str(D+s.N).end()}function W7(Q="",D=0){return Buffer.concat([s().E().str(Q+s.N).i32(D).end(),_M])}function uU(Q=""){return Buffer.concat([s().C().str("P").str(Q+s.N).end(),s().S().end()])}function cU(){return XT||s().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:G,database:z,client_encoding:"UTF8"},T.connection)).filter(([,Q])=>Q).map(([Q,D])=>Q+s.N+D).join(s.N)).z(2).end(0)}}function H9(T){let $={},J=5;for(let W=5;W<T.length-1;W++)if(T[W]===0)$[cD[T[J]]]=T.toString("utf8",J+1,W),J=W+1;return $}function DM(T){return m2.createHash("md5").update(T).digest("hex")}function H4(T,$){return m2.createHmac("sha256",T).update($).digest()}function oD(T){return m2.createHash("sha256").update(T).digest()}function dD(T,$){let J=Math.max(T.length,$.length),W=Buffer.allocUnsafe(J);for(let X=0;X<J;X++)W[X]=T[X]^$[X];return W}function A9(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:gW,start:gW};let J;return{cancel(){J&&(clearTimeout(J),J=null)},start(){J&&clearTimeout(J),J=setTimeout(W,$*1000,arguments)}};function W(X){T.apply(null,X),J=null}}var VM=()=>{};function M9(T,$){let J=new Map,W="postgresjs_"+Math.random().toString(36).slice(2),X={},F,Y,G=!1,H=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(G)return;Y=null,X.pid=X.secret=void 0,w(await S(H,W,$.publications)),J.forEach((K)=>K.forEach(({onsubscribe:Z})=>Z()))},no_subscribe:!0}),A=H.end,z=H.close;return H.end=async()=>{return G=!0,Y&&await new Promise((K)=>(Y.once("close",K),Y.end())),A()},H.close=async()=>{return Y&&await new Promise((K)=>(Y.once("close",K),Y.end())),z()},M;async function M(K,Z,k=VM,N=VM){if(K=iD(K),!F)F=S(H,W,$.publications);let q={fn:Z,onsubscribe:k},V=J.has(K)?J.get(K).add(q):J.set(K,new Set([q])).get(K),f=()=>{V.delete(q),V.size===0&&J.delete(K)};return F.then((C)=>{return w(C),k(),Y&&Y.on("error",N),{unsubscribe:f,state:X,sql:H}})}function w(K){Y=K.stream,X.pid=K.state.pid,X.secret=K.state.secret}async function S(K,Z,k){if(!k)throw new Error("Missing publication names");let N=await K.unsafe(`CREATE_REPLICATION_SLOT ${Z} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[q]=N,V=await K.unsafe(`START_REPLICATION SLOT ${Z} LOGICAL ${q.consistent_point} (proto_version '1', publication_names '${k}')`).writable(),f={lsn:Buffer.concat(q.consistent_point.split("/").map((E)=>Buffer.from(("00000000"+E).slice(-8),"hex")))};return V.on("data",B),V.on("error",C),V.on("close",K.close),{stream:V,state:N.state};function C(E){console.error("Unexpected error during logical streaming - reconnecting",E)}function B(E){if(E[0]===119)nD(E.subarray(25),f,K.options.parsers,m,$.transform);else if(E[0]===107&&E[17])f.lsn=E.subarray(1,9),$T()}function m(E,XT){let n=XT.relation.schema+"."+XT.relation.table;_("*",E,XT),_("*:"+n,E,XT),XT.relation.keys.length&&_("*:"+n+"="+XT.relation.keys.map((HT)=>E[HT.name]),E,XT),_(XT.command,E,XT),_(XT.command+":"+n,E,XT),XT.relation.keys.length&&_(XT.command+":"+n+"="+XT.relation.keys.map((HT)=>E[HT.name]),E,XT)}function $T(){let E=Buffer.alloc(34);E[0]=114,E.fill(f.lsn,1),E.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),V.write(E)}}function _(K,Z,k){J.has(K)&&J.get(K).forEach(({fn:N})=>N(Z,k,K))}}function lD(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function nD(T,$,J,W,X){let F=(Y,[G,H])=>(Y[G.charCodeAt(0)]=H,Y);Object.entries({R:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)]={schema:Y.toString("utf8",G+=4,G=Y.indexOf(0,G))||"pg_catalog",table:Y.toString("utf8",G+1,G=Y.indexOf(0,G+1)),columns:Array(Y.readUInt16BE(G+=2)),keys:[]};G+=2;let A=0,z;while(G<Y.length)z=H.columns[A++]={key:Y[G++],name:X.column.from?X.column.from(Y.toString("utf8",G,G=Y.indexOf(0,G))):Y.toString("utf8",G,G=Y.indexOf(0,G)),type:Y.readUInt32BE(G+=1),parser:J[Y.readUInt32BE(G)],atttypmod:Y.readUInt32BE(G+=4)},z.key&&H.keys.push(z),G+=4},Y:()=>{},O:()=>{},B:(Y)=>{$.date=lD(Y.readBigInt64BE(9)),$.lsn=Y.subarray(1,9)},I:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)],{row:A}=A4(Y,H.columns,G+=7,X);W(A,{command:"insert",relation:H})},D:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)];G+=4;let A=Y[G]===75;W(A||Y[G]===79?A4(Y,H.columns,G+=3,X).row:null,{command:"delete",relation:H,key:A})},U:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)];G+=4;let A=Y[G]===75,z=A||Y[G]===79?A4(Y,H.columns,G+=3,X):null;z&&(G=z.i);let{row:M}=A4(Y,H.columns,G+3,X);W(M,{command:"update",relation:H,key:A,old:z&&z.row})},T:()=>{},C:()=>{}}).reduce(F,{})[T[0]](T)}function A4(T,$,J,W){let X,F,Y,G=W.raw?new Array($.length):{};for(let H=0;H<$.length;H++)X=T[J++],F=$[H],Y=X===110?null:X===117?void 0:F.parser===void 0?T.toString("utf8",J+4,J+=4+T.readUInt32BE(J)):F.parser.array===!0?F.parser(T.toString("utf8",J+5,J+=4+T.readUInt32BE(J))):F.parser(T.toString("utf8",J+4,J+=4+T.readUInt32BE(J))),W.raw?G[H]=W.raw===!0?Y:W.value.from?W.value.from(Y,F):Y:G[F.name]=W.value.from?W.value.from(Y,F):Y;return{i:J,row:W.row.from?W.row.from(G):G}}function iD(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,J,W,X]=$;return(J||"*")+(W?":"+(W.indexOf(".")===-1?"public."+W:W):"")+(X?"="+X:"")}import EM from"stream";function w9(T,$,J=393216){return new Promise(async(W,X)=>{await T.begin(async(F)=>{let Y;!$&&([{oid:$}]=await F`select lo_creat(-1) as oid`);let[{fd:G}]=await F`select lo_open(${$}, ${J}) as fd`,H={writable:z,readable:A,close:()=>F`select lo_close(${G})`.then(Y),tell:()=>F`select lo_tell64(${G})`,read:(M)=>F`select loread(${G}, ${M}) as data`,write:(M)=>F`select lowrite(${G}, ${M})`,truncate:(M)=>F`select lo_truncate64(${G}, ${M})`,seek:(M,w=0)=>F`select lo_lseek64(${G}, ${M}, ${w})`,size:()=>F`
79
79
  select
80
- lo_lseek64(${S}, location, 0) as position,
80
+ lo_lseek64(${G}, location, 0) as position,
81
81
  seek.size
82
82
  from (
83
83
  select
@@ -85,18 +85,56 @@ ${Y}`)}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)=>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)} (
88
+ `};return W(H),new Promise(async(M)=>Y=M);async function A({highWaterMark:M=16384,start:w=0,end:S=1/0}={}){let _=S-w;return w&&await H.seek(w),new EM.Readable({highWaterMark:M,async read(K){let Z=K>_?K-_:K;_-=K;let[{data:k}]=await H.read(Z);if(this.push(k),k.length<K)this.push(null)}})}async function z({highWaterMark:M=16384,start:w=0}={}){return w&&await H.seek(w),new EM.Writable({highWaterMark:M,write(S,_,K){H.write(S).then(()=>K(),K)}})}}).catch(X)})}Object.assign(z4,{PostgresError:mW,toPascal:g0,pascal:F9,toCamel:m0,camel:X9,toKebab:p0,kebab:Y9,fromPascal:P2,fromCamel:b2,fromKebab:v2,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var pW=z4;function z4(T,$){let J=aD(T,$),W=J.no_subscribe||M9(z4,{...J}),X=!1,F=wJ(),Y=wJ(),G=wJ(),H=wJ(),A=wJ(),z=wJ(),M=wJ(),w=wJ(),S={connecting:Y,reserved:G,closed:H,ended:A,open:z,busy:M,full:w},_=[...Array(J.max)].map(()=>z9(J,S,{onopen:l$,onend:eT,onclose:J1})),K=Z(m);return Object.assign(K,{get parameters(){return J.parameters},largeObject:w9.bind(null,K),subscribe:W,CLOSE:hW,END:hW,PostgresError:mW,options:J,reserve:q,listen:k,begin:V,close:n,end:XT}),K;function Z(I){return I.debug=J.debug,Object.entries(J.types).reduce((UT,[gT,F$])=>{return UT[gT]=(rT)=>new sJ(rT,F$.to),UT},a),Object.assign(CT,{types:a,typed:a,unsafe:tT,notify:N,array:B,json:C,file:z$}),CT;function a(UT,gT){return new sJ(UT,gT)}function CT(UT,...gT){return UT&&Array.isArray(UT.raw)?new RJ(UT,gT,I,E):typeof UT==="string"&&!gT.length?new h2(J.transform.column.to?J.transform.column.to(UT):UT):new X4(UT,gT)}function tT(UT,gT=[],F$={}){return arguments.length===2&&!Array.isArray(gT)&&(F$=gT,gT=[]),new RJ([UT],gT,I,E,{prepare:!1,...F$,simple:"simple"in F$?F$.simple:gT.length===0})}function z$(UT,gT=[],F$={}){return arguments.length===2&&!Array.isArray(gT)&&(F$=gT,gT=[]),new RJ([],gT,(dT)=>{rD.readFile(UT,"utf8",(y$,pT)=>{if(y$)return dT.reject(y$);dT.strings=[pT],I(dT)})},E,{...F$,simple:"simple"in F$?F$.simple:gT.length===0})}}async function k(I,a,CT){let tT={fn:a,onlisten:CT},z$=k.sql||(k.sql=z4({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(k.channels).forEach(([dT,{listeners:y$}])=>{delete k.channels[dT],Promise.all(y$.map((pT)=>k(dT,pT.fn,pT.onlisten).catch(()=>{})))})},onnotify(dT,y$){dT in k.channels&&k.channels[dT].listeners.forEach((pT)=>pT.fn(y$))}})),UT=k.channels||(k.channels={});if(I in UT){UT[I].listeners.push(tT);let dT=await UT[I].result;return tT.onlisten&&tT.onlisten(),{state:dT.state,unlisten:rT}}UT[I]={result:z$`listen ${z$.unsafe('"'+I.replace(/"/g,'""')+'"')}`,listeners:[tT]};let F$=await UT[I].result;return tT.onlisten&&tT.onlisten(),{state:F$.state,unlisten:rT};async function rT(){if(I in UT===!1)return;if(UT[I].listeners=UT[I].listeners.filter((dT)=>dT!==tT),UT[I].listeners.length)return;return delete UT[I],z$`unlisten ${z$.unsafe('"'+I.replace(/"/g,'""')+'"')}`}}async function N(I,a){return await K`select pg_notify(${I}, ${""+a})`}async function q(){let I=wJ(),a=z.length?z.shift():await new Promise((z$)=>{F.push({reserve:z$}),H.length&&yT(H.shift())});f(a,G),a.reserved=()=>I.length?a.execute(I.shift()):f(a,G),a.reserved.release=!0;let CT=Z(tT);return CT.release=()=>{a.reserved=null,l$(a)},CT;function tT(z$){a.queue===w?I.push(z$):a.execute(z$)||f(a,w)}}async function V(I,a){!a&&(a=I,I="");let CT=wJ(),tT=0,z$,UT=null;try{return await K.unsafe("begin "+I.replace(/[^a-z ]/ig,""),[],{onexecute:F$}).execute(),await Promise.race([gT(z$,a),new Promise((rT,dT)=>z$.onclose=dT)])}catch(rT){throw rT}async function gT(rT,dT,y$){let pT=Z(M$);pT.savepoint=b1,pT.prepare=(lT)=>UT=lT.replace(/[^a-z0-9$-_. ]/gi);let CJ,q$;y$&&await pT`savepoint ${pT(y$)}`;try{if(q$=await new Promise((lT,ZJ)=>{let pJ=dT(pT);Promise.resolve(Array.isArray(pJ)?Promise.all(pJ):pJ).then(lT,ZJ)}),CJ)throw CJ}catch(lT){throw await(y$?pT`rollback to ${pT(y$)}`:pT`rollback`),lT instanceof mW&&lT.code==="25P02"&&CJ||lT}if(!y$)UT?await pT`prepare transaction '${pT.unsafe(UT)}'`:await pT`commit`;return q$;function b1(lT,ZJ){if(lT&&Array.isArray(lT.raw))return b1((pJ)=>pJ.apply(pJ,arguments));return arguments.length===1&&(ZJ=lT,lT=null),gT(rT,ZJ,"s"+tT+++(lT?"_"+lT:""))}function M$(lT){lT.catch((ZJ)=>CJ||(CJ=ZJ)),rT.queue===w?CT.push(lT):rT.execute(lT)||f(rT,w)}}function F$(rT){z$=rT,f(rT,G),rT.reserved=()=>CT.length?rT.execute(CT.shift()):f(rT,G)}}function f(I,a){return I.queue.remove(I),a.push(I),I.queue=a,a===z?I.idleTimer.start():I.idleTimer.cancel(),I}function C(I){return new sJ(I,3802)}function B(I,a){if(!Array.isArray(I))return B(Array.from(arguments));return new sJ(I,a||(I.length?J4(I)||25:0),J.shared.typeArrayMap)}function m(I){if(X)return I.reject(H$.connection("CONNECTION_ENDED",J,J));if(z.length)return $T(z.shift(),I);if(H.length)return yT(H.shift(),I);M.length?$T(M.shift(),I):F.push(I)}function $T(I,a){return I.execute(a)?f(I,M):f(I,w)}function E(I){return new Promise((a,CT)=>{I.state?I.active?z9(J).cancel(I.state,a,CT):I.cancelled={resolve:a,reject:CT}:(F.remove(I),I.cancelled=!0,I.reject(H$.generic("57014","canceling statement due to user request")),a())})}async function XT({timeout:I=null}={}){if(X)return X;await 1;let a;return X=Promise.race([new Promise((CT)=>I!==null&&(a=setTimeout(HT,I*1000,CT))),Promise.all(_.map((CT)=>CT.end()).concat(k.sql?k.sql.end({timeout:0}):[],W.sql?W.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(a))}async function n(){await Promise.all(_.map((I)=>I.end()))}async function HT(I){await Promise.all(_.map((a)=>a.terminate()));while(F.length)F.shift().reject(H$.connection("CONNECTION_DESTROYED",J));I()}function yT(I,a){return f(I,Y),I.connect(a),I}function eT(I){f(I,A)}function l$(I){if(F.length===0)return f(I,z);let a=Math.ceil(F.length/(Y.length+1)),CT=!0;while(CT&&F.length&&a-- >0){let tT=F.shift();if(tT.reserve)return tT.reserve(I);CT=I.execute(tT)}CT?f(I,M):f(I,w)}function J1(I,a){f(I,H),I.reserved=null,I.onclose&&(I.onclose(a),I.onclose=null),J.onclose&&J.onclose(I.id),F.length&&yT(I,F.shift())}}function aD(T,$){if(T&&T.shared)return T;let J=process.env,W=(!T||typeof T==="string"?$:T)||{},{url:X,multihost:F}=JK(T),Y=[...X.searchParams].reduce((w,[S,_])=>(w[S]=_,w),{}),G=W.hostname||W.host||F||X.hostname||J.PGHOST||"localhost",H=W.port||X.port||J.PGPORT||5432,A=W.user||W.username||X.username||J.PGUSERNAME||J.PGUSER||WK();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 z=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],M={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:TK,max_pipeline:100,backoff:eD,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(G)?G:G.split(",").map((w)=>w.split(":")[0]),port:Array.isArray(H)?H:G.split(",").map((w)=>parseInt(w.split(":")[1]||H)),path:W.path||G.indexOf("/")>-1&&G+"/.s.PGSQL."+H,database:W.database||W.db||(X.pathname||"").slice(1)||J.PGDATABASE||A,user:A,pass:W.pass||W.password||X.password||J.PGPASSWORD||"",...Object.entries(M).reduce((w,[S,_])=>{let K=S in W?W[S]:(S in Y)?Y[S]==="disable"||Y[S]==="false"?!1:Y[S]:J["PG"+S.toUpperCase()]||_;return w[S]=typeof K==="string"&&z.includes(S)?+K:K,w},{}),connection:{application_name:"postgres.js",...W.connection,...Object.entries(Y).reduce((w,[S,_])=>((S in M)||(w[S]=_),w),{})},types:W.types||{},target_session_attrs:sD(W,X,J),onnotice:W.onnotice,onnotify:W.onnotify,onclose:W.onclose,onparameter:W.onparameter,socket:W.socket,transform:$K(W.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...zM(W.types)}}function sD(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 eD(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function TK(){return 60*(30+Math.random()*30)}function $K(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 JK(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 WK(){try{return tD.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class J${static[O]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===uT)return{...T[uT],selectedFields:new Proxy(T[uT].selectedFields,this)};if(typeof $==="symbol")return T[$];let W=(L(T,D$)?T._.selectedFields:L(T,a$)?T[uT].selectedFields:T)[$];if(L(W,c.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!W.isSelectionField)return W.sql;let X=W.clone();return X.isSelectionField=!0,X}if(L(W,c)){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(L(W,vT)){if(this.config.alias)return new Proxy(W,new vW(new Proxy(W.table,new Z2(this.config.alias,this.config.replaceOriginalName??!1))));return W}if(typeof W!=="object"||W===null)return W;return new Proxy(W,new J$(this.config))}}class M4 extends u${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[u.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=EJ(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return hT.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 hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function XK(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function FK(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((J,W,X)=>{let F=X===0?W.toLowerCase():`${W[0].toUpperCase()}${W.slice(1)}`;return J+F},"")}function YK(T){return T}class Q9{static[O]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?XK:T==="camelCase"?FK:YK}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[u.Symbol.Schema]??"public",J=T.table[u.Symbol.OriginalName],W=`${$}.${J}.${T.name}`;if(!this.cache[W])this.cacheTable(T.table);return this.cache[W]}cacheTable(T){let $=T[u.Symbol.Schema]??"public",J=T[u.Symbol.OriginalName],W=`${$}.${J}`;if(!this.cachedTables[W]){for(let X of Object.values(T[u.Symbol.Columns])){let F=`${W}.${X.name}`;this.cache[F]=this.convert(X.name)}this.cachedTables[W]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class g2 extends a${static[O]="PgViewBase"}class c0{static[O]="PgDialect";casing;constructor(T){this.casing=new Q9(T?.casing)}async migrate(T,$,J){let W=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",X=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",F=U`
89
+ CREATE TABLE IF NOT EXISTS ${U.identifier(X)}.${U.identifier(W)} (
90
90
  id SERIAL PRIMARY KEY,
91
91
  hash text NOT NULL,
92
92
  created_at bigint
93
93
  )
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(`
94
+ `;await $.execute(U`CREATE SCHEMA IF NOT EXISTS ${U.identifier(X)}`),await $.execute(F);let G=(await $.all(U`select id, hash, created_at from ${U.identifier(X)}.${U.identifier(W)} order by created_at desc limit 1`))[0];await $.transaction(async(H)=>{for await(let A of T)if(!G||Number(G.created_at)<A.folderMillis){for(let z of A.sql)await H.execute(U.raw(z));await H.execute(U`insert into ${U.identifier(X)}.${U.identifier(W)} ("hash", "created_at") values(${A.hash}, ${A.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let $=[U`with `];for(let[J,W]of T.entries())if($.push(U`${U.identifier(W._.alias)} as (${W._.sql})`),J<T.length-1)$.push(U`, `);return $.push(U` `),U.join($)}buildDeleteQuery({table:T,where:$,returning:J,withList:W}){let X=this.buildWithCTE(W),F=J?U` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,Y=$?U` where ${$}`:void 0;return U`${X}delete from ${T}${Y}${F}`}buildUpdateSet(T,$){let J=T[u.Symbol.Columns],W=Object.keys(J).filter((F)=>$[F]!==void 0||J[F]?.onUpdateFn!==void 0),X=W.length;return U.join(W.flatMap((F,Y)=>{let G=J[F],H=$[F]??U.param(G.onUpdateFn(),G),A=U`${U.identifier(this.casing.getColumnCasing(G))} = ${H}`;if(Y<X-1)return[A,U.raw(", ")];return[A]}))}buildUpdateQuery({table:T,set:$,where:J,returning:W,withList:X,from:F,joins:Y}){let G=this.buildWithCTE(X),H=T[k$.Symbol.Name],A=T[k$.Symbol.Schema],z=T[k$.Symbol.OriginalName],M=H===z?void 0:H,w=U`${A?U`${U.identifier(A)}.`:void 0}${U.identifier(z)}${M&&U` ${U.identifier(M)}`}`,S=this.buildUpdateSet(T,$),_=F&&U.join([U.raw(" from "),this.buildFromTable(F)]),K=this.buildJoins(Y),Z=W?U` returning ${this.buildSelection(W,{isSingleTable:!F})}`:void 0,k=J?U` where ${J}`:void 0;return U`${G}update ${w} set ${S}${_}${K}${k}${Z}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,W=T.flatMap(({field:X},F)=>{let Y=[];if(L(X,c.Aliased)&&X.isSelectionField)Y.push(U.identifier(X.fieldAlias));else if(L(X,c.Aliased)||L(X,c)){let G=L(X,c.Aliased)?X.sql:X;if($)Y.push(new c(G.queryChunks.map((H)=>{if(L(H,b))return U.identifier(this.casing.getColumnCasing(H));return H})));else Y.push(G);if(L(X,c.Aliased))Y.push(U` as ${U.identifier(X.fieldAlias)}`)}else if(L(X,vT))if($)Y.push(U.identifier(this.casing.getColumnCasing(X)));else Y.push(X);if(F<J-1)Y.push(U`, `);return Y});return U.join(W)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[J,W]of T.entries()){if(J===0)$.push(U` `);let X=W.table,F=W.lateral?U` lateral`:void 0;if(L(X,k$)){let Y=X[k$.Symbol.Name],G=X[k$.Symbol.Schema],H=X[k$.Symbol.OriginalName],A=Y===H?void 0:W.alias;$.push(U`${U.raw(W.joinType)} join${F} ${G?U`${U.identifier(G)}.`:void 0}${U.identifier(H)}${A&&U` ${U.identifier(A)}`} on ${W.on}`)}else if(L(X,a$)){let Y=X[uT].name,G=X[uT].schema,H=X[uT].originalName,A=Y===H?void 0:W.alias;$.push(U`${U.raw(W.joinType)} join${F} ${G?U`${U.identifier(G)}.`:void 0}${U.identifier(H)}${A&&U` ${U.identifier(A)}`} on ${W.on}`)}else $.push(U`${U.raw(W.joinType)} join${F} ${X} on ${W.on}`);if(J<T.length-1)$.push(U` `)}return U.join($)}buildFromTable(T){if(L(T,u)&&T[u.Symbol.IsAlias]){let $=U`${U.identifier(T[u.Symbol.OriginalName])}`;if(T[u.Symbol.Schema])$=U`${U.identifier(T[u.Symbol.Schema])}.${$}`;return U`${$} ${U.identifier(T[u.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:J,where:W,having:X,table:F,joins:Y,orderBy:G,groupBy:H,limit:A,offset:z,lockingClause:M,distinct:w,setOperators:S}){let _=J??EJ($);for(let HT of _)if(L(HT.field,vT)&&B$(HT.field.table)!==(L(F,D$)?F._.alias:L(F,g2)?F[uT].name:L(F,c)?void 0:B$(F))&&!((yT)=>Y?.some(({alias:eT})=>eT===(yT[u.Symbol.IsAlias]?B$(yT):yT[u.Symbol.BaseName])))(HT.field.table)){let yT=B$(HT.field.table);throw new Error(`Your "${HT.path.join("->")}" field references a column "${yT}"."${HT.field.name}", but the table "${yT}" is not part of the query! Did you forget to join it?`)}let K=!Y||Y.length===0,Z=this.buildWithCTE(T),k;if(w)k=w===!0?U` distinct`:U` distinct on (${U.join(w.on,U`, `)})`;let N=this.buildSelection(_,{isSingleTable:K}),q=this.buildFromTable(F),V=this.buildJoins(Y),f=W?U` where ${W}`:void 0,C=X?U` having ${X}`:void 0,B;if(G&&G.length>0)B=U` order by ${U.join(G,U`, `)}`;let m;if(H&&H.length>0)m=U` group by ${U.join(H,U`, `)}`;let $T=typeof A==="object"||typeof A==="number"&&A>=0?U` limit ${A}`:void 0,E=z?U` offset ${z}`:void 0,XT=U.empty();if(M){let HT=U` for ${U.raw(M.strength)}`;if(M.config.of)HT.append(U` of ${U.join(Array.isArray(M.config.of)?M.config.of:[M.config.of],U`, `)}`);if(M.config.noWait)HT.append(U` no wait`);else if(M.config.skipLocked)HT.append(U` skip locked`);XT.append(HT)}let n=U`${Z}select${k} ${N} from ${q}${V}${f}${m}${C}${B}${$T}${E}${XT}`;if(S.length>0)return this.buildSetOperations(n,S);return n}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:X,orderBy:F,offset:Y}}){let G=U`(${T.getSQL()}) `,H=U`(${W.getSQL()})`,A;if(F&&F.length>0){let S=[];for(let _ of F)if(L(_,b))S.push(U.identifier(_.name));else if(L(_,c)){for(let K=0;K<_.queryChunks.length;K++){let Z=_.queryChunks[K];if(L(Z,b))_.queryChunks[K]=U.identifier(Z.name)}S.push(U`${_}`)}else S.push(U`${_}`);A=U` order by ${U.join(S,U`, `)} `}let z=typeof X==="object"||typeof X==="number"&&X>=0?U` limit ${X}`:void 0,M=U.raw(`${$} ${J?"all ":""}`),w=Y?U` offset ${Y}`:void 0;return U`${G}${M}${H}${A}${z}${w}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:W,withList:X,select:F,overridingSystemValue_:Y}){let G=[],H=T[u.Symbol.Columns],A=Object.entries(H).filter(([Z,k])=>!k.shouldDisableInsert()),z=A.map(([,Z])=>U.identifier(this.casing.getColumnCasing(Z)));if(F){let Z=$;if(L(Z,c))G.push(Z);else G.push(Z.getSQL())}else{let Z=$;G.push(U.raw("values "));for(let[k,N]of Z.entries()){let q=[];for(let[V,f]of A){let C=N[V];if(C===void 0||L(C,zJ)&&C.value===void 0)if(f.defaultFn!==void 0){let B=f.defaultFn(),m=L(B,c)?B:U.param(B,f);q.push(m)}else if(!f.default&&f.onUpdateFn!==void 0){let B=f.onUpdateFn(),m=L(B,c)?B:U.param(B,f);q.push(m)}else q.push(U`default`);else q.push(C)}if(G.push(q),k<Z.length-1)G.push(U`, `)}}let M=this.buildWithCTE(X),w=U.join(G),S=W?U` returning ${this.buildSelection(W,{isSingleTable:!0})}`:void 0,_=J?U` on conflict ${J}`:void 0,K=Y===!0?U`overriding system value `:void 0;return U`${M}insert into ${T} ${z} ${K}${w}${_}${S}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:J}){let W=$?U` concurrently`:void 0,X=J?U` with no data`:void 0;return U`refresh materialized view${W} ${T}${X}`}prepareTyping(T){if(L(T,nF)||L(T,lF))return"json";else if(L(T,iF))return"decimal";else if(L(T,tF))return"time";else if(L(T,rF)||L(T,aF))return"timestamp";else if(L(T,cF)||L(T,oF))return"date";else if(L(T,sF))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:X,queryConfig:F,tableAlias:Y,nestedQueryRelation:G,joinOn:H}){let A=[],z,M,w=[],S,_=[];if(F===!0)A=Object.entries(X.columns).map(([k,N])=>({dbKey:N.name,tsKey:k,field:aJ(N,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let Z=Object.fromEntries(Object.entries(X.columns).map(([C,B])=>[C,aJ(B,Y)]));if(F.where){let C=typeof F.where==="function"?F.where(Z,az()):F.where;S=C&&k2(C,Y)}let k=[],N=[];if(F.columns){let C=!1;for(let[B,m]of Object.entries(F.columns)){if(m===void 0)continue;if(B in X.columns){if(!C&&m===!0)C=!0;N.push(B)}}if(N.length>0)N=C?N.filter((B)=>F.columns?.[B]===!0):Object.keys(X.columns).filter((B)=>!N.includes(B))}else N=Object.keys(X.columns);for(let C of N){let B=X.columns[C];k.push({tsKey:C,value:B})}let q=[];if(F.with)q=Object.entries(F.with).filter((C)=>!!C[1]).map(([C,B])=>({tsKey:C,queryConfig:B,relation:X.relations[C]}));let V;if(F.extras){V=typeof F.extras==="function"?F.extras(Z,{sql:U}):F.extras;for(let[C,B]of Object.entries(V))k.push({tsKey:C,value:uY(B,Y)})}for(let{tsKey:C,value:B}of k)A.push({dbKey:L(B,c.Aliased)?B.fieldAlias:X.columns[C].name,tsKey:C,field:L(B,vT)?aJ(B,Y):B,relationTableTsKey:void 0,isJson:!1,selection:[]});let f=typeof F.orderBy==="function"?F.orderBy(Z,sz()):F.orderBy??[];if(!Array.isArray(f))f=[f];w=f.map((C)=>{if(L(C,vT))return aJ(C,Y);return k2(C,Y)}),z=F.limit,M=F.offset;for(let{tsKey:C,queryConfig:B,relation:m}of q){let $T=TM($,J,m),E=h0(m.referencedTable),XT=J[E],n=`${Y}_${C}`,HT=y2(...$T.fields.map((l$,J1)=>gF(aJ($T.references[J1],n),aJ(l$,Y)))),yT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[XT],tableConfig:$[XT],queryConfig:L(m,s1)?B===!0?{limit:1}:{...B,limit:1}:B,tableAlias:n,joinOn:HT,nestedQueryRelation:m}),eT=U`${U.identifier(n)}.${U.identifier("data")}`.as(C);_.push({on:U`true`,table:new D$(yT.sql,{},n),alias:n,joinType:"left",lateral:!0}),A.push({dbKey:C,tsKey:C,field:eT,relationTableTsKey:XT,isJson:!0,selection:yT.selection})}}if(A.length===0)throw new mF({message:`No fields selected for table "${X.tsName}" ("${Y}")`});let K;if(S=y2(H,S),G){let Z=U`json_build_array(${U.join(A.map(({field:q,tsKey:V,isJson:f})=>f?U`${U.identifier(`${Y}_${V}`)}.${U.identifier("data")}`:L(q,c.Aliased)?q.sql:q),U`, `)})`;if(L(G,x2))Z=U`coalesce(json_agg(${Z}${w.length>0?U` order by ${U.join(w,U`, `)}`:void 0}), '[]'::json)`;let k=[{dbKey:"data",tsKey:"data",field:Z.as("data"),isJson:!0,relationTableTsKey:X.tsName,selection:A}];if(z!==void 0||M!==void 0||w.length>0)K=this.buildSelectQuery({table:hF(W,Y),fields:{},fieldsFlat:[{path:[],field:U.raw("*")}],where:S,limit:z,offset:M,orderBy:w,setOperators:[]}),S=void 0,z=void 0,M=void 0,w=[];else K=hF(W,Y);K=this.buildSelectQuery({table:L(K,k$)?K:new D$(K,{},Y),fields:{},fieldsFlat:k.map(({field:q})=>({path:[],field:L(q,vT)?aJ(q,Y):q})),joins:_,where:S,limit:z,offset:M,orderBy:w,setOperators:[]})}else K=this.buildSelectQuery({table:hF(W,Y),fields:{},fieldsFlat:A.map(({field:Z})=>({path:[],field:L(Z,vT)?aJ(Z,Y):Z})),joins:_,where:S,limit:z,offset:M,orderBy:w,setOperators:[]});return{tableTsKey:X.tsName,sql:K,selection:A}}}class O9{static[O]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class c${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(L(J,D$))W=Object.fromEntries(Object.keys(J._.selectedFields).map((X)=>[X,J[X]]));else if(L(J,g2))W=J[uT].selectedFields;else if(L(J,c))W={};else W=aH(J);return new U9({table:J,fields:W,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class RM extends O9{static[O]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:W,dialect:X,withList:F,distinct:Y}){super();this.config={withList:F,table:T,fields:{...$},distinct:Y,setOperators:[]},this.isPartialSelect=J,this.session=W,this.dialect=X,this._={selectedFields:$},this.tableName=V1(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let W=this.tableName,X=V1($);if(typeof X==="string"&&this.config.joins?.some((F)=>F.alias===X))throw new Error(`Alias "${X}" 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 X==="string"&&!L($,c)){let F=L($,D$)?$._.selectedFields:L($,a$)?$[uT].selectedFields:$[u.Symbol.Columns];this.config.fields[X]=F}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:J,table:$,joinType:T,alias:X}),typeof X==="string")switch(T){case"left":{this.joinsNotNullableMap[X]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[X]=!0;break}case"inner":{this.joinsNotNullableMap[X]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[X]=!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(GK()):J;if(!q2(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 J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new J$({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 J$({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 J$({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 D$(this.getSQL(),this.config.fields,T),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new J$({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class U9 extends RM{static[O]="PgSelect";_prepare(T){let{session:$,config:J,dialect:W,joinsNotNullableMap:X,authToken:F}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return hT.startActiveSpan("drizzle.prepareQuery",()=>{let Y=EJ(J.fields),G=$.prepareQuery(W.sqlToQuery(this.getSQL()),Y,T,!0);return G.joinsNotNullableMap=X,G.setToken(F)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}rH(U9,[u$]);function uW(T,$){return(J,W,...X)=>{let F=[W,...X].map((Y)=>({type:T,isAll:$,rightSelect:Y}));for(let Y of F)if(!q2(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(F)}}var GK=()=>({union:HK,unionAll:AK,intersect:zK,intersectAll:MK,except:wK,exceptAll:QK}),HK=uW("union",!1),AK=uW("union",!0),zK=uW("intersect",!1),MK=uW("intersect",!0),wK=uW("except",!1),QK=uW("except",!0);class p2{static[O]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=L(T,c0)?T:void 0,this.dialectConfig=L(T,c0)?void 0:T}$with=(T,$)=>{let J=this;return{as:(X)=>{if(typeof X==="function")X=X(J);return new Proxy(new N2(X.getSQL(),$??("getSelectedFields"in X?X.getSelectedFields()??{}:{}),T,!0),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function J(F){return new c$({fields:F??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function W(F){return new c$({fields:F??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function X(F,Y){return new c$({fields:Y??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:F}})}return{select:J,selectDistinct:W,selectDistinctOn:X}}select(T){return new c$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new c$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new c$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new c0(this.dialectConfig);return this.dialect}}class w4{constructor(T,$,J,W,X){this.table=T,this.session=$,this.dialect=J,this.withList=W,this.overridingSystemValue_=X}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={},X=this.table[u.Symbol.Columns];for(let F of Object.keys(J)){let Y=J[F];W[F]=L(Y,c)?Y:new zJ(Y,X[F])}return W});return new S9(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new p2):T;if(!L($,c)&&!q2(this.table[PF],$._.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 S9(this.table,$,this.session,this.dialect,this.withList,!0)}}class S9 extends u${constructor(T,$,J,W,X,F,Y){super();this.session=J,this.dialect=W,this.config={table:T,values:$,withList:X,select:F,overridingSystemValue_:Y}}static[O]="PgInsert";config;returning(T=this.config.table[u.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=EJ(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=U`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?U` where ${T.where}`:void 0;this.config.onConflict=U`(${U.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?U` where ${T.where}`:void 0,J=T.targetWhere?U` where ${T.targetWhere}`:void 0,W=T.setWhere?U` where ${T.setWhere}`:void 0,X=this.dialect.buildUpdateSet(this.config.table,uF(this.config.table,T.set)),F="";return F=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=U`(${U.raw(F)})${J} do update set ${X}${$}${W}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return hT.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 hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class _9 extends u${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 hT.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 hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class Q4{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 LM(this.table,uF(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class LM extends u${constructor(T,$,J,W,X){super();this.session=J,this.dialect=W,this.config={set:$,table:T,withList:X,joins:[]},this.tableName=V1(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[O]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,J=V1($);if(typeof J==="string")this.joinsNotNullableMap[J]=!0;return this.config.from=$,this}getTableLikeFields(T){if(L(T,k$))return T[u.Symbol.Columns];else if(L(T,D$))return T._.selectedFields;return T[uT].selectedFields}createJoin(T){return($,J)=>{let W=V1($);if(typeof W==="string"&&this.config.joins.some((X)=>X.alias===W))throw new Error(`Alias "${W}" is already used in this query`);if(typeof J==="function"){let X=this.config.from&&!L(this.config.from,c)?this.getTableLikeFields(this.config.from):void 0;J=J(new Proxy(this.config.table[u.Symbol.Columns],new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),X&&new Proxy(X,new J$({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(([X])=>[X,!1])),this.joinsNotNullableMap[W]=!0;break}case"inner":{this.joinsNotNullableMap[W]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([X])=>[X,!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[u.Symbol.Columns]),this.config.from){let $=V1(this.config.from);if(typeof $==="string"&&this.config.from&&!L(this.config.from,c)){let J=this.getTableLikeFields(this.config.from);T[$]=J}for(let J of this.config.joins){let W=V1(J.table);if(typeof W==="string"&&!L(J.table,c)){let X=this.getTableLikeFields(J.table);T[W]=X}}}}return this.config.returningFields=T,this.config.returning=EJ(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 J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class u2 extends c{constructor(T){super(u2.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=u2.buildCount(T.source,T.filters)}sql;token;static[O]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return U`(select count(*) from ${T}${U.raw(" where ").if($)}${$})`}static buildCount(T,$){return U`select count(*) as count from ${T}${U.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 K9{constructor(T,$,J,W,X,F,Y){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=X,this.dialect=F,this.session=Y}static[O]="PgRelationalQueryBuilder";findMany(T){return new D9(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new D9(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class D9 extends u${constructor(T,$,J,W,X,F,Y,G,H){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=X,this.dialect=F,this.session=Y,this.config=G,this.mode=H}static[O]="PgRelationalQuery";_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(W,X)=>{let F=W.map((Y)=>eF(this.schema,this.tableConfig,Y,$.selection,X));if(this.mode==="first")return F[0];return F})})}prepare(T){return this._prepare(T)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let T=this._getQuery(),$=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class V9 extends u${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 c2{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,X]of Object.entries(this._.schema))this.query[W]=new K9(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[W],X,T,$)}static[O]="PgDatabase";query;$with=(T,$)=>{let J=this;return{as:(X)=>{if(typeof X==="function")X=X(new p2(J.dialect));return new Proxy(new N2(X.getSQL(),$??("getSelectedFields"in X?X.getSelectedFields()??{}:{}),T,!0),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new u2({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(H){return new c$({fields:H??void 0,session:$.session,dialect:$.dialect,withList:T})}function W(H){return new c$({fields:H??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function X(H,A){return new c$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:H}})}function F(H){return new Q4(H,$.session,$.dialect,T)}function Y(H){return new w4(H,$.session,$.dialect,T)}function G(H){return new M4(H,$.session,$.dialect,T)}return{select:J,selectDistinct:W,selectDistinctOn:X,update:F,insert:Y,delete:G}}select(T){return new c$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new c$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new c$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new Q4(T,this.session,this.dialect)}insert(T){return new w4(T,this.session,this.dialect)}delete(T){return new M4(T,this.session,this.dialect)}refreshMaterializedView(T){return new _9(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?U.raw(T):T.getSQL(),J=this.dialect.sqlToQuery($),W=this.session.prepareQuery(J,void 0,void 0,!1);return new V9(()=>W.execute(void 0,this.authToken),$,J,(X)=>W.mapResult(X,!0))}transaction(T,$){return this.session.transaction(T,$)}}class BM{constructor(T,$){this.unique=T,this.name=$}static[O]="PgIndexBuilderOn";on(...T){return new O4(T.map(($)=>{if(L($,c))return $;$=$;let J=new f2($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),J}),this.unique,!1,this.name)}onOnly(...T){return new O4(T.map(($)=>{if(L($,c))return $;$=$;let J=new f2($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,J}),this.unique,!0,this.name)}using(T,...$){return new O4($.map((J)=>{if(L(J,c))return J;J=J;let W=new f2(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 O4{static[O]="PgIndexBuilder";config;constructor(T,$,J,W,X="btree"){this.config={name:W,columns:T,unique:$,only:J,method:X}}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 fM(this.config,T)}}class fM{static[O]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function E9(T){return new BM(!0,T)}class R9{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 L9{constructor(T){this.dialect=T}static[O]="PgSession";execute(T,$){return hT.startActiveSpan("drizzle.operation",()=>{return hT.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 B9 extends c2{constructor(T,$,J,W=0){super(T,$,J);this.schema=J,this.nestedIndex=W}static[O]="PgTransaction";rollback(){throw new cY}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 U.raw($.join(" "))}setTransaction(T){return this.session.execute(U`set transaction ${this.getTransactionConfigSQL(T)}`)}}class NM extends R9{constructor(T,$,J,W,X,F,Y){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=W,this.fields=X,this._isResponseInArrayMode=F,this.customResultMapper=Y}static[O]="PostgresJsPreparedQuery";async execute(T={}){return hT.startActiveSpan("drizzle.execute",async($)=>{let J=pY(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:X,client:F,joinsNotNullableMap:Y,customResultMapper:G}=this;if(!W&&!G)return hT.startActiveSpan("drizzle.driver.execute",()=>{return F.unsafe(X,J)});let H=await hT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":X,"drizzle.query.params":JSON.stringify(J)}),F.unsafe(X,J).values()});return hT.startActiveSpan("drizzle.mapResponse",()=>{return G?G(H):H.map((A)=>tH(W,A,Y))})})}all(T={}){return hT.startActiveSpan("drizzle.execute",async($)=>{let J=pY(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J),hT.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 o2 extends L9{constructor(T,$,J,W={}){super($);this.client=T,this.schema=J,this.options=W,this.logger=W.logger??new dY}static[O]="PostgresJsSession";logger;prepareQuery(T,$,J,W,X){return new NM(this.client,T.sql,T.params,this.logger,$,W,X)}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 o2(J,this.dialect,this.schema,this.options),X=new f9(this.dialect,W,this.schema);if($)await X.setTransaction($);return T(X)})}}class f9 extends B9{constructor(T,$,J,W=0){super(T,$,J,W);this.session=$}static[O]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new o2($,this.dialect,this.schema,this.session.options),W=new f9(this.dialect,J,this.schema);return T(W)})}}class CM extends c2{static[O]="PostgresJsDatabase"}function cW(T,$={}){let J=(H)=>H;for(let H of["1184","1082","1083","1114","1182","1185","1115","1231"])T.options.parsers[H]=J,T.options.serializers[H]=J;T.options.serializers["114"]=J,T.options.serializers["3802"]=J;let W=new c0({casing:$.casing}),X;if($.logger===!0)X=new oY;else if($.logger!==!1)X=$.logger;let F;if($.schema){let H=ez($.schema,$M);F={fullSchema:$.schema,schema:H.tables,tableNamesMap:H.tableNamesMap}}let Y=new o2(T,W,F,{logger:X}),G=new CM(W,Y,F);return G.$client=T,G}function U4(...T){if(typeof T[0]==="string"){let $=pW(T[0]);return cW($,T[1])}if(sH(T[0])){let{connection:$,client:J,...W}=T[0];if(J)return cW(J,W);if(typeof $==="object"&&$.url!==void 0){let{url:F,...Y}=$,G=pW(F,Y);return cW(G,W)}let X=pW($);return cW(X,W)}return cW(T[0],T[1])}((T)=>{function $(J){return cW({options:{parsers:{},serializers:{}}},J)}T.mock=$})(U4||(U4={}));function OK(T,$){let J={},W=[];for(let X in T){let F=T[X],Y=$[X],G=F["~standard"].validate(Y);if(G instanceof Promise)throw new Error(`Validation must be synchronous, but ${X} returned a Promise.`);if(G.issues){W.push(...G.issues.map((H)=>({...H,path:[X,...H.path??[]]})));continue}J[X]=G.value}if(W.length)return{issues:W};return{value:J}}function ZM(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[N,q]of Object.entries($))if(q==="")delete $[N]}if(!!T.skipValidation)return $;let X=typeof T.client==="object"?T.client:{},F=typeof T.server==="object"?T.server:{},Y=typeof T.shared==="object"?T.shared:{},G=T.isServer??(typeof window==="undefined"||("Deno"in window)),H=G?{...F,...Y,...X}:{...X,...Y},A=OK(H,$),z=T.onValidationError??((N)=>{throw console.error("\u274C Invalid environment variables:",N),new Error("Invalid environment variables")}),M=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(A.issues)return z(A.issues);let w=(N)=>{if(!T.clientPrefix)return!0;return!N.startsWith(T.clientPrefix)&&!(N in Y)},S=(N)=>{return G||!w(N)},_=(N)=>{return N==="__esModule"||N==="$$typeof"},K=(T.extends??[]).reduce((N,q)=>{return Object.assign(N,q)},{}),Z=Object.assign(A.value,K);return new Proxy(Z,{get(N,q){if(typeof q!=="string")return;if(_(q))return;if(!S(q))return M(q);return Reflect.get(N,q)}})}var T0=(T)=>Array.isArray(T)?T:[T],kM=(T,$)=>{let J=[[],[]];for(let W of T)if($(W))J[0].push(W);else J[1].push(W);return J},S4=Array,R1=(T,$)=>T.includes($),yM=(T,$=0)=>[...new Array(T)].map((J,W)=>W+$),KT=(T,$,J)=>{if(T===void 0)return $===void 0?[]:Array.isArray($)?$:[$];if(J?.prepend)if(Array.isArray($))T.unshift(...$);else T.unshift($);else if(Array.isArray($))T.push(...$);else T.push($);return T},L1=(T,$)=>{if($===void 0||$===null)return T??[];if(T===void 0||T===null)return T0($);return T.concat($)},qM=(...T)=>T.reduce(L1,[]),eJ=(T,$,J)=>{if(T===void 0)return Array.isArray($)?$:[$];let W=J?.isEqual??((X,F)=>X===F);return T0($).forEach((X)=>{if(!T.some((F)=>W(F,X)))T.push(X)}),T},IM=(T,$)=>T.reduce((J,W)=>{let X=W[$];return J[X]=KT(J[X],W),J},{}),B1=(T,$,J)=>T.length===$.length&&T.every(J?.isEqual?(W,X)=>J.isEqual(W,$[X]):(W,X)=>W===$[X]);var e$=(T,$)=>V$(T)===$,V$=(T)=>{let $=typeof T;return $==="object"?T===null?"null":"object":$==="function"?"object":$},TJ={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},jM={...TJ,function:"a function"};class xM extends Error{}var fT=(T)=>f1(T,xM),f1=(T,$=Error)=>{throw new $(T)};class d2 extends Error{name="ParseError"}var R=(T)=>f1(T,d2),vJ=(T)=>` ${T}`;var AT=(T,$)=>{let J={},W=Array.isArray(T),X=!1;return Object.entries(T).forEach((F,Y)=>{let G=W?$(Y,F[1]):$(...F,Y);X||=typeof G[0]==="number",(Array.isArray(G[0])||G.length===0?G:[G]).forEach(([A,z])=>{if(typeof A==="object")J[A.group]=KT(J[A.group],z);else J[A]=z})}),X?Object.values(J):J};var N9=Object.entries;var X$=(T,$)=>(T in $),oW=(T,$)=>($ in T);class C9{constructor(T){Object.assign(this,T)}}var bM=class{};class l2 extends bM{}var UK=(T,$)=>{let J={},W={},X;for(X in T)if(X in $)J[X]=T[X];else W[X]=T[X];return[J,W]};var PM=(T,$)=>UK(T,$)[1],T1=(T)=>Object.keys(T).length===0,n2=(T)=>[...Object.entries(T),...Object.getOwnPropertySymbols(T).map(($)=>[$,T[$]])],vM=(T,$)=>Object.defineProperties(T,Object.getOwnPropertyDescriptors($)),hM=(T)=>{let $=Object.keys(T).sort(),J={};for(let W=0;W<$.length;W++)J[$[W]]=T[$[W]];return J};var QJ=vJ("represents an uninitialized value"),mM=(T)=>Object.values(T).filter(($)=>{if(typeof $==="number")return!0;return typeof T[$]!=="number"});var Z9={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},k9=globalThis.File??Blob,y9={ArrayBuffer,Blob,File:k9,FormData,Headers,Request,Response,URL},SK={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},o0={...Z9,...y9,...SK,String,Number,Boolean},i2=(T)=>{let $=Object.getPrototypeOf(T);while($?.constructor&&(!X$($.constructor.name,o0)||!(T instanceof o0[$.constructor.name])))$=Object.getPrototypeOf($);let J=$?.constructor?.name;if(J===void 0||J==="Object")return;return J},t2=(T)=>typeof T==="object"&&T!==null?i2(T)??"object":V$(T);var mT=Array.isArray,_K={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},DK={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},KK={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},gM={..._K,...DK,...KK},r2=(T)=>{let $=Object(T).name??null;return $&&X$($,o0)&&o0[$]===T?$:null};var q9=(T,$)=>{let J=T.prototype;while(J!==null){if(J===$.prototype)return!0;J=Object.getPrototypeOf(J)}return!1};var pM=(T)=>uM(T,new Map),uM=(T,$)=>{if(typeof T!=="object"||T===null)return T;if($?.has(T))return $.get(T);let J=r2(T.constructor);if(J==="Date")return new Date(T.getTime());if(J&&J!=="Array")return T;let W=Array.isArray(T)?T.slice():Object.create(Object.getPrototypeOf(T)),X=Object.getOwnPropertyDescriptors(T);if($){$.set(T,W);for(let F in X){let Y=X[F];if("get"in Y||"set"in Y)continue;Y.value=uM(Y.value,$)}}return Object.defineProperties(W,X),W};var VK=(T)=>{let $=QJ;return()=>$===QJ?$=T():$},$0=(T)=>typeof T==="function"&&T.length===0;var cM=class extends Function{constructor(...T){let $=T.slice(0,-1),J=T.at(-1);try{super(...$,J)}catch(W){return fT(`Encountered an unexpected error while compiling your definition:
95
+ Message: ${W}
96
+ Source: (${T.slice(0,-1)}) => {
97
+ ${T.at(-1)}
98
+ }`)}}};class hJ{constructor(T,...[$]){return Object.assign(Object.setPrototypeOf(T.bind($?.bind??this),this.constructor.prototype),$?.attach)}}var oM=VK(()=>{try{return new Function("return false")()}catch{return!0}});var Dr=vJ("brand");var dM=vJ("arkInferred");var Er=vJ("args");class v${constructor(){}}var EK=()=>{try{return((new Error().stack?.split(`
99
+ `)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},RK=globalThis.process?.env??{},lM={fileName:EK,env:RK};var nM=(T)=>T[0].toUpperCase()+T.slice(1);var I9=(T)=>new RegExp(LK(T),typeof T==="string"?"":T.flags);var LK=(T)=>{return`^(?:${typeof T==="string"?T:T.source})$`};var N1={negativeLookahead:(T)=>`(?!${T})`,nonCapturingGroup:(T)=>`(?:${T})`},a2="\\",J0={" ":1,"\n":1,"\t":1};var BK=/^-0\.?0*$/.source,tM=/[1-9]\d*/.source,fK=/\.\d+/.source,NK=/\.\d*[1-9]/.source,rM=(T)=>I9(N1.negativeLookahead(BK)+N1.nonCapturingGroup("-?"+N1.nonCapturingGroup(N1.nonCapturingGroup("0|"+tM)+N1.nonCapturingGroup(T.decimalPattern)+"?")+(T.allowDecimalOnly?"|"+T.decimalPattern:"")+"?")),iM=rM({decimalPattern:NK,allowDecimalOnly:!1}),CK=iM.test.bind(iM),_4=rM({decimalPattern:fK,allowDecimalOnly:!0}),Zr=_4.test.bind(_4),ZK=/^-?\d*\.?\d*$/,kK=(T)=>T.length!==0&&ZK.test(T),s2=I9(N1.negativeLookahead("^-0$")+"-?"+N1.nonCapturingGroup(N1.nonCapturingGroup("0|"+tM))),yK=s2.test.bind(s2),j9=/^-?\d+$/,qK=j9.test.bind(j9),aM={number:"a number",bigint:"a bigint",integer:"an integer"},sM=(T,$)=>`'${T}' was parsed as ${aM[$]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,IK=(T,$)=>$==="number"?CK(T):yK(T),jK=(T,$)=>$==="number"?Number(T):Number.parseInt(T),xK=(T,$)=>$==="number"?kK(T):qK(T),eM=(T,$)=>x9(T,"number",$),Tw=(T,$)=>x9(T,"number",{...$,strict:!0}),$w=(T,$)=>x9(T,"integer",$),x9=(T,$,J)=>{let W=jK(T,$);if(!Number.isNaN(W)){if(xK(T,$)){if(J?.strict)return IK(T,$)?W:R(sM(T,$));return W}}return J?.errorOnFail?R(J?.errorOnFail===!0?`Failed to parse ${aM[$]} from '${T}'`:J?.errorOnFail):void 0},Jw=(T)=>{if(T[T.length-1]!=="n")return;let $=T.slice(0,-1),J;try{J=BigInt($)}catch{return}if(s2.test($))return J;if(j9.test($))return R(sM(T,"bigint"))};var bK="0.45.9",PK={version:bK,filename:lM.fileName(),FileConstructor:k9},d0=PK,Ww=new WeakMap,b9=Object.create(null),e2=(T)=>{let $=Ww.get(T);if($)return $;let J=vK(T);if(b9[J])J=`${J}${b9[J]++}`;else b9[J]=1;return d0[J]=T,Ww.set(T,J),J},dW=(T)=>/^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(T),vK=(T)=>{switch(typeof T){case"object":{if(T===null)break;let $=i2(T)??"object";return $[0].toLowerCase()+$.slice(1)}case"function":return dW(T.name)?T.name:"fn";case"symbol":return T.description&&dW(T.description)?T.description:"symbol"}return fT(`Unexpected attempt to register serializable value of type ${V$(T)}`)};var D4=(T)=>typeof T==="string"?JSON.stringify(T):typeof T==="bigint"?`${T}n`:`${T}`;var Xw=(T,$={})=>T8(T,{onUndefined:"$ark.undefined",onBigInt:(J)=>`$ark.bigint-${J}`,...$},[]);var YT=(T,$)=>{switch(V$(T)){case"object":let J=T,W=J.constructor.name;return W==="Object"||W==="Array"?JSON.stringify(T8(J,K4,[]),null,$):J instanceof Date?l0(J):typeof J.expression==="string"?J.expression:W;case"symbol":return K4.onSymbol(T);default:return D4(T)}},K4={onCycle:()=>"(cycle)",onSymbol:(T)=>`Symbol(${e2(T)})`,onFunction:(T)=>`Function(${e2(T)})`},T8=(T,$,J)=>{switch(V$(T)){case"object":{let W=T;if("toJSON"in W&&typeof W.toJSON==="function")return W.toJSON();if(typeof W==="function")return K4.onFunction(W);if(J.includes(W))return"(cycle)";let X=[...J,W];if(Array.isArray(W))return W.map((Y)=>T8(Y,$,X));if(W instanceof Date)return W.toDateString();let F={};for(let Y in W)F[Y]=T8(W[Y],$,X);for(let Y of Object.getOwnPropertySymbols(W))F[$.onSymbol?.(Y)??Y.toString()]=T8(W[Y],$,X);return F}case"symbol":return K4.onSymbol(T);case"bigint":return $.onBigInt?.(T)??`${T}n`;case"undefined":return $.onUndefined??"undefined";case"string":return T.replaceAll("\\","\\\\");default:return T}},l0=(T)=>{let $=T.getFullYear(),J=T.getMonth(),W=T.getDate(),X=T.getHours(),F=T.getMinutes(),Y=T.getSeconds(),G=T.getMilliseconds();if(J===0&&W===1&&X===0&&F===0&&Y===0&&G===0)return`${$}`;let H=`${hK[J]} ${W}, ${$}`;if(X===0&&F===0&&Y===0&&G===0)return H;let A=T.toLocaleTimeString(),z=A.endsWith(" AM")||A.endsWith(" PM")?A.slice(-3):"";if(z)A=A.slice(0,-z.length);if(G)A+=`.${gK(G,3)}`;else if(mK.test(A))A=A.slice(0,-3);return`${A+z}, ${H}`},hK=["January","February","March","April","May","June","July","August","September","October","November","December"],mK=/:\d\d:00$/,gK=(T,$)=>String(T).padStart($,"0");var Fw=(T,$,...[J])=>{let W=J?.stringifySymbol??YT,X=T;switch(typeof $){case"string":X=dW($)?T===""?$:`${T}.${$}`:`${T}[${JSON.stringify($)}]`;break;case"number":X=`${T}[${$}]`;break;case"symbol":X=`${T}[${W($)}]`;break;default:if(J?.stringifyNonKey)X=`${T}[${J.stringifyNonKey($)}]`;else R(`${YT($)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return X},C1=(T,...$)=>T.reduce((J,W)=>Fw(J,W,...$),"");class $8 extends S4{cache={};constructor(...T){super();this.push(...T)}toJSON(){if(this.cache.json)return this.cache.json;this.cache.json=[];for(let T=0;T<this.length;T++)this.cache.json.push(typeof this[T]==="symbol"?YT(this[T]):this[T]);return this.cache.json}stringify(){if(this.cache.stringify)return this.cache.stringify;return this.cache.stringify=C1(this)}stringifyAncestors(){if(this.cache.stringifyAncestors)return this.cache.stringifyAncestors;let T="",$=[T];return this.forEach((J)=>{T=Fw(T,J),$.push(T)}),this.cache.stringifyAncestors=$}}class P9{chars;i;def;constructor(T){this.def=T,this.chars=[...T],this.i=0}shift(){return this.chars[this.i++]??""}get lookahead(){return this.chars[this.i]??""}get nextLookahead(){return this.chars[this.i+1]??""}get length(){return this.chars.length}shiftUntil(T){let $="";while(this.lookahead){if(T(this,$))if($[$.length-1]===a2)$=$.slice(0,-1);else break;$+=this.shift()}return $}shiftUntilLookahead(T){return typeof T==="string"?this.shiftUntil(($)=>$.lookahead===T):this.shiftUntil(($)=>($.lookahead in T))}shiftUntilNonWhitespace(){return this.shiftUntil(()=>!(this.lookahead in J0))}jumpToIndex(T){this.i=T<0?this.length+T:T}jumpForward(T){this.i+=T}get location(){return this.i}get unscanned(){return this.chars.slice(this.i,this.length).join("")}get scanned(){return this.chars.slice(0,this.i).join("")}sliceChars(T,$){return this.chars.slice(T,$).join("")}lookaheadIs(T){return this.lookahead===T}lookaheadIsIn(T){return this.lookahead in T}}var sr=vJ("implementedTraits");var v9="$ark",pK=2;while(v9 in globalThis)v9=`$ark${pK++}`;var Yw=v9;globalThis[Yw]=d0;var y=d0,uK=(T)=>`${Yw}.${T}`,sT=(T)=>uK(e2(T));class V4 extends l2{argNames;body="";constructor(...T){super();this.argNames=T;for(let $ of T){if($ in this)throw new Error(`Arg name '${$}' would overwrite an existing property on FunctionBody`);this[$]=$}}indentation=0;indent(){return this.indentation+=4,this}dedent(){return this.indentation-=4,this}prop(T,$=!1){return h9(T,$)}index(T,$=!1){return Gw(`${T}`,$)}line(T){return this.body+=`${" ".repeat(this.indentation)}${T}
100
+ `,this}const(T,$){return this.line(`const ${T} = ${$}`),this}let(T,$){return this.line(`let ${T} = ${$}`)}set(T,$){return this.line(`${T} = ${$}`)}if(T,$){return this.block(`if (${T})`,$)}elseIf(T,$){return this.block(`else if (${T})`,$)}else(T){return this.block("else",T)}for(T,$,J=0){return this.block(`for (let i = ${J}; ${T}; i++)`,$)}forIn(T,$){return this.block(`for (const k in ${T})`,$)}block(T,$,J=""){return this.line(`${T} {`),this.indent(),$(this),this.dedent(),this.line(`}${J}`)}return(T=""){return this.line(`return ${T}`)}write(T="anonymous",$=0){return`${T}(${this.argNames.join(", ")}) { ${$?this.body.split(`
101
+ `).map((J)=>" ".repeat($)+`${J}`).join(`
102
+ `):this.body} }`}compile(){return new cM(...this.argNames,this.body)}}var Z1=(T)=>e$(T,"object")||typeof T==="symbol"?sT(T):D4(T),h9=(T,$=!1)=>{if(typeof T==="string"&&dW(T))return`${$?"?":""}.${T}`;return Gw(cK(T),$)},cK=(T)=>typeof T==="symbol"?sT(T):JSON.stringify(T),Gw=(T,$=!1)=>`${$?"?.":""}[${T}]`;class J8 extends V4{traversalKind;optimistic;constructor(T){super("data","ctx");this.traversalKind=T.kind,this.optimistic=T.optimistic===!0}invoke(T,$){let J=$?.arg??this.data,W=typeof T==="string"?!0:this.requiresContextFor(T),X=typeof T==="string"?T:T.id;if(W)return`${this.referenceToId(X,$)}(${J}, ${this.ctx})`;return`${this.referenceToId(X,$)}(${J})`}referenceToId(T,$){let J=$?.kind??this.traversalKind,W=`this.${T}${J}`;return $?.bind?`${W}.bind(${$?.bind})`:W}requiresContextFor(T){return this.traversalKind==="Apply"||T.allowsRequiresContext}initializeErrorCount(){return this.const("errorCount","ctx.currentErrorCount")}returnIfFail(){return this.if("ctx.currentErrorCount > errorCount",()=>this.return())}returnIfFailFast(){return this.if("ctx.failFast && ctx.currentErrorCount > errorCount",()=>this.return())}traverseKey(T,$,J){let W=this.requiresContextFor(J);if(W)this.line(`${this.ctx}.path.push(${T})`);if(this.check(J,{arg:$}),W)this.line(`${this.ctx}.path.pop()`);return this}check(T,$){return this.traversalKind==="Allows"?this.if(`!${this.invoke(T,$)}`,()=>this.return(!1)):this.line(this.invoke(T,$))}}var E4=(T)=>AT(T,($,J)=>[$,mT(J)?[...J]:J]),o$=vJ("arkKind"),l=(T,$)=>T?.[o$]===$,cT=(T)=>l(T,"root")||l(T,"constraint");var Hw=["unit","proto","domain"],lW=["required","optional","index","sequence"],m9=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],R4=[...m9,...lW,"structure","predicate"],nW=["alias","union","morph","unit","intersection","proto","domain"],oK=[...nW,...R4],L4=AT(R4,(T,$)=>[$,1]),Aw=AT([...lW,"undeclared"],(T,$)=>[$,1]),zw=AT(oK,(T,$)=>[$,T]),iW=(T)=>typeof T==="string"&&(T in zw);var tW=(T)=>zw[T],B4=(T)=>nW.slice(tW(T)+1),ba=[...B4("union"),"alias"],Pa=[...B4("morph"),"alias"],LJ=(T)=>{if(typeof T==="string"||typeof T==="boolean"||T===null)return T;if(typeof T==="number"){if(Number.isNaN(T))return"NaN";if(T===Number.POSITIVE_INFINITY)return"Infinity";if(T===Number.NEGATIVE_INFINITY)return"-Infinity";return T}return Z1(T)},W0=(T)=>{let $="{ ";for(let[J,W]of Object.entries(T))$+=`${J}: ${Z1(W)}, `;return $+" }"},GT=(T)=>{let $=T;if($.hasAssociatedError)$.defaults.expected??=(J)=>("description"in J)?J.description:$.defaults.description(J),$.defaults.actual??=(J)=>YT(J),$.defaults.problem??=(J)=>`must be ${J.expected}${J.actual?` (was ${J.actual})`:""}`,$.defaults.message??=(J)=>{if(J.path.length===0)return J.problem;let W=`${J.propString} ${J.problem}`;if(W[0]==="[")return`value at ${W}`;return W};return $};y.config??={};var W8=(T,$)=>{if(!$)return T;let J={...T},W;for(W in $){let X={...T.keywords};if(W==="keywords"){for(let F in $[W]){let Y=$.keywords[F];if(Y===void 0)continue;X[F]=typeof Y==="string"?{description:Y}:Y}J.keywords=X}else J[W]=iW(W)?{...T[W],...$[W]}:$[W]}return J};class X0 extends l2{[o$]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:T,relativePath:$,...J},W){super();this.input=J,this.ctx=W,vM(this,J);let X=W.data;if(J.code==="union")J.errors=J.errors.flatMap((Y)=>{let G=Y.hasCode("union")?Y.errors:[Y];if(!T&&!$)return G;return G.map((H)=>H.transform((A)=>({...A,path:qM(T,A.path,$)})))});this.nodeConfig=W.config[this.code];let F=[...J.path??W.path];if($)F.push(...$);if(T)F.unshift(...T);this.path=new $8(...F),this.data="data"in J?J.data:X}transform(T){return new X0(T({data:this.data,path:this.path,...this.input}),this.ctx)}hasCode(T){return this.code===T}get propString(){return C1(this.path)}get expected(){if(this.input.expected)return this.input.expected;let T=this.meta?.expected??this.nodeConfig.expected;return typeof T==="function"?T(this.input):T}get actual(){if(this.input.actual)return this.input.actual;let T=this.meta?.actual??this.nodeConfig.actual;return typeof T==="function"?T(this.data):T}get problem(){if(this.input.problem)return this.input.problem;let T=this.meta?.problem??this.nodeConfig.problem;return typeof T==="function"?T(this):T}get message(){if(this.input.message)return this.input.message;let T=this.meta?.message??this.nodeConfig.message;return typeof T==="function"?T(this):T}get flat(){return this.hasCode("intersection")?[...this.errors]:[this]}toJSON(){return{data:this.data,path:this.path,...this.input,expected:this.expected,actual:this.actual,problem:this.problem,message:this.message}}toString(){return this.message}throw(){throw this}}class $J extends S4{[o$]="errors";ctx;constructor(T){super();this.ctx=T}byPath=Object.create(null);get flatByPath(){return AT(this.byPath,(T,$)=>[T,$.flat])}get flatProblemsByPath(){return AT(this.byPath,(T,$)=>[T,$.flat.map((J)=>J.problem)])}byAncestorPath=Object.create(null);count=0;mutable=this;throw(){throw this.toTraversalError()}toTraversalError(){return new g9(this)}add(T){if(this.includes(T))return;this._add(T)}transform(T){let $=new $J(this.ctx);return this.forEach((J)=>$.add(T(J))),$}merge(T){T.forEach(($)=>{if(this.includes($))return;this._add(new X0({...$,path:[...this.ctx.path,...$.path]},this.ctx))})}affectsPath(T){if(this.length===0)return!1;return T.stringifyAncestors().some(($)=>($ in this.byPath))||T.stringify()in this.byAncestorPath}get summary(){return this.toString()}get issues(){return this}toJSON(){return[...this.map((T)=>T.toJSON())]}toString(){return this.join(`
103
+ `)}_add(T){let $=this.byPath[T.propString];if($){if($.hasCode("union")&&$.errors.length===0)return;let J=T.hasCode("union")&&T.errors.length===0?T:new X0({code:"intersection",errors:$.hasCode("intersection")?[...$.errors,T]:[$,T]},this.ctx),W=this.indexOf($);this.mutable[W===-1?this.length:W]=J,this.byPath[T.propString]=J,this.addAncestorPaths(T)}else this.byPath[T.propString]=T,this.addAncestorPaths(T),this.mutable.push(T);this.count++}addAncestorPaths(T){T.path.stringifyAncestors().forEach(($)=>{this.byAncestorPath[$]=KT(this.byAncestorPath[$],T)})}}class g9 extends Error{name="TraversalError";constructor(T){if(T.length===1)super(T.summary);else super(`
104
+ `+T.map(($)=>` \u2022 ${dK($)}`).join(`
105
+ `));Object.defineProperty(this,"arkErrors",{value:T,enumerable:!1})}}var dK=(T)=>T.toString().split(`
106
+ `).join(`
107
+ `);class mJ{path=[];errors=new $J(this);root;config;queuedMorphs=[];branches=[];seen={};constructor(T,$){this.root=T,this.config=$}get data(){let T=this.root;for(let $ of this.path)T=T?.[$];return T}get propString(){return C1(this.path)}reject(T){return this.error(T),!1}mustBe(T){return this.error(T),!1}error(T){let $=typeof T==="object"?T.code?T:{...T,code:"predicate"}:{code:"predicate",expected:T};return this.errorFromContext($)}hasError(){return this.currentErrorCount!==0}get currentBranch(){return this.branches.at(-1)}queueMorphs(T){let $={path:new $8(...this.path),morphs:T};if(this.currentBranch)this.currentBranch.queuedMorphs.push($);else this.queuedMorphs.push($)}finalize(T){if(this.queuedMorphs.length){if(typeof this.root==="object"&&this.root!==null&&this.config.clone)this.root=this.config.clone(this.root);this.applyQueuedMorphs()}if(this.hasError())return T?T(this.errors):this.errors;return this.root}get currentErrorCount(){return this.currentBranch?this.currentBranch.error?1:0:this.errors.count}get failFast(){return this.branches.length!==0}pushBranch(){this.branches.push({error:void 0,queuedMorphs:[]})}popBranch(){return this.branches.pop()}get external(){return this}errorFromNodeContext(T){return this.errorFromContext(T)}errorFromContext(T){let $=new X0(T,this);if(this.currentBranch)this.currentBranch.error=$;else this.errors.add($);return $}applyQueuedMorphs(){while(this.queuedMorphs.length){let T=this.queuedMorphs;this.queuedMorphs=[];for(let{path:$,morphs:J}of T){if(this.errors.affectsPath($))continue;this.applyMorphsAtPath($,J)}}}applyMorphsAtPath(T,$){let J=T.at(-1),W;if(J!==void 0){W=this.root;for(let X=0;X<T.length-1;X++)W=W[T[X]]}this.path=[...T];for(let X of $){let F=cT(X),Y=X(W===void 0?this.root:W[J],this);if(Y instanceof X0){this.errors.add(Y);break}if(Y instanceof $J){if(!F)this.errors.merge(Y);break}if(W===void 0)this.root=Y;else W[J]=Y;this.applyQueuedMorphs()}}}var JJ=(T,$,J)=>{if(!J)return $();J.path.push(T);let W=$();return J.path.pop(),W};class F8 extends hJ{attachments;$;onFail;includesTransform;includesContextualPredicate;isCyclic;allowsRequiresContext;rootApplyStrategy;contextFreeMorph;rootApply;referencesById;shallowReferences;flatRefs;flatMorphs;allows;get shallowMorphs(){return[]}constructor(T,$){super((W,X,F=this.onFail)=>{if(X)return this.traverseApply(W,X),X.hasError()?X.errors:X.data;return this.rootApply(W,F)},{attach:T});this.attachments=T,this.$=$,this.onFail=this.meta.onFail??this.$.resolvedConfig.onFail,this.includesTransform=this.hasKind("morph")||this.hasKind("structure")&&this.structuralMorph!==void 0,this.includesContextualPredicate=this.hasKind("predicate")&&this.inner.predicate.length!==1,this.isCyclic=this.kind==="alias",this.referencesById={[this.id]:this},this.shallowReferences=this.hasKind("structure")?[this,...this.children]:this.children.reduce((W,X)=>tK(W,X.shallowReferences),[this]);let J=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let W=0;W<this.children.length;W++){if(this.includesTransform||=this.children[W].includesTransform,this.includesContextualPredicate||=this.children[W].includesContextualPredicate,this.isCyclic||=this.children[W].isCyclic,!J){let X=this.children[W].flatRefs;for(let F=0;F<X.length;F++){let Y=X[F];if(!this.flatRefs.some((G)=>ww(G,Y))){this.flatRefs.push(Y);for(let G of Y.node.branches)if(G.hasKind("morph")||G.hasKind("intersection")&&G.structure?.structuralMorph!==void 0)this.flatMorphs.push({path:Y.path,propString:Y.propString,node:G})}}}Object.assign(this.referencesById,this.children[W].referencesById)}this.flatRefs.sort((W,X)=>W.path.length>X.path.length?1:W.path.length<X.path.length?-1:W.propString>X.propString?1:W.propString<X.propString?-1:W.node.expression<X.node.expression?-1:1),this.allowsRequiresContext=this.includesContextualPredicate||this.isCyclic,this.rootApplyStrategy=!this.allowsRequiresContext&&this.flatMorphs.length===0?this.shallowMorphs.length===0?"allows":this.shallowMorphs.every((W)=>W.length===1||W.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((W)=>W.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(W)=>this.traverseAllows(W,new mJ(W,this.$.resolvedConfig)):(W)=>this.traverseAllows(W)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return($,J)=>{if(this.allows($))return $;let W=new mJ($,this.$.resolvedConfig);return this.traverseApply($,W),W.finalize(J)};case"contextual":return($,J)=>{let W=new mJ($,this.$.resolvedConfig);return this.traverseApply($,W),W.finalize(J)};case"optimistic":this.contextFreeMorph=this.shallowMorphs[0];let T=this.$.resolvedConfig.clone;return($,J)=>{if(this.allows($))return this.contextFreeMorph(T&&(typeof $==="object"&&$!==null||typeof $==="function")?T($):$);let W=new mJ($,this.$.resolvedConfig);return this.traverseApply($,W),W.finalize(J)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,fT(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=iK(this.metaJson);cacheGetter(T,$){return Object.defineProperty(this,T,{value:$}),$}get description(){return this.cacheGetter("description",this.meta?.description??this.$.resolvedConfig[this.kind].description(this))}get references(){return Object.values(this.referencesById)}precedence=tW(this.kind);precompilation;assert=(T,$)=>this(T,$,(J)=>J.throw());traverse(T,$){return this(T,$,null)}get in(){return this.cacheGetter("in",this.getIo("in"))}get out(){return this.cacheGetter("out",this.getIo("out"))}getIo(T){if(!this.includesTransform)return this;let $={};for(let[J,W]of this.innerEntries){let X=this.impl.keys[J];if(X.reduceIo)X.reduceIo(T,$,W);else if(X.child){let F=W;$[J]=mT(F)?F.map((Y)=>Y[T]):F[T]}else $[J]=W}return this.$.node(this.kind,$)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(T){let $=cT(T)?T:this.$.parseDefinition(T);return this.innerHash===$.innerHash}ifEquals(T){return this.equals(T)?this:void 0}hasKind(T){return this.kind===T}assertHasKind(T){if(this.kind!==T)f1(`${this.kind} node was not of asserted kind ${T}`);return this}hasKindIn(...T){return T.includes(this.kind)}assertHasKindIn(...T){if(!R1(T,this.kind))f1(`${this.kind} node was not one of asserted kinds ${T}`);return this}isBasis(){return R1(Hw,this.kind)}isConstraint(){return R1(R4,this.kind)}isStructural(){return R1(lW,this.kind)}isRefinement(){return R1(m9,this.kind)}isRoot(){return R1(nW,this.kind)}isUnknown(){return this.hasKind("intersection")&&this.children.length===0}isNever(){return this.hasKind("union")&&this.children.length===0}hasUnit(T){return this.hasKind("unit")&&this.allows(T)}hasOpenIntersection(){return this.impl.intersectionIsOpen}get nestableExpression(){return this.expression}select(T){let $=X8.normalize(T);return this._select($)}_select(T){let $=X8.applyBoundary[T.boundary??"references"](this);if(T.kind)$=$.filter((J)=>J.kind===T.kind);if(T.where)$=$.filter(T.where);return X8.applyMethod[T.method??"filter"]($,this,T)}transform(T,$){return this._transform(T,this._createTransformContext($))}_createTransformContext(T){return{root:this,selected:void 0,seen:{},path:[],parseOptions:{prereduced:T?.prereduced??!1},undeclaredKeyHandling:void 0,...T}}_transform(T,$){let J=$.bindScope??this.$;if($.seen[this.id])return this.$.lazilyResolve($.seen[this.id]);if($.shouldTransform?.(this,$)===!1)return this;let W;if($.seen[this.id]=()=>W,this.hasKind("structure")&&this.undeclared!==$.undeclaredKeyHandling)$={...$,undeclaredKeyHandling:this.undeclared};let X=AT(this.inner,(A,z)=>{if(!this.impl.keys[A].child)return[A,z];let M=z;if(!mT(M)){let S=M._transform(T,$);return S?[A,S]:[]}if(M.length===0)return[A,z];let w=M.flatMap((S)=>{return S._transform(T,$)??[]});return w.length?[A,w]:[]});delete $.seen[this.id];let F=Object.assign(X,{meta:this.meta}),Y=$.selected&&!$.selected.includes(this)?F:T(this.kind,F,$);if(Y===null)return null;if(cT(Y))return W=Y;let G=Object.keys(Y);if((G.length===0||G.length===1&&G[0]==="meta")&&!T1(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in Y))return $.undeclaredKeyHandling?{...Y,value:y.intrinsic.unknown}:null;if(this.kind==="morph")Y.in??=y.intrinsic.unknown;return W=J.node(this.kind,Y,$.parseOptions)}configureReferences(T,$="references"){let J=X8.normalize($),W=typeof T==="string"?(G,H)=>({...H,meta:{...H.meta,description:T}}):typeof T==="function"?(G,H)=>({...H,meta:T(H.meta)}):(G,H)=>({...H,meta:{...H.meta,...T}});if(J.boundary==="self")return this.$.node(this.kind,W(this.kind,{...this.inner,meta:this.meta}));let X=this._select(J),F=X&&T0(X),Y=J.boundary==="child"?(G,H)=>H.root.children.includes(G):J.boundary==="shallow"?(G)=>G.kind!=="structure":()=>!0;return this.$.finalize(this.transform(W,{shouldTransform:Y,selected:F}))}}var X8={applyBoundary:{self:(T)=>[T],child:(T)=>[...T.children],shallow:(T)=>[...T.shallowReferences],references:(T)=>[...T.references]},applyMethod:{filter:(T)=>T,assertFilter:(T,$,J)=>{if(T.length===0)f1(Mw($,J));return T},find:(T)=>T[0],assertFind:(T,$,J)=>{if(T.length===0)f1(Mw($,J));return T[0]}},normalize:(T)=>typeof T==="function"?{boundary:"references",method:"filter",where:T}:typeof T==="string"?X$(T,X8.applyBoundary)?{method:"filter",boundary:T}:{boundary:"references",method:"filter",kind:T}:{boundary:"references",method:"filter",...T}},Mw=(T,$)=>`${T} had no references matching ${YT($)}.`,lK=(T)=>C1(T,{stringifyNonKey:($)=>$.expression}),nK=/"(\$ark\.[^"]+)"/g,iK=(T)=>JSON.stringify(T).replaceAll(nK,"$1"),gJ=(T,$)=>({path:T,node:$,propString:lK(T)}),ww=(T,$)=>T.propString===$.propString&&T.node.equals($.node),p9=(T,$)=>eJ(T,$,{isEqual:ww}),tK=(T,$)=>eJ(T,$,{isEqual:(J,W)=>J.equals(W)});class v extends Array{static init(T,$,J,W){return new v({kind:T,l:$,r:J,path:W?.path??[],optional:W?.optional??!1})}add(T,$,J,W){return this.push({kind:T,l:$,r:J,path:W?.path??[],optional:W?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:T,l:$,r:J}=this[0],W=C1(T);return c9(`Intersection${W&&` at ${W}`} of ${Qw($,J)}`)}return`The following intersections result in unsatisfiable types:
108
+ \u2022 ${this.map(({path:T,l:$,r:J})=>`${T}: ${Qw($,J)}`).join(`
109
+ \u2022 `)}`}throw(){return R(this.describeReasons())}invert(){let T=this.map(($)=>({...$,l:$.r,r:$.l}));if(!(T instanceof v))return new v(...T);return T}withPrefixKey(T,$){return this.map((J)=>({...J,path:[T,...J.path],optional:J.optional||$==="optional"}))}toNeverIfDisjoint(){return y.intrinsic.never}}var Qw=(T,$)=>`${u9(T)} and ${u9($)}`,u9=(T)=>cT(T)?T.expression:mT(T)?T.map(u9).join(" | ")||"never":String(T),c9=(T)=>`${T} results in an unsatisfiable type`;var rW={},WJ=(T,$,J)=>oT(T,$,{$:J,invert:!1,pipe:!1}),Y8=(T,$,J)=>oT(T,$,{$:J,invert:!1,pipe:!0}),oT=(T,$,J)=>{let W=J.pipe?"|>":"&",X=`${T.hash}${W}${$.hash}`;if(rW[X]!==void 0)return rW[X];if(!J.pipe){let G=`${$.hash}${W}${T.hash}`;if(rW[G]!==void 0){let H=rW[G],A=H instanceof v?H.invert():H;return rW[X]=A,A}}let F=!J.pipe||!T.includesTransform&&!$.includesTransform;if(F&&T.equals($))return T;let Y=F?o9(T,$,J):T.hasKindIn(...nW)?rK(T,$,J):o9(T,$,J);if(cT(Y)){if(T.equals(Y))Y=T;else if($.equals(Y))Y=$}return rW[X]=Y,Y},o9=(T,$,J)=>{let W=T.precedence<$.precedence?T.kind:$.kind,X=T.impl.intersections[$.kind]??$.impl.intersections[T.kind];if(X===void 0)return null;else if(W===T.kind)return X(T,$,J);else{let F=X($,T,{...J,invert:!J.invert});if(F instanceof v)F=F.invert();return F}},rK=(T,$,J)=>T.includesTransform||$.includesTransform?J.invert?Ow($,T,J):Ow(T,$,J):o9(T,$,J),Ow=(T,$,J)=>T.distribute((W)=>aK(W,$,J),(W)=>{let X=W.filter(cT);if(X.length===0)return v.init("union",T.branches,$.branches);if(X.length<T.branches.length||!T.branches.every((G,H)=>G.in.equals(X[H].in)))return J.$.parseSchema(X);let F;if(X.length===1){let G=X[0];if(!F)return G;return J.$.node("morph",{...G.inner,in:G.in.configure(F,"self")})}let Y={branches:X};if(F)Y.meta=F;return J.$.parseSchema(Y)}),aK=(T,$,J)=>{if(T.hasKind("morph")){let X=[...T.morphs];if(T.lastMorphIfNode){let F=oT(T.lastMorphIfNode,$,J);if(F instanceof v)return F;X[X.length-1]=F}else X.push($);return J.$.node("morph",{morphs:X,in:T.inner.in})}if($.hasKind("morph")){let X=oT(T,$.in,J);if(X instanceof v)return X;return J.$.node("morph",{morphs:[$],in:X})}return J.$.node("morph",{morphs:[$],in:T})};class BJ extends F8{constructor(T,$){super(T,$);Object.defineProperty(this,o$,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(T){return WJ(this,T,this.$)}}class k1 extends BJ{traverseApply=(T,$)=>{if(!this.traverseAllows(T,$))$.errorFromNodeContext(this.errorContext)};compile(T){if(T.traversalKind==="Allows")T.return(this.compiledCondition);else T.if(this.compiledNegation,()=>T.line(`${T.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return W0(this.errorContext)}}var h$=(T)=>($,J)=>{if(mT($)){if($.length===0)return;let X=$.map((F)=>J.$.node(T,F));if(T==="predicate")return X;return X.sort((F,Y)=>F.hash<Y.hash?-1:1)}let W=J.$.node(T,$);return W.hasOpenIntersection()?[W]:W},aW=(T)=>{let $=T.r.shift();if(!$){let W=T.l.length===0&&T.kind==="structure"?y.intrinsic.unknown.internal:T.ctx.$.node(T.kind,Object.assign(T.baseInner,sK(T.l)),{prereduced:!0});for(let X of T.roots){if(W instanceof v)return W;W=oT(X,W,T.ctx)}return W}let J=!1;for(let W=0;W<T.l.length;W++){let X=oT(T.l[W],$,T.ctx);if(X===null)continue;if(X instanceof v)return X;if(!J){if(X.isRoot())return T.roots.push(X),T.l.splice(W),aW(T);T.l[W]=X,J=!0}else if(!T.l.includes(X))return fT(`Unexpectedly encountered multiple distinct intersection results for refinement ${X}`)}if(!J)T.l.push($);if(T.kind==="intersection")$.impliedSiblings?.forEach((W)=>eJ(T.r,W));return aW(T)},sW=(T)=>{return Object.entries(T).flatMap(([J,W])=>(J in L4)?W:[]).sort((J,W)=>J.precedence<W.precedence?-1:J.precedence>W.precedence?1:J.kind==="predicate"&&W.kind==="predicate"?0:J.hash<W.hash?-1:1)},sK=(T)=>{let $={};for(let J of T)if(J.hasOpenIntersection())$[J.kind]=KT($[J.kind],J);else{if($[J.kind])return fT(`Unexpected intersection of closed refinements of kind ${J.kind}`);$[J.kind]=J}return $},Uw=(...T)=>R(Sw(...T)),Sw=(T,$,J)=>{let W=J.hasKind("morph")?"a morph":J.isUnknown()?"unknown":J.exclude($).defaultShortDescription;return`${nM(T)} operand must be ${$.description} (was ${W})`};var _w=(T,$,J)=>new F0(T,$,J,J,null);class f4 extends hJ{}class F0 extends hJ{[o$]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(T,$,J,W,X){super((...F)=>{let Y=AT(this.names,(G,H)=>{let A=this.arg$.parse(F[G]);if(!A.extends(this.constraints[G]))R(eK(H,this.constraints[G].expression,A.expression));return[H,A]});if(this.defIsLazy()){let G=this.bodyDef(Y);return this.$.parse(G)}return this.$.parse($,{args:Y})});this.paramDefs=T,this.bodyDef=$,this.$=J,this.arg$=W,this.hkt=X,this.description=X?new X().description??`a generic type for ${X.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof f4}cacheGetter(T,$){return Object.defineProperty(this,T,{value:$}),$}get json(){return this.cacheGetter("json",{params:this.params.map((T)=>T[1].isUnknown()?T[0]:[T[0],T[1].json]),body:Xw(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((T)=>typeof T==="string"?[T,y.intrinsic.unknown]:[T[0],this.$.parse(T[1])]))}get names(){return this.cacheGetter("names",this.params.map((T)=>T[0]))}get constraints(){return this.cacheGetter("constraints",this.params.map((T)=>T[1]))}get internal(){return this}get referencesById(){return this.baseInstantiation.internal.referencesById}get references(){return this.baseInstantiation.internal.references}}var eK=(T,$,J)=>`${T} must be assignable to ${$} (was ${J})`;var Dw={morph:"it represents a transformation, while JSON Schema only allows validation. Consider creating a Schema from one of its endpoints using `.in` or `.out`.",cyclic:"cyclic types are not yet convertible to JSON Schema. If this feature is important to you, please add your feedback at https://github.com/arktypeio/arktype/issues/1087"},Kw=(T,$)=>{let J=`${T} is not convertible to JSON Schema`;if($){let W=X$($,Dw)?Dw[$]:$;J+=` because ${W}`}return J},NT={writeUnjsonifiableMessage:Kw,UnjsonifiableError:class T extends Error{},throwUnjsonifiableError:(...T)=>f1(Kw(...T)),throwInternalOperandError:(T,$)=>fT(`Unexpected JSON Schema input for ${T}: ${YT($)}`)};var TV=GT({kind:"predicate",hasAssociatedError:!0,collapsibleKey:"predicate",keys:{predicate:{}},normalize:(T)=>typeof T==="function"?{predicate:T}:T,defaults:{description:(T)=>`valid according to ${T.predicate.name||"an anonymous predicate"}`},intersectionIsOpen:!0,intersections:{predicate:()=>null}});class Vw extends BJ{serializedPredicate=sT(this.predicate);compiledCondition=`${this.serializedPredicate}(data, ctx)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=null;expression=this.serializedPredicate;traverseAllows=this.predicate;errorContext={code:"predicate",description:this.description,meta:this.meta};compiledErrorContext=W0(this.errorContext);traverseApply=(T,$)=>{if(!this.predicate(T,$.external)&&!$.hasError())$.errorFromNodeContext(this.errorContext)};compile(T){if(T.traversalKind==="Allows"){T.return(this.compiledCondition);return}T.if(`${this.compiledNegation} && !ctx.hasError()`,()=>T.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`))}reduceJsonSchema(){return NT.throwUnjsonifiableError(`Predicate ${this.expression}`)}}var d9={implementation:TV,Node:Vw};var $V=GT({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(T)=>Number.isInteger(T)?T:R(JV(T))}},normalize:(T)=>typeof T==="number"?{rule:T}:T,hasAssociatedError:!0,defaults:{description:(T)=>T.rule===1?"an integer":T.rule===2?"even":`a multiple of ${T.rule}`},intersections:{divisor:(T,$,J)=>J.$.node("divisor",{rule:Math.abs(T.rule*$.rule/WV(T.rule,$.rule))})},obviatesBasisDescription:!0});class Ew extends k1{traverseAllows=(T)=>T%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=y.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(T){if(T.type="integer",this.rule===1)return T;return T.multipleOf=this.rule,T}}var l9={implementation:$V,Node:Ew};var JV=(T)=>`divisor must be an integer (was ${T})`,WV=(T,$)=>{let J,W=T,X=$;while(X!==0)J=X,X=W%X,W=J;return W};class OJ extends k1{boundOperandKind=GV[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=HV(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${XV[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?AV(this.numericLimit):`${this.numericLimit}`;limitKind=this.comparator["0"]==="<"?"upper":"lower";isStricterThan(T){return(this.limitKind==="upper"?this.numericLimit<T.numericLimit:this.numericLimit>T.numericLimit)||this.numericLimit===T.numericLimit&&this.exclusive===!0&&!T.exclusive}overlapsRange(T){if(this.isStricterThan(T))return!1;if(this.numericLimit===T.numericLimit&&(this.exclusive||T.exclusive))return!1;return!0}overlapIsUnit(T){return this.numericLimit===T.numericLimit&&!this.exclusive&&!T.exclusive}}var XV={"<":">=","<=":">",">":"<=",">=":"<"},FV={min:"max",minLength:"maxLength",after:"before"},N4={parse:(T)=>T||void 0},C4=(T)=>($)=>{if(typeof $==="number")return{rule:$};let{exclusive:J,...W}=$;return J?{...W,rule:T==="minLength"?W.rule+1:W.rule-1}:W},Z4=(T)=>($)=>{if(typeof $==="number"||typeof $==="string"||$ instanceof Date)return{rule:$};let{exclusive:J,...W}=$;if(!J)return W;let X=typeof W.rule==="number"?W.rule:typeof W.rule==="string"?new Date(W.rule).valueOf():W.rule.valueOf();return J?{...W,rule:T==="after"?X+1:X-1}:W},k4=(T)=>typeof T==="string"||typeof T==="number"?new Date(T):T,YV=(T,$)=>`${T} bound must be a positive integer (was ${$})`,eW=(T)=>($)=>{if(!Number.isInteger($)||$<0)R(YV(T,$));return $},GV={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},HV=(T,$)=>`${X$(T,FV)?">":"<"}${$?"":"="}`,AV=(T)=>typeof T==="string"?T:new Date(T).toLocaleString(),Rw=(T)=>`Bounded expression ${T} must be exactly one of number, string, Array, or Date`;var zV=GT({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:k4,serialize:(T)=>T.toISOString()}},normalize:Z4("after"),defaults:{description:(T)=>`${T.collapsibleLimitString} or later`,actual:l0},intersections:{after:(T,$)=>T.isStricterThan($)?T:$}});class Lw extends OJ{impliedBasis=y.intrinsic.Date.internal;collapsibleLimitString=l0(this.rule);traverseAllows=(T)=>T>=this.rule;reduceJsonSchema(){return NT.throwUnjsonifiableError("Date instance")}}var n9={implementation:zV,Node:Lw};var MV=GT({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:k4,serialize:(T)=>T.toISOString()}},normalize:Z4("before"),defaults:{description:(T)=>`${T.collapsibleLimitString} or earlier`,actual:l0},intersections:{before:(T,$)=>T.isStricterThan($)?T:$,after:(T,$,J)=>T.overlapsRange($)?T.overlapIsUnit($)?J.$.node("unit",{unit:T.rule}):null:v.init("range",T,$)}});class Bw extends OJ{collapsibleLimitString=l0(this.rule);traverseAllows=(T)=>T<=this.rule;impliedBasis=y.intrinsic.Date.internal;reduceJsonSchema(){return NT.throwUnjsonifiableError("Date instance")}}var i9={implementation:MV,Node:Bw};var wV=GT({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:eW("exactLength")}},normalize:(T)=>typeof T==="number"?{rule:T}:T,hasAssociatedError:!0,defaults:{description:(T)=>`exactly length ${T.rule}`,actual:(T)=>`${T.length}`},intersections:{exactLength:(T,$,J)=>v.init("unit",J.$.node("unit",{unit:T.rule}),J.$.node("unit",{unit:$.rule}),{path:["length"]}),minLength:(T,$)=>T.rule>=$.rule?T:v.init("range",T,$),maxLength:(T,$)=>T.rule<=$.rule?T:v.init("range",T,$)}});class fw extends k1{traverseAllows=(T)=>T.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=y.intrinsic.lengthBoundable.internal;expression=`== ${this.rule}`;reduceJsonSchema(T){switch(T.type){case"string":return T.minLength=this.rule,T.maxLength=this.rule,T;case"array":return T.minItems=this.rule,T.maxItems=this.rule,T;default:return NT.throwInternalOperandError("exactLength",T)}}}var t9={implementation:wV,Node:fw};var QV=GT({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:N4},normalize:(T)=>typeof T==="number"?{rule:T}:T,defaults:{description:(T)=>{if(T.rule===0)return T.exclusive?"negative":"non-positive";return`${T.exclusive?"less than":"at most"} ${T.rule}`}},intersections:{max:(T,$)=>T.isStricterThan($)?T:$,min:(T,$,J)=>T.overlapsRange($)?T.overlapIsUnit($)?J.$.node("unit",{unit:T.rule}):null:v.init("range",T,$)},obviatesBasisDescription:!0});class Nw extends OJ{impliedBasis=y.intrinsic.number.internal;traverseAllows=this.exclusive?(T)=>T<this.rule:(T)=>T<=this.rule;reduceJsonSchema(T){if(this.exclusive)T.exclusiveMaximum=this.rule;else T.maximum=this.rule;return T}}var r9={implementation:QV,Node:Nw};var OV=GT({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:eW("maxLength")}},reduce:(T,$)=>T.rule===0?$.node("exactLength",T):void 0,normalize:C4("maxLength"),defaults:{description:(T)=>`at most length ${T.rule}`,actual:(T)=>`${T.length}`},intersections:{maxLength:(T,$)=>T.isStricterThan($)?T:$,minLength:(T,$,J)=>T.overlapsRange($)?T.overlapIsUnit($)?J.$.node("exactLength",{rule:T.rule}):null:v.init("range",T,$)}});class Cw extends OJ{impliedBasis=y.intrinsic.lengthBoundable.internal;traverseAllows=(T)=>T.length<=this.rule;reduceJsonSchema(T){switch(T.type){case"string":return T.maxLength=this.rule,T;case"array":return T.maxItems=this.rule,T;default:return NT.throwInternalOperandError("maxLength",T)}}}var a9={implementation:OV,Node:Cw};var UV=GT({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:N4},normalize:(T)=>typeof T==="number"?{rule:T}:T,defaults:{description:(T)=>{if(T.rule===0)return T.exclusive?"positive":"non-negative";return`${T.exclusive?"more than":"at least"} ${T.rule}`}},intersections:{min:(T,$)=>T.isStricterThan($)?T:$},obviatesBasisDescription:!0});class Zw extends OJ{impliedBasis=y.intrinsic.number.internal;traverseAllows=this.exclusive?(T)=>T>this.rule:(T)=>T>=this.rule;reduceJsonSchema(T){if(this.exclusive)T.exclusiveMinimum=this.rule;else T.minimum=this.rule;return T}}var s9={implementation:UV,Node:Zw};var SV=GT({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:eW("minLength")}},reduce:(T)=>T.rule===0?y.intrinsic.unknown:void 0,normalize:C4("minLength"),defaults:{description:(T)=>T.rule===1?"non-empty":`at least length ${T.rule}`,actual:(T)=>T.length===0?"":`${T.length}`},intersections:{minLength:(T,$)=>T.isStricterThan($)?T:$}});class kw extends OJ{impliedBasis=y.intrinsic.lengthBoundable.internal;traverseAllows=(T)=>T.length>=this.rule;reduceJsonSchema(T){switch(T.type){case"string":return T.minLength=this.rule,T;case"array":return T.minItems=this.rule,T;default:return NT.throwInternalOperandError("minLength",T)}}}var e9={implementation:SV,Node:kw};var yw={min:s9.implementation,max:r9.implementation,minLength:e9.implementation,maxLength:a9.implementation,exactLength:t9.implementation,after:n9.implementation,before:i9.implementation},qw={min:s9.Node,max:r9.Node,minLength:e9.Node,maxLength:a9.Node,exactLength:t9.Node,after:n9.Node,before:i9.Node};var _V=GT({kind:"pattern",collapsibleKey:"rule",keys:{rule:{},flags:{}},normalize:(T)=>typeof T==="string"?{rule:T}:T instanceof RegExp?T.flags?{rule:T.source,flags:T.flags}:{rule:T.source}:T,obviatesBasisDescription:!0,obviatesBasisExpression:!0,hasAssociatedError:!0,intersectionIsOpen:!0,defaults:{description:(T)=>`matched by ${T.rule}`},intersections:{pattern:()=>null}});class Iw extends k1{instance=new RegExp(this.rule,this.flags);expression=`${this.instance}`;traverseAllows=this.instance.test.bind(this.instance);compiledCondition=`${this.expression}.test(data)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=y.intrinsic.string.internal;reduceJsonSchema(T){if(T.pattern)return NT.throwUnjsonifiableError(`Intersection of patterns ${T.pattern} & ${this.rule}`);return T.pattern=this.rule,T}}var T5={implementation:_V,Node:Iw};var G8=(T,$)=>{let J=DV(T);if($&&!$.includes(J))return R(`Root of kind ${J} should be one of ${$}`);return J},DV=(T)=>{if(l(T,"root"))return T.kind;if(typeof T==="string")return T[0]==="$"?"alias":(T in TJ)?"domain":"proto";if(typeof T==="function")return"proto";if(typeof T!=="object"||T===null)return R(jw(T));if("morphs"in T)return"morph";if("branches"in T||mT(T))return"union";if("unit"in T)return"unit";if("reference"in T)return"alias";let $=Object.keys(T);if($.length===0||$.some((J)=>(J in L4)))return"intersection";if("proto"in T)return"proto";if("domain"in T)return"domain";return R(jw(T))},jw=(T)=>`${YT(T)} is not a valid type schema`,xw={},KV=(T)=>mT(T)?T.map(($)=>$.collapsibleJson):T.collapsibleJson,d$={};y.nodesByRegisteredId=d$;var $5=(T)=>{return xw[T]??=0,`${T}${++xw[T]}`},J5=(T)=>{let $=TX[T.kind],J=$.applyConfig?.(T.def,T.$.resolvedConfig)??T.def,W={},{meta:X,...F}=J,Y=X===void 0?{}:typeof X==="string"?{description:X}:X,G=N9(F).sort(([A],[z])=>iW(A)?iW(z)?tW(A)-tW(z):1:iW(z)?-1:A<z?-1:1).filter(([A,z])=>{if(A.startsWith("meta.")){let M=A.slice(5);return Y[M]=z,!1}return!0});for(let A of G){let z=A[0],M=$.keys[z];if(!M)return R(`Key ${z} is not valid on ${T.kind} schema`);let w=M.parse?M.parse(A[1],T):A[1];if(w!==QJ&&(w!==void 0||M.preserveUndefined))W[z]=w}if($.reduce&&!T.prereduced){let A=$.reduce(W,T.$);if(A){if(A instanceof v)return A.throw();return VV(A,Y)}}return W5({id:T.id,kind:T.kind,inner:W,meta:Y,$:T.$})},W5=({id:T,kind:$,inner:J,meta:W,$:X,ignoreCache:F})=>{let Y=TX[$],G=N9(J),H=[],A={};if(G.forEach(([k,N])=>{let q=Y.keys[k],V=q.serialize??(q.child?KV:LJ);if(A[k]=V(N),q.child===!0){let f=N;if(mT(f))H.push(...f);else H.push(f)}else if(typeof q.child==="function")H.push(...q.child(N))}),Y.finalizeInnerJson)A=Y.finalizeInnerJson(A);let z={...A},M={};if(!T1(W))M=AT(W,(k,N)=>[k,k==="examples"?N:LJ(N)]),z.meta=y4(M,"description",!0);A=y4(A,Y.collapsibleKey,!1);let w=JSON.stringify({kind:$,...A});z=y4(z,Y.collapsibleKey,!1);let S=y4(z,Y.collapsibleKey,!0),_=JSON.stringify({kind:$,...z});if(X.nodesByHash[_]&&!F)return X.nodesByHash[_];let K={id:T,kind:$,impl:Y,inner:J,innerEntries:G,innerJson:A,innerHash:w,meta:W,metaJson:M,json:z,hash:_,collapsibleJson:S,children:H};if($!=="intersection"){for(let k in J)if(k!=="in"&&k!=="out")K[k]=J[k]}let Z=new Pw[$](K,X);return X.nodesByHash[_]=Z},bw=(T,$)=>{if(T.id===$)return T;if(cT(d$[$]))fT(`Unexpected attempt to overwrite node id ${$}`);return W5({id:$,kind:T.kind,inner:T.inner,meta:T.meta,$:T.$,ignoreCache:!0})},VV=(T,$,J)=>{if(J&&cT(d$[J]))fT(`Unexpected attempt to overwrite node id ${J}`);return W5({id:J??$5($.alias??T.kind),kind:T.kind,inner:T.inner,meta:$,$:T.$})},y4=(T,$,J)=>{let W=Object.keys(T);if(W.length===1&&W[0]===$){let X=T[$];if(J)return X;if(e$(X,"object")&&(Object.keys(X).length===1||Array.isArray(X)))return X}return T};var H8=(T,$,J)=>{if(T.key!==$.key)return null;let W=T.key,X=oT(T.value,$.value,J),F=T.required||$.required?"required":"optional";if(X instanceof v)if(F==="optional")X=y.intrinsic.never.internal;else return X.withPrefixKey(T.key,T.required&&$.required?"required":"optional");if(F==="required")return J.$.node("required",{key:W,value:X});let Y=T.hasDefault()?$.hasDefault()?T.default===$.default?T.default:R(X5(T.default,$.default)):T.default:$.hasDefault()?$.default:QJ;return J.$.node("optional",{key:W,value:X,default:Y})};class A8 extends BJ{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=y.intrinsic.object.internal;serializedKey=Z1(this.key);compiledKey=typeof this.key==="string"?this.key:this.serializedKey;flatRefs=KT(this.value.flatRefs.map((T)=>gJ([this.key,...T.path],T.node)),gJ([this.key],this.value));_transform(T,$){$.path.push(this.key);let J=super._transform(T,$);return $.path.pop(),J}hasDefault(){return"default"in this.inner}traverseAllows=(T,$)=>{if(this.key in T)return JJ(this.key,()=>this.value.traverseAllows(T[this.key],$),$);return this.optional};traverseApply=(T,$)=>{if(this.key in T)JJ(this.key,()=>this.value.traverseApply(T[this.key],$),$);else if(this.hasKind("required"))$.errorFromNodeContext(this.errorContext)};compile(T){if(T.if(`${this.serializedKey} in data`,()=>T.traverseKey(this.serializedKey,`data${T.prop(this.key)}`,this.value)),this.hasKind("required"))T.else(()=>{if(T.traversalKind==="Apply")return T.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`);else return T.return(!1)});if(T.traversalKind==="Allows")T.return(!0)}}var X5=(T,$)=>`Invalid intersection of default values ${YT(T)} & ${YT($)}`;var EV=GT({kind:"optional",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(T,$)=>$.$.parseSchema(T)},default:{preserveUndefined:!0}},normalize:(T)=>T,reduce:(T,$)=>{if($.resolvedConfig.exactOptionalPropertyTypes===!1){if(!T.value.allows(void 0))return $.node("optional",{...T,value:T.value.or(e.undefined)},{prereduced:!0})}},defaults:{description:(T)=>`${T.compiledKey}?: ${T.value.description}`},intersections:{optional:H8}});class vw extends A8{constructor(...T){super(...T);if("default"in this.inner)M8(this.value,this.inner.default,this.key)}get outProp(){if(!this.hasDefault())return this;let{default:T,...$}=this.inner;return this.cacheGetter("outProp",this.$.node("required",$,{prereduced:!0}))}expression=this.hasDefault()?`${this.compiledKey}: ${this.value.expression} = ${YT(this.inner.default)}`:`${this.compiledKey}?: ${this.value.expression}`;defaultValueMorph=LV(this);defaultValueMorphRef=this.defaultValueMorph&&sT(this.defaultValueMorph)}var z8={implementation:EV,Node:vw},RV={},LV=(T)=>{if(!T.hasDefault())return;let $=`{${T.compiledKey}: ${T.value.id} = ${LJ(T.default)}}`;return RV[$]??=F5(T.key,T.value,T.default)},F5=(T,$,J)=>{if(typeof J==="function")return $.includesTransform?(X,F)=>{return JJ(T,()=>$(X[T]=J(),F),F),X}:(X)=>{return X[T]=J(),X};let W=$.includesTransform?$.assert(J):J;return e$(W,"object")?(X,F)=>{return JJ(T,()=>$(X[T]=J,F),F),X}:(X)=>{return X[T]=W,X}},M8=(T,$,J)=>{let W=$0($);if(e$($,"object")&&!W)R(BV(J));let X=T.in(W?$():$);if(X instanceof $J){if(J===null)R(`Default ${X.summary}`);let F=X.transform((Y)=>Y.transform((G)=>({...G,prefixPath:[J]})));R(`Default for ${F.summary}`)}return $},BV=(T)=>{return`Non-primitive default ${T===null?"":typeof T==="number"?`for value at [${T}] `:`for ${Z1(T)} `}must be specified as a function like () => ({my: 'object'})`};class fJ extends F8{constructor(T,$){super(T,$);Object.defineProperty(this,o$,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(T)=>{let $=this(T);if($ instanceof $J)return $;return{value:$}}}}as(){return this}brand(T){if(T==="")return R(fV);return this}readonly(){return this}branches=this.hasKind("union")?this.inner.branches:[this];distribute(T,$){let J=this.branches.map(T);return $?.(J)??J}get shortDescription(){return this.meta.description??this.defaultShortDescription}toJsonSchema(T={}){let $={dialect:"https://json-schema.org/draft/2020-12/schema",...T},J=this.toJsonSchemaRecurse($);if(typeof $.dialect==="string")J.$schema=$.dialect;return J}toJsonSchemaRecurse(T){let $=this.innerToJsonSchema(T);return Object.assign($,this.metaJson)}intersect(T){let $=this.$.parseDefinition(T),J=this.rawIntersect($);if(J instanceof v)return J;return this.$.finalize(J)}rawIntersect(T){return WJ(this,T,this.$)}toNeverIfDisjoint(){return this}and(T){let $=this.intersect(T);return $ instanceof v?$.throw():$}rawAnd(T){let $=this.rawIntersect(T);return $ instanceof v?$.throw():$}or(T){let $=this.$.parseDefinition(T);return this.$.finalize(this.rawOr($))}rawOr(T){let $=[...this.branches,...T.branches];return this.$.node("union",$)}map(T){return this.$.schema(this.applyStructuralOperation("map",[T]))}pick(...T){return this.$.schema(this.applyStructuralOperation("pick",T))}omit(...T){return this.$.schema(this.applyStructuralOperation("omit",T))}required(){return this.$.schema(this.applyStructuralOperation("required",[]))}partial(){return this.$.schema(this.applyStructuralOperation("partial",[]))}_keyof;keyof(){if(this._keyof)return this._keyof;let T=this.applyStructuralOperation("keyof",[]).reduce(($,J)=>$.intersect(J).toNeverIfDisjoint(),y.intrinsic.unknown.internal);if(T.branches.length===0)R(c9(`keyof ${this.expression}`));return this._keyof=this.$.finalize(T)}get props(){if(this.branches.length!==1)return R(NV(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(T){let $=this.$.parseDefinition(T);return this.$.schema($.distribute((J)=>this.applyStructuralOperation("merge",[hw(J)??R(mw("merge",J.expression))])))}applyStructuralOperation(T,$){return this.distribute((J)=>{if(J.equals(y.intrinsic.object)&&T!=="merge")return J;let W=hw(J);if(!W)R(mw(T,J.expression));if(T==="keyof")return W.keyof();if(T==="get")return W.get(...$);if(T==="props")return W.props;let X=T==="required"?"require":T==="partial"?"optionalize":T;return this.$.node("intersection",{...J.inner,structure:W[X](...$)})})}get(...T){if(T[0]===void 0)return this;return this.$.schema(this.applyStructuralOperation("get",T))}extract(T){let $=this.$.parseDefinition(T);return this.$.schema(this.branches.filter((J)=>J.extends($)))}exclude(T){let $=this.$.parseDefinition(T);return this.$.schema(this.branches.filter((J)=>!J.extends($)))}array(){return this.$.schema(this.isUnknown()?{proto:Array}:{proto:Array,sequence:this},{prereduced:!0})}overlaps(T){return!(this.intersect(T)instanceof v)}extends(T){let $=this.intersect(T);return!($ instanceof v)&&this.equals($)}ifExtends(T){return this.extends(T)?this:void 0}subsumes(T){return this.$.parseDefinition(T).extends(this)}configure(T,$="shallow"){return this.configureReferences(T,$)}describe(T,$="shallow"){return this.configure({description:T},$)}optional(){return[this,"?"]}default(T){return M8(this,T,null),[this,"=",T]}from(T){return this.assert(T)}_pipe(...T){let $=T.reduce((J,W)=>J.rawPipeOnce(W),this);return this.$.finalize($)}tryPipe(...T){let $=T.reduce((J,W)=>J.rawPipeOnce(l(W,"root")?W:(X,F)=>{try{return W(X,F)}catch(Y){return F.error({code:"predicate",predicate:W,actual:`aborted due to error:
110
+ ${Y}
111
+ `})}}),this);return this.$.finalize($)}pipe=Object.assign(this._pipe.bind(this),{try:this.tryPipe.bind(this)});to(T){return this.$.finalize(this.toNode(this.$.parseDefinition(T)))}toNode(T){let $=Y8(this,T,this.$);if($ instanceof v)return $.throw();return $}rawPipeOnce(T){if(l(T,"root"))return this.toNode(T);return this.distribute(($)=>$.hasKind("morph")?this.$.node("morph",{in:$.inner.in,morphs:[...$.morphs,T]}):this.$.node("morph",{in:$,morphs:[T]}),this.$.parseSchema)}narrow(T){return this.constrainOut("predicate",T)}constrain(T,$){return this._constrain("root",T,$)}constrainIn(T,$){return this._constrain("in",T,$)}constrainOut(T,$){return this._constrain("out",T,$)}_constrain(T,$,J){let W=this.$.node($,J);if(W.isRoot())return W.isUnknown()?this:fT(`Unexpected constraint node ${W}`);let X=T==="root"?this:this[T];if(X.hasKind("morph")||W.impliedBasis&&!X.extends(W.impliedBasis))return Uw($,W.impliedBasis,this);let F=this.$.node("intersection",{[W.kind]:W}),Y=T==="out"?Y8(this,F,this.$):WJ(this,F,this.$);if(Y instanceof v)Y.throw();return this.$.finalize(Y)}onUndeclaredKey(T){let $=typeof T==="string"?T:T.rule,J=typeof T==="string"?!1:T.deep;return this.$.finalize(this.transform((W,X)=>W==="structure"?$==="ignore"?PM(X,{undeclared:1}):{...X,undeclared:$}:X,J?void 0:{shouldTransform:(W)=>!R1(lW,W.kind)}))}hasEqualMorphs(T){if(!this.includesTransform&&!T.includesTransform)return!0;if(!B1(this.shallowMorphs,T.shallowMorphs))return!1;if(!B1(this.flatMorphs,T.flatMorphs,{isEqual:($,J)=>$.propString===J.propString&&($.node.hasKind("morph")&&J.node.hasKind("morph")?$.node.hasEqualMorphs(J.node):$.node.hasKind("intersection")&&J.node.hasKind("intersection")?$.node.structure?.structuralMorphRef===J.node.structure?.structuralMorphRef:!1)}))return!1;return!0}onDeepUndeclaredKey(T){return this.onUndeclaredKey({rule:T,deep:!0})}filter(T){return this.constrainIn("predicate",T)}divisibleBy(T){return this.constrain("divisor",T)}matching(T){return this.constrain("pattern",T)}atLeast(T){return this.constrain("min",T)}atMost(T){return this.constrain("max",T)}moreThan(T){return this.constrain("min",$X(T))}lessThan(T){return this.constrain("max",$X(T))}atLeastLength(T){return this.constrain("minLength",T)}atMostLength(T){return this.constrain("maxLength",T)}moreThanLength(T){return this.constrain("minLength",$X(T))}lessThanLength(T){return this.constrain("maxLength",$X(T))}exactlyLength(T){return this.constrain("exactLength",T)}atOrAfter(T){return this.constrain("after",T)}atOrBefore(T){return this.constrain("before",T)}laterThan(T){return this.constrain("after",$X(T))}earlierThan(T){return this.constrain("before",$X(T))}}var fV="Expected a non-empty brand name after #",$X=(T)=>typeof T==="object"&&!(T instanceof Date)?{...T,exclusive:!0}:{rule:T,exclusive:!0},w8=(T,$)=>l($,"root")?l(T,"root")?T.extends($):$.allows(T):l(T,"root")?T.hasUnit($):$===T,hw=(T)=>{if(T.hasKind("morph"))return null;if(T.hasKind("intersection"))return T.inner.structure??(T.basis?.domain==="object"?T.$.bindReference(y.intrinsic.emptyStructure):null);if(T.isBasis()&&T.domain==="object")return T.$.bindReference(y.intrinsic.emptyStructure);return null},NV=(T)=>`Props cannot be extracted from a union. Use .distribute to extract props from each branch instead. Received:
112
+ ${T}`,mw=(T,$)=>`${T} operand must be an object (was ${$})`;var $1=(T,$)=>AT(B4(T),(J,W)=>[W,$]);var CV=(T)=>typeof T==="string"?{reference:T}:T,gw=(T)=>T instanceof v?y.intrinsic.never.internal:T,ZV=GT({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(T)=>T.startsWith("$")?T:`$ark.${T}`},resolve:{}},normalize:CV,defaults:{description:(T)=>T.reference},intersections:{alias:(T,$,J)=>J.$.lazilyResolve(()=>gw(oT(T.resolution,$.resolution,J)),`${T.reference}${J.pipe?"=>":"&"}${$.reference}`),...$1("alias",(T,$,J)=>{if($.isUnknown())return T;if($.isNever())return $;if($.isBasis()&&!$.overlaps(y.intrinsic.object))return v.init("assignability",y.intrinsic.object,$);return J.$.lazilyResolve(()=>gw(oT(T.resolution,$,J)),`${T.reference}${J.pipe?"=>":"&"}${$.id}`)})}});class pw extends fJ{expression=this.reference;structure=void 0;get resolution(){let T=this._resolve();return d$[this.id]=T}_resolve(){if(this.resolve)return this.resolve();if(this.reference[0]==="$")return this.$.resolveRoot(this.reference.slice(1));let T=this.reference,$=d$[T],J=[];while(l($,"context")){if(J.includes($.id))return R(kV($.id,J));J.push($.id),$=d$[$.id]}if(!l($,"root"))return fT(`Unexpected resolution for reference ${this.reference}
113
+ Seen: [${J.join("->")}]
114
+ Resolution: ${YT($)}`);return $}get resolutionId(){if(this.reference.includes("&")||this.reference.includes("=>"))return this.resolution.id;if(this.reference[0]!=="$")return this.reference;let T=this.reference.slice(1),$=this.$.resolutions[T];if(typeof $==="string")return $;if(l($,"root"))return $.id;return fT(`Unexpected resolution for reference ${this.reference}: ${YT($)}`)}get defaultShortDescription(){return TJ.object}innerToJsonSchema(T){return NT.throwUnjsonifiableError(this.expression,"cyclic")}traverseAllows=(T,$)=>{let J=$.seen[this.reference];if(J?.includes(T))return!0;return $.seen[this.reference]=KT(J,T),this.resolution.traverseAllows(T,$)};traverseApply=(T,$)=>{let J=$.seen[this.reference];if(J?.includes(T))return;$.seen[this.reference]=KT(J,T),this.resolution.traverseApply(T,$)};compile(T){let $=this.resolutionId;T.if(`ctx.seen.${$} && ctx.seen.${$}.includes(data)`,()=>T.return(!0)),T.if(`!ctx.seen.${$}`,()=>T.line(`ctx.seen.${$} = []`)),T.line(`ctx.seen.${$}.push(data)`),T.return(T.invoke($))}}var kV=(T,$)=>`Alias '${T}' has a shallow resolution cycle: ${[...$,T].join("->")}`,Q8={implementation:ZV,Node:pw};class n0 extends fJ{traverseApply=(T,$)=>{if(!this.traverseAllows(T,$))$.errorFromNodeContext(this.errorContext)};get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return W0(this.errorContext)}compile(T){if(T.traversalKind==="Allows")T.return(this.compiledCondition);else T.if(this.compiledNegation,()=>T.line(`${T.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}}var yV=GT({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(T)=>typeof T==="string"?{domain:T}:oW(T,"numberAllowsNaN")&&T.domain!=="number"?R(q4.writeBadAllowNanMessage(T.domain)):T,applyConfig:(T,$)=>T.numberAllowsNaN===void 0&&T.domain==="number"&&$.numberAllowsNaN?{...T,numberAllowsNaN:!0}:T,defaults:{description:(T)=>TJ[T.domain],actual:(T)=>Number.isNaN(T)?"NaN":TJ[V$(T)]},intersections:{domain:(T,$)=>T.domain==="number"&&$.domain==="number"?T.numberAllowsNaN?$:T:v.init("domain",T,$)}});class uw extends n0{requiresNaNCheck=this.domain==="number"&&!this.numberAllowsNaN;traverseAllows=this.requiresNaNCheck?(T)=>typeof T==="number"&&!Number.isNaN(T):(T)=>V$(T)===this.domain;compiledCondition=this.domain==="object"?'((typeof data === "object" && data !== null) || typeof data === "function")':`typeof data === "${this.domain}"${this.requiresNaNCheck?" && !Number.isNaN(data)":""}`;compiledNegation=this.domain==="object"?'((typeof data !== "object" || data === null) && typeof data !== "function")':`typeof data !== "${this.domain}"${this.requiresNaNCheck?" || Number.isNaN(data)":""}`;expression=this.numberAllowsNaN?"number | NaN":this.domain;get nestableExpression(){return this.numberAllowsNaN?`(${this.expression})`:this.expression}get defaultShortDescription(){return TJ[this.domain]}innerToJsonSchema(T){if(this.domain==="bigint"||this.domain==="symbol")return NT.throwUnjsonifiableError(this.domain);return{type:this.domain}}}var q4={implementation:yV,Node:uw,writeBadAllowNanMessage:(T)=>`numberAllowsNaN may only be specified with domain "number" (was ${T})`};var qV=GT({kind:"intersection",hasAssociatedError:!0,normalize:(T)=>{if(cT(T))return T;let{structure:$,...J}=T,W=!!$,X=$??{},F=AT(J,(Y,G)=>{if(X$(Y,Aw)){if(W)R(`Flattened structure key ${Y} cannot be specified alongside a root 'structure' key.`);return X[Y]=G,[]}return[Y,G]});if(l(X,"constraint")||!T1(X))F.structure=X;return F},finalizeInnerJson:({structure:T,...$})=>e$(T,"object")?{...T,...$}:$,keys:{domain:{child:!0,parse:(T,$)=>$.$.node("domain",T)},proto:{child:!0,parse:(T,$)=>$.$.node("proto",T)},structure:{child:!0,parse:(T,$)=>$.$.node("structure",T),serialize:(T)=>{if(!T.sequence?.minLength)return T.collapsibleJson;let{sequence:$,...J}=T.collapsibleJson,{minVariadicLength:W,...X}=$,F=X.variadic&&Object.keys(X).length===1?X.variadic:X;return{...J,sequence:F}}},divisor:{child:!0,parse:h$("divisor")},max:{child:!0,parse:h$("max")},min:{child:!0,parse:h$("min")},maxLength:{child:!0,parse:h$("maxLength")},minLength:{child:!0,parse:h$("minLength")},exactLength:{child:!0,parse:h$("exactLength")},before:{child:!0,parse:h$("before")},after:{child:!0,parse:h$("after")},pattern:{child:!0,parse:h$("pattern")},predicate:{child:!0,parse:h$("predicate")}},reduce:(T,$)=>cw({},T,{$,invert:!1,pipe:!1}),defaults:{description:(T)=>{if(T.children.length===0)return"unknown";if(T.structure)return T.structure.description;let $=[];if(T.basis&&!T.refinements.some((J)=>J.impl.obviatesBasisDescription))$.push(T.basis.description);if(T.refinements.length){let J=T.refinements.toSorted((W,X)=>W.kind==="min"&&X.kind==="max"?-1:0).map((W)=>W.description);$.push(...J)}if(T.inner.predicate)$.push(...T.inner.predicate.map((J)=>J.description));return $.join(" and ")},expected:(T)=>` \u25E6 ${T.errors.map(($)=>$.expected).join(`
115
+ \u25E6 `)}`,problem:(T)=>`(${T.actual}) must be...
116
+ ${T.expected}`},intersections:{intersection:(T,$,J)=>cw(T.inner,$.inner,J),...$1("intersection",(T,$,J)=>{if(T.children.length===0)return $;let{domain:W,proto:X,...F}=T.inner,Y=X??W,G=Y?oT(Y,$,J):$;return G instanceof v?G:T?.basis?.equals(G)?T:T.$.node("intersection",{...F,[G.kind]:G},{prereduced:!0})})}});class ow extends fJ{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((T)=>T.isRefinement());structure=this.inner.structure;expression=IV(this);get shallowMorphs(){return this.inner.structure?.structuralMorph?[this.inner.structure.structuralMorph]:[]}get defaultShortDescription(){return this.basis?.defaultShortDescription??"present"}innerToJsonSchema(T){return this.children.reduce(($,J)=>J.isBasis()?J.toJsonSchemaRecurse(T):J.reduceJsonSchema($,T),{})}traverseAllows=(T,$)=>this.children.every((J)=>J.traverseAllows(T,$));traverseApply=(T,$)=>{let J=$.currentErrorCount;if(this.basis){if(this.basis.traverseApply(T,$),$.currentErrorCount>J)return}if(this.refinements.length){for(let W=0;W<this.refinements.length-1;W++)if(this.refinements[W].traverseApply(T,$),$.failFast&&$.currentErrorCount>J)return;if(this.refinements.at(-1).traverseApply(T,$),$.currentErrorCount>J)return}if(this.structure){if(this.structure.traverseApply(T,$),$.currentErrorCount>J)return}if(this.inner.predicate){for(let W=0;W<this.inner.predicate.length-1;W++)if(this.inner.predicate[W].traverseApply(T,$),$.failFast&&$.currentErrorCount>J)return;this.inner.predicate.at(-1).traverseApply(T,$)}};compile(T){if(T.traversalKind==="Allows"){this.children.forEach(($)=>T.check($)),T.return(!0);return}if(T.initializeErrorCount(),this.basis){if(T.check(this.basis),this.children.length>1)T.returnIfFail()}if(this.refinements.length){for(let $=0;$<this.refinements.length-1;$++)T.check(this.refinements[$]),T.returnIfFailFast();if(T.check(this.refinements.at(-1)),this.structure||this.inner.predicate)T.returnIfFail()}if(this.structure){if(T.check(this.structure),this.inner.predicate)T.returnIfFail()}if(this.inner.predicate){for(let $=0;$<this.inner.predicate.length-1;$++)T.check(this.inner.predicate[$]),T.returnIfFail();T.check(this.inner.predicate.at(-1))}}}var Y5={implementation:qV,Node:ow},IV=(T)=>{let $=T.structure?.expression||`${T.basis&&!T.refinements.some((J)=>J.impl.obviatesBasisExpression)?T.basis.nestableExpression+" ":""}${T.refinements.map((J)=>J.expression).join(" & ")}`||"unknown";if($==="Array == 0")$="[]";return $},cw=(T,$,J)=>{let W={},X=T.proto??T.domain,F=$.proto??$.domain,Y=X?F?oT(X,F,J):X:F;if(Y instanceof v)return Y;if(Y)W[Y.kind]=Y;return aW({kind:"intersection",baseInner:W,l:sW(T),r:sW($),roots:[],ctx:J})};var jV=GT({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(T,$)=>$.$.parseSchema(T)},morphs:{parse:T0,serialize:(T)=>T.map(($)=>l($,"root")?$.json:sT($))},declaredIn:{child:!1,serialize:(T)=>T.json},declaredOut:{child:!1,serialize:(T)=>T.json}},normalize:(T)=>T,defaults:{description:(T)=>`a morph from ${T.in.description} to ${T.out?.description??"unknown"}`},intersections:{morph:(T,$,J)=>{if(!T.hasEqualMorphs($))return R(xV(T.expression,$.expression));let W=oT(T.in,$.in,J);if(W instanceof v)return W;let X={morphs:T.morphs};if(T.declaredIn||$.declaredIn){let F=oT(T.in,$.in,J);if(F instanceof v)return F.throw();else X.declaredIn=F}if(T.declaredOut||$.declaredOut){let F=oT(T.out,$.out,J);if(F instanceof v)return F.throw();else X.declaredOut=F}return W.distribute((F)=>J.$.node("morph",{...X,in:F}),J.$.parseSchema)},...$1("morph",(T,$,J)=>{let W=T.inner.in?oT(T.inner.in,$,J):$;return W instanceof v?W:W.equals(T.inner.in)?T:J.$.node("morph",{...T.inner,in:W})})}});class dw extends fJ{serializedMorphs=this.morphs.map(sT);compiledMorphs=`[${this.serializedMorphs}]`;lastMorph=this.inner.morphs.at(-1);lastMorphIfNode=l(this.lastMorph,"root")?this.lastMorph:void 0;introspectableIn=this.inner.in;introspectableOut=this.lastMorphIfNode?Object.assign(this.referencesById,this.lastMorphIfNode.referencesById)&&this.lastMorphIfNode.out:void 0;get shallowMorphs(){return Array.isArray(this.inner.in?.shallowMorphs)?[...this.inner.in.shallowMorphs,...this.morphs]:this.morphs}get in(){return this.declaredIn??this.inner.in?.in??y.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??y.intrinsic.unknown.internal}declareIn(T){return this.$.node("morph",{...this.inner,declaredIn:T})}declareOut(T){return this.$.node("morph",{...this.inner,declaredOut:T})}expression=`(In: ${this.in.expression}) => ${this.lastMorphIfNode?"To":"Out"}<${this.out.expression}>`;get defaultShortDescription(){return this.in.meta.description??this.in.defaultShortDescription}innerToJsonSchema(T){return NT.throwUnjsonifiableError(this.expression,"morph")}compile(T){if(T.traversalKind==="Allows"){if(!this.introspectableIn)return;T.return(T.invoke(this.introspectableIn));return}if(this.introspectableIn)T.line(T.invoke(this.introspectableIn));T.line(`ctx.queueMorphs(${this.compiledMorphs})`)}traverseAllows=(T,$)=>!this.introspectableIn||this.introspectableIn.traverseAllows(T,$);traverseApply=(T,$)=>{if(this.introspectableIn)this.introspectableIn.traverseApply(T,$);$.queueMorphs(this.morphs)};hasEqualMorphs(T){return B1(this.morphs,T.morphs,{isEqual:($,J)=>$===J||l($,"root")&&l(J,"root")&&$.equals(J)})}}var G5={implementation:jV,Node:dw},xV=(T,$)=>`The intersection of distinct morphs at a single path is indeterminate:
117
+ Left: ${T}
118
+ Right: ${$}`;var bV=GT({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(T)=>r2(T)??LJ(T)},dateAllowsInvalid:{}},normalize:(T)=>{let $=typeof T==="string"?{proto:o0[T]}:typeof T==="function"?cT(T)?T:{proto:T}:typeof T.proto==="string"?{...T,proto:o0[T.proto]}:T;if(typeof $.proto!=="function")R(O8.writeInvalidSchemaMessage($.proto));if(oW($,"dateAllowsInvalid")&&$.proto!==Date)R(O8.writeBadInvalidDateMessage($.proto));return $},applyConfig:(T,$)=>{if(T.dateAllowsInvalid===void 0&&T.proto===Date&&$.dateAllowsInvalid)return{...T,dateAllowsInvalid:!0};return T},defaults:{description:(T)=>T.builtinName?gM[T.builtinName]:`an instance of ${T.proto.name}`,actual:(T)=>T instanceof Date&&T.toString()==="Invalid Date"?"an invalid Date":t2(T)},intersections:{proto:(T,$)=>T.proto===Date&&$.proto===Date?T.dateAllowsInvalid?$:T:q9(T.proto,$.proto)?T:q9($.proto,T.proto)?$:v.init("proto",T,$),domain:(T,$)=>$.domain==="object"?T:v.init("domain",y.intrinsic.object.internal,$)}});class lw extends n0{builtinName=r2(this.proto);serializedConstructor=this.json.proto;requiresInvalidDateCheck=this.proto===Date&&!this.dateAllowsInvalid;traverseAllows=this.requiresInvalidDateCheck?(T)=>T instanceof Date&&T.toString()!=="Invalid Date":(T)=>T instanceof this.proto;compiledCondition=`data instanceof ${this.serializedConstructor}${this.requiresInvalidDateCheck?' && data.toString() !== "Invalid Date"':""}`;compiledNegation=`!(${this.compiledCondition})`;innerToJsonSchema(T){switch(this.builtinName){case"Array":return{type:"array"};default:return NT.throwUnjsonifiableError(this.description)}}expression=this.dateAllowsInvalid?"Date | InvalidDate":this.proto.name;get nestableExpression(){return this.dateAllowsInvalid?`(${this.expression})`:this.expression}domain="object";get defaultShortDescription(){return this.description}}var O8={implementation:bV,Node:lw,writeBadInvalidDateMessage:(T)=>`dateAllowsInvalid may only be specified with constructor Date (was ${T.name})`,writeInvalidSchemaMessage:(T)=>`instanceOf operand must be a function (was ${V$(T)})`};var PV=GT({kind:"union",hasAssociatedError:!0,collapsibleKey:"branches",keys:{ordered:{},branches:{child:!0,parse:(T,$)=>{let J=[];if(T.forEach((W)=>{(l(W,"root")?W.branches:$.$.parseSchema(W).branches).forEach((F)=>{if(F.hasKind("morph")){let Y=J.findIndex((G)=>G.hasKind("morph")&&G.hasEqualMorphs(F));if(Y===-1)J.push(F);else{let G=J[Y];J[Y]=$.$.node("morph",{...G.inner,in:G.in.rawOr(F.in)})}}else J.push(F)})}),!$.def.ordered)J.sort((W,X)=>W.hash<X.hash?-1:1);return J}}},normalize:(T)=>mT(T)?{branches:T}:T,reduce:(T,$)=>{let J=lV(T);if(J.length===1)return J[0];if(J.length===T.branches.length)return;return $.node("union",{...T,branches:J},{prereduced:!0})},defaults:{description:(T)=>T.distribute(($)=>$.description,JX),expected:(T)=>{let $=IM(T.errors,"propString"),J=Object.entries($).map(([W,X])=>{let F=[];X.forEach((H)=>eJ(F,H.expected));let Y=JX(F),G=X.every((H)=>H.actual===X[0].actual)?X[0].actual:YT(X[0].data);return`${W&&`${W} `}must be ${Y}${G&&` (was ${G})`}`});return JX(J)},problem:(T)=>T.expected,message:(T)=>T.problem},intersections:{union:(T,$,J)=>{if(T.isNever!==$.isNever)return v.init("presence",T,$);let W;if(T.ordered){if($.ordered)R(iV(T.expression,$.expression));if(W=H5($.branches,T.branches,J),W instanceof v)W.invert()}else W=H5(T.branches,$.branches,J);if(W instanceof v)return W;return J.$.parseSchema(T.ordered||$.ordered?{branches:W,ordered:!0}:{branches:W})},...$1("union",(T,$,J)=>{let W=H5(T.branches,[$],J);if(W instanceof v)return W;if(W.length===1)return W[0];return J.$.parseSchema(T.ordered?{branches:W,ordered:!0}:{branches:W})})}});class tw extends fJ{isBoolean=this.branches.length===2&&this.branches[0].hasUnit(!1)&&this.branches[1].hasUnit(!0);get branchGroups(){let T=[],$=-1;return this.branches.forEach((J)=>{if(J.hasKind("unit")&&J.domain==="boolean"){if($===-1)$=T.length,T.push(J);else T[$]=y.intrinsic.boolean;return}T.push(J)}),T}unitBranches=this.branches.filter((T)=>T.in.hasKind("unit"));discriminant=this.discriminate();discriminantJson=this.discriminant?cV(this.discriminant):null;expression=this.distribute((T)=>T.nestableExpression,dV);createBranchedOptimisticRootApply(){return(T,$)=>{let J=this.traverseOptimistic(T);if(J!==QJ)return J;let W=new mJ(T,this.$.resolvedConfig);return this.traverseApply(T,W),W.finalize($)}}get shallowMorphs(){return this.branches.reduce((T,$)=>eJ(T,$.shallowMorphs),[])}get defaultShortDescription(){return this.distribute((T)=>T.defaultShortDescription,JX)}innerToJsonSchema(T){if(this.branchGroups.length===1&&this.branchGroups[0].equals(y.intrinsic.boolean))return{type:"boolean"};let $=this.branchGroups.map((J)=>J.toJsonSchemaRecurse(T));if($.every((J)=>Object.keys(J).length===1&&oW(J,"const")))return{enum:$.map((J)=>J.const)};return{anyOf:$}}traverseAllows=(T,$)=>this.branches.some((J)=>J.traverseAllows(T,$));traverseApply=(T,$)=>{let J=[];for(let W=0;W<this.branches.length;W++){if($.pushBranch(),this.branches[W].traverseApply(T,$),!$.hasError()){if(this.branches[W].includesTransform)return $.queuedMorphs.push(...$.popBranch().queuedMorphs);return $.popBranch()}J.push($.popBranch().error)}$.errorFromNodeContext({code:"union",errors:J,meta:this.meta})};traverseOptimistic=(T)=>{for(let $=0;$<this.branches.length;$++){let J=this.branches[$];if(J.traverseAllows(T)){if(J.contextFreeMorph)return J.contextFreeMorph(T);return T}}return QJ};compile(T){if(!this.discriminant||this.unitBranches.length===this.branches.length&&this.branches.length===2)return this.compileIndiscriminable(T);let $=this.discriminant.optionallyChainedPropString;if(this.discriminant.kind==="domain")$=`typeof ${$} === "object" ? ${$} === null ? "null" : "object" : typeof ${$} === "function" ? "object" : typeof ${$}`;let J=this.discriminant.cases,W=Object.keys(J),{optimistic:X}=T;if(T.optimistic=!1,T.block(`switch(${$})`,()=>{for(let A in J){let z=J[A],M=A==="default"?A:`case ${A}`;T.line(`${M}: return ${z===!0?X?T.data:z:X?`${T.invoke(z)} ? ${z.contextFreeMorph?`${sT(z.contextFreeMorph)}(${T.data})`:T.data} : "${QJ}"`:T.invoke(z)}`)}return T}),T.traversalKind==="Allows"){T.return(X?`"${QJ}"`:!1);return}let F=JX(this.discriminant.kind==="domain"?W.map((A)=>{let z=A.slice(1,-1);return z==="function"?TJ.object:TJ[z]}):W),Y=this.discriminant.path.map((A)=>typeof A==="symbol"?sT(A):JSON.stringify(A)),G=JSON.stringify(F),H=this.discriminant.kind==="domain"?`${pV}[${$}]`:`${uV}(${$})`;T.line(`ctx.errorFromNodeContext({
119
+ code: "predicate",
120
+ expected: ${G},
121
+ actual: ${H},
122
+ relativePath: [${Y}],
123
+ meta: ${this.compiledMeta}
124
+ })`)}compileIndiscriminable(T){if(T.traversalKind==="Apply")T.const("errors","[]"),this.branches.forEach(($)=>T.line("ctx.pushBranch()").line(T.invoke($)).if("!ctx.hasError()",()=>T.return($.includesTransform?"ctx.queuedMorphs.push(...ctx.popBranch().queuedMorphs)":"ctx.popBranch()")).line("errors.push(ctx.popBranch().error)")),T.line(`ctx.errorFromNodeContext({ code: "union", errors, meta: ${this.compiledMeta} })`);else{let{optimistic:$}=T;T.optimistic=!1,this.branches.forEach((J)=>T.if(`${T.invoke(J)}`,()=>T.return($?J.contextFreeMorph?`${sT(J.contextFreeMorph)}(${T.data})`:T.data:!0))),T.return($?`"${QJ}"`:!1)}}get nestableExpression(){return this.isBoolean?"boolean":`(${this.expression})`}discriminate(){if(this.branches.length<2)return null;if(this.unitBranches.length===this.branches.length){let X=AT(this.unitBranches,(F,Y)=>[`${Y.in.serializedValue}`,Y.hasKind("morph")?Y:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:X}}let T=[];for(let X=0;X<this.branches.length-1;X++){let F=this.branches[X];for(let Y=X+1;Y<this.branches.length;Y++){let G=this.branches[Y],H=WJ(F.in,G.in,F.$);if(!(H instanceof v))continue;for(let A of H){if(!A.kind||A.optional)continue;let z,M;if(A.kind==="domain"){let{l:S,r:_}=A;z=`"${typeof S==="string"?S:S.domain}"`,M=`"${typeof _==="string"?_:_.domain}"`}else if(A.kind==="unit")z=A.l.serializedValue,M=A.r.serializedValue;else continue;let w=T.find((S)=>B1(S.path,A.path)&&S.kind===A.kind);if(!w)T.push({kind:A.kind,cases:{[z]:{branchIndices:[X],condition:A.l},[M]:{branchIndices:[Y],condition:A.r}},path:A.path});else{if(w.cases[z])w.cases[z].branchIndices=eJ(w.cases[z].branchIndices,X);else w.cases[z]??={branchIndices:[X],condition:A.l};if(w.cases[M])w.cases[M].branchIndices=eJ(w.cases[M].branchIndices,Y);else w.cases[M]??={branchIndices:[Y],condition:A.r}}}}}let $=this.ordered?mV(T,this.branches):T;if(!$.length)return null;let J=vV($,this),W={};for(let X in J.best.cases){let F=hV(J,X);if(F===null){W[X]=!0;continue}if(F.length===this.branches.length)return null;if(this.ordered)F.sort((H,A)=>H.originalIndex-A.originalIndex);let Y=F.map((H)=>H.branch),G=Y.length===1?Y[0]:this.$.node("union",this.ordered?{branches:Y,ordered:!0}:Y);Object.assign(this.referencesById,G.referencesById),W[X]=G}if(J.defaultEntries.length){let X=J.defaultEntries.map((F)=>F.branch);W.default=this.$.node("union",this.ordered?{branches:X,ordered:!0}:X,{prereduced:!0}),Object.assign(this.referencesById,W.default.referencesById)}return Object.assign(J.location,{cases:W})}}var vV=(T,$)=>{let J=T.sort((F,Y)=>Object.keys(Y.cases).length-Object.keys(F.cases).length)[0],W={kind:J.kind,path:J.path,optionallyChainedPropString:rw(J.path)},X=$.branches.map((F,Y)=>({originalIndex:Y,branch:F}));return{best:J,location:W,defaultEntries:X,node:$}},hV=(T,$)=>{let J=T.best.cases[$],W=gV(J.condition,T.location.path,T.node.$),X=[],F=[];for(let Y=0;Y<T.defaultEntries.length;Y++){let G=T.defaultEntries[Y];if(J.branchIndices.includes(G.originalIndex)){let H=nw(T.node.branches[G.originalIndex],T.location);if(H===null)X=null;else X?.push({originalIndex:G.originalIndex,branch:H})}else if(G.branch.hasKind("alias")&&W.hasKind("domain")&&W.domain==="object")X?.push(G);else{if(G.branch.in.overlaps(W)){let H=nw(G.branch,T.location);X?.push({originalIndex:G.originalIndex,branch:H})}F.push(G)}}return T.defaultEntries=F,X},mV=(T,$)=>{return T.filter((W)=>{let X=Object.values(W.cases).map((F)=>F.branchIndices);for(let F=0;F<X.length-1;F++){let Y=X[F];for(let G=F+1;G<X.length;G++){let H=X[G];for(let A of Y)for(let z of H)if(A>z){if($[A].overlaps($[z]))return!1}}}return!0})},gV=(T,$,J)=>{let W=T==="undefined"?J.node("unit",{unit:void 0}):T==="null"?J.node("unit",{unit:null}):T==="boolean"?J.units([!0,!1]):T;for(let X=$.length-1;X>=0;X--){let F=$[X];W=J.node("intersection",typeof F==="number"?{proto:"Array",sequence:[...yM(F).map((Y)=>({})),W]}:{domain:"object",required:[{key:F,value:W}]})}return W},rw=(T)=>T.reduce(($,J)=>$+h9(J,!0),"data"),pV=sT(jM),uV=sT(YT),A5={implementation:PV,Node:tw},cV=(T)=>({kind:T.kind,path:T.path.map(($)=>typeof $==="string"?$:Z1($)),cases:AT(T.cases,($,J)=>[$,J===!0?J:J.hasKind("union")&&J.discriminantJson?J.discriminantJson:J.json])}),oV={delimiter:" | ",finalDelimiter:" | "},dV=(T)=>JX(T,oV),JX=(T,$)=>{let J=$?.delimiter??", ",W=$?.finalDelimiter??" or ";if(T.length===0)return"never";if(T.length===1)return T[0];if(T.length===2&&T[0]==="false"&&T[1]==="true"||T[0]==="true"&&T[1]==="false")return"boolean";let X={},F=T.filter((G)=>X[G]?!1:X[G]=!0),Y=F.pop();return`${F.join(J)}${F.length?W:""}${Y}`},H5=(T,$,J)=>{let W=$.map(()=>[]);for(let F=0;F<T.length;F++){let Y={};for(let G=0;G<$.length;G++){if(W[G]===null)continue;if(T[F].equals($[G])){W[G]=null,Y={};break}let H=oT(T[F],$[G],J);if(H instanceof v)continue;if(H.equals(T[F])){W[G].push(T[F]),Y={};break}if(H.equals($[G]))W[G]=null;else Y[G]=H}for(let G in Y)W[G][F]=Y[G]}let X=W.flatMap((F,Y)=>F?.flatMap((G)=>G.branches)??$[Y]);return X.length===0?v.init("union",T,$):X},lV=({branches:T,ordered:$})=>{if(T.length<2)return T;let J=T.map(()=>!0);for(let W=0;W<T.length;W++)for(let X=W+1;X<T.length&&J[W]&&J[X];X++){if(T[W].equals(T[X])){J[X]=!1;continue}let F=WJ(T[W].in,T[X].in,T[0].$);if(F instanceof v)continue;if(!$)nV(T[W],T[X]);if(F.equals(T[W].in))J[W]=!!$;else if(F.equals(T[X].in))J[X]=!1}return T.filter((W,X)=>J[X])},nV=(T,$)=>{if(!T.includesTransform&&!$.includesTransform)return;if(!B1(T.shallowMorphs,$.shallowMorphs))R(iw(T.expression,$.expression));if(!B1(T.flatMorphs,$.flatMorphs,{isEqual:(J,W)=>J.propString===W.propString&&(J.node.hasKind("morph")&&W.node.hasKind("morph")?J.node.hasEqualMorphs(W.node):J.node.hasKind("intersection")&&W.node.hasKind("intersection")?J.node.structure?.structuralMorphRef===W.node.structure?.structuralMorphRef:!1)}))R(iw(T.expression,$.expression))},nw=(T,$)=>T.transform((J,W)=>{if(J==="domain"||J==="unit")return null;return W},{shouldTransform:(J,W)=>{let X=rw(W.path);if(!$.optionallyChainedPropString.startsWith(X))return!1;if(J.hasKind("domain")&&J.domain==="object")return!0;if((J.hasKind("domain")||$.kind==="unit")&&X===$.optionallyChainedPropString)return!0;return J.children.length!==0&&J.kind!=="index"}}),iw=(T,$)=>`An unordered union of a type including a morph and a type with overlapping input is indeterminate:
125
+ Left: ${T}
126
+ Right: ${$}`,iV=(T,$)=>`The intersection of two ordered unions is indeterminate:
127
+ Left: ${T}
128
+ Right: ${$}`;var tV=GT({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(T)=>T instanceof Date?T.toISOString():LJ(T)}},normalize:(T)=>T,defaults:{description:(T)=>YT(T.unit),problem:({expected:T,actual:$})=>`${T===$?`must be reference equal to ${T} (serialized to the same value)`:`must be ${T} (was ${$})`}`},intersections:{unit:(T,$)=>v.init("unit",T,$),...$1("unit",(T,$)=>{if($.allows(T.unit))return T;let J=$.hasKind("intersection")?$.basis:$;if(J){let W=J.hasKind("domain")?J:y.intrinsic.object;if(T.domain!==W.domain){let X=T.domain==="undefined"||T.domain==="null"||T.domain==="boolean"?T.domain:y.intrinsic[T.domain];return v.init("domain",X,W)}}return v.init("assignability",T,$.hasKind("intersection")?$.children.find((W)=>!W.allows(T.unit)):$)})}});class sw extends n0{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=aw(this.unit,this.serializedValue);compiledNegation=aw(this.unit,this.serializedValue,"negated");expression=YT(this.unit);domain=V$(this.unit);get defaultShortDescription(){return this.domain==="object"?TJ.object:this.description}innerToJsonSchema(T){return this.unit===null?{type:"null"}:y.intrinsic.jsonPrimitive.allows(this.unit)?{const:this.unit}:NT.throwUnjsonifiableError(this.defaultShortDescription)}traverseAllows=this.unit instanceof Date?(T)=>T instanceof Date&&T.toISOString()===this.compiledValue:Number.isNaN(this.unit)?(T)=>Number.isNaN(T):(T)=>T===this.unit}var z5={implementation:tV,Node:sw},aw=(T,$,J)=>{if(T instanceof Date){let W=`data instanceof Date && data.toISOString() === ${$}`;return J?`!(${W})`:W}if(Number.isNaN(T))return`${J?"!":""}Number.isNaN(data)`;return`data ${J?"!":"="}== ${$}`};var rV=GT({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(T,$)=>{let J=$.$.parseSchema(T);if(!J.extends(y.intrinsic.key))return R(sV(J.expression));let W=J.branches.filter((X)=>X.hasKind("unit"));if(W.length)return R(aV(W.map((X)=>YT(X.unit))));return J}},value:{child:!0,parse:(T,$)=>$.$.parseSchema(T)}},normalize:(T)=>T,defaults:{description:(T)=>`[${T.signature.expression}]: ${T.value.description}`},intersections:{index:(T,$,J)=>{if(T.signature.equals($.signature)){let W=oT(T.value,$.value,J),X=W instanceof v?y.intrinsic.never.internal:W;return J.$.node("index",{signature:T.signature,value:X})}if(T.signature.extends($.signature)&&T.value.subsumes($.value))return $;if($.signature.extends(T.signature)&&$.value.subsumes(T.value))return T;return null}}});class ew extends BJ{impliedBasis=y.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=KT(this.value.flatRefs.map((T)=>gJ([this.signature,...T.path],T.node)),gJ([this.signature],this.value));traverseAllows=(T,$)=>n2(T).every((J)=>{if(this.signature.traverseAllows(J[0],$))return JJ(J[0],()=>this.value.traverseAllows(J[1],$),$);return!0});traverseApply=(T,$)=>n2(T).forEach((J)=>{if(this.signature.traverseAllows(J[0],$))JJ(J[0],()=>this.value.traverseApply(J[1],$),$)});_transform(T,$){$.path.push(this.signature);let J=super._transform(T,$);return $.path.pop(),J}compile(){}}var M5={implementation:rV,Node:ew},aV=(T)=>`Index keys ${T.join(", ")} should be specified as named props.`,sV=(T)=>`Indexed key definition '${T}' must be a string or symbol`;var eV=GT({kind:"required",hasAssociatedError:!0,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(T,$)=>$.$.parseSchema(T)}},normalize:(T)=>T,defaults:{description:(T)=>`${T.compiledKey}: ${T.value.description}`,expected:(T)=>T.missingValueDescription,actual:()=>"missing"},intersections:{required:H8,optional:H8}});class TQ extends A8{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:"required",missingValueDescription:this.value.defaultShortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=W0(this.errorContext)}var w5={implementation:eV,Node:TQ};var TE=GT({kind:"sequence",hasAssociatedError:!1,collapsibleKey:"variadic",keys:{prefix:{child:!0,parse:(T,$)=>{if(T.length===0)return;return T.map((J)=>$.$.parseSchema(J))}},optionals:{child:!0,parse:(T,$)=>{if(T.length===0)return;return T.map((J)=>$.$.parseSchema(J))}},defaultables:{child:(T)=>T.map(($)=>$[0]),parse:(T,$)=>{if(T.length===0)return;return T.map((J)=>{let W=$.$.parseSchema(J[0]);return M8(W,J[1],null),[W,J[1]]})},serialize:(T)=>T.map(($)=>[$[0].collapsibleJson,LJ($[1])])},variadic:{child:!0,parse:(T,$)=>$.$.parseSchema(T,$)},minVariadicLength:{parse:(T)=>T===0?void 0:T},postfix:{child:!0,parse:(T,$)=>{if(T.length===0)return;return T.map((J)=>$.$.parseSchema(J))}}},normalize:(T)=>{if(typeof T==="string")return{variadic:T};if("variadic"in T||"prefix"in T||"defaultables"in T||"optionals"in T||"postfix"in T||"minVariadicLength"in T){if(T.postfix?.length){if(!T.variadic)return R(XE);if(T.optionals?.length||T.defaultables?.length)return R(O5)}if(T.minVariadicLength&&!T.variadic)return R("minVariadicLength may not be specified without a variadic element");return T}return{variadic:T}},reduce:(T,$)=>{let J=T.minVariadicLength??0,W=T.prefix?.slice()??[],X=T.defaultables?.slice()??[],F=T.optionals?.slice()??[],Y=T.postfix?.slice()??[];if(T.variadic){while(F.at(-1)?.equals(T.variadic))F.pop();if(F.length===0&&X.length===0)while(W.at(-1)?.equals(T.variadic))W.pop(),J++;while(Y[0]?.equals(T.variadic))Y.shift(),J++}else if(F.length===0&&X.length===0)W.push(...Y.splice(0));if(J!==T.minVariadicLength||T.prefix&&T.prefix.length!==W.length)return $.node("sequence",{...T,prefix:W,defaultables:X,optionals:F,postfix:Y,minVariadicLength:J},{prereduced:!0})},defaults:{description:(T)=>{if(T.isVariadicOnly)return`${T.variadic.nestableExpression}[]`;return`[${T.tuple.map((J)=>J.kind==="defaultables"?`${J.node.nestableExpression} = ${YT(J.default)}`:J.kind==="optionals"?`${J.node.nestableExpression}?`:J.kind==="variadic"?`...${J.node.nestableExpression}[]`:J.node.expression).join(", ")}]`}},intersections:{sequence:(T,$,J)=>{let W=U8({l:T.tuple,r:$.tuple,disjoint:new v,result:[],fixedVariants:[],ctx:J}),X=W.disjoint.length===0?[W,...W.fixedVariants]:W.fixedVariants;return X.length===0?W.disjoint:X.length===1?J.$.node("sequence",$Q(X[0].result)):J.$.node("union",X.map((F)=>({proto:Array,sequence:$Q(F.result)})))}}});class JQ extends BJ{impliedBasis=y.intrinsic.Array.internal;tuple=WE(this.inner);prefixLength=this.prefix?.length??0;defaultablesLength=this.defaultables?.length??0;optionalsLength=this.optionals?.length??0;postfixLength=this.postfix?.length??0;defaultablesAndOptionals=[];prevariadic=this.tuple.filter((T)=>{if(T.kind==="defaultables"||T.kind==="optionals")return this.defaultablesAndOptionals.push(T.node),!0;return T.kind==="prefix"});variadicOrPostfix=L1(this.variadic&&[this.variadic],this.postfix);flatRefs=this.addFlatRefs();addFlatRefs(){return p9(this.flatRefs,this.prevariadic.flatMap((T,$)=>KT(T.node.flatRefs.map((J)=>gJ([`${$}`,...J.path],J.node)),gJ([`${$}`],T.node)))),p9(this.flatRefs,this.variadicOrPostfix.flatMap((T)=>KT(T.flatRefs.map(($)=>gJ([y.intrinsic.nonNegativeIntegerString.internal,...$.path],$.node)),gJ([y.intrinsic.nonNegativeIntegerString.internal],T)))),this.flatRefs}isVariadicOnly=this.prevariadic.length+this.postfixLength===0;minVariadicLength=this.inner.minVariadicLength??0;minLength=this.prefixLength+this.minVariadicLength+this.postfixLength;minLengthNode=this.minLength===0?null:this.$.node("minLength",this.minLength);maxLength=this.variadic?null:this.tuple.length;maxLengthNode=this.maxLength===null?null:this.$.node("maxLength",this.maxLength);impliedSiblings=this.minLengthNode?this.maxLengthNode?[this.minLengthNode,this.maxLengthNode]:[this.minLengthNode]:this.maxLengthNode?[this.maxLengthNode]:[];defaultValueMorphs=JE(this);defaultValueMorphsReference=this.defaultValueMorphs.length?sT(this.defaultValueMorphs):void 0;elementAtIndex(T,$){if($<this.prevariadic.length)return this.tuple[$];let J=T.length-this.postfixLength;if($>=J)return{kind:"postfix",node:this.postfix[$-J]};return{kind:"variadic",node:this.variadic??fT(`Unexpected attempt to access index ${$} on ${this}`)}}traverseAllows=(T,$)=>{for(let J=0;J<T.length;J++)if(!this.elementAtIndex(T,J).node.traverseAllows(T[J],$))return!1;return!0};traverseApply=(T,$)=>{let J=0;for(;J<T.length;J++)JJ(J,()=>this.elementAtIndex(T,J).node.traverseApply(T[J],$),$)};get element(){return this.cacheGetter("element",this.$.node("union",this.children))}compile(T){if(this.prefix?.forEach(($,J)=>T.traverseKey(`${J}`,`data[${J}]`,$)),this.defaultablesAndOptionals.forEach(($,J)=>{let W=`${J+this.prefixLength}`;T.if(`${W} >= ${T.data}.length`,()=>T.traversalKind==="Allows"?T.return(!0):T.return()),T.traverseKey(W,`data[${W}]`,$)}),this.variadic){if(this.postfix)T.const("firstPostfixIndex",`${T.data}.length${this.postfix?`- ${this.postfix.length}`:""}`);T.for(`i < ${this.postfix?"firstPostfixIndex":"data.length"}`,()=>T.traverseKey("i","data[i]",this.variadic),this.prevariadic.length),this.postfix?.forEach(($,J)=>{let W=`firstPostfixIndex + ${J}`;T.traverseKey(W,`data[${W}]`,$)})}if(T.traversalKind==="Allows")T.return(!0)}_transform(T,$){$.path.push(y.intrinsic.nonNegativeIntegerString.internal);let J=super._transform(T,$);return $.path.pop(),J}expression=this.description;reduceJsonSchema(T,$){if(this.prevariadic.length)T.prefixItems=this.prevariadic.map((J)=>{let W=J.node.toJsonSchemaRecurse($);if(J.kind==="defaultables"){let X=typeof J.default==="function"?J.default():J.default;W.default=X}return W});if(this.minLength)T.minItems=this.minLength;if(this.variadic){if(T.items=this.variadic?.toJsonSchemaRecurse($),this.maxLength)T.maxItems=this.maxLength}else T.items=!1,delete T.maxItems;if(this.postfix)return NT.throwUnjsonifiableError(`Postfix tuple element${this.postfixLength>1?"s":""} ${this.postfix.join(", ")}`);return T}}var $E={},JE=(T)=>{if(!T.defaultables)return[];let $=[],J="[",W=T.prefixLength+T.defaultablesLength-1;for(let X=T.prefixLength;X<=W;X++){let[F,Y]=T.defaultables[X-T.prefixLength];$.push(F5(X,F,Y)),J+=`${X}: ${F.id} = ${LJ(Y)}, `}return J+="]",$E[J]??=$},Q5={implementation:TE,Node:JQ},WE=(T)=>{let $=[];if(T.prefix?.forEach((J)=>$.push({kind:"prefix",node:J})),T.defaultables?.forEach(([J,W])=>$.push({kind:"defaultables",node:J,default:W})),T.optionals?.forEach((J)=>$.push({kind:"optionals",node:J})),T.variadic)$.push({kind:"variadic",node:T.variadic});return T.postfix?.forEach((J)=>$.push({kind:"postfix",node:J})),$},$Q=(T)=>T.reduce(($,J)=>{if(J.kind==="variadic")$.variadic=J.node;else if(J.kind==="defaultables")$.defaultables=KT($.defaultables,[[J.node,J.default]]);else $[J.kind]=KT($[J.kind],J.node);return $},{}),O5="A postfix required element cannot follow an optional or defaultable element",XE="A postfix element requires a variadic element",U8=(T)=>{let[$,...J]=T.l,[W,...X]=T.r;if(!$||!W)return T;let F=J.at(-1)?.kind==="postfix",Y=X.at(-1)?.kind==="postfix",G=$.kind==="prefix"||W.kind==="prefix"?"prefix":$.kind==="postfix"||W.kind==="postfix"?"postfix":$.kind==="variadic"&&W.kind==="variadic"?"variadic":F||Y?"prefix":$.kind==="defaultables"||W.kind==="defaultables"?"defaultables":"optionals";if($.kind==="prefix"&&W.kind==="variadic"&&Y){let M=U8({...T,fixedVariants:[],r:X.map((w)=>({...w,kind:"prefix"}))});if(M.disjoint.length===0)T.fixedVariants.push(M)}else if(W.kind==="prefix"&&$.kind==="variadic"&&F){let M=U8({...T,fixedVariants:[],l:J.map((w)=>({...w,kind:"prefix"}))});if(M.disjoint.length===0)T.fixedVariants.push(M)}let H=oT($.node,W.node,T.ctx);if(H instanceof v)if(G==="prefix"||G==="postfix")T.disjoint.push(...H.withPrefixKey(G==="prefix"?T.result.length:`-${J.length+1}`,"required")),T.result=[...T.result,{kind:G,node:y.intrinsic.never.internal}];else if(G==="optionals"||G==="defaultables")return T;else return U8({...T,fixedVariants:[],l:J.map((M)=>({...M,kind:"prefix"})),r:J.map((M)=>({...M,kind:"prefix"}))});else if(G==="defaultables"){if($.kind==="defaultables"&&W.kind==="defaultables"&&$.default!==W.default)R(X5($.default,W.default));T.result=[...T.result,{kind:G,node:H,default:$.kind==="defaultables"?$.default:W.kind==="defaultables"?W.default:fT(`Unexpected defaultable intersection from ${$.kind} and ${W.kind} elements.`)}]}else T.result=[...T.result,{kind:G,node:H}];let A=T.l.length,z=T.r.length;if($.kind!=="variadic"||A>=z&&(W.kind==="variadic"||z===1))T.l=J;if(W.kind!=="variadic"||z>=A&&($.kind==="variadic"||A===1))T.r=X;return U8(T)};var FQ=(T)=>($)=>{if($.props.length||$.index){let J=$.index?.map((X)=>X[T])??[];if($.props.forEach((X)=>J.push(X[T])),$.undeclared)J.push(`+ (undeclared): ${$.undeclared}`);let W=`{ ${J.join(", ")} }`;return $.sequence?`${W} & ${$.sequence.description}`:W}return $.sequence?.description??"{}"},FE=FQ("description"),YE=FQ("expression"),WQ=(T,$,J)=>{let W=T.required?"required":"optional";if(!$.signature.allows(T.key))return null;let X=WJ(T.value,$.value,J);if(X instanceof v)if(W==="optional")return J.node("optional",{key:T.key,value:y.intrinsic.never.internal});else return X.withPrefixKey(T.key,T.kind);return null},GE=GT({kind:"structure",hasAssociatedError:!1,normalize:(T)=>T,applyConfig:(T,$)=>{if(!T.undeclared&&$.onUndeclaredKey!=="ignore")return{...T,undeclared:$.onUndeclaredKey};return T},keys:{required:{child:!0,parse:h$("required"),reduceIo:(T,$,J)=>{$.required=KT($.required,J.map((W)=>W[T]));return}},optional:{child:!0,parse:h$("optional"),reduceIo:(T,$,J)=>{if(T==="in"){$.optional=J.map((W)=>W.in);return}J.forEach((W)=>$[W.outProp.kind]=KT($[W.outProp.kind],W.outProp.out))}},index:{child:!0,parse:h$("index")},sequence:{child:!0,parse:h$("sequence")},undeclared:{parse:(T)=>T==="ignore"?void 0:T,reduceIo:(T,$,J)=>{if(J!=="delete")return;if(T==="in")delete $.undeclared;else $.undeclared="reject"}}},defaults:{description:FE},intersections:{structure:(T,$,J)=>{let W={...T.inner},X={...$.inner},F=new v;if(T.undeclared){let H=T.keyof();if($.requiredKeys.forEach((A)=>{if(!H.allows(A))F.add("presence",y.intrinsic.never.internal,$.propsByKey[A].value,{path:[A]})}),X.optional)X.optional=X.optional.filter((A)=>H.allows(A.key));if(X.index)X.index=X.index.flatMap((A)=>{if(A.signature.extends(H))return A;let z=WJ(H,A.signature,J.$);if(z instanceof v)return[];let M=I4(z,A.value,J.$);if(M.required)X.required=L1(X.required,M.required);if(M.optional)X.optional=L1(X.optional,M.optional);return M.index??[]})}if($.undeclared){let H=$.keyof();if(T.requiredKeys.forEach((A)=>{if(!H.allows(A))F.add("presence",T.propsByKey[A].value,y.intrinsic.never.internal,{path:[A]})}),W.optional)W.optional=W.optional.filter((A)=>H.allows(A.key));if(W.index)W.index=W.index.flatMap((A)=>{if(A.signature.extends(H))return A;let z=WJ(H,A.signature,J.$);if(z instanceof v)return[];let M=I4(z,A.value,J.$);if(M.required)W.required=L1(W.required,M.required);if(M.optional)W.optional=L1(W.optional,M.optional);return M.index??[]})}let Y={};if(T.undeclared||$.undeclared)Y.undeclared=T.undeclared==="reject"||$.undeclared==="reject"?"reject":"delete";let G=aW({kind:"structure",baseInner:Y,l:sW(W),r:sW(X),roots:[],ctx:J});if(G instanceof v)F.push(...G);if(F.length)return F;return G}},reduce:(T,$)=>{if(T.index){if(!(T.required||T.optional))return;let J=!1,W=T.required??[],X=T.optional??[],F=[...X];for(let Y of T.index){for(let G of W){let H=WQ(G,Y,$);if(H instanceof v)return H}for(let[G,H]of X.entries()){let A=WQ(H,Y,$);if(A instanceof v)return A;if(A===null)continue;F[G]=A,J=!0}}if(J)return $.node("structure",{...T,optional:F},{prereduced:!0})}}});class YQ extends BJ{impliedBasis=y.intrinsic.object.internal;impliedSiblings=this.children.flatMap((T)=>T.impliedSiblings??[]);props=L1(this.required,this.optional);propsByKey=AT(this.props,(T,$)=>[$.key,$]);propsByKeyReference=sT(this.propsByKey);expression=YE(this);requiredKeys=this.required?.map((T)=>T.key)??[];optionalKeys=this.optional?.map((T)=>T.key)??[];literalKeys=[...this.requiredKeys,...this.optionalKeys];_keyof;keyof(){if(this._keyof)return this._keyof;let T=this.$.units(this.literalKeys).branches;return this.index?.forEach(({signature:$})=>{T=T.concat($.branches)}),this._keyof=this.$.node("union",T)}map(T){return this.$.node("structure",this.props.flatMap(T).reduce(($,J)=>{let W=this.propsByKey[J.key];if(cT(J)){if(J.kind!=="required"&&J.kind!=="optional")return R(`Map result must have kind "required" or "optional" (was ${J.kind})`);return $[J.kind]=KT($[J.kind],J),$}let X=J.kind??W?.kind??"required",F=AT(J,(Y,G)=>(Y in z8.implementation.keys)?[Y,G]:[]);return $[X]=KT($[X],this.$.node(X,F)),$},{}))}assertHasKeys(T){let $=T.filter((J)=>!w8(J,this.keyof()));if($.length)return R(XQ(this.expression,$))}get(T,...$){let J,W=!1,X=ME(T);if((typeof X==="string"||typeof X==="symbol")&&this.propsByKey[X])J=this.propsByKey[X].value,W=this.propsByKey[X].required;if(this.index?.forEach((Y)=>{if(w8(X,Y.signature))J=J?.and(Y.value)??Y.value}),this.sequence&&w8(X,y.intrinsic.nonNegativeIntegerString))if(l(X,"root")){if(this.sequence.variadic)J=J?.and(this.sequence.element)??this.sequence.element}else{let Y=Number.parseInt(X);if(Y<this.sequence.prevariadic.length){let G=this.sequence.prevariadic[Y].node;J=J?.and(G)??G,W||=Y<this.sequence.prefixLength}else if(this.sequence.variadic){let G=this.$.node("union",this.sequence.variadicOrPostfix);J=J?.and(G)??G}}if(!J){if(this.sequence?.variadic&&l(X,"root")&&X.extends(y.intrinsic.number))return R(wE(X.expression,this.sequence.expression));return R(XQ(this.expression,[X]))}let F=J.get(...$);return W?F:F.or(y.intrinsic.undefined)}pick(...T){return this.assertHasKeys(T),this.$.node("structure",this.filterKeys("pick",T))}omit(...T){return this.assertHasKeys(T),this.$.node("structure",this.filterKeys("omit",T))}optionalize(){let{required:T,...$}=this.inner;return this.$.node("structure",{...$,optional:this.props.map((J)=>J.hasKind("required")?this.$.node("optional",J.inner):J)})}require(){let{optional:T,...$}=this.inner;return this.$.node("structure",{...$,required:this.props.map((J)=>J.hasKind("optional")?{key:J.key,value:J.value}:J)})}merge(T){let $=this.filterKeys("omit",[T.keyof()]);if(T.required)$.required=KT($.required,T.required);if(T.optional)$.optional=KT($.optional,T.optional);if(T.index)$.index=KT($.index,T.index);if(T.sequence)$.sequence=T.sequence;if(T.undeclared)$.undeclared=T.undeclared;else delete $.undeclared;return this.$.node("structure",$)}filterKeys(T,$){let J=E4(this.inner),W=(X)=>{let F=$.some((Y)=>w8(X,Y));return T==="pick"?F:!F};if(J.required)J.required=J.required.filter((X)=>W(X.key));if(J.optional)J.optional=J.optional.filter((X)=>W(X.key));if(J.index)J.index=J.index.filter((X)=>W(X.signature));return J}traverseAllows=(T,$)=>this._traverse("Allows",T,$);traverseApply=(T,$)=>this._traverse("Apply",T,$);_traverse=(T,$,J)=>{let W=J?.currentErrorCount??0;for(let X=0;X<this.props.length;X++)if(T==="Allows"){if(!this.props[X].traverseAllows($,J))return!1}else if(this.props[X].traverseApply($,J),J.failFast&&J.currentErrorCount>W)return!1;if(this.sequence){if(T==="Allows"){if(!this.sequence.traverseAllows($,J))return!1}else if(this.sequence.traverseApply($,J),J.failFast&&J.currentErrorCount>W)return!1}if(this.index||this.undeclared==="reject"){let X=Object.keys($);X.push(...Object.getOwnPropertySymbols($));for(let F=0;F<X.length;F++){let Y=X[F];if(this.index){for(let G of this.index)if(G.signature.traverseAllows(Y,J)){if(T==="Allows"){if(!JJ(Y,()=>G.value.traverseAllows($[Y],J),J))return!1}else if(JJ(Y,()=>G.value.traverseApply($[Y],J),J),J.failFast&&J.currentErrorCount>W)return!1}}if(this.undeclared==="reject"&&!this.declaresKey(Y)){if(T==="Allows")return!1;if(J.errorFromNodeContext({code:"predicate",expected:"removed",actual:"",relativePath:[Y],meta:this.meta}),J.failFast)return!1}}}if(this.structuralMorph&&J&&!J.hasError())J.queueMorphs([this.structuralMorph]);return!0};get defaultable(){return this.cacheGetter("defaultable",this.optional?.filter((T)=>T.hasDefault())??[])}declaresKey=(T)=>(T in this.propsByKey)||this.index?.some(($)=>$.signature.allows(T))||this.sequence!==void 0&&y.intrinsic.nonNegativeIntegerString.allows(T);_compileDeclaresKey(T){let $=[];if(this.props.length)$.push(`k in ${this.propsByKeyReference}`);if(this.index?.forEach((J)=>$.push(T.invoke(J.signature,{kind:"Allows",arg:"k"}))),this.sequence)$.push("$ark.intrinsic.nonNegativeIntegerString.allows(k)");return $.join(" || ")||"false"}get structuralMorph(){return this.cacheGetter("structuralMorph",AE(this))}structuralMorphRef=this.structuralMorph&&sT(this.structuralMorph);compile(T){if(T.traversalKind==="Apply")T.initializeErrorCount();if(this.props.forEach(($)=>{if(T.check($),T.traversalKind==="Apply")T.returnIfFailFast()}),this.sequence){if(T.check(this.sequence),T.traversalKind==="Apply")T.returnIfFailFast()}if(this.index||this.undeclared==="reject")T.const("keys","Object.keys(data)"),T.line("keys.push(...Object.getOwnPropertySymbols(data))"),T.for("i < keys.length",()=>this.compileExhaustiveEntry(T));if(T.traversalKind==="Allows")return T.return(!0);if(this.structuralMorphRef)T.if("ctx && !ctx.hasError()",()=>{return T.line("ctx.queueMorphs(["),zE(T,this),T.line("])")})}compileExhaustiveEntry(T){if(T.const("k","keys[i]"),this.index?.forEach(($)=>{T.if(`${T.invoke($.signature,{arg:"k",kind:"Allows"})}`,()=>T.traverseKey("k","data[k]",$.value))}),this.undeclared==="reject")T.if(`!(${this._compileDeclaresKey(T)})`,()=>{if(T.traversalKind==="Allows")return T.return(!1);return T.line(`ctx.errorFromNodeContext({ code: "predicate", expected: "removed", actual: "", relativePath: [k], meta: ${this.compiledMeta} })`).if("ctx.failFast",()=>T.return())});return T}reduceJsonSchema(T,$){switch(T.type){case"object":return this.reduceObjectJsonSchema(T,$);case"array":if(this.props.length||this.index)return NT.throwUnjsonifiableError(`Additional properties on array ${this.expression}`);return this.sequence?.reduceJsonSchema(T,$)??T;default:return NT.throwInternalOperandError("structure",T)}}reduceObjectJsonSchema(T,$){if(this.props.length){if(T.properties={},this.props.forEach((J)=>{if(typeof J.key==="symbol")return NT.throwUnjsonifiableError(`Symbolic key ${J.serializedKey}`);let W=J.value.toJsonSchemaRecurse($);if(J.hasDefault()){let X=typeof J.default==="function"?J.default():J.default;W.default=X}T.properties[J.key]=W}),this.requiredKeys.length)T.required=this.requiredKeys}if(this.index?.forEach((J)=>{if(J.signature.equals(y.intrinsic.string))return T.additionalProperties=J.value.toJsonSchemaRecurse($);if(!J.signature.extends(y.intrinsic.string))return NT.throwUnjsonifiableError(`Symbolic index signature ${J.signature.exclude(y.intrinsic.string)}`);J.signature.branches.forEach((W)=>{if(!W.hasKind("intersection")||W.inner.pattern?.length!==1)return NT.throwUnjsonifiableError(`Index signature ${W}`);T.patternProperties??={},T.patternProperties[W.inner.pattern[0].rule]=J.value.toJsonSchemaRecurse($)})}),this.undeclared&&!T.additionalProperties)T.additionalProperties=!1;return T}}var U5={},HE=(T)=>{let $="";for(let J=0;J<T.defaultable.length;J++)$+=T.defaultable[J].defaultValueMorphRef;if(T.sequence?.defaultValueMorphsReference)$+=T.sequence?.defaultValueMorphsReference;if(T.undeclared==="delete"){if($+="delete !(",T.required?.forEach((J)=>$+=J.compiledKey+" | "),T.optional?.forEach((J)=>$+=J.compiledKey+" | "),T.index?.forEach((J)=>$+=J.signature.id+" | "),T.sequence)if(T.sequence.maxLength===null)$+=e.nonNegativeIntegerString.id;else $+=T.sequence.tuple.forEach((J,W)=>$+=W+" | ");$+=")"}return $},AE=(T)=>{let $=HE(T);if(!$)return;if(U5[$])return U5[$];let J=(W,X)=>{for(let F=0;F<T.defaultable.length;F++)if(!(T.defaultable[F].key in W))T.defaultable[F].defaultValueMorph(W,X);if(T.sequence?.defaultables)for(let F=W.length-T.sequence.prefixLength;F<T.sequence.defaultables.length;F++)T.sequence.defaultValueMorphs[F](W,X);if(T.undeclared==="delete"){for(let F in W)if(!T.declaresKey(F))delete W[F]}return W};return U5[$]=J},zE=(T,$)=>{let W=`(data${$.defaultable.some((X)=>X.defaultValueMorph.length===2)||$.sequence?.defaultValueMorphs.some((X)=>X.length===2)?", ctx":""})`;return T.block(`${W} => `,(X)=>{for(let F=0;F<$.defaultable.length;F++){let{serializedKey:Y,defaultValueMorphRef:G}=$.defaultable[F];X.if(`!(${Y} in data)`,(H)=>H.line(`${G}${W}`))}if($.sequence?.defaultables)X.for(`i < ${$.sequence.defaultables.length}`,(F)=>F.set("data[i]",5),`data.length - ${$.sequence.prefixLength}`);if($.undeclared==="delete")X.forIn("data",(F)=>F.if(`!(${$._compileDeclaresKey(F)})`,(Y)=>Y.line("delete data[k]")));return X.return("data")})},S5={implementation:GE,Node:YQ},ME=(T)=>{if(l(T,"root")&&T.hasKind("unit"))T=T.unit;if(typeof T==="number")T=`${T}`;return T},wE=(T,$)=>`${T} is not allowed as an array index on ${$}. Use the 'nonNegativeIntegerString' keyword instead.`,I4=(T,$,J)=>{let[W,X]=kM(T.branches,(Y)=>Y.hasKind("unit"));if(!W.length)return{index:J.node("index",{signature:T,value:$})};let F={};if(W.forEach((Y)=>{let G=J.node("required",{key:Y.unit,value:$});F[G.kind]=KT(F[G.kind],G)}),X.length)F.index=J.node("index",{signature:X,value:$});return F},QE=(T)=>l(T,"root")?T.expression:YT(T),XQ=(T,$)=>`Key${$.length===1?"":"s"} ${$.map(QE).join(", ")} ${$.length===1?"does":"do"} not exist on ${T}`;var TX={...yw,alias:Q8.implementation,domain:q4.implementation,unit:z5.implementation,proto:O8.implementation,union:A5.implementation,morph:G5.implementation,intersection:Y5.implementation,divisor:l9.implementation,pattern:T5.implementation,predicate:d9.implementation,required:w5.implementation,optional:z8.implementation,index:M5.implementation,sequence:Q5.implementation,structure:S5.implementation};y.defaultConfig=hM(Object.assign(AT(TX,(T,$)=>[T,$.defaults]),{jitless:oM(),clone:pM,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{}}));y.resolvedConfig=W8(y.defaultConfig,y.config);var Pw={...qw,alias:Q8.Node,domain:q4.Node,unit:z5.Node,proto:O8.Node,union:A5.Node,morph:G5.Node,intersection:Y5.Node,divisor:l9.Node,pattern:T5.Node,predicate:d9.Node,required:w5.Node,optional:z8.Node,index:M5.Node,sequence:Q5.Node,structure:S5.Node};class WX extends C9{get[o$](){return"module"}}var _5=(T,$)=>new WX(AT(T,(J,W)=>[J,l(W,"module")?_5(W,$):$.bindReference(W)]));var OE=(T)=>mT(T)?T:("branches"in T)&&mT(T.branches)?T.branches:void 0,UE=(T,$)=>R(`Node of kind ${$} is not valid as a ${T} definition`),GQ=(T)=>`#${T} duplicates public alias ${T}`,D5={};y.ambient??={};var HQ,zQ="function $",SE=(T)=>MQ(T,wQ(T)),MQ=(T,$)=>{let J=$.write(zQ,4),W=$.compile()();for(let X of T){if(X.precompilation)continue;if(X.traverseAllows=W[`${X.id}Allows`].bind(W),X.isRoot()&&!X.allowsRequiresContext)X.allows=X.traverseAllows;if(X.traverseApply=W[`${X.id}Apply`].bind(W),W[`${X.id}Optimistic`])X.traverseOptimistic=W[`${X.id}Optimistic`].bind(W);X.precompilation=J}},wQ=(T)=>new V4().return(T.reduce(($,J)=>{let W=new J8({kind:"Allows"}).indent();J.compile(W);let X=W.write(`${J.id}Allows`),F=new J8({kind:"Apply"}).indent();J.compile(F);let Y=F.write(`${J.id}Apply`),G=`${$}${X},
129
+ ${Y},
130
+ `;if(!J.hasKind("union"))return G;let H=new J8({kind:"Allows",optimistic:!0}).indent();J.compile(H);let A=H.write(`${J.id}Optimistic`);return`${G}${A},
131
+ `},`{
132
+ `)+"}");class j4{config;resolvedConfig;name;get[o$](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(T,$){if(this.config=W8(y.config,$),this.resolvedConfig=W8(y.resolvedConfig,$),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(D5).length}`,this.name in D5)R(`A Scope already named ${this.name} already exists`);D5[this.name]=this,Object.entries(T).map((W)=>this.preparseOwnAliasEntry(...W)).forEach(([W,X])=>{let F=W;if(W[0]==="#"){if(F=W.slice(1),F in this.aliases)R(GQ(F));this.aliases[F]=X}else{if(F in this.aliases)R(GQ(W));this.aliases[F]=X,this.exportedNames.push(F)}if(!l(X,"module")&&!l(X,"generic")&&!$0(X)){let Y=this.preparseOwnDefinitionFormat(X,{alias:F});if(l(Y,"root"))this.resolutions[F]=this.bindReference(Y);else this.resolutions[F]=this.createParseContext(Y).id}}),HQ??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[HQ.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=y.intrinsic?AT(y.intrinsic,(W,X)=>W.startsWith("json")?[]:[W,this.bindReference(X)]):{}}cacheGetter(T,$){return Object.defineProperty(this,T,{value:$}),$}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(T){return T}generic=(...T)=>{let $=this;return(J,W)=>new F0(T,W?new f4(J):J,$,$,W??null)};units=(T,$)=>{let J=[];for(let X of T)if(!J.includes(X))J.push(X);let W=J.map((X)=>this.node("unit",{unit:X},$));return this.node("union",W,{...$,prereduced:!0})};lazyResolutions=[];lazilyResolve(T,$){let J=this.node("alias",{reference:$??"synthetic",resolve:T},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(J);return J}schema=(T,$)=>this.finalize(this.parseSchema(T,$));parseSchema=(T,$)=>this.node(G8(T),T,$);preparseNode(T,$,J){let W=typeof T==="string"?T:G8($,T);if(cT($)&&$.kind===W)return $;if(W==="alias"&&!J?.prereduced){let{reference:Y}=Q8.implementation.normalize($,this);if(Y.startsWith("$")){let G=this.resolveRoot(Y.slice(1));$=G,W=G.kind}}else if(W==="union"&&e$($,"object")){let Y=OE($);if(Y?.length===1)$=Y[0],W=G8($)}if(cT($)&&$.kind===W)return $;let F=TX[W].normalize?.($,this)??$;if(cT(F))return F.kind===W?F:UE(W,F.kind);return{...J,$:this,kind:W,def:F,prefix:J.alias??W}}bindReference(T){let $;if(cT(T))$=T.$===this?T:new T.constructor(T.attachments,this);else $=T.$===this?T:new F0(T.params,T.bodyDef,T.$,this,T.hkt);if(!this.resolved)Object.assign(this.referencesById,$.referencesById);return $}resolveRoot(T){return this.maybeResolveRoot(T)??R(E5(T))}maybeResolveRoot(T){let $=this.maybeResolve(T);if(l($,"generic"))return;return $}maybeResolveSubalias(T){return K5(this.aliases,T)??K5(this.ambient,T)}get ambient(){return y.ambient}maybeResolve(T){let $=this.resolutions[T];if($){if(typeof $!=="string")return this.bindReference($);let W=d$[$];if(l(W,"root"))return this.resolutions[T]=W;if(l(W,"context")){if(W.phase==="resolving")return this.node("alias",{reference:`$${T}`},{prereduced:!0});if(W.phase==="resolved")return fT(`Unexpected resolved context for was uncached by its scope: ${YT(W)}`);W.phase="resolving";let X=this.bindReference(this.parseOwnDefinitionFormat(W.def,W));return W.phase="resolved",d$[X.id]=X,d$[W.id]=X,this.resolutions[T]=X}return fT(`Unexpected nodesById entry for ${$}: ${YT(W)}`)}let J=this.aliases[T]??this.ambient?.[T];if(!J)return this.maybeResolveSubalias(T);if(J=this.normalizeRootScopeValue(J),l(J,"generic"))return this.resolutions[T]=this.bindReference(J);if(l(J,"module"))if(J.root)return this.resolutions[T]=this.bindReference(J.root);else return R(UQ(T));return this.resolutions[T]=this.parse(J,{alias:T})}createParseContext(T){let $=T.id??$5(T.prefix);return d$[$]=Object.assign(T,{[o$]:"context",$:this,id:$,phase:"unresolved"})}traversal(T){return new mJ(T,this.resolvedConfig)}import(...T){return new WX(AT(this.export(...T),($,J)=>[`#${$}`,J]))}precompilation;_exportedResolutions;_exports;export(...T){if(!this._exports){this._exports={};for(let J of this.exportedNames){let W=this.aliases[J];this._exports[J]=l(W,"module")?_5(W,this):AQ(this.maybeResolve(J))}if(this.lazyResolutions.forEach((J)=>J.resolution),this._exportedResolutions=OQ(this,this._exports),this._json=QQ(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let J=wQ(this.references);this.precompilation=J.write(zQ,4),MQ(this.references,J)}this.resolved=!0}let $=T.length?T:this.exportedNames;return new WX(AT($,(J,W)=>[W,this._exports[W]]))}resolve(T){return this.export()[T]}node=(T,$,J={})=>{let W=this.preparseNode(T,$,J);if(cT(W))return this.bindReference(W);let X=this.createParseContext(W),F=J5(X),Y=this.bindReference(F);return d$[X.id]=Y};parse=(T,$={})=>this.finalize(this.parseDefinition(T,$));parseDefinition(T,$={}){if(l(T,"root"))return this.bindReference(T);let J=this.preparseOwnDefinitionFormat(T,$);if(l(J,"root"))return this.bindReference(J);let W=this.createParseContext(J);d$[W.id]=W;let X=this.bindReference(this.parseOwnDefinitionFormat(T,W));if(X.isCyclic)X=bw(X,W.id);return d$[W.id]=X,X}finalize(T){if(AQ(T),!T.precompilation&&!this.resolvedConfig.jitless)SE(T.references);return T}}class V5 extends j4{parseOwnDefinitionFormat(T,$){return J5($)}preparseOwnDefinitionFormat(T,$){return this.preparseNode(G8(T),T,$)}preparseOwnAliasEntry(T,$){return[T,$]}normalizeRootScopeValue(T){return T}}var AQ=(T)=>{return T.references.filter(($)=>$.hasKind("alias")).forEach(($)=>{Object.assign($.referencesById,$.resolution.referencesById),T.references.forEach((J)=>{if($.id in J.referencesById)Object.assign(J.referencesById,$.referencesById)})}),T},QQ=(T)=>AT(T,($,J)=>[$,l(J,"root")||l(J,"generic")?J.json:l(J,"module")?QQ(J):fT(`Unexpected resolution ${YT(J)}`)]),K5=(T,$)=>{let J=$.indexOf(".");if(J===-1)return;let W=$.slice(0,J),X=T[W];if(X===void 0)return;if(!l(X,"module"))return R(_E(W));let F=$.slice(J+1),Y=X[F];if(Y===void 0)return K5(X,F);if(l(Y,"root")||l(Y,"generic"))return Y;if(l(Y,"module"))return Y.root??R(UQ($));fT(`Unexpected resolution for alias '${$}': ${YT(Y)}`)},x4=(T,$)=>new V5(T,$),S8=new V5({});var OQ=(T,$)=>{let J={};for(let W in $){let X=$[W];if(l(X,"module")){let F=OQ(T,X),Y=AT(F,(G,H)=>[`${W}.${G}`,H]);Object.assign(J,Y)}else if(l(X,"root")||l(X,"generic"))J[W]=X;else fT(`Unexpected scope resolution ${YT(X)}`)}return J},E5=(T)=>`'${T}' is unresolvable`,_E=(T)=>`'${T}' must reference a module to be accessed using dot syntax`,UQ=(T)=>`Reference to submodule '${T}' must specify an alias`;S8.export();var{schema:IT,node:XX,defineSchema:iJT,generic:NJ}=S8;var R5="^(?:0|[1-9]\\d*)$",DE=new RegExp(R5),aJT=sT(DE);var SQ=x4({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();y.intrinsic={...SQ};var _Q=x4({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:R5}},{prereducedAliases:!0}).export();Object.assign(y.intrinsic,_Q);var KE=x4({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),e={...SQ,..._Q,...KE,emptyStructure:XX("structure",{},{prereduced:!0})};y.intrinsic={...e};var KQ=(T)=>typeof T==="string"&&T[0]==="d"&&(T[1]==="'"||T[1]==='"')&&T.at(-1)===T[1],DQ=(T)=>T.toString()!=="Invalid Date",VQ=(T)=>T.slice(2,-1),L5=(T)=>`'${T}' could not be parsed by the Date constructor`,EQ=(T,$)=>VE(T,$),VE=(T,$)=>{let J=new Date(T);if(DQ(J))return J;let W=eM(T);if(W!==void 0){let X=new Date(W);if(DQ(X))return X}return $?R($===!0?L5(T):$):void 0};var B5=(T,$)=>{let J=T.scanner.shiftUntil(EE[LQ[$]]);if(T.scanner.lookahead==="")return T.error(LE(J,$));if(T.scanner.shift(),$==="/"){try{new RegExp(J)}catch(W){R(String(W))}T.root=T.ctx.$.node("intersection",{domain:"string",pattern:J},{prereduced:!0})}else if(X$($,f5))T.root=T.ctx.$.node("unit",{unit:J});else{let W=EQ(J,L5(J));T.root=T.ctx.$.node("unit",{meta:J,unit:W})}},f5={"'":1,'"':1},RQ={"/":1,"'":1,'"':1},LQ={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},EE={"'":(T)=>T.lookahead==="'",'"':(T)=>T.lookahead==='"',"/":(T)=>T.lookahead==="/"},RE={'"':"double-quote","'":"single-quote","/":"forward slash"},LE=(T,$)=>`${$}${T} requires a closing ${RE[LQ[$]]}`;var BQ=(T)=>`Private type references should not include '#'. Use '${T}' instead.`,b4="Optional definitions like 'string?' are only valid as properties in an object or tuple",P4="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var fQ={">":!0,">=":!0},NQ={"<":!0,"<=":!0};var FX={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},CQ=(T)=>`Unmatched )${T===""?"":` before ${T}`}`,v4=(T)=>`Missing ${T}`,ZQ=(T,$)=>`Left bounds are only valid when paired with right bounds (try ...${$}${T})`,h4=(T)=>`Left-bounded expressions must specify their limits using < or <= (was ${T})`,kQ=(T,$,J,W)=>`An expression may have at most one left bound (parsed ${T}${FX[$]}, ${J}${FX[W]})`;var yQ=(T,$,J)=>qQ(T,$,J,[]),qQ=(T,$,J,W)=>{let X=J.parseUntilFinalizer();if(W.push(X.root),X.finalizer===">"){if(W.length!==$.params.length)return J.error(N5(T,$.names,W.map((F)=>F.expression)));return W}if(X.finalizer===",")return qQ(T,$,J,W);return X.error(v4(">"))},N5=(T,$,J)=>`${T}<${$.join(", ")}> requires exactly ${$.length} args (got ${J.length}${J.length===0?"":`: ${J.join(", ")}`})`;var C5=(T)=>{let $=T.scanner.shiftUntilNextTerminator();if($==="keyof")T.addPrefix("keyof");else T.root=fE(T,$)},BE=(T,$,J)=>{if(J.scanner.shiftUntilNonWhitespace(),J.scanner.shift()!=="<")return J.error(N5(T,$.names,[]));let X=yQ(T,$,J);return $(...X)},fE=(T,$)=>NE(T,$)??CE(T,$)??T.error($===""?T.scanner.lookahead==="#"?BQ(T.shiftedByOne().scanner.shiftUntilNextTerminator()):Z5(T):E5($)),NE=(T,$)=>{if(T.ctx.args?.[$]){let W=T.ctx.args[$];if(typeof W!=="string")return W;return T.ctx.$.node("alias",{reference:W},{prereduced:!0})}let J=T.ctx.$.maybeResolve($);if(l(J,"root"))return J;if(J===void 0)return;if(l(J,"generic"))return BE($,J,T);return R(`Unexpected resolution ${YT(J)}`)},CE=(T,$)=>{let J=Tw($);if(J!==void 0)return T.ctx.$.node("unit",{unit:J});let W=Jw($);if(W!==void 0)return T.ctx.$.node("unit",{unit:W})},Z5=(T)=>{let $=T.previousOperator();return $?k5($,T.scanner.unscanned):ZE(T.scanner.unscanned)},k5=(T,$="")=>`Token '${T}' requires a right operand${$?` before '${$}'`:""}`,ZE=(T)=>`Expected an expression${T?` before '${T}'`:""}`;var y5=(T)=>T.scanner.lookahead===""?T.error(Z5(T)):T.scanner.lookahead==="("?T.shiftedByOne().reduceGroupOpen():T.scanner.lookaheadIsIn(RQ)?B5(T,T.scanner.shift()):T.scanner.lookaheadIsIn(J0)?y5(T.shiftedByOne()):T.scanner.lookahead==="d"?T.scanner.nextLookahead in f5?B5(T,`${T.scanner.shift()}${T.scanner.shift()}`):C5(T):C5(T);class y1 extends P9{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in y1.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...J0};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(T,$)=>T===">"?$[0]==="="?$[1]==="=":$.trimStart()===""||X$($.trimStart()[0],y1.terminatingChars):T==="="?$[0]!=="=":T===","||T==="?"}var jQ=(T,$)=>{let J=kE(T,$);if(T.root.hasKind("unit")){if(typeof T.root.unit==="number"){T.reduceLeftBound(T.root.unit,J),T.unsetRoot();return}if(T.root.unit instanceof Date){let W=`d'${T.root.description??T.root.unit.toISOString()}'`;T.unsetRoot(),T.reduceLeftBound(W,J);return}}return qE(T,J)},xQ={"<":1,">":1,"=":1},kE=(T,$)=>T.scanner.lookaheadIs("=")?`${$}${T.scanner.shift()}`:$;var IQ=(T,$,J,W)=>{if(J.extends(y.intrinsic.number)){if(typeof $!=="number")return R(q5(T,$,W));return T==="=="?["min","max"]:T[0]===">"?["min"]:["max"]}if(J.extends(y.intrinsic.lengthBoundable)){if(typeof $!=="number")return R(q5(T,$,W));return T==="=="?["exactLength"]:T[0]===">"?["minLength"]:["maxLength"]}if(J.extends(y.intrinsic.Date))return T==="=="?["after","before"]:T[0]===">"?["after"]:["before"];return R(Rw(J.expression))},yE=(T)=>({rule:KQ(T.limit)?VQ(T.limit):T.limit,exclusive:T.comparator.length===1}),qE=(T,$)=>{let J=T.unsetRoot(),W=T.scanner.location;T.parseOperand();let X=T.unsetRoot(),F=T.scanner.sliceChars(W,T.scanner.location);if(T.root=J,!X.hasKind("unit")||typeof X.unit!=="number"&&!(X.unit instanceof Date))return T.error(q5($,F,"right"));let Y=X.unit,G=$.length===1,H=IQ($,typeof Y==="number"?Y:F,J,"right");for(let z of H)T.constrainRoot(z,$==="=="?{rule:Y}:{rule:Y,exclusive:G});if(!T.branches.leftBound)return;if(!X$($,NQ))return T.error(h4($));let A=IQ(T.branches.leftBound.comparator,T.branches.leftBound.limit,J,"left");T.constrainRoot(A[0],yE(T.branches.leftBound)),T.branches.leftBound=null},q5=(T,$,J)=>`Comparator ${J==="left"?FX[T]:T} must be ${J==="left"?"preceded":"followed"} by a corresponding literal (was ${$})`;var bQ=(T)=>{T.scanner.shiftUntilNonWhitespace();let $=T.scanner.shiftUntilNextTerminator();T.root=T.root.brand($)};var vQ=(T)=>{let $=T.scanner.shiftUntilNextTerminator(),J=$w($,{errorOnFail:PQ($)});if(J===0)T.error(PQ(0));T.root=T.root.constrain("divisor",J)},PQ=(T)=>`% operator must be followed by a non-zero integer literal (was ${T})`;var I5=(T)=>{let $=T.scanner.shift();return $===""?T.finalize(""):$==="["?T.scanner.shift()==="]"?T.setRoot(T.root.array()):T.error(IE):$==="|"?T.scanner.lookahead===">"?T.shiftedByOne().pushRootToBranch("|>"):T.pushRootToBranch($):$==="&"?T.pushRootToBranch($):$===")"?T.finalizeGroup():y1.lookaheadIsFinalizing($,T.scanner.unscanned)?T.finalize($):X$($,xQ)?jQ(T,$):$==="%"?vQ(T):$==="#"?bQ(T):($ in J0)?I5(T):T.error(m4($))},m4=(T,$="")=>`'${T}' is not allowed here${$&&` (should be ${$})`}`,IE="Missing expected ']'";var hQ=(T)=>{let $=T.unsetRoot();T.parseOperand();let J=T.unsetRoot();if(!J.hasKind("unit"))return T.error(jE(J.expression));let W=J.unit instanceof Date?()=>new Date(J.unit):J.unit;return[$,"=",W]},jE=(T)=>`Default value '${T}' must a literal value`;var j5=(T,$)=>{let J=$.$.maybeResolveRoot(T);if(J)return J;if(T.endsWith("[]")){let F=$.$.maybeResolveRoot(T.slice(0,-2));if(F)return F.array()}let W=new YX(new y1(T),$),X=xE(W);if(W.finalizer===">")R(m4(">"));return X},xE=(T)=>{T.parseOperand();let $=_8(T).root;if(!$)return fT(`Root was unexpectedly unset after parsing string '${T.scanner.scanned}'`);if(T.finalizer==="=")$=hQ(T);else if(T.finalizer==="?")$=[$,"?"];if(T.scanner.shiftUntilNonWhitespace(),T.scanner.lookahead)R(m4(T.scanner.lookahead));return $},_8=(T)=>{while(T.finalizer===void 0)bE(T);return T},bE=(T)=>T.hasRoot()?T.parseOperator():T.parseOperand();class YX{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(T,$){this.scanner=T,this.ctx=$}error(T){return R(T)}hasRoot(){return this.root!==void 0}setRoot(T){this.root=T}unsetRoot(){let T=this.root;return this.root=void 0,T}constrainRoot(...T){this.root=this.root.constrain(T[0],T[1])}finalize(T){if(this.groups.length)return this.error(v4(")"));this.finalizeBranches(),this.finalizer=T}reduceLeftBound(T,$){let J=FX[$];if(!X$(J,fQ))return this.error(h4($));if(this.branches.leftBound)return this.error(kQ(this.branches.leftBound.limit,this.branches.leftBound.comparator,T,J));this.branches.leftBound={comparator:J,limit:T}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch("|>"),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch("|"),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch("&"),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let T=this.groups.pop();if(!T)return this.error(CQ(this.scanner.unscanned));this.branches=T}addPrefix(T){this.branches.prefixes.push(T)}applyPrefixes(){while(this.branches.prefixes.length){let T=this.branches.prefixes.pop();this.root=T==="keyof"?this.root.keyof():fT(`Unexpected prefix '${T}'`)}}pushRootToBranch(T){this.assertRangeUnset(),this.applyPrefixes();let $=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd($)??$,T==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,T==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return _8(new YX(this.scanner,this.ctx))}parseOperator(){return I5(this)}parseOperand(){return y5(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(ZQ(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?"&":this.branches.union?"|":this.branches.pipe?"|>":void 0)}shiftedByOne(){return this.scanner.shift(),this}}var PE="An empty string is not a valid generic parameter name",g4=(T,$,J)=>{T.shiftUntilNonWhitespace();let W=T.shiftUntilNextTerminator();if(W===""){if(T.lookahead===""&&$.length)return $;return R(PE)}return T.shiftUntilNonWhitespace(),vE(T,W,$,J)},mQ="extends ",vE=(T,$,J,W)=>{if(T.shiftUntilNonWhitespace(),T.unscanned.startsWith(mQ))T.jumpForward(mQ.length);else{if(T.lookahead===",")T.shift();return J.push($),g4(T,J,W)}let X=_8(new YX(T,W));return J.push([$,X.root]),g4(T,J,W)};class x5 extends hJ{$;constructor(T){super((...$)=>new D8(T)(...$),{bind:T});this.$=T}in(T){return new D8(this.$,T===void 0?void 0:this.$.parse(T))}at(T,$){return new D8(this.$).at(T,$)}case(T,$){return new D8(this.$).case(T,$)}}class D8 extends hJ{$;in;key;branches=[];constructor(T,$){super((J)=>this.caseEntries(Object.entries(J).map(([W,X])=>W==="default"?[W,X]:[this.$.parse(W),X])));this.$=T,this.in=$}at(T,$){if(this.key)R(mE);if(this.branches.length)R(hE);return this.key=T,$?this.match($):this}case(T,$){return this.caseEntry(this.$.parse(T),$)}caseEntry(T,$){let W=(this.key?this.$.parse({[this.key]:T}):T).pipe($);return this.branches.push(W),this}match(T){return this(T)}strings(T){return this.caseEntries(Object.entries(T).map(([$,J])=>$==="default"?[$,J]:[this.$.node("unit",{unit:$}),J]))}caseEntries(T){for(let $=0;$<T.length;$++){let[J,W]=T[$];if(J==="default"){if($!==T.length-1)R("default may only be specified as the last key of a switch definition");return this.default(W)}if(typeof W!=="function")return R(`Value for case "${J}" must be a function (was ${V$(W)})`);this.caseEntry(J,W)}return this}default(T){if(typeof T==="function")this.case(e.unknown,T);let $={branches:this.branches,ordered:!0};if(T==="never"||T==="assert")$.meta={onFail:gQ};let J=this.$.node("union",$);if(!this.in)return this.$.finalize(J);let W=this.in.pipe(J);if(T==="never"||T==="assert")W=W.configureReferences({onFail:gQ},"self");return this.$.finalize(W)}}var gQ=(T)=>T.throw(),hE="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",mE="At most one key matcher may be specified per expression";var p4=(T,$)=>{if(mT(T)){if(T[1]==="=")return[$.$.parseOwnDefinitionFormat(T[0],$),"=",T[2]];if(T[1]==="?")return[$.$.parseOwnDefinitionFormat(T[0],$),"?"]}return u4(T,$)},pQ="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",uQ="Only required keys may specify default values, e.g. { value: 'number = 0' }";var cQ=(T,$)=>{let J,W={},X=n2(T);for(let[Y,G]of X){let H=uE(Y);if(H.kind==="spread"){if(!T1(W))return R(pE);let S=$.$.parseOwnDefinitionFormat(G,$);if(S.equals(e.object))continue;if(!S.hasKind("intersection")||!S.basis?.equals(e.object))return R(cE(S.expression));J=S.structure;continue}if(H.kind==="undeclared"){if(G!=="reject"&&G!=="delete"&&G!=="ignore")R(gE(G));W.undeclared=G;continue}let A=p4(G,$),z=H;if(H.kind==="required"){if(!mT(A))b5(W,"required",{key:H.normalized,value:A},$);else b5(W,"optional",A[1]==="="?{key:H.normalized,value:A[0],default:A[2]}:{key:H.normalized,value:A[0]},$);continue}if(mT(A)){if(A[1]==="?")R(pQ);if(A[1]==="=")R(uQ)}if(H.kind==="optional"){b5(W,"optional",{key:H.normalized,value:A},$);continue}let M=$.$.parseOwnDefinitionFormat(z.normalized,$),w=I4(M,A,$.$);if(w.index)W.index=KT(W.index,w.index);if(w.required)W.required=KT(W.required,w.required)}let F=$.$.node("structure",W);return $.$.parseSchema({domain:"object",structure:J?.merge(F)??F})},b5=(T,$,J,W)=>{T[$]=KT(T[$],W.$.node($,J))},gE=(T)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${YT(T)})`,pE="Spread operator may only be used as the first key in an object",uE=(T)=>typeof T==="symbol"?{kind:"required",normalized:T}:T.at(-1)==="?"?T.at(-2)===a2?{kind:"required",normalized:`${T.slice(0,-2)}?`}:{kind:"optional",normalized:T.slice(0,-1)}:T[0]==="["&&T.at(-1)==="]"?{kind:"index",normalized:T.slice(1,-1)}:T[0]===a2&&T[1]==="["&&T.at(-1)==="]"?{kind:"required",normalized:T.slice(1)}:T==="..."?{kind:"spread"}:T==="+"?{kind:"undeclared"}:{kind:"required",normalized:T==="\\..."?"...":T==="\\+"?"+":T},cE=(T)=>`Spread operand must resolve to an object literal type (was ${T})`;var dQ=(T,$)=>eE(T)?tQ[T[0]](T,$):aE(T)?iQ[T[1]](T,$):null,oE=(T,$)=>$.$.parseOwnDefinitionFormat(T[1],$).keyof(),P5=(T,$)=>{if(T[2]===void 0)return R(k5(T[1],""));let J=$.$.parseOwnDefinitionFormat(T[0],$),W=$.$.parseOwnDefinitionFormat(T[2],$);if(T[1]==="|")return $.$.node("union",{branches:[J,W]});let X=T[1]==="&"?WJ(J,W,$.$):Y8(J,W,$.$);if(X instanceof v)return X.throw();return X},dE=(T,$)=>$.$.parseOwnDefinitionFormat(T[0],$).array(),lE=(T,$)=>{if(typeof T[2]!=="function")return R(lQ("=>",T[2]));return $.$.parseOwnDefinitionFormat(T[0],$).pipe(T[2])},lQ=(T,$)=>`${T===":"?"Narrow":"Morph"} expression requires a function following '${T}' (was ${typeof $})`,nE=(T,$)=>{if(typeof T[2]!=="function")return R(lQ(":",T[2]));return $.$.parseOwnDefinitionFormat(T[0],$).constrain("predicate",T[2])},iE=(T,$)=>$.$.parseOwnDefinitionFormat(T[0],$).configureReferences(T[2],"shallow"),nQ=(T)=>T,tE=nQ({"[]":dE,"?":()=>R(b4)}),rE=nQ({"|":P5,"&":P5,":":nE,"=>":lE,"|>":P5,"@":iE,"=":()=>R(P4)}),iQ={...tE,...rE},aE=(T)=>iQ[T[1]]!==void 0,sE=(T)=>T,tQ=sE({keyof:oE,instanceof:(T,$)=>{if(typeof T[1]!=="function")return R(oQ(t2(T[1])));let J=T.slice(1).map((W)=>typeof W==="function"?$.$.node("proto",{proto:W}):R(oQ(t2(W))));return J.length===1?J[0]:$.$.node("union",{branches:J})},"===":(T,$)=>$.$.units(T.slice(1))}),eE=(T)=>tQ[T[0]]!==void 0,oQ=(T)=>`Expected a constructor following 'instanceof' operator (was ${T})`;var sQ=(T,$)=>{let J=[{}],W=0;while(W<T.length){let X=!1;if(T[W]==="..."&&W<T.length-1)X=!0,W++;let F=p4(T[W],$),[Y,G,H]=!mT(F)?[F]:F;if(W++,X){if(!Y.extends(y.intrinsic.Array))return R(JR(Y.expression));J=J.flatMap((A)=>Y.distribute((z)=>$R(E4(A),z)))}else J=J.map((A)=>{if(G==="?")return eQ(A,Y);if(G==="=")return TR(A,Y,H);return v5(A,Y)})}return $.$.parseSchema(J.map((X)=>T1(X)?{proto:Array,exactLength:0}:{proto:Array,sequence:X}))},v5=(T,$)=>{if(T.defaultables||T.optionals)return R(T.variadic?O5:WR);if(T.variadic)T.postfix=KT(T.postfix,$);else T.prefix=KT(T.prefix,$);return T},eQ=(T,$)=>{if(T.variadic)return R(TO);return T.optionals=KT(T.optionals,$),T},TR=(T,$,J)=>{if(T.variadic)return R(TO);if(T.optionals)return R(XR);return T.defaultables=KT(T.defaultables,[[$,J]]),T},rQ=(T,$)=>{if(T.postfix)R(aQ);if(T.variadic){if(!T.variadic.equals($))R(aQ)}else T.variadic=$.internal;return T},$R=(T,$)=>{let J=$.select({method:"find",kind:"sequence"});if(!J)return rQ(T,y.intrinsic.unknown);if(J.prefix?.forEach((W)=>v5(T,W)),J.optionals?.forEach((W)=>eQ(T,W)),J.variadic)rQ(T,J.variadic);return J.postfix?.forEach((W)=>v5(T,W)),T},JR=(T)=>`Spread element must be an array (was ${T})`,aQ="A tuple may have at most one variadic element",WR="A required element may not follow an optional element",TO="An optional element may not follow a variadic element";var XR="A defaultable element may not follow an optional element without a default";var FR={},u4=(T,$)=>{if(typeof T==="string"){if($.args&&Object.keys($.args).some((W)=>T.includes(W)))return j5(T,$);let J=FR[$.$.name]??={};return J[T]??=j5(T,$)}return e$(T,"object")?YR(T,$):R(h5(V$(T)))},YR=(T,$)=>{let J=i2(T);switch(J){case void 0:if(l(T,"root"))return T;return cQ(T,$);case"Array":return GR(T,$);case"RegExp":return $.$.node("intersection",{domain:"string",pattern:T},{prereduced:!0});case"Function":{let W=$0(T)?T():T;if(l(W,"root"))return W;return R(h5("Function"))}default:return R(h5(J??YT(T)))}},GR=(T,$)=>dQ(T,$)??sQ(T,$),h5=(T)=>`Type definitions must be strings or objects (was ${T})`;class m5 extends hJ{constructor(T){let $=Object.assign({errors:$J,hkt:v$,$:T,raw:T.parse,module:T.constructor.module,scope:T.constructor.scope,define:T.define,match:T.match,generic:T.generic,schema:T.schema,keywords:T.ambient,unit:T.unit,enumerated:T.enumerated,instanceOf:T.instanceOf,valueOf:T.valueOf,or:T.or,and:T.and,merge:T.merge,pipe:T.pipe},T.ambientAttachments);super((...J)=>{if(J.length===1)return T.parse(J[0]);if(J.length===2&&typeof J[0]==="string"&&J[0][0]==="<"&&J[0].at(-1)===">"){let W=J[0].slice(1,-1),X=T.parseGenericParams(W,{});return new F0(X,J[1],T,T,null)}return T.parse(J)},{bind:T,attach:$})}}var GX=y;class c4 extends j4{get ambientAttachments(){if(!GX.typeAttachments)return;return this.cacheGetter("ambientAttachments",AT(GX.typeAttachments,(T,$)=>[T,this.bindReference($)]))}preparseOwnAliasEntry(T,$){let J=T.indexOf("<");if(J===-1){if(l($,"module")||l($,"generic"))return[T,$];let F=this.name==="ark"?T:T==="root"?this.name:`${this.name}.${T}`,Y=this.resolvedConfig.keywords?.[F];if(Y)$=[$,"@",Y];return[T,$]}if(T.at(-1)!==">")R("'>' must be the last character of a generic declaration in a scope");let W=T.slice(0,J),X=T.slice(J+1,-1);return[W,()=>{let F=this.parseGenericParams(X,{alias:W});return _w(F,$,this)}]}parseGenericParams(T,$){return g4(new y1(T),[],this.createParseContext({...$,def:T,prefix:"generic"}))}normalizeRootScopeValue(T){if($0(T)&&!l(T,"generic"))return T();return T}preparseOwnDefinitionFormat(T,$){return{...$,def:T,prefix:$.alias??"type"}}parseOwnDefinitionFormat(T,$){if(!($.alias&&($.alias in this.aliases))&&!$.args)$.args={this:$.id};let W=u4(T,$);if(mT(W)){if(W[1]==="=")return R(P4);if(W[1]==="?")return R(b4)}return W}unit=(T)=>this.units([T]);valueOf=(T)=>this.units(mM(T));enumerated=(...T)=>this.units(T);instanceOf=(T)=>this.node("proto",{proto:T},{prereduced:!0});or=(...T)=>this.schema(T.map(($)=>this.parse($)));and=(...T)=>T.reduce(($,J)=>$.and(this.parse(J)),this.intrinsic.unknown);merge=(...T)=>T.reduce(($,J)=>$.merge(this.parse(J)),this.intrinsic.object);pipe=(...T)=>this.intrinsic.unknown.pipe(...T);match=new x5(this);declare=()=>({type:this.type});define(T){return T}type=new m5(this);static scope=(T,$={})=>new c4(T,$);static module=(T,$={})=>this.scope(T,$).export()}var g5=Object.assign(c4.scope,{define:(T)=>T}),OT=c4;class $O extends v${description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var HR=NJ(["base",e.object],["props",e.object])((T)=>T.base.merge(T.props),$O),JO=OT.module({Key:e.key,Merge:HR});class WO extends v${}var AR=NJ("element")((T)=>{let $=T.element.exclude(e.Array),J=$.array();return $.rawOr(J).pipe(T0).distribute((W)=>W.assertHasKind("morph").declareOut(J),IT)},WO),XO=OT.module({root:e.Array,readonly:"root",index:e.nonNegativeIntegerString,liftFrom:AR},{name:"Array"});var p5=IT(["string",d0.FileConstructor]),zR=p5.rawOr(p5.array()),FO=IT({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:zR}}),YO=OT.module({root:["instanceof",FormData],value:p5,parsed:FO,parse:IT({in:FormData,morphs:(T)=>{let $={};for(let[J,W]of T)if(J in $){let X=$[J];if(typeof X==="string"||X instanceof d0.FileConstructor)$[J]=[X,W];else X.push(W)}else $[J]=W;return $},declaredOut:FO})},{name:"FormData"});var GO=OT.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var MR={Boolean:1,Number:1,String:1},HO=OT.module({...AT({...Z9,...y9},(T,$)=>(T in MR)?[]:[T,["instanceof",$]]),Array:XO,TypedArray:GO,FormData:YO});var wR=IT({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),QR=IT({domain:"number",divisor:1}),o4=OT.module({root:e.number,integer:QR,epoch:wR,safe:IT({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var iT=(T,$)=>XX("intersection",{domain:"string",pattern:{rule:T.source,flags:T.flags,meta:$}}),AO=iT(s2,"a well-formed integer string"),VO=OT.module({root:AO,parse:IT({in:AO,morphs:(T,$)=>{let J=Number.parseInt(T);return Number.isSafeInteger(J)?J:$.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:e.integer})},{name:"string.integer"}),OR=iT(/^[0-9a-fA-F]+$/,"hex characters only"),UR=OT.module({root:iT(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,"base64-encoded"),url:iT(/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2}(?:==|%3D%3D)?|[A-Za-z0-9_-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),zO=iT(/^[A-Z].*$/,"capitalized"),SR=OT.module({root:IT({in:"string",morphs:(T)=>T.charAt(0).toUpperCase()+T.slice(1),declaredOut:zO}),preformatted:zO},{name:"string.capitalize"}),_R=(T)=>{let $=T.replace(/[- ]+/g,""),J=0,W,X,F=!1;for(let Y=$.length-1;Y>=0;Y--){if(W=$.substring(Y,Y+1),X=Number.parseInt(W,10),F)if(X*=2,X>=10)J+=X%10+1;else J+=X;else J+=X;F=!F}return!!(J%10===0?$:!1)},DR=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,KR=IT({domain:"string",pattern:{meta:"a credit card number",rule:DR.source},predicate:{meta:"a credit card number",predicate:_R}});var VR=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;var ER=(T)=>!Number.isNaN(new Date(T).valueOf()),MO=IT({domain:"string",predicate:{meta:"a parsable date",predicate:ER}}).assertHasKind("intersection"),wO=VO.root.internal.narrow((T,$)=>{let J=Number.parseInt(T),W=o4.epoch(J);if(W instanceof $J)return $.errors.merge(W),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),RR=OT.module({root:wO,parse:IT({in:wO,morphs:(T)=>new Date(T),declaredOut:e.Date})},{name:"string.date.epoch"}),QO=iT(VR,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),LR=OT.module({root:QO,parse:IT({in:QO,morphs:(T)=>new Date(T),declaredOut:e.Date})},{name:"string.date.iso"}),BR=OT.module({root:MO,parse:IT({declaredIn:MO,in:"string",morphs:(T,$)=>{let J=new Date(T);if(Number.isNaN(J.valueOf()))return $.error("a parsable date");return J},declaredOut:e.Date}),iso:LR,epoch:RR},{name:"string.date"}),fR=iT(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,"an email address"),OO="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",Y0=`(${OO}[.]){3}${OO}`,NR=new RegExp(`^${Y0}$`),A$="(?:[0-9a-fA-F]{1,4})",CR=new RegExp(`^((?:${A$}:){7}(?:${A$}|:)|(?:${A$}:){6}(?:${Y0}|:${A$}|:)|(?:${A$}:){5}(?::${Y0}|(:${A$}){1,2}|:)|(?:${A$}:){4}(?:(:${A$}){0,1}:${Y0}|(:${A$}){1,3}|:)|(?:${A$}:){3}(?:(:${A$}){0,2}:${Y0}|(:${A$}){1,4}|:)|(?:${A$}:){2}(?:(:${A$}){0,3}:${Y0}|(:${A$}){1,5}|:)|(?:${A$}:){1}(?:(:${A$}){0,4}:${Y0}|(:${A$}){1,6}|:)|(?::((?::${A$}){0,5}:${Y0}|(?::${A$}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),ZR=OT.module({root:["v4 | v6","@","an IP address"],v4:iT(NR,"an IPv4 address"),v6:iT(CR,"an IPv6 address")},{name:"string.ip"}),HX="a JSON string",EO=(T)=>{if(!(T instanceof SyntaxError))throw T;return`must be ${HX} (${T})`},kR=IT({meta:HX,domain:"string",predicate:{meta:HX,predicate:(T,$)=>{try{return JSON.parse(T),!0}catch(J){return $.reject({code:"predicate",expected:HX,problem:EO(J)})}}}}),yR=(T,$)=>{if(T.length===0)return $.error({code:"predicate",expected:HX,actual:"empty"});try{return JSON.parse(T)}catch(J){return $.error({code:"predicate",expected:HX,problem:EO(J)})}},qR=OT.module({root:kR,parse:IT({meta:"safe JSON string parser",in:"string",morphs:yR,declaredOut:e.jsonObject})},{name:"string.json"}),UO=iT(/^[a-z]*$/,"only lowercase letters"),IR=OT.module({root:IT({in:"string",morphs:(T)=>T.toLowerCase(),declaredOut:UO}),preformatted:UO},{name:"string.lower"}),RO=["NFC","NFD","NFKC","NFKD"],K8=AT(RO,(T,$)=>[$,IT({domain:"string",predicate:(J)=>J.normalize($)===J,meta:`${$}-normalized unicode`})]),d4=AT(RO,(T,$)=>[$,IT({in:"string",morphs:(J)=>J.normalize($),declaredOut:K8[$]})]),jR=OT.module({root:d4.NFC,preformatted:K8.NFC},{name:"string.normalize.NFC"}),xR=OT.module({root:d4.NFD,preformatted:K8.NFD},{name:"string.normalize.NFD"}),bR=OT.module({root:d4.NFKC,preformatted:K8.NFKC},{name:"string.normalize.NFKC"}),PR=OT.module({root:d4.NFKD,preformatted:K8.NFKD},{name:"string.normalize.NFKD"}),vR=OT.module({root:"NFC",NFC:jR,NFD:xR,NFKC:bR,NFKD:PR},{name:"string.normalize"}),SO=iT(_4,"a well-formed numeric string"),hR=OT.module({root:SO,parse:IT({in:SO,morphs:(T)=>Number.parseFloat(T),declaredOut:e.number})},{name:"string.numeric"}),mR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,gR=iT(mR,"a semantic version (see https://semver.org/)"),_O=iT(/^\S.*\S$|^\S?$/,"trimmed"),pR=OT.module({root:IT({in:"string",morphs:(T)=>T.trim(),declaredOut:_O}),preformatted:_O},{name:"string.trim"}),DO=iT(/^[A-Z]*$/,"only uppercase letters"),uR=OT.module({root:IT({in:"string",morphs:(T)=>T.toUpperCase(),declaredOut:DO}),preformatted:DO},{name:"string.upper"}),cR=(T)=>{if(URL.canParse)return URL.canParse(T);try{return new URL(T),!0}catch{return!1}},KO=IT({domain:"string",predicate:{meta:"a URL string",predicate:cR}}),oR=OT.module({root:KO,parse:IT({declaredIn:KO,in:"string",morphs:(T,$)=>{try{return new URL(T)}catch{return $.error("a URL string")}},declaredOut:IT(URL)})},{name:"string.url"}),dR=OT.module({root:["versioned | nil | max","@","a UUID"],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i,v1:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv1"),v2:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-2[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv2"),v3:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv3"),v4:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv4"),v5:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv5"),v6:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv6"),v7:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv7"),v8:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-8[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),LO=OT.module({root:e.string,alpha:iT(/^[A-Za-z]*$/,"only letters"),alphanumeric:iT(/^[A-Za-z\d]*$/,"only letters and digits 0-9"),hex:OR,base64:UR,capitalize:SR,creditCard:KR,date:BR,digits:iT(/^\d*$/,"only digits 0-9"),email:fR,integer:VO,ip:ZR,json:qR,lower:IR,normalize:vR,numeric:hR,semver:gR,trim:pR,upper:uR,url:oR,uuid:dR},{name:"string"});var BO=OT.module({bigint:e.bigint,boolean:e.boolean,false:e.false,never:e.never,null:e.null,number:e.number,object:e.object,string:e.string,symbol:e.symbol,true:e.true,unknown:e.unknown,undefined:e.undefined}),fO=OT.module({root:e.unknown,any:e.unknown},{name:"unknown"}),lR=OT.module({root:e.jsonObject,stringify:XX("morph",{in:e.jsonObject,morphs:(T)=>JSON.stringify(T),declaredOut:e.string})},{name:"object.json"}),NO=OT.module({root:e.object,json:lR},{name:"object"});class CO extends v${description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var nR=NJ(["K",e.key],"V")((T)=>({domain:"object",index:{signature:T.K,value:T.V}}),CO);class ZO extends v${description='pick a set of properties from an object like `Pick(User, "name | age")`'}var iR=NJ(["T",e.object],["K",e.key])((T)=>T.T.pick(T.K),ZO);class kO extends v${description='omit a set of properties from an object like `Omit(User, "age")`'}var tR=NJ(["T",e.object],["K",e.key])((T)=>T.T.omit(T.K),kO);class yO extends v${description="make all named properties of an object optional like `Partial(User)`"}var rR=NJ(["T",e.object])((T)=>T.T.partial(),yO);class qO extends v${description="make all named properties of an object required like `Required(User)`"}var aR=NJ(["T",e.object])((T)=>T.T.required(),qO);class IO extends v${description='exclude branches of a union like `Exclude("boolean", "true")`'}var sR=NJ("T","U")((T)=>T.T.exclude(T.U),IO);class jO extends v${description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var eR=NJ("T","U")((T)=>T.T.extract(T.U),jO),xO=OT.module({Exclude:sR,Extract:eR,Omit:tR,Partial:rR,Pick:iR,Record:nR,Required:aR});var G0=g5({...BO,...xO,...HO,...JO,string:LO,number:o4,object:NO,unknown:fO},{prereducedAliases:!0,name:"ark"}),E$=G0.export();Object.assign(GX.ambient,E$);GX.typeAttachments={string:E$.string.root,number:E$.number.root,bigint:E$.bigint,boolean:E$.boolean,symbol:E$.symbol,undefined:E$.undefined,null:E$.null,object:E$.object.root,unknown:E$.unknown.root,false:E$.false,true:E$.true,never:E$.never,arrayIndex:E$.Array.index,Key:E$.Key,Record:E$.Record,Array:E$.Array.root,Date:E$.Date};var q1=Object.assign(G0.type,GX.typeAttachments),TL=G0.match,$L=G0.generic,DXT=G0.schema,JL=G0.define,WL=G0.declare;var XL="__vite_start_time"in globalThis,FL=typeof window!=="undefined",PXT="vitest"in globalThis,I1=q1("string"),bO=q1('"true" | "false" | undefined'),j1=ZM({isServer:!XL&&!FL,server:{CI:q1("string | undefined").pipe(Boolean),POSTGRES_USER:I1,POSTGRES_PASSWORD:I1,POSTGRES_DATABASE:I1,POSTGRES_HOST:I1,POSTGRES_PORT:I1.pipe((T)=>Number.parseInt(T,10)),BACKEND_PORT:I1.pipe((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:bO.pipe((T)=>T==="true"),FRONTEND_PORT:I1.pipe((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:I1.pipe.try((T)=>JSON.parse(T),q1("string[]")),OPENAI_API_KEY:q1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:I1,VITE_USE_SELF_SIGNED_CERTIFICATE:bO.pipe((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var c5={};rU(c5,{users:()=>i0,userChanges:()=>GL,untrackedUserColumnNames:()=>YL,twoFactorMethod:()=>gO,trackedUserColumnName:()=>mO,trackableUserColumnNames:()=>hO,role:()=>vO,players:()=>u5,passwordResetAttempts:()=>AL,loginHistory:()=>HL,games:()=>l4,banishedIps:()=>n4});function PO(T){return U`lower(${T})`}var vO=xF("role",["admin","user"]),i0=a1("users",{id:MJ().primaryKey().defaultRandom(),username:Z$({length:16}).notNull(),email:Z$({length:254}).notNull(),hash:Z$({length:64}).notNull(),salt:Z$({length:36}).notNull(),createdAt:PJ({withTimezone:!0}).notNull().defaultNow(),createdIp:Z$({length:45}).notNull(),isActive:I2().notNull().default(!1),verifiedAt:PJ({withTimezone:!0}),userRole:vO().default("user")},(T)=>[E9("usernameUniqueIndex").on(PO(T.username)),E9("emailUniqueIndex").on(PO(T.email))]),YL=["id","createdAt","createdIp","isActive","salt","verifiedAt"],hO=["username","email","hash","userRole"],mO=xF("trackedUserColumnName",hO),GL=a1("userChanges",{id:MJ().primaryKey().defaultRandom(),userId:MJ().notNull().references(()=>i0.id),changedAt:PJ({withTimezone:!0}).notNull().defaultNow(),changedIp:Z$({length:45}).notNull(),changedColumn:mO().notNull(),oldValue:Z$({length:255}),newValue:Z$({length:255})}),l4=a1("games",{id:MJ().primaryKey().defaultRandom()}),u5=a1("players",{userId:MJ().notNull().references(()=>i0.id),gameId:MJ().notNull().references(()=>l4.id),score:dF().notNull()},(T)=>[iz({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),HL=a1("loginHistory",{id:MJ().primaryKey().defaultRandom(),userId:MJ().references(()=>i0.id),loginTime:PJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:Z$({length:45}).notNull(),userAgent:Z$({length:1024}),successful:I2().notNull().default(!1)}),gO=xF("twoFactorMethod",["email","phone"]),AL=a1("passwordResetAttempts",{id:MJ().primaryKey().defaultRandom(),userId:MJ().notNull().references(()=>i0.id),requestedIp:Z$({length:45}).notNull(),requestedAt:PJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:Z$({length:45}),succeededAt:PJ({withTimezone:!0}),verificationMethod:gO().notNull()}),n4=a1("banishedIps",{ip:Z$({length:45}).primaryKey(),reason:Z$({length:2048}).notNull(),banishedAt:PJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:PJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class o5{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(zL.resolve(__dirname,"notify_update.sql"));let T=[B$(i0),B$(l4),B$(u5)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let J=$.split(","),W=J[0],X=J[1],F=`${W}("${X}")`;if(this.observers.has(F))this.observers.get(F).next(F)})}constructor(T=!1,$={host:j1.POSTGRES_HOST,port:j1.POSTGRES_PORT,user:j1.POSTGRES_USER,password:j1.POSTGRES_PASSWORD,database:j1.POSTGRES_DATABASE}){this.options=$,this.sql=pW($),this.drizzle=U4(this.sql,{schema:c5,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new QT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as QL}from"path";import{existsSync as d5,mkdirSync as pO,readFileSync as ML,writeFileSync as wL,rmSync as uO,readdirSync as cO,statSync as oO}from"fs";import{resolve as l5}from"path";var dO=class{get initialized(){return d5(this.rootDir)}initialize(){if(!this.initialized)pO(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=l5(this.rootDir,T);if(d5($))return ML($,"utf-8");return null}setItem(T,$){this.initialize();let J=l5(this.rootDir,T);wL(J,$)}removeItem(T){let $=l5(this.rootDir,T);if(d5($))this.initialize(),uO($)}key(T){var $;return($=cO(this.rootDir).sort((X,F)=>{let Y=oO(X);return oO(F).ctimeMs-Y.ctimeMs})[T])!=null?$:null}clear(){uO(this.rootDir,{recursive:!0}),pO(this.rootDir,{recursive:!0})}get length(){return cO(this.rootDir).length}};var n5=new dO({path:QL(process.cwd(),"storage")});import*as i4 from"fs";import*as lO from"readline";function OL(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(W,X,F,Y,G)=>{let A={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[F];return`${Y}-${A}-${X}T${G}`});return new Date(J)}async function nO(T,$="/var/log/nginx/access.log",J=new Date){let W=new Map;if(!i4.existsSync($))return T.error(`Log file not found: ${$}`),W;let X=i4.createReadStream($),F=lO.createInterface({input:X,crlfDelay:Number.POSITIVE_INFINITY}),Y=new Date(J.getTime()-3600000);return F.on("line",(G)=>{let H=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,A=G.match(H);if(A?.groups){let z=A.groups.ip,M=A.groups.dateTime,w=OL(M);if(!Number.isNaN(w.getTime())){if(w>=Y&&w<=J){let S=W.get(z);if(!S)S=[],W.set(z,S);S.push(G)}}else T.error(`Failed to parse date: ${M}`)}}),new Promise((G,H)=>{F.on("error",(A)=>{H(A)}),F.on("close",()=>{G(W)})})}function iO(T){return T.toJsonSchema()}var UL=["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(`
133
+ `);function tO(T){return UL+T.join(`
96
134
 
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
- `);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}/${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)}
135
+ `)}var rO={schema:q1([{shouldBanIp:"false"},"|",{shouldBanIp:"true",veryConciseReason:"string"}]),toJsonSchema:iO,fallback:{shouldBanIp:!1}};var _L=[".env","php"];async function aO({generator:T,logFilePath:$,logger:J,now:W=new Date}){let X=T.usdBudget,F=new o5({logQuery(q,V){J.info("\uD83D\uDCDD query",q,V)}}),Y=await nO(J,$,W),G=[],H=T.from(rO),A=0,z=0;for(let[q,V]of Y){J.info(`\uD83D\uDD0D ruling on ${q}. logs:`),J.info(V.map((C)=>` ${C}`).join(`
136
+ `));let f=!1;for(let C of _L)if(V.some((B)=>B.includes(C))){G.push({ip:q,reason:`Always ban ${C}`}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${q}--always ban ${C}
137
+ `),f=!0;break}if(f)continue;if(T.usdBudget>T.usdMinimum){let C=tO(V),B=await H(C);if(B.shouldBanIp)G.push({ip:q,reason:B.veryConciseReason}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${q}--${B.veryConciseReason}
138
+ `);else z++,J.info(` \uD83D\uDD4A\uFE0F not banning ${q}
139
+ `);A++}else{J.warn("\uD83D\uDCB0 insufficient funds to process all logs"),J.warn(`\uD83D\uDCB0 got through ${A}/${Y.size} ips
140
+ `);break}}let M=G.length;if(G.length>0)await F.drizzle.insert(n4).values(G).onConflictDoNothing();let w=[],S=n5.getItem("lastTribunalProcessedDate"),_=new Date(S??"1970-01-01");try{w.push(...await F.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:pF(n4.banishedAt,_)}))}catch(q){J.error(q)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(w.map((q)=>new Promise((V,f)=>SL(`iptables -D INPUT -s ${q.ip} -j DROP`).on("exit",(C)=>{if(C===0)J.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${q.ip}`),V();else f(new Error(`iptables exited with code ${C}`))}))));else J.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(q){if(q instanceof Error)J.error(q.message);else{let V=PW(q);J.error("iptables exited with error",V)}}n5.setItem("lastTribunalProcessedDate",W.toISOString()),J.info(`\u2728 banned ${M} ips, didn't ban ${z} ips`);let K=X-T.usdBudget,Z=K.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),k=X.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),N=Math.round(K/X*100);J.info(`\uD83D\uDCB8 spent ${Z}, ${N}% of ${k} budget`)}var x1=new K6;Object.assign(console,x1.logger,{log:x1.logger.info});process.on("SIGINT",()=>{x1.logger.info("\u2757 received SIGINT; exiting gracefully"),t4()});process.on("SIGTERM",()=>{x1.logger.info("\u2757 received SIGTERM; exiting gracefully"),t4()});process.on("exit",()=>{x1.logger.info("\u2757 received exit; exiting gracefully"),t4()});x1.logger.info("\uD83D\uDEEB tribunal worker ready");var DL=new HH({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:j1.OPENAI_API_KEY,cachingMode:"off",logger:x1.logger});if(j1.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 aO({generator:DL,logFilePath:"/var/log/nginx/access.log",logger:x1.logger});t4();function t4(){x1.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}