tempest.games 0.1.34 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/app/assets/index-i-9D4V9Z.js +62 -0
- package/app/index.html +1 -1
- package/bin/backend.bun.js +29 -29
- package/bin/backend.worker.game.bun.js +8 -8
- package/bin/backend.worker.tribunal.bun.js +50 -50
- package/bin/frontend.bun.js +15 -15
- package/bin/interactive-db.bun.js +1 -1
- package/bin/setup-db.bun.js +82 -87
- package/package.json +24 -24
- package/app/assets/index-CMk_4lqk.js +0 -62
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var M7=Object.create;var{getPrototypeOf:Y7,defineProperty:s1,getOwnPropertyNames:G7}=Object;var K7=Object.prototype.hasOwnProperty;var H7=(T,$,J)=>{J=T!=null?M7(Y7(T)):{};let S=$||!T||!T.__esModule?s1(J,"default",{value:T,enumerable:!0}):J;for(let F of G7(T))if(!K7.call(S,F))s1(S,F,{get:()=>T[F],enumerable:!0});return S};var O7=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var z7=(T,$)=>{for(var J in $)s1(T,J,{get:$[J],enumerable:!0,configurable:!0,set:(S)=>$[J]=()=>S})};var m2=import.meta.require;var Nw=O7((oN,Lw)=>{var I0=m2("os"),Z0=m2("path");function yw(T){let $=process.env.XDG_CACHE_HOME||Z0.join(I0.homedir(),".cache");return Z0.join($,T)}function l5(T){return Z0.join(I0.homedir(),"Library","Caches",T)}function r5(T){let $=process.env.LOCALAPPDATA||Z0.join(I0.homedir(),"AppData","Local");return Z0.join($,T,"Cache")}var a5=function(){switch(I0.platform()){case"darwin":return l5;case"win32":return r5;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return yw;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${I0.platform()}" is not currently supported by node-cachedir, falling back to "posix". Please file an issue with your platform here: https://github.com/LinusU/node-cachedir/issues/new`),yw}}();Lw.exports=function T($){if(typeof $!=="string")throw new TypeError("id is not a string");if($.length===0)throw new Error("id cannot be empty");if(/[^0-9a-zA-Z-]/.test($))throw new Error("id cannot contain special characters");return a5($)}});function Ff(T=Math.random){return T().toString(36).slice(2)}class qF extends Promise{fate;resolve;reject;done=!1;constructor(T){let $,J;super((S,F)=>{$=S,J=F});this.resolve=$,this.reject=J,this.use(T instanceof Promise?T:new Promise(T))}pass(T,$){if(T===this.fate)this.resolve($),this.done=!0}fail(T,$){if(T===this.fate)this.reject($),this.done=!0}use(T){if(T instanceof Promise){let $=T;this.fate=$,$.then((J)=>{this.pass($,J)},(J)=>{this.fail($,J)})}else this.resolve(T),this.fate=void 0}}function LK(T){return Object.entries(T)}var v2=(T,$,J=AT.STORE)=>{return OJ(J,{key:`${T.key}:JSON`,get:({get:S})=>$.toJson(S(T)),set:({set:S},F)=>{S(T,$.fromJson(F))}})};function b(T){while(T.child!==null)T=T.child;return T}class FT{Subscriber;subscribers=new Map;subscribe(T,$){return this.subscribers.set(T,$),()=>{this.unsubscribe(T)}}unsubscribe(T){this.subscribers.delete(T)}next(T){let $=this.subscribers.values();for(let J of $)J(T)}}class e1 extends FT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function zJ(T,$,J){let S={key:$.key,type:"atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${WJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let f=new FT,A=Object.assign((X)=>{let w=WT(X),M={key:$.key,subKey:w},Y=`${$.key}(${w})`,G=b(T),z=$.default,D={key:Y,default:z instanceof Function?z(X):z};if($.effects)D.effects=$.effects(X);let _=N$(G,D,M);return f.next({type:"state_creation",token:_}),_},S,{subject:f,install:(X)=>zJ(X,$),internalRoles:J});return T.families.set($.key,A),T.defaults.set($.key,$.default),S}function P2(T,$){if("mutable"in $)return bF(T,$);return zJ(T,$)}function DJ(T,$,J){let S={key:$.key,type:"readonly_selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","readonly_selector_family",$.key,`Overwriting an existing ${WJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let f=new FT,A=Object.assign((X)=>{let w=WT(X),M={key:$.key,subKey:w},Y=`${$.key}(${w})`,G=b(T),z=hF(G,{key:Y,get:$.get(X)},M);return f.next({type:"state_creation",token:z}),z},S,{internalRoles:J,subject:f,install:(X)=>DJ(X,$),default:(X)=>{return $.get(X)({get:(...M)=>OT(T,...M),find:(...M)=>a(T,...M),json:(M)=>iT(T,M)})}});return T.families.set($.key,A),S}function ff(T,$){if("set"in $)return mF(T,$);return DJ(T,$)}class Wf{_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 Wf([...this._buffer]);return T._index=this._index,T}}var D7={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function n2(T,$){let J=WT($),S=`${T.key}(${J})`,F=D7[T.type],f={key:S,type:F};return Object.assign(f,{family:{key:T.key,subKey:J}}),Object.assign(f,{counterfeit:!0}),f}function U$(T){let $={key:T.key,type:T.type};if("family"in T)$.family=T.family;return $}function qS(T){return c2(AT.STORE,T)}function rJ(T){return P2(AT.STORE,T)}function TW(...T){if(T.length===2)return OT(AT.STORE,...T);return OT(AT.STORE,...T)}function Af(T,$,J=AT.STORE){return J.joins.set(T.key,new vF(T,$,J)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function p2(T){return o2(T,AT.STORE)}var $W=(T)=>($,J,S,F,...f)=>{console[T](`${$} ${J} "${S}" ${F}`,...f)},E7={error:$W("error"),info:$W("info"),warn:$W("warn")};class JW{logLevel;filter;logger;constructor(T,$,J=E7){this.logLevel=T,this.filter=$,this.logger=J}error=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!==null)this.logger.error(...T)};info=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel==="info")this.logger.info(...T)};warn=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...T)}}var XH=Symbol("claim");class t2{store;constructor(T=AT.STORE){this.store=T,i2("root",T)}allocate(T,$,J){return aJ(this.store,T,$,J)}fuse(T,$,J){return d2(this.store,T,$,J)}deallocate(T){sJ(this.store,T)}claim(T,$,J){return bS(this.store,T,$,J)}}class SW{store;realm;constructor(T=AT.STORE){this.store=T,this.realm=new t2(T)}allocate(T,$,J){aJ(this.store,T,$,J)}deallocate(T){sJ(this.store,T)}claim(T,$,J){bS(this.store,T,$,J)}}function wf(T){return ff(AT.STORE,T)}function dT(T){return"epoch"in T.transactionMeta}function zT(T){return"phase"in T.transactionMeta}var u2=(T)=>{let $=b(T);if(!zT($)){T.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}T.logger.info("\uD83E\uDE82","transaction",$.transactionMeta.update.key,"Aborting transaction"),$.parent.child=null};function QT(T){return T[0].toUpperCase()+T.slice(1)}function WJ(T){return T.type.split("_").map(QT).join(" ")}class eJ extends Error{constructor(T,$){super(`${WJ(T)} ${WT(T.key)} not found in store "${$.config.name}".`)}}function hS(T,$,J){return(...S)=>{let F=GT(T,$);if(F)return F.run(S,J);throw new eJ($,T)}}var Mf=(T)=>($)=>T instanceof Function?T($):T;var hJ=(T,$)=>{if(T.valueMap.has($.key))return T.logger.info("\uD83D\uDCD6",$.type,$.key,"reading cached value"),l2($,T);if($.type==="selector"||$.type==="readonly_selector")return T.logger.info("\uD83E\uDDEE",$.type,$.key,"computing value"),$.get();let J=$.default instanceof Function?$.default():$.default;return T.logger.info("\uD83D\uDC81","atom",$.key,"could not find cached value; using default",J),$.default instanceof Function?$.default():$.default};var r2=(T,$)=>{if(T.operation.open){let J=performance.now();return T.logger.info("\u2757",$.type,$.key,`deferring setState at T-${J} until setState for "${T.operation.token.key}" is done`),J}T.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:$},T.logger.info("\u2B55",$.type,$.key,`operation start in store "${T.config.name}"${!zT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},a2=(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)},s2=(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($)},mS=(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 e2=(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 FW=(T,$)=>{let J=b(T),S=J.selectorAtoms.getRelatedKeys($.key);if(J.logger.info("\uD83E\uDDF9",$.type,$.key,S?`evicting ${S.size} states downstream:`:"no downstream states",S??"to evict"),S){if(J.operation.open)J.logger.info("\uD83E\uDDF9",$.type,$.key,`[ ${[...J.operation.done].join(", ")} ] already done`);for(let F of S){if(s2(J,F))continue;TX(F,J),mS(J,F)}}};function Q7(T,$){if(JX($.newValue))return!1;if(T.includes("\uD83D\uDD0D"))return!1;return!0}var $X=(T,$,J)=>{let{key:S}=$,F=b(T);if(!zT(F)||F.transactionMeta.phase!=="building"){T.logger.error("\uD83D\uDC1E","atom",S,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!Q7(S,J))return;let W={type:"atom_update",key:S,...J};if($.family)W.family=$.family;F.transactionMeta.update.updates.push(W),T.logger.info("\uD83D\uDCC1","atom",S,"stowed (",J.oldValue,"->",J.newValue,")")};var SX=(T,$,J)=>{let S=hJ(J,T),F=S;if(T.type==="mutable_atom"&&zT(J)){let{parent:W}=J;F=nF(J,T,W)}if(F=Mf($)(F),J.logger.info("\uD83D\uDCDD","atom",T.key,"set to",F),F=P$(J,T.key,F,T.subject),FX(J,T.key))fX(J,T.key);mS(J,T.key),FW(J,T);let f={oldValue:S,newValue:F};if(dT(J))e2(J,T,f);else if(J.parent){if(J.on.transactionApplying.state===null)$X(J,T,f);else if(T.key.startsWith("*")){let W=T.key.slice(1),A=J.atoms.get(W),X=J.valueMap.get(W);if(A.type==="mutable_atom"&&zT(J)){let{parent:M}=J;X=nF(J,A,M)}if(X.do(f.newValue)===null)FW(J,A)}}};var Yf=(T,$,J)=>{switch($.type){case"atom":case"mutable_atom":SX($,J,T);break;case"selector":$.set(J);break}};function WX(T,$){if($.family){let J=T.families.get($.family.key);if(J)return J}}function nT(T,...$){let J,S,F,f;if($.length===2){if(J=$[0],f=$[1],S=WX(T,J)??null,S)F=J.family?$$(J.family.subKey):null,J=a(T,S,F)}else S=$[0],F=$[1],f=$[2],J=a(T,S,F);if("counterfeit"in J&&"family"in J){let X=J.family.subKey,w=T.disposalTraces.buffer.find((M)=>M?.key===X);T.logger.error("\u274C",J.type,J.key,`could not be set because it was not found in the store "${T.config.name}".`,w?`This state was previously disposed:
|
|
4
|
-
${w.trace}`:"No previous disposal trace was found.");return}let
|
|
3
|
+
var vw=Object.create;var{getPrototypeOf:Pw,defineProperty:H2,getOwnPropertyNames:hw}=Object;var mw=Object.prototype.hasOwnProperty;var gw=(T,$,J)=>{J=T!=null?vw(Pw(T)):{};let W=$||!T||!T.__esModule?H2(J,"default",{value:T,enumerable:!0}):J;for(let F of hw(T))if(!mw.call(W,F))H2(W,F,{get:()=>T[F],enumerable:!0});return W};var cw=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var nw=(T,$)=>{for(var J in $)H2(T,J,{get:$[J],enumerable:!0,configurable:!0,set:(W)=>$[J]=()=>W})};var TS=import.meta.require;var l6=cw((iC,t6)=>{var dW=TS("node:os"),uW=TS("node:path");function i6(T){let $=process.env.XDG_CACHE_HOME||uW.join(dW.homedir(),".cache");return uW.join($,T)}function NH(T){return uW.join(dW.homedir(),"Library","Caches",T)}function CH(T){let $=process.env.LOCALAPPDATA||uW.join(dW.homedir(),"AppData","Local");return uW.join($,T,"Cache")}var xH=function(){switch(dW.platform()){case"darwin":return NH;case"win32":return CH;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return i6;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`),i6}}();t6.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 xH($)}});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 SO(T){return Object.entries(T)}var $S=(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 O2 extends XT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function DJ(T,$,J){let W={key:$.key,type:"atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${SJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,Y=Object.assign((A)=>{let w=YT(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),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,Y),T.defaults.set($.key,$.default),W}function JS(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 ${SJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,Y=Object.assign((A)=>{let w=YT(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),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,Y),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 pw={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function WS(T,$){let J=YT($),W=`${T.key}(${J})`,F=pw[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 n0(T){return FS(AT.STORE,T)}function eJ(T){return JS(AT.STORE,T)}function z2(...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 SS(T){return YS(T,AT.STORE)}var K2=(T)=>($,J,W,F,...X)=>{console[T](`${$} ${J} "${W}" ${F}`,...X)},ow={error:K2("error"),info:K2("info"),warn:K2("warn")};class f2{logLevel;filter;logger;constructor(T,$,J=ow){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 cO=Symbol("claim");class AS{store;constructor(T=AT.STORE){this.store=T,wS("root",T)}allocate(T,$,J){return T0(this.store,T,$,J)}fuse(T,$,J){return GS(this.store,T,$,J)}deallocate(T){$0(this.store,T)}claim(T,$,J){return p0(this.store,T,$,J)}}class D2{store;realm;constructor(T=AT.STORE){this.store=T,this.realm=new AS(T)}allocate(T,$,J){T0(this.store,T,$,J)}deallocate(T){$0(this.store,T)}claim(T,$,J){p0(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 MS=(T)=>{let $=P(T);if(!QT($)){T.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}T.logger.info("\uD83E\uDE82","transaction",$.transactionMeta.update.key,"Aborting transaction"),$.parent.child=null};function ET(T){return T[0].toUpperCase()+T.slice(1)}function SJ(T){return T.type.split("_").map(ET).join(" ")}class J0 extends Error{constructor(T,$){super(`${SJ(T)} ${YT(T.key)} not found in store "${$.config.name}".`)}}function o0(T,$,J){return(...W)=>{let F=OT(T,$);if(F)return F.run(W,J);throw new J0($,T)}}var _F=(T)=>($)=>T instanceof Function?T($):T;var vJ=(T,$)=>{if(T.valueMap.has($.key))return T.logger.info("\uD83D\uDCD6",$.type,$.key,"reading cached value"),HS($,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 OS=(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}"`}`)},zS=(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)},KS=(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($)},d0=(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 fS=(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(KS(J,F))continue;DS(F,J),d0(J,F)}}};var QS=(T,$,J)=>{let W=vJ(T,$),F=W;if($.type==="mutable_atom"&&QT(T)){let{parent:S}=T;F=a1(T,$,S)}if(F=_F(J)(F),T.logger.info("\uD83D\uDCDD","atom",$.key,"set to",F),F=m$(T,$.key,F,$.subject),RS(T,$.key))US(T,$.key);d0(T,$.key),Q2(T,$);let X={oldValue:W,newValue:F};if(!QT(T)){fS(T,$,X);return}if(T.on.transactionApplying.state===null){let{key:S}=$;if(ES(X.newValue))return;let Y={type:"atom_update",key:S,...X};if($.family)Y.family=$.family;T.transactionMeta.update.updates.push(Y),T.logger.info("\uD83D\uDCC1","atom",S,"stowed (",X.oldValue,"->",X.newValue,")")}else if($.key.startsWith("*")){let S=$.key.slice(1),Y=T.atoms.get(S),A=T.valueMap.get(S);if(Y.type==="mutable_atom"&&QT(T)){let{parent:G}=T;A=a1(T,Y,G)}if(A.do(X.newValue)===null)Q2(T,Y)}};var kF=(T,$,J)=>{switch($.type){case"atom":case"mutable_atom":QS(T,$,J);break;case"selector":$.set(J);break}};function _S(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=_S(T,J)??null,W)F=J.family?$$(J.family.subKey):null,J=a(T,W,F)}else W=$[0],F=$[1],X=$[2],J=a(T,W,F);if("counterfeit"in J&&"family"in J){let A=J.family.subKey,w=T.disposalTraces.buffer.find((G)=>G?.key===A);T.logger.error("\u274C",J.type,J.key,`could not be set because it was not found in the store "${T.config.name}".`,w?`This state was previously disposed:
|
|
4
|
+
${w.trace}`:"No previous disposal trace was found.");return}let S=OS(T,J);if(S){let A=T.on.operationClose.subscribe(`waiting to set "${J.key}" at T-${S}`,()=>{A(),T.logger.info("\uD83D\uDFE2",J.type,J.key,`resuming deferred setState from T-${S}`),gT(T,J,X)});return}let Y=OT(T,J);kF(T,Y,X),zS(T)}function VF(T,$,J){let{key:W,newValue:F,oldValue:X}=$,S=T==="newValue"?F:X,Y={key:W,type:"atom"};if($.family)Object.assign(Y,{family:$.family});gT(J,Y,S)}function kS(T){let{stack:$}=T;if($)return`
|
|
5
5
|
`+$.split(`
|
|
6
6
|
`)?.slice(1)?.join(`
|
|
7
|
-
`);return""}function
|
|
8
|
-
${
|
|
9
|
-
${
|
|
7
|
+
`);return""}function wS(T,$=AT.STORE){let J={key:T,stringKey:YT(T),dependsOn:"any"};return $.molecules.set(YT(T),J),T}function T0(T,$,J,W="any"){let F=$,X=YT(J),S=[],Y=P(T);if(Array.isArray(F))for(let G of F){let M=YT(G);if(Y.molecules.get(M))T.moleculeGraph.set(M,X,{source:M});else S.push(M)}else{let G=YT(F);if(Y.molecules.get(G))T.moleculeGraph.set(G,X,{source:G});else S.push(G)}if(S.length===0)Y.molecules.set(X,{key:J,stringKey:X,dependsOn:W});let A={type:"molecule_creation",key:J,provenance:F};if(QT(Y)&&Y.transactionMeta.phase==="building")Y.transactionMeta.update.updates.push(A);else Y.on.moleculeCreation.next(A);for(let G of S){let M=T.disposalTraces.buffer.find((H)=>H?.key===G);T.logger.error("\u274C","molecule",J,"allocation failed:",`Could not allocate to ${G} in store "${T.config.name}".`,M?`
|
|
8
|
+
${G} was most recently disposed
|
|
9
|
+
${M.trace}`:`No previous disposal trace for ${G} was found.`)}return J}function GS(T,$,J,W){let F=`T$--${$}==${J}++${W}`;return T0(T,[J,W],F,"all"),F}function $0(T,$){let J=YT($),W=T.molecules.get(J);if(!W){let f=T.disposalTraces.buffer.find((D)=>D?.key===J);T.logger.error("\u274C","molecule",$,"deallocation failed:",`Could not find allocation for ${J} in store "${T.config.name}".`,f?`
|
|
10
10
|
This state was most recently deallocated
|
|
11
|
-
${
|
|
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=[],S=[],Y={type:"molecule_disposal",key:W.key,values:S,provenance:X},A=P(T);A.molecules.delete(J);let w=QT(A)&&A.transactionMeta.phase==="building";if(w)A.transactionMeta.update.updates.push(Y);let G=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey});if(G)for(let[f,{source:D}]of G)if(D===W.stringKey){let R=$$(f);$0(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);S.push([D.key,R]),W0(T,R)}if(A.moleculeGraph.delete(W.stringKey),A.moleculeJoins.delete(W.stringKey),A.moleculeData.delete(W.stringKey),!w)A.on.moleculeDisposal.next(Y);A.molecules.delete(W.stringKey);let H=kS(new Error);T.disposalTraces.add({key:J,trace:H})}function p0(T,$,J,W){let F=YT(J),X=P(T),S=X.molecules.get(F);if(!S){let H=T.disposalTraces.buffer.find((f)=>f?.key===F);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${F} in store "${T.config.name}".`,H?`
|
|
12
12
|
${F} was most recently disposed
|
|
13
|
-
${
|
|
14
|
-
${
|
|
15
|
-
${
|
|
16
|
-
${W.trace}`:"No previous disposal trace was found."),S.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(S.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(S.key))return T.defaults.get(J.family.key);let A=GT(T,S).default(f);return T.defaults.set(S.key,A),A}}}return hJ(T,GT(T,J))}class uT{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,$)=>`${T}:${$}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,$){let J=this.relations.get(T),S=this.relations.get($);if(J)J.add($);else J=new Set([$]),this.relations.set(T,J);if(S)S.add(T);else S=new Set([T]),this.relations.set($,S)}deleteRelation(T,$){let J=this.relations.get(T);if(J){if(J.delete($),J.size===0)this.relations.delete(T);let S=this.relations.get($);if(S){if(S.delete(T),S.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let J of $){let S=new Set().add(T);this.relations.set(J,S)}}replaceRelationsSafely(T,$){let J=this.relations.get(T),S=this.isAType?.(T)?T:void 0,F=S===void 0?T:void 0;if(J)for(let f of J){S??=f,F??=f;let W=this.relations.get(f);if(W){if(W.size===1)this.relations.delete(f);else W.delete(T);this.contents.delete(this.makeContentKey(S,F))}}this.relations.set(T,new Set($));for(let f of $){let W=this.relations.get(f);if(W)W.add(T);else W=new Set().add(T),this.relations.set(f,W)}}getContentInternal(T){return this.contents.get(T)}setContent(T,$){this.contents.set(T,$)}deleteContent(T){this.contents.delete(T)}constructor(T,$){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!$?.externalStore)this.relations=new Map(T.relations?.map(([J,S])=>[J,new Set(S)])),this.contents=new Map(T.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let J=$.externalStore;if(this.has=(S,F)=>J.has(S,F),this.addRelation=(S,F)=>{J.addRelation(S,F)},this.deleteRelation=(S,F)=>{J.deleteRelation(S,F)},this.replaceRelationsSafely=(S,F)=>{J.replaceRelationsSafely(S,F)},this.replaceRelationsUnsafely=(S,F)=>{J.replaceRelationsUnsafely(S,F)},this.getRelatedKeys=(S)=>J.getRelatedKeys(S),J.getContent)this.getContentInternal=(S)=>{return J.getContent(S)},this.setContent=(S,F)=>{J.setContent(S,F)},this.deleteContent=(S)=>{J.deleteContent(S)};for(let[S,F]of T.relations??[]){let f=this.isAType?.(S)?S:void 0,W=f===void 0?S:void 0;for(let A of F)f??=A,W??=A,this.addRelation(f,W)}for(let[S,F]of T.contents??[])this.setContent(S,F)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,$])=>[T,[...$]]),contents:[...this.contents.entries()]}}set(...T){let $,J,S;switch(T.length){case 1:{let F=T[0];$=F[this.a],J=F[this.b],S=void 0;break}case 2:{let F=T[0];if(typeof F==="string")[$,J]=T;else $=F[this.a],J=F[this.b],S=T[1];break}default:{$=T[0],J=T[1],S=T[2];break}}switch(this.cardinality){case"1:1":{let F=this.getRelatedKey($);if(F&&F!==J)this.delete($,F)}case"1:n":{let F=this.getRelatedKey(J);if(F&&F!==$)this.delete(F,J)}break;case"n:n":}if(S){let F=this.makeContentKey($,J);this.setContent(F,S)}return this.addRelation($,J),this}delete(T,$){$=typeof $==="string"?$:T[this.b];let J=typeof T==="string"?T:T[this.a];if(J===void 0&&typeof $==="string"){let S=this.getRelatedKeys($);if(S)for(let F of S)this.delete(F,$)}if(typeof J==="string"&&$===void 0){let S=this.getRelatedKeys(J);if(S)for(let F of S)this.delete(J,F)}if(typeof J==="string"&&typeof $==="string"){this.deleteRelation(J,$);let S=this.makeContentKey(J,$);this.deleteContent(S)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((S)=>`"${S}"`).join(", ")}). Only one related key was expected.`);let J;for(let S of $){J=S;break}return J}}replaceRelations(T,$,J){let S=!Array.isArray($),F=S?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,F);else this.replaceRelationsSafely(T,F);if(S)for(let f of F){let W=this.makeContentKey(T,f),A=$[f];this.setContent(W,A)}return this}getContent(T,$){let J=this.makeContentKey(T,$);return this.getContentInternal(J)}getRelationEntries(T){let $=T[this.a],J=T[this.b];if($!==void 0&&J===void 0){let S=this.getRelatedKeys($);if(S)return[...S].map((F)=>{return[F,this.getContent($,F)]})}if($===void 0&&J!==void 0){let S=this.getRelatedKeys(J);if(S)return[...S].map((F)=>{return[F,this.getContent(F,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class n$ extends Map{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 DX=(T,$,J,S)=>{let F=b(T),f={parent:F,child:null,on:F.on,loggers:F.loggers,logger:F.logger,config:F.config,atoms:new n$(F.atoms),atomsThatAreDefault:new Set(F.atomsThatAreDefault),families:new n$(F.families),joins:new n$(F.joins),operation:{open:!1},readonlySelectors:new n$(F.readonlySelectors),timelines:new n$(F.timelines),timelineTopics:new uT(F.timelineTopics.toJSON()),trackers:new Map,transactions:new n$(F.transactions),selectorAtoms:new uT(F.selectorAtoms.toJSON()),selectorGraph:new uT(F.selectorGraph.toJSON(),{makeContentKey:(...w)=>w.sort().join(":")}),selectors:new n$(F.selectors),valueMap:new n$(F.valueMap),defaults:F.defaults,disposalTraces:T.disposalTraces.copy(),molecules:new n$(F.molecules),moleculeGraph:new uT(F.moleculeGraph.toJSON(),{makeContentKey:F.moleculeGraph.makeContentKey}),moleculeData:new uT(F.moleculeData.toJSON(),{makeContentKey:F.moleculeData.makeContentKey}),moleculeJoins:new uT(F.moleculeJoins.toJSON(),{makeContentKey:F.moleculeJoins.makeContentKey}),miscResources:new n$(F.miscResources)},W=EX(T,$),A={phase:"building",update:{type:"transaction_update",key:$,id:S,epoch:W===void 0?Number.NaN:W+1,updates:[],params:J,output:void 0},toolkit:{get:(...w)=>OT(X,...w),set:(...w)=>{nT(X,...w)},run:(w,M=Ff())=>hS(X,w,M),find:(w,M)=>a(X,w,M),json:(w)=>iT(X,w),dispose:(...w)=>{TS(X,...w)},env:()=>zX(X)}},X=Object.assign(f,{transactionMeta:A});return F.child=X,T.logger.info("\uD83D\uDEEB","transaction",$,"Building transaction with params:",J),X};function AW(T,$){let J={key:$.key,type:"transaction",run:(f,W)=>{let A=DX(T,$.key,f,W);try{let X=b(T),{toolkit:w}=A.transactionMeta,M=$.do(w,...f);return HX(M,X),M}catch(X){throw u2(S),T.logger.warn("\uD83D\uDCA5","transaction",$.key,"caught:",X),X}},install:(f)=>AW(f,$),subject:new FT},S=b(T);S.transactions.set(J.key,J);let F=U$(J);return T.on.transactionCreation.next(F),F}function EX(T,$){let J=dT(T),S=J?T.transactionMeta.actionContinuities.getRelatedKey($):void 0;return J&&S!==void 0?T.transactionMeta.epoch.get(S):void 0}function cF(T){return AW(AT.STORE,T)}class QX{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new uT({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new uT({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new uT({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new uT({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new Wf(100);molecules=new Map;moleculeJoins=new uT({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new uT({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new uT({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new FT,atomDisposal:new FT,selectorCreation:new FT,selectorDisposal:new FT,timelineCreation:new FT,transactionCreation:new FT,transactionApplying:new e1(null),operationClose:new FT,moleculeCreation:new FT,moleculeDisposal:new FT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new JW("warn",(T,$,J)=>!J.includes("\uD83D\uDD0D"))];logger={error:(...T)=>{for(let $ of this.loggers)$.error(...T)},info:(...T)=>{for(let $ of this.loggers)$.info(...T)},warn:(...T)=>{for(let $ of this.loggers)$.warn(...T)}};constructor(T,$=null){if(this.config={...$?.config,...T},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},dT($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new uT($?.transactionMeta.actionContinuities.toJSON())};for(let[,S]of $.families){if(S.internalRoles?.includes("mutable")||S.internalRoles?.includes("join"))continue;S.install(this)}let J=new Set;for(let[,S]of $.atoms){if(J.has(S.key))continue;if(S.install(this),S.type==="mutable_atom"){let F=iT($,S),f=EJ(S);J.add(F.key),J.add(f.key)}}for(let[,S]of $.readonlySelectors)S.install(this);for(let[,S]of $.selectors){if(J.has(S.key))continue;S.install(this)}for(let[,S]of $.transactions)S.install(this);for(let[,S]of $.timelines)S.install(this)}}}var AT={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new QX({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function GT(T,$){let J,S=T;while(S!==null){switch($.type){case"atom":case"mutable_atom":J=S.atoms.get($.key);break;case"selector":J=S.selectors.get($.key);break;case"readonly_selector":J=S.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":J=S.families.get($.key);break;case"timeline":J=S.timelines.get($.key);break;case"transaction":J=S.transactions.get($.key);break}if(J)return J;S=S.child}throw new eJ($,T)}function _X(T,$,J){let S=T.families.get($.key);if(S===void 0)throw new eJ($,T);let F=S(J),f=b(T);if(F.family){if(dT(f))switch(F.type){case"atom":case"mutable_atom":T.on.atomCreation.next(F);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(F);break}else if(zT(f)&&f.on.transactionApplying.state===null)f.transactionMeta.update.updates.push({type:"state_creation",token:F})}return F}function RX(T,$,J){let S=WT(J),F=`${$.key}(${S})`,f=b(T),W;switch($.type){case"atom_family":case"mutable_atom_family":W=f.atoms.get(F);break;case"selector_family":W=f.selectors.get(F);break;case"readonly_selector_family":W=f.readonlySelectors.get(F);break}if(W)return U$(W);return W}function a(T,$,J){let S=RX(T,$,J);if(S)return S;let F=WT(J),f=T.molecules.get(F);if(!f&&T.config.lifespan==="immortal"){let W=n2($,J);return T.logger.error("\u274C",W.type,W.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),W}if(S=_X(T,$,J),f)b(T).moleculeData.set(F,$.key);return S}function TS(T,...$){let J;if($.length===1)J=$[0];else{let S=$[0],F=$[1];J=a(T,S,F)}try{GT(T,J)}catch(S){T.logger.error("\u274C",J.type,J.key,`could not be disposed because it was not found in the store "${T.config.name}".`);return}switch(J.type){case"atom":case"mutable_atom":XW(T,J);break;case"selector":case"readonly_selector":kX(T,J);break}}var Hf=(T,$)=>b(T).atoms.has($),_7=(T,$)=>b(T).selectors.has($),R7=(T,$)=>b(T).readonlySelectors.has($),UX=(T,$)=>Hf(T,$)||_7(T,$)||R7(T,$);var Of=(T,$)=>{return b($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([S,{source:F}])=>F!==T).map(([S,{source:F}])=>F).filter((S)=>UX($,S))};var wW=(T,$,J)=>{let S=[],F=Of(T,J);while(F.length>0){let f=F.shift();if($.has(f))continue;if($.add(f),!Hf(J,f))F.push(...Of(f,J));else if(!S.includes(f))S.push(f)}return S},VX=(T,$)=>{let J=T.key,S=Of(J,$),F=new Set;return S.flatMap((f)=>Hf($,f)?f:wW(f,F,$))};var BX=(T,$,J,S)=>{let F=b(S);if($.type==="atom"||$.type==="mutable_atom")F.selectorAtoms.set({selectorKey:T,atomKey:$.key}),S.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let f=wW($.key,J,S);S.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${f.map((W)=>`"${W}"`).join(", ")} ]`);for(let W of f)F.selectorAtoms=F.selectorAtoms.set({selectorKey:T,atomKey:W})}J.add($.key)};var zf=(T,$,J)=>({get:(...S)=>{let F=b(J),f;if(S.length===2){let[X,w]=S;f=a(J,X,w)}else[f]=S;let W=GT(J,f),A=hJ(J,W);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${f.key}" =`,A,")"),F.selectorGraph.set({upstreamSelectorKey:f.key,downstreamSelectorKey:T},{source:f.key}),BX(T,f,$,J),A},set:(...S)=>{let F,f;if(S.length===2)F=S[0],f=S[1];else{let X=S[0],w=S[1];f=S[2],F=a(J,X,w)}let W=b(J),A=GT(W,F);Yf(W,A,f)},find:(S,F)=>a(J,S,F),json:(S)=>iT(J,S)});var hF=(T,$,J)=>{let S=b(T),F=new FT,f=new Set,{get:W,find:A,json:X}=zf($.key,f,S),w=()=>{let z=$.get({get:W,find:A,json:X});return P$(b(T),$.key,z,F),f.clear(),z},M={...$,subject:F,install:(z)=>hF(z,$,J),get:w,type:"readonly_selector",...J&&{family:J}};S.readonlySelectors.set($.key,M);let Y=w();T.logger.info("\u2728",M.type,M.key,"=",Y);let G={key:$.key,type:"readonly_selector"};if(J)G.family=J;return G};var gF=(T,$,J)=>{let S=b(T),F=new FT,f=new Set,W=zf($.key,f,S),{find:A,get:X,json:w}=W,M={find:A,get:X,json:w},Y=(L=$.get,j=b(T))=>{let y=L(M);return P$(j,$.key,y,F),f.clear(),y},z={...$,subject:F,install:(L)=>gF(L,$,J),get:Y,set:(L)=>{let j=b(T),y=Y($.get,j),I=Mf(L)(y);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",y,"->",I,")"),P$(j,$.key,I,F),mS(j,$.key),dT(j))F.next({newValue:I,oldValue:y});$.set(W,I)},type:"selector",...J&&{family:J}};S.selectors.set($.key,z);let D=Y();T.logger.info("\u2728",z.type,z.key,"=",D);let _={key:$.key,type:"selector"};if(J)_.family=J;return _};function OJ(T,$){if("set"in $){let F=gF(T,$,void 0);return T.on.selectorCreation.next(F),F}let S=hF(T,$,void 0);return T.on.selectorCreation.next(S),S}function kX(T,$){let J=b(T),{key:S}=$,F=GT(J,$);if(!F.family)T.logger.error("\u274C","selector",S,"Standalone selectors cannot be disposed.");else{if(J.molecules.get(F.family.subKey))J.moleculeData.delete(F.family.subKey,F.family.key);let W;switch($.type){case"selector":J.selectors.delete(S),W={key:F.family.key,type:"selector_family"},GT(T,W).subject.next({type:"state_disposal",subType:"selector",token:$});break;case"readonly_selector":J.readonlySelectors.delete(S),W={key:F.family.key,type:"readonly_selector_family"},GT(T,W).subject.next({type:"state_disposal",subType:"selector",token:$});break}if(J.valueMap.delete(S),J.selectorAtoms.delete(S),J.selectorGraph.delete(S),T.logger.info("\uD83D\uDD25",$.type,S,"deleted"),zT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:$});else T.on.selectorDisposal.next($)}}function mF(T,$,J){let S={key:$.key,type:"selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${WJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let f=new FT,A=Object.assign((X)=>{let w=WT(X),M={key:$.key,subKey:w},Y=`${$.key}(${w})`,G=b(T),z=gF(G,{key:Y,get:$.get(X),set:$.set(X)},M);return f.next({type:"state_creation",token:z}),z},S,{internalRoles:J,subject:f,install:(X)=>mF(X,$),default:(X)=>{return $.get(X)({get:(...M)=>OT(T,...M),find:(M,Y)=>a(T,M,Y),json:(M)=>iT(T,M)})}});return T.families.set($.key,A),S}function yX(T,$,J){return mF(T,{key:`${$.key}:JSON`,get:(F)=>({get:f})=>{let W=f($,F);return J.toJson(W)},set:(F)=>({set:f},W)=>{f($,F,J.fromJson(W))}},["mutable","json"])}var $$=(T)=>JSON.parse(T),WT=(T)=>JSON.stringify(T),kD=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var LX=(T,$)=>{let J=b(T);if(J.operation.open)return J.operation.prev.get($.key);return J.valueMap.get($.key)};var GW=(T,$)=>{let J=b(T);return VX($,T).map((F)=>{let f=J.atoms.get(F);if(f===void 0)throw new Error(`Atom "${F}", a dependency of selector "${$.key}", not found in store "${T.config.name}".`);return f.subject.subscribe(`${$.type}:${$.key}`,(W)=>{T.logger.info("\uD83D\uDCE2",$.type,$.key,"root",F,"went",W.oldValue,"->",W.newValue);let A=LX(J,$),X=hJ(J,$);T.logger.info("\u2728",$.type,$.key,"went",A,"->",X),$.subject.next({newValue:X,oldValue:A})})})};function K$(T,$,J,S){function F(Y){if(T.operation.open){let G=T.on.operationClose.subscribe(`state subscription ${J}`,()=>{G(),S(Y)})}else S(Y)}let f=GT(T,$);T.logger.info("\uD83D\uDC40",f.type,f.key,`Adding subscription "${J}"`);let W=f.type==="selector"||f.type==="readonly_selector",A=null,X=F;if(W)A=GW(T,f),X=(Y)=>{if(A)A.length=0,A.push(...GW(T,f));F(Y)};let w=f.subject.subscribe(J,X);return()=>{if(T.logger.info("\uD83D\uDE48",f.type,f.key,`Removing subscription "${J}"`),w(),A)for(let Y of A)Y()}}var MW=(T,$,J,S)=>{let F=GT(T,$);T.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${J}"`);let f=F.subject.subscribe(J,S);return()=>{T.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${J}" from timeline`),f()}};var YW=(T,$,J,S)=>{let F=GT(T,$);T.logger.info("\uD83D\uDC40","transaction",$.key,`Adding subscription "${J}"`);let f=F.subject.subscribe(J,S);return()=>{T.logger.info("\uD83D\uDE48","transaction",$.key,`Removing subscription "${J}"`),f()}};class $S{Update;initializeState(T,$){let J=`*${T.key}`;$.atoms.delete(J),$.valueMap.delete(J);let S=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,F=N$($,{key:J,default:null},S);if($.parent?.valueMap.has(J)){let f=$.parent.valueMap.get(J);$.valueMap.set(J,f)}return F}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,J){let S=`tracker:${J.config.name}:${zT(J)?J.transactionMeta.update.key:"main"}:${T.key}`,F=OT(J,T);this.unsubscribeFromInnerValue=F.subscribe(S,(f)=>{nT(J,$,f)}),this.unsubscribeFromState=K$(J,T,S,(f)=>{if(f.newValue!==f.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=f.newValue.subscribe(S,(W)=>{nT(J,$,W)})})}updateCore(T,$,J){let S=`tracker:${J.config.name}:${zT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;K$(J,$,S,({newValue:F,oldValue:f})=>{let W=J.timelineTopics.getRelatedKey($.key);if(W){if(J.timelines.get(W)?.timeTraveling){let w=MW(J,{key:W,type:"timeline"},S,(M)=>{w(),nT(J,T,(Y)=>{if(M==="redo"&&F)Y.do(F);else if(M==="undo"&&f)Y.undo(f);return Y})});return}}let A=J.on.operationClose.subscribe(S,()=>{A();let X=OT(J,T),w=F===null?-1:X.getUpdateNumber(F),M=w-X.cacheUpdateNumber;if(F&&M===1)nT(J,T,(Y)=>(Y.do(F),Y));else J.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${X.cacheUpdateNumber+1}, but got ${w}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,$){this.mutableState=T;let J=b($);this.latestUpdateState=this.initializeState(T,J),this.observeCore(T,this.latestUpdateState,J),this.updateCore(T,this.latestUpdateState,J),J.trackers.set(T.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),J.trackers.delete(T.key)}}}function pF(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let S=b(T),F=S.atoms.get($.key);if(F&&F.type==="mutable_atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),U$(F);let f=new FT,W={...$,type:"mutable_atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),pF(w,$,J)},subject:f};if(J)W.family=J;let A=$.default();S.atoms.set(W.key,W),Df(T,$.key),P$(S,$.key,A,f);let X=U$(W);if($.effects){let w=0,M=[];for(let Y of $.effects){let G=Y({setSelf:(z)=>{nT(T,X,z)},onSet:(z)=>K$(T,X,`effect[${w}]`,z)});if(G)M.push(G);++w}W.cleanup=()=>{for(let Y of M)Y()}}if(new $S(X,T),!J)v2(X,$,T);return X}class KW{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=zJ($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=GT($,J),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(S)=>{let{type:F,token:f}=S;if(f.family){let W=$$(f.family.subKey);switch(F){case"state_creation":this.trackers.set(W,new $S(f,$));break;case"state_disposal":{let A=this.trackers.get(W);if(A)A[Symbol.dispose](),this.trackers.delete(W)}break}}})}}function bF(T,$,J){let S={key:$.key,type:"mutable_atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${WJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let f=new FT,A=Object.assign((X)=>{let w=WT(X),M={key:$.key,subKey:w},Y=`${$.key}(${w})`,G=b(T),z={key:Y,default:()=>$.default(X),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)z.effects=$.effects(X);let D=pF(G,z,M);return f.next({type:"state_creation",token:D}),D},S,{subject:f,install:(X)=>bF(X,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:J});return T.families.set($.key,A),yX(T,A,$),new KW(A,T),S}var HW=(T,$)=>{let J=b($),S=`${T.key}:JSON`;return J.families.get(S)};var iT=(T,$)=>{if($.family){let S=b(T),f={key:`${$.family.key}:JSON`,type:"selector_family"},W=GT(S,f),A=JSON.parse($.family.subKey);return a(T,W,A)}return{type:"selector",key:`${$.key}:JSON`}};var 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 JX(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function nF(T,$,J){let S=J.valueMap.get($.key),F=T.valueMap.get($.key);if(S===F){if(S===void 0)return typeof $.default==="function"?$.default():$.default;J.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let f=$.toJson(S),W=$.fromJson(f);return T.valueMap.set($.key,W),new $S($,J),W}return F}function P$(T,$,J,S){let F=T.valueMap.get($);if(F instanceof qF)F.use(J);if(J instanceof Promise){let f=new qF(J);return T.valueMap.set($,f),f.then((W)=>{P$(T,$,W,S),S.next({newValue:W,oldValue:f})}).catch((W)=>{T.logger.error("\uD83D\uDCA5","state",$,"rejected:",W)}),f}return T.valueMap.set($,J),J}var l2=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&zT($)){let{parent:S}=$;J=nF($,T,S)}return J},TX=(T,$)=>{let J=$.valueMap.get(T);if(J instanceof qF){let S=J,F=$.selectors.get(T)??$.readonlySelectors.get(T);if(F)S.use(F.get());return}if($.operation.open)$.operation.prev.set(T,J);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var FX=(T,$)=>{return b(T).atomsThatAreDefault.has($)},Df=(T,$)=>{let J=b(T);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add($)},fX=(T,$)=>{let J=b(T);J.atomsThatAreDefault=new Set(b(T).atomsThatAreDefault),J.atomsThatAreDefault.delete($)};function N$(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let S=b(T),F=S.atoms.get($.key);if(F&&F.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),U$(F);let f=new FT,W={...$,type:"atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),N$(w,$,J)},subject:f};if(J)W.family=J;let A=$.default;if($.default instanceof Function)A=$.default();S.atoms.set(W.key,W),Df(T,$.key),P$(S,$.key,A,f);let X=U$(W);if($.effects){let w=0,M=[];for(let Y of $.effects){let G=Y({setSelf:(z)=>{nT(T,X,z)},onSet:(z)=>K$(T,X,`effect[${w}]`,z)});if(G)M.push(G);++w}W.cleanup=()=>{for(let Y of M)Y()}}return X}function c2(T,$){if("mutable"in $){let F=pF(T,$,void 0);return T.on.atomCreation.next(F),F}let S=N$(T,$,void 0);return T.on.atomCreation.next(S),S}function XW(T,$){let J=b(T),{key:S,family:F}=$,f=GT(J,$);if(!F)T.logger.error("\u274C","atom",S,"Standalone atoms cannot be disposed.");else{f.cleanup?.();let W=T.valueMap.get(f.key),A=GT(T,{key:F.key,type:"atom_family"}),X={type:"state_disposal",subType:"atom",token:$,value:W};A.subject.next(X);let w=zT(J);if(J.atoms.delete(S),J.valueMap.delete(S),J.selectorAtoms.delete(S),J.atomsThatAreDefault.delete(S),T.timelineTopics.delete(S),$.type==="mutable_atom"){let M=EJ($);XW(T,M),T.trackers.delete(S)}if(T.logger.info("\uD83D\uDD25","atom",S,"deleted"),w&&J.transactionMeta.phase==="building"){let M=J.transactionMeta.update.updates.at(-1);if(!(M?.type==="molecule_disposal"&&M.values.some(([z])=>z===f.family?.key)))J.transactionMeta.update.updates.push(X)}else T.on.atomDisposal.next($)}}class lT extends Set{mode="record";subject=new FT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,$=0){super(T);if(T instanceof lT)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if($)this.cacheLimit=$,this.cache=new Array($),this.subscribe("auto cache",(J)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=J})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let $=new lT(T.members,T.cacheLimit);return $.cache=T.cache,$.cacheIdx=T.cacheIdx,$.cacheUpdateNumber=T.cacheUpdateNumber,$}add(T){let $=super.add(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${WT(T)}`);return $}clear(){let T=this.mode==="record"?[...this]:null;if(super.clear(),T)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(T)}`)}delete(T){let $=super.delete(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${WT(T)}`);return $}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new lT(this);let $=this.child._subscribe("transaction",(J)=>{this.transactionUpdates?.push(J)});try{if(T(this.child)){for(let S of this.transactionUpdates)this.doStep(S);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(J){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",J),J}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,$){return this.subject.subscribe(T,$)}subscribe(T,$){return this.subject.subscribe(T,(J)=>{$(`${this.cacheUpdateNumber}=${J}`)})}emit(T){this.subject.next(T)}doStep(T){let $=T.indexOf(":"),J=T.substring(0,$),S=T.substring($+1);switch(J){case"add":this.add(JSON.parse(S));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(S));break;case"tx":for(let F of S.split(";"))this.doStep(F)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),J=Number(T.substring(0,$)),S=J-this.cacheUpdateNumber;if(S>0){if(S===1){this.mode="playback";let f=T.substring($+1);return this.doStep(f),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(S)<this.cacheLimit){let f=this.cacheIdx+S;if(this.cache[f]===T)return null;this.mode="playback";let A=!1;while(!A){this.cacheIdx%=this.cacheLimit;let w=this.cache[this.cacheIdx];if(this.cacheIdx--,!w)return"OUT_OF_RANGE";this.undo(w),A=this.cacheIdx===f-1}let X=T.substring($+1);return this.doStep(X),this.mode="record",this.cacheUpdateNumber=J,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),J=T.substring(0,$),S=T.substring($+1);switch(J){case"add":this.delete(JSON.parse(S));break;case"del":this.add(JSON.parse(S));break;case"clear":{let F=JSON.parse(S);for(let f of F)this.add(f);break}case"tx":{let F=S.split(";");for(let f=F.length-1;f>=0;f--)this.undoStep(F[f])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let S=T.substring($+1);return this.undoStep(S),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class vF{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(T,$){let J=this.toolkit;this.toolkit=T,$(this),this.toolkit=J}store;realm;[Symbol.dispose](){}constructor(T,$,J=AT.STORE){this.store=J,this.realm=new SW(J),this.options=T,this.defaultContent=$,this.store.miscResources.set(`join:${T.key}`,this),this.realm.allocate("root",T.key),this.toolkit={get:(...Q)=>OT(J,...Q),set:(...Q)=>{nT(J,...Q)},find:(...Q)=>a(J,...Q),json:(Q)=>iT(J,Q)};let S=T.between[0],F=T.between[1],f=bF(J,{key:`${T.key}/relatedKeys`,default:()=>new lT,mutable:!0,fromJson:(Q)=>lT.fromJSON(Q),toJson:(Q)=>Q.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:f};let W=({get:Q},V)=>Q(f,V),A=({set:Q},V,B)=>{if(!this.store.molecules.has(WT(V)))this.realm.allocate(T.key,V);Q(f,V,(U)=>U.add(B)),Q(f,B,(U)=>U.add(V))},X=({set:Q},V,B)=>{Q(f,V,(U)=>{return U.delete(B),U}),Q(f,B,(U)=>{return U.delete(V),U})},w=(Q,V,B)=>{let{find:U,get:h,set:l}=Q,R=U(f,V),s=h(R);for(let p of s){if(B.includes(p))continue;l(f,p,(ET)=>{return ET.delete(V),ET})}l(R,(p)=>{return p.transaction(($T)=>{$T.clear();for(let ET of B){let hT=W(Q,ET),k$=hT.has(V);if(this.relations.cardinality==="1:n"){let HJ=[];for(let N of hT){if(N===V)continue;let i=W(Q,N);if(i.delete(ET),i.size===0)HJ.push(N)}if(!k$&&hT.size>0)hT.clear();for(let N of HJ){let i=[ET,N].sort(),KT=`"${i[0]}:${i[1]}"`;this.molecules.delete(KT)}}if(!k$)hT.add(V);$T.add(ET)}return!0}),p})},M=(Q,V,B)=>{let{set:U}=Q;U(f,V,(h)=>{return h.transaction((l)=>{for(let R of B)l.add(R);return!0}),h});for(let h of B)U(f,h,(l)=>{return l.add(V),l});return!0},Y=(Q,V,B)=>{let U=W(Q,V);return B?U.has(B):U.size>0},G={getRelatedKeys:(Q)=>W(this.toolkit,Q),addRelation:(Q,V)=>{this.store.moleculeJoins.set(Q,T.key),this.store.moleculeJoins.set(V,T.key),A(this.toolkit,Q,V)},deleteRelation:(Q,V)=>{X(this.toolkit,Q,V)},replaceRelationsSafely:(Q,V)=>{w(this.toolkit,Q,V)},replaceRelationsUnsafely:(Q,V)=>{M(this.toolkit,Q,V)},has:(Q,V)=>Y(this.toolkit,Q,V)},z,D;if($){D=zJ(J,{key:`${T.key}/content`,default:$},["join","content"]);let Q=({get:U},h)=>U(D,h),V=({set:U},h,l)=>{U(D,h,l)};z=Object.assign(G,{getContent:(U)=>{return Q(this.toolkit,U)},setContent:(U,h)=>{V(this.toolkit,U,h)},deleteContent:(U)=>{this.realm.deallocate(U)}})}else z=G;let _=new uT(T,{externalStore:z,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...Q)=>{let[V,B]=Q,U=Q.sort(),h=`${U[0]}:${U[1]}`,l=J.molecules.get(WT(V)),R=J.molecules.get(WT(B));if(!l)this.realm.allocate(T.key,V);if(!R)this.realm.allocate(T.key,B);return this.realm.allocate(V,h,"all"),this.realm.claim(B,h),this.store.moleculeJoins.set(h,T.key),h}}),L=()=>DJ(J,{key:`${T.key}/singleRelatedKey`,get:(Q)=>({get:V})=>{let B=V(f,Q);for(let U of B)return U;return null}},["join","keys"]),j=()=>{return DJ(J,{key:`${T.key}/multipleRelatedKeys`,get:(Q)=>({get:V})=>{let B=HW(f,J);return V(B,Q).members}},["join","keys"])},y=()=>DJ(J,{key:`${T.key}/singleRelatedEntry`,get:(Q)=>({get:V})=>{let B=V(f,Q);for(let U of B){let h=_.isAType?.(Q)?Q:void 0,l=h===void 0?Q:void 0;h??=U,l??=U;let R=_.makeContentKey(h,l),s=V(D,R);return[U,s]}return null}},["join","entries"]),I=()=>DJ(J,{key:`${T.key}/multipleRelatedEntries`,get:(Q)=>({get:V})=>{let B=HW(f,J);return V(B,Q).members.map((h)=>{let l=_.isAType?.(Q)?Q:void 0,R=l===void 0?Q:void 0;l??=h,R??=h;let s=_.makeContentKey(l,R),p=V(D,s);return[h,p]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let Q=L(),V=`${S}KeyOf${QT(F)}`,B=`${F}KeyOf${QT(S)}`,U={[V]:Q,[B]:Q},h;if($){let l=y(),R=`${S}EntryOf${QT(F)}`,s=`${F}EntryOf${QT(S)}`,p={[R]:l,[s]:l};h=Object.assign(U,p)}else h=U;this.relations=_,this.states=h;break}case"1:n":{let Q=L(),V=j(),B=`${S}KeyOf${QT(F)}`,U=`${F}KeysOf${QT(S)}`,h={[B]:Q,[U]:V},l;if($){let R=y(),s=I(),p=`${S}EntryOf${QT(F)}`,$T=`${F}EntriesOf${QT(S)}`,ET={[p]:R,[$T]:s};l=Object.assign(h,ET)}else l=h;this.relations=_,this.states=l;break}case"n:n":{let Q=j(),V=`${S}KeysOf${QT(F)}`,B=`${F}KeysOf${QT(S)}`,U={[V]:Q,[B]:Q},h;if($){let l=I(),R=`${S}EntriesOf${QT(F)}`,s=`${F}EntriesOf${QT(S)}`,p={[R]:l,[s]:l};h=Object.assign(U,p)}else h=U;this.relations=_,this.states=h}}}}function vS(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 vF(F.options,F.defaultContent,$),$.joins.set(T.key,J)}return J}function PF(T,$,J){let S=vS(T,J),F=b(J);if(zT(F)){let{toolkit:f}=F.transactionMeta;S.transact(f,({relations:W})=>{$(W)})}else $(S.relations)}function Xf(T,$,J){let S=vS(T,J),F;switch(T.cardinality){case"1:1":{let f=`${T.a}KeyOf${QT(T.b)}`,W=`${T.b}KeyOf${QT(T.a)}`;F={get[f](){let X=S.states[f];return a(J,X,$)},get[W](){let X=S.states[W];return a(J,X,$)}};let A=`${T.a}EntryOf${QT(T.b)}`;if(A in S.states){let X=`${T.b}EntryOf${QT(T.a)}`;Object.assign(F,{get[A](){let w=S.states[A];return a(J,w,$)},get[X](){let w=S.states[X];return a(J,w,$)}})}break}case"1:n":{let f=`${T.a}KeyOf${QT(T.b)}`,W=`${T.b}KeysOf${QT(T.a)}`;F={get[f](){let X=S.states[f];return a(J,X,$)},get[W](){let X=S.states[W];return a(J,X,$)}};let A=`${T.a}EntryOf${QT(T.b)}`;if(A in S.states){let X=`${T.b}EntriesOf${QT(T.a)}`;Object.assign(F,{get[A](){let w=S.states[A];return a(J,w,$)},get[X](){let w=S.states[X];return a(J,w,$)}})}break}case"n:n":{let f=`${T.a}KeysOf${QT(T.b)}`,W=`${T.b}KeysOf${QT(T.a)}`;F={get[f](){let X=S.states[f];return a(J,X,$)},get[W](){let X=S.states[W];return a(J,X,$)}};let A=`${T.a}EntriesOf${QT(T.b)}`;if(A in S.states){let X=`${T.b}EntriesOf${QT(T.a)}`;Object.assign(F,{get[A](){let w=S.states[A];return a(J,w,$)},get[X](){let w=S.states[X];return a(J,w,$)}})}}}return F}function o2(T,$){return vS(T,$).core.relatedKeysAtoms}class NX extends Map{set(T,$){if(this.has(T))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:T,value:$}),this;return super.set(T,$)}clear(){throw new Error("Cannot clear an InvariantMap")}}class Ef{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(T){this.key=T}static existing=new NX;static create(T,$){let J=new Ef(T),{type:S,globals:F,actions:f,perspectives:W}=$(J),A={type:S,key:T,globals:F,actions:f,perspectives:W};return Ef.existing.set(T,A),A}add(...T){switch(T[0].type){case"atom":case"mutable_atom":this.globals.push(...T);break;case"transaction":this.actions.push(...T);break;case"atom_family":case"mutable_atom_family":{let[J,S]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:J,viewAtoms:S})}break}return this}}function h_(T){let{key:$,config:J}=T,S=Ef.create($,J),{actions:F}=S;for(let f of F)OX(AT.STORE,$,f.key);return GX(AT.STORE,$,-1),S}var n_=qS({key:"usersInRoomIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),OW=qS({key:"roomIndex",default:()=>new lT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),k7={enteredAtEpoch:0},oF=Af({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},k7),c_=wf({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=p2(oF);return[$(J,T)]}});import{spawn as U7}from"child_process";class PS{listeners;globalListeners;handleEvent(T,...$){for(let S of this.globalListeners)S(T,...$);let J=this.listeners.get(T);if(J)for(let S of J)S(...$)}id="no_id_retrieved";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 zW extends PS{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[$,...J]=T;switch($){case"i":this.logger.info(...J);break;case"w":this.logger.warn(...J);break;case"e":this.logger.error(...J);break;default:return}}}constructor(T,$,J){super((S,...F)=>{let f=JSON.stringify([S,...F])+"\x03",W=(A)=>{if(A.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",W)};return this.process.stdin.once("error",W),this.process.stdin.write(f),this});if(this.process=T,this.key=$,this.logger=J??{info:(...S)=>{console.info(this.id,this.key,...S)},warn:(...S)=>{console.warn(this.id,this.key,...S)},error:(...S)=>{console.error(this.id,this.key,...S)}},this.process.stdout.on("data",(S)=>{let F=S.toString();if(F==="ALIVE")return;this.unprocessedEvents.push(...F.split("\x03"));let f=this.unprocessedEvents.shift();this.incompleteData+=f??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let W=$$(this.incompleteData);this.handleEvent(...W);while(this.unprocessedEvents.length>0){let A=this.unprocessedEvents.shift();if(A){if(this.unprocessedEvents.length===0)this.incompleteData=A;W=$$(A),this.handleEvent(...W)}}this.incompleteData=""}catch(W){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(W)}}),this.process.stderr.on("data",(S)=>{let F=S.toString();this.unprocessedLogs.push(...F.split("\x03"));let f=this.unprocessedLogs.shift();this.incompleteLog+=f??"";try{let W=$$(this.incompleteLog);this.handleLog(W);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)W=$$(this.incompleteLog),this.handleLog(W)}catch(W){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(W),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class CX extends PS{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new FT,this.out=new FT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class DW extends PS{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(WT(T.map(($)=>$ instanceof lT?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...$)=>{let J=JSON.stringify([T,...$]);return this.process.stdout.write(J+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let $=T.toString();this.unprocessedEvents.push(...$.split("\x03"));let J=this.unprocessedEvents.shift();this.incompleteData+=J??"";try{let S=$$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",S),this.handleEvent(...S);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;let f=$$(F);this.handleEvent(...f)}}this.incompleteData=""}catch(S){if(S instanceof Error)this.logger.error("\u2757",S.message,S.cause,S.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let $=new CX(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let J of this.relayServices){let S=J($);if(S)$.disposalFunctions.push(S)}this.on(`user:${T}`,(...J)=>{$.in.next(J)}),$.out.subscribe("socket",(J)=>{this.emit(...J)})}),this.on("user-leaves",(T)=>{let $=this.relays.get(T);if(this.off(`relay:${T}`),$)$.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var EW=rJ({key:"roomArguments",default:["echo",["Hello World!"]]}),xX=wf({key:"room",get:(T)=>async({get:$,find:J})=>{let S=J(EW,T),F=$(S),[f,W]=F,A=await new Promise((X)=>{let w=U7(f,W,{env:process.env}),M=(Y)=>{if(Y.toString()==="ALIVE")w.stdout.off("data",M),X(w)};w.stdout.on("data",M)});return new zW(A,T)}});var HR=cF({key:"createRoom",do:({get:T,set:$,find:J},S,F,f)=>{let W=f?[F,f]:[F],A=J(EW,S);$(A,W),$(OW,(M)=>M.add(S));let X=J(xX,S);return T(X)}}),OR=cF({key:"joinRoom",do:(T,$,J,S)=>{let F={enteredAtEpoch:S};return PF(oF,(f)=>{f.set({room:$,user:J},F)},T.env().store),F}}),zR=cF({key:"leaveRoom",do:(T,$,J)=>{PF(oF,(S)=>{S.delete({room:$,user:J})},T.env().store)}}),DR=cF({key:"destroyRoom",do:(T,$)=>{PF(oF,(J)=>{J.delete({room:$})},T.env().store),T.set(OW,(J)=>(J.delete($),J))}});function QW(T,$){return $.map((J)=>{switch(J.type){case"transaction_update":{let S=QW(T,J.updates);return{...J,updates:S}}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 _R=rJ({key:"redactor",default:{occlude:(T)=>T}}),nS=rJ({key:"unacknowledgedUpdates",default:()=>[]});var jX=rJ({key:"sockets",default:null}),VR=qS({key:"socketsIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),BR=qS({key:"usersIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),_W=Af({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function IX(T,$,J,S){let F=$.key;return function f(){let W=[];for(let X of $.globals){let w=X.type==="mutable_atom"?iT(T,X):X,M=OT(T,w);W.push(w,M)}for(let X of $.perspectives){let{viewAtoms:w,resourceAtoms:M}=X,Y=a(T,w,J),G=OT(T,Y);T.logger.info("\uD83D\uDC41","atom",M.key,`${J} can see`,{viewAtoms:w,resourceAtoms:M,userView:G});for(let z of G){let D=z.type==="mutable_atom"?iT(T,z):z,_=OT(T,D);W.push(D,_)}}let A=dT(T)?T.transactionMeta.epoch.get(F)??null:null;S?.emit(`continuity-init:${F}`,A,W)}}function ZX(T,$,J){let S=$.key;return function F(f){T.logger.info("\uD83D\uDECE\uFE0F","continuity",S,"received",f);let{key:W,id:A}=f,X=`tx-run:${W}:${A}`,w=`${X}:start`,M=`${X}:end`;performance.mark(w);try{hS(T,{type:"transaction",key:W},A)(...f.params)}catch(G){if(G instanceof Error)T.logger.error("\u274C","continuity",S,`failed to run transaction ${W} from ${J} with update ${A}`,G.message)}performance.mark(M);let Y=performance.measure(X,w,M);T?.logger.info("\uD83D\uDE80","transaction",W,A,J,Y.duration)}}function qX(T,$,J,S){let F=$.key;return function f(W){if(T.logger.info("\uD83D\uDC4D","continuity",F,`${J} acknowledged epoch ${W}`),S[0]?.epoch===W)nT(T,nS,J,(X)=>{return X.shift(),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,X.length,"items"),X})}}function bX(T,$,J,S){let F=$.key,f=[];for(let W of $.actions){let A=YW(T,W,`sync-continuity:${F}:${J}`,(X)=>{try{let w=$.globals.map((G)=>{if(G.type==="atom")return G.key;return EJ(G).key}).concat($.perspectives.flatMap((G)=>{let{viewAtoms:z}=G,D=a(T,z,J);return OT(T,D).map((L)=>{return L.type==="mutable_atom"?"*"+L.key:L.key})})),M=QW(w,X.updates),Y={...X,updates:M};nT(T,nS,J,(G)=>{if(Y)G.push(Y),G.sort((z,D)=>z.epoch-D.epoch),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,G.length,"items");return G}),S?.emit(`tx-new:${F}`,Y)}catch(w){if(w instanceof Error)T.logger.error("\u274C","continuity",F,`${J} failed to send update from transaction ${W.key} to ${J}`,w.message)}});f.push(A)}return f}function hX(T,$,J,S){let F=$.key,f=[];for(let W of $.perspectives){let{viewAtoms:A}=W,X=a(T,A,J),w=K$(T,X,`sync-continuity:${F}:${J}:perspective:${W.resourceAtoms.key}`,({oldValue:M,newValue:Y})=>{let G=M.map((L)=>L.key),z=Y.map((L)=>L.key),D=M.filter((L)=>!z.includes(L.key)),_=Y.filter((L)=>!G.includes(L.key)).flatMap((L)=>{let j=L.type==="mutable_atom"?iT(T,L):L,y=OT(T,j);return[j,y]});if(T.logger.info("\uD83D\uDC41","atom",W.resourceAtoms.key,`${J} has a new perspective`,{oldKeys:G,newKeys:z,revealed:_,concealed:D}),_.length>0)S?.emit(`reveal:${F}`,_);if(D.length>0)S?.emit(`conceal:${F}`,D)});f.push(w)}return f}function Tk({socket:T,store:$=AT.STORE}){return function J(S){let F=T,f=S.key,W=Xf(_W,`socket::${F.id}`,$).userKeyOfSocket,A=OT($,W);if(!A)return $.logger.error("\u274C","continuity",f,`Tried to create a synchronizer for a socket (${F.id}) that is not connected to a user.`),()=>{};let X=Xf(_W,A,$).socketKeyOfUser,w=K$($,X,`sync-continuity:${f}:${A}`,({newValue:j})=>{if($.logger.info("\uD83D\uDC4B","continuity",f,`seeing ${A} on new socket ${j}`),j===null){$.logger.warn("\u274C","continuity",f,`User (${A}) is not connected to a socket, waiting for them to reappear.`);return}let y=a($,jX,j);F=OT($,y);for(let Q of M)F?.emit(`tx-new:${f}`,Q)}),M=OT($,nS,A),Y=[],G=hX($,S,A,F),z=bX($,S,A,F);Y.push(...G,...z);let D=IX($,S,A,T);F.off(`get:${f}`,D),F.on(`get:${f}`,D);let _=ZX($,S,A);F.off(`tx-run:${f}`,_),F.on(`tx-run:${f}`,_);let L=qX($,S,A,M);return F?.on(`ack:${f}`,L),()=>{for(let j of Y)j();F?.off(`ack:${f}`,L),F?.off(`get:${f}`,D),F?.off(`tx-run:${f}`,_)}}}var vX=Symbol("Let zodToJsonSchema decide on which parser to use");var mX={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},PX=(T)=>typeof T==="string"?{...mX,name:T}:{...mX,...T};var nX=(T)=>{let $=PX(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([S,F])=>[F._def,{def:F._def,path:[...$.basePath,$.definitionPath,S],jsonSchema:void 0}]))}};function RW(T,$,J,S){if(!S?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function MT(T,$,J,S,F){T[$]=J,RW(T,$,S,F)}var YT;(function(T){T.assertEqual=(F)=>F;function $(F){}T.assertIs=$;function J(F){throw new Error}T.assertNever=J,T.arrayToEnum=(F)=>{let f={};for(let W of F)f[W]=W;return f},T.getValidEnumValues=(F)=>{let f=T.objectKeys(F).filter((A)=>typeof F[F[A]]!=="number"),W={};for(let A of f)W[A]=F[A];return T.objectValues(W)},T.objectValues=(F)=>{return T.objectKeys(F).map(function(f){return F[f]})},T.objectKeys=typeof Object.keys==="function"?(F)=>Object.keys(F):(F)=>{let f=[];for(let W in F)if(Object.prototype.hasOwnProperty.call(F,W))f.push(W);return f},T.find=(F,f)=>{for(let W of F)if(f(W))return W;return},T.isInteger=typeof Number.isInteger==="function"?(F)=>Number.isInteger(F):(F)=>typeof F==="number"&&isFinite(F)&&Math.floor(F)===F;function S(F,f=" | "){return F.map((W)=>typeof W==="string"?`'${W}'`:W).join(f)}T.joinValues=S,T.jsonStringifyReplacer=(F,f)=>{if(typeof f==="bigint")return f.toString();return f}})(YT||(YT={}));var UW;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(UW||(UW={}));var n=YT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),_J=(T)=>{switch(typeof T){case"undefined":return n.undefined;case"string":return n.string;case"number":return isNaN(T)?n.nan:n.number;case"boolean":return n.boolean;case"function":return n.function;case"bigint":return n.bigint;case"symbol":return n.symbol;case"object":if(Array.isArray(T))return n.array;if(T===null)return n.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return n.promise;if(typeof Map!=="undefined"&&T instanceof Map)return n.map;if(typeof Set!=="undefined"&&T instanceof Set)return n.set;if(typeof Date!=="undefined"&&T instanceof Date)return n.date;return n.object;default:return n.unknown}},C=YT.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),V7=(T)=>{return JSON.stringify(T,null,2).replace(/"([^"]+)":/g,"$1:")};class C$ extends Error{get errors(){return this.issues}constructor(T){super();this.issues=[],this.addIssue=(J)=>{this.issues=[...this.issues,J]},this.addIssues=(J=[])=>{this.issues=[...this.issues,...J]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=T}format(T){let $=T||function(F){return F.message},J={_errors:[]},S=(F)=>{for(let f of F.issues)if(f.code==="invalid_union")f.unionErrors.map(S);else if(f.code==="invalid_return_type")S(f.returnTypeError);else if(f.code==="invalid_arguments")S(f.argumentsError);else if(f.path.length===0)J._errors.push($(f));else{let W=J,A=0;while(A<f.path.length){let X=f.path[A];if(A!==f.path.length-1)W[X]=W[X]||{_errors:[]};else W[X]=W[X]||{_errors:[]},W[X]._errors.push($(f));W=W[X],A++}}};return S(this),J}static assert(T){if(!(T instanceof C$))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,YT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=($)=>$.message){let $={},J=[];for(let S of this.issues)if(S.path.length>0)$[S.path[0]]=$[S.path[0]]||[],$[S.path[0]].push(T(S));else J.push(T(S));return{formErrors:J,fieldErrors:$}}get formErrors(){return this.flatten()}}C$.create=(T)=>{return new C$(T)};var oS=(T,$)=>{let J;switch(T.code){case C.invalid_type:if(T.received===n.undefined)J="Required";else J=`Expected ${T.expected}, received ${T.received}`;break;case C.invalid_literal:J=`Invalid literal value, expected ${JSON.stringify(T.expected,YT.jsonStringifyReplacer)}`;break;case C.unrecognized_keys:J=`Unrecognized key(s) in object: ${YT.joinValues(T.keys,", ")}`;break;case C.invalid_union:J="Invalid input";break;case C.invalid_union_discriminator:J=`Invalid discriminator value. Expected ${YT.joinValues(T.options)}`;break;case C.invalid_enum_value:J=`Invalid enum value. Expected ${YT.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 YT.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,YT.assertNever(T)}return{message:J}},oX=oS;function B7(T){oX=T}function Qf(){return oX}var _f=(T)=>{let{data:$,path:J,errorMaps:S,issueData:F}=T,f=[...J,...F.path||[]],W={...F,path:f};if(F.message!==void 0)return{...F,path:f,message:F.message};let A="",X=S.filter((w)=>!!w).slice().reverse();for(let w of X)A=w(W,{data:$,defaultError:A}).message;return{...F,path:f,message:A}},y7=[];function m(T,$){let J=Qf(),S=_f({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===oS?void 0:oS].filter((F)=>!!F)});T.common.issues.push(S)}class H${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,$){let J=[];for(let S of $){if(S.status==="aborted")return e;if(S.status==="dirty")T.dirty();J.push(S.value)}return{status:T.value,value:J}}static async mergeObjectAsync(T,$){let J=[];for(let S of $){let F=await S.key,f=await S.value;J.push({key:F,value:f})}return H$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let S of $){let{key:F,value:f}=S;if(F.status==="aborted")return e;if(f.status==="aborted")return e;if(F.status==="dirty")T.dirty();if(f.status==="dirty")T.dirty();if(F.value!=="__proto__"&&(typeof f.value!=="undefined"||S.alwaysSet))J[F.value]=f.value}return{status:T.value,value:J}}}var e=Object.freeze({status:"aborted"}),gS=(T)=>({status:"dirty",value:T}),E$=(T)=>({status:"valid",value:T}),VW=(T)=>T.status==="aborted",BW=(T)=>T.status==="dirty",JS=(T)=>T.status==="valid",dF=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function Rf(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)}function tX(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J}var o;(function(T){T.errToObj=($)=>typeof $==="string"?{message:$}:$||{},T.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(o||(o={}));var tF,iF;class r${constructor(T,$,J,S){this._cachedPath=[],this.parent=T,this.data=$,this._path=J,this._key=S}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var cX=(T,$)=>{if(JS($))return{success:!0,data:$.value};else{if(!T.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let J=new C$(T.common.issues);return this._error=J,this._error}}}};function JT(T){if(!T)return{};let{errorMap:$,invalid_type_error:J,required_error:S,description:F}=T;if($&&(J||S))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:F};return{errorMap:(W,A)=>{var X,w;let{message:M}=T;if(W.code==="invalid_enum_value")return{message:M!==null&&M!==void 0?M:A.defaultError};if(typeof A.data==="undefined")return{message:(X=M!==null&&M!==void 0?M:S)!==null&&X!==void 0?X:A.defaultError};if(W.code!=="invalid_type")return{message:A.defaultError};return{message:(w=M!==null&&M!==void 0?M:J)!==null&&w!==void 0?w:A.defaultError}},description:F}}class ST{get description(){return this._def.description}_getType(T){return _J(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:_J(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new H$,ctx:{common:T.parent.common,data:T.data,parsedType:_J(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(dF($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(T){let $=this._parse(T);return Promise.resolve($)}parse(T,$){let J=this.safeParse(T,$);if(J.success)return J.data;throw J.error}safeParse(T,$){var J;let S={common:{issues:[],async:(J=$===null||$===void 0?void 0:$.async)!==null&&J!==void 0?J:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:_J(T)},F=this._parseSync({data:T,path:S.path,parent:S});return cX(S,F)}"~validate"(T){var $,J;let S={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:_J(T)};if(!this["~standard"].async)try{let F=this._parseSync({data:T,path:[],parent:S});return JS(F)?{value:F.value}:{issues:S.common.issues}}catch(F){if((J=($=F===null||F===void 0?void 0:F.message)===null||$===void 0?void 0:$.toLowerCase())===null||J===void 0?void 0:J.includes("encountered"))this["~standard"].async=!0;S.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:S}).then((F)=>JS(F)?{value:F.value}:{issues:S.common.issues})}async parseAsync(T,$){let J=await this.safeParseAsync(T,$);if(J.success)return J.data;throw J.error}async safeParseAsync(T,$){let J={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:_J(T)},S=this._parse({data:T,path:J.path,parent:J}),F=await(dF(S)?S:Promise.resolve(S));return cX(J,F)}refine(T,$){let J=(S)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(S);else return $};return this._refinement((S,F)=>{let f=T(S),W=()=>F.addIssue({code:C.custom,...J(S)});if(typeof Promise!=="undefined"&&f instanceof Promise)return f.then((A)=>{if(!A)return W(),!1;else return!0});if(!f)return W(),!1;else return!0})}refinement(T,$){return this._refinement((J,S)=>{if(!T(J))return S.addIssue(typeof $==="function"?$(J,S):$),!1;else return!0})}_refinement(T){return new c$({schema:this,typeName: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 RJ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return l$.create(this)}promise(){return WS.create(this,this._def)}or(T){return uS.create([this,T],this._def)}and(T){return lS.create(this,T,this._def)}transform(T){return new c$({...JT(this._def),schema:this,typeName:x.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new eS({...JT(this._def),innerType:this,defaultValue:$,typeName:x.ZodDefault})}brand(){return new Uf({typeName:x.ZodBranded,type:this,...JT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new TF({...JT(this._def),innerType:this,catchValue:$,typeName:x.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return eF.create(this,T)}readonly(){return $F.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var L7=/^c[^\s-]{8,}$/i,N7=/^[0-9a-z]+$/,C7=/^[0-9A-HJKMNP-TV-Z]{26}$/i,x7=/^[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,j7=/^[a-z0-9_-]{21}$/i,I7=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Z7=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,q7=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,b7="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",kW,h7=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,m7=/^(?:(?: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])$/,v7=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,P7=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,n7=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,c7=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,iX="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",g7=new RegExp(`^${iX}$`);function dX(T){let $="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(T.precision)$=`${$}\\.\\d{${T.precision}}`;else if(T.precision==null)$=`${$}(\\.\\d+)?`;return $}function p7(T){return new RegExp(`^${dX(T)}$`)}function uX(T){let $=`${iX}T${dX(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function o7(T,$){if(($==="v4"||!$)&&h7.test(T))return!0;if(($==="v6"||!$)&&v7.test(T))return!0;return!1}function t7(T,$){if(!I7.test(T))return!1;try{let[J]=T.split("."),S=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),F=JSON.parse(atob(S));if(typeof F!=="object"||F===null)return!1;if(!F.typ||!F.alg)return!1;if($&&F.alg!==$)return!1;return!0}catch(J){return!1}}function i7(T,$){if(($==="v4"||!$)&&m7.test(T))return!0;if(($==="v6"||!$)&&P7.test(T))return!0;return!1}class u$ extends ST{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==n.string){let F=this._getOrReturnCtx(T);return m(F,{code:C.invalid_type,expected:n.string,received:F.parsedType}),e}let J=new H$,S=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.length<F.value)S=this._getOrReturnCtx(T,S),m(S,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="max"){if(T.data.length>F.value)S=this._getOrReturnCtx(T,S),m(S,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="length"){let f=T.data.length>F.value,W=T.data.length<F.value;if(f||W){if(S=this._getOrReturnCtx(T,S),f)m(S,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});else if(W)m(S,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});J.dirty()}}else if(F.kind==="email"){if(!q7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"email",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="emoji"){if(!kW)kW=new RegExp(b7,"u");if(!kW.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"emoji",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="uuid"){if(!x7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"uuid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="nanoid"){if(!j7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"nanoid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid"){if(!L7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"cuid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid2"){if(!N7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"cuid2",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ulid"){if(!C7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"ulid",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="url")try{new URL(T.data)}catch(f){S=this._getOrReturnCtx(T,S),m(S,{validation:"url",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="regex"){if(F.regex.lastIndex=0,!F.regex.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"regex",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="trim")T.data=T.data.trim();else if(F.kind==="includes"){if(!T.data.includes(F.value,F.position))S=this._getOrReturnCtx(T,S),m(S,{code:C.invalid_string,validation:{includes:F.value,position:F.position},message:F.message}),J.dirty()}else if(F.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(F.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(F.kind==="startsWith"){if(!T.data.startsWith(F.value))S=this._getOrReturnCtx(T,S),m(S,{code:C.invalid_string,validation:{startsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="endsWith"){if(!T.data.endsWith(F.value))S=this._getOrReturnCtx(T,S),m(S,{code:C.invalid_string,validation:{endsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="datetime"){if(!uX(F).test(T.data))S=this._getOrReturnCtx(T,S),m(S,{code:C.invalid_string,validation:"datetime",message:F.message}),J.dirty()}else if(F.kind==="date"){if(!g7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{code:C.invalid_string,validation:"date",message:F.message}),J.dirty()}else if(F.kind==="time"){if(!p7(F).test(T.data))S=this._getOrReturnCtx(T,S),m(S,{code:C.invalid_string,validation:"time",message:F.message}),J.dirty()}else if(F.kind==="duration"){if(!Z7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"duration",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ip"){if(!o7(T.data,F.version))S=this._getOrReturnCtx(T,S),m(S,{validation:"ip",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="jwt"){if(!t7(T.data,F.alg))S=this._getOrReturnCtx(T,S),m(S,{validation:"jwt",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cidr"){if(!i7(T.data,F.version))S=this._getOrReturnCtx(T,S),m(S,{validation:"cidr",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64"){if(!n7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"base64",code:C.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64url"){if(!c7.test(T.data))S=this._getOrReturnCtx(T,S),m(S,{validation:"base64url",code:C.invalid_string,message:F.message}),J.dirty()}else YT.assertNever(F);return{status:J.value,value:T.data}}_regex(T,$,J){return this.refinement((S)=>T.test(S),{validation:$,code:C.invalid_string,...o.errToObj(J)})}_addCheck(T){return new u$({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...o.errToObj(T)})}url(T){return this._addCheck({kind:"url",...o.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...o.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...o.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...o.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...o.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...o.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...o.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...o.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...o.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...o.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...o.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...o.errToObj(T)})}datetime(T){var $,J;if(typeof T==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T});return this._addCheck({kind:"datetime",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,offset:($=T===null||T===void 0?void 0:T.offset)!==null&&$!==void 0?$:!1,local:(J=T===null||T===void 0?void 0:T.local)!==null&&J!==void 0?J:!1,...o.errToObj(T===null||T===void 0?void 0:T.message)})}date(T){return this._addCheck({kind:"date",message:T})}time(T){if(typeof T==="string")return this._addCheck({kind:"time",precision:null,message:T});return this._addCheck({kind:"time",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,...o.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...o.errToObj(T)})}regex(T,$){return this._addCheck({kind:"regex",regex:T,...o.errToObj($)})}includes(T,$){return this._addCheck({kind:"includes",value:T,position:$===null||$===void 0?void 0:$.position,...o.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(T,$){return this._addCheck({kind:"startsWith",value:T,...o.errToObj($)})}endsWith(T,$){return this._addCheck({kind:"endsWith",value:T,...o.errToObj($)})}min(T,$){return this._addCheck({kind:"min",value:T,...o.errToObj($)})}max(T,$){return this._addCheck({kind:"max",value:T,...o.errToObj($)})}length(T,$){return this._addCheck({kind:"length",value:T,...o.errToObj($)})}nonempty(T){return this.min(1,o.errToObj(T))}trim(){return new u$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new u$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new u$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((T)=>T.kind==="datetime")}get isDate(){return!!this._def.checks.find((T)=>T.kind==="date")}get isTime(){return!!this._def.checks.find((T)=>T.kind==="time")}get isDuration(){return!!this._def.checks.find((T)=>T.kind==="duration")}get isEmail(){return!!this._def.checks.find((T)=>T.kind==="email")}get isURL(){return!!this._def.checks.find((T)=>T.kind==="url")}get isEmoji(){return!!this._def.checks.find((T)=>T.kind==="emoji")}get isUUID(){return!!this._def.checks.find((T)=>T.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((T)=>T.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((T)=>T.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((T)=>T.kind==="cuid2")}get isULID(){return!!this._def.checks.find((T)=>T.kind==="ulid")}get isIP(){return!!this._def.checks.find((T)=>T.kind==="ip")}get isCIDR(){return!!this._def.checks.find((T)=>T.kind==="cidr")}get isBase64(){return!!this._def.checks.find((T)=>T.kind==="base64")}get isBase64url(){return!!this._def.checks.find((T)=>T.kind==="base64url")}get minLength(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxLength(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}u$.create=(T)=>{var $;return new u$({checks:[],typeName:x.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};function d7(T,$){let J=(T.toString().split(".")[1]||"").length,S=($.toString().split(".")[1]||"").length,F=J>S?J:S,f=parseInt(T.toFixed(F).replace(".","")),W=parseInt($.toFixed(F).replace(".",""));return f%W/Math.pow(10,F)}class vJ extends ST{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==n.number){let F=this._getOrReturnCtx(T);return m(F,{code:C.invalid_type,expected:n.number,received:F.parsedType}),e}let J=void 0,S=new H$;for(let F of this._def.checks)if(F.kind==="int"){if(!YT.isInteger(T.data))J=this._getOrReturnCtx(T,J),m(J,{code:C.invalid_type,expected:"integer",received:"float",message:F.message}),S.dirty()}else if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)J=this._getOrReturnCtx(T,J),m(J,{code:C.too_small,minimum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),S.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)J=this._getOrReturnCtx(T,J),m(J,{code:C.too_big,maximum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),S.dirty()}else if(F.kind==="multipleOf"){if(d7(T.data,F.value)!==0)J=this._getOrReturnCtx(T,J),m(J,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),S.dirty()}else if(F.kind==="finite"){if(!Number.isFinite(T.data))J=this._getOrReturnCtx(T,J),m(J,{code:C.not_finite,message:F.message}),S.dirty()}else YT.assertNever(F);return{status:S.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,o.toString($))}gt(T,$){return this.setLimit("min",T,!1,o.toString($))}lte(T,$){return this.setLimit("max",T,!0,o.toString($))}lt(T,$){return this.setLimit("max",T,!1,o.toString($))}setLimit(T,$,J,S){return new vJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(S)}]})}_addCheck(T){return new vJ({...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"&&YT.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)}}vJ.create=(T)=>{return new vJ({checks:[],typeName:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class PJ extends ST{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(F){return this._getInvalidInput(T)}if(this._getType(T)!==n.bigint)return this._getInvalidInput(T);let J=void 0,S=new H$;for(let F of this._def.checks)if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)J=this._getOrReturnCtx(T,J),m(J,{code:C.too_small,type:"bigint",minimum:F.value,inclusive:F.inclusive,message:F.message}),S.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)J=this._getOrReturnCtx(T,J),m(J,{code:C.too_big,type:"bigint",maximum:F.value,inclusive:F.inclusive,message:F.message}),S.dirty()}else if(F.kind==="multipleOf"){if(T.data%F.value!==BigInt(0))J=this._getOrReturnCtx(T,J),m(J,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),S.dirty()}else YT.assertNever(F);return{status:S.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return m($,{code:C.invalid_type,expected:n.bigint,received:$.parsedType}),e}gte(T,$){return this.setLimit("min",T,!0,o.toString($))}gt(T,$){return this.setLimit("min",T,!1,o.toString($))}lte(T,$){return this.setLimit("max",T,!0,o.toString($))}lt(T,$){return this.setLimit("max",T,!1,o.toString($))}setLimit(T,$,J,S){return new PJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(S)}]})}_addCheck(T){return new PJ({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:o.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:o.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:o.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:o.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:o.toString($)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}PJ.create=(T)=>{var $;return new PJ({checks:[],typeName:x.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};class tS extends ST{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==n.boolean){let J=this._getOrReturnCtx(T);return m(J,{code:C.invalid_type,expected:n.boolean,received:J.parsedType}),e}return E$(T.data)}}tS.create=(T)=>{return new tS({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class SS extends ST{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==n.date){let F=this._getOrReturnCtx(T);return m(F,{code:C.invalid_type,expected:n.date,received:F.parsedType}),e}if(isNaN(T.data.getTime())){let F=this._getOrReturnCtx(T);return m(F,{code:C.invalid_date}),e}let J=new H$,S=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.getTime()<F.value)S=this._getOrReturnCtx(T,S),m(S,{code:C.too_small,message:F.message,inclusive:!0,exact:!1,minimum:F.value,type:"date"}),J.dirty()}else if(F.kind==="max"){if(T.data.getTime()>F.value)S=this._getOrReturnCtx(T,S),m(S,{code:C.too_big,message:F.message,inclusive:!0,exact:!1,maximum:F.value,type:"date"}),J.dirty()}else YT.assertNever(F);return{status:J.value,value:new Date(T.data.getTime())}}_addCheck(T){return new SS({...this._def,checks:[...this._def.checks,T]})}min(T,$){return this._addCheck({kind:"min",value:T.getTime(),message:o.toString($)})}max(T,$){return this._addCheck({kind:"max",value:T.getTime(),message:o.toString($)})}get minDate(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T!=null?new Date(T):null}get maxDate(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T!=null?new Date(T):null}}SS.create=(T)=>{return new SS({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:x.ZodDate,...JT(T)})};class uF extends ST{_parse(T){if(this._getType(T)!==n.symbol){let J=this._getOrReturnCtx(T);return m(J,{code:C.invalid_type,expected:n.symbol,received:J.parsedType}),e}return E$(T.data)}}uF.create=(T)=>{return new uF({typeName:x.ZodSymbol,...JT(T)})};class iS extends ST{_parse(T){if(this._getType(T)!==n.undefined){let J=this._getOrReturnCtx(T);return m(J,{code:C.invalid_type,expected:n.undefined,received:J.parsedType}),e}return E$(T.data)}}iS.create=(T)=>{return new iS({typeName:x.ZodUndefined,...JT(T)})};class dS extends ST{_parse(T){if(this._getType(T)!==n.null){let J=this._getOrReturnCtx(T);return m(J,{code:C.invalid_type,expected:n.null,received:J.parsedType}),e}return E$(T.data)}}dS.create=(T)=>{return new dS({typeName:x.ZodNull,...JT(T)})};class FS extends ST{constructor(){super(...arguments);this._any=!0}_parse(T){return E$(T.data)}}FS.create=(T)=>{return new FS({typeName:x.ZodAny,...JT(T)})};class mJ extends ST{constructor(){super(...arguments);this._unknown=!0}_parse(T){return E$(T.data)}}mJ.create=(T)=>{return new mJ({typeName:x.ZodUnknown,...JT(T)})};class AJ extends ST{_parse(T){let $=this._getOrReturnCtx(T);return m($,{code:C.invalid_type,expected:n.never,received:$.parsedType}),e}}AJ.create=(T)=>{return new AJ({typeName:x.ZodNever,...JT(T)})};class lF extends ST{_parse(T){if(this._getType(T)!==n.undefined){let J=this._getOrReturnCtx(T);return m(J,{code:C.invalid_type,expected:n.void,received:J.parsedType}),e}return E$(T.data)}}lF.create=(T)=>{return new lF({typeName:x.ZodVoid,...JT(T)})};class l$ extends ST{_parse(T){let{ctx:$,status:J}=this._processInputParams(T),S=this._def;if($.parsedType!==n.array)return m($,{code:C.invalid_type,expected:n.array,received:$.parsedType}),e;if(S.exactLength!==null){let f=$.data.length>S.exactLength.value,W=$.data.length<S.exactLength.value;if(f||W)m($,{code:f?C.too_big:C.too_small,minimum:W?S.exactLength.value:void 0,maximum:f?S.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:S.exactLength.message}),J.dirty()}if(S.minLength!==null){if($.data.length<S.minLength.value)m($,{code:C.too_small,minimum:S.minLength.value,type:"array",inclusive:!0,exact:!1,message:S.minLength.message}),J.dirty()}if(S.maxLength!==null){if($.data.length>S.maxLength.value)m($,{code:C.too_big,maximum:S.maxLength.value,type:"array",inclusive:!0,exact:!1,message:S.maxLength.message}),J.dirty()}if($.common.async)return Promise.all([...$.data].map((f,W)=>{return S.type._parseAsync(new r$($,f,$.path,W))})).then((f)=>{return H$.mergeArray(J,f)});let F=[...$.data].map((f,W)=>{return S.type._parseSync(new r$($,f,$.path,W))});return H$.mergeArray(J,F)}get element(){return this._def.type}min(T,$){return new l$({...this._def,minLength:{value:T,message:o.toString($)}})}max(T,$){return new l$({...this._def,maxLength:{value:T,message:o.toString($)}})}length(T,$){return new l$({...this._def,exactLength:{value:T,message:o.toString($)}})}nonempty(T){return this.min(1,T)}}l$.create=(T,$)=>{return new l$({type:T,minLength:null,maxLength:null,exactLength:null,typeName:x.ZodArray,...JT($)})};function cS(T){if(T instanceof qT){let $={};for(let J in T.shape){let S=T.shape[J];$[J]=x$.create(cS(S))}return new qT({...T._def,shape:()=>$})}else if(T instanceof l$)return new l$({...T._def,type:cS(T.element)});else if(T instanceof x$)return x$.create(cS(T.unwrap()));else if(T instanceof RJ)return RJ.create(cS(T.unwrap()));else if(T instanceof XJ)return XJ.create(T.items.map(($)=>cS($)));else return T}class qT extends ST{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let T=this._def.shape(),$=YT.objectKeys(T);return this._cached={shape:T,keys:$}}_parse(T){if(this._getType(T)!==n.object){let X=this._getOrReturnCtx(T);return m(X,{code:C.invalid_type,expected:n.object,received:X.parsedType}),e}let{status:J,ctx:S}=this._processInputParams(T),{shape:F,keys:f}=this._getCached(),W=[];if(!(this._def.catchall instanceof AJ&&this._def.unknownKeys==="strip")){for(let X in S.data)if(!f.includes(X))W.push(X)}let A=[];for(let X of f){let w=F[X],M=S.data[X];A.push({key:{status:"valid",value:X},value:w._parse(new r$(S,M,S.path,X)),alwaysSet:X in S.data})}if(this._def.catchall instanceof AJ){let X=this._def.unknownKeys;if(X==="passthrough")for(let w of W)A.push({key:{status:"valid",value:w},value:{status:"valid",value:S.data[w]}});else if(X==="strict"){if(W.length>0)m(S,{code:C.unrecognized_keys,keys:W}),J.dirty()}else if(X==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let X=this._def.catchall;for(let w of W){let M=S.data[w];A.push({key:{status:"valid",value:w},value:X._parse(new r$(S,M,S.path,w)),alwaysSet:w in S.data})}}if(S.common.async)return Promise.resolve().then(async()=>{let X=[];for(let w of A){let M=await w.key,Y=await w.value;X.push({key:M,value:Y,alwaysSet:w.alwaysSet})}return X}).then((X)=>{return H$.mergeObjectSync(J,X)});else return H$.mergeObjectSync(J,A)}get shape(){return this._def.shape()}strict(T){return o.errToObj,new qT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var S,F,f,W;let A=(f=(F=(S=this._def).errorMap)===null||F===void 0?void 0:F.call(S,$,J).message)!==null&&f!==void 0?f:J.defaultError;if($.code==="unrecognized_keys")return{message:(W=o.errToObj(T).message)!==null&&W!==void 0?W:A};return{message:A}}}:{}})}strip(){return new qT({...this._def,unknownKeys:"strip"})}passthrough(){return new qT({...this._def,unknownKeys:"passthrough"})}extend(T){return new qT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new qT({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:x.ZodObject})}setKey(T,$){return this.augment({[T]:$})}catchall(T){return new qT({...this._def,catchall:T})}pick(T){let $={};return YT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new qT({...this._def,shape:()=>$})}omit(T){let $={};return YT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new qT({...this._def,shape:()=>$})}deepPartial(){return cS(this)}partial(T){let $={};return YT.objectKeys(this.shape).forEach((J)=>{let S=this.shape[J];if(T&&!T[J])$[J]=S;else $[J]=S.optional()}),new qT({...this._def,shape:()=>$})}required(T){let $={};return YT.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 qT({...this._def,shape:()=>$})}keyof(){return lX(YT.objectKeys(this.shape))}}qT.create=(T,$)=>{return new qT({shape:()=>T,unknownKeys:"strip",catchall:AJ.create(),typeName:x.ZodObject,...JT($)})};qT.strictCreate=(T,$)=>{return new qT({shape:()=>T,unknownKeys:"strict",catchall:AJ.create(),typeName:x.ZodObject,...JT($)})};qT.lazycreate=(T,$)=>{return new qT({shape:T,unknownKeys:"strip",catchall:AJ.create(),typeName:x.ZodObject,...JT($)})};class uS extends ST{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function S(F){for(let W of F)if(W.result.status==="valid")return W.result;for(let W of F)if(W.result.status==="dirty")return $.common.issues.push(...W.ctx.common.issues),W.result;let f=F.map((W)=>new C$(W.ctx.common.issues));return m($,{code:C.invalid_union,unionErrors:f}),e}if($.common.async)return Promise.all(J.map(async(F)=>{let f={...$,common:{...$.common,issues:[]},parent:null};return{result:await F._parseAsync({data:$.data,path:$.path,parent:f}),ctx:f}})).then(S);else{let F=void 0,f=[];for(let A of J){let X={...$,common:{...$.common,issues:[]},parent:null},w=A._parseSync({data:$.data,path:$.path,parent:X});if(w.status==="valid")return w;else if(w.status==="dirty"&&!F)F={result:w,ctx:X};if(X.common.issues.length)f.push(X.common.issues)}if(F)return $.common.issues.push(...F.ctx.common.issues),F.result;let W=f.map((A)=>new C$(A));return m($,{code:C.invalid_union,unionErrors:W}),e}}get options(){return this._def.options}}uS.create=(T,$)=>{return new uS({options:T,typeName:x.ZodUnion,...JT($)})};var QJ=(T)=>{if(T instanceof rS)return QJ(T.schema);else if(T instanceof c$)return QJ(T.innerType());else if(T instanceof aS)return[T.value];else if(T instanceof nJ)return T.options;else if(T instanceof sS)return YT.objectValues(T.enum);else if(T instanceof eS)return QJ(T._def.innerType);else if(T instanceof iS)return[void 0];else if(T instanceof dS)return[null];else if(T instanceof x$)return[void 0,...QJ(T.unwrap())];else if(T instanceof RJ)return[null,...QJ(T.unwrap())];else if(T instanceof Uf)return QJ(T.unwrap());else if(T instanceof $F)return QJ(T.unwrap());else if(T instanceof TF)return QJ(T._def.innerType);else return[]};class kf extends ST{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==n.object)return m($,{code:C.invalid_type,expected:n.object,received:$.parsedType}),e;let J=this.discriminator,S=$.data[J],F=this.optionsMap.get(S);if(!F)return m($,{code:C.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),e;if($.common.async)return F._parseAsync({data:$.data,path:$.path,parent:$});else return F._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(T,$,J){let S=new Map;for(let F of $){let f=QJ(F.shape[T]);if(!f.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let W of f){if(S.has(W))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(W)}`);S.set(W,F)}}return new kf({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:S,...JT(J)})}}function yW(T,$){let J=_J(T),S=_J($);if(T===$)return{valid:!0,data:T};else if(J===n.object&&S===n.object){let F=YT.objectKeys($),f=YT.objectKeys(T).filter((A)=>F.indexOf(A)!==-1),W={...T,...$};for(let A of f){let X=yW(T[A],$[A]);if(!X.valid)return{valid:!1};W[A]=X.data}return{valid:!0,data:W}}else if(J===n.array&&S===n.array){if(T.length!==$.length)return{valid:!1};let F=[];for(let f=0;f<T.length;f++){let W=T[f],A=$[f],X=yW(W,A);if(!X.valid)return{valid:!1};F.push(X.data)}return{valid:!0,data:F}}else if(J===n.date&&S===n.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class lS extends ST{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),S=(F,f)=>{if(VW(F)||VW(f))return e;let W=yW(F.value,f.value);if(!W.valid)return m(J,{code:C.invalid_intersection_types}),e;if(BW(F)||BW(f))$.dirty();return{status:$.value,value:W.data}};if(J.common.async)return Promise.all([this._def.left._parseAsync({data:J.data,path:J.path,parent:J}),this._def.right._parseAsync({data:J.data,path:J.path,parent:J})]).then(([F,f])=>S(F,f));else return S(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}lS.create=(T,$,J)=>{return new lS({left:T,right:$,typeName:x.ZodIntersection,...JT(J)})};class XJ extends ST{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==n.array)return m(J,{code:C.invalid_type,expected:n.array,received:J.parsedType}),e;if(J.data.length<this._def.items.length)return m(J,{code:C.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),e;if(!this._def.rest&&J.data.length>this._def.items.length)m(J,{code:C.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let F=[...J.data].map((f,W)=>{let A=this._def.items[W]||this._def.rest;if(!A)return null;return A._parse(new r$(J,f,J.path,W))}).filter((f)=>!!f);if(J.common.async)return Promise.all(F).then((f)=>{return H$.mergeArray($,f)});else return H$.mergeArray($,F)}get items(){return this._def.items}rest(T){return new XJ({...this._def,rest:T})}}XJ.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new XJ({items:T,typeName:x.ZodTuple,rest:null,...JT($)})};class rF extends ST{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==n.object)return m(J,{code:C.invalid_type,expected:n.object,received:J.parsedType}),e;let S=[],F=this._def.keyType,f=this._def.valueType;for(let W in J.data)S.push({key:F._parse(new r$(J,W,J.path,W)),value:f._parse(new r$(J,J.data[W],J.path,W)),alwaysSet:W in J.data});if(J.common.async)return H$.mergeObjectAsync($,S);else return H$.mergeObjectSync($,S)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof ST)return new rF({keyType:T,valueType:$,typeName:x.ZodRecord,...JT(J)});return new rF({keyType:u$.create(),valueType:T,typeName:x.ZodRecord,...JT($)})}}class aF extends ST{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==n.map)return m(J,{code:C.invalid_type,expected:n.map,received:J.parsedType}),e;let S=this._def.keyType,F=this._def.valueType,f=[...J.data.entries()].map(([W,A],X)=>{return{key:S._parse(new r$(J,W,J.path,[X,"key"])),value:F._parse(new r$(J,A,J.path,[X,"value"]))}});if(J.common.async){let W=new Map;return Promise.resolve().then(async()=>{for(let A of f){let X=await A.key,w=await A.value;if(X.status==="aborted"||w.status==="aborted")return e;if(X.status==="dirty"||w.status==="dirty")$.dirty();W.set(X.value,w.value)}return{status:$.value,value:W}})}else{let W=new Map;for(let A of f){let{key:X,value:w}=A;if(X.status==="aborted"||w.status==="aborted")return e;if(X.status==="dirty"||w.status==="dirty")$.dirty();W.set(X.value,w.value)}return{status:$.value,value:W}}}}aF.create=(T,$,J)=>{return new aF({valueType:$,keyType:T,typeName:x.ZodMap,...JT(J)})};class fS extends ST{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==n.set)return m(J,{code:C.invalid_type,expected:n.set,received:J.parsedType}),e;let S=this._def;if(S.minSize!==null){if(J.data.size<S.minSize.value)m(J,{code:C.too_small,minimum:S.minSize.value,type:"set",inclusive:!0,exact:!1,message:S.minSize.message}),$.dirty()}if(S.maxSize!==null){if(J.data.size>S.maxSize.value)m(J,{code:C.too_big,maximum:S.maxSize.value,type:"set",inclusive:!0,exact:!1,message:S.maxSize.message}),$.dirty()}let F=this._def.valueType;function f(A){let X=new Set;for(let w of A){if(w.status==="aborted")return e;if(w.status==="dirty")$.dirty();X.add(w.value)}return{status:$.value,value:X}}let W=[...J.data.values()].map((A,X)=>F._parse(new r$(J,A,J.path,X)));if(J.common.async)return Promise.all(W).then((A)=>f(A));else return f(W)}min(T,$){return new fS({...this._def,minSize:{value:T,message:o.toString($)}})}max(T,$){return new fS({...this._def,maxSize:{value:T,message:o.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}fS.create=(T,$)=>{return new fS({valueType:T,minSize:null,maxSize:null,typeName:x.ZodSet,...JT($)})};class pS extends ST{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==n.function)return m($,{code:C.invalid_type,expected:n.function,received:$.parsedType}),e;function J(W,A){return _f({data:W,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,Qf(),oS].filter((X)=>!!X),issueData:{code:C.invalid_arguments,argumentsError:A}})}function S(W,A){return _f({data:W,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,Qf(),oS].filter((X)=>!!X),issueData:{code:C.invalid_return_type,returnTypeError:A}})}let F={errorMap:$.common.contextualErrorMap},f=$.data;if(this._def.returns instanceof WS){let W=this;return E$(async function(...A){let X=new C$([]),w=await W._def.args.parseAsync(A,F).catch((G)=>{throw X.addIssue(J(A,G)),X}),M=await Reflect.apply(f,this,w);return await W._def.returns._def.type.parseAsync(M,F).catch((G)=>{throw X.addIssue(S(M,G)),X})})}else{let W=this;return E$(function(...A){let X=W._def.args.safeParse(A,F);if(!X.success)throw new C$([J(A,X.error)]);let w=Reflect.apply(f,this,X.data),M=W._def.returns.safeParse(w,F);if(!M.success)throw new C$([S(w,M.error)]);return M.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new pS({...this._def,args:XJ.create(T).rest(mJ.create())})}returns(T){return new pS({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new pS({args:T?T:XJ.create([]).rest(mJ.create()),returns:$||mJ.create(),typeName:x.ZodFunction,...JT(J)})}}class rS extends ST{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}rS.create=(T,$)=>{return new rS({getter:T,typeName:x.ZodLazy,...JT($)})};class aS extends ST{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return m($,{received:$.data,code:C.invalid_literal,expected:this._def.value}),e}return{status:"valid",value:T.data}}get value(){return this._def.value}}aS.create=(T,$)=>{return new aS({value:T,typeName:x.ZodLiteral,...JT($)})};function lX(T,$){return new nJ({values:T,typeName:x.ZodEnum,...JT($)})}class nJ extends ST{constructor(){super(...arguments);tF.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let $=this._getOrReturnCtx(T),J=this._def.values;return m($,{expected:YT.joinValues(J),received:$.parsedType,code:C.invalid_type}),e}if(!Rf(this,tF,"f"))tX(this,tF,new Set(this._def.values),"f");if(!Rf(this,tF,"f").has(T.data)){let $=this._getOrReturnCtx(T),J=this._def.values;return m($,{received:$.data,code:C.invalid_enum_value,options:J}),e}return E$(T.data)}get options(){return this._def.values}get enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Values(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}extract(T,$=this._def){return nJ.create(T,{...this._def,...$})}exclude(T,$=this._def){return nJ.create(this.options.filter((J)=>!T.includes(J)),{...this._def,...$})}}tF=new WeakMap;nJ.create=lX;class sS extends ST{constructor(){super(...arguments);iF.set(this,void 0)}_parse(T){let $=YT.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(T);if(J.parsedType!==n.string&&J.parsedType!==n.number){let S=YT.objectValues($);return m(J,{expected:YT.joinValues(S),received:J.parsedType,code:C.invalid_type}),e}if(!Rf(this,iF,"f"))tX(this,iF,new Set(YT.getValidEnumValues(this._def.values)),"f");if(!Rf(this,iF,"f").has(T.data)){let S=YT.objectValues($);return m(J,{received:J.data,code:C.invalid_enum_value,options:S}),e}return E$(T.data)}get enum(){return this._def.values}}iF=new WeakMap;sS.create=(T,$)=>{return new sS({values:T,typeName:x.ZodNativeEnum,...JT($)})};class WS extends ST{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==n.promise&&$.common.async===!1)return m($,{code:C.invalid_type,expected:n.promise,received:$.parsedType}),e;let J=$.parsedType===n.promise?$.data:Promise.resolve($.data);return E$(J.then((S)=>{return this._def.type.parseAsync(S,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}WS.create=(T,$)=>{return new WS({type:T,typeName:x.ZodPromise,...JT($)})};class c$ extends ST{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),S=this._def.effect||null,F={addIssue:(f)=>{if(m(J,f),f.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(F.addIssue=F.addIssue.bind(F),S.type==="preprocess"){let f=S.transform(J.data,F);if(J.common.async)return Promise.resolve(f).then(async(W)=>{if($.value==="aborted")return e;let A=await this._def.schema._parseAsync({data:W,path:J.path,parent:J});if(A.status==="aborted")return e;if(A.status==="dirty")return gS(A.value);if($.value==="dirty")return gS(A.value);return A});else{if($.value==="aborted")return e;let W=this._def.schema._parseSync({data:f,path:J.path,parent:J});if(W.status==="aborted")return e;if(W.status==="dirty")return gS(W.value);if($.value==="dirty")return gS(W.value);return W}}if(S.type==="refinement"){let f=(W)=>{let A=S.refinement(W,F);if(J.common.async)return Promise.resolve(A);if(A instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return W};if(J.common.async===!1){let W=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(W.status==="aborted")return e;if(W.status==="dirty")$.dirty();return f(W.value),{status:$.value,value:W.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((W)=>{if(W.status==="aborted")return e;if(W.status==="dirty")$.dirty();return f(W.value).then(()=>{return{status:$.value,value:W.value}})})}if(S.type==="transform")if(J.common.async===!1){let f=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!JS(f))return f;let W=S.transform(f.value,F);if(W instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:W}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((f)=>{if(!JS(f))return f;return Promise.resolve(S.transform(f.value,F)).then((W)=>({status:$.value,value:W}))});YT.assertNever(S)}}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 ST{_parse(T){if(this._getType(T)===n.undefined)return E$(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 RJ extends ST{_parse(T){if(this._getType(T)===n.null)return E$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}RJ.create=(T,$)=>{return new RJ({innerType:T,typeName:x.ZodNullable,...JT($)})};class eS extends ST{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;if($.parsedType===n.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}eS.create=(T,$)=>{return new eS({innerType:T,typeName:x.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...JT($)})};class TF extends ST{_parse(T){let{ctx:$}=this._processInputParams(T),J={...$,common:{...$.common,issues:[]}},S=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(dF(S))return S.then((F)=>{return{status:"valid",value:F.status==="valid"?F.value:this._def.catchValue({get error(){return new C$(J.common.issues)},input:J.data})}});else return{status:"valid",value:S.status==="valid"?S.value:this._def.catchValue({get error(){return new C$(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}TF.create=(T,$)=>{return new TF({innerType:T,typeName:x.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...JT($)})};class sF extends ST{_parse(T){if(this._getType(T)!==n.nan){let J=this._getOrReturnCtx(T);return m(J,{code:C.invalid_type,expected:n.nan,received:J.parsedType}),e}return{status:"valid",value:T.data}}}sF.create=(T)=>{return new sF({typeName:x.ZodNaN,...JT(T)})};var u7=Symbol("zod_brand");class Uf extends ST{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;return this._def.type._parse({data:J,path:$.path,parent:$})}unwrap(){return this._def.type}}class eF extends ST{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.common.async)return(async()=>{let F=await this._def.in._parseAsync({data:J.data,path:J.path,parent:J});if(F.status==="aborted")return e;if(F.status==="dirty")return $.dirty(),gS(F.value);else return this._def.out._parseAsync({data:F.value,path:J.path,parent:J})})();else{let S=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(S.status==="aborted")return e;if(S.status==="dirty")return $.dirty(),{status:"dirty",value:S.value};else return this._def.out._parseSync({data:S.value,path:J.path,parent:J})}}static create(T,$){return new eF({in:T,out:$,typeName:x.ZodPipeline})}}class $F extends ST{_parse(T){let $=this._def.innerType._parse(T),J=(S)=>{if(JS(S))S.value=Object.freeze(S.value);return S};return dF($)?$.then((S)=>J(S)):J($)}unwrap(){return this._def.innerType}}$F.create=(T,$)=>{return new $F({innerType:T,typeName:x.ZodReadonly,...JT($)})};function gX(T,$){let J=typeof T==="function"?T($):typeof T==="string"?{message:T}:T;return typeof J==="string"?{message:J}:J}function rX(T,$={},J){if(T)return FS.create().superRefine((S,F)=>{var f,W;let A=T(S);if(A instanceof Promise)return A.then((X)=>{var w,M;if(!X){let Y=gX($,S),G=(M=(w=Y.fatal)!==null&&w!==void 0?w:J)!==null&&M!==void 0?M:!0;F.addIssue({code:"custom",...Y,fatal:G})}});if(!A){let X=gX($,S),w=(W=(f=X.fatal)!==null&&f!==void 0?f:J)!==null&&W!==void 0?W:!0;F.addIssue({code:"custom",...X,fatal:w})}return});return FS.create()}var l7={object:qT.lazycreate},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 r7=(T,$={message:`Input not instance of ${T.name}`})=>rX((J)=>J instanceof T,$),aX=u$.create,sX=vJ.create,a7=sF.create,s7=PJ.create,eX=tS.create,e7=SS.create,T9=uF.create,$9=iS.create,J9=dS.create,S9=FS.create,F9=mJ.create,f9=AJ.create,W9=lF.create,A9=l$.create,X9=qT.create,w9=qT.strictCreate,M9=uS.create,Y9=kf.create,G9=lS.create,K9=XJ.create,H9=rF.create,O9=aF.create,z9=fS.create,D9=pS.create,E9=rS.create,Q9=aS.create,_9=nJ.create,R9=sS.create,k9=WS.create,pX=c$.create,U9=x$.create,V9=RJ.create,B9=c$.createWithPreprocess,y9=eF.create,L9=()=>aX().optional(),N9=()=>sX().optional(),C9=()=>eX().optional(),x9={string:(T)=>u$.create({...T,coerce:!0}),number:(T)=>vJ.create({...T,coerce:!0}),boolean:(T)=>tS.create({...T,coerce:!0}),bigint:(T)=>PJ.create({...T,coerce:!0}),date:(T)=>SS.create({...T,coerce:!0})},j9=e,kT=Object.freeze({__proto__:null,defaultErrorMap:oS,setErrorMap:B7,getErrorMap:Qf,makeIssue:_f,EMPTY_PATH:y7,addIssueToContext:m,ParseStatus:H$,INVALID:e,DIRTY:gS,OK:E$,isAborted:VW,isDirty:BW,isValid:JS,isAsync:dF,get util(){return YT},get objectUtil(){return UW},ZodParsedType:n,getParsedType:_J,ZodType:ST,datetimeRegex:uX,ZodString:u$,ZodNumber:vJ,ZodBigInt:PJ,ZodBoolean:tS,ZodDate:SS,ZodSymbol:uF,ZodUndefined:iS,ZodNull:dS,ZodAny:FS,ZodUnknown:mJ,ZodNever:AJ,ZodVoid:lF,ZodArray:l$,ZodObject:qT,ZodUnion:uS,ZodDiscriminatedUnion:kf,ZodIntersection:lS,ZodTuple:XJ,ZodRecord:rF,ZodMap:aF,ZodSet:fS,ZodFunction:pS,ZodLazy:rS,ZodLiteral:aS,ZodEnum:nJ,ZodNativeEnum:sS,ZodPromise:WS,ZodEffects:c$,ZodTransformer:c$,ZodOptional:x$,ZodNullable:RJ,ZodDefault:eS,ZodCatch:TF,ZodNaN:sF,BRAND:u7,ZodBranded:Uf,ZodPipeline:eF,ZodReadonly:$F,custom:rX,Schema:ST,ZodSchema:ST,late:l7,get ZodFirstPartyTypeKind(){return x},coerce:x9,any:S9,array:A9,bigint:s7,boolean:eX,date:e7,discriminatedUnion:Y9,effect:pX,enum:_9,function:D9,instanceof:r7,intersection:G9,lazy:E9,literal:Q9,map:O9,nan:a7,nativeEnum:R9,never:f9,null:J9,nullable:V9,number:sX,object:X9,oboolean:C9,onumber:N9,optional:U9,ostring:L9,pipeline:y9,preprocess:B9,promise:k9,record:H9,set:z9,strictObject:w9,string:aX,symbol:T9,transformer:pX,tuple:K9,undefined:$9,union:M9,unknown:F9,void:W9,NEVER:j9,ZodIssueCode:C,quotelessJson:V7,ZodError:C$});function T8(){return{}}function $8(T,$){let J={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==x.ZodAny)J.items=r(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)MT(J,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)MT(J,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)MT(J,"minItems",T.exactLength.value,T.exactLength.message,$),MT(J,"maxItems",T.exactLength.value,T.exactLength.message,$);return J}function J8(T,$){let J={type:"integer",format:"int64"};if(!T.checks)return J;for(let S of T.checks)switch(S.kind){case"min":if($.target==="jsonSchema7")if(S.inclusive)MT(J,"minimum",S.value,S.message,$);else MT(J,"exclusiveMinimum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMinimum=!0;MT(J,"minimum",S.value,S.message,$)}break;case"max":if($.target==="jsonSchema7")if(S.inclusive)MT(J,"maximum",S.value,S.message,$);else MT(J,"exclusiveMaximum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMaximum=!0;MT(J,"maximum",S.value,S.message,$)}break;case"multipleOf":MT(J,"multipleOf",S.value,S.message,$);break}return J}function S8(){return{type:"boolean"}}function Vf(T,$){return r(T.type._def,$)}var F8=(T,$)=>{return r(T.innerType._def,$)};function LW(T,$,J){let S=J??$.dateStrategy;if(Array.isArray(S))return{anyOf:S.map((F,f)=>LW(T,$,F))};switch(S){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return I9(T,$)}}var I9=(T,$)=>{let J={type:"integer",format:"unix-time"};if($.target==="openApi3")return J;for(let S of T.checks)switch(S.kind){case"min":MT(J,"minimum",S.value,S.message,$);break;case"max":MT(J,"maximum",S.value,S.message,$);break}return J};function f8(T,$){return{...r(T.innerType._def,$),default:T.defaultValue()}}function W8(T,$){return $.effectStrategy==="input"?r(T.schema._def,$):{}}function A8(T){return{type:"string",enum:Array.from(T.values)}}var Z9=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function X8(T,$){let J=[r(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),r(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((f)=>!!f),S=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,F=[];return J.forEach((f)=>{if(Z9(f)){if(F.push(...f.allOf),f.unevaluatedProperties===void 0)S=void 0}else{let W=f;if("additionalProperties"in f&&f.additionalProperties===!1){let{additionalProperties:A,...X}=f;W=X}else S=void 0;F.push(W)}}),F.length?{allOf:F,...S}:void 0}function w8(T,$){let J=typeof T.value;if(J!=="bigint"&&J!=="number"&&J!=="boolean"&&J!=="string")return{type:Array.isArray(T.value)?"array":"object"};if($.target==="openApi3")return{type:J==="bigint"?"integer":J,enum:[T.value]};return{type:J==="bigint"?"integer":J,const:T.value}}var NW=void 0,a$={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(NW===void 0)NW=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return NW},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function Bf(T,$){let J={type:"string"};if(T.checks)for(let S of T.checks)switch(S.kind){case"min":MT(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,S.value):S.value,S.message,$);break;case"max":MT(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,S.value):S.value,S.message,$);break;case"email":switch($.emailStrategy){case"format:email":s$(J,"email",S.message,$);break;case"format:idn-email":s$(J,"idn-email",S.message,$);break;case"pattern:zod":Q$(J,a$.email,S.message,$);break}break;case"url":s$(J,"uri",S.message,$);break;case"uuid":s$(J,"uuid",S.message,$);break;case"regex":Q$(J,S.regex,S.message,$);break;case"cuid":Q$(J,a$.cuid,S.message,$);break;case"cuid2":Q$(J,a$.cuid2,S.message,$);break;case"startsWith":Q$(J,RegExp(`^${CW(S.value,$)}`),S.message,$);break;case"endsWith":Q$(J,RegExp(`${CW(S.value,$)}$`),S.message,$);break;case"datetime":s$(J,"date-time",S.message,$);break;case"date":s$(J,"date",S.message,$);break;case"time":s$(J,"time",S.message,$);break;case"duration":s$(J,"duration",S.message,$);break;case"length":MT(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,S.value):S.value,S.message,$),MT(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,S.value):S.value,S.message,$);break;case"includes":{Q$(J,RegExp(CW(S.value,$)),S.message,$);break}case"ip":{if(S.version!=="v6")s$(J,"ipv4",S.message,$);if(S.version!=="v4")s$(J,"ipv6",S.message,$);break}case"base64url":Q$(J,a$.base64url,S.message,$);break;case"jwt":Q$(J,a$.jwt,S.message,$);break;case"cidr":{if(S.version!=="v6")Q$(J,a$.ipv4Cidr,S.message,$);if(S.version!=="v4")Q$(J,a$.ipv6Cidr,S.message,$);break}case"emoji":Q$(J,a$.emoji(),S.message,$);break;case"ulid":{Q$(J,a$.ulid,S.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{s$(J,"binary",S.message,$);break}case"contentEncoding:base64":{MT(J,"contentEncoding","base64",S.message,$);break}case"pattern:zod":{Q$(J,a$.base64,S.message,$);break}}break}case"nanoid":Q$(J,a$.nanoid,S.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((F)=>{})(S)}return J}function CW(T,$){return $.patternStrategy==="escape"?b9(T):T}var q9=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function b9(T){let $="";for(let J=0;J<T.length;J++){if(!q9.has(T[J]))$+="\\";$+=T[J]}return $}function s$(T,$,J,S){if(T.format||T.anyOf?.some((F)=>F.format)){if(!T.anyOf)T.anyOf=[];if(T.format){if(T.anyOf.push({format:T.format,...T.errorMessage&&S.errorMessages&&{errorMessage:{format:T.errorMessage.format}}}),delete T.format,T.errorMessage){if(delete T.errorMessage.format,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.anyOf.push({format:$,...J&&S.errorMessages&&{errorMessage:{format:J}}})}else MT(T,"format",$,J,S)}function Q$(T,$,J,S){if(T.pattern||T.allOf?.some((F)=>F.pattern)){if(!T.allOf)T.allOf=[];if(T.pattern){if(T.allOf.push({pattern:T.pattern,...T.errorMessage&&S.errorMessages&&{errorMessage:{pattern:T.errorMessage.pattern}}}),delete T.pattern,T.errorMessage){if(delete T.errorMessage.pattern,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.allOf.push({pattern:M8($,S),...J&&S.errorMessages&&{errorMessage:{pattern:J}}})}else MT(T,"pattern",M8($,S),J,S)}function M8(T,$){if(!$.applyRegexFlags||!T.flags)return T.source;let J={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},S=J.i?T.source.toLowerCase():T.source,F="",f=!1,W=!1,A=!1;for(let X=0;X<S.length;X++){if(f){F+=S[X],f=!1;continue}if(J.i){if(W){if(S[X].match(/[a-z]/)){if(A)F+=S[X],F+=`${S[X-2]}-${S[X]}`.toUpperCase(),A=!1;else if(S[X+1]==="-"&&S[X+2]?.match(/[a-z]/))F+=S[X],A=!0;else F+=`${S[X]}${S[X].toUpperCase()}`;continue}}else if(S[X].match(/[a-z]/)){F+=`[${S[X]}${S[X].toUpperCase()}]`;continue}}if(J.m){if(S[X]==="^"){F+=`(^|(?<=[\r
|
|
17
|
-
]))`;continue}else if(
|
|
18
|
-
]))`;continue}}if(J.s&&
|
|
19
|
-
`:`[${
|
|
20
|
-
]`;continue}if(F+=S[X],S[X]==="\\")f=!0;else if(W&&S[X]==="]")W=!1;else if(!W&&S[X]==="[")W=!0}try{new RegExp(F)}catch{return console.warn(`Could not convert regex pattern at ${$.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),T.source}return F}function yf(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((S,F)=>({...S,[F]:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",F]})??{}}),{}),additionalProperties:!1};let J={type:"object",additionalProperties:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??{}};if($.target==="openApi3")return J;if(T.keyType?._def.typeName===x.ZodString&&T.keyType._def.checks?.length){let{type:S,...F}=Bf(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:S,...F}=Vf(T.keyType._def,$);return{...J,propertyNames:F}}return J}function Y8(T,$){if($.mapStrategy==="record")return yf(T,$);let J=r(T.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},S=r(T.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[J,S],minItems:2,maxItems:2}}}function G8(T){let $=T.values,S=Object.keys(T.values).filter((f)=>{return typeof $[$[f]]!=="number"}).map((f)=>$[f]),F=Array.from(new Set(S.map((f)=>typeof f)));return{type:F.length===1?F[0]==="string"?"string":"number":["string","number"],enum:S}}function K8(){return{not:{}}}function H8(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var T0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function z8(T,$){if($.target==="openApi3")return O8(T,$);let J=T.options instanceof Map?Array.from(T.options.values()):T.options;if(J.every((S)=>(S._def.typeName in T0)&&(!S._def.checks||!S._def.checks.length))){let S=J.reduce((F,f)=>{let W=T0[f._def.typeName];return W&&!F.includes(W)?[...F,W]:F},[]);return{type:S.length>1?S:S[0]}}else if(J.every((S)=>S._def.typeName==="ZodLiteral"&&!S.description)){let S=J.reduce((F,f)=>{let W=typeof f._def.value;switch(W){case"string":case"number":case"boolean":return[...F,W];case"bigint":return[...F,"integer"];case"object":if(f._def.value===null)return[...F,"null"];case"symbol":case"undefined":case"function":default:return F}},[]);if(S.length===J.length){let F=S.filter((f,W,A)=>A.indexOf(f)===W);return{type:F.length>1?F:F[0],enum:J.reduce((f,W)=>{return f.includes(W._def.value)?f:[...f,W._def.value]},[])}}}else if(J.every((S)=>S._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((S,F)=>[...S,...F._def.values.filter((f)=>!S.includes(f))],[])};return O8(T,$)}var O8=(T,$)=>{let J=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((S,F)=>r(S._def,{...$,currentPath:[...$.currentPath,"anyOf",`${F}`]})).filter((S)=>!!S&&(!$.strictUnions||typeof S==="object"&&Object.keys(S).length>0));return J.length?{anyOf:J}:void 0};function D8(T,$){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(T.innerType._def.typeName)&&(!T.innerType._def.checks||!T.innerType._def.checks.length)){if($.target==="openApi3")return{type:T0[T.innerType._def.typeName],nullable:!0};return{type:[T0[T.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let S=r(T.innerType._def,{...$,currentPath:[...$.currentPath]});if(S&&"$ref"in S)return{allOf:[S],nullable:!0};return S&&{...S,nullable:!0}}let J=r(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function E8(T,$){let J={type:"number"};if(!T.checks)return J;for(let S of T.checks)switch(S.kind){case"int":J.type="integer",RW(J,"type",S.message,$);break;case"min":if($.target==="jsonSchema7")if(S.inclusive)MT(J,"minimum",S.value,S.message,$);else MT(J,"exclusiveMinimum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMinimum=!0;MT(J,"minimum",S.value,S.message,$)}break;case"max":if($.target==="jsonSchema7")if(S.inclusive)MT(J,"maximum",S.value,S.message,$);else MT(J,"exclusiveMaximum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMaximum=!0;MT(J,"maximum",S.value,S.message,$)}break;case"multipleOf":MT(J,"multipleOf",S.value,S.message,$);break}return J}function h9(T,$){if($.removeAdditionalStrategy==="strict")return T.catchall._def.typeName==="ZodNever"?T.unknownKeys!=="strict":r(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0;else return T.catchall._def.typeName==="ZodNever"?T.unknownKeys==="passthrough":r(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0}function Q8(T,$){let J=$.target==="openAi",S={type:"object",...Object.entries(T.shape()).reduce((F,[f,W])=>{if(W===void 0||W._def===void 0)return F;let A=W.isOptional();if(A&&J){if(W instanceof x$)W=W._def.innerType;if(!W.isNullable())W=W.nullable();A=!1}let X=r(W._def,{...$,currentPath:[...$.currentPath,"properties",f],propertyPath:[...$.currentPath,"properties",f]});if(X===void 0)return F;return{properties:{...F.properties,[f]:X},required:A?F.required:[...F.required,f]}},{properties:{},required:[]}),additionalProperties:h9(T,$)};if(!S.required.length)delete S.required;return S}var _8=(T,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return r(T.innerType._def,$);let J=r(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return J?{anyOf:[{not:{}},J]}:{}};var R8=(T,$)=>{if($.pipeStrategy==="input")return r(T.in._def,$);else if($.pipeStrategy==="output")return r(T.out._def,$);let J=r(T.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),S=r(T.out._def,{...$,currentPath:[...$.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,S].filter((F)=>F!==void 0)}};function k8(T,$){return r(T.type._def,$)}function U8(T,$){let S={type:"array",uniqueItems:!0,items:r(T.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(T.minSize)MT(S,"minItems",T.minSize.value,T.minSize.message,$);if(T.maxSize)MT(S,"maxItems",T.maxSize.value,T.maxSize.message,$);return S}function V8(T,$){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map((J,S)=>r(J._def,{...$,currentPath:[...$.currentPath,"items",`${S}`]})).reduce((J,S)=>S===void 0?J:[...J,S],[]),additionalItems:r(T.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map((J,S)=>r(J._def,{...$,currentPath:[...$.currentPath,"items",`${S}`]})).reduce((J,S)=>S===void 0?J:[...J,S],[])}}function B8(){return{not:{}}}function y8(){return{}}var L8=(T,$)=>{return r(T.innerType._def,$)};var N8=(T,$,J)=>{switch($){case x.ZodString:return Bf(T,J);case x.ZodNumber:return E8(T,J);case x.ZodObject:return Q8(T,J);case x.ZodBigInt:return J8(T,J);case x.ZodBoolean:return S8();case x.ZodDate:return LW(T,J);case x.ZodUndefined:return B8();case x.ZodNull:return H8(J);case x.ZodArray:return $8(T,J);case x.ZodUnion:case x.ZodDiscriminatedUnion:return z8(T,J);case x.ZodIntersection:return X8(T,J);case x.ZodTuple:return V8(T,J);case x.ZodRecord:return yf(T,J);case x.ZodLiteral:return w8(T,J);case x.ZodEnum:return A8(T);case x.ZodNativeEnum:return G8(T);case x.ZodNullable:return D8(T,J);case x.ZodOptional:return _8(T,J);case x.ZodMap:return Y8(T,J);case x.ZodSet:return U8(T,J);case x.ZodLazy:return()=>T.getter()._def;case x.ZodPromise:return k8(T,J);case x.ZodNaN:case x.ZodNever:return K8();case x.ZodEffects:return W8(T,J);case x.ZodAny:return T8();case x.ZodUnknown:return y8();case x.ZodDefault:return f8(T,J);case x.ZodBranded:return Vf(T,J);case x.ZodReadonly:return L8(T,J);case x.ZodCatch:return F8(T,J);case x.ZodPipeline:return R8(T,J);case x.ZodFunction:case x.ZodVoid:case x.ZodSymbol:return;default:return((S)=>{return})($)}};function r(T,$,J=!1){let S=$.seen.get(T);if($.override){let A=$.override?.(T,$,S,J);if(A!==vX)return A}if(S&&!J){let A=m9(S,$);if(A!==void 0)return A}let F={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,F);let f=N8(T,T.typeName,$),W=typeof f==="function"?r(f(),$):f;if(W)P9(T,$,W);if($.postProcess){let A=$.postProcess(W,T,$);return F.jsonSchema=W,A}return F.jsonSchema=W,W}var m9=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:v9($.currentPath,T.path)};case"none":case"seen":{if(T.path.length<$.currentPath.length&&T.path.every((J,S)=>$.currentPath[S]===J))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},v9=(T,$)=>{let J=0;for(;J<T.length&&J<$.length;J++)if(T[J]!==$[J])break;return[(T.length-J).toString(),...$.slice(J)].join("/")},P9=(T,$,J)=>{if(T.description){if(J.description=T.description,$.markdownDescription)J.markdownDescription=T.description}return J};var C8=(T,$)=>{let J=nX($),S=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((X,[w,M])=>({...X,[w]:r(M._def,{...J,currentPath:[...J.basePath,J.definitionPath,w]},!0)??{}}),{}):void 0,F=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,f=r(T._def,F===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,F]},!1)??{},W=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(W!==void 0)f.title=W;let A=F===void 0?S?{...f,[J.definitionPath]:S}:f:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,F].join("/"),[J.definitionPath]:{...S,[F]:f}};if(J.target==="jsonSchema7")A.$schema="http://json-schema.org/draft-07/schema#";else if(J.target==="jsonSchema2019-09"||J.target==="openAi")A.$schema="https://json-schema.org/draft/2019-09/schema#";if(J.target==="openAi"&&(("anyOf"in A)||("oneOf"in A)||("allOf"in A)||("type"in A)&&Array.isArray(A.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return A};var x8=C8;function j8(T,$){return function J({schema:S,fallback:F}){let f=x8(S);return async function W(A,X=3){let w,M=[];while(M.length<X){w=await T(A,f,F,M);let Y=S.safeParse(w);if(Y.success)return Y.data;$?.warn(`safegen failed to generate well-formed data.
|
|
13
|
+
${H.trace}`:`No previous disposal trace for ${F} was found.`),J}let Y=YT($),A=X.molecules.get(Y);if(!A){let H=T.disposalTraces.buffer.find((f)=>f?.key===Y);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${Y} in store "${T.config.name}".`,H?`
|
|
14
|
+
${Y} was most recently disposed
|
|
15
|
+
${H.trace}`:`No previous disposal trace for ${Y} was found.`),J}let w=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:S.stringKey}).filter(([,{source:H}])=>H!==F).map(([H])=>$$(H));if(W)X.moleculeGraph.delete(F);X.moleculeGraph.set({upstreamMoleculeKey:A.stringKey,downstreamMoleculeKey:S.stringKey},{source:A.stringKey});let G={type:"molecule_transfer",key:S.key,from:w,to:[A.key]};if(QT(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.updates.push(G);return J}function E2(T,$,J){switch($){case"newValue":{VS(T,J);break}case"oldValue":{W0(J,T.token);break}}}function R2(T,$,J){switch($){case"newValue":{W0(J,T.token);break}case"oldValue":{if(VS(T,J),T.subType==="atom")J.valueMap.set(T.token.key,T.value);break}}}function VS(T,$){let{family:J}=T.token;if(J){let W=$.families.get(J.key);if(W)a($,W,$$(J.subKey))}}function BS(T,$,J){switch($){case"newValue":T0(J,T.provenance,T.key);break;case"oldValue":$0(J,T.key);break}}function LS(T,$,J){switch($){case"newValue":$0(J,T.key);break;case"oldValue":{let W=T.provenance.map($$);T0(J,W,T.key);for(let[F,X]of T.values){let S=J.families.get(F);if(S){a(J,S,T.key);let Y=`${F}(${YT(T.key)})`;J.valueMap.set(Y,X)}}}break}}function yS(T,$,J){switch($){case"newValue":{let W=T.to.length===1?T.to[0]:T.to;p0(J,W,T.key,"exclusive")}break;case"oldValue":{let W=T.from.length===1?T.from[0]:T.from;p0(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":BS(F,T,J);break;case"molecule_disposal":LS(F,T,J);break;case"molecule_transfer":yS(F,T,J);break;case"transaction_update":BF(T,F,J);break}}function U2(T,$){return T.transactionMeta.actionContinuities.getRelatedKey($)}function dw(T,$){return T.transactionMeta.epoch.get($)}function NS(T,$){if(!X$(T))return;let W=U2(T,$);if(W===void 0)return;return dw(T,W)}function CS(T,$,J){if(X$(T)&&$)T.transactionMeta.epoch.set($,J)}function xS(T,$,J){if(!X$(T))return;let F=U2(T,$);if(F!==void 0)T.transactionMeta.epoch.set(F,J)}var jS=(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))xS(W,J.transactionMeta.update.key,J.transactionMeta.update.epoch),OT($,{key:J.transactionMeta.update.key,type:"transaction"})?.subject.next(J.transactionMeta.update),$.logger.info("\uD83D\uDEEC","transaction",J.transactionMeta.update.key,"Finished applying transaction.");else if(QT(W))W.transactionMeta.update.updates.push(J.transactionMeta.update);W.on.transactionApplying.next(null)};function ZS(T,$,J){if(!X$(T))return;let{epoch:F,actionContinuities:X}=T.transactionMeta;if(X.set($,J),!F.has($))F.set($,-1)}function qS(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,S=T.disposalTraces.buffer.find((Y)=>Y?.key===X);switch(T.logger.error("\u274C",J.type,J.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,S?`This state was previously disposed:
|
|
16
|
+
${S.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(W.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(W.key))return T.defaults.get(J.family.key);let Y=OT(T,W).default(X);return T.defaults.set(W.key,Y),Y}}}return vJ(T,OT(T,J))}class tT{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,$)=>`${T}:${$}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,$){let J=this.relations.get(T),W=this.relations.get($);if(J)J.add($);else J=new Set([$]),this.relations.set(T,J);if(W)W.add(T);else W=new Set([T]),this.relations.set($,W)}deleteRelation(T,$){let J=this.relations.get(T);if(J){if(J.delete($),J.size===0)this.relations.delete(T);let W=this.relations.get($);if(W){if(W.delete(T),W.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let J of $){let W=new Set().add(T);this.relations.set(J,W)}}replaceRelationsSafely(T,$){let J=this.relations.get(T),W=this.isAType?.(T)?T:void 0,F=W===void 0?T:void 0;if(J)for(let X of J){W??=X,F??=X;let S=this.relations.get(X);if(S){if(S.size===1)this.relations.delete(X);else S.delete(T);this.contents.delete(this.makeContentKey(W,F))}}this.relations.set(T,new Set($));for(let X of $){let S=this.relations.get(X);if(S)S.add(T);else S=new Set().add(T),this.relations.set(X,S)}}getContentInternal(T){return this.contents.get(T)}setContent(T,$){this.contents.set(T,$)}deleteContent(T){this.contents.delete(T)}constructor(T,$){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!$?.externalStore)this.relations=new Map(T.relations?.map(([J,W])=>[J,new Set(W)])),this.contents=new Map(T.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let J=$.externalStore;if(this.has=(W,F)=>J.has(W,F),this.addRelation=(W,F)=>{J.addRelation(W,F)},this.deleteRelation=(W,F)=>{J.deleteRelation(W,F)},this.replaceRelationsSafely=(W,F)=>{J.replaceRelationsSafely(W,F)},this.replaceRelationsUnsafely=(W,F)=>{J.replaceRelationsUnsafely(W,F)},this.getRelatedKeys=(W)=>J.getRelatedKeys(W),J.getContent)this.getContentInternal=(W)=>{return J.getContent(W)},this.setContent=(W,F)=>{J.setContent(W,F)},this.deleteContent=(W)=>{J.deleteContent(W)};for(let[W,F]of T.relations??[]){let X=this.isAType?.(W)?W:void 0,S=X===void 0?W:void 0;for(let Y of F)X??=Y,S??=Y,this.addRelation(X,S)}for(let[W,F]of T.contents??[])this.setContent(W,F)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,$])=>[T,[...$]]),contents:[...this.contents.entries()]}}set(...T){let $,J,W;switch(T.length){case 1:{let F=T[0];$=F[this.a],J=F[this.b],W=void 0;break}case 2:{let F=T[0];if(typeof F==="string")[$,J]=T;else $=F[this.a],J=F[this.b],W=T[1];break}default:{$=T[0],J=T[1],W=T[2];break}}switch(this.cardinality){case"1:1":{let F=this.getRelatedKey($);if(F&&F!==J)this.delete($,F)}case"1:n":{let F=this.getRelatedKey(J);if(F&&F!==$)this.delete(F,J)}break;case"n:n":}if(W){let F=this.makeContentKey($,J);this.setContent(F,W)}return this.addRelation($,J),this}delete(T,$){$=typeof $==="string"?$:T[this.b];let J=typeof T==="string"?T:T[this.a];if(J===void 0&&typeof $==="string"){let W=this.getRelatedKeys($);if(W)for(let F of W)this.delete(F,$)}if(typeof J==="string"&&$===void 0){let W=this.getRelatedKeys(J);if(W)for(let F of W)this.delete(J,F)}if(typeof J==="string"&&typeof $==="string"){this.deleteRelation(J,$);let W=this.makeContentKey(J,$);this.deleteContent(W)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((W)=>`"${W}"`).join(", ")}). Only one related key was expected.`);let J;for(let W of $){J=W;break}return J}}replaceRelations(T,$,J){let W=!Array.isArray($),F=W?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,F);else this.replaceRelationsSafely(T,F);if(W)for(let X of F){let S=this.makeContentKey(T,X),Y=$[X];this.setContent(S,Y)}return this}getContent(T,$){let J=this.makeContentKey(T,$);return this.getContentInternal(J)}getRelationEntries(T){let $=T[this.a],J=T[this.b];if($!==void 0&&J===void 0){let W=this.getRelatedKeys($);if(W)return[...W].map((F)=>{return[F,this.getContent($,F)]})}if($===void 0&&J!==void 0){let W=this.getRelatedKeys(J);if(W)return[...W].map((F)=>{return[F,this.getContent(F,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class g$ extends Map{deleted=new Set;source;constructor(T){super();this.source=T}get(T){if(super.has(T))return super.get(T);if(!this.deleted.has(T)&&this.source.has(T))return this.source.get(T);return}set(T,$){return this.deleted.delete(T),super.set(T,$)}hasOwn(T){return super.has(T)}has(T){return!this.deleted.has(T)&&(super.has(T)||this.source.has(T))}delete(T){return this.deleted.add(T),super.delete(T)}}var IS=(T,$,J,W)=>{let F=P(T),X={parent:F,child:null,on:F.on,loggers:F.loggers,logger:F.logger,config:F.config,atoms:new g$(F.atoms),atomsThatAreDefault:new Set(F.atomsThatAreDefault),families:new g$(F.families),joins:new g$(F.joins),operation:{open:!1},readonlySelectors:new g$(F.readonlySelectors),timelines:new g$(F.timelines),timelineTopics:new tT(F.timelineTopics.toJSON()),trackers:new Map,transactions:new g$(F.transactions),selectorAtoms:new tT(F.selectorAtoms.toJSON()),selectorGraph:new tT(F.selectorGraph.toJSON(),{makeContentKey:(...w)=>w.sort().join(":")}),selectors:new g$(F.selectors),valueMap:new g$(F.valueMap),defaults:F.defaults,disposalTraces:T.disposalTraces.copy(),molecules:new g$(F.molecules),moleculeGraph:new tT(F.moleculeGraph.toJSON(),{makeContentKey:F.moleculeGraph.makeContentKey}),moleculeData:new tT(F.moleculeData.toJSON(),{makeContentKey:F.moleculeData.makeContentKey}),moleculeJoins:new tT(F.moleculeJoins.toJSON(),{makeContentKey:F.moleculeJoins.makeContentKey}),miscResources:new g$(F.miscResources)},S=NS(T,$),Y={phase:"building",update:{type:"transaction_update",key:$,id:W,epoch:S===void 0?Number.NaN:S+1,updates:[],params:J,output:void 0},toolkit:{get:(...w)=>fT(A,...w),set:(...w)=>{gT(A,...w)},run:(w,G=fF())=>o0(A,w,G),find:(w,G)=>a(A,w,G),json:(w)=>iT(A,w),dispose:(...w)=>{W0(A,...w)},env:()=>qS(A)}},A=Object.assign(X,{transactionMeta:Y});return F.child=A,T.logger.info("\uD83D\uDEEB","transaction",$,"Building transaction with params:",J),A};function _2(T,$){let J={key:$.key,type:"transaction",run:(X,S)=>{let Y=IS(T,$.key,X,S);try{let A=P(T),{toolkit:w}=Y.transactionMeta,G=$.do(w,...X);return jS(G,A),G}catch(A){throw MS(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 bS{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new tT({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new tT({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new tT({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new tT({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new QF(100);molecules=new Map;moleculeJoins=new tT({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new tT({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new tT({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new XT,atomDisposal:new XT,selectorCreation:new XT,selectorDisposal:new XT,timelineCreation:new XT,transactionCreation:new XT,transactionApplying:new O2(null),operationClose:new XT,moleculeCreation:new XT,moleculeDisposal:new XT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new f2("warn",(T,$,J)=>!PJ(J))];logger={error:(...T)=>{for(let $ of this.loggers)$.error(...T)},info:(...T)=>{for(let $ of this.loggers)$.info(...T)},warn:(...T)=>{for(let $ of this.loggers)$.warn(...T)}};constructor(T,$=null){if(this.config={...$?.config,...T},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},X$($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new tT($?.transactionMeta.actionContinuities.toJSON())};for(let[,W]of $.families){if(W.internalRoles?.includes("mutable")||W.internalRoles?.includes("join"))continue;W.install(this)}let J=new Set;for(let[,W]of $.atoms){if(J.has(W.key))continue;if(W.install(this),W.type==="mutable_atom"){let F=iT($,W),X=EJ(W);J.add(F.key),J.add(X.key)}}for(let[,W]of $.readonlySelectors)W.install(this);for(let[,W]of $.selectors){if(J.has(W.key))continue;W.install(this)}for(let[,W]of $.transactions)W.install(this);for(let[,W]of $.timelines)W.install(this)}}}var AT={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new bS({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function OT(T,$){let J,W=T;while(W!==null){switch($.type){case"atom":case"mutable_atom":J=W.atoms.get($.key);break;case"selector":J=W.selectors.get($.key);break;case"readonly_selector":J=W.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":J=W.families.get($.key);break;case"timeline":J=W.timelines.get($.key);break;case"transaction":J=W.transactions.get($.key);break}if(J)return J;W=W.child}throw new J0($,T)}function vS(T,$,J){let W=T.families.get($.key);if(W===void 0)throw new J0($,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 PS(T,$,J){let W=YT(J),F=`${$.key}(${W})`,X=P(T),S;switch($.type){case"atom_family":case"mutable_atom_family":S=X.atoms.get(F);break;case"selector_family":S=X.selectors.get(F);break;case"readonly_selector_family":S=X.readonlySelectors.get(F);break}if(S)return k$(S);return S}function a(T,$,J){let W=PS(T,$,J);if(W)return W;let F=YT(J),X=T.molecules.get(F);if(!X&&T.config.lifespan==="immortal"){let S=WS($,J);return T.logger.error("\u274C",S.type,S.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),S}if(W=vS(T,$,J),X)P(T).moleculeData.set(F,$.key);return W}function W0(T,...$){let J;if($.length===1)J=$[0];else{let W=$[0],F=$[1];J=a(T,W,F)}try{OT(T,J)}catch(W){T.logger.error("\u274C",J.type,J.key,`could not be disposed because it was not found in the store "${T.config.name}".`);return}switch(J.type){case"atom":case"mutable_atom":k2(T,J);break;case"selector":case"readonly_selector":hS(T,J);break}}var LF=(T,$)=>P(T).atoms.has($),uw=(T,$)=>P(T).selectors.has($),iw=(T,$)=>P(T).readonlySelectors.has($),mS=(T,$)=>LF(T,$)||uw(T,$)||iw(T,$);var yF=(T,$)=>{return P($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([W,{source:F}])=>F!==T).map(([W,{source:F}])=>F).filter((W)=>mS($,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},gS=(T,$)=>{let J=T.key,W=yF(J,$),F=new Set;return W.flatMap((X)=>LF($,X)?X:V2(X,F,$))};var cS=(T,$,J,W)=>{let F=P(W);if($.type==="atom"||$.type==="mutable_atom")F.selectorAtoms.set({selectorKey:T,atomKey:$.key}),W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let X=V2($.key,J,W);W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${X.map((S)=>`"${S}"`).join(", ")} ]`);for(let S of X)F.selectorAtoms=F.selectorAtoms.set({selectorKey:T,atomKey:S})}J.add($.key)};var NF=(T,$,J)=>({get:(...W)=>{let F=P(J),X;if(W.length===2){let[A,w]=W;X=a(J,A,w)}else[X]=W;let S=OT(J,X),Y=vJ(J,S);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${X.key}" =`,Y,")"),F.selectorGraph.set({upstreamSelectorKey:X.key,downstreamSelectorKey:T},{source:X.key}),cS(T,X,$,J),Y},set:(...W)=>{let F,X;if(W.length===2)F=W[0],X=W[1];else{let A=W[0],w=W[1];X=W[2],F=a(J,A,w)}let S=P(J),Y=OT(S,F);kF(S,Y,X)},find:(W,F)=>a(J,W,F),json:(W)=>iT(J,W)});var i1=(T,$,J)=>{let W=P(T),F=new XT,X=new Set,{get:S,find:Y,json:A}=NF($.key,X,W),w=()=>{let f=$.get({get:S,find:Y,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,S=NF($.key,X,W),{find:Y,get:A,json:w}=S,G={find:Y,get:A,json:w},M=(y=$.get,j=P(T))=>{let L=y(G);return m$(j,$.key,L,F),X.clear(),L},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),d0(j,$.key),X$(j))F.next({newValue:Z,oldValue:L});$.set(S,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 hS(T,$){let J=P(T),{key:W}=$,F=OT(J,$);if(!F.family)T.logger.error("\u274C","selector",W,"Standalone selectors cannot be disposed.");else{if(J.molecules.get(F.family.subKey))J.moleculeData.delete(F.family.subKey,F.family.key);let S;switch($.type){case"selector":J.selectors.delete(W),S={key:F.family.key,type:"selector_family"},OT(T,S).subject.next({type:"state_disposal",subType:"selector",token:$});break;case"readonly_selector":J.readonlySelectors.delete(W),S={key:F.family.key,type:"readonly_selector_family"},OT(T,S).subject.next({type:"state_disposal",subType:"selector",token:$});break}if(J.valueMap.delete(W),J.selectorAtoms.delete(W),J.selectorGraph.delete(W),T.logger.info("\uD83D\uDD25",$.type,W,"deleted"),QT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:$});else T.on.selectorDisposal.next($)}}function 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 ${SJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,Y=Object.assign((A)=>{let w=YT(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),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,Y),W}function nS(T,$,J){return t1(T,{key:`${$.key}:JSON`,get:(F)=>({get:X})=>{let S=X($,F);return J.toJson(S)},set:(F)=>({set:X},S)=>{X($,F,J.fromJson(S))}},["mutable","json"])}var $$=(T)=>JSON.parse(T),YT=(T)=>JSON.stringify(T),TQ=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var pS=(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 gS($,T).map((F)=>{let X=J.atoms.get(F);if(X===void 0)throw new Error(`Atom "${F}", a dependency of selector "${$.key}", not found in store "${T.config.name}".`);return X.subject.subscribe(`${$.type}:${$.key}`,(S)=>{T.logger.info("\uD83D\uDCE2",$.type,$.key,"root",F,"went",S.oldValue,"->",S.newValue);let Y=pS(J,$),A=vJ(J,$);T.logger.info("\u2728",$.type,$.key,"went",Y,"->",A),$.subject.next({newValue:A,oldValue:Y})})})};function O$(T,$,J,W){function F(M){if(T.operation.open){let H=T.on.operationClose.subscribe(`state subscription ${J}`,()=>{H(),W(M)})}else W(M)}let X=OT(T,$);T.logger.info("\uD83D\uDC40",X.type,X.key,`Adding subscription "${J}"`);let S=X.type==="selector"||X.type==="readonly_selector",Y=null,A=F;if(S)Y=y2(T,X),A=(M)=>{if(Y)Y.length=0,Y.push(...y2(T,X));F(M)};let w=X.subject.subscribe(J,A);return()=>{if(T.logger.info("\uD83D\uDE48",X.type,X.key,`Removing subscription "${J}"`),w(),Y)for(let M of Y)M()}}var B2=(T,$,J,W)=>{let F=OT(T,$);T.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${J}"`);let X=F.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${J}" from timeline`),X()}};var L2=(T,$,J,W)=>{let F=OT(T,$);T.logger.info("\uD83D\uDC40","transaction",$.key,`Adding subscription "${J}"`);let X=F.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","transaction",$.key,`Removing subscription "${J}"`),X()}};class F0{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=O$(J,T,W,(X)=>{if(X.newValue!==X.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=X.newValue.subscribe(W,(S)=>{gT(J,$,S)})})}updateCore(T,$,J){let W=`tracker:${J.config.name}:${QT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;O$(J,$,W,({newValue:F,oldValue:X})=>{let S=J.timelineTopics.getRelatedKey($.key);if(S){if(J.timelines.get(S)?.timeTraveling){let w=B2(J,{key:S,type:"timeline"},W,(G)=>{w(),gT(J,T,(M)=>{if(G==="redo"&&F)M.do(F);else if(G==="undo"&&X)M.undo(X);return M})});return}}let Y=J.on.operationClose.subscribe(W,()=>{Y();let A=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,S={...$,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)S.family=J;let Y=$.default();W.atoms.set(S.key,S),CF(T,$.key),m$(W,$.key,Y,X);let A=k$(S);if($.effects){let w=0,G=[];for(let M of $.effects){let H=M({setSelf:(f)=>{gT(T,A,f)},onSet:(f)=>O$(T,A,`effect[${w}]`,f)});if(H)G.push(H);++w}S.cleanup=()=>{for(let M of G)M()}}if(new F0(A,T),!J)$S(A,$,T);return A}class N2{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=DJ($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=OT($,J),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(W)=>{let{type:F,token:X}=W;if(X.family){let S=$$(X.family.subKey);switch(F){case"state_creation":this.trackers.set(S,new F0(X,$));break;case"state_disposal":{let Y=this.trackers.get(S);if(Y)Y[Symbol.dispose](),this.trackers.delete(S)}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 ${SJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let X=new XT,Y=Object.assign((A)=>{let w=YT(A),G={key:$.key,subKey:w},M=`${$.key}(${w})`,H=P(T),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,Y),nS(T,Y,$),new N2(Y,T),W}var C2=(T,$)=>{let J=P($),W=`${T.key}:JSON`;return J.families.get(W)};var iT=(T,$)=>{if($.family){let W=P(T),X={key:`${$.family.key}:JSON`,type:"selector_family"},S=OT(W,X),Y=JSON.parse($.family.subKey);return a(T,S,Y)}return{type:"selector",key:`${$.key}:JSON`}};var EJ=(T)=>{let J={type:"atom",key:`*${T.key}`};if(T.family)J.family={key:`*${T.family.key}`,subKey:T.family.subKey};return J};function ES(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),S=$.fromJson(X);return T.valueMap.set($.key,S),new F0($,J),S}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((S)=>{m$(T,$,S,W),W.next({newValue:S,oldValue:X})}).catch((S)=>{T.logger.error("\uD83D\uDCA5","state",$,"rejected:",S)}),X}return T.valueMap.set($,J),J}var HS=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&QT($)){let{parent:W}=$;J=a1($,T,W)}return J},DS=(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 RS=(T,$)=>{return P(T).atomsThatAreDefault.has($)},CF=(T,$)=>{let J=P(T);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add($)},US=(T,$)=>{let J=P(T);J.atomsThatAreDefault=new Set(P(T).atomsThatAreDefault),J.atomsThatAreDefault.delete($)};function N$(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=P(T),F=W.atoms.get($.key);if(F&&F.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),k$(F);let X=new XT,S={...$,type:"atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),N$(w,$,J)},subject:X};if(J)S.family=J;let Y=$.default;if($.default instanceof Function)Y=$.default();W.atoms.set(S.key,S),CF(T,$.key),m$(W,$.key,Y,X);let A=k$(S);if($.effects){let w=0,G=[];for(let M of $.effects){let H=M({setSelf:(f)=>{gT(T,A,f)},onSet:(f)=>O$(T,A,`effect[${w}]`,f)});if(H)G.push(H);++w}S.cleanup=()=>{for(let M of G)M()}}return A}function FS(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=OT(J,$);if(!F)T.logger.error("\u274C","atom",W,"Standalone atoms cannot be disposed.");else{X.cleanup?.();let S=T.valueMap.get(X.key),Y=OT(T,{key:F.key,type:"atom_family"}),A={type:"state_disposal",subType:"atom",token:$,value:S};Y.subject.next(A);let w=QT(J);if(J.atoms.delete(W),J.valueMap.delete(W),J.selectorAtoms.delete(W),J.atomsThatAreDefault.delete(W),T.timelineTopics.delete(W),$.type==="mutable_atom"){let G=EJ($);k2(T,G),T.trackers.delete(W)}if(T.logger.info("\uD83D\uDD25","atom",W,"deleted"),w&&J.transactionMeta.phase==="building"){let G=J.transactionMeta.update.updates.at(-1);if(!(G?.type==="molecule_disposal"&&G.values.some(([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:${YT(T)}`);return $}clear(){let T=this.mode==="record"?[...this]:null;if(super.clear(),T)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(T)}`)}delete(T){let $=super.delete(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${YT(T)}`);return $}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new lT(this);let $=this.child._subscribe("transaction",(J)=>{this.transactionUpdates?.push(J)});try{if(T(this.child)){for(let W of this.transactionUpdates)this.doStep(W);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(J){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",J),J}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,$){return this.subject.subscribe(T,$)}subscribe(T,$){return this.subject.subscribe(T,(J)=>{$(`${this.cacheUpdateNumber}=${J}`)})}emit(T){this.subject.next(T)}doStep(T){let $=T.indexOf(":"),J=T.substring(0,$),W=T.substring($+1);switch(J){case"add":this.add(JSON.parse(W));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(W));break;case"tx":for(let F of W.split(";"))this.doStep(F)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),J=Number(T.substring(0,$)),W=J-this.cacheUpdateNumber;if(W>0){if(W===1){this.mode="playback";let X=T.substring($+1);return this.doStep(X),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(W)<this.cacheLimit){let X=this.cacheIdx+W;if(this.cache[X]===T)return null;this.mode="playback";let Y=!1;while(!Y){this.cacheIdx%=this.cacheLimit;let w=this.cache[this.cacheIdx];if(this.cacheIdx--,!w)return"OUT_OF_RANGE";this.undo(w),Y=this.cacheIdx===X-1}let A=T.substring($+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=J,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),J=T.substring(0,$),W=T.substring($+1);switch(J){case"add":this.delete(JSON.parse(W));break;case"del":this.add(JSON.parse(W));break;case"clear":{let F=JSON.parse(W);for(let X of F)this.add(X);break}case"tx":{let F=W.split(";");for(let X=F.length-1;X>=0;X--)this.undoStep(F[X])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let W=T.substring($+1);return this.undoStep(W),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class 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 S=({get:E},V)=>E(X,V),Y=({set:E},V,B)=>{if(!this.store.molecules.has(YT(V)))this.realm.allocate(T.key,V);E(X,V,(k)=>k.add(B)),E(X,B,(k)=>k.add(V))},A=({set:E},V,B)=>{E(X,V,(k)=>{return k.delete(B),k}),E(X,B,(k)=>{return k.delete(V),k})},w=(E,V,B)=>{let{find:k,get:b,set:r}=E,U=k(X,V),e=b(U);for(let p of e){if(B.includes(p))continue;r(X,p,(DT)=>{return DT.delete(V),DT})}r(U,(p)=>{return p.transaction(($T)=>{$T.clear();for(let DT of B){let PT=S(E,DT),_$=PT.has(V);if(this.relations.cardinality==="1:n"){let KJ=[];for(let N of PT){if(N===V)continue;let i=S(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(),zT=`"${i[0]}:${i[1]}"`;this.molecules.delete(zT)}}if(!_$)PT.add(V);$T.add(DT)}return!0}),p})},G=(E,V,B)=>{let{set:k}=E;k(X,V,(b)=>{return b.transaction((r)=>{for(let U of B)r.add(U);return!0}),b});for(let b of B)k(X,b,(r)=>{return r.add(V),r});return!0},M=(E,V,B)=>{let k=S(E,V);return B?k.has(B):k.size>0},H={getRelatedKeys:(E)=>S(this.toolkit,E),addRelation:(E,V)=>{this.store.moleculeJoins.set(E,T.key),this.store.moleculeJoins.set(V,T.key),Y(this.toolkit,E,V)},deleteRelation:(E,V)=>{A(this.toolkit,E,V)},replaceRelationsSafely:(E,V)=>{w(this.toolkit,E,V)},replaceRelationsUnsafely:(E,V)=>{G(this.toolkit,E,V)},has:(E,V)=>M(this.toolkit,E,V)},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(YT(V)),U=J.molecules.get(YT(B));if(!r)this.realm.allocate(T.key,V);if(!U)this.realm.allocate(T.key,B);return this.realm.allocate(V,b,"all"),this.realm.claim(B,b),this.store.moleculeJoins.set(b,T.key),b}}),y=()=>QJ(J,{key:`${T.key}/singleRelatedKey`,get:(E)=>({get:V})=>{let B=V(X,E);for(let k of B)return k;return null}},["join","keys"]),j=()=>{return QJ(J,{key:`${T.key}/multipleRelatedKeys`,get:(E)=>({get:V})=>{let B=C2(X,J);return V(B,E).members}},["join","keys"])},L=()=>QJ(J,{key:`${T.key}/singleRelatedEntry`,get:(E)=>({get:V})=>{let B=V(X,E);for(let k of B){let b=R.isAType?.(E)?E:void 0,r=b===void 0?E:void 0;b??=k,r??=k;let U=R.makeContentKey(b,r),e=V(D,U);return[k,e]}return null}},["join","entries"]),Z=()=>QJ(J,{key:`${T.key}/multipleRelatedEntries`,get:(E)=>({get:V})=>{let B=C2(X,J);return V(B,E).members.map((b)=>{let r=R.isAType?.(E)?E:void 0,U=r===void 0?E:void 0;r??=b,U??=b;let e=R.makeContentKey(r,U),p=V(D,e);return[b,p]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let E=y(),V=`${W}KeyOf${ET(F)}`,B=`${F}KeyOf${ET(W)}`,k={[V]:E,[B]:E},b;if($){let r=L(),U=`${W}EntryOf${ET(F)}`,e=`${F}EntryOf${ET(W)}`,p={[U]:r,[e]:r};b=Object.assign(k,p)}else b=k;this.relations=R,this.states=b;break}case"1:n":{let E=y(),V=j(),B=`${W}KeyOf${ET(F)}`,k=`${F}KeysOf${ET(W)}`,b={[B]:E,[k]:V},r;if($){let U=L(),e=Z(),p=`${W}EntryOf${ET(F)}`,$T=`${F}EntriesOf${ET(W)}`,DT={[p]:U,[$T]:e};r=Object.assign(b,DT)}else r=b;this.relations=R,this.states=r;break}case"n:n":{let E=j(),V=`${W}KeysOf${ET(F)}`,B=`${F}KeysOf${ET(W)}`,k={[V]:E,[B]:E},b;if($){let r=Z(),U=`${W}EntriesOf${ET(F)}`,e=`${F}EntriesOf${ET(W)}`,p={[U]:r,[e]:r};b=Object.assign(k,p)}else b=k;this.relations=R,this.states=b}}}}function u0(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=u0(T,J),F=P(J);if(QT(F)){let{toolkit:X}=F.transactionMeta;W.transact(X,({relations:S})=>{$(S)})}else $(W.relations)}function RF(T,$,J){let W=u0(T,J),F;switch(T.cardinality){case"1:1":{let X=`${T.a}KeyOf${ET(T.b)}`,S=`${T.b}KeyOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[S](){let A=W.states[S];return a(J,A,$)}};let Y=`${T.a}EntryOf${ET(T.b)}`;if(Y in W.states){let A=`${T.b}EntryOf${ET(T.a)}`;Object.assign(F,{get[Y](){let w=W.states[Y];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}break}case"1:n":{let X=`${T.a}KeyOf${ET(T.b)}`,S=`${T.b}KeysOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[S](){let A=W.states[S];return a(J,A,$)}};let Y=`${T.a}EntryOf${ET(T.b)}`;if(Y in W.states){let A=`${T.b}EntriesOf${ET(T.a)}`;Object.assign(F,{get[Y](){let w=W.states[Y];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}break}case"n:n":{let X=`${T.a}KeysOf${ET(T.b)}`,S=`${T.b}KeysOf${ET(T.a)}`;F={get[X](){let A=W.states[X];return a(J,A,$)},get[S](){let A=W.states[S];return a(J,A,$)}};let Y=`${T.a}EntriesOf${ET(T.b)}`;if(Y in W.states){let A=`${T.b}EntriesOf${ET(T.a)}`;Object.assign(F,{get[Y](){let w=W.states[Y];return a(J,w,$)},get[A](){let w=W.states[A];return a(J,w,$)}})}}}return F}function YS(T,$){return u0(T,$).core.relatedKeysAtoms}function PJ(T){return T.startsWith("\uD83D\uDD0D ")}class oS 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 oS;static create(T,$){let J=new xF(T),{type:W,globals:F,actions:X,perspectives:S}=$(J),Y={type:W,key:T,globals:F,actions:X,perspectives:S};return xF.existing.set(T,Y),Y}add(...T){switch(T[0].type){case"atom":case"mutable_atom":this.globals.push(...T);break;case"transaction":this.actions.push(...T);break;case"atom_family":case"mutable_atom_family":{let[J,W]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:J,viewAtoms:W})}break}return this}}function fU(T){let{key:$,config:J}=T,W=xF.create($,J),{actions:F}=W;for(let X of F)ZS(AT.STORE,$,X.key);return CS(AT.STORE,$,-1),W}var RU=n0({key:"usersInRoomIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),x2=n0({key:"roomIndex",default:()=>new lT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),tw={enteredAtEpoch:0},$W=EF({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},tw),UU=UF({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=SS($W);return[$(J,T)]}});import{spawn as lw}from"node:child_process";class i0{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 i0{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[$,...J]=T;switch($){case"i":this.logger.info(...J);break;case"w":this.logger.warn(...J);break;case"e":this.logger.error(...J);break;default:return}}}constructor(T,$,J){super((W,...F)=>{let X=JSON.stringify([W,...F])+"\x03",S=(Y)=>{if(Y.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",S)};return this.process.stdin.once("error",S),this.process.stdin.write(X),this});if(this.process=T,this.key=$,this.logger=J??{info:(...W)=>{console.info(this.id,this.key,...W)},warn:(...W)=>{console.warn(this.id,this.key,...W)},error:(...W)=>{console.error(this.id,this.key,...W)}},this.process.stdout.on("data",(W)=>{let F=W.toString();if(F==="ALIVE")return;this.unprocessedEvents.push(...F.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let S=$$(this.incompleteData);this.handleEvent(...S);while(this.unprocessedEvents.length>0){let Y=this.unprocessedEvents.shift();if(Y){if(this.unprocessedEvents.length===0)this.incompleteData=Y;S=$$(Y),this.handleEvent(...S)}}this.incompleteData=""}catch(S){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(S)}}),this.process.stderr.on("data",(W)=>{let F=W.toString();this.unprocessedLogs.push(...F.split("\x03"));let X=this.unprocessedLogs.shift();this.incompleteLog+=X??"";try{let S=$$(this.incompleteLog);this.handleLog(S);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)S=$$(this.incompleteLog),this.handleLog(S)}catch(S){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(S),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class dS extends i0{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 i0{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(YT(T.map(($)=>$ instanceof lT?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...$)=>{let J=JSON.stringify([T,...$]);return this.process.stdout.write(J+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let $=T.toString();this.unprocessedEvents.push(...$.split("\x03"));let J=this.unprocessedEvents.shift();this.incompleteData+=J??"";try{let W=$$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;let X=$$(F);this.handleEvent(...X)}}this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error("\u2757",W.message,W.cause,W.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let $=new dS(`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=eJ({key:"roomArguments",default:["echo",["Hello World!"]]}),uS=UF({key:"room",get:(T)=>async({get:$,find:J})=>{let W=J(q2,T),F=$(W),[X,S]=F,Y=await new Promise((A)=>{let w=lw(X,S,{env:process.env}),G=(M)=>{if(M.toString()==="ALIVE")w.stdout.off("data",G),A(w)};w.stdout.on("data",G)});return new j2(Y,T)}});var tU=s1({key:"createRoom",do:({get:T,set:$,find:J},W,F,X)=>{let S=X?[F,X]:[F],Y=J(q2,W);$(Y,S),$(x2,(G)=>G.add(W));let A=J(uS,W);return T(A)}}),lU=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}}),rU=s1({key:"leaveRoom",do:(T,$,J)=>{r1($W,(W)=>{W.delete({room:$,user:J})},T.env().store)}}),aU=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 T_=eJ({key:"redactor",default:{occlude:(T)=>T}}),t0=eJ({key:"unacknowledgedUpdates",default:()=>[]});var iS=eJ({key:"sockets",default:null}),F_=n0({key:"socketsIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),X_=n0({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 tS(T,$,J,W){let F=$.key;return function X(){let S=[];for(let A of $.globals){let w=A.type==="mutable_atom"?iT(T,A):A,G=fT(T,w);S.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);S.push(D,R)}}let Y=X$(T)?T.transactionMeta.epoch.get(F)??null:null;W?.emit(`continuity-init:${F}`,Y,S)}}function lS(T,$,J){let W=$.key;return function F(X){T.logger.info("\uD83D\uDECE\uFE0F","continuity",W,"received",X);let{key:S,id:Y}=X,A=`tx-run:${S}:${Y}`,w=`${A}:start`,G=`${A}:end`;performance.mark(w);try{o0(T,{type:"transaction",key:S},Y)(...X.params)}catch(H){if(H instanceof Error)T.logger.error("\u274C","continuity",W,`failed to run transaction ${S} from ${J} with update ${Y}`,H.message)}performance.mark(G);let M=performance.measure(A,w,G);T?.logger.info("\uD83D\uDE80","transaction",S,Y,J,M.duration)}}function rS(T,$,J,W){let F=$.key;return function X(S){if(T.logger.info("\uD83D\uDC4D","continuity",F,`${J} acknowledged epoch ${S}`),W[0]?.epoch===S)gT(T,t0,J,(A)=>{return A.shift(),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,A.length,"items"),A})}}function aS(T,$,J,W){let F=$.key,X=[];for(let S of $.actions){let Y=L2(T,S,`sync-continuity:${F}:${J}`,(A)=>{try{let w=$.globals.map((H)=>{if(H.type==="atom")return H.key;return EJ(H).key}).concat($.perspectives.flatMap((H)=>{let{viewAtoms: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,t0,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 ${S.key} to ${J}`,w.message)}});X.push(Y)}return X}function sS(T,$,J,W){let F=$.key,X=[];for(let S of $.perspectives){let{viewAtoms:Y}=S,A=a(T,Y,J),w=O$(T,A,`sync-continuity:${F}:${J}:perspective:${S.resourceAtoms.key}`,({oldValue:G,newValue:M})=>{let H=G.map((y)=>y.key),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",S.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 I_({socket:T,store:$=AT.STORE}){return function J(W){let F=T,X=W.key,S=RF(b2,`socket::${F.id}`,$).userKeyOfSocket,Y=fT($,S);if(!Y)return $.logger.error("\u274C","continuity",X,`Tried to create a synchronizer for a socket (${F.id}) that is not connected to a user.`),()=>{};let A=RF(b2,Y,$).socketKeyOfUser,w=O$($,A,`sync-continuity:${X}:${Y}`,({newValue:j})=>{if($.logger.info("\uD83D\uDC4B","continuity",X,`seeing ${Y} on new socket ${j}`),j===null){$.logger.warn("\u274C","continuity",X,`User (${Y}) is not connected to a socket, waiting for them to reappear.`);return}let L=a($,iS,j);F=fT($,L);for(let E of G)F?.emit(`tx-new:${X}`,E)}),G=fT($,t0,Y),M=[],H=sS($,W,Y,F),f=aS($,W,Y,F);M.push(...H,...f);let D=tS($,W,Y,T);F.off(`get:${X}`,D),F.on(`get:${X}`,D);let R=lS($,W,Y);F.off(`tx-run:${X}`,R),F.on(`tx-run:${X}`,R);let y=rS($,W,Y,G);return F?.on(`ack:${X}`,y),()=>{for(let j of M)j();F?.off(`ack:${X}`,y),F?.off(`get:${X}`,D),F?.off(`tx-run:${X}`,R)}}}var TY=Symbol("Let zodToJsonSchema decide on which parser to use");var eS={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"},$Y=(T)=>typeof T==="string"?{...eS,name:T}:{...eS,...T};var JY=(T)=>{let $=$Y(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([W,F])=>[F._def,{def:F._def,path:[...$.basePath,$.definitionPath,W],jsonSchema:void 0}]))}};function v2(T,$,J,W){if(!W?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function GT(T,$,J,W,F){T[$]=J,v2(T,$,W,F)}var MT;(function(T){T.assertEqual=(F)=>F;function $(F){}T.assertIs=$;function J(F){throw new Error}T.assertNever=J,T.arrayToEnum=(F)=>{let X={};for(let S of F)X[S]=S;return X},T.getValidEnumValues=(F)=>{let X=T.objectKeys(F).filter((Y)=>typeof F[F[Y]]!=="number"),S={};for(let Y of X)S[Y]=F[Y];return T.objectValues(S)},T.objectValues=(F)=>{return T.objectKeys(F).map(function(X){return F[X]})},T.objectKeys=typeof Object.keys==="function"?(F)=>Object.keys(F):(F)=>{let X=[];for(let S in F)if(Object.prototype.hasOwnProperty.call(F,S))X.push(S);return X},T.find=(F,X)=>{for(let S of F)if(X(S))return S;return},T.isInteger=typeof Number.isInteger==="function"?(F)=>Number.isInteger(F):(F)=>typeof F==="number"&&isFinite(F)&&Math.floor(F)===F;function W(F,X=" | "){return F.map((S)=>typeof S==="string"?`'${S}'`:S).join(X)}T.joinValues=W,T.jsonStringifyReplacer=(F,X)=>{if(typeof X==="bigint")return X.toString();return X}})(MT||(MT={}));var h2;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(h2||(h2={}));var 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"]),rw=(T)=>{return JSON.stringify(T,null,2).replace(/"([^"]+)":/g,"$1:")};class C$ extends Error{get errors(){return this.issues}constructor(T){super();this.issues=[],this.addIssue=(J)=>{this.issues=[...this.issues,J]},this.addIssues=(J=[])=>{this.issues=[...this.issues,...J]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=T}format(T){let $=T||function(F){return F.message},J={_errors:[]},W=(F)=>{for(let X of F.issues)if(X.code==="invalid_union")X.unionErrors.map(W);else if(X.code==="invalid_return_type")W(X.returnTypeError);else if(X.code==="invalid_arguments")W(X.argumentsError);else if(X.path.length===0)J._errors.push($(X));else{let S=J,Y=0;while(Y<X.path.length){let A=X.path[Y];if(Y!==X.path.length-1)S[A]=S[A]||{_errors:[]};else S[A]=S[A]||{_errors:[]},S[A]._errors.push($(X));S=S[A],Y++}}};return W(this),J}static assert(T){if(!(T instanceof C$))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,MT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=($)=>$.message){let $={},J=[];for(let W of this.issues)if(W.path.length>0)$[W.path[0]]=$[W.path[0]]||[],$[W.path[0]].push(T(W));else J.push(T(W));return{formErrors:J,fieldErrors:$}}get formErrors(){return this.flatten()}}C$.create=(T)=>{return new C$(T)};var s0=(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}},SY=s0;function aw(T){SY=T}function jF(){return SY}var ZF=(T)=>{let{data:$,path:J,errorMaps:W,issueData:F}=T,X=[...J,...F.path||[]],S={...F,path:X};if(F.message!==void 0)return{...F,path:X,message:F.message};let Y="",A=W.filter((w)=>!!w).slice().reverse();for(let w of A)Y=w(S,{data:$,defaultError:Y}).message;return{...F,path:X,message:Y}},sw=[];function v(T,$){let J=jF(),W=ZF({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===s0?void 0:s0].filter((F)=>!!F)});T.common.issues.push(W)}class z${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,$){let J=[];for(let W of $){if(W.status==="aborted")return TT;if(W.status==="dirty")T.dirty();J.push(W.value)}return{status:T.value,value:J}}static async mergeObjectAsync(T,$){let J=[];for(let W of $){let F=await W.key,X=await W.value;J.push({key:F,value:X})}return z$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let W of $){let{key:F,value:X}=W;if(F.status==="aborted")return TT;if(X.status==="aborted")return TT;if(F.status==="dirty")T.dirty();if(X.status==="dirty")T.dirty();if(F.value!=="__proto__"&&(typeof X.value!=="undefined"||W.alwaysSet))J[F.value]=X.value}return{status:T.value,value:J}}}var TT=Object.freeze({status:"aborted"}),r0=(T)=>({status:"dirty",value:T}),Q$=(T)=>({status:"valid",value:T}),m2=(T)=>T.status==="aborted",g2=(T)=>T.status==="dirty",X0=(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 YY(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 WY=(T,$)=>{if(X0($))return{success:!0,data:$.value};else{if(!T.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let J=new C$(T.common.issues);return this._error=J,this._error}}}};function JT(T){if(!T)return{};let{errorMap:$,invalid_type_error:J,required_error:W,description:F}=T;if($&&(J||W))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:F};return{errorMap:(S,Y)=>{var A,w;let{message:G}=T;if(S.code==="invalid_enum_value")return{message:G!==null&&G!==void 0?G:Y.defaultError};if(typeof Y.data==="undefined")return{message:(A=G!==null&&G!==void 0?G:W)!==null&&A!==void 0?A:Y.defaultError};if(S.code!=="invalid_type")return{message:Y.defaultError};return{message:(w=G!==null&&G!==void 0?G:J)!==null&&w!==void 0?w:Y.defaultError}},description:F}}class WT{get description(){return this._def.description}_getType(T){return UJ(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:UJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new z$,ctx:{common:T.parent.common,data:T.data,parsedType:UJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(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 WY(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 X0(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)=>X0(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 WY(J,F)}refine(T,$){let J=(W)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(W);else return $};return this._refinement((W,F)=>{let X=T(W),S=()=>F.addIssue({code:C.custom,...J(W)});if(typeof Promise!=="undefined"&&X instanceof Promise)return X.then((Y)=>{if(!Y)return S(),!1;else return!0});if(!X)return S(),!1;else return!0})}refinement(T,$){return this._refinement((J,W)=>{if(!T(J))return W.addIssue(typeof $==="function"?$(J,W):$),!1;else return!0})}_refinement(T){return new c$({schema:this,typeName:x.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return x$.create(this,this._def)}nullable(){return _J.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return l$.create(this)}promise(){return w0.create(this,this._def)}or(T){return J1.create([this,T],this._def)}and(T){return W1.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 Y1({...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 A1({...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 w1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var ew=/^c[^\s-]{8,}$/i,TG=/^[0-9a-z]+$/,$G=/^[0-9A-HJKMNP-TV-Z]{26}$/i,JG=/^[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,WG=/^[a-z0-9_-]{21}$/i,FG=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,XG=/^[-+]?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,YG="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",P2,AG=/^(?:(?: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])$/,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])\/(3[0-2]|[12]?[0-9])$/,GG=/^(([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]))$/,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]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,HG=/^([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}(=)?))?$/,AY="((\\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])))",zG=new RegExp(`^${AY}$`);function wY(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 KG(T){return new RegExp(`^${wY(T)}$`)}function GY(T){let $=`${AY}T${wY(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function fG(T,$){if(($==="v4"||!$)&&AG.test(T))return!0;if(($==="v6"||!$)&&GG.test(T))return!0;return!1}function DG(T,$){if(!FG.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 QG(T,$){if(($==="v4"||!$)&&wG.test(T))return!0;if(($==="v6"||!$)&&MG.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 z$,W=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.length<F.value)W=this._getOrReturnCtx(T,W),v(W,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="max"){if(T.data.length>F.value)W=this._getOrReturnCtx(T,W),v(W,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="length"){let X=T.data.length>F.value,S=T.data.length<F.value;if(X||S){if(W=this._getOrReturnCtx(T,W),X)v(W,{code:C.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});else if(S)v(W,{code:C.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});J.dirty()}}else if(F.kind==="email"){if(!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(YG,"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(!JG.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(!WG.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(!ew.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(!TG.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(!$G.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(!GY(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(!zG.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(!KG(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(!XG.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(!fG(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(!DG(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(!QG(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(!HG.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 EG(T,$){let J=(T.toString().split(".")[1]||"").length,W=($.toString().split(".")[1]||"").length,F=J>W?J:W,X=parseInt(T.toFixed(F).replace(".","")),S=parseInt($.toFixed(F).replace(".",""));return X%S/Math.pow(10,F)}class mJ extends WT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==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 z$;for(let F of this._def.checks)if(F.kind==="int"){if(!MT.isInteger(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:C.invalid_type,expected:"integer",received:"float",message:F.message}),W.dirty()}else if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_small,minimum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),W.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_big,maximum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),W.dirty()}else if(F.kind==="multipleOf"){if(EG(T.data,F.value)!==0)J=this._getOrReturnCtx(T,J),v(J,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),W.dirty()}else if(F.kind==="finite"){if(!Number.isFinite(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:C.not_finite,message:F.message}),W.dirty()}else MT.assertNever(F);return{status:W.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,o.toString($))}gt(T,$){return this.setLimit("min",T,!1,o.toString($))}lte(T,$){return this.setLimit("max",T,!0,o.toString($))}lt(T,$){return this.setLimit("max",T,!1,o.toString($))}setLimit(T,$,J,W){return new mJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(W)}]})}_addCheck(T){return new mJ({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:o.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:o.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:o.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:o.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:o.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:o.toString($)})}finite(T){return this._addCheck({kind:"finite",message:o.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:o.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:o.toString(T)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}get isInt(){return!!this._def.checks.find((T)=>T.kind==="int"||T.kind==="multipleOf"&&MT.isInteger(T.value))}get isFinite(){let T=null,$=null;for(let J of this._def.checks)if(J.kind==="finite"||J.kind==="int"||J.kind==="multipleOf")return!0;else if(J.kind==="min"){if($===null||J.value>$)$=J.value}else if(J.kind==="max"){if(T===null||J.value<T)T=J.value}return Number.isFinite($)&&Number.isFinite(T)}}mJ.create=(T)=>{return new mJ({checks:[],typeName:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class gJ extends WT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(F){return this._getInvalidInput(T)}if(this._getType(T)!==c.bigint)return this._getInvalidInput(T);let J=void 0,W=new z$;for(let F of this._def.checks)if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_small,type:"bigint",minimum:F.value,inclusive:F.inclusive,message:F.message}),W.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:C.too_big,type:"bigint",maximum:F.value,inclusive:F.inclusive,message:F.message}),W.dirty()}else if(F.kind==="multipleOf"){if(T.data%F.value!==BigInt(0))J=this._getOrReturnCtx(T,J),v(J,{code:C.not_multiple_of,multipleOf:F.value,message:F.message}),W.dirty()}else MT.assertNever(F);return{status:W.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected: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 gJ({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:o.toString(W)}]})}_addCheck(T){return new gJ({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:o.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:o.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:o.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:o.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:o.toString($)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}gJ.create=(T)=>{var $;return new gJ({checks:[],typeName:x.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...JT(T)})};class e0 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)}}e0.create=(T)=>{return new e0({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...JT(T)})};class S0 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 z$,W=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.getTime()<F.value)W=this._getOrReturnCtx(T,W),v(W,{code:C.too_small,message:F.message,inclusive:!0,exact:!1,minimum:F.value,type:"date"}),J.dirty()}else if(F.kind==="max"){if(T.data.getTime()>F.value)W=this._getOrReturnCtx(T,W),v(W,{code:C.too_big,message:F.message,inclusive:!0,exact:!1,maximum:F.value,type:"date"}),J.dirty()}else MT.assertNever(F);return{status:J.value,value:new Date(T.data.getTime())}}_addCheck(T){return new S0({...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}}S0.create=(T)=>{return new S0({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 T1 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)}}T1.create=(T)=>{return new T1({typeName:x.ZodUndefined,...JT(T)})};class $1 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)}}$1.create=(T)=>{return new $1({typeName:x.ZodNull,...JT(T)})};class Y0 extends WT{constructor(){super(...arguments);this._any=!0}_parse(T){return Q$(T.data)}}Y0.create=(T)=>{return new Y0({typeName:x.ZodAny,...JT(T)})};class hJ extends WT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return Q$(T.data)}}hJ.create=(T)=>{return new hJ({typeName:x.ZodUnknown,...JT(T)})};class YJ extends WT{_parse(T){let $=this._getOrReturnCtx(T);return v($,{code:C.invalid_type,expected:c.never,received:$.parsedType}),TT}}YJ.create=(T)=>{return new YJ({typeName:x.ZodNever,...JT(T)})};class SW 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)}}SW.create=(T)=>{return new SW({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,S=$.data.length<W.exactLength.value;if(X||S)v($,{code:X?C.too_big:C.too_small,minimum:S?W.exactLength.value:void 0,maximum:X?W.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:W.exactLength.message}),J.dirty()}if(W.minLength!==null){if($.data.length<W.minLength.value)v($,{code:C.too_small,minimum:W.minLength.value,type:"array",inclusive:!0,exact:!1,message:W.minLength.message}),J.dirty()}if(W.maxLength!==null){if($.data.length>W.maxLength.value)v($,{code:C.too_big,maximum:W.maxLength.value,type:"array",inclusive:!0,exact:!1,message:W.maxLength.message}),J.dirty()}if($.common.async)return Promise.all([...$.data].map((X,S)=>{return W.type._parseAsync(new r$($,X,$.path,S))})).then((X)=>{return z$.mergeArray(J,X)});let F=[...$.data].map((X,S)=>{return W.type._parseSync(new r$($,X,$.path,S))});return z$.mergeArray(J,F)}get element(){return this._def.type}min(T,$){return new l$({...this._def,minLength:{value:T,message:o.toString($)}})}max(T,$){return new l$({...this._def,maxLength:{value:T,message:o.toString($)}})}length(T,$){return new l$({...this._def,exactLength:{value:T,message:o.toString($)}})}nonempty(T){return this.min(1,T)}}l$.create=(T,$)=>{return new l$({type:T,minLength:null,maxLength:null,exactLength:null,typeName:x.ZodArray,...JT($)})};function l0(T){if(T instanceof bT){let $={};for(let J in T.shape){let W=T.shape[J];$[J]=x$.create(l0(W))}return new bT({...T._def,shape:()=>$})}else if(T instanceof l$)return new l$({...T._def,type:l0(T.element)});else if(T instanceof x$)return x$.create(l0(T.unwrap()));else if(T instanceof _J)return _J.create(l0(T.unwrap()));else if(T instanceof AJ)return AJ.create(T.items.map(($)=>l0($)));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(),S=[];if(!(this._def.catchall instanceof YJ&&this._def.unknownKeys==="strip")){for(let A in W.data)if(!X.includes(A))S.push(A)}let Y=[];for(let A of X){let w=F[A],G=W.data[A];Y.push({key:{status:"valid",value:A},value:w._parse(new r$(W,G,W.path,A)),alwaysSet:A in W.data})}if(this._def.catchall instanceof YJ){let A=this._def.unknownKeys;if(A==="passthrough")for(let w of S)Y.push({key:{status:"valid",value:w},value:{status:"valid",value:W.data[w]}});else if(A==="strict"){if(S.length>0)v(W,{code:C.unrecognized_keys,keys:S}),J.dirty()}else if(A==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let A=this._def.catchall;for(let w of S){let G=W.data[w];Y.push({key:{status:"valid",value:w},value:A._parse(new r$(W,G,W.path,w)),alwaysSet:w in W.data})}}if(W.common.async)return Promise.resolve().then(async()=>{let A=[];for(let w of Y){let G=await w.key,M=await w.value;A.push({key:G,value:M,alwaysSet:w.alwaysSet})}return A}).then((A)=>{return z$.mergeObjectSync(J,A)});else return z$.mergeObjectSync(J,Y)}get shape(){return this._def.shape()}strict(T){return o.errToObj,new bT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var W,F,X,S;let Y=(X=(F=(W=this._def).errorMap)===null||F===void 0?void 0:F.call(W,$,J).message)!==null&&X!==void 0?X:J.defaultError;if($.code==="unrecognized_keys")return{message:(S=o.errToObj(T).message)!==null&&S!==void 0?S:Y};return{message:Y}}}:{}})}strip(){return new bT({...this._def,unknownKeys:"strip"})}passthrough(){return new bT({...this._def,unknownKeys:"passthrough"})}extend(T){return new bT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new bT({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:x.ZodObject})}setKey(T,$){return this.augment({[T]:$})}catchall(T){return new bT({...this._def,catchall:T})}pick(T){let $={};return MT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new bT({...this._def,shape:()=>$})}omit(T){let $={};return MT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new bT({...this._def,shape:()=>$})}deepPartial(){return l0(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 MY(MT.objectKeys(this.shape))}}bT.create=(T,$)=>{return new bT({shape:()=>T,unknownKeys:"strip",catchall:YJ.create(),typeName:x.ZodObject,...JT($)})};bT.strictCreate=(T,$)=>{return new bT({shape:()=>T,unknownKeys:"strict",catchall:YJ.create(),typeName:x.ZodObject,...JT($)})};bT.lazycreate=(T,$)=>{return new bT({shape:T,unknownKeys:"strip",catchall:YJ.create(),typeName:x.ZodObject,...JT($)})};class J1 extends WT{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function W(F){for(let S of F)if(S.result.status==="valid")return S.result;for(let S of F)if(S.result.status==="dirty")return $.common.issues.push(...S.ctx.common.issues),S.result;let X=F.map((S)=>new C$(S.ctx.common.issues));return v($,{code:C.invalid_union,unionErrors:X}),TT}if($.common.async)return Promise.all(J.map(async(F)=>{let X={...$,common:{...$.common,issues:[]},parent:null};return{result:await F._parseAsync({data:$.data,path:$.path,parent:X}),ctx:X}})).then(W);else{let F=void 0,X=[];for(let Y of J){let A={...$,common:{...$.common,issues:[]},parent:null},w=Y._parseSync({data:$.data,path:$.path,parent:A});if(w.status==="valid")return w;else if(w.status==="dirty"&&!F)F={result:w,ctx:A};if(A.common.issues.length)X.push(A.common.issues)}if(F)return $.common.issues.push(...F.ctx.common.issues),F.result;let S=X.map((Y)=>new C$(Y));return v($,{code:C.invalid_union,unionErrors:S}),TT}}get options(){return this._def.options}}J1.create=(T,$)=>{return new J1({options:T,typeName:x.ZodUnion,...JT($)})};var RJ=(T)=>{if(T instanceof F1)return RJ(T.schema);else if(T instanceof c$)return RJ(T.innerType());else if(T instanceof X1)return[T.value];else if(T instanceof cJ)return T.options;else if(T instanceof S1)return MT.objectValues(T.enum);else if(T instanceof Y1)return RJ(T._def.innerType);else if(T instanceof T1)return[void 0];else if(T instanceof $1)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 w1)return RJ(T.unwrap());else if(T instanceof A1)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 S of X){if(W.has(S))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(S)}`);W.set(S,F)}}return new IF({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:W,...JT(J)})}}function c2(T,$){let J=UJ(T),W=UJ($);if(T===$)return{valid:!0,data:T};else if(J===c.object&&W===c.object){let F=MT.objectKeys($),X=MT.objectKeys(T).filter((Y)=>F.indexOf(Y)!==-1),S={...T,...$};for(let Y of X){let A=c2(T[Y],$[Y]);if(!A.valid)return{valid:!1};S[Y]=A.data}return{valid:!0,data:S}}else if(J===c.array&&W===c.array){if(T.length!==$.length)return{valid:!1};let F=[];for(let X=0;X<T.length;X++){let S=T[X],Y=$[X],A=c2(S,Y);if(!A.valid)return{valid:!1};F.push(A.data)}return{valid:!0,data:F}}else if(J===c.date&&W===c.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class W1 extends WT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=(F,X)=>{if(m2(F)||m2(X))return TT;let S=c2(F.value,X.value);if(!S.valid)return v(J,{code:C.invalid_intersection_types}),TT;if(g2(F)||g2(X))$.dirty();return{status:$.value,value:S.data}};if(J.common.async)return Promise.all([this._def.left._parseAsync({data:J.data,path:J.path,parent:J}),this._def.right._parseAsync({data:J.data,path:J.path,parent:J})]).then(([F,X])=>W(F,X));else return W(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}W1.create=(T,$,J)=>{return new W1({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,S)=>{let Y=this._def.items[S]||this._def.rest;if(!Y)return null;return Y._parse(new r$(J,X,J.path,S))}).filter((X)=>!!X);if(J.common.async)return Promise.all(F).then((X)=>{return z$.mergeArray($,X)});else return z$.mergeArray($,F)}get items(){return this._def.items}rest(T){return new AJ({...this._def,rest:T})}}AJ.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new AJ({items:T,typeName:x.ZodTuple,rest:null,...JT($)})};class YW 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 S in J.data)W.push({key:F._parse(new r$(J,S,J.path,S)),value:X._parse(new r$(J,J.data[S],J.path,S)),alwaysSet:S in J.data});if(J.common.async)return z$.mergeObjectAsync($,W);else return z$.mergeObjectSync($,W)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof WT)return new YW({keyType:T,valueType:$,typeName:x.ZodRecord,...JT(J)});return new YW({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(([S,Y],A)=>{return{key:W._parse(new r$(J,S,J.path,[A,"key"])),value:F._parse(new r$(J,Y,J.path,[A,"value"]))}});if(J.common.async){let S=new Map;return Promise.resolve().then(async()=>{for(let Y of X){let A=await Y.key,w=await Y.value;if(A.status==="aborted"||w.status==="aborted")return TT;if(A.status==="dirty"||w.status==="dirty")$.dirty();S.set(A.value,w.value)}return{status:$.value,value:S}})}else{let S=new Map;for(let Y of X){let{key:A,value:w}=Y;if(A.status==="aborted"||w.status==="aborted")return TT;if(A.status==="dirty"||w.status==="dirty")$.dirty();S.set(A.value,w.value)}return{status:$.value,value:S}}}}AW.create=(T,$,J)=>{return new AW({valueType:$,keyType:T,typeName:x.ZodMap,...JT(J)})};class A0 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(Y){let A=new Set;for(let w of Y){if(w.status==="aborted")return TT;if(w.status==="dirty")$.dirty();A.add(w.value)}return{status:$.value,value:A}}let S=[...J.data.values()].map((Y,A)=>F._parse(new r$(J,Y,J.path,A)));if(J.common.async)return Promise.all(S).then((Y)=>X(Y));else return X(S)}min(T,$){return new A0({...this._def,minSize:{value:T,message:o.toString($)}})}max(T,$){return new A0({...this._def,maxSize:{value:T,message:o.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}A0.create=(T,$)=>{return new A0({valueType:T,minSize:null,maxSize:null,typeName:x.ZodSet,...JT($)})};class a0 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(S,Y){return ZF({data:S,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,jF(),s0].filter((A)=>!!A),issueData:{code:C.invalid_arguments,argumentsError:Y}})}function W(S,Y){return ZF({data:S,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,jF(),s0].filter((A)=>!!A),issueData:{code:C.invalid_return_type,returnTypeError:Y}})}let F={errorMap:$.common.contextualErrorMap},X=$.data;if(this._def.returns instanceof w0){let S=this;return Q$(async function(...Y){let A=new C$([]),w=await S._def.args.parseAsync(Y,F).catch((H)=>{throw A.addIssue(J(Y,H)),A}),G=await Reflect.apply(X,this,w);return await S._def.returns._def.type.parseAsync(G,F).catch((H)=>{throw A.addIssue(W(G,H)),A})})}else{let S=this;return Q$(function(...Y){let A=S._def.args.safeParse(Y,F);if(!A.success)throw new C$([J(Y,A.error)]);let w=Reflect.apply(X,this,A.data),G=S._def.returns.safeParse(w,F);if(!G.success)throw new C$([W(w,G.error)]);return G.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new a0({...this._def,args:AJ.create(T).rest(hJ.create())})}returns(T){return new a0({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new a0({args:T?T:AJ.create([]).rest(hJ.create()),returns:$||hJ.create(),typeName:x.ZodFunction,...JT(J)})}}class F1 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:$})}}F1.create=(T,$)=>{return new F1({getter:T,typeName:x.ZodLazy,...JT($)})};class X1 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}}X1.create=(T,$)=>{return new X1({value:T,typeName:x.ZodLiteral,...JT($)})};function MY(T,$){return new cJ({values:T,typeName:x.ZodEnum,...JT($)})}class cJ 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"))YY(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 cJ.create(T,{...this._def,...$})}exclude(T,$=this._def){return cJ.create(this.options.filter((J)=>!T.includes(J)),{...this._def,...$})}}JW=new WeakMap;cJ.create=MY;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"))YY(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 w0 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})}))}}w0.create=(T,$)=>{return new w0({type:T,typeName:x.ZodPromise,...JT($)})};class c$ extends WT{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===x.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=this._def.effect||null,F={addIssue:(X)=>{if(v(J,X),X.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(F.addIssue=F.addIssue.bind(F),W.type==="preprocess"){let X=W.transform(J.data,F);if(J.common.async)return Promise.resolve(X).then(async(S)=>{if($.value==="aborted")return TT;let Y=await this._def.schema._parseAsync({data:S,path:J.path,parent:J});if(Y.status==="aborted")return TT;if(Y.status==="dirty")return r0(Y.value);if($.value==="dirty")return r0(Y.value);return Y});else{if($.value==="aborted")return TT;let S=this._def.schema._parseSync({data:X,path:J.path,parent:J});if(S.status==="aborted")return TT;if(S.status==="dirty")return r0(S.value);if($.value==="dirty")return r0(S.value);return S}}if(W.type==="refinement"){let X=(S)=>{let Y=W.refinement(S,F);if(J.common.async)return Promise.resolve(Y);if(Y instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return S};if(J.common.async===!1){let S=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(S.status==="aborted")return TT;if(S.status==="dirty")$.dirty();return X(S.value),{status:$.value,value:S.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((S)=>{if(S.status==="aborted")return TT;if(S.status==="dirty")$.dirty();return X(S.value).then(()=>{return{status:$.value,value:S.value}})})}if(W.type==="transform")if(J.common.async===!1){let X=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!X0(X))return X;let S=W.transform(X.value,F);if(S instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:S}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((X)=>{if(!X0(X))return X;return Promise.resolve(W.transform(X.value,F)).then((S)=>({status:$.value,value:S}))});MT.assertNever(W)}}c$.create=(T,$,J)=>{return new c$({schema:T,typeName:x.ZodEffects,effect:$,...JT(J)})};c$.createWithPreprocess=(T,$,J)=>{return new c$({schema:$,effect:{type:"preprocess",transform:T},typeName:x.ZodEffects,...JT(J)})};class x$ extends WT{_parse(T){if(this._getType(T)===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 Y1 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}}Y1.create=(T,$)=>{return new Y1({innerType:T,typeName:x.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...JT($)})};class A1 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}}A1.create=(T,$)=>{return new A1({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 RG=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(),r0(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 w1 extends WT{_parse(T){let $=this._def.innerType._parse(T),J=(W)=>{if(X0(W))W.value=Object.freeze(W.value);return W};return FW($)?$.then((W)=>J(W)):J($)}unwrap(){return this._def.innerType}}w1.create=(T,$)=>{return new w1({innerType:T,typeName:x.ZodReadonly,...JT($)})};function FY(T,$){let J=typeof T==="function"?T($):typeof T==="string"?{message:T}:T;return typeof J==="string"?{message:J}:J}function HY(T,$={},J){if(T)return Y0.create().superRefine((W,F)=>{var X,S;let Y=T(W);if(Y instanceof Promise)return Y.then((A)=>{var w,G;if(!A){let M=FY($,W),H=(G=(w=M.fatal)!==null&&w!==void 0?w:J)!==null&&G!==void 0?G:!0;F.addIssue({code:"custom",...M,fatal:H})}});if(!Y){let A=FY($,W),w=(S=(X=A.fatal)!==null&&X!==void 0?X:J)!==null&&S!==void 0?S:!0;F.addIssue({code:"custom",...A,fatal:w})}return});return Y0.create()}var UG={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 _G=(T,$={message:`Input not instance of ${T.name}`})=>HY((J)=>J instanceof T,$),OY=t$.create,zY=mJ.create,kG=wW.create,VG=gJ.create,KY=e0.create,BG=S0.create,LG=XW.create,yG=T1.create,NG=$1.create,CG=Y0.create,xG=hJ.create,jG=YJ.create,ZG=SW.create,qG=l$.create,IG=bT.create,bG=bT.strictCreate,vG=J1.create,PG=IF.create,hG=W1.create,mG=AJ.create,gG=YW.create,cG=AW.create,nG=A0.create,pG=a0.create,oG=F1.create,dG=X1.create,uG=cJ.create,iG=S1.create,tG=w0.create,XY=c$.create,lG=x$.create,rG=_J.create,aG=c$.createWithPreprocess,sG=GW.create,eG=()=>OY().optional(),TM=()=>zY().optional(),$M=()=>KY().optional(),JM={string:(T)=>t$.create({...T,coerce:!0}),number:(T)=>mJ.create({...T,coerce:!0}),boolean:(T)=>e0.create({...T,coerce:!0}),bigint:(T)=>gJ.create({...T,coerce:!0}),date:(T)=>S0.create({...T,coerce:!0})},WM=TT,_T=Object.freeze({__proto__:null,defaultErrorMap:s0,setErrorMap:aw,getErrorMap:jF,makeIssue:ZF,EMPTY_PATH:sw,addIssueToContext:v,ParseStatus:z$,INVALID:TT,DIRTY:r0,OK:Q$,isAborted:m2,isDirty:g2,isValid:X0,isAsync:FW,get util(){return MT},get objectUtil(){return h2},ZodParsedType:c,getParsedType:UJ,ZodType:WT,datetimeRegex:GY,ZodString:t$,ZodNumber:mJ,ZodBigInt:gJ,ZodBoolean:e0,ZodDate:S0,ZodSymbol:XW,ZodUndefined:T1,ZodNull:$1,ZodAny:Y0,ZodUnknown:hJ,ZodNever:YJ,ZodVoid:SW,ZodArray:l$,ZodObject:bT,ZodUnion:J1,ZodDiscriminatedUnion:IF,ZodIntersection:W1,ZodTuple:AJ,ZodRecord:YW,ZodMap:AW,ZodSet:A0,ZodFunction:a0,ZodLazy:F1,ZodLiteral:X1,ZodEnum:cJ,ZodNativeEnum:S1,ZodPromise:w0,ZodEffects:c$,ZodTransformer:c$,ZodOptional:x$,ZodNullable:_J,ZodDefault:Y1,ZodCatch:A1,ZodNaN:wW,BRAND:RG,ZodBranded:bF,ZodPipeline:GW,ZodReadonly:w1,custom:HY,Schema:WT,ZodSchema:WT,late:UG,get ZodFirstPartyTypeKind(){return x},coerce:JM,any:CG,array:qG,bigint:VG,boolean:KY,date:BG,discriminatedUnion:PG,effect:XY,enum:uG,function:pG,instanceof:_G,intersection:hG,lazy:oG,literal:dG,map:cG,nan:kG,nativeEnum:iG,never:jG,null:NG,nullable:rG,number:zY,object:IG,oboolean:$M,onumber:TM,optional:lG,ostring:eG,pipeline:sG,preprocess:aG,promise:tG,record:gG,set:nG,strictObject:bG,string:OY,symbol:LG,transformer:XY,tuple:mG,undefined:yG,union:vG,unknown:xG,void:ZG,NEVER:WM,ZodIssueCode:C,quotelessJson:rw,ZodError:C$});function fY(){return{}}function DY(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 QY(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 EY(){return{type:"boolean"}}function vF(T,$){return s(T.type._def,$)}var RY=(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 FM(T,$)}}var FM=(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 UY(T,$){return{...s(T.innerType._def,$),default:T.defaultValue()}}function _Y(T,$){return $.effectStrategy==="input"?s(T.schema._def,$):{}}function kY(T){return{type:"string",enum:Array.from(T.values)}}var XM=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function VY(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(XM(X)){if(F.push(...X.allOf),X.unevaluatedProperties===void 0)W=void 0}else{let S=X;if("additionalProperties"in X&&X.additionalProperties===!1){let{additionalProperties:Y,...A}=X;S=A}else W=void 0;F.push(S)}}),F.length?{allOf:F,...W}:void 0}function BY(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"?YM(T):T}var SM=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function YM(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:LY($,W),...J&&W.errorMessages&&{errorMessage:{pattern:J}}})}else GT(T,"pattern",LY($,W),J,W)}function LY(T,$){if(!$.applyRegexFlags||!T.flags)return T.source;let J={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},W=J.i?T.source.toLowerCase():T.source,F="",X=!1,S=!1,Y=!1;for(let A=0;A<W.length;A++){if(X){F+=W[A],X=!1;continue}if(J.i){if(S){if(W[A].match(/[a-z]/)){if(Y)F+=W[A],F+=`${W[A-2]}-${W[A]}`.toUpperCase(),Y=!1;else if(W[A+1]==="-"&&W[A+2]?.match(/[a-z]/))F+=W[A],Y=!0;else F+=`${W[A]}${W[A].toUpperCase()}`;continue}}else if(W[A].match(/[a-z]/)){F+=`[${W[A]}${W[A].toUpperCase()}]`;continue}}if(J.m){if(W[A]==="^"){F+=`(^|(?<=[\r
|
|
17
|
+
]))`;continue}else if(W[A]==="$"){F+=`($|(?=[\r
|
|
18
|
+
]))`;continue}}if(J.s&&W[A]==="."){F+=S?`${W[A]}\r
|
|
19
|
+
`:`[${W[A]}\r
|
|
20
|
+
]`;continue}if(F+=W[A],W[A]==="\\")X=!0;else if(S&&W[A]==="]")S=!1;else if(!S&&W[A]==="[")S=!0}try{new RegExp(F)}catch{return console.warn(`Could not convert regex pattern at ${$.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),T.source}return F}function hF(T,$){if($.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if($.target==="openApi3"&&T.keyType?._def.typeName===x.ZodEnum)return{type:"object",required:T.keyType._def.values,properties:T.keyType._def.values.reduce((W,F)=>({...W,[F]:s(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",F]})??{}}),{}),additionalProperties:$.rejectedAdditionalProperties};let J={type:"object",additionalProperties:s(T.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??$.allowedAdditionalProperties};if($.target==="openApi3")return J;if(T.keyType?._def.typeName===x.ZodString&&T.keyType._def.checks?.length){let{type:W,...F}=PF(T.keyType._def,$);return{...J,propertyNames:F}}else if(T.keyType?._def.typeName===x.ZodEnum)return{...J,propertyNames:{enum:T.keyType._def.values}};else if(T.keyType?._def.typeName===x.ZodBranded&&T.keyType._def.type._def.typeName===x.ZodString&&T.keyType._def.type._def.checks?.length){let{type:W,...F}=vF(T.keyType._def,$);return{...J,propertyNames:F}}return J}function yY(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 NY(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 CY(){return{not:{}}}function xY(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var MW={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function ZY(T,$){if($.target==="openApi3")return jY(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 S=MW[X._def.typeName];return S&&!F.includes(S)?[...F,S]:F},[]);return{type:W.length>1?W:W[0]}}else if(J.every((W)=>W._def.typeName==="ZodLiteral"&&!W.description)){let W=J.reduce((F,X)=>{let S=typeof X._def.value;switch(S){case"string":case"number":case"boolean":return[...F,S];case"bigint":return[...F,"integer"];case"object":if(X._def.value===null)return[...F,"null"];case"symbol":case"undefined":case"function":default:return F}},[]);if(W.length===J.length){let F=W.filter((X,S,Y)=>Y.indexOf(X)===S);return{type:F.length>1?F:F[0],enum:J.reduce((X,S)=>{return X.includes(S._def.value)?X:[...X,S._def.value]},[])}}}else if(J.every((W)=>W._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((W,F)=>[...W,...F._def.values.filter((X)=>!W.includes(X))],[])};return jY(T,$)}var jY=(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 qY(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 IY(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 bY(T,$){let J=$.target==="openAi",W={type:"object",properties:{}},F=[],X=T.shape();for(let Y in X){let A=X[Y];if(A===void 0||A._def===void 0)continue;let w=wM(A);if(w&&J){if(A instanceof x$)A=A._def.innerType;if(!A.isNullable())A=A.nullable();w=!1}let G=s(A._def,{...$,currentPath:[...$.currentPath,"properties",Y],propertyPath:[...$.currentPath,"properties",Y]});if(G===void 0)continue;if(W.properties[Y]=G,!w)F.push(Y)}if(F.length)W.required=F;let S=AM(T,$);if(S!==void 0)W.additionalProperties=S;return W}function AM(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 wM(T){try{return T.isOptional()}catch{return!0}}var vY=(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 PY=(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 hY(T,$){return s(T.type._def,$)}function mY(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 gY(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 cY(){return{not:{}}}function nY(){return{}}var pY=(T,$)=>{return s(T.innerType._def,$)};var oY=(T,$,J)=>{switch($){case x.ZodString:return PF(T,J);case x.ZodNumber:return IY(T,J);case x.ZodObject:return bY(T,J);case x.ZodBigInt:return QY(T,J);case x.ZodBoolean:return EY();case x.ZodDate:return n2(T,J);case x.ZodUndefined:return cY();case x.ZodNull:return xY(J);case x.ZodArray:return DY(T,J);case x.ZodUnion:case x.ZodDiscriminatedUnion:return ZY(T,J);case x.ZodIntersection:return VY(T,J);case x.ZodTuple:return gY(T,J);case x.ZodRecord:return hF(T,J);case x.ZodLiteral:return BY(T,J);case x.ZodEnum:return kY(T);case x.ZodNativeEnum:return NY(T);case x.ZodNullable:return qY(T,J);case x.ZodOptional:return vY(T,J);case x.ZodMap:return yY(T,J);case x.ZodSet:return mY(T,J);case x.ZodLazy:return()=>T.getter()._def;case x.ZodPromise:return hY(T,J);case x.ZodNaN:case x.ZodNever:return CY();case x.ZodEffects:return _Y(T,J);case x.ZodAny:return fY();case x.ZodUnknown:return nY();case x.ZodDefault:return UY(T,J);case x.ZodBranded:return vF(T,J);case x.ZodReadonly:return pY(T,J);case x.ZodCatch:return RY(T,J);case x.ZodPipeline:return PY(T,J);case x.ZodFunction:case x.ZodVoid:case x.ZodSymbol:return;default:return((W)=>{return})($)}};function s(T,$,J=!1){let W=$.seen.get(T);if($.override){let Y=$.override?.(T,$,W,J);if(Y!==TY)return Y}if(W&&!J){let Y=GM(W,$);if(Y!==void 0)return Y}let F={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,F);let X=oY(T,T.typeName,$),S=typeof X==="function"?s(X(),$):X;if(S)HM(T,$,S);if($.postProcess){let Y=$.postProcess(S,T,$);return F.jsonSchema=S,Y}return F.jsonSchema=S,S}var GM=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:MM($.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}}},MM=(T,$)=>{let J=0;for(;J<T.length&&J<$.length;J++)if(T[J]!==$[J])break;return[(T.length-J).toString(),...$.slice(J)].join("/")},HM=(T,$,J)=>{if(T.description){if(J.description=T.description,$.markdownDescription)J.markdownDescription=T.description}return J};var dY=(T,$)=>{let J=JY($),W=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((A,[w,G])=>({...A,[w]:s(G._def,{...J,currentPath:[...J.basePath,J.definitionPath,w]},!0)??{}}),{}):void 0,F=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,X=s(T._def,F===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,F]},!1)??{},S=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(S!==void 0)X.title=S;let Y=F===void 0?W?{...X,[J.definitionPath]:W}:X:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,F].join("/"),[J.definitionPath]:{...W,[F]:X}};if(J.target==="jsonSchema7")Y.$schema="http://json-schema.org/draft-07/schema#";else if(J.target==="jsonSchema2019-09"||J.target==="openAi")Y.$schema="https://json-schema.org/draft/2019-09/schema#";if(J.target==="openAi"&&(("anyOf"in Y)||("oneOf"in Y)||("allOf"in Y)||("type"in Y)&&Array.isArray(Y.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return Y};var uY=dY;function iY(T,$){return function J({schema:W,fallback:F}){let X=uY(W);return async function S(Y,A=3){let w,G=[];while(G.length<A){w=await T(Y,X,F,G);let M=W.safeParse(w);if(M.success)return M.data;$?.warn(`safegen failed to generate well-formed data.
|
|
21
21
|
`,`Here's what was returned last time:
|
|
22
22
|
`,JSON.stringify(w,null,"\t"),`
|
|
23
23
|
`,`Here's the error message from zod:
|
|
24
|
-
`,
|
|
25
|
-
`)}var Lf="RFC3986",Nf={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},Z8="RFC1738";var n9=Array.isArray,wJ=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var xW=1024,q8=(T,$,J,S,F)=>{if(T.length===0)return T;let f=T;if(typeof T==="symbol")f=Symbol.prototype.toString.call(T);else if(typeof T!=="string")f=String(T);if(J==="iso-8859-1")return escape(f).replace(/%u[0-9a-f]{4}/gi,function(A){return"%26%23"+parseInt(A.slice(2),16)+"%3B"});let W="";for(let A=0;A<f.length;A+=xW){let X=f.length>=xW?f.slice(A,A+xW):f,w=[];for(let M=0;M<X.length;++M){let Y=X.charCodeAt(M);if(Y===45||Y===46||Y===95||Y===126||Y>=48&&Y<=57||Y>=65&&Y<=90||Y>=97&&Y<=122||F===Z8&&(Y===40||Y===41)){w[w.length]=X.charAt(M);continue}if(Y<128){w[w.length]=wJ[Y];continue}if(Y<2048){w[w.length]=wJ[192|Y>>6]+wJ[128|Y&63];continue}if(Y<55296||Y>=57344){w[w.length]=wJ[224|Y>>12]+wJ[128|Y>>6&63]+wJ[128|Y&63];continue}M+=1,Y=65536+((Y&1023)<<10|X.charCodeAt(M)&1023),w[w.length]=wJ[240|Y>>18]+wJ[128|Y>>12&63]+wJ[128|Y>>6&63]+wJ[128|Y&63]}W+=w.join("")}return W};function b8(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function jW(T,$){if(n9(T)){let J=[];for(let S=0;S<T.length;S+=1)J.push($(T[S]));return J}return $(T)}var c9=Object.prototype.hasOwnProperty,h8={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},MJ=Array.isArray,g9=Array.prototype.push,m8=function(T,$){g9.apply(T,MJ($)?$:[$])},p9=Date.prototype.toISOString,rT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:q8,encodeValuesOnly:!1,format:Lf,formatter:Nf[Lf],indices:!1,serializeDate(T){return p9.call(T)},skipNulls:!1,strictNullHandling:!1};function o9(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var IW={};function v8(T,$,J,S,F,f,W,A,X,w,M,Y,G,z,D,_,L,j){let y=T,I=j,Q=0,V=!1;while((I=I.get(IW))!==void 0&&!V){let R=I.get(T);if(Q+=1,typeof R!=="undefined")if(R===Q)throw new RangeError("Cyclic object value");else V=!0;if(typeof I.get(IW)==="undefined")Q=0}if(typeof w==="function")y=w($,y);else if(y instanceof Date)y=G?.(y);else if(J==="comma"&&MJ(y))y=jW(y,function(R){if(R instanceof Date)return G?.(R);return R});if(y===null){if(f)return X&&!_?X($,rT.encoder,L,"key",z):$;y=""}if(o9(y)||b8(y)){if(X){let R=_?$:X($,rT.encoder,L,"key",z);return[D?.(R)+"="+D?.(X(y,rT.encoder,L,"value",z))]}return[D?.($)+"="+D?.(String(y))]}let B=[];if(typeof y==="undefined")return B;let U;if(J==="comma"&&MJ(y)){if(_&&X)y=jW(y,X);U=[{value:y.length>0?y.join(",")||null:void 0}]}else if(MJ(w))U=w;else{let R=Object.keys(y);U=M?R.sort(M):R}let h=A?String($).replace(/\./g,"%2E"):String($),l=S&&MJ(y)&&y.length===1?h+"[]":h;if(F&&MJ(y)&&y.length===0)return l+"[]";for(let R=0;R<U.length;++R){let s=U[R],p=typeof s==="object"&&typeof s.value!=="undefined"?s.value:y[s];if(W&&p===null)continue;let $T=Y&&A?s.replace(/\./g,"%2E"):s,ET=MJ(y)?typeof J==="function"?J(l,$T):l:l+(Y?"."+$T:"["+$T+"]");j.set(T,Q);let hT=new WeakMap;hT.set(IW,j),m8(B,v8(p,ET,J,S,F,f,W,A,J==="comma"&&_&&MJ(y)?null:X,w,M,Y,G,z,D,_,L,hT))}return B}function t9(T=rT){if(typeof T.allowEmptyArrays!=="undefined"&&typeof T.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof T.encodeDotInKeys!=="undefined"&&typeof T.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(T.encoder!==null&&typeof T.encoder!=="undefined"&&typeof T.encoder!=="function")throw new TypeError("Encoder has to be a function.");let $=T.charset||rT.charset;if(typeof T.charset!=="undefined"&&T.charset!=="utf-8"&&T.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let J=Lf;if(typeof T.format!=="undefined"){if(!c9.call(Nf,T.format))throw new TypeError("Unknown format option provided.");J=T.format}let S=Nf[J],F=rT.filter;if(typeof T.filter==="function"||MJ(T.filter))F=T.filter;let f;if(T.arrayFormat&&T.arrayFormat in h8)f=T.arrayFormat;else if("indices"in T)f=T.indices?"indices":"repeat";else f=rT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let W=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:rT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:rT.addQueryPrefix,allowDots:W,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:rT.allowEmptyArrays,arrayFormat:f,charset:$,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:rT.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?rT.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:rT.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:rT.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:rT.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:rT.encodeValuesOnly,filter:F,format:J,formatter:S,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:rT.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:rT.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:rT.strictNullHandling}}function ZW(T,$={}){let J=T,S=t9($),F,f;if(typeof S.filter==="function")f=S.filter,J=f("",J);else if(MJ(S.filter))f=S.filter,F=f;let W=[];if(typeof J!=="object"||J===null)return"";let A=h8[S.arrayFormat],X=A==="comma"&&S.commaRoundTrip;if(!F)F=Object.keys(J);if(S.sort)F.sort(S.sort);let w=new WeakMap;for(let G=0;G<F.length;++G){let z=F[G];if(S.skipNulls&&J[z]===null)continue;m8(W,v8(J[z],z,A,X,S.allowEmptyArrays,S.strictNullHandling,S.skipNulls,S.encodeDotInKeys,S.encode?S.encoder:null,S.filter,S.sort,S.allowDots,S.serializeDate,S.format,S.formatter,S.encodeValuesOnly,S.charset,w))}let M=W.join(S.delimiter),Y=S.addQueryPrefix===!0?"?":"";if(S.charsetSentinel)if(S.charset==="iso-8859-1")Y+="utf8=%26%2310003%3B&";else Y+="utf8=%E2%9C%93&";return M.length>0?Y+M:""}var AS="4.86.1";var P8=!1,XS=void 0,qW=void 0,d9=void 0,u9=void 0,l9=void 0,bW=void 0,r9=void 0,Cf=void 0,hW=void 0,mW=void 0,vW=void 0,xf=void 0,PW=void 0;function n8(T,$={auto:!1}){if(P8)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(XS)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${XS}'\``);P8=$.auto,XS=T.kind,qW=T.fetch,d9=T.Request,u9=T.Response,l9=T.Headers,bW=T.FormData,r9=T.Blob,Cf=T.File,hW=T.ReadableStream,mW=T.getMultipartRequestOptions,vW=T.getDefaultAgent,xf=T.fileFromPath,PW=T.isFsReadStream}class nW{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function c8({manuallyImported:T}={}){let $=T?"You may need to use polyfills":"Add one of these imports before your first `import \u2026 from 'openai'`:\n- `import 'openai/shims/node'` (if you're running on Node)\n- `import 'openai/shims/web'` (otherwise)\n",J,S,F,f;try{J=fetch,S=Request,F=Response,f=Headers}catch(W){throw new Error(`this environment is missing the following Web Fetch API type: ${W.message}. ${$}`)}return{kind:"web",fetch:J,Request:S,Response:F,Headers:f,FormData:typeof FormData!=="undefined"?FormData:class W{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class W{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class W{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class W{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(W,A)=>({...A,body:new nW(W)}),getDefaultAgent:(W)=>{return},fileFromPath:()=>{throw new Error("The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads")},isFsReadStream:(W)=>!1}}import{ReadStream as s9}from"fs";function g8(){let T=c8();function $(J){return J instanceof s9}return{...T,isFsReadStream:$}}if(!XS)n8(g8(),{auto:!0});class TT extends Error{}class gT extends TT{constructor(T,$,J,S){super(`${gT.makeMessage(T,$,J)}`);this.status=T,this.headers=S,this.request_id=S?.["x-request-id"],this.error=$;let F=$;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(T,$,J){let S=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):J;if(T&&S)return`${T} ${S}`;if(T)return`${T} status code (no body)`;if(S)return S;return"(no status code or body)"}static generate(T,$,J,S){if(!T||!S)return new wS({message:J,cause:Pf($)});let F=$?.error;if(T===400)return new jf(T,F,J,S);if(T===401)return new If(T,F,J,S);if(T===403)return new Zf(T,F,J,S);if(T===404)return new qf(T,F,J,S);if(T===409)return new bf(T,F,J,S);if(T===422)return new hf(T,F,J,S);if(T===429)return new mf(T,F,J,S);if(T>=500)return new vf(T,F,J,S);return new gT(T,F,J,S)}}class f$ extends gT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class wS extends gT{constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class MS extends wS{constructor({message:T}={}){super({message:T??"Request timed out."})}}class jf extends gT{}class If extends gT{}class Zf extends gT{}class qf extends gT{}class bf extends gT{}class hf extends gT{}class mf extends gT{}class vf extends gT{}class $0 extends TT{constructor(){super("Could not parse response content as the length limit was reached")}}class J0 extends TT{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}var nf=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},YS=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},j$;class JF{constructor(){j$.set(this,void 0),this.buffer=new Uint8Array,nf(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 S=[],F;while((F=T5(this.buffer,YS(this,j$,"f")))!=null){if(F.carriage&&YS(this,j$,"f")==null){nf(this,j$,F.index,"f");continue}if(YS(this,j$,"f")!=null&&(F.index!==YS(this,j$,"f")+1||F.carriage)){S.push(this.decodeText(this.buffer.slice(0,YS(this,j$,"f")-1))),this.buffer=this.buffer.slice(YS(this,j$,"f")),nf(this,j$,null,"f");continue}let f=YS(this,j$,"f")!==null?F.preceding-1:F.preceding,W=this.decodeText(this.buffer.slice(0,f));S.push(W),this.buffer=this.buffer.slice(F.index),nf(this,j$,null,"f")}return S}decodeText(T){if(T==null)return"";if(typeof T==="string")return T;if(typeof Buffer!=="undefined"){if(T instanceof Buffer)return T.toString();if(T instanceof Uint8Array)return Buffer.from(T).toString();throw new TT(`Unexpected: received non-Uint8Array (${T.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder!=="undefined"){if(T instanceof Uint8Array||T instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(T);throw new TT(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new TT("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
|
|
26
|
-
`)}}j$=new WeakMap;
|
|
27
|
-
`,"\r"]);
|
|
28
|
-
`);
|
|
29
|
-
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(T),T.startsWith(":"))return null;let[$,J,S]=S5(T,":");if(S.startsWith(" "))S=S.substring(1);if($==="event")this.event=S;else if($==="data")this.data.push(S);return null}}function S5(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}var t8=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",i8=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&S0(T),S0=(T)=>T!=null&&typeof T==="object"&&typeof T.size==="number"&&typeof T.type==="string"&&typeof T.text==="function"&&typeof T.slice==="function"&&typeof T.arrayBuffer==="function",F5=(T)=>{return i8(T)||t8(T)||PW(T)};async function oW(T,$,J){if(T=await T,i8(T))return T;if(t8(T)){let F=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let f=S0(F)?[await F.arrayBuffer()]:[F];return new Cf(f,$,J)}let S=await f5(T);if($||($=A5(T)??"unknown_file"),!J?.type){let F=S[0]?.type;if(typeof F==="string")J={...J,type:F}}return new Cf(S,$,J)}async function f5(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(S0(T))$.push(await T.arrayBuffer());else if(X5(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${W5(T)}`);return $}function W5(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function A5(T){return gW(T.name)||gW(T.filename)||gW(T.path)?.split(/[\\/]/).pop()}var gW=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},X5=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",tW=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var g$=async(T)=>{let $=await d8(T.body);return mW($,T)},d8=async(T)=>{let $=new bW;return await Promise.all(Object.entries(T||{}).map(([J,S])=>pW($,J,S))),$};var pW=async(T,$,J)=>{if(J===void 0)return;if(J==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")T.append($,String(J));else if(F5(J)){let S=await oW(J);T.append($,S)}else if(Array.isArray(J))await Promise.all(J.map((S)=>pW(T,$+"[]",S)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([S,F])=>pW(T,`${$}[${S}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${J} instead`)};var M5=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},Y5=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},cf;async function e8(T){let{response:$}=T;if(T.options.stream){if(SF("response",$.status,$.url,$.headers,$.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse($,T.controller);return I$.fromSSEResponse($,T.controller)}if($.status===204)return null;if(T.options.__binaryResponse)return $;let J=$.headers.get("content-type");if(J?.includes("application/json")||J?.includes("application/vnd.api+json")){let f=await $.json();return SF("response",$.status,$.url,$.headers,f),Tw(f,$)}let F=await $.text();return SF("response",$.status,$.url,$.headers,F),F}function Tw(T,$){if(!T||typeof T!=="object"||Array.isArray(T))return T;return Object.defineProperty(T,"_request_id",{value:$.headers.get("x-request-id"),enumerable:!1})}class pf extends Promise{constructor(T,$=e8){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new pf(this.responsePromise,async($)=>Tw(T(await this.parseResponse($),$),$.response))}asResponse(){return this.responsePromise.then((T)=>T.response)}async withResponse(){let[T,$]=await Promise.all([this.parse(),this.asResponse()]);return{data:T,response:$,request_id:$.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(T,$){return this.parse().then(T,$)}catch(T){return this.parse().catch(T)}finally(T){return this.parse().finally(T)}}class dW{constructor({baseURL:T,maxRetries:$=2,timeout:J=600000,httpAgent:S,fetch:F}){this.baseURL=T,this.maxRetries=iW("maxRetries",$),this.timeout=iW("timeout",J),this.httpAgent=S,this.fetch=F??qW}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...z5(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${_5()}`}get(T,$){return this.methodRequest("get",T,$)}post(T,$){return this.methodRequest("post",T,$)}patch(T,$){return this.methodRequest("patch",T,$)}put(T,$){return this.methodRequest("put",T,$)}delete(T,$){return this.methodRequest("delete",T,$)}methodRequest(T,$,J){return this.request(Promise.resolve(J).then(async(S)=>{let F=S&&S0(S?.body)?new DataView(await S.body.arrayBuffer()):S?.body instanceof DataView?S.body:S?.body instanceof ArrayBuffer?new DataView(S.body):S&&ArrayBuffer.isView(S?.body)?new DataView(S.body.buffer):S?.body;return{method:T,path:$,...S,body:F}}))}getAPIList(T,$,J){return this.requestAPIList($,{method:"get",path:T,...J})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:$=0}={}){T={...T};let{method:J,path:S,query:F,headers:f={}}=T,W=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:tW(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,A=this.calculateContentLength(W),X=this.buildURL(S,F);if("timeout"in T)iW("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let w=T.httpAgent??this.httpAgent??vW(X),M=T.timeout+1000;if(typeof w?.options?.timeout==="number"&&M>(w.options.timeout??0))w.options.timeout=M;if(this.idempotencyHeader&&J!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();f[this.idempotencyHeader]=T.idempotencyKey}let Y=this.buildHeaders({options:T,headers:f,contentLength:A,retryCount:$});return{req:{method:J,...W&&{body:W},headers:Y,...w&&{agent:w},signal:T.signal??null},url:X,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:S}){let F={};if(J)F["content-length"]=J;let f=this.defaultHeaders(T);if(a8(F,f),a8(F,$),tW(T.body)&&XS!=="node")delete F["content-type"];if(gf(f,"x-stainless-retry-count")===void 0&&gf($,"x-stainless-retry-count")===void 0)F["x-stainless-retry-count"]=String(S);if(gf(f,"x-stainless-timeout")===void 0&&gf($,"x-stainless-timeout")===void 0&&T.timeout)F["x-stainless-timeout"]=String(T.timeout);return this.validateHeaders(F,$),F}async prepareOptions(T){}async prepareRequest(T,{url:$,options:J}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map(($)=>[...$])):{...T}}makeStatusError(T,$,J,S){return gT.generate(T,$,J,S)}request(T,$=null){return new pf(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,S=J.maxRetries??this.maxRetries;if($==null)$=S;await this.prepareOptions(J);let{req:F,url:f,timeout:W}=this.buildRequest(J,{retryCount:S-$});if(await this.prepareRequest(F,{url:f,options:J}),SF("request",f,J,F.headers),J.signal?.aborted)throw new f$;let A=new AbortController,X=await this.fetchWithTimeout(f,F,W,A).catch(Pf);if(X instanceof Error){if(J.signal?.aborted)throw new f$;if($)return this.retryRequest(J,$);if(X.name==="AbortError")throw new MS;throw new wS({cause:X})}let w=G5(X.headers);if(!X.ok){if($&&this.shouldRetry(X)){let _=`retrying, ${$} attempts remaining`;return SF(`response (error; ${_})`,X.status,f,w),this.retryRequest(J,$,w)}let M=await X.text().catch((_)=>Pf(_).message),Y=D5(M),G=Y?void 0:M;throw SF(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,X.status,f,w,G),this.makeStatusError(X.status,Y,G,w)}return{response:X,options:J,controller:A}}requestAPIList(T,$){let J=this.makeRequest($,null);return new $w(this,J,T)}buildURL(T,$){let J=Q5(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),S=this.defaultQuery();if(!Jw(S))$={...S,...$};if(typeof $==="object"&&$&&!Array.isArray($))J.search=this.stringifyQuery($);return J.toString()}stringifyQuery(T){return Object.entries(T).filter(([$,J])=>typeof J!=="undefined").map(([$,J])=>{if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(J)}`;if(J===null)return`${encodeURIComponent($)}=`;throw new TT(`Cannot stringify type ${typeof J}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,$,J,S){let{signal:F,...f}=$||{};if(F)F.addEventListener("abort",()=>S.abort());let W=setTimeout(()=>S.abort(),J),A={signal:S.signal,...f};if(A.method)A.method=A.method.toUpperCase();return this.fetch.call(void 0,T,A).finally(()=>{clearTimeout(W)})}shouldRetry(T){let $=T.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,$,J){let S,F=J?.["retry-after-ms"];if(F){let W=parseFloat(F);if(!Number.isNaN(W))S=W}let f=J?.["retry-after"];if(f&&!S){let W=parseFloat(f);if(!Number.isNaN(W))S=W*1000;else S=Date.parse(f)-Date.now()}if(!(S&&0<=S&&S<60000)){let W=T.maxRetries??this.maxRetries;S=this.calculateDefaultRetryTimeoutMillis($,W)}return await kJ(S),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let F=$-T,f=Math.min(0.5*Math.pow(2,F),8),W=1-Math.random()*0.25;return f*W*1000}getUserAgent(){return`${this.constructor.name}/JS ${AS}`}}class of{constructor(T,$,J,S){cf.set(this,void 0),M5(this,cf,T,"f"),this.options=S,this.response=$,this.body=J}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new TT("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let $={...this.options};if("params"in T&&typeof $.query==="object")$.query={...$.query,...T.params};else if("url"in T){let J=[...Object.entries($.query||{}),...T.url.searchParams.entries()];for(let[S,F]of J)T.url.searchParams.set(S,F);$.query=void 0,$.path=T.url.toString()}return await Y5(this,cf,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(cf=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class $w extends pf{constructor(T,$,J){super($,async(S)=>new J(T,S.response,await e8(S),S.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var G5=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,J){let S=J.toString();return $[S.toLowerCase()]||$[S]}})},K5={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__metadata:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},DT=(T)=>{return typeof T==="object"&&T!==null&&!Jw(T)&&Object.keys(T).every(($)=>Sw(K5,$))},H5=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":l8(Deno.build.os),"X-Stainless-Arch":u8(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":process.version};if(Object.prototype.toString.call(typeof process!=="undefined"?process:0)==="[object process]")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":l8(process.platform),"X-Stainless-Arch":u8(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=O5();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${T.browser}`,"X-Stainless-Runtime-Version":T.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":AS,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function O5(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:J}of T){let S=J.exec(navigator.userAgent);if(S){let F=S[1]||0,f=S[2]||0,W=S[3]||0;return{browser:$,version:`${F}.${f}.${W}`}}}return null}var u8=(T)=>{if(T==="x32")return"x32";if(T==="x86_64"||T==="x64")return"x64";if(T==="arm")return"arm";if(T==="aarch64"||T==="arm64")return"arm64";if(T)return`other:${T}`;return"unknown"},l8=(T)=>{if(T=T.toLowerCase(),T.includes("ios"))return"iOS";if(T==="android")return"Android";if(T==="darwin")return"MacOS";if(T==="win32")return"Windows";if(T==="freebsd")return"FreeBSD";if(T==="openbsd")return"OpenBSD";if(T==="linux")return"Linux";if(T)return`Other:${T}`;return"Unknown"},r8,z5=()=>{return r8??(r8=H5())},D5=(T)=>{try{return JSON.parse(T)}catch($){return}},E5=/^[a-z][a-z0-9+.-]*:/i,Q5=(T)=>{return E5.test(T)},kJ=(T)=>new Promise(($)=>setTimeout($,T)),iW=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new TT(`${T} must be an integer`);if($<0)throw new TT(`${T} must be a positive integer`);return $},Pf=(T)=>{if(T instanceof Error)return T;if(typeof T==="object"&&T!==null)try{return new Error(JSON.stringify(T))}catch{}return new Error(T)};var F0=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function Jw(T){if(!T)return!0;for(let $ in T)return!1;return!0}function Sw(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function a8(T,$){for(let J in $){if(!Sw($,J))continue;let S=J.toLowerCase();if(!S)continue;let F=$[J];if(F===null)delete T[S];else if(F!==void 0)T[S]=F}}var s8=new Set(["authorization","api-key"]);function SF(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let J=$.map((S)=>{if(!S)return S;if(S.headers){let f={...S,headers:{...S.headers}};for(let W in S.headers)if(s8.has(W.toLowerCase()))f.headers[W]="REDACTED";return f}let F=null;for(let f in S)if(s8.has(f.toLowerCase()))F??(F={...S}),F[f]="REDACTED";return F??S});console.log(`OpenAI:DEBUG:${T}`,...J)}}var _5=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},Fw=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},R5=(T)=>{return typeof T?.get==="function"};var gf=(T,$)=>{let J=$.toLowerCase();if(R5(T)){let S=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(F,f,W)=>f+W.toUpperCase());for(let F of[$,J,$.toUpperCase(),S]){let f=T.get(F);if(f)return f}}for(let[S,F]of Object.entries(T))if(S.toLowerCase()===J){if(Array.isArray(F)){if(F.length<=1)return F[0];return console.warn(`Received ${F.length} entries for the ${$} header, using the first entry.`),F[0]}return F}return};function f0(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class uW extends of{constructor(T,$,J,S){super(T,$,J,S);this.data=J.data||[],this.object=J.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class jT extends of{constructor(T,$,J,S){super(T,$,J,S);this.data=J.data||[],this.has_more=J.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageParams(){let T=this.nextPageInfo();if(!T)return null;if("params"in T)return T.params;let $=Object.fromEntries(T.url.searchParams);if(!Object.keys($).length)return null;return $}nextPageInfo(){let T=this.getPaginatedItems();if(!T.length)return null;let $=T[T.length-1]?.id;if(!$)return null;return{params:{after:$}}}}class c{constructor(T){this._client=T}}class W0 extends c{list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/chat/completions/${T}/messages`,lW,{query:$,...J})}}class KS extends c{constructor(){super(...arguments);this.messages=new W0(this._client)}create(T,$){return this._client.post("/chat/completions",{body:T,...$,stream:T.stream??!1})}retrieve(T,$){return this._client.get(`/chat/completions/${T}`,$)}update(T,$,J){return this._client.post(`/chat/completions/${T}`,{body:$,...J})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/chat/completions",HS,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class HS extends jT{}class lW extends jT{}KS.ChatCompletionsPage=HS;KS.Messages=W0;class cJ extends c{constructor(){super(...arguments);this.completions=new KS(this._client)}}cJ.Completions=KS;cJ.ChatCompletionsPage=HS;class A0 extends c{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class X0 extends c{create(T,$){return this._client.post("/audio/transcriptions",g$({body:T,...$,__metadata:{model:T.model}}))}}class w0 extends c{create(T,$){return this._client.post("/audio/translations",g$({body:T,...$,__metadata:{model:T.model}}))}}class UJ extends c{constructor(){super(...arguments);this.transcriptions=new X0(this._client),this.translations=new w0(this._client),this.speech=new A0(this._client)}}UJ.Transcriptions=X0;UJ.Translations=w0;UJ.Speech=A0;class OS extends c{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/batches",FF,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class FF extends jT{}OS.BatchesPage=FF;class fF extends c{create(T,$){return this._client.post("/assistants",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/assistants/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/assistants",M0,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class M0 extends jT{}fF.AssistantsPage=M0;function rW(T){return typeof T.parse==="function"}var gJ=(T)=>{return T?.role==="assistant"},aW=(T)=>{return T?.role==="function"},sW=(T)=>{return T?.role==="tool"};var e$=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},bT=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},eW,tf,df,Y0,G0,uf,K0,VJ,H0,lf,rf,WF,fw;class O0{constructor(){eW.add(this),this.controller=new AbortController,tf.set(this,void 0),df.set(this,()=>{}),Y0.set(this,()=>{}),G0.set(this,void 0),uf.set(this,()=>{}),K0.set(this,()=>{}),VJ.set(this,{}),H0.set(this,!1),lf.set(this,!1),rf.set(this,!1),WF.set(this,!1),e$(this,tf,new Promise((T,$)=>{e$(this,df,T,"f"),e$(this,Y0,$,"f")}),"f"),e$(this,G0,new Promise((T,$)=>{e$(this,uf,T,"f"),e$(this,K0,$,"f")}),"f"),bT(this,tf,"f").catch(()=>{}),bT(this,G0,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},bT(this,eW,"m",fw).bind(this))},0)}_connected(){if(this.ended)return;bT(this,df,"f").call(this),this._emit("connect")}get ended(){return bT(this,H0,"f")}get errored(){return bT(this,lf,"f")}get aborted(){return bT(this,rf,"f")}abort(){this.controller.abort()}on(T,$){return(bT(this,VJ,"f")[T]||(bT(this,VJ,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=bT(this,VJ,"f")[T];if(!J)return this;let S=J.findIndex((F)=>F.listener===$);if(S>=0)J.splice(S,1);return this}once(T,$){return(bT(this,VJ,"f")[T]||(bT(this,VJ,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(e$(this,WF,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){e$(this,WF,!0,"f"),await bT(this,G0,"f")}_emit(T,...$){if(bT(this,H0,"f"))return;if(T==="end")e$(this,H0,!0,"f"),bT(this,uf,"f").call(this);let J=bT(this,VJ,"f")[T];if(J)bT(this,VJ,"f")[T]=J.filter((S)=>!S.once),J.forEach(({listener:S})=>S(...$));if(T==="abort"){let S=$[0];if(!bT(this,WF,"f")&&!J?.length)Promise.reject(S);bT(this,Y0,"f").call(this,S),bT(this,K0,"f").call(this,S),this._emit("end");return}if(T==="error"){let S=$[0];if(!bT(this,WF,"f")&&!J?.length)Promise.reject(S);bT(this,Y0,"f").call(this,S),bT(this,K0,"f").call(this,S),this._emit("end")}}_emitFinal(){}}tf=new WeakMap,df=new WeakMap,Y0=new WeakMap,G0=new WeakMap,uf=new WeakMap,K0=new WeakMap,VJ=new WeakMap,H0=new WeakMap,lf=new WeakMap,rf=new WeakMap,WF=new WeakMap,eW=new WeakSet,fw=function T($){if(e$(this,lf,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new f$;if($ instanceof f$)return e$(this,rf,!0,"f"),this._emit("abort",$);if($ instanceof TT)return this._emit("error",$);if($ instanceof Error){let J=new TT($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new TT(String($)))};function TA(T){return T?.$brand==="auto-parseable-response-format"}function zS(T){return T?.$brand==="auto-parseable-tool"}function Ww(T,$){if(!$||!$A($))return{...T,choices:T.choices.map((J)=>({...J,message:{...J.message,parsed:null,...J.message.tool_calls?{tool_calls:J.message.tool_calls}:void 0}}))};return z0(T,$)}function z0(T,$){let J=T.choices.map((S)=>{if(S.finish_reason==="length")throw new $0;if(S.finish_reason==="content_filter")throw new J0;return{...S,message:{...S.message,...S.message.tool_calls?{tool_calls:S.message.tool_calls?.map((F)=>C5($,F))??void 0}:void 0,parsed:S.message.content&&!S.message.refusal?N5($,S.message.content):null}}});return{...T,choices:J}}function N5(T,$){if(T.response_format?.type!=="json_schema")return null;if(T.response_format?.type==="json_schema"){if("$parseRaw"in T.response_format)return T.response_format.$parseRaw($);return JSON.parse($)}return null}function C5(T,$){let J=T.tools?.find((S)=>S.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:zS(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function Aw(T,$){if(!T)return!1;let J=T.tools?.find((S)=>S.function?.name===$.function.name);return zS(J)||J?.function.strict||!1}function $A(T){if(TA(T.response_format))return!0;return T.tools?.some(($)=>zS($)||$.type==="function"&&$.function.strict===!0)??!1}function Xw(T){for(let $ of T??[]){if($.type!=="function")throw new TT(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new TT(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var V$=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},O$,JA,af,SA,FA,fA,Mw,WA,ww=10;class D0 extends O0{constructor(){super(...arguments);O$.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(T){this._chatCompletions.push(T),this._emit("chatCompletion",T);let $=T.choices[0]?.message;if($)this._addMessage($);return T}_addMessage(T,$=!0){if(!("content"in T))T.content=null;if(this.messages.push(T),$){if(this._emit("message",T),(aW(T)||sW(T))&&T.content)this._emit("functionCallResult",T.content);else if(gJ(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(gJ(T)&&T.tool_calls){for(let J of T.tool_calls)if(J.type==="function")this._emit("functionCall",J.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new TT("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),V$(this,O$,"m",JA).call(this)}async finalMessage(){return await this.done(),V$(this,O$,"m",af).call(this)}async finalFunctionCall(){return await this.done(),V$(this,O$,"m",SA).call(this)}async finalFunctionCallResult(){return await this.done(),V$(this,O$,"m",FA).call(this)}async totalUsage(){return await this.done(),V$(this,O$,"m",fA).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=V$(this,O$,"m",af).call(this);if($)this._emit("finalMessage",$);let J=V$(this,O$,"m",JA).call(this);if(J)this._emit("finalContent",J);let S=V$(this,O$,"m",SA).call(this);if(S)this._emit("finalFunctionCall",S);let F=V$(this,O$,"m",FA).call(this);if(F!=null)this._emit("finalFunctionCallResult",F);if(this._chatCompletions.some((f)=>f.usage))this._emit("totalUsage",V$(this,O$,"m",fA).call(this))}async _createChatCompletion(T,$,J){let S=J?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}V$(this,O$,"m",Mw).call(this,$);let F=await T.chat.completions.create({...$,stream:!1},{...J,signal:this.controller.signal});return this._connected(),this._addChatCompletion(z0(F,$))}async _runChatCompletion(T,$,J){for(let S of $.messages)this._addMessage(S,!1);return await this._createChatCompletion(T,$,J)}async _runFunctions(T,$,J){let{function_call:F="auto",stream:f,...W}=$,A=typeof F!=="string"&&F?.name,{maxChatCompletions:X=ww}=J||{},w={};for(let Y of $.functions)w[Y.name||Y.function.name]=Y;let M=$.functions.map((Y)=>({name:Y.name||Y.function.name,parameters:Y.parameters,description:Y.description}));for(let Y of $.messages)this._addMessage(Y,!1);for(let Y=0;Y<X;++Y){let z=(await this._createChatCompletion(T,{...W,function_call:F,functions:M,messages:[...this.messages]},J)).choices[0]?.message;if(!z)throw new TT("missing message in ChatCompletion response");if(!z.function_call)return;let{name:D,arguments:_}=z.function_call,L=w[D];if(!L){let Q=`Invalid function_call: ${JSON.stringify(D)}. Available options are: ${M.map((V)=>JSON.stringify(V.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:D,content:Q});continue}else if(A&&A!==D){let Q=`Invalid function_call: ${JSON.stringify(D)}. ${JSON.stringify(A)} requested. Please try again`;this._addMessage({role:"function",name:D,content:Q});continue}let j;try{j=rW(L)?await L.parse(_):_}catch(Q){this._addMessage({role:"function",name:D,content:Q instanceof Error?Q.message:String(Q)});continue}let y=await L.function(j,this),I=V$(this,O$,"m",WA).call(this,y);if(this._addMessage({role:"function",name:D,content:I}),A)return}}async _runTools(T,$,J){let{tool_choice:F="auto",stream:f,...W}=$,A=typeof F!=="string"&&F?.function?.name,{maxChatCompletions:X=ww}=J||{},w=$.tools.map((G)=>{if(zS(G)){if(!G.$callback)throw new TT("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:G.$callback,name:G.function.name,description:G.function.description||"",parameters:G.function.parameters,parse:G.$parseRaw,strict:!0}}}return G}),M={};for(let G of w)if(G.type==="function")M[G.function.name||G.function.function.name]=G.function;let Y="tools"in $?w.map((G)=>G.type==="function"?{type:"function",function:{name:G.function.name||G.function.function.name,parameters:G.function.parameters,description:G.function.description,strict:G.function.strict}}:G):void 0;for(let G of $.messages)this._addMessage(G,!1);for(let G=0;G<X;++G){let D=(await this._createChatCompletion(T,{...W,tool_choice:F,tools:Y,messages:[...this.messages]},J)).choices[0]?.message;if(!D)throw new TT("missing message in ChatCompletion response");if(!D.tool_calls?.length)return;for(let _ of D.tool_calls){if(_.type!=="function")continue;let L=_.id,{name:j,arguments:y}=_.function,I=M[j];if(!I){let U=`Invalid tool_call: ${JSON.stringify(j)}. Available options are: ${Object.keys(M).map((h)=>JSON.stringify(h)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:L,content:U});continue}else if(A&&A!==j){let U=`Invalid tool_call: ${JSON.stringify(j)}. ${JSON.stringify(A)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:L,content:U});continue}let Q;try{Q=rW(I)?await I.parse(y):y}catch(U){let h=U instanceof Error?U.message:String(U);this._addMessage({role:"tool",tool_call_id:L,content:h});continue}let V=await I.function(Q,this),B=V$(this,O$,"m",WA).call(this,V);if(this._addMessage({role:"tool",tool_call_id:L,content:B}),A)return}}return}}O$=new WeakSet,JA=function T(){return V$(this,O$,"m",af).call(this).content??null},af=function T(){let $=this.messages.length;while($-- >0){let J=this.messages[$];if(gJ(J)){let{function_call:S,...F}=J,f={...F,content:J.content??null,refusal:J.refusal??null};if(S)f.function_call=S;return f}}throw new TT("stream ended without producing a ChatCompletionMessage with role=assistant")},SA=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(gJ(J)&&J?.function_call)return J.function_call;if(gJ(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},FA=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(aW(J)&&J.content!=null)return J.content;if(sW(J)&&J.content!=null&&typeof J.content==="string"&&this.messages.some((S)=>S.role==="assistant"&&S.tool_calls?.some((F)=>F.type==="function"&&F.id===J.tool_call_id)))return J.content}return},fA=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 $},Mw=function T($){if($.n!=null&&$.n>1)throw new TT("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},WA=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class AF extends D0{static runFunctions(T,$,J){let S=new AF,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return S._run(()=>S._runFunctions(T,$,F)),S}static runTools(T,$,J){let S=new AF,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return S._run(()=>S._runTools(T,$,F)),S}_addMessage(T,$=!0){if(super._addMessage(T,$),gJ(T)&&T.content)this._emit("content",T.content)}}var J$={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class Yw extends Error{}class Gw extends Error{}function x5(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 j5(T.trim(),$)}var j5=(T,$)=>{let J=T.length,S=0,F=(G)=>{throw new Yw(`${G} at position ${S}`)},f=(G)=>{throw new Gw(`${G} at position ${S}`)},W=()=>{if(Y(),S>=J)F("Unexpected end of input");if(T[S]==='"')return A();if(T[S]==="{")return X();if(T[S]==="[")return w();if(T.substring(S,S+4)==="null"||J$.NULL&$&&J-S<4&&"null".startsWith(T.substring(S)))return S+=4,null;if(T.substring(S,S+4)==="true"||J$.BOOL&$&&J-S<4&&"true".startsWith(T.substring(S)))return S+=4,!0;if(T.substring(S,S+5)==="false"||J$.BOOL&$&&J-S<5&&"false".startsWith(T.substring(S)))return S+=5,!1;if(T.substring(S,S+8)==="Infinity"||J$.INFINITY&$&&J-S<8&&"Infinity".startsWith(T.substring(S)))return S+=8,1/0;if(T.substring(S,S+9)==="-Infinity"||J$.MINUS_INFINITY&$&&1<J-S&&J-S<9&&"-Infinity".startsWith(T.substring(S)))return S+=9,-1/0;if(T.substring(S,S+3)==="NaN"||J$.NAN&$&&J-S<3&&"NaN".startsWith(T.substring(S)))return S+=3,NaN;return M()},A=()=>{let G=S,z=!1;S++;while(S<J&&(T[S]!=='"'||z&&T[S-1]==="\\"))z=T[S]==="\\"?!z:!1,S++;if(T.charAt(S)=='"')try{return JSON.parse(T.substring(G,++S-Number(z)))}catch(D){f(String(D))}else if(J$.STR&$)try{return JSON.parse(T.substring(G,S-Number(z))+'"')}catch(D){return JSON.parse(T.substring(G,T.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},X=()=>{S++,Y();let G={};try{while(T[S]!=="}"){if(Y(),S>=J&&J$.OBJ&$)return G;let z=A();Y(),S++;try{let D=W();Object.defineProperty(G,z,{value:D,writable:!0,enumerable:!0,configurable:!0})}catch(D){if(J$.OBJ&$)return G;else throw D}if(Y(),T[S]===",")S++}}catch(z){if(J$.OBJ&$)return G;else F("Expected '}' at end of object")}return S++,G},w=()=>{S++;let G=[];try{while(T[S]!=="]")if(G.push(W()),Y(),T[S]===",")S++}catch(z){if(J$.ARR&$)return G;F("Expected ']' at end of array")}return S++,G},M=()=>{if(S===0){if(T==="-"&&J$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T)}catch(z){if(J$.NUM&$)try{if(T[T.length-1]===".")return JSON.parse(T.substring(0,T.lastIndexOf(".")));return JSON.parse(T.substring(0,T.lastIndexOf("e")))}catch(D){}f(String(z))}}let G=S;if(T[S]==="-")S++;while(T[S]&&!",]}".includes(T[S]))S++;if(S==J&&!(J$.NUM&$))F("Unterminated number literal");try{return JSON.parse(T.substring(G,S))}catch(z){if(T.substring(G,S)==="-"&&J$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T.substring(G,T.lastIndexOf("e")))}catch(D){f(String(D))}}},Y=()=>{while(S<J&&`
|
|
30
|
-
\r `.includes(T[
|
|
31
|
-
${
|
|
32
|
-
${
|
|
33
|
-
${
|
|
34
|
-
${T1(T)}`);return{...h,id:U,type:B,function:{...s,name:R,arguments:l}}})}};return{...z,message:{...j,content:D,role:y,refusal:w.refusal??null},finish_reason:M,index:Y,logprobs:G}}),created:F,model:f,object:"chat.completion",...W?{system_fingerprint:W}:{}};return Ww(X,$)}function T1(T){return JSON.stringify(T)}function Hw(T){return}function Ow(T){}class ES extends DS{static fromReadableStream(T){let $=new ES(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,J){let S=new ES(null),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return S._run(()=>S._runFunctions(T,$,F)),S}static runTools(T,$,J){let S=new ES($),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return S._run(()=>S._runTools(T,$,F)),S}}class $1 extends c{parse(T,$){return Xw(T.tools),this._client.chat.completions.create(T,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((J)=>z0(J,T))}runFunctions(T,$){if(T.stream)return ES.runFunctions(this._client,T,$);return AF.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return ES.runTools(this._client,T,$);return AF.runTools(this._client,T,$)}stream(T,$){return DS.createChatCompletion(this._client,T,$)}}class E0 extends c{constructor(){super(...arguments);this.completions=new $1(this._client)}}(function(T){T.Completions=$1})(E0||(E0={}));class Q0 extends c{create(T,$){return this._client.post("/realtime/sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class MF extends c{constructor(){super(...arguments);this.sessions=new Q0(this._client)}}MF.Sessions=Q0;var t=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},Z$=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},W$,KA,YJ,J1,TJ,_S,YF,QS,f1,q$,S1,F1,k0,_0,R0,zw,Dw,Ew,Qw,_w,Rw,kw;class b$ extends O0{constructor(){super(...arguments);W$.add(this),KA.set(this,[]),YJ.set(this,{}),J1.set(this,{}),TJ.set(this,void 0),_S.set(this,void 0),YF.set(this,void 0),QS.set(this,void 0),f1.set(this,void 0),q$.set(this,void 0),S1.set(this,void 0),F1.set(this,void 0),k0.set(this,void 0)}[(KA=new WeakMap,YJ=new WeakMap,J1=new WeakMap,TJ=new WeakMap,_S=new WeakMap,YF=new WeakMap,QS=new WeakMap,f1=new WeakMap,q$=new WeakMap,S1=new WeakMap,F1=new WeakMap,k0=new WeakMap,W$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(S)=>{let F=$.shift();if(F)F.resolve(S);else T.push(S)}),this.on("end",()=>{J=!0;for(let S of $)S.resolve(void 0);$.length=0}),this.on("abort",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),this.on("error",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,f)=>$.push({resolve:F,reject:f})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(T){let $=new b$;return $._run(()=>$._fromReadableStream(T)),$}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}this._connected();let S=I$.fromReadableStream(T,this.controller);for await(let F of S)t(this,W$,"m",_0).call(this,F);if(S.controller.signal?.aborted)throw new f$;return this._addRun(t(this,W$,"m",R0).call(this))}toReadableStream(){return new I$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,J,S,F){let f=new b$;return f._run(()=>f._runToolAssistantStream(T,$,J,S,{...F,headers:{...F?.headers,"X-Stainless-Helper-Method":"stream"}})),f}async _createToolAssistantStream(T,$,J,S,F){let f=F?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}let W={...S,stream:!0},A=await T.submitToolOutputs($,J,W,{...F,signal:this.controller.signal});this._connected();for await(let X of A)t(this,W$,"m",_0).call(this,X);if(A.controller.signal?.aborted)throw new f$;return this._addRun(t(this,W$,"m",R0).call(this))}static createThreadAssistantStream(T,$,J){let S=new b$;return S._run(()=>S._threadAssistantStream(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),S}static createAssistantStream(T,$,J,S){let F=new b$;return F._run(()=>F._runAssistantStream(T,$,J,{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return t(this,S1,"f")}currentRun(){return t(this,F1,"f")}currentMessageSnapshot(){return t(this,TJ,"f")}currentRunStepSnapshot(){return t(this,k0,"f")}async finalRunSteps(){return await this.done(),Object.values(t(this,YJ,"f"))}async finalMessages(){return await this.done(),Object.values(t(this,J1,"f"))}async finalRun(){if(await this.done(),!t(this,_S,"f"))throw Error("Final run was not received.");return t(this,_S,"f")}async _createThreadAssistantStream(T,$,J){let S=J?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}let F={...$,stream:!0},f=await T.createAndRun(F,{...J,signal:this.controller.signal});this._connected();for await(let W of f)t(this,W$,"m",_0).call(this,W);if(f.controller.signal?.aborted)throw new f$;return this._addRun(t(this,W$,"m",R0).call(this))}async _createAssistantStream(T,$,J,S){let F=S?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let f={...J,stream:!0},W=await T.create($,f,{...S,signal:this.controller.signal});this._connected();for await(let A of W)t(this,W$,"m",_0).call(this,A);if(W.controller.signal?.aborted)throw new f$;return this._addRun(t(this,W$,"m",R0).call(this))}static accumulateDelta(T,$){for(let[J,S]of Object.entries($)){if(!T.hasOwnProperty(J)){T[J]=S;continue}let F=T[J];if(F===null||F===void 0){T[J]=S;continue}if(J==="index"||J==="type"){T[J]=S;continue}if(typeof F==="string"&&typeof S==="string")F+=S;else if(typeof F==="number"&&typeof S==="number")F+=S;else if(f0(F)&&f0(S))F=this.accumulateDelta(F,S);else if(Array.isArray(F)&&Array.isArray(S)){if(F.every((f)=>typeof f==="string"||typeof f==="number")){F.push(...S);continue}for(let f of S){if(!f0(f))throw new Error(`Expected array delta entry to be an object but got: ${f}`);let W=f.index;if(W==null)throw console.error(f),new Error("Expected array delta entry to have an `index` property");if(typeof W!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${W}`);let A=F[W];if(A==null)F.push(f);else F[W]=this.accumulateDelta(A,f)}continue}else throw Error(`Unhandled record type: ${J}, deltaValue: ${S}, accValue: ${F}`);T[J]=F}return T}_addRun(T){return T}async _threadAssistantStream(T,$,J){return await this._createThreadAssistantStream($,T,J)}async _runAssistantStream(T,$,J,S){return await this._createAssistantStream($,T,J,S)}async _runToolAssistantStream(T,$,J,S,F){return await this._createToolAssistantStream(J,T,$,S,F)}}_0=function T($){if(this.ended)return;switch(Z$(this,S1,$,"f"),t(this,W$,"m",Ew).call(this,$),$.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":t(this,W$,"m",kw).call(this,$);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":t(this,W$,"m",Dw).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":t(this,W$,"m",zw).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:m5($)}},R0=function T(){if(this.ended)throw new TT("stream has ended, this shouldn't happen");if(!t(this,_S,"f"))throw Error("Final run has not been received");return t(this,_S,"f")},zw=function T($){let[J,S]=t(this,W$,"m",_w).call(this,$,t(this,TJ,"f"));Z$(this,TJ,J,"f"),t(this,J1,"f")[J.id]=J;for(let F of S){let f=J.content[F.index];if(f?.type=="text")this._emit("textCreated",f.text)}switch($.event){case"thread.message.created":this._emit("messageCreated",$.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",$.data.delta,J),$.data.delta.content)for(let F of $.data.delta.content){if(F.type=="text"&&F.text){let f=F.text,W=J.content[F.index];if(W&&W.type=="text")this._emit("textDelta",f,W.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=t(this,YF,"f")){if(t(this,QS,"f"))switch(t(this,QS,"f").type){case"text":this._emit("textDone",t(this,QS,"f").text,t(this,TJ,"f"));break;case"image_file":this._emit("imageFileDone",t(this,QS,"f").image_file,t(this,TJ,"f"));break}Z$(this,YF,F.index,"f")}Z$(this,QS,J.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(t(this,YF,"f")!==void 0){let F=$.data.content[t(this,YF,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,t(this,TJ,"f"));break;case"text":this._emit("textDone",F.text,t(this,TJ,"f"));break}}if(t(this,TJ,"f"))this._emit("messageDone",$.data);Z$(this,TJ,void 0,"f")}},Dw=function T($){let J=t(this,W$,"m",Qw).call(this,$);switch(Z$(this,k0,J,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let S=$.data.delta;if(S.step_details&&S.step_details.type=="tool_calls"&&S.step_details.tool_calls&&J.step_details.type=="tool_calls")for(let f of S.step_details.tool_calls)if(f.index==t(this,f1,"f"))this._emit("toolCallDelta",f,J.step_details.tool_calls[f.index]);else{if(t(this,q$,"f"))this._emit("toolCallDone",t(this,q$,"f"));if(Z$(this,f1,f.index,"f"),Z$(this,q$,J.step_details.tool_calls[f.index],"f"),t(this,q$,"f"))this._emit("toolCallCreated",t(this,q$,"f"))}this._emit("runStepDelta",$.data.delta,J);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(Z$(this,k0,void 0,"f"),$.data.step_details.type=="tool_calls"){if(t(this,q$,"f"))this._emit("toolCallDone",t(this,q$,"f")),Z$(this,q$,void 0,"f")}this._emit("runStepDone",$.data,J);break;case"thread.run.step.in_progress":break}},Ew=function T($){t(this,KA,"f").push($),this._emit("event",$)},Qw=function T($){switch($.event){case"thread.run.step.created":return t(this,YJ,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let J=t(this,YJ,"f")[$.data.id];if(!J)throw Error("Received a RunStepDelta before creation of a snapshot");let S=$.data;if(S.delta){let F=b$.accumulateDelta(J,S.delta);t(this,YJ,"f")[$.data.id]=F}return t(this,YJ,"f")[$.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":t(this,YJ,"f")[$.data.id]=$.data;break}if(t(this,YJ,"f")[$.data.id])return t(this,YJ,"f")[$.data.id];throw new Error("No snapshot available")},_w=function T($,J){let S=[];switch($.event){case"thread.message.created":return[$.data,S];case"thread.message.delta":if(!J)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=$.data;if(F.delta.content)for(let f of F.delta.content)if(f.index in J.content){let W=J.content[f.index];J.content[f.index]=t(this,W$,"m",Rw).call(this,f,W)}else J.content[f.index]=f,S.push(f);return[J,S];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(J)return[J,S];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},Rw=function T($,J){return b$.accumulateDelta(J,$)},kw=function T($){switch(Z$(this,F1,$.data,"f"),$.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":if(Z$(this,_S,$.data,"f"),t(this,q$,"f"))this._emit("toolCallDone",t(this,q$,"f")),Z$(this,q$,void 0,"f");break;case"thread.run.cancelling":break}};function m5(T){}class GF extends c{create(T,$,J){return this._client.post(`/threads/${T}/messages`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/threads/${T}/messages/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}update(T,$,J,S){return this._client.post(`/threads/${T}/messages/${$}`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/messages`,U0,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$,J){return this._client.delete(`/threads/${T}/messages/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class U0 extends jT{}GF.MessagesPage=U0;class KF extends c{retrieve(T,$,J,S={},F){if(DT(S))return this.retrieve(T,$,J,{},S);return this._client.get(`/threads/${T}/runs/${$}/steps/${J}`,{query:S,...F,headers:{"OpenAI-Beta":"assistants=v2",...F?.headers}})}list(T,$,J={},S){if(DT(J))return this.list(T,$,{},J);return this._client.getAPIList(`/threads/${T}/runs/${$}/steps`,V0,{query:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class V0 extends jT{}KF.RunStepsPage=V0;class oJ extends c{constructor(){super(...arguments);this.steps=new KF(this._client)}create(T,$,J){let{include:S,...F}=$;return this._client.post(`/threads/${T}/runs`,{query:{include:S},body:F,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers},stream:$.stream??!1})}retrieve(T,$,J){return this._client.get(`/threads/${T}/runs/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}update(T,$,J,S){return this._client.post(`/threads/${T}/runs/${$}`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/runs`,B0,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}cancel(T,$,J){return this._client.post(`/threads/${T}/runs/${$}/cancel`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$,J);return await this.poll(T,S.id,J)}createAndStream(T,$,J){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:f}=await this.retrieve(T,$,{...J,headers:{...J?.headers,...S}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let W=5000;if(J?.pollIntervalMs)W=J.pollIntervalMs;else{let A=f.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))W=X}}await kJ(W);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(T,$,J){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}submitToolOutputs(T,$,J,S){return this._client.post(`/threads/${T}/runs/${$}/submit_tool_outputs`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers},stream:J.stream??!1})}async submitToolOutputsAndPoll(T,$,J,S){let F=await this.submitToolOutputs(T,$,J,S);return await this.poll(T,F.id,S)}submitToolOutputsStream(T,$,J,S){return b$.createToolAssistantStream(T,$,this._client.beta.threads.runs,J,S)}}class B0 extends jT{}oJ.RunsPage=B0;oJ.Steps=KF;oJ.RunStepsPage=V0;class yJ extends c{constructor(){super(...arguments);this.runs=new oJ(this._client),this.messages=new GF(this._client)}create(T={},$){if(DT(T))return this.create({},T);return this._client.post("/threads",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/threads/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$){return this._client.delete(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}createAndRun(T,$){return this._client.post("/threads/runs",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:T.stream??!1})}async createAndRunPoll(T,$){let J=await this.createAndRun(T,$);return await this.runs.poll(J.thread_id,J.id,$)}createAndRunStream(T,$){return b$.createThreadAssistantStream(T,this._client.beta.threads,$)}}yJ.Runs=oJ;yJ.RunsPage=B0;yJ.Messages=GF;yJ.MessagesPage=U0;var Uw=async(T)=>{let $=await Promise.allSettled(T),J=$.filter((F)=>F.status==="rejected");if(J.length){for(let F of J)console.error(F.reason);throw new Error(`${J.length} promise(s) failed - see the above errors`)}let S=[];for(let F of $)if(F.status==="fulfilled")S.push(F.value);return S};class HF extends c{create(T,$,J){return this._client.post(`/vector_stores/${T}/files`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/vector_stores/${T}/files/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/vector_stores/${T}/files`,RS,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$,J){return this._client.delete(`/vector_stores/${T}/files/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$,J);return await this.poll(T,S.id,J)}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let F=await this.retrieve(T,$,{...J,headers:S}).withResponse(),f=F.data;switch(f.status){case"in_progress":let W=5000;if(J?.pollIntervalMs)W=J.pollIntervalMs;else{let A=F.response.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))W=X}}await kJ(W);break;case"failed":case"completed":return f}}}async upload(T,$,J){let S=await this._client.files.create({file:$,purpose:"assistants"},J);return this.create(T,{file_id:S.id},J)}async uploadAndPoll(T,$,J){let S=await this.upload(T,$,J);return await this.poll(T,S.id,J)}}class RS extends jT{}HF.VectorStoreFilesPage=RS;class y0 extends c{create(T,$,J){return this._client.post(`/vector_stores/${T}/file_batches`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/vector_stores/${T}/file_batches/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}cancel(T,$,J){return this._client.post(`/vector_stores/${T}/file_batches/${$}/cancel`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$);return await this.poll(T,S.id,J)}listFiles(T,$,J={},S){if(DT(J))return this.listFiles(T,$,{},J);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${$}/files`,RS,{query:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:f}=await this.retrieve(T,$,{...J,headers:S}).withResponse();switch(F.status){case"in_progress":let W=5000;if(J?.pollIntervalMs)W=J.pollIntervalMs;else{let A=f.headers.get("openai-poll-after-ms");if(A){let X=parseInt(A);if(!isNaN(X))W=X}}await kJ(W);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(T,{files:$,fileIds:J=[]},S){if($==null||$.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=S?.maxConcurrency??5,f=Math.min(F,$.length),W=this._client,A=$.values(),X=[...J];async function w(Y){for(let G of Y){let z=await W.files.create({file:G,purpose:"assistants"},S);X.push(z.id)}}let M=Array(f).fill(A).map(w);return await Uw(M),await this.createAndPoll(T,{file_ids:X})}}class LJ extends c{constructor(){super(...arguments);this.files=new HF(this._client),this.fileBatches=new y0(this._client)}create(T,$){return this._client.post("/vector_stores",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/vector_stores/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",L0,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class L0 extends jT{}LJ.VectorStoresPage=L0;LJ.Files=HF;LJ.VectorStoreFilesPage=RS;LJ.FileBatches=y0;class p$ extends c{constructor(){super(...arguments);this.realtime=new MF(this._client),this.vectorStores=new LJ(this._client),this.chat=new E0(this._client),this.assistants=new fF(this._client),this.threads=new yJ(this._client)}}p$.Realtime=MF;p$.VectorStores=LJ;p$.VectorStoresPage=L0;p$.Assistants=fF;p$.AssistantsPage=M0;p$.Threads=yJ;class OF extends c{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class zF extends c{create(T,$){return this._client.post("/embeddings",{body:T,...$})}}class kS extends c{create(T,$){return this._client.post("/files",g$({body:T,...$}))}retrieve(T,$){return this._client.get(`/files/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/files",DF,{query:T,...$})}del(T,$){return this._client.delete(`/files/${T}`,$)}content(T,$){return this._client.get(`/files/${T}/content`,{...$,headers:{Accept:"application/binary",...$?.headers},__binaryResponse:!0})}retrieveContent(T,$){return this._client.get(`/files/${T}/content`,$)}async waitForProcessing(T,{pollInterval:$=5000,maxWait:J=1800000}={}){let S=new Set(["processed","error","deleted"]),F=Date.now(),f=await this.retrieve(T);while(!f.status||!S.has(f.status))if(await kJ($),f=await this.retrieve(T),Date.now()-F>J)throw new MS({message:`Giving up on waiting for file ${T} to finish processing after ${J} milliseconds.`});return f}}class DF extends jT{}kS.FileObjectsPage=DF;class EF extends c{list(T,$={},J){if(DT($))return this.list(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,N0,{query:$,...J})}}class N0 extends jT{}EF.FineTuningJobCheckpointsPage=N0;class NJ extends c{constructor(){super(...arguments);this.checkpoints=new EF(this._client)}create(T,$){return this._client.post("/fine_tuning/jobs",{body:T,...$})}retrieve(T,$){return this._client.get(`/fine_tuning/jobs/${T}`,$)}list(T={},$){if(DT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",C0,{query:T,...$})}cancel(T,$){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,$)}listEvents(T,$={},J){if(DT($))return this.listEvents(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,x0,{query:$,...J})}}class C0 extends jT{}class x0 extends jT{}NJ.FineTuningJobsPage=C0;NJ.FineTuningJobEventsPage=x0;NJ.Checkpoints=EF;NJ.FineTuningJobCheckpointsPage=N0;class CJ extends c{constructor(){super(...arguments);this.jobs=new NJ(this._client)}}CJ.Jobs=NJ;CJ.FineTuningJobsPage=C0;CJ.FineTuningJobEventsPage=x0;class QF extends c{createVariation(T,$){return this._client.post("/images/variations",g$({body:T,...$}))}edit(T,$){return this._client.post("/images/edits",g$({body:T,...$}))}generate(T,$){return this._client.post("/images/generations",{body:T,...$})}}class US extends c{retrieve(T,$){return this._client.get(`/models/${T}`,$)}list(T){return this._client.getAPIList("/models",_F,T)}del(T,$){return this._client.delete(`/models/${T}`,$)}}class _F extends uW{}US.ModelsPage=_F;class RF extends c{create(T,$){return this._client.post("/moderations",{body:T,...$})}}class j0 extends c{create(T,$,J){return this._client.post(`/uploads/${T}/parts`,g$({body:$,...J}))}}class VS extends c{constructor(){super(...arguments);this.parts=new j0(this._client)}create(T,$){return this._client.post("/uploads",{body:T,...$})}cancel(T,$){return this._client.post(`/uploads/${T}/cancel`,$)}complete(T,$,J){return this._client.post(`/uploads/${T}/complete`,{body:$,...J})}}VS.Parts=j0;var Vw;class XT extends dW{constructor({baseURL:T=F0("OPENAI_BASE_URL"),apiKey:$=F0("OPENAI_API_KEY"),organization:J=F0("OPENAI_ORG_ID")??null,project:S=F0("OPENAI_PROJECT_ID")??null,...F}={}){if($===void 0)throw new TT("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let f={apiKey:$,organization:J,project:S,...F,baseURL:T||"https://api.openai.com/v1"};if(!f.dangerouslyAllowBrowser&&Fw())throw new TT(`It looks like you're running in a browser-like environment.
|
|
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 tY(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)},lY="RFC1738";var OM=Array.isArray,wJ=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var d2=1024,rY=(T,$,J,W,F)=>{if(T.length===0)return T;let X=T;if(typeof T==="symbol")X=Symbol.prototype.toString.call(T);else if(typeof T!=="string")X=String(T);if(J==="iso-8859-1")return escape(X).replace(/%u[0-9a-f]{4}/gi,function(Y){return"%26%23"+parseInt(Y.slice(2),16)+"%3B"});let S="";for(let Y=0;Y<X.length;Y+=d2){let A=X.length>=d2?X.slice(Y,Y+d2):X,w=[];for(let G=0;G<A.length;++G){let M=A.charCodeAt(G);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===lY&&(M===40||M===41)){w[w.length]=A.charAt(G);continue}if(M<128){w[w.length]=wJ[M];continue}if(M<2048){w[w.length]=wJ[192|M>>6]+wJ[128|M&63];continue}if(M<55296||M>=57344){w[w.length]=wJ[224|M>>12]+wJ[128|M>>6&63]+wJ[128|M&63];continue}G+=1,M=65536+((M&1023)<<10|A.charCodeAt(G)&1023),w[w.length]=wJ[240|M>>18]+wJ[128|M>>12&63]+wJ[128|M>>6&63]+wJ[128|M&63]}S+=w.join("")}return S};function aY(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 zM=Object.prototype.hasOwnProperty,sY={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},GJ=Array.isArray,KM=Array.prototype.push,eY=function(T,$){KM.apply(T,GJ($)?$:[$])},fM=Date.prototype.toISOString,rT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:rY,encodeValuesOnly:!1,format:mF,formatter:gF[mF],indices:!1,serializeDate(T){return fM.call(T)},skipNulls:!1,strictNullHandling:!1};function DM(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var i2={};function T6(T,$,J,W,F,X,S,Y,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(DM(L)||aY(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=Y?String($).replace(/\./g,"%2E"):String($),r=W&&GJ(L)&&L.length===1?b+"[]":b;if(F&&GJ(L)&&L.length===0)return r+"[]";for(let U=0;U<k.length;++U){let e=k[U],p=typeof e==="object"&&typeof e.value!=="undefined"?e.value:L[e];if(S&&p===null)continue;let $T=M&&Y?e.replace(/\./g,"%2E"):e,DT=GJ(L)?typeof J==="function"?J(r,$T):r:r+(M?"."+$T:"["+$T+"]");j.set(T,E);let PT=new WeakMap;PT.set(i2,j),eY(B,T6(p,DT,J,W,F,X,S,Y,J==="comma"&&R&&GJ(L)?null:A,w,G,M,H,f,D,R,y,PT))}return B}function QM(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(!zM.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 sY)X=T.arrayFormat;else if("indices"in T)X=T.indices?"indices":"repeat";else X=rT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let S=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:rT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:rT.addQueryPrefix,allowDots:S,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:rT.allowEmptyArrays,arrayFormat:X,charset:$,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:rT.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?rT.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:rT.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:rT.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:rT.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:rT.encodeValuesOnly,filter:F,format:J,formatter:W,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:rT.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:rT.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:rT.strictNullHandling}}function t2(T,$={}){let J=T,W=QM($),F,X;if(typeof W.filter==="function")X=W.filter,J=X("",J);else if(GJ(W.filter))X=W.filter,F=X;let S=[];if(typeof J!=="object"||J===null)return"";let Y=sY[W.arrayFormat],A=Y==="comma"&&W.commaRoundTrip;if(!F)F=Object.keys(J);if(W.sort)F.sort(W.sort);let w=new WeakMap;for(let H=0;H<F.length;++H){let f=F[H];if(W.skipNulls&&J[f]===null)continue;eY(S,T6(J[f],f,Y,A,W.allowEmptyArrays,W.strictNullHandling,W.skipNulls,W.encodeDotInKeys,W.encode?W.encoder:null,W.filter,W.sort,W.allowDots,W.serializeDate,W.format,W.formatter,W.encodeValuesOnly,W.charset,w))}let G=S.join(W.delimiter),M=W.addQueryPrefix===!0?"?":"";if(W.charsetSentinel)if(W.charset==="iso-8859-1")M+="utf8=%26%2310003%3B&";else M+="utf8=%E2%9C%93&";return G.length>0?M+G:""}var G0="4.90.0";var $6=!1,M0=void 0,l2=void 0,RM=void 0,UM=void 0,_M=void 0,r2=void 0,kM=void 0,cF=void 0,a2=void 0,s2=void 0,e2=void 0,nF=void 0,T8=void 0;function J6(T,$={auto:!1}){if($6)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(M0)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${M0}'\``);$6=$.auto,M0=T.kind,l2=T.fetch,RM=T.Request,UM=T.Response,_M=T.Headers,r2=T.FormData,kM=T.Blob,cF=T.File,a2=T.ReadableStream,s2=T.getMultipartRequestOptions,e2=T.getDefaultAgent,nF=T.fileFromPath,T8=T.isFsReadStream}class $8{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function W6({manuallyImported:T}={}){let $=T?"You may need to use polyfills":"Add one of these imports before your first `import \u2026 from 'openai'`:\n- `import 'openai/shims/node'` (if you're running on Node)\n- `import 'openai/shims/web'` (otherwise)\n",J,W,F,X;try{J=fetch,W=Request,F=Response,X=Headers}catch(S){throw new Error(`this environment is missing the following Web Fetch API type: ${S.message}. ${$}`)}return{kind:"web",fetch:J,Request:W,Response:F,Headers:X,FormData:typeof FormData!=="undefined"?FormData:class S{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class S{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class S{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class S{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(S,Y)=>({...Y,body:new $8(S)}),getDefaultAgent:(S)=>{return},fileFromPath:()=>{throw new Error("The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads")},isFsReadStream:(S)=>!1}}import{ReadStream as BM}from"node:fs";function F6(){let T=W6();function $(J){return J instanceof BM}return{...T,isFsReadStream:$}}var J8=()=>{if(!M0)J6(F6(),{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 H0({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 H0 extends nT{constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class O0 extends H0{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 OW 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},z0=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 G1{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=yM(this.buffer,z0(this,j$,"f")))!=null){if(F.carriage&&z0(this,j$,"f")==null){sF(this,j$,F.index,"f");continue}if(z0(this,j$,"f")!=null&&(F.index!==z0(this,j$,"f")+1||F.carriage)){W.push(this.decodeText(this.buffer.slice(0,z0(this,j$,"f")-1))),this.buffer=this.buffer.slice(z0(this,j$,"f")),sF(this,j$,null,"f");continue}let X=z0(this,j$,"f")!==null?F.preceding-1:F.preceding,S=this.decodeText(this.buffer.slice(0,X));W.push(S),this.buffer=this.buffer.slice(F.index),sF(this,j$,null,"f")}return W}decodeText(T){if(T==null)return"";if(typeof T==="string")return T;if(typeof Buffer!=="undefined"){if(T instanceof Buffer)return T.toString();if(T instanceof Uint8Array)return Buffer.from(T).toString();throw new d(`Unexpected: received non-Uint8Array (${T.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder!=="undefined"){if(T instanceof Uint8Array||T instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(T);throw new d(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new d("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
|
|
26
|
+
`)}}j$=new WeakMap;G1.NEWLINE_CHARS=new Set([`
|
|
27
|
+
`,"\r"]);G1.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function yM(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 X6(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 NM(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 S;try{S=JSON.parse(X.data)}catch(Y){throw console.error("Could not parse message into JSON:",X.data),console.error("From chunk:",X.raw),Y}if(S&&S.error)throw new nT(void 0,S.error,void 0,F8(T.headers));yield S}else{let S;try{S=JSON.parse(X.data)}catch(Y){throw console.error("Could not parse message into JSON:",X.data),console.error("From chunk:",X.raw),Y}if(X.event=="error")throw new nT(void 0,S.error,S.message,void 0);yield{event:X.event,data:S}}}F=!0}catch(X){if(X instanceof Error&&X.name==="AbortError")return;throw X}finally{if(!F)$.abort()}}return new Z$(W,$)}static fromReadableStream(T,$){let J=!1;async function*W(){let X=new G1,S=W8(T);for await(let Y of S)for(let A of X.decode(Y))yield A;for(let Y of X.flush())yield Y}async function*F(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let X=!1;try{for await(let S of W()){if(X)continue;if(S)yield JSON.parse(S)}X=!0}catch(S){if(S instanceof Error&&S.name==="AbortError")return;throw S}finally{if(!X)$.abort()}}return new Z$(F,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],J=this.iterator(),W=(F)=>{return{next:()=>{if(F.length===0){let X=J.next();T.push(X),$.push(X)}return F.shift()}}};return[new Z$(()=>W(T),this.controller),new Z$(()=>W($),this.controller)]}toReadableStream(){let T=this,$,J=new TextEncoder;return new a2({async start(){$=T[Symbol.asyncIterator]()},async pull(W){try{let{value:F,done:X}=await $.next();if(X)return W.close();let S=J.encode(JSON.stringify(F)+`
|
|
28
|
+
`);W.enqueue(S)}catch(F){W.error(F)}},async cancel(){await $.return?.()}})}}async function*NM(T,$){if(!T.body)throw $.abort(),new d("Attempted to iterate over a response with no body");let J=new S6,W=new G1,F=W8(T.body);for await(let X of CM(F))for(let S of W.decode(X)){let Y=J.decode(S);if(Y)yield Y}for(let X of W.flush()){let S=J.decode(X);if(S)yield S}}async function*CM(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=X6($))!==-1)yield $.slice(0,X),$=$.slice(X)}if($.length>0)yield $}class S6{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]=xM(T,":");if(W.startsWith(" "))W=W.substring(1);if($==="event")this.event=W;else if($==="data")this.data.push(W);return null}}function xM(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}var Y6=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",A6=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&zW(T),zW=(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",jM=(T)=>{return A6(T)||Y6(T)||T8(T)};async function Y8(T,$,J){if(T=await T,A6(T))return T;if(Y6(T)){let F=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let X=zW(F)?[await F.arrayBuffer()]:[F];return new cF(X,$,J)}let W=await ZM(T);if($||($=IM(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 ZM(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(zW(T))$.push(await T.arrayBuffer());else if(bM(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${qM(T)}`);return $}function qM(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function IM(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},bM=(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 w6(T.body);return s2($,T)},w6=async(T)=>{let $=new r2;return await Promise.all(Object.entries(T||{}).map(([J,W])=>S8($,J,W))),$};var S8=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(jM(J)){let W=await Y8(J);T.append($,W)}else if(Array.isArray(J))await Promise.all(J.map((W)=>S8(T,$+"[]",W)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([W,F])=>S8(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 PM=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},hM=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 K6(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 Z$.fromSSEResponse($,T.controller)}if($.status===204)return null;if(T.options.__binaryResponse)return $;let W=$.headers.get("content-type")?.split(";")[0]?.trim();if(W?.includes("application/json")||W?.endsWith("+json")){let S=await $.json();return M1("response",$.status,$.url,$.headers,S),f6(S,$)}let X=await $.text();return M1("response",$.status,$.url,$.headers,X),X}function f6(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,$=K6){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new $X(this.responsePromise,async($)=>f6(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(),...nM(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${uM()}`}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&&zW(W?.body)?new DataView(await W.body.arrayBuffer()):W?.body instanceof DataView?W.body:W?.body instanceof ArrayBuffer?new DataView(W.body):W&&ArrayBuffer.isView(W?.body)?new DataView(W.body.buffer):W?.body;return{method:T,path:$,...W,body:F}}))}getAPIList(T,$,J){return this.requestAPIList($,{method:"get",path:T,...J})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:$=0}={}){T={...T};let{method:J,path:W,query:F,headers:X={}}=T,S=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:A8(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,Y=this.calculateContentLength(S),A=this.buildURL(W,F);if("timeout"in T)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:Y,retryCount:$});return{req:{method:J,...S&&{body:S},headers:M,...w&&{agent:w},signal:T.signal??null},url:A,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:W}){let F={};if(J)F["content-length"]=J;let X=this.defaultHeaders(T);if(O6(F,X),O6(F,$),A8(T.body)&&M0!=="node")delete F["content-type"];if(TX(X,"x-stainless-retry-count")===void 0&&TX($,"x-stainless-retry-count")===void 0)F["x-stainless-retry-count"]=String(W);if(TX(X,"x-stainless-timeout")===void 0&&TX($,"x-stainless-timeout")===void 0&&T.timeout)F["x-stainless-timeout"]=String(T.timeout);return this.validateHeaders(F,$),F}async prepareOptions(T){}async prepareRequest(T,{url:$,options:J}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map(($)=>[...$])):{...T}}makeStatusError(T,$,J,W){return nT.generate(T,$,J,W)}request(T,$=null){return new $X(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,W=J.maxRetries??this.maxRetries;if($==null)$=W;await this.prepareOptions(J);let{req:F,url:X,timeout:S}=this.buildRequest(J,{retryCount:W-$});if(await this.prepareRequest(F,{url:X,options:J}),M1("request",X,J,F.headers),J.signal?.aborted)throw new aT;let Y=new AbortController,A=await this.fetchWithTimeout(X,F,S,Y).catch(aF);if(A instanceof Error){if(J.signal?.aborted)throw new aT;if($)return this.retryRequest(J,$);if(A.name==="AbortError")throw new O0;throw new H0({cause:A})}let w=F8(A.headers);if(!A.ok){if($&&this.shouldRetry(A)){let R=`retrying, ${$} attempts remaining`;return M1(`response (error; ${R})`,A.status,X,w),this.retryRequest(J,$,w)}let G=await A.text().catch((R)=>aF(R).message),M=pM(G),H=M?void 0:G;throw M1(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,A.status,X,w,H),this.makeStatusError(A.status,M,H,w)}return{response:A,options:J,controller:Y}}requestAPIList(T,$){let J=this.makeRequest($,null);return new D6(this,J,T)}buildURL(T,$){let J=dM(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),W=this.defaultQuery();if(!Q6(W))$={...W,...$};if(typeof $==="object"&&$&&!Array.isArray($))J.search=this.stringifyQuery($);return J.toString()}stringifyQuery(T){return Object.entries(T).filter(([$,J])=>typeof J!=="undefined").map(([$,J])=>{if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(J)}`;if(J===null)return`${encodeURIComponent($)}=`;throw new d(`Cannot stringify type ${typeof J}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,$,J,W){let{signal:F,...X}=$||{};if(F)F.addEventListener("abort",()=>W.abort());let S=setTimeout(()=>W.abort(),J),Y={signal:W.signal,...X};if(Y.method)Y.method=Y.method.toUpperCase();return this.fetch.call(void 0,T,Y).finally(()=>{clearTimeout(S)})}shouldRetry(T){let $=T.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,$,J){let W,F=J?.["retry-after-ms"];if(F){let S=parseFloat(F);if(!Number.isNaN(S))W=S}let X=J?.["retry-after"];if(X&&!W){let S=parseFloat(X);if(!Number.isNaN(S))W=S*1000;else W=Date.parse(X)-Date.now()}if(!(W&&0<=W&&W<60000)){let S=T.maxRetries??this.maxRetries;W=this.calculateDefaultRetryTimeoutMillis($,S)}return await kJ(W),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let F=$-T,X=Math.min(0.5*Math.pow(2,F),8),S=1-Math.random()*0.25;return X*S*1000}getUserAgent(){return`${this.constructor.name}/JS ${G0}`}}class JX{constructor(T,$,J,W){eF.set(this,void 0),PM(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 hM(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 D6 extends $X{constructor(T,$,J){super($,async(W)=>new J(T,W.response,await K6(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]}})},mM={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&&!Q6(T)&&Object.keys(T).every(($)=>E6(mM,$))},gM=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":G0,"X-Stainless-OS":M6(Deno.build.os),"X-Stainless-Arch":G6(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":G0,"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":G0,"X-Stainless-OS":M6(process.platform),"X-Stainless-Arch":G6(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=cM();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":G0,"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":G0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function cM(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:J}of T){let W=J.exec(navigator.userAgent);if(W){let F=W[1]||0,X=W[2]||0,S=W[3]||0;return{browser:$,version:`${F}.${X}.${S}`}}}return null}var G6=(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"},M6=(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"},H6,nM=()=>{return H6??(H6=gM())},pM=(T)=>{try{return JSON.parse(T)}catch($){return}},oM=/^[a-z][a-z0-9+.-]*:/i,dM=(T)=>{return oM.test(T)},kJ=(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 Q6(T){if(!T)return!0;for(let $ in T)return!1;return!0}function E6(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function O6(T,$){for(let J in $){if(!E6($,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 z6=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 X={...W,headers:{...W.headers}};for(let S in W.headers)if(z6.has(S.toLowerCase()))X.headers[S]="REDACTED";return X}let F=null;for(let X in W)if(z6.has(X.toLowerCase()))F??(F={...W}),F[X]="REDACTED";return F??W});console.log(`OpenAI:DEBUG:${T}`,...J)}}var uM=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},R6=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},iM=(T)=>{return typeof T?.get==="function"};var TX=(T,$)=>{let J=$.toLowerCase();if(iM(T)){let W=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(F,X,S)=>X+S.toUpperCase());for(let F of[$,J,$.toUpperCase(),W]){let X=T.get(F);if(X)return X}}for(let[W,F]of Object.entries(T))if(W.toLowerCase()===J){if(Array.isArray(F)){if(F.length<=1)return F[0];return console.warn(`Received ${F.length} entries for the ${$} header, using the first entry.`),F[0]}return F}return};function fW(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class f0 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 D0 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",Q0,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class Q0 extends kT{}class M8 extends kT{}D0.ChatCompletionsPage=Q0;D0.Messages=DW;class nJ extends m{constructor(){super(...arguments);this.completions=new D0(this._client)}}nJ.Completions=D0;nJ.ChatCompletionsPage=Q0;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 VJ extends m{constructor(){super(...arguments);this.transcriptions=new EW(this._client),this.translations=new RW(this._client),this.speech=new QW(this._client)}}VJ.Transcriptions=EW;VJ.Translations=RW;VJ.Speech=QW;class E0 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{}E0.BatchesPage=H1;class O1 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{}O1.AssistantsPage=UW;function H8(T){return typeof T.parse==="function"}var pJ=(T)=>{return T?.role==="assistant"},O8=(T)=>{return T?.role==="function"},z8=(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,BJ,BW,SX,YX,z1,U6;class R0{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,()=>{}),BJ.set(this,{}),BW.set(this,!1),SX.set(this,!1),YX.set(this,!1),z1.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",U6).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,SX,"f")}get aborted(){return vT(this,YX,"f")}abort(){this.controller.abort()}on(T,$){return(vT(this,BJ,"f")[T]||(vT(this,BJ,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=vT(this,BJ,"f")[T];if(!J)return this;let W=J.findIndex((F)=>F.listener===$);if(W>=0)J.splice(W,1);return this}once(T,$){return(vT(this,BJ,"f")[T]||(vT(this,BJ,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(e$(this,z1,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){e$(this,z1,!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,BJ,"f")[T];if(J)vT(this,BJ,"f")[T]=J.filter((W)=>!W.once),J.forEach(({listener:W})=>W(...$));if(T==="abort"){let W=$[0];if(!vT(this,z1,"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,z1,"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,BJ=new WeakMap,BW=new WeakMap,SX=new WeakMap,YX=new WeakMap,z1=new WeakMap,K8=new WeakSet,U6=function T($){if(e$(this,SX,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new aT;if($ instanceof aT)return e$(this,YX,!0,"f"),this._emit("abort",$);if($ instanceof d)return this._emit("error",$);if($ instanceof Error){let J=new d($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new d(String($)))};function LW(T){return T?.$brand==="auto-parseable-response-format"}function U0(T){return T?.$brand==="auto-parseable-tool"}function _6(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 OW;return{...W,message:{...W.message,...W.message.tool_calls?{tool_calls:W.message.tool_calls?.map((F)=>$H($,F))??void 0}:void 0,parsed:W.message.content&&!W.message.refusal?TH($,W.message.content):null}}});return{...T,choices:J}}function TH(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 $H(T,$){let J=T.tools?.find((W)=>W.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:U0(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function k6(T,$){if(!T)return!1;let J=T.tools?.find((W)=>W.function?.name===$.function.name);return U0(J)||J?.function.strict||!1}function f8(T){if(LW(T.response_format))return!0;return T.tools?.some(($)=>U0($)||$.type==="function"&&$.function.strict===!0)??!1}function V6(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,L6,U8,B6=10;class NW extends R0{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),(O8(T)||z8(T))&&T.content)this._emit("functionCallResult",T.content);else if(pJ(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(pJ(T)&&T.tool_calls){for(let J of T.tool_calls)if(J.type==="function")this._emit("functionCall",J.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new d("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),V$(this,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",L6).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,...S}=$,Y=typeof F!=="string"&&F?.name,{maxChatCompletions:A=B6}=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,{...S,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(Y&&Y!==D){let E=`Invalid function_call: ${JSON.stringify(D)}. ${JSON.stringify(Y)} requested. Please try again`;this._addMessage({role:"function",name:D,content:E});continue}let j;try{j=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}),Y)return}}async _runTools(T,$,J){let{tool_choice:F="auto",stream:X,...S}=$,Y=typeof F!=="string"&&F?.function?.name,{maxChatCompletions:A=B6}=J||{},w=$.tools.map((H)=>{if(U0(H)){if(!H.$callback)throw new d("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:H.$callback,name:H.function.name,description:H.function.description||"",parameters:H.function.parameters,parse:H.$parseRaw,strict:!0}}}return H}),G={};for(let H of w)if(H.type==="function")G[H.function.name||H.function.function.name]=H.function;let M="tools"in $?w.map((H)=>H.type==="function"?{type:"function",function:{name:H.function.name||H.function.function.name,parameters:H.function.parameters,description:H.function.description,strict:H.function.strict}}:H):void 0;for(let H of $.messages)this._addMessage(H,!1);for(let H=0;H<A;++H){let D=(await this._createChatCompletion(T,{...S,tool_choice:F,tools:M,messages:[...this.messages]},J)).choices[0]?.message;if(!D)throw new d("missing message in ChatCompletion response");if(!D.tool_calls?.length)return;for(let R of D.tool_calls){if(R.type!=="function")continue;let y=R.id,{name:j,arguments:L}=R.function,Z=G[j];if(!Z){let k=`Invalid tool_call: ${JSON.stringify(j)}. Available options are: ${Object.keys(G).map((b)=>JSON.stringify(b)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:y,content:k});continue}else if(Y&&Y!==j){let k=`Invalid tool_call: ${JSON.stringify(j)}. ${JSON.stringify(Y)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:y,content:k});continue}let E;try{E=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}),Y)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(pJ(J)){let{function_call:W,...F}=J,X={...F,content:J.content??null,refusal:J.refusal??null};if(W)X.function_call=W;return X}}throw new d("stream ended without producing a ChatCompletionMessage with role=assistant")},Q8=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(pJ(J)&&J?.function_call)return J.function_call;if(pJ(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},E8=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(O8(J)&&J.content!=null)return J.content;if(z8(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 $},L6=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,$),pJ(T)&&T.content)this._emit("content",T.content)}}var J$={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class y6 extends Error{}class N6 extends Error{}function JH(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 WH(T.trim(),$)}var WH=(T,$)=>{let J=T.length,W=0,F=(H)=>{throw new y6(`${H} at position ${W}`)},X=(H)=>{throw new N6(`${H} at position ${W}`)},S=()=>{if(M(),W>=J)F("Unexpected end of input");if(T[W]==='"')return Y();if(T[W]==="{")return A();if(T[W]==="[")return w();if(T.substring(W,W+4)==="null"||J$.NULL&$&&J-W<4&&"null".startsWith(T.substring(W)))return W+=4,null;if(T.substring(W,W+4)==="true"||J$.BOOL&$&&J-W<4&&"true".startsWith(T.substring(W)))return W+=4,!0;if(T.substring(W,W+5)==="false"||J$.BOOL&$&&J-W<5&&"false".startsWith(T.substring(W)))return W+=5,!1;if(T.substring(W,W+8)==="Infinity"||J$.INFINITY&$&&J-W<8&&"Infinity".startsWith(T.substring(W)))return W+=8,1/0;if(T.substring(W,W+9)==="-Infinity"||J$.MINUS_INFINITY&$&&1<J-W&&J-W<9&&"-Infinity".startsWith(T.substring(W)))return W+=9,-1/0;if(T.substring(W,W+3)==="NaN"||J$.NAN&$&&J-W<3&&"NaN".startsWith(T.substring(W)))return W+=3,NaN;return G()},Y=()=>{let H=W,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=Y();M(),W++;try{let D=S();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(S()),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 S()},_8=(T)=>JH(T,J$.ALL^J$.NUM);var f1=function(T,$,J,W,F){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},RT=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},sT,LJ,D1,oJ,k8,wX,V8,B8,L8,GX,y8,C6;class _0 extends NW{constructor(T){super();sT.add(this),LJ.set(this,void 0),D1.set(this,void 0),oJ.set(this,void 0),f1(this,LJ,T,"f"),f1(this,D1,[],"f")}get currentChatCompletionSnapshot(){return RT(this,oJ,"f")}static fromReadableStream(T){let $=new _0(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,J){let W=new _0($);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))}[(LJ=new WeakMap,D1=new WeakMap,oJ=new WeakMap,sT=new WeakSet,k8=function T(){if(this.ended)return;f1(this,oJ,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",C6).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 S of W.delta.tool_calls??[]){if(X.current_tool_call_index!==S.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=S.index}for(let S of W.delta.tool_calls??[]){let Y=F.message.tool_calls?.[S.index];if(!Y?.type)continue;if(Y?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:Y.function?.name,index:S.index,arguments:Y.function.arguments,parsed_arguments:Y.function.parsed_arguments,arguments_delta:S.function?.arguments??""});else j6(Y?.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,LJ,"f")?.tools?.find((S)=>S.type==="function"&&S.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:J,arguments:F.function.arguments,parsed_arguments:U0(X)?X.$parseRaw(F.function.arguments):X?.function.strict?JSON.parse(F.function.arguments):null})}else j6(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,oJ,"f");if(!$)throw new d("request ended without sending any chunks");return f1(this,oJ,void 0,"f"),f1(this,D1,[],"f"),FH($,RT(this,LJ,"f"))},y8=function T(){let $=RT(this,LJ,"f")?.response_format;if(LW($))return $;return null},C6=function T($){var J,W,F,X;let S=RT(this,oJ,"f"),{choices:Y,...A}=$;if(!S)S=f1(this,oJ,{...A,choices:[]},"f");else Object.assign(S,A);for(let{delta:w,finish_reason:G,index:M,logprobs:H=null,...f}of $.choices){let D=S.choices[M];if(!D)D=S.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(x6(k),Object.assign(D.logprobs,k),V)(J=D.logprobs).content??(J.content=[]),D.logprobs.content.push(...V);if(B)(W=D.logprobs).refusal??(W.refusal=[]),D.logprobs.refusal.push(...B)}if(G){if(D.finish_reason=G,RT(this,LJ,"f")&&f8(RT(this,LJ,"f"))){if(G==="length")throw new HW;if(G==="content_filter")throw new OW}}if(Object.assign(D,f),!w)continue;let{content:R,refusal:y,function_call:j,role:L,tool_calls:Z,...E}=w;if(x6(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,k6(RT(this,LJ,"f"),U))U.function.parsed_arguments=_8(U.function.arguments)}}}}return S},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("chunk",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new Z$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function FH(T,$){let{id:J,choices:W,created:F,model:X,system_fingerprint:S,...Y}=T,A={...Y,id:J,choices:W.map(({message:w,finish_reason:G,index:M,logprobs:H,...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",...S?{system_fingerprint:S}:{}};return _6(A,$)}function MX(T){return JSON.stringify(T)}function x6(T){return}function j6(T){}class k0 extends _0{static fromReadableStream(T){let $=new k0(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,J){let W=new k0(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 k0($),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 V6(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 k0.runFunctions(this._client,T,$);return K1.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return k0.runTools(this._client,T,$);return K1.runTools(this._client,T,$)}stream(T,$){return _0.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 V0 extends m{constructor(){super(...arguments);this.sessions=new xW(this._client),this.transcriptionSessions=new jW(this._client)}}V0.Sessions=xW;V0.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},S$,N8,MJ,OX,TJ,L0,Q1,B0,fX,I$,zX,KX,IW,ZW,qW,Z6,q6,I6,b6,v6,P6,h6;class b$ extends R0{constructor(){super(...arguments);S$.add(this),N8.set(this,[]),MJ.set(this,{}),OX.set(this,{}),TJ.set(this,void 0),L0.set(this,void 0),Q1.set(this,void 0),B0.set(this,void 0),fX.set(this,void 0),I$.set(this,void 0),zX.set(this,void 0),KX.set(this,void 0),IW.set(this,void 0)}[(N8=new WeakMap,MJ=new WeakMap,OX=new WeakMap,TJ=new WeakMap,L0=new WeakMap,Q1=new WeakMap,B0=new WeakMap,fX=new WeakMap,I$=new WeakMap,zX=new WeakMap,KX=new WeakMap,IW=new WeakMap,S$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(T){let $=new b$;return $._run(()=>$._fromReadableStream(T)),$}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}this._connected();let W=Z$.fromReadableStream(T,this.controller);for await(let F of W)u(this,S$,"m",ZW).call(this,F);if(W.controller.signal?.aborted)throw new aT;return this._addRun(u(this,S$,"m",qW).call(this))}toReadableStream(){return new Z$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,J,W,F){let X=new b$;return X._run(()=>X._runToolAssistantStream(T,$,J,W,{...F,headers:{...F?.headers,"X-Stainless-Helper-Method":"stream"}})),X}async _createToolAssistantStream(T,$,J,W,F){let X=F?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}let S={...W,stream:!0},Y=await T.submitToolOutputs($,J,S,{...F,signal:this.controller.signal});this._connected();for await(let A of Y)u(this,S$,"m",ZW).call(this,A);if(Y.controller.signal?.aborted)throw new aT;return this._addRun(u(this,S$,"m",qW).call(this))}static createThreadAssistantStream(T,$,J){let W=new b$;return W._run(()=>W._threadAssistantStream(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}static createAssistantStream(T,$,J,W){let F=new b$;return F._run(()=>F._runAssistantStream(T,$,J,{...W,headers:{...W?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return u(this,zX,"f")}currentRun(){return u(this,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,OX,"f"))}async finalRun(){if(await this.done(),!u(this,L0,"f"))throw Error("Final run was not received.");return u(this,L0,"f")}async _createThreadAssistantStream(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}let F={...$,stream:!0},X=await T.createAndRun(F,{...J,signal:this.controller.signal});this._connected();for await(let S of X)u(this,S$,"m",ZW).call(this,S);if(X.controller.signal?.aborted)throw new aT;return this._addRun(u(this,S$,"m",qW).call(this))}async _createAssistantStream(T,$,J,W){let F=W?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let X={...J,stream:!0},S=await T.create($,X,{...W,signal:this.controller.signal});this._connected();for await(let Y of S)u(this,S$,"m",ZW).call(this,Y);if(S.controller.signal?.aborted)throw new aT;return this._addRun(u(this,S$,"m",qW).call(this))}static accumulateDelta(T,$){for(let[J,W]of Object.entries($)){if(!T.hasOwnProperty(J)){T[J]=W;continue}let F=T[J];if(F===null||F===void 0){T[J]=W;continue}if(J==="index"||J==="type"){T[J]=W;continue}if(typeof F==="string"&&typeof W==="string")F+=W;else if(typeof F==="number"&&typeof W==="number")F+=W;else if(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 S=X.index;if(S==null)throw console.error(X),new Error("Expected array delta entry to have an `index` property");if(typeof S!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${S}`);let Y=F[S];if(Y==null)F.push(X);else F[S]=this.accumulateDelta(Y,X)}continue}else throw Error(`Unhandled record type: ${J}, deltaValue: ${W}, accValue: ${F}`);T[J]=F}return T}_addRun(T){return T}async _threadAssistantStream(T,$,J){return await this._createThreadAssistantStream($,T,J)}async _runAssistantStream(T,$,J,W){return await this._createAssistantStream($,T,J,W)}async _runToolAssistantStream(T,$,J,W,F){return await this._createToolAssistantStream(J,T,$,W,F)}}ZW=function T($){if(this.ended)return;switch(q$(this,zX,$,"f"),u(this,S$,"m",I6).call(this,$),$.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":u(this,S$,"m",h6).call(this,$);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":u(this,S$,"m",q6).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":u(this,S$,"m",Z6).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:GH($)}},qW=function T(){if(this.ended)throw new d("stream has ended, this shouldn't happen");if(!u(this,L0,"f"))throw Error("Final run has not been received");return u(this,L0,"f")},Z6=function T($){let[J,W]=u(this,S$,"m",v6).call(this,$,u(this,TJ,"f"));q$(this,TJ,J,"f"),u(this,OX,"f")[J.id]=J;for(let F of W){let X=J.content[F.index];if(X?.type=="text")this._emit("textCreated",X.text)}switch($.event){case"thread.message.created":this._emit("messageCreated",$.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",$.data.delta,J),$.data.delta.content)for(let F of $.data.delta.content){if(F.type=="text"&&F.text){let X=F.text,S=J.content[F.index];if(S&&S.type=="text")this._emit("textDelta",X,S.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=u(this,Q1,"f")){if(u(this,B0,"f"))switch(u(this,B0,"f").type){case"text":this._emit("textDone",u(this,B0,"f").text,u(this,TJ,"f"));break;case"image_file":this._emit("imageFileDone",u(this,B0,"f").image_file,u(this,TJ,"f"));break}q$(this,Q1,F.index,"f")}q$(this,B0,J.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(u(this,Q1,"f")!==void 0){let F=$.data.content[u(this,Q1,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,u(this,TJ,"f"));break;case"text":this._emit("textDone",F.text,u(this,TJ,"f"));break}}if(u(this,TJ,"f"))this._emit("messageDone",$.data);q$(this,TJ,void 0,"f")}},q6=function T($){let J=u(this,S$,"m",b6).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}},I6=function T($){u(this,N8,"f").push($),this._emit("event",$)},b6=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")},v6=function T($,J){let W=[];switch($.event){case"thread.message.created":return[$.data,W];case"thread.message.delta":if(!J)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=$.data;if(F.delta.content)for(let X of F.delta.content)if(X.index in J.content){let S=J.content[X.index];J.content[X.index]=u(this,S$,"m",P6).call(this,X,S)}else J.content[X.index]=X,W.push(X);return[J,W];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(J)return[J,W];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},P6=function T($,J){return b$.accumulateDelta(J,$)},h6=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,L0,$.data,"f"),u(this,I$,"f"))this._emit("toolCallDone",u(this,I$,"f")),q$(this,I$,void 0,"f");break;case"thread.run.cancelling":break}};function GH(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 dJ 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 S=5000;if(J?.pollIntervalMs)S=J.pollIntervalMs;else{let Y=X.headers.get("openai-poll-after-ms");if(Y){let A=parseInt(Y);if(!isNaN(A))S=A}}await kJ(S);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(T,$,J){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}submitToolOutputs(T,$,J,W){return this._client.post(`/threads/${T}/runs/${$}/submit_tool_outputs`,{body:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers},stream:J.stream??!1})}async submitToolOutputsAndPoll(T,$,J,W){let F=await this.submitToolOutputs(T,$,J,W);return await this.poll(T,F.id,W)}submitToolOutputsStream(T,$,J,W){return b$.createToolAssistantStream(T,$,this._client.beta.threads.runs,J,W)}}class PW extends kT{}dJ.RunsPage=PW;dJ.Steps=R1;dJ.RunStepsPage=vW;class yJ extends m{constructor(){super(...arguments);this.runs=new dJ(this._client),this.messages=new E1(this._client)}create(T={},$){if(HT(T))return this.create({},T);return this._client.post("/threads",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/threads/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$){return this._client.delete(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}createAndRun(T,$){return this._client.post("/threads/runs",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:T.stream??!1})}async createAndRunPoll(T,$){let J=await this.createAndRun(T,$);return await this.runs.poll(J.thread_id,J.id,$)}createAndRunStream(T,$){return b$.createThreadAssistantStream(T,this._client.beta.threads,$)}}yJ.Runs=dJ;yJ.RunsPage=PW;yJ.Messages=E1;yJ.MessagesPage=bW;class HJ extends m{constructor(){super(...arguments);this.realtime=new V0(this._client),this.chat=new CW(this._client),this.assistants=new O1(this._client),this.threads=new yJ(this._client)}}HJ.Realtime=V0;HJ.Assistants=O1;HJ.AssistantsPage=UW;HJ.Threads=yJ;class U1 extends m{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class _1 extends m{create(T,$){return this._client.post("/embeddings",{body:T,...$})}}class y0 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 kJ($),X=await this.retrieve(T),Date.now()-F>J)throw new O0({message:`Giving up on waiting for file ${T} to finish processing after ${J} milliseconds.`});return X}}class k1 extends kT{}y0.FileObjectsPage=k1;class V1 extends 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 NJ 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{}NJ.FineTuningJobsPage=mW;NJ.FineTuningJobEventsPage=gW;NJ.Checkpoints=V1;NJ.FineTuningJobCheckpointsPage=hW;class CJ extends m{constructor(){super(...arguments);this.jobs=new NJ(this._client)}}CJ.Jobs=NJ;CJ.FineTuningJobsPage=mW;CJ.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 N0 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 f0{}N0.ModelsPage=L1;class y1 extends m{create(T,$){return this._client.post("/moderations",{body:T,...$})}}function m6(T,$){if(!$||!QH($))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:UH($,F)};if(F.type==="message"){let X=F.content.map((S)=>{if(S.type==="output_text")return{...S,parsed:DH($,S.text)};return S});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 DH(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 QH(T){if(LW(T.text?.format))return!0;return!1}function EH(T){return T?.$brand==="auto-parseable-tool"}function RH(T,$){return T.find((J)=>J.type==="function"&&J.name===$)}function UH(T,$){let J=RH(T.tools??[],$.name);return{...$,...$,parsed_arguments:EH(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},uJ=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},C1,DX,iJ,QX,g6,c6,n6,p6;class EX extends R0{constructor(T){super();C1.add(this),DX.set(this,void 0),iJ.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())}uJ(this,C1,"m",g6).call(this);let F=await T.responses.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let X of F)uJ(this,C1,"m",c6).call(this,X);if(F.controller.signal?.aborted)throw new aT;return uJ(this,C1,"m",n6).call(this)}[(DX=new WeakMap,iJ=new WeakMap,QX=new WeakMap,C1=new WeakSet,g6=function T(){if(this.ended)return;N1(this,iJ,void 0,"f")},c6=function T($){if(this.ended)return;let J=uJ(this,C1,"m",p6).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}},n6=function T(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let $=uJ(this,iJ,"f");if(!$)throw new d("request ended without sending any events");N1(this,iJ,void 0,"f");let J=kH($,uJ(this,DX,"f"));return N1(this,QX,J,"f"),J},p6=function T($){let J=uJ(this,iJ,"f");if(!J){if($.type!=="response.created")throw new d(`When snapshot hasn't been set yet, expected 'response.created' event, got ${$.type}`);return J=N1(this,iJ,$.response,"f"),J}switch($.type){case"response.output_item.added":{J.output.push($.item);break}case"response.content_part.added":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="message")W.content.push($.part);break}case"response.output_text.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="message"){let F=W.content[$.content_index];if(!F)throw new d(`missing content at index ${$.content_index}`);if(F.type!=="output_text")throw new d(`expected content to be 'output_text', got ${F.type}`);F.text+=$.delta}break}case"response.function_call_arguments.delta":{let W=J.output[$.output_index];if(!W)throw new d(`missing output at index ${$.output_index}`);if(W.type==="function_call")W.arguments+=$.delta;break}case"response.completed":{N1(this,iJ,$.response,"f");break}}return J},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(W)=>{let F=$.shift();if(F)F.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let F of $)F.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,X)=>$.push({resolve:F,reject:X})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let T=uJ(this,QX,"f");if(!T)throw new d("stream ended without producing a ChatCompletion");return T}}function kH(T,$){return m6(T,$)}class C0 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{}C0.InputItems=cW;class nW extends m{create(T,$,J){return this._client.post(`/uploads/${T}/parts`,n$({body:$,...J}))}}class x0 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})}}x0.Parts=nW;var o6=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 j0 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`,Z0,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$,J){return this._client.delete(`/vector_stores/${T}/files/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let W=await this.create(T,$,J);return await this.poll(T,W.id,J)}async poll(T,$,J){let W={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)W["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let F=await this.retrieve(T,$,{...J,headers:W}).withResponse(),X=F.data;switch(X.status){case"in_progress":let S=5000;if(J?.pollIntervalMs)S=J.pollIntervalMs;else{let Y=F.response.headers.get("openai-poll-after-ms");if(Y){let A=parseInt(Y);if(!isNaN(A))S=A}}await kJ(S);break;case"failed":case"completed":return X}}}async upload(T,$,J){let W=await this._client.files.create({file:$,purpose:"assistants"},J);return this.create(T,{file_id:W.id},J)}async uploadAndPoll(T,$,J){let W=await this.upload(T,$,J);return await this.poll(T,W.id,J)}content(T,$,J){return this._client.getAPIList(`/vector_stores/${T}/files/${$}/content`,pW,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class Z0 extends kT{}class pW extends f0{}j0.VectorStoreFilesPage=Z0;j0.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`,Z0,{query:J,...W,headers:{"OpenAI-Beta":"assistants=v2",...W?.headers}})}async poll(T,$,J){let W={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)W["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:X}=await this.retrieve(T,$,{...J,headers:W}).withResponse();switch(F.status){case"in_progress":let S=5000;if(J?.pollIntervalMs)S=J.pollIntervalMs;else{let Y=X.headers.get("openai-poll-after-ms");if(Y){let A=parseInt(Y);if(!isNaN(A))S=A}}await kJ(S);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(T,{files:$,fileIds:J=[]},W){if($==null||$.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=W?.maxConcurrency??5,X=Math.min(F,$.length),S=this._client,Y=$.values(),A=[...J];async function w(M){for(let H of M){let f=await S.files.create({file:H,purpose:"assistants"},W);A.push(f.id)}}let G=Array(X).fill(Y).map(w);return await o6(G),await this.createAndPoll(T,{file_ids:A})}}class p$ extends m{constructor(){super(...arguments);this.files=new j0(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 f0{}p$.VectorStoresPage=x1;p$.VectorStoreSearchResponsesPage=j1;p$.Files=j0;p$.VectorStoreFilesPage=Z0;p$.FileContentResponsesPage=pW;p$.FileBatches=oW;var d6;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&&R6())throw new d(`It looks like you're running in a browser-like environment.
|
|
35
35
|
|
|
36
36
|
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
37
37
|
If you understand the risks and have appropriate mitigations in place,
|
|
@@ -40,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:
|
|
43
|
+
`);super({baseURL:X.baseURL,timeout:X.timeout??600000,httpAgent:X.httpAgent,maxRetries:X.maxRetries,fetch:X.fetch});this.completions=new U1(this),this.chat=new nJ(this),this.embeddings=new _1(this),this.files=new y0(this),this.images=new B1(this),this.audio=new VJ(this),this.moderations=new y1(this),this.models=new N0(this),this.fineTuning=new CJ(this),this.vectorStores=new p$(this),this.beta=new HJ(this),this.batches=new E0(this),this.uploads=new x0(this),this.responses=new C0(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"})}}d6=FT;FT.OpenAI=d6;FT.DEFAULT_TIMEOUT=600000;FT.OpenAIError=d;FT.APIError=nT;FT.APIConnectionError=H0;FT.APIConnectionTimeoutError=O0;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=Y8;FT.fileFromPath=nF;FT.Completions=U1;FT.Chat=nJ;FT.ChatCompletionsPage=Q0;FT.Embeddings=_1;FT.Files=y0;FT.FileObjectsPage=k1;FT.Images=B1;FT.Audio=VJ;FT.Moderations=y1;FT.Models=N0;FT.ModelsPage=L1;FT.FineTuning=CJ;FT.VectorStores=p$;FT.VectorStoresPage=x1;FT.VectorStoreSearchResponsesPage=j1;FT.Beta=HJ;FT.Batches=E0;FT.BatchesPage=H1;FT.Uploads=x0;FT.Responses=C0;var u6=FT;var T7=gw(l6(),1);import{createHash as qH}from"node:crypto";import*as B$ from"node:fs";import{copyFile as IH}from"node:fs/promises";import*as Z1 from"node:path";import{resolve as bH}from"node:path";import{existsSync as Z8,mkdirSync as r6,readdirSync as a6,readFileSync as jH,rmSync as s6,statSync as e6,writeFileSync as ZH}from"node:fs";import{resolve as q8}from"node:path";class I8{rootDir;get initialized(){return Z8(this.rootDir)}initialize(){if(!this.initialized)r6(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 jH($,"utf-8");return null}setItem(T,$){this.initialize();let J=q8(this.rootDir,T);ZH(J,$)}removeItem(T){let $=q8(this.rootDir,T);if(Z8($))this.initialize(),s6($)}key(T){return a6(this.rootDir).sort((W,F)=>{let X=e6(W);return e6(F).ctimeMs-X.ctimeMs})[T]??null}clear(){s6(this.rootDir,{recursive:!0}),r6(this.rootDir,{recursive:!0})}get length(){return a6(this.rootDir).length}}var $7=/[^a-zA-Z0-9\-._]/g;function q1(T,$=64){let J=T.replace($7,"-");if(J.length<=$)return J;let W=qH("sha256").update(T).digest("hex");return J.slice(-$)+"+"+W}var vH=T7.default("varmint"),iW=q1(process.cwd(),150),b8=bH(vH,iW),pT="_-$-_-$-_",J7=`file${pT}`,W7=`list${pT}`,F7=`root${pT}`,PH=`unmatched${pT}`,VT={storage:new I8({path:b8,eagerInit:!1}),startGlobalTracking(){if(console.log(`\uD83D\uDC3F\uFE0F Starting global tracking of varmint files using project identifier "${iW}"`),VT.storage.initialized)console.error(`\uD83D\uDCA5 The global cache for the project "${iW}" was found already initialized. Clearing it and starting fresh.`),VT.storage.clear();VT.storage.initialize()},async prepareUploads(T){console.log(`\uD83D\uDC3F\uFE0F Moving unmatched inputs to /tmp/varmint-uploads using project identifier "${iW}"`);let $=[];for(let J of B$.readdirSync(VT.storage.rootDir))if(RX(`unmatched${pT}`,J))$.push(J);if($.length===0){console.log("\uD83D\uDC3F\uFE0F ","No unmatched input files found.");return}if(console.log("\uD83D\uDC3F\uFE0F ","Found the following unmatched files:",`
|
|
44
44
|
- ${$.join(`
|
|
45
45
|
`)}
|
|
46
46
|
`,`in root folder:
|
|
47
|
-
`,
|
|
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 IH(W,F)}));else console.warn("\uD83D\uDCA5 Skipping artifact upload because process.env.CI is not set.")},endGlobalTrackingAndFlushUnusedFiles(){if(console.log(`\uD83D\uDC3F\uFE0F Ending global tracking of varmint files using project identifier "${iW}" and starting cleanup of untouched files.`),!VT.storage.initialized){console.error("\uD83D\uDCA5 called flushGlobal, but the global cache wasn't initialized with startGlobalTracking");return}let T=B$.readdirSync(VT.storage.rootDir),$=new Map,J=[],W=[],F=[];for(let S of T)if(RX(`root${pT}`,S))J.push(S);else if(RX(`list${pT}`,S))W.push(S);else if(RX(`file${pT}`,S))F.push(S);if(VT.storage.getItem("DID_CACHE_MISS"))console.log("\uD83D\uDC3F\uFE0F ","Cache miss detected. Since this likely prevented the cache from being fully utilized, we will not attempt to flush unused files.");else{let S=new Map;for(let Y of J){let A=Y.replace(F7,"");S.set(A,new Map);let w=VT.storage.getItem(Y);if(w)$.set(A,w);else console.error(`\uD83D\uDCA5 Could not find folder ${w} referenced in the global cache`)}for(let Y of W){let A=Y.replace(W7,""),[w,G]=A.split(pT),M=S.get(w);if(M)M.set(G,new Set);else console.error(`\uD83D\uDCA5 Could not find root ${w} for list ${G}`)}for(let Y of F){let A=Y.replace(J7,""),[w,G,M]=A.split(pT),H=S.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 ",S);for(let[Y,A]of S.entries()){let w=$.get(Y);if(!w){console.error(`\uD83D\uDCA5 Could not find root ${Y}`);continue}if(!B$.existsSync(w)){console.warn(`\uD83D\uDCA5 Root folder ${w}, identified as being used during tracking, no longer exists during cleanup.`);continue}let M=B$.readdirSync(w);for(let H of M)if(H!==".ferret"&&!A.has(H)){let 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 X7}from"node:util";var S7=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=` ${X7(JSON.parse(R),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
|
|
48
48
|
`).join(`
|
|
49
|
-
`)}`;
|
|
50
|
-
${
|
|
49
|
+
`)}`;H.push(y,j)}let f=` ${F}
|
|
50
|
+
${X7(J,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
|
|
51
51
|
`).join(`
|
|
52
|
-
`)}`;if(
|
|
52
|
+
`)}`;if(VT.storage.initialized&&this.mode==="read")VT.storage.setItem(`unmatched${pT}${F}`,JSON.stringify(J,null,"\t")),VT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${T}" with subKey "${$}" (${X}) was not found. Directory "${W}" exists, but the file does not. Below is a list of CACHED INPUT FILES from that directory and their contents, followed by YOUR INPUT DATA.
|
|
53
53
|
|
|
54
54
|
CACHED INPUT FILES:
|
|
55
|
-
${
|
|
55
|
+
${H.join(`
|
|
56
56
|
`)}
|
|
57
57
|
|
|
58
58
|
YOUR INPUT DATA:
|
|
59
|
-
${
|
|
60
|
-
`)}let
|
|
59
|
+
${f}
|
|
60
|
+
`)}let S=ZT.readFileSync(X,"utf-8"),Y=JSON.stringify(J,null,"\t");if(Y!==S){if(VT.storage.initialized&&this.mode==="read")VT.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: the content of the cached input file ${X} does not match the input provided.
|
|
61
61
|
|
|
62
62
|
Provided:
|
|
63
|
-
${
|
|
63
|
+
${Y}
|
|
64
64
|
|
|
65
65
|
Cached:
|
|
66
|
-
${
|
|
67
|
-
`)});return{model:T,messages:W}}var QA={"gpt-4o":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-08-06":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-05-13":{promptPricePerToken:0.000005,promptPricePerTokenCached:0.000005,completionPricePerToken:0.000014999999999999999},"gpt-4o-mini":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"gpt-4o-mini-2024-07-18":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"o1-preview":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995},"o1-preview-2024-09-12":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995}};function WG(T){return async function $(J,S){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let F=await T.chat.completions.create({...J,stream:!1,response_format:{type:"json_object"}},S),f=F.choices[0].message?.content,{usage:W}=F;if(f&&W){let A=W.prompt_tokens,X=W.prompt_tokens_details?.cached_tokens??0,w=A-X,M=W.completion_tokens,Y=A*QA[J.model].promptPricePerToken+w*QA[J.model].promptPricePerTokenCached+M*QA[J.model].completionPricePerToken;return{data:JSON.parse(f),usage:W,usdPrice:Y}}if(!f&&!W)throw new Error("No content or usage found in completion");if(!f)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var Pw=new Map,nw=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:S,cachingMode:F,cacheKey:f="openai-safegen",logger:W}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new EA(F);let A=Pw.get(S);if(F!=="read"){if(!A)A=new Bw({apiKey:S,dangerouslyAllowBrowser:!1}),Pw.set(S,A);this.client=A}this.getUnknownJsonFromOpenAi=WG(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(f,this.getUnknownJsonFromOpenAi),this.from=j8(async(...X)=>{if(this.usdBudget<this.usdMinimum)return W?.warn("SafeGen budget exhausted"),X[1];let w=fG(T,...X),M=X[0],Y=X[3],{data:G,usage:z,usdPrice:D}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${M.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${Y.length}`).get(w);return this.lastUsage=z,this.usdBudget-=D,G})}from};import{exec as RK}from"child_process";var _A=(T)=>{let $=N$(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let J=new Map;for(let[S,F]of T.atoms)if(!S.includes("\uD83D\uDD0D")){let f=U$(F);if(F.family){let W=J.get(F.family.key);if(!W||!("familyMembers"in W))W={key:F.family.key,familyMembers:new Map},J.set(F.family.key,W);W.familyMembers.set(F.family.subKey,f)}else J.set(S,f)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(S)=>{if(S.key.includes("\uD83D\uDD0D"))return;J((F)=>{if(S.family){let{key:f,subKey:W}=S.family,A=F.get(f);if(A===void 0||!("familyMembers"in A))A={key:f,familyMembers:new Map},F.set(f,A);A.familyMembers.set(W,S)}else F.set(S.key,S);return F})}),T.on.atomDisposal.subscribe("introspection",(S)=>{J((F)=>{if(S.family){let{key:f,subKey:W}=S.family,A=F.get(f);if(A&&"familyMembers"in A){if(A.familyMembers.delete(W),A.familyMembers.size===0)F.delete(f)}}else F.delete(S.key);return F})})}]},void 0);return OJ(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:J})=>J($)})};var RA=(T)=>{let $=N$(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let J=new Map;for(let S of[T.readonlySelectors,T.selectors])for(let[F,f]of S)if(!F.includes("\uD83D\uDD0D")){let W=U$(f);if(f.family){let A=J.get(f.family.key);if(!A||!("familyMembers"in A))A={key:f.family.key,familyMembers:new Map},J.set(f.family.key,A);A.familyMembers.set(f.family.subKey,W)}else J.set(F,W)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(S)=>{if(S.key.includes("\uD83D\uDD0D"))return;J((F)=>{if(S.family){let{key:f,subKey:W}=S.family,A=F.get(f);if(A===void 0||!("familyMembers"in A))A={key:f,familyMembers:new Map},F.set(f,A);A.familyMembers.set(W,S)}else F.set(S.key,S);return F})}),T.on.selectorDisposal.subscribe("introspection",(S)=>{J((F)=>{if(S.family){let{key:f,subKey:W}=S.family,A=F.get(f);if(A&&"familyMembers"in A){if(A.familyMembers.delete(W),A.familyMembers.size===0)F.delete(f)}}else F.delete(S.key);return F})})}]},void 0);return OJ(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:J})=>J($)})};class A1{supported;constructor(T){this.supported=T}refine(T){for(let[$,J]of Object.entries(this.supported))try{if(J(T)===!0&&J!==Boolean)return{type:$,data:T}}catch(S){try{if(T instanceof J)return{type:$,data:T}}catch(F){}}return null}}var kA=new A1({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function UA(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var VA=new A1({object:UA,array:(T)=>Array.isArray(T)}),AG=new A1({...kA.supported,...VA.supported}),UF=(T)=>{if(T===void 0)return"undefined";let $=AG.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class cw{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=AT.STORE){this.store=T,this.atomIndex=_A(this.store),this.selectorIndex=RA(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=cw.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=TW(this.atomIndex),J=TW(this.selectorIndex),S=[...$.values()].filter((A)=>("familyMembers"in A)),F=[...J.values()].filter((A)=>("familyMembers"in A)),f=performance.now(),W=[];if(T.atomFamilies)for(let A of S){let X=A.familyMembers.values();for(let w of X){let Y=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,G=f-Y;W.push([w,G])}}if(T.selectorFamilies)for(let A of F){let X=A.familyMembers.values();for(let w of X){let Y=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,G=f-Y;W.push([w,G])}}return W}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var BA=(T,$)=>{let J=(S,F)=>{let W=((X,w)=>{let M=$(X,w);if(M)return M;return null})(S,F);if(W?.jobComplete??W?.pathComplete)return W;let A=Array.isArray(F)?F.map((X,w)=>[w,X]):UA(F)?Object.entries(F):[];for(let[X,w]of A){let M=J([...S,X],w);if(M?.jobComplete)return M}return{}};J([],T)};function XG(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function wG(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function MG(T,$){return{summary:`${T} \u2192 ${$}`}}function gw(T,$,J){let S="",F=[],f=[],W=[];return BA(T,(A,X)=>{let w;for(w of A){let M=$[w];if(M===void 0)f.push([w,JSON.stringify(X)]);else{let Y=J(X,M);if(Y.summary!=="No Change")W.push([w,Y])}}}),BA($,(A,X)=>{let w;for(w of A)if(T[w]===void 0)F.push([w,JSON.stringify(X)])}),S=`\uFF5E${W.length} \uFF0B${F.length} \uFF0D${f.length}`,{summary:S,added:F,removed:f,changed:W}}function YG(T,$,J){return gw(T,$,J)}class pw{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,J){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let S of Object.keys(T.supported)){let F=J[S];this.leafDiffers[S]=F}for(let S of Object.keys($.supported)){let F=J[S];this.treeDiffers[S]=F}}diff(T,$){if(T===$)return{summary:"No Change"};let J=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),S=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(J!==null&&S!==null){if(J.type===S.type){if(J.type in this.leafDiffers)return this.leafDiffers[J.type](J.data,S.data);if(J.type in this.treeDiffers)return this.treeDiffers[J.type](J.data,S.data,(A,X)=>this.diff(A,X))}}let F=UF(T),f=UF($);if(F===f)return{summary:`${F} \u2192 ${f}`};return{summary:`Type change: ${F} \u2192 ${f}`}}}var oC=new pw(kA,VA,{number:XG,string:wG,boolean:MG,null:()=>({summary:"No Change"}),object:gw,array:YG});var H=Symbol.for("drizzle:entityKind"),sC=Symbol.for("drizzle:hasOwnEntityKind");function k(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,H))throw new Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let J=Object.getPrototypeOf(T).constructor;if(J)while(J){if(H in J&&J[H]===$[H])return!0;J=Object.getPrototypeOf(J)}return!1}class UT{constructor(T,$){this.table=T,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[H]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class yA{static[H]="ColumnBuilder";config;constructor(T,$,J){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:J,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var JJ=Symbol.for("drizzle:Name");class LA{static[H]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:S,foreignColumns:F}=T();return{name:J,columns:S,foreignTable:F[0].table,foreignColumns:F}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new ow(T,this)}}class ow{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[H]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:J}=this.reference(),S=$.map((W)=>W.name),F=J.map((W)=>W.name),f=[this.table[JJ],...S,J[0].table[JJ],...F];return T??`${f.join("_")}_fk`}}function X1(T,...$){return T(...$)}function tw(T,$){return`${T[JJ]}_${$.join("_")}_unique`}function iw(T,$,J){for(let S=$;S<T.length;S++){let F=T[S];if(F==="\\"){S++;continue}if(F==='"')return[T.slice($,S).replace(/\\/g,""),S+1];if(J)continue;if(F===","||F==="}")return[T.slice($,S).replace(/\\/g,""),S]}return[T.slice($).replace(/\\/g,""),T.length]}function dw(T,$=0){let J=[],S=$,F=!1;while(S<T.length){let f=T[S];if(f===","){if(F||S===$)J.push("");F=!0,S++;continue}if(F=!1,f==="\\"){S+=2;continue}if(f==='"'){let[X,w]=iw(T,S+1,!0);J.push(X),S=w;continue}if(f==="}")return[J,S+1];if(f==="{"){let[X,w]=dw(T,S+1);J.push(X),S=w;continue}let[W,A]=iw(T,S,!1);J.push(W),S=A}return[J,S]}function uw(T){let[$]=dw(T,1);return $}function NA(T){return`{${T.map(($)=>{if(Array.isArray($))return NA($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class g extends yA{foreignKeyConfigs=[];static[H]="PgColumnBuilder";array(T){return new rw(this.config.name,this,T)}references(T,$={}){return this.foreignKeyConfigs.push({ref:T,actions:$}),this}unique(T,$){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,$){return this.foreignKeyConfigs.map(({ref:J,actions:S})=>{return X1((F,f)=>{let W=new LA(()=>{let A=F();return{columns:[T],foreignColumns:[A]}});if(f.onUpdate)W.onUpdate(f.onUpdate);if(f.onDelete)W.onDelete(f.onDelete);return W.build($)},J,S)})}buildExtraConfigColumn(T){return new lw(T,this.config)}}class Z extends UT{constructor(T,$){if(!$.uniqueName)$.uniqueName=tw(T,[$.name]);super(T,$);this.table=T}static[H]="PgColumn"}class lw extends Z{static[H]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(T){return this.indexConfig.opClass=T,this}}class h0{static[H]="IndexedColumn";constructor(T,$,J,S){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=S}name;keyAsName;type;indexConfig}class rw extends g{static[H]="PgArrayBuilder";constructor(T,$,J){super(T,"array","PgArray");this.config.baseBuilder=$,this.config.size=J}build(T){let $=this.config.baseBuilder.build(T);return new CA(T,this.config,$)}}class CA extends Z{constructor(T,$,J,S){super(T,$);this.baseColumn=J,this.range=S,this.size=$.size}size;static[H]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=uw(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let J=T.map((S)=>S===null?null:k(this.baseColumn,CA)?this.baseColumn.mapToDriverValue(S,!0):this.baseColumn.mapToDriverValue(S));if($)return J;return NA(J)}}var xA=Symbol.for("drizzle:isPgEnum");function aw(T){return!!T&&typeof T==="function"&&xA in T&&T[xA]===!0}class sw extends g{static[H]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new ew(T,this.config)}}class ew extends Z{static[H]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function w1(T,$){return GG(T,$,void 0)}function GG(T,$,J){let S=Object.assign((F)=>new sw(F??"",S),{enumName:T,enumValues:$,schema:J,[xA]:!0});return S}class eT{static[H]="Subquery";constructor(T,$,J,S=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:S}}}class m0 extends eT{static[H]="WithSubquery"}var TM="0.40.0";var jA,IA,VT={startActiveSpan(T,$){if(!jA)return $();if(!IA)IA=jA.trace.getTracer("drizzle-orm",TM);return X1((J,S)=>S.startActiveSpan(T,(F)=>{try{return $(F)}catch(f){throw F.setStatus({code:J.SpanStatusCode.ERROR,message:f instanceof Error?f.message:"Unknown error"}),f}finally{F.end()}}),jA,IA)}};var NT=Symbol.for("drizzle:ViewBaseConfig");var M1=Symbol.for("drizzle:Schema"),Y1=Symbol.for("drizzle:Columns"),$M=Symbol.for("drizzle:ExtraConfigColumns"),ZA=Symbol.for("drizzle:OriginalName"),qA=Symbol.for("drizzle:BaseName"),v0=Symbol.for("drizzle:IsAlias"),JM=Symbol.for("drizzle:ExtraConfigBuilder"),KG=Symbol.for("drizzle:IsDrizzleTable");class v{static[H]="Table";static Symbol={Name:JJ,Schema:M1,OriginalName:ZA,Columns:Y1,ExtraConfigColumns:$M,BaseName:qA,IsAlias:v0,ExtraConfigBuilder:JM};[JJ];[ZA];[M1];[Y1];[$M];[qA];[v0]=!1;[KG]=!0;[JM]=void 0;constructor(T,$,J){this[JJ]=this[ZA]=T,this[M1]=$,this[qA]=J}}function S$(T){return T[JJ]}function BS(T){return`${T[M1]??"public"}.${T[JJ]}`}function bA(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function HG(T){let $={sql:"",params:[]};for(let J of T)if($.sql+=J.sql,$.params.push(...J.params),J.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...J.typings)}return $}class T${static[H]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new P([this])}}class P{constructor(T){this.queryChunks=T}static[H]="SQL";decoder=FM;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return VT.startActiveSpan("drizzle.buildSQL",($)=>{let J=this.buildQueryFromSourceParams(this.queryChunks,T);return $?.setAttributes({"drizzle.query.text":J.sql,"drizzle.query.params":JSON.stringify(J.params)}),J})}buildQueryFromSourceParams(T,$){let J=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:S,escapeName:F,escapeParam:f,prepareTyping:W,inlineParams:A,paramStartIndex:X}=J;return HG(T.map((w)=>{if(k(w,T$))return{sql:w.value.join(""),params:[]};if(k(w,G1))return{sql:F(w.value),params:[]};if(w===void 0)return{sql:"",params:[]};if(Array.isArray(w)){let M=[new T$("(")];for(let[Y,G]of w.entries())if(M.push(G),Y<w.length-1)M.push(new T$(", "));return M.push(new T$(")")),this.buildQueryFromSourceParams(M,J)}if(k(w,P))return this.buildQueryFromSourceParams(w.queryChunks,{...J,inlineParams:A||w.shouldInlineParams});if(k(w,v)){let M=w[v.Symbol.Schema],Y=w[v.Symbol.Name];return{sql:M===void 0||w[v0]?F(Y):F(M)+"."+F(Y),params:[]}}if(k(w,UT)){let M=S.getColumnCasing(w);if($.invokeSource==="indexes")return{sql:F(M),params:[]};let Y=w.table[v.Symbol.Schema];return{sql:w.table[v0]||Y===void 0?F(w.table[v.Symbol.Name])+"."+F(M):F(Y)+"."+F(w.table[v.Symbol.Name])+"."+F(M),params:[]}}if(k(w,y$)){let M=w[NT].schema,Y=w[NT].name;return{sql:M===void 0||w[NT].isAlias?F(Y):F(M)+"."+F(Y),params:[]}}if(k(w,h$)){if(k(w.value,tJ))return{sql:f(X.value++,w),params:[w],typings:["none"]};let M=w.value===null?null:w.encoder.mapToDriverValue(w.value);if(k(M,P))return this.buildQueryFromSourceParams([M],J);if(A)return{sql:this.mapInlineParam(M,J),params:[]};let Y=["none"];if(W)Y=[W(w.encoder)];return{sql:f(X.value++,M),params:[M],typings:Y}}if(k(w,tJ))return{sql:f(X.value++,w),params:[w],typings:["none"]};if(k(w,P.Aliased)&&w.fieldAlias!==void 0)return{sql:F(w.fieldAlias),params:[]};if(k(w,eT)){if(w._.isWith)return{sql:F(w._.alias),params:[]};return this.buildQueryFromSourceParams([new T$("("),w._.sql,new T$(") "),new G1(w._.alias)],J)}if(aw(w)){if(w.schema)return{sql:F(w.schema)+"."+F(w.enumName),params:[]};return{sql:F(w.enumName),params:[]}}if(bA(w)){if(w.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([w.getSQL()],J);return this.buildQueryFromSourceParams([new T$("("),w.getSQL(),new T$(")")],J)}if(A)return{sql:this.mapInlineParam(w,J),params:[]};return{sql:f(X.value++,w),params:[w],typings:["none"]}}))}mapInlineParam(T,{escapeString:$}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return $(T);if(typeof T==="object"){let J=T.toString();if(J==="[object Object]")return $(JSON.stringify(T));return $(J)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new P.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class G1{constructor(T){this.value=T}static[H]="Name";brand;getSQL(){return new P([this])}}function SM(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var FM={mapFromDriverValue:(T)=>T},fM={mapToDriverValue:(T)=>T},nx={...FM,...fM};class h${constructor(T,$=fM){this.value=T,this.encoder=$}static[H]="Param";brand;getSQL(){return new P([this])}}function O(T,...$){let J=[];if($.length>0||T.length>0&&T[0]!=="")J.push(new T$(T[0]));for(let[S,F]of $.entries())J.push(F,new T$(T[S+1]));return new P(J)}((T)=>{function $(){return new P([])}T.empty=$;function J(X){return new P(X)}T.fromList=J;function S(X){return new P([new T$(X)])}T.raw=S;function F(X,w){let M=[];for(let[Y,G]of X.entries()){if(Y>0&&w!==void 0)M.push(w);M.push(G)}return new P(M)}T.join=F;function f(X){return new G1(X)}T.identifier=f;function W(X){return new tJ(X)}T.placeholder=W;function A(X,w){return new h$(X,w)}T.param=A})(O||(O={}));((T)=>{class ${constructor(J,S){this.sql=J,this.fieldAlias=S}static[H]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(P||(P={}));class tJ{constructor(T){this.name=T}static[H]="Placeholder";getSQL(){return new P([this])}}function hA(T,$){return T.map((J)=>{if(k(J,tJ)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(k(J,h$)&&k(J.value,tJ)){if(!(J.value.name in $))throw new Error(`No value for placeholder "${J.value.name}" was provided`);return J.encoder.mapToDriverValue($[J.value.name])}return J})}var OG=Symbol.for("drizzle:IsDrizzleView");class y${static[H]="View";[NT];[OG]=!0;constructor({name:T,schema:$,selectedFields:J,query:S}){this[NT]={name:T,originalName:T,schema:$,selectedFields:J,query:S,isExisting:!S,isAlias:!1}}getSQL(){return new P([this])}}UT.prototype.getSQL=function(){return new P([this])};v.prototype.getSQL=function(){return new P([this])};eT.prototype.getSQL=function(){return new P([this])};class VF{constructor(T){this.table=T}static[H]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class P0{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[H]="TableAliasProxyHandler";get(T,$){if($===v.Symbol.IsAlias)return!0;if($===v.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===v.Symbol.OriginalName)return this.alias;if($===NT)return{...T[NT],name:this.alias,isAlias:!0};if($===v.Symbol.Columns){let S=T[v.Symbol.Columns];if(!S)return S;let F={};return Object.keys(S).map((f)=>{F[f]=new Proxy(S[f],new VF(new Proxy(T,this)))}),F}let J=T[$];if(k(J,UT))return new Proxy(J,new VF(new Proxy(T,this)));return J}}function K1(T,$){return new Proxy(T,new P0($,!1))}function GJ(T,$){return new Proxy(T,new VF(new Proxy(T.table,new P0($,!1))))}function mA(T,$){return new P.Aliased(n0(T.sql,$),T.fieldAlias)}function n0(T,$){return O.join(T.queryChunks.map((J)=>{if(k(J,UT))return GJ(J,$);if(k(J,P))return n0(J,$);if(k(J,P.Aliased))return mA(J,$);return J}))}class H1 extends Error{static[H]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class vA extends H1{static[H]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function L$(T,$){if(SM($)&&!bA(T)&&!k(T,h$)&&!k(T,tJ)&&!k(T,UT)&&!k(T,v)&&!k(T,y$))return new h$(T,$);return T}var O1=(T,$)=>{return O`${T} = ${L$($,T)}`},WM=(T,$)=>{return O`${T} <> ${L$($,T)}`};function c0(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new P($);return new P([new T$("("),O.join($,new T$(" and ")),new T$(")")])}function AM(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new P($);return new P([new T$("("),O.join($,new T$(" or ")),new T$(")")])}function XM(T){return O`not ${T}`}var z1=(T,$)=>{return O`${T} > ${L$($,T)}`},wM=(T,$)=>{return O`${T} >= ${L$($,T)}`},MM=(T,$)=>{return O`${T} < ${L$($,T)}`},YM=(T,$)=>{return O`${T} <= ${L$($,T)}`};function GM(T,$){if(Array.isArray($)){if($.length===0)return O`false`;return O`${T} in ${$.map((J)=>L$(J,T))}`}return O`${T} in ${L$($,T)}`}function KM(T,$){if(Array.isArray($)){if($.length===0)return O`true`;return O`${T} not in ${$.map((J)=>L$(J,T))}`}return O`${T} not in ${L$($,T)}`}function HM(T){return O`${T} is null`}function OM(T){return O`${T} is not null`}function zM(T){return O`exists ${T}`}function DM(T){return O`not exists ${T}`}function EM(T,$,J){return O`${T} between ${L$($,T)} and ${L$(J,T)}`}function QM(T,$,J){return O`${T} not between ${L$($,T)} and ${L$(J,T)}`}function _M(T,$){return O`${T} like ${$}`}function RM(T,$){return O`${T} not like ${$}`}function kM(T,$){return O`${T} ilike ${$}`}function UM(T,$){return O`${T} not ilike ${$}`}function VM(T){return O`${T} asc`}function BM(T){return O`${T} desc`}class yM{static[H]="ConsoleLogWriter";write(T){console.log(T)}}class PA{static[H]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new yM}logQuery(T,$){let J=$.map((F)=>{try{return JSON.stringify(F)}catch{return String(F)}}),S=J.length?` -- params: [${J.join(", ")}]`:"";this.writer.write(`Query: ${T}${S}`)}}class nA{static[H]="NoopLogger";logQuery(){}}class _${static[H]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}then(T,$){return this.execute().then(T,$)}}function LM(T,$,J){let S={},F=T.reduce((f,{path:W,field:A},X)=>{let w;if(k(A,UT))w=A;else if(k(A,P))w=A.decoder;else w=A.sql.decoder;let M=f;for(let[Y,G]of W.entries())if(Y<W.length-1){if(!(G in M))M[G]={};M=M[G]}else{let z=$[X],D=M[G]=z===null?null:w.mapFromDriverValue(z);if(J&&k(A,UT)&&W.length===2){let _=W[0];if(!(_ in S))S[_]=D===null?S$(A.table):!1;else if(typeof S[_]==="string"&&S[_]!==S$(A.table))S[_]=!1}}return f},{});if(J&&Object.keys(S).length>0){for(let[f,W]of Object.entries(S))if(typeof W==="string"&&!J[W])F[f]=null}return F}function o$(T,$){return Object.entries(T).reduce((J,[S,F])=>{if(typeof S!=="string")return J;let f=$?[...$,S]:[S];if(k(F,UT)||k(F,P)||k(F,P.Aliased))J.push({path:f,field:F});else if(k(F,v))J.push(...o$(F[v.Symbol.Columns],f));else J.push(...o$(F,f));return J},[])}function g0(T,$){let J=Object.keys(T),S=Object.keys($);if(J.length!==S.length)return!1;for(let[F,f]of J.entries())if(f!==S[F])return!1;return!0}function D1(T,$){let J=Object.entries($).filter(([,S])=>S!==void 0).map(([S,F])=>{if(k(F,P)||k(F,UT))return[S,F];else return[S,new h$(F,T[v.Symbol.Columns][S])]});if(J.length===0)throw new Error("No values to set");return Object.fromEntries(J)}function NM(T,$){for(let J of $)for(let S of Object.getOwnPropertyNames(J.prototype)){if(S==="constructor")continue;Object.defineProperty(T.prototype,S,Object.getOwnPropertyDescriptor(J.prototype,S)||Object.create(null))}}function CM(T){return T[v.Symbol.Columns]}function xJ(T){return k(T,eT)?T._.alias:k(T,y$)?T[NT].name:k(T,P)?void 0:T[v.Symbol.IsAlias]?T[v.Symbol.Name]:T[v.Symbol.BaseName]}function wT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function xM(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let $=typeof T.logger;if($!=="boolean"&&($!=="object"||typeof T.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in T){let $=typeof T.logger;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in T){let $=typeof T.logger;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let $=typeof T.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in T){let $=typeof T.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class iJ extends g{static[H]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class jM extends iJ{static[H]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new IM(T,this.config)}}class IM extends Z{static[H]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class ZM extends iJ{static[H]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new qM(T,this.config)}}class qM extends Z{static[H]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function bM(T,$){let{name:J,config:S}=wT(T,$);if(S.mode==="number")return new jM(J);return new ZM(J)}class hM extends g{static[H]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new mM(T,this.config)}}class mM extends Z{static[H]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class vM extends g{static[H]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new PM(T,this.config)}}class PM extends Z{static[H]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function nM(T,$){let{name:J,config:S}=wT(T,$);if(S.mode==="number")return new hM(J);return new vM(J)}class cM extends g{static[H]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new gM(T,this.config)}}class gM extends Z{static[H]="PgBoolean";getSQLType(){return"boolean"}}function p0(T){return new cM(T??"")}class pM extends g{static[H]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new oM(T,this.config)}}class oM extends Z{static[H]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function tM(T,$={}){let{name:J,config:S}=wT(T,$);return new pM(J,S)}class iM extends g{static[H]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new dM(T,this.config)}}class dM extends Z{static[H]="PgCidr";getSQLType(){return"cidr"}}function uM(T){return new iM(T??"")}class lM extends g{static[H]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new rM(T,this.config)}}class rM extends Z{static[H]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,$){super(T,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function aM(T){return($,J)=>{let{name:S,config:F}=wT($,J);return new lM(S,F,T)}}class jJ extends g{static[H]="PgDateColumnBaseBuilder";defaultNow(){return this.default(O`now()`)}}class sM extends jJ{static[H]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new E1(T,this.config)}}class E1 extends Z{static[H]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class eM extends jJ{static[H]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new Q1(T,this.config)}}class Q1 extends Z{static[H]="PgDateString";getSQLType(){return"date"}}function TY(T,$){let{name:J,config:S}=wT(T,$);if(S?.mode==="date")return new sM(J);return new eM(J)}class $Y extends g{static[H]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new JY(T,this.config)}}class JY extends Z{static[H]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function SY(T){return new $Y(T??"")}class FY extends g{static[H]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new fY(T,this.config)}}class fY extends Z{static[H]="PgInet";getSQLType(){return"inet"}}function WY(T){return new FY(T??"")}class AY extends iJ{static[H]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new XY(T,this.config)}}class XY extends Z{static[H]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function _1(T){return new AY(T??"")}class wY extends g{static[H]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new MY(T,this.config)}}class MY extends Z{static[H]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${T}${$}`}}function YY(T,$={}){let{name:J,config:S}=wT(T,$);return new wY(J,S)}class GY extends g{static[H]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new R1(T,this.config)}}class R1 extends Z{static[H]="PgJson";constructor(T,$){super(T,$)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function KY(T){return new GY(T??"")}class HY extends g{static[H]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new k1(T,this.config)}}class k1 extends Z{static[H]="PgJsonb";constructor(T,$){super(T,$)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function OY(T){return new HY(T??"")}class zY extends g{static[H]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new DY(T,this.config)}}class DY extends Z{static[H]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,S]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J),Number.parseFloat(S)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class EY extends g{static[H]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new QY(T,this.config)}}class QY extends Z{static[H]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,S]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(J),c:Number.parseFloat(S)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function _Y(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new zY(J);return new EY(J)}class RY extends g{static[H]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new kY(T,this.config)}}class kY extends Z{static[H]="PgMacaddr";getSQLType(){return"macaddr"}}function UY(T){return new RY(T??"")}class VY extends g{static[H]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new BY(T,this.config)}}class BY extends Z{static[H]="PgMacaddr8";getSQLType(){return"macaddr8"}}function yY(T){return new VY(T??"")}class LY extends g{static[H]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new U1(T,this.config)}}class U1 extends Z{static[H]="PgNumeric";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function NY(T,$){let{name:J,config:S}=wT(T,$);return new LY(J,S?.precision,S?.scale)}class CY extends g{static[H]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new xY(T,this.config)}}class xY extends Z{static[H]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class jY extends g{static[H]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new IY(T,this.config)}}class IY extends Z{static[H]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(J)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function ZY(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new CY(J);return new jY(J)}function zG(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function qY(T,$){let J=new ArrayBuffer(8),S=new DataView(J);for(let F=0;F<8;F++)S.setUint8(F,T[$+F]);return S.getFloat64(0,!0)}function cA(T){let $=zG(T),J=0,S=$[J];J+=1;let F=new DataView($.buffer),f=F.getUint32(J,S===1);J+=4;let W;if(f&536870912)W=F.getUint32(J,S===1),J+=4;if((f&65535)===1){let A=qY($,J);J+=8;let X=qY($,J);return J+=8,[A,X]}throw new Error("Unsupported geometry type")}class bY extends g{static[H]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new hY(T,this.config)}}class hY extends Z{static[H]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return cA(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class mY extends g{static[H]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new vY(T,this.config)}}class vY extends Z{static[H]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=cA(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function PY(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new bY(J);return new mY(J)}class nY extends g{static[H]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new cY(T,this.config)}}class cY extends Z{static[H]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function gY(T){return new nY(T??"")}class pY extends g{static[H]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new oY(T,this.config)}}class oY extends Z{static[H]="PgSerial";getSQLType(){return"serial"}}function tY(T){return new pY(T??"")}class iY extends iJ{static[H]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new dY(T,this.config)}}class dY extends Z{static[H]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function uY(T){return new iY(T??"")}class lY extends g{static[H]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new rY(T,this.config)}}class rY extends Z{static[H]="PgSmallSerial";getSQLType(){return"smallserial"}}function aY(T){return new lY(T??"")}class sY extends g{static[H]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new eY(T,this.config)}}class eY extends Z{static[H]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function T4(T,$={}){let{name:J,config:S}=wT(T,$);return new sY(J,S)}class $4 extends jJ{constructor(T,$,J){super(T,"string","PgTime");this.withTimezone=$,this.precision=J,this.config.withTimezone=$,this.config.precision=J}static[H]="PgTimeBuilder";build(T){return new V1(T,this.config)}}class V1 extends Z{static[H]="PgTime";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function J4(T,$={}){let{name:J,config:S}=wT(T,$);return new $4(J,S.withTimezone??!1,S.precision)}class S4 extends jJ{static[H]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new B1(T,this.config)}}class B1 extends Z{static[H]="PgTimestamp";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class F4 extends jJ{static[H]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new y1(T,this.config)}}class y1 extends Z{static[H]="PgTimestampString";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function SJ(T,$={}){let{name:J,config:S}=wT(T,$);if(S?.mode==="string")return new F4(J,S.withTimezone??!1,S.precision);return new S4(J,S?.withTimezone??!1,S?.precision)}class f4 extends g{static[H]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(O`gen_random_uuid()`)}build(T){return new L1(T,this.config)}}class L1 extends Z{static[H]="PgUUID";getSQLType(){return"uuid"}}function m$(T){return new f4(T??"")}class W4 extends g{static[H]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new A4(T,this.config)}}class A4 extends Z{static[H]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function A$(T,$={}){let{name:J,config:S}=wT(T,$);return new W4(J,S)}class X4 extends g{static[H]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new w4(T,this.config)}}class w4 extends Z{static[H]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function M4(T,$){let{name:J,config:S}=wT(T,$);return new X4(J,S)}class Y4 extends g{static[H]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new G4(T,this.config)}}class G4 extends Z{static[H]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function K4(T,$){let{name:J,config:S}=wT(T,$);return new Y4(J,S)}class H4 extends g{static[H]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new O4(T,this.config)}}class O4 extends Z{static[H]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function z4(T,$){let{name:J,config:S}=wT(T,$);return new H4(J,S)}class D4 extends g{static[H]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new E4(T,this.config)}}class E4 extends Z{static[H]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function Q4(T,$){let{name:J,config:S}=wT(T,$);return new D4(J,S)}function _4(){return{bigint:bM,bigserial:nM,boolean:p0,char:tM,cidr:uM,customType:aM,date:TY,doublePrecision:SY,inet:WY,integer:_1,interval:YY,json:KY,jsonb:OY,line:_Y,macaddr:UY,macaddr8:yY,numeric:NY,point:ZY,geometry:PY,real:gY,serial:tY,smallint:uY,smallserial:aY,text:T4,time:J4,timestamp:SJ,uuid:m$,varchar:A$,bit:M4,halfvec:K4,sparsevec:z4,vector:Q4}}var gA=Symbol.for("drizzle:PgInlineForeignKeys"),R4=Symbol.for("drizzle:EnableRLS");class X$ extends v{static[H]="PgTable";static Symbol=Object.assign({},v.Symbol,{InlineForeignKeys:gA,EnableRLS:R4});[gA]=[];[R4]=!1;[v.Symbol.ExtraConfigBuilder]=void 0;[v.Symbol.ExtraConfigColumns]={}}function DG(T,$,J,S,F=T){let f=new X$(T,S,F),W=typeof $==="function"?$(_4()):$,A=Object.fromEntries(Object.entries(W).map(([M,Y])=>{let G=Y;G.setName(M);let z=G.build(f);return f[gA].push(...G.buildForeignKeys(z,f)),[M,z]})),X=Object.fromEntries(Object.entries(W).map(([M,Y])=>{let G=Y;G.setName(M);let z=G.buildExtraConfigColumn(f);return[M,z]})),w=Object.assign(f,A);if(w[v.Symbol.Columns]=A,w[v.Symbol.ExtraConfigColumns]=X,J)w[X$.Symbol.ExtraConfigBuilder]=J;return Object.assign(w,{enableRLS:()=>{return w[X$.Symbol.EnableRLS]=!0,w}})}var dJ=(T,$,J)=>{return DG(T,$,J,void 0)};function k4(...T){if(T[0].columns)return new o0(T[0].columns,T[0].name);return new o0(T)}class o0{static[H]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new U4(T,this.columns,this.name)}}class U4{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[H]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[X$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class pA{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[v.Symbol.Name]}static[H]="Relation";referencedTableName;fieldName}class V4{constructor(T,$){this.table=T,this.config=$}static[H]="Relations"}class uJ extends pA{constructor(T,$,J,S){super(T,$,J?.relationName);this.config=J,this.isNullable=S}static[H]="One";withFieldName(T){let $=new uJ(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class t0 extends pA{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[H]="Many";withFieldName(T){let $=new t0(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function B4(){return{and:c0,between:EM,eq:O1,exists:zM,gt:z1,gte:wM,ilike:kM,inArray:GM,isNull:HM,isNotNull:OM,like:_M,lt:MM,lte:YM,ne:WM,not:XM,notBetween:QM,notExists:DM,notLike:RM,notIlike:UM,notInArray:KM,or:AM,sql:O}}function y4(){return{sql:O,asc:VM,desc:BM}}function L4(T,$){if(Object.keys(T).length===1&&"default"in T&&!k(T.default,v))T=T.default;let J={},S={},F={};for(let[f,W]of Object.entries(T))if(k(W,v)){let A=BS(W),X=S[A];J[A]=f,F[f]={tsName:f,dbName:W[v.Symbol.Name],schema:W[v.Symbol.Schema],columns:W[v.Symbol.Columns],relations:X?.relations??{},primaryKey:X?.primaryKey??[]};for(let M of Object.values(W[v.Symbol.Columns]))if(M.primary)F[f].primaryKey.push(M);let w=W[v.Symbol.ExtraConfigBuilder]?.(W[v.Symbol.ExtraConfigColumns]);if(w){for(let M of Object.values(w))if(k(M,o0))F[f].primaryKey.push(...M.columns)}}else if(k(W,V4)){let A=BS(W.table),X=J[A],w=W.config($(W.table)),M;for(let[Y,G]of Object.entries(w))if(X){let z=F[X];if(z.relations[Y]=G,M)z.primaryKey.push(...M)}else{if(!(A in S))S[A]={relations:{},primaryKey:M};S[A].relations[Y]=G}}return{tables:F,tableNamesMap:J}}function EG(T){return function $(J,S){return new uJ(T,J,S,S?.fields.reduce((F,f)=>F&&f.notNull,!0)??!1)}}function QG(T){return function $(J,S){return new t0(T,J,S)}}function N4(T,$,J){if(k(J,uJ)&&J.config)return{fields:J.config.fields,references:J.config.references};let S=$[BS(J.referencedTable)];if(!S)throw new Error(`Table "${J.referencedTable[v.Symbol.Name]}" not found in schema`);let F=T[S];if(!F)throw new Error(`Table "${S}" not found in schema`);let f=J.sourceTable,W=$[BS(f)];if(!W)throw new Error(`Table "${f[v.Symbol.Name]}" not found in schema`);let A=[];for(let X of Object.values(F.relations))if(J.relationName&&J!==X&&X.relationName===J.relationName||!J.relationName&&X.referencedTable===J.sourceTable)A.push(X);if(A.length>1)throw J.relationName?new Error(`There are multiple relations with name "${J.relationName}" in table "${S}"`):new Error(`There are multiple relations between "${S}" and "${J.sourceTable[v.Symbol.Name]}". Please specify relation name`);if(A[0]&&k(A[0],uJ)&&A[0].config)return{fields:A[0].config.references,references:A[0].config.fields};throw new Error(`There is not enough information to infer relation "${W}.${J.fieldName}"`)}function C4(T){return{one:EG(T),many:QG(T)}}function N1(T,$,J,S,F=(f)=>f){let f={};for(let[W,A]of S.entries())if(A.isJson){let X=$.relations[A.tsKey],w=J[W],M=typeof w==="string"?JSON.parse(w):w;f[A.tsKey]=k(X,uJ)?M&&N1(T,T[A.relationTableTsKey],M,A.selection,F):M.map((Y)=>N1(T,T[A.relationTableTsKey],Y,A.selection,F))}else{let X=F(J[W]),w=A.field,M;if(k(w,UT))M=w;else if(k(w,P))M=w.decoder;else M=w.sql.decoder;f[A.tsKey]=X===null?null:M.mapFromDriverValue(X)}return f}import OK from"path";import pG from"os";import oG from"fs";var C1=new Map,oA=new Map,tA=Symbol("OriginError"),BF={};class t$ extends Promise{constructor(T,$,J,S,F={}){let f,W;super((A,X)=>{f=A,W=X});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=S,this.options=F,this.state=null,this.statement=null,this.resolve=(A)=>(this.active=!1,f(A)),this.reject=(A)=>(this.active=!1,W(A)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[tA]=this.handler.debug?new Error:this.tagged&&_G(this.strings)}get origin(){return(this.handler.debug?this[tA].stack:this.tagged&&oA.has(this.strings)?oA.get(this.strings):oA.set(this.strings,this[tA].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(T=1,$){if(this.options.simple=!1,typeof T==="function")$=T,T=1;if(this.cursorRows=T,typeof $==="function")return this.cursorFn=$,this;let J;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};J&&J();let S=new Promise((F,f)=>{this.cursorFn=(W)=>{return F({value:W,done:!1}),new Promise((A)=>J=A)},this.resolve=()=>(this.active=!1,F({done:!0})),this.reject=(W)=>(this.active=!1,f(W))});return this.execute(),S},return(){return J&&J(BF),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(T){return this.forEachFn=T,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function _G(T){if(C1.has(T))return C1.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,C1.set(T,new Error),Error.stackTraceLimit=$,C1.get(T)}class yF extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var pT={connection:x4,postgres:j4,generic:I4,notSupported:Z4};function x4(T,$,J){let{host:S,port:F}=J||$,f=Object.assign(new Error("write "+T+" "+($.path||S+":"+F)),{code:T,errno:T,address:$.path||S},$.path?{}:{port:F});return Error.captureStackTrace(f,x4),f}function j4(T){let $=new yF(T);return Error.captureStackTrace($,j4),$}function I4(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,I4),J}function Z4(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,Z4),$}var RG={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 I1{then(){iA()}catch(){iA()}finally(){iA()}}class l0 extends I1{constructor(T){super();this.value=b1(T)}}class KJ extends I1{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class Z1 extends I1{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,S){let F=kG.map(([f,W])=>({fn:W,i:T.search(f)})).sort((f,W)=>f.i-W.i).pop();return F.i===-1?aA(this.first,S):F.fn(this.first,this.rest,$,J,S)}}function q1(T,$,J,S){let F=T instanceof KJ?T.value:T;if(F===void 0){if(T instanceof KJ?T.value=S.transform.undefined:F=T=S.transform.undefined,F===void 0)throw pT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof KJ?($.push(T.value),T.array?T.array[T.type||j1(T.value)]||T.type||m4(T.value):T.type):($.push(T),j1(T)))}var b4=P4(RG);function lA(T,$,J,S,F,f){for(let W=1;W<T.strings.length;W++)$+=rA($,J,S,F,f)+T.strings[W],J=T.args[W];return $}function rA(T,$,J,S,F){return $ instanceof Z1?$.build(T,J,S,F):$ instanceof t$?uA($,J,S,F):$ instanceof l0?$.value:$&&$[0]instanceof t$?$.reduce((f,W)=>f+" "+uA(W,J,S,F),""):q1($,J,S,F)}function uA(T,$,J,S){return T.fragment=!0,lA(T,T.strings[0],T.args[0],$,J,S)}function h4(T,$,J,S,F){return T.map((f)=>"("+S.map((W)=>rA("values",f[W],$,J,F)).join(",")+")").join(",")}function q4(T,$,J,S,F){let f=Array.isArray(T[0]),W=$.length?$.flat():Object.keys(f?T[0]:T);return h4(f?T:[T],J,S,W,F)}function x1(T,$,J,S,F){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return aA(T,F);let f;return($.length?$.flat():Object.keys(T)).map((A)=>{return f=T[A],(f instanceof t$?uA(f,J,S,F):f instanceof l0?f.value:q1(f,J,S,F))+" as "+b1(F.transform.column.to?F.transform.column.to(A):A)}).join(",")}var kG=Object.entries({values:q4,in:(...T)=>{let $=q4(...T);return $==="()"?"(null)":$},select:x1,as:x1,returning:x1,"\\(":x1,update(T,$,J,S,F){return($.length?$.flat():Object.keys(T)).map((f)=>b1(F.transform.column.to?F.transform.column.to(f):f)+"="+rA("values",T[f],J,S,F))},insert(T,$,J,S,F){let f=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+aA(f,F)+")values"+h4(Array.isArray(T)?T:[T],J,S,f,F)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function iA(){throw pT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:UG,parsers:VG}=b4;function m4(T){if(Array.isArray(T))return m4(T[0]);return typeof T==="string"?1009:0}var v4=function(T){let $=P4(T||{});return{serializers:Object.assign({},UG,$.serializers),parsers:Object.assign({},VG,$.parsers)}};function P4(T){return Object.keys(T).reduce(($,J)=>{if(T[J].from&&[].concat(T[J].from).forEach((S)=>$.parsers[S]=T[J].parse),T[J].serialize)$.serializers[T[J].to]=T[J].serialize,T[J].from&&[].concat(T[J].from).forEach((S)=>$.serializers[S]=T[J].serialize);return $},{parsers:{},serializers:{}})}function aA(T,{transform:{column:$}}){return T.map((J)=>b1($.to?$.to(J):J)).join(",")}var b1=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},j1=function T($){return $ instanceof KJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},BG=/\\/g,yG=/"/g;function LG(T){return T.replace(BG,"\\\\").replace(yG,"\\\"")}var n4=function T($,J,S,F){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let f=$[0],W=F===1020?";":",";if(Array.isArray(f)&&!f.type)return"{"+$.map((A)=>T(A,J,S,F)).join(W)+"}";return"{"+$.map((A)=>{if(A===void 0){if(A=S.transform.undefined,A===void 0)throw pT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return A===null?"null":'"'+LG(J?J(A.type?A.value:A):""+A)+'"'}).join(W)+"}"},dA={i:0,char:null,str:"",quoted:!1,last:0},c4=function T($,J,S){return dA.i=dA.last=0,g4(dA,$,J,S)};function g4(T,$,J,S){let F=[],f=S===1020?";":",";for(;T.i<$.length;T.i++){if(T.char=$[T.i],T.quoted)if(T.char==="\\")T.str+=$[++T.i];else if(T.char==='"')F.push(J?J(T.str):T.str),T.str="",T.quoted=$[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,F.push(g4(T,$,J,S));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&F.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===f&&T.p!=="}"&&T.p!=='"')F.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&F.push(J?J($.slice(T.last,T.i+1)):$.slice(T.last,T.i+1)),F}var yS=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},LS=(T)=>{let $=T[0].toUpperCase();for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},NS=(T)=>T.replace(/_/g,"-"),i0=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),d0=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),u0=(T)=>T.replace(/-/g,"_");function sA(T){return function $(J,S){return typeof J==="object"&&J!==null&&(S.type===114||S.type===3802)?Array.isArray(J)?J.map((F)=>$(F,S)):Object.entries(J).reduce((F,[f,W])=>Object.assign(F,{[T(f)]:$(W,S)}),{}):J}}yS.column={from:yS};yS.value={from:sA(yS)};i0.column={to:i0};var eA={...yS};eA.column.to=i0;LS.column={from:LS};LS.value={from:sA(LS)};d0.column={to:d0};var T2={...LS};T2.column.to=d0;NS.column={from:NS};NS.value={from:sA(NS)};u0.column={to:u0};var $2={...NS};$2.column.to=u0;import p4 from"net";import jG from"tls";import r0 from"crypto";import J2 from"stream";import{performance as o4}from"perf_hooks";class CS extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var v$=NG;function NG(T=[]){let $=T.slice(),J=0;return{get length(){return $.length-J},remove:(S)=>{let F=$.indexOf(S);return F===-1?null:($.splice(F,1),S)},push:(S)=>($.push(S),S),shift:()=>{let S=$[J++];if(J===$.length)J=0,$=[];else $[J-1]=void 0;return S}}}var z$=Buffer.allocUnsafe(256),CG="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return z$[0]=J,RT.i=5,RT},T},{}),RT=Object.assign(xG,CG,{N:String.fromCharCode(0),i:0,inc(T){return RT.i+=T,RT},str(T){let $=Buffer.byteLength(T);return h1($),RT.i+=z$.write(T,RT.i,$,"utf8"),RT},i16(T){return h1(2),z$.writeUInt16BE(T,RT.i),RT.i+=2,RT},i32(T,$){if($||$===0)return z$.writeUInt32BE(T,$),RT;return h1(4),z$.writeUInt32BE(T,RT.i),RT.i+=4,RT},z(T){return h1(T),z$.fill(0,RT.i,RT.i+T),RT.i+=T,RT},raw(T){return z$=Buffer.concat([z$.subarray(0,RT.i),T]),RT.i=z$.length,RT},end(T=1){z$.writeUInt32BE(RT.i-T,T);let $=z$.subarray(0,RT.i);return RT.i=0,z$=Buffer.allocUnsafe(256),$}}),d=RT;function h1(T){if(z$.length-RT.i<T){let $=z$,J=$.length;z$=Buffer.allocUnsafe(J+(J>>1)+T),$.copy(z$)}}function xG(){return RT.i=0,RT}var f2=d4,IG=1,lJ=d().S().end(),t4=d().H().end(),ZG=d().i32(8).i32(80877103).end(8),qG=Buffer.concat([d().E().str(d.N).i32(0).end(),lJ]),bG=d().D().str("S").str(d.N).end(),LF=()=>{},hG=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),mG={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 d4(T,$={},{onopen:J=LF,onend:S=LF,onclose:F=LF}={}){let{ssl:f,max:W,user:A,host:X,port:w,database:M,parsers:Y,transform:G,onnotice:z,onnotify:D,onparameter:_,max_pipeline:L,keep_alive:j,backoff:y,target_session_attrs:I}=T,Q=v$(),V=IG++,B={pid:null,secret:null},U=F2(r1,T.idle_timeout),h=F2(r1,T.max_lifetime),l=F2(U6,T.connect_timeout),R=null,s,p=new CS,$T=Buffer.alloc(0),ET=T.fetch_types,hT={},k$={},HJ=Math.random().toString(36).slice(2),N=1,i=0,KT=0,IT=0,oT=0,fT=0,BT=0,cT=0,ZT=null,CT=null,w$=!1,yT=null,i$=null,M$=null,qJ=null,tT=null,xT=null,d$=null,FJ=null,q=null,jF=null,Y$={queue:$.closed,idleTimer:U,connect(K){M$=K||!0,I2()},terminate:ZF,execute:IF,cancel:Q6,end:r1,count:0,id:V};return $.closed&&$.closed.push(Y$),Y$;async function E6(){let K;try{K=T.socket?await Promise.resolve(T.socket(T)):new p4.Socket}catch(E){ZS(E);return}return K.on("error",ZS),K.on("close",Z2),K.on("drain",x2),K}async function Q6({pid:K,secret:E},u,HT){try{s=d().i32(16).i32(80877102).i32(K).i32(E).end(16),await j2(),R.once("error",HT),R.once("close",u)}catch(mT){HT(mT)}}function IF(K){if(w$)return Sf(K,pT.connection("CONNECTION_DESTROYED",T));if(K.cancelled)return;try{return K.state=B,q?Q.push(K):(q=K,q.active=!0),k6(K),F$(_6(K))&&!K.describeFirst&&!K.cursorFn&&Q.length<L&&(!K.options.onexecute||K.options.onexecute(Y$))}catch(E){return Q.length===0&&F$(lJ),fJ(E),!0}}function _6(K){if(K.parameters.length>=65534)throw pT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return K.options.simple?d().Q().str(K.statement.string+d.N).end():K.describeFirst?Buffer.concat([L2(K),t4]):K.prepare?K.prepared?Jf(K):Buffer.concat([L2(K),Jf(K)]):R6(K)}function L2(K){return Buffer.concat([b2(K.statement.string,K.parameters,K.statement.types,K.statement.name),A7("S",K.statement.name)])}function Jf(K){return Buffer.concat([W7(K.parameters,K.statement.types,K.statement.name,K.cursorName),K.cursorFn?h2("",K.cursorRows):qG])}function R6(K){return Buffer.concat([b2(K.statement.string,K.parameters,K.statement.types),bG,Jf(K)])}function k6(K){let E=[],u=[],HT=lA(K,K.strings[0],K.args[0],E,u,T);!K.tagged&&K.args.forEach((mT)=>q1(mT,E,u,T)),K.prepare=T.prepare&&("prepare"in K.options?K.options.prepare:!0),K.string=HT,K.signature=K.prepare&&u+HT,K.onlyDescribe&&delete k$[K.signature],K.parameters=K.parameters||E,K.prepared=K.prepare&&K.signature in k$,K.describeFirst=K.onlyDescribe||E.length&&!K.prepared,K.statement=K.prepared?k$[K.signature]:{string:HT,types:u,name:K.prepare?HJ+N++:""},typeof T.debug==="function"&&T.debug(V,HT,E,u)}function F$(K,E){if(xT=xT?Buffer.concat([xT,K]):Buffer.from(K),E||xT.length>=1024)return N2(E);return CT===null&&(CT=setImmediate(N2)),!0}function N2(K){let E=R.write(xT,K);return CT!==null&&clearImmediate(CT),xT=CT=null,E}function U6(){fJ(pT.connection("CONNECT_TIMEOUT",T,R)),R.destroy()}async function C2(){if(F$(ZG),!await new Promise((E)=>R.once("data",(u)=>E(u[0]===83)))&&f==="prefer")return IS();R.removeAllListeners(),R=jG.connect({socket:R,servername:p4.isIP(R.host)?void 0:R.host,...f==="require"||f==="allow"||f==="prefer"?{rejectUnauthorized:!1}:f==="verify-full"?{}:typeof f==="object"?f:{}}),R.on("secureConnect",IS),R.on("error",ZS),R.on("close",Z2),R.on("drain",x2)}function x2(){!q&&J(Y$)}function l1(K){if(yT){if(yT.push(K),KT-=K.length,KT>=0)return}$T=yT?Buffer.concat(yT,fT-KT):$T.length===0?K:Buffer.concat([$T,K],$T.length+K.length);while($T.length>4){if(fT=$T.readUInt32BE(1),fT>=$T.length){KT=fT-$T.length,yT=[$T];break}try{V6($T.subarray(0,fT+1))}catch(E){q&&(q.cursorFn||q.describeFirst)&&F$(lJ),fJ(E)}$T=$T.subarray(fT+1),KT=0,yT=null}}async function j2(){if(w$=!1,hT={},R||(R=await E6()),!R)return;if(l.start(),T.socket)return f?C2():IS();if(R.on("connect",f?C2:IS),T.path)return R.connect(T.path);R.ssl=f,R.connect(w[IT],X[IT]),R.host=X[IT],R.port=w[IT],IT=(IT+1)%w.length}function I2(){setTimeout(j2,i?i+BT-o4.now():0)}function IS(){try{k$={},ET=T.fetch_types,HJ=Math.random().toString(36).slice(2),N=1,h.start(),R.on("data",l1),j&&R.setKeepAlive&&R.setKeepAlive(!0,1000*j);let K=w7();F$(K)}catch(K){ZS(K)}}function ZS(K){if(Y$.queue===$.connecting&&T.host[oT+1])return;fJ(K);while(Q.length)Sf(Q.shift(),K)}function fJ(K){tT&&(tT.destroy(K),tT=null),q&&Sf(q,K),M$&&(Sf(M$,K),M$=null)}function Sf(K,E){"query"in E||"parameters"in E||Object.defineProperties(E,{stack:{value:E.stack+K.origin.replace(/.*\n/,`
|
|
68
|
-
`),enumerable:T.debug},query:{value:
|
|
66
|
+
${S}`)}let A=$J.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(ZT.readFileSync(A,"utf-8"))}async write(T,$,J,W){let F=$J.join(this.baseDir,T),X=$J.join(F,`${$}.input.json`),S=$J.join(F,`${$}.output.json`),Y=JSON.stringify(J,null,"\t");if(!ZT.existsSync(this.baseDir))ZT.mkdirSync(this.baseDir,{recursive:!0});if(!ZT.existsSync(F))ZT.mkdirSync(F);if(ZT.writeFileSync(X,Y),ZT.existsSync(S))ZT.unlinkSync(S);let A=await W(...J),w=JSON.stringify(A,null,"\t");return ZT.writeFileSync(S,w),A}add(T,$){let J=`${this.rootName}${pT}${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 S=this.filenameCache.get(W);if(!S)S=q1(W),this.filenameCache.set(W,S);X=S,this.filesTouched.get(T)?.add(X);let Y=`${J}${pT}${X}`,A=`file${pT}${Y}`;if(VT.storage.initialized&&!VT.storage.getItem(A))VT.storage.setItem(A,"true")}switch(this.mode){case"off":return $(...F);case"read":return this.read(T,X,F);case"write":return this.write(T,X,F,$);case"read-write":try{return this.read(T,X,F)}catch(S){if(S instanceof Error)return this.write(T,X,F,$);throw S}}}}}}}flush(...T){console.log(this.filesTouched);for(let[$,J]of this.filesTouched.entries())if(T.length===0||T.includes($)){let W=$J.join(this.baseDir,$),F=ZT.readdirSync(W);for(let X of F){let S=X.replace(".input.json","").replace(".output.json","");if(!J.has(S))console.info(`\uD83E\uDDF9 Flushing ${S}`),ZT.unlinkSync($J.join(W,X))}}}};function hH(T,...$){let[J,W,F,X]=$,S=[{role:"user",content:tY(W)},{role:"user",content:J}],Y=X.at(-1);if(Y)S.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(Y.response,null,2),"Here's the error message:",Y.error.toString()].join(`
|
|
67
|
+
`)});return{model:T,messages:S}}var 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 mH(T){return async function $(J,W){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let F=await T.chat.completions.create({...J,stream:!1,response_format:{type:"json_object"}},W),X=F.choices[0].message?.content,{usage:S}=F;if(X&&S){let Y=S.prompt_tokens,A=S.prompt_tokens_details?.cached_tokens??0,w=Y-A,G=S.completion_tokens,M=Y*v8[J.model].promptPricePerToken+w*v8[J.model].promptPricePerTokenCached+G*v8[J.model].completionPricePerToken;return{data:JSON.parse(X),usage:S,usdPrice:M}}if(!X&&!S)throw new Error("No content or usage found in completion");if(!X)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var Y7=new Map,A7=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:W,cachingMode:F,cacheKey:X="openai-safegen",logger:S}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new S7(F);let Y=Y7.get(W);if(F!=="read"){if(!Y)Y=new u6({apiKey:W,dangerouslyAllowBrowser:!1}),Y7.set(W,Y);this.client=Y}this.getUnknownJsonFromOpenAi=mH(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(X,this.getUnknownJsonFromOpenAi),this.from=iY(async(...A)=>{if(this.usdBudget<this.usdMinimum)return S?.warn("SafeGen budget exhausted"),A[1];let w=hH(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 TO}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(PJ(W))continue;let X=k$(F);if(F.family){let S=J.get(F.family.key);if(!S||!("familyMembers"in S))S={key:F.family.key,familyMembers:new Map},J.set(F.family.key,S);S.familyMembers.set(F.family.subKey,X)}else J.set(W,X)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(W)=>{if(PJ(W.key))return;J((F)=>{if(W.family){let{key:X,subKey:S}=W.family,Y=F.get(X);if(Y===void 0||!("familyMembers"in Y))Y={key:X,familyMembers:new Map},F.set(X,Y);Y.familyMembers.set(S,W)}else F.set(W.key,W);return F})}),T.on.atomDisposal.subscribe("introspection",(W)=>{J((F)=>{if(W.family){let{key:X,subKey:S}=W.family,Y=F.get(X);if(Y&&"familyMembers"in Y){if(Y.familyMembers.delete(S),Y.familyMembers.size===0)F.delete(X)}}else F.delete(W.key);return F})})}]},void 0);return 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(PJ(F))continue;let S=k$(X);if(X.family){let Y=J.get(X.family.key);if(!Y||!("familyMembers"in Y))Y={key:X.family.key,familyMembers:new Map},J.set(X.family.key,Y);Y.familyMembers.set(X.family.subKey,S)}else J.set(F,S)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(W)=>{if(PJ(W.key))return;J((F)=>{if(W.family){let{key:X,subKey:S}=W.family,Y=F.get(X);if(Y===void 0||!("familyMembers"in Y))Y={key:X,familyMembers:new Map},F.set(X,Y);Y.familyMembers.set(S,W)}else F.set(W.key,W);return F})}),T.on.selectorDisposal.subscribe("introspection",(W)=>{J((F)=>{if(W.family){let{key:X,subKey:S}=W.family,Y=F.get(X);if(Y&&"familyMembers"in Y){if(Y.familyMembers.delete(S),Y.familyMembers.size===0)F.delete(X)}}else F.delete(W.key);return F})})}]},void 0);return 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)}),gH=new UX({...m8.supported,...c8.supported}),I1=(T)=>{if(T===void 0)return"undefined";let $=gH.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class w7{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=w7.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=z2(this.atomIndex),J=z2(this.selectorIndex),W=[...$.values()].filter((Y)=>("familyMembers"in Y)),F=[...J.values()].filter((Y)=>("familyMembers"in Y)),X=performance.now(),S=[];if(T.atomFamilies)for(let Y of W){let A=Y.familyMembers.values();for(let w of A){let M=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,H=X-M;S.push([w,H])}}if(T.selectorFamilies)for(let Y of F){let A=Y.familyMembers.values();for(let w of A){let M=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,H=X-M;S.push([w,H])}}return S}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var n8=(T,$)=>{let J=(W,F)=>{let S=((A,w)=>{let G=$(A,w);if(G)return G;return null})(W,F);if(S?.jobComplete??S?.pathComplete)return S;let Y=Array.isArray(F)?F.map((A,w)=>[w,A]):g8(F)?Object.entries(F):[];for(let[A,w]of Y){let G=J([...W,A],w);if(G?.jobComplete)return G}return{}};J([],T)};function cH(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function nH(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function pH(T,$){return{summary:`${T} \u2192 ${$}`}}function G7(T,$,J){let W="",F=[],X=[],S=[];return n8(T,(Y,A)=>{let w;for(w of Y){let G=$[w];if(G===void 0)X.push([w,JSON.stringify(A)]);else{let M=J(A,G);if(M.summary!=="No Change")S.push([w,M])}}}),n8($,(Y,A)=>{let w;for(w of Y)if(T[w]===void 0)F.push([w,JSON.stringify(A)])}),W=`\uFF5E${S.length} \uFF0B${F.length} \uFF0D${X.length}`,{summary:W,added:F,removed:X,changed:S}}function oH(T,$,J){return G7(T,$,J)}class M7{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,J){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let W of Object.keys(T.supported)){let F=J[W];this.leafDiffers[W]=F}for(let W of Object.keys($.supported)){let F=J[W];this.treeDiffers[W]=F}}diff(T,$){if(T===$)return{summary:"No Change"};let J=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),W=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(J!==null&&W!==null){if(J.type===W.type){if(J.type in this.leafDiffers)return this.leafDiffers[J.type](J.data,W.data);if(J.type in this.treeDiffers)return this.treeDiffers[J.type](J.data,W.data,(Y,A)=>this.diff(Y,A))}}let F=I1(T),X=I1($);if(F===X)return{summary:`${F} \u2192 ${X}`};return{summary:`Type change: ${F} \u2192 ${X}`}}}var lx=new M7(m8,c8,{number:cH,string:nH,boolean:pH,null:()=>({summary:"No Change"}),object:G7,array:oH});var z=Symbol.for("drizzle:entityKind"),Wj=Symbol.for("drizzle:hasOwnEntityKind");function _(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,z))throw new Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let J=Object.getPrototypeOf(T).constructor;if(J)while(J){if(z in J&&J[z]===$[z])return!0;J=Object.getPrototypeOf(J)}return!1}class BT{constructor(T,$){this.table=T,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[z]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class p8{static[z]="ColumnBuilder";config;constructor(T,$,J){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:J,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var JJ=Symbol.for("drizzle:Name");class o8{static[z]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:W,foreignColumns:F}=T();return{name:J,columns:W,foreignTable:F[0].table,foreignColumns:F}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new H7(T,this)}}class H7{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[z]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:J}=this.reference(),W=$.map((S)=>S.name),F=J.map((S)=>S.name),X=[this.table[JJ],...W,J[0].table[JJ],...F];return T??`${X.join("_")}_fk`}}function _X(T,...$){return T(...$)}function O7(T,$){return`${T[JJ]}_${$.join("_")}_unique`}function z7(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 K7(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]=z7(T,W+1,!0);J.push(A),W=w;continue}if(X==="}")return[J,W+1];if(X==="{"){let[A,w]=K7(T,W+1);J.push(A),W=w;continue}let[S,Y]=z7(T,W,!1);J.push(S),W=Y}return[J,W]}function f7(T){let[$]=K7(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[z]="PgColumnBuilder";array(T){return new Q7(this.config.name,this,T)}references(T,$={}){return this.foreignKeyConfigs.push({ref:T,actions:$}),this}unique(T,$){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,$){return this.foreignKeyConfigs.map(({ref:J,actions:W})=>{return _X((F,X)=>{let S=new o8(()=>{let Y=F();return{columns:[T],foreignColumns:[Y]}});if(X.onUpdate)S.onUpdate(X.onUpdate);if(X.onDelete)S.onDelete(X.onDelete);return S.build($)},J,W)})}buildExtraConfigColumn(T){return new D7(T,this.config)}}class q extends BT{constructor(T,$){if(!$.uniqueName)$.uniqueName=O7(T,[$.name]);super(T,$);this.table=T}static[z]="PgColumn"}class D7 extends q{static[z]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(T){return this.indexConfig.opClass=T,this}}class tW{static[z]="IndexedColumn";constructor(T,$,J,W){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=W}name;keyAsName;type;indexConfig}class Q7 extends n{static[z]="PgArrayBuilder";constructor(T,$,J){super(T,"array","PgArray");this.config.baseBuilder=$,this.config.size=J}build(T){let $=this.config.baseBuilder.build(T);return new 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[z]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=f7(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 E7(T){return!!T&&typeof T==="function"&&i8 in T&&T[i8]===!0}class R7 extends n{static[z]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new U7(T,this.config)}}class U7 extends q{static[z]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function kX(T,$){return dH(T,$,void 0)}function dH(T,$,J){let W=Object.assign((F)=>new R7(F??"",W),{enumName:T,enumValues:$,schema:J,[i8]:!0});return W}class eT{static[z]="Subquery";constructor(T,$,J,W=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:W}}}class lW extends eT{static[z]="WithSubquery"}var _7="0.41.0";var t8,l8,LT={startActiveSpan(T,$){if(!t8)return $();if(!l8)l8=t8.trace.getTracer("drizzle-orm",_7);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"),k7=Symbol.for("drizzle:ExtraConfigColumns"),r8=Symbol.for("drizzle:OriginalName"),a8=Symbol.for("drizzle:BaseName"),rW=Symbol.for("drizzle:IsAlias"),V7=Symbol.for("drizzle:ExtraConfigBuilder"),uH=Symbol.for("drizzle:IsDrizzleTable");class h{static[z]="Table";static Symbol={Name:JJ,Schema:VX,OriginalName:r8,Columns:BX,ExtraConfigColumns:k7,BaseName:a8,IsAlias:rW,ExtraConfigBuilder:V7};[JJ];[r8];[VX];[BX];[k7];[a8];[rW]=!1;[uH]=!0;[V7]=void 0;constructor(T,$,J){this[JJ]=this[r8]=T,this[VX]=$,this[a8]=J}}function W$(T){return T[JJ]}function q0(T){return`${T[VX]??"public"}.${T[JJ]}`}function s8(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function iH(T){let $={sql:"",params:[]};for(let J of T)if($.sql+=J.sql,$.params.push(...J.params),J.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...J.typings)}return $}class T${static[z]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new g([this])}}class g{constructor(T){this.queryChunks=T}static[z]="SQL";decoder=L7;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return LT.startActiveSpan("drizzle.buildSQL",($)=>{let J=this.buildQueryFromSourceParams(this.queryChunks,T);return $?.setAttributes({"drizzle.query.text":J.sql,"drizzle.query.params":JSON.stringify(J.params)}),J})}buildQueryFromSourceParams(T,$){let J=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:W,escapeName:F,escapeParam:X,prepareTyping:S,inlineParams:Y,paramStartIndex:A}=J;return iH(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:Y||w.shouldInlineParams});if(_(w,h)){let G=w[h.Symbol.Schema],M=w[h.Symbol.Name];return{sql:G===void 0||w[rW]?F(M):F(G)+"."+F(M),params:[]}}if(_(w,BT)){let G=W.getColumnCasing(w);if($.invokeSource==="indexes")return{sql:F(G),params:[]};let M=w.table[h.Symbol.Schema];return{sql:w.table[rW]||M===void 0?F(w.table[h.Symbol.Name])+"."+F(G):F(M)+"."+F(w.table[h.Symbol.Name])+"."+F(G),params:[]}}if(_(w,L$)){let G=w[CT].schema,M=w[CT].name;return{sql:G===void 0||w[CT].isAlias?F(M):F(G)+"."+F(M),params:[]}}if(_(w,v$)){if(_(w.value,tJ))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(Y)return{sql:this.mapInlineParam(G,J),params:[]};let M=["none"];if(S)M=[S(w.encoder)];return{sql:X(A.value++,G),params:[G],typings:M}}if(_(w,tJ))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(E7(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(Y)return{sql:this.mapInlineParam(w,J),params:[]};return{sql:X(A.value++,w),params:[w],typings:["none"]}}))}mapInlineParam(T,{escapeString:$}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return $(T);if(typeof T==="object"){let J=T.toString();if(J==="[object Object]")return $(JSON.stringify(T));return $(J)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new 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[z]="Name";brand;getSQL(){return new g([this])}}function B7(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var L7={mapFromDriverValue:(T)=>T},y7={mapToDriverValue:(T)=>T},dj={...L7,...y7};class v${constructor(T,$=y7){this.value=T,this.encoder=$}static[z]="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 S(A){return new tJ(A)}T.placeholder=S;function Y(A,w){return new v$(A,w)}T.param=Y})(K||(K={}));((T)=>{class ${constructor(J,W){this.sql=J,this.fieldAlias=W}static[z]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(g||(g={}));class tJ{constructor(T){this.name=T}static[z]="Placeholder";getSQL(){return new g([this])}}function e8(T,$){return T.map((J)=>{if(_(J,tJ)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(_(J,v$)&&_(J.value,tJ)){if(!(J.value.name in $))throw new Error(`No value for placeholder "${J.value.name}" was provided`);return J.encoder.mapToDriverValue($[J.value.name])}return J})}var tH=Symbol.for("drizzle:IsDrizzleView");class L${static[z]="View";[CT];[tH]=!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[z]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class aW{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[z]="TableAliasProxyHandler";get(T,$){if($===h.Symbol.IsAlias)return!0;if($===h.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===h.Symbol.OriginalName)return this.alias;if($===CT)return{...T[CT],name:this.alias,isAlias:!0};if($===h.Symbol.Columns){let W=T[h.Symbol.Columns];if(!W)return W;let F={};return Object.keys(W).map((X)=>{F[X]=new Proxy(W[X],new 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 OJ(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 OJ(J,$);if(_(J,g))return sW(J,$);if(_(J,g.Aliased))return T4(J,$);return J}))}class NX extends Error{static[z]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class $4 extends NX{static[z]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function y$(T,$){if(B7($)&&!s8(T)&&!_(T,v$)&&!_(T,tJ)&&!_(T,BT)&&!_(T,h)&&!_(T,L$))return new v$(T,$);return T}var CX=(T,$)=>{return K`${T} = ${y$($,T)}`},N7=(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 C7(...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 x7(T){return K`not ${T}`}var xX=(T,$)=>{return K`${T} > ${y$($,T)}`},j7=(T,$)=>{return K`${T} >= ${y$($,T)}`},Z7=(T,$)=>{return K`${T} < ${y$($,T)}`},q7=(T,$)=>{return K`${T} <= ${y$($,T)}`};function I7(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 b7(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 v7(T){return K`${T} is null`}function P7(T){return K`${T} is not null`}function h7(T){return K`exists ${T}`}function m7(T){return K`not exists ${T}`}function g7(T,$,J){return K`${T} between ${y$($,T)} and ${y$(J,T)}`}function c7(T,$,J){return K`${T} not between ${y$($,T)} and ${y$(J,T)}`}function n7(T,$){return K`${T} like ${$}`}function p7(T,$){return K`${T} not like ${$}`}function o7(T,$){return K`${T} ilike ${$}`}function d7(T,$){return K`${T} not ilike ${$}`}function u7(T){return K`${T} asc`}function i7(T){return K`${T} desc`}class t7{static[z]="ConsoleLogWriter";write(T){console.log(T)}}class J4{static[z]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new t7}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[z]="NoopLogger";logQuery(){}}class R${static[z]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}then(T,$){return this.execute().then(T,$)}}function l7(T,$,J){let W={},F=T.reduce((X,{path:S,field:Y},A)=>{let w;if(_(Y,BT))w=Y;else if(_(Y,g))w=Y.decoder;else w=Y.sql.decoder;let G=X;for(let[M,H]of S.entries())if(M<S.length-1){if(!(H in G))G[H]={};G=G[H]}else{let f=$[A],D=G[H]=f===null?null:w.mapFromDriverValue(f);if(J&&_(Y,BT)&&S.length===2){let R=S[0];if(!(R in W))W[R]=D===null?W$(Y.table):!1;else if(typeof W[R]==="string"&&W[R]!==W$(Y.table))W[R]=!1}}return X},{});if(J&&Object.keys(W).length>0){for(let[X,S]of Object.entries(W))if(typeof S==="string"&&!J[S])F[X]=null}return F}function o$(T,$){return Object.entries(T).reduce((J,[W,F])=>{if(typeof W!=="string")return J;let X=$?[...$,W]:[W];if(_(F,BT)||_(F,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 r7(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 a7(T){return T[h.Symbol.Columns]}function xJ(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 s7(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 lJ extends n{static[z]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class e7 extends lJ{static[z]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new T9(T,this.config)}}class T9 extends q{static[z]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class $9 extends lJ{static[z]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new J9(T,this.config)}}class J9 extends q{static[z]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function W9(T,$){let{name:J,config:W}=wT(T,$);if(W.mode==="number")return new e7(J);return new $9(J)}class F9 extends n{static[z]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new X9(T,this.config)}}class X9 extends q{static[z]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class S9 extends n{static[z]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new Y9(T,this.config)}}class Y9 extends q{static[z]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function A9(T,$){let{name:J,config:W}=wT(T,$);if(W.mode==="number")return new F9(J);return new S9(J)}class w9 extends n{static[z]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new G9(T,this.config)}}class G9 extends q{static[z]="PgBoolean";getSQLType(){return"boolean"}}function $F(T){return new w9(T??"")}class M9 extends n{static[z]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new H9(T,this.config)}}class H9 extends q{static[z]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function O9(T,$={}){let{name:J,config:W}=wT(T,$);return new M9(J,W)}class z9 extends n{static[z]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new K9(T,this.config)}}class K9 extends q{static[z]="PgCidr";getSQLType(){return"cidr"}}function f9(T){return new z9(T??"")}class D9 extends n{static[z]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new Q9(T,this.config)}}class Q9 extends q{static[z]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,$){super(T,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function E9(T){return($,J)=>{let{name:W,config:F}=wT($,J);return new D9(W,F,T)}}class jJ extends n{static[z]="PgDateColumnBaseBuilder";defaultNow(){return this.default(K`now()`)}}class R9 extends jJ{static[z]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new ZX(T,this.config)}}class ZX extends q{static[z]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class U9 extends jJ{static[z]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new qX(T,this.config)}}class qX extends q{static[z]="PgDateString";getSQLType(){return"date"}}function _9(T,$){let{name:J,config:W}=wT(T,$);if(W?.mode==="date")return new R9(J);return new U9(J)}class k9 extends n{static[z]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new V9(T,this.config)}}class V9 extends q{static[z]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function B9(T){return new k9(T??"")}class L9 extends n{static[z]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new y9(T,this.config)}}class y9 extends q{static[z]="PgInet";getSQLType(){return"inet"}}function N9(T){return new L9(T??"")}class C9 extends lJ{static[z]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new x9(T,this.config)}}class x9 extends q{static[z]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function IX(T){return new C9(T??"")}class j9 extends n{static[z]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new Z9(T,this.config)}}class Z9 extends q{static[z]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${T}${$}`}}function q9(T,$={}){let{name:J,config:W}=wT(T,$);return new j9(J,W)}class I9 extends n{static[z]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new bX(T,this.config)}}class bX extends q{static[z]="PgJson";constructor(T,$){super(T,$)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function b9(T){return new I9(T??"")}class v9 extends n{static[z]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new vX(T,this.config)}}class vX extends q{static[z]="PgJsonb";constructor(T,$){super(T,$)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function P9(T){return new v9(T??"")}class h9 extends n{static[z]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new m9(T,this.config)}}class m9 extends q{static[z]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J),Number.parseFloat(W)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class g9 extends n{static[z]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new c9(T,this.config)}}class c9 extends q{static[z]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(J),c:Number.parseFloat(W)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function n9(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new h9(J);return new g9(J)}class p9 extends n{static[z]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new o9(T,this.config)}}class o9 extends q{static[z]="PgMacaddr";getSQLType(){return"macaddr"}}function d9(T){return new p9(T??"")}class u9 extends n{static[z]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new i9(T,this.config)}}class i9 extends q{static[z]="PgMacaddr8";getSQLType(){return"macaddr8"}}function t9(T){return new u9(T??"")}class l9 extends n{static[z]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new PX(T,this.config)}}class PX extends q{static[z]="PgNumeric";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}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 r9 extends n{static[z]="PgNumericNumberBuilder";constructor(T,$,J){super(T,"number","PgNumericNumber");this.config.precision=$,this.config.scale=J}build(T){return new a9(T,this.config)}}class a9 extends q{static[z]="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 s9 extends n{static[z]="PgNumericBigIntBuilder";constructor(T,$,J){super(T,"bigint","PgNumericBigInt");this.config.precision=$,this.config.scale=J}build(T){return new e9(T,this.config)}}class e9 extends q{static[z]="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 T5(T,$){let{name:J,config:W}=wT(T,$),F=W?.mode;return F==="number"?new r9(J,W?.precision,W?.scale):F==="bigint"?new s9(J,W?.precision,W?.scale):new l9(J,W?.precision,W?.scale)}class $5 extends n{static[z]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new J5(T,this.config)}}class J5 extends q{static[z]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class W5 extends n{static[z]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new F5(T,this.config)}}class F5 extends q{static[z]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(J)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function X5(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new $5(J);return new W5(J)}function lH(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function S5(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 $=lH(T),J=0,W=$[J];J+=1;let F=new DataView($.buffer),X=F.getUint32(J,W===1);J+=4;let S;if(X&536870912)S=F.getUint32(J,W===1),J+=4;if((X&65535)===1){let Y=S5($,J);J+=8;let A=S5($,J);return J+=8,[Y,A]}throw new Error("Unsupported geometry type")}class Y5 extends n{static[z]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new A5(T,this.config)}}class A5 extends q{static[z]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return F4(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class w5 extends n{static[z]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new G5(T,this.config)}}class G5 extends q{static[z]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=F4(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function M5(T,$){let{name:J,config:W}=wT(T,$);if(!W?.mode||W.mode==="tuple")return new Y5(J);return new w5(J)}class H5 extends n{static[z]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new O5(T,this.config)}}class O5 extends q{static[z]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function z5(T){return new H5(T??"")}class K5 extends n{static[z]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new f5(T,this.config)}}class f5 extends q{static[z]="PgSerial";getSQLType(){return"serial"}}function D5(T){return new K5(T??"")}class Q5 extends lJ{static[z]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new E5(T,this.config)}}class E5 extends q{static[z]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function R5(T){return new Q5(T??"")}class U5 extends n{static[z]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new _5(T,this.config)}}class _5 extends q{static[z]="PgSmallSerial";getSQLType(){return"smallserial"}}function k5(T){return new U5(T??"")}class V5 extends n{static[z]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new B5(T,this.config)}}class B5 extends q{static[z]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function L5(T,$={}){let{name:J,config:W}=wT(T,$);return new V5(J,W)}class y5 extends jJ{constructor(T,$,J){super(T,"string","PgTime");this.withTimezone=$,this.precision=J,this.config.withTimezone=$,this.config.precision=J}static[z]="PgTimeBuilder";build(T){return new hX(T,this.config)}}class hX extends q{static[z]="PgTime";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function N5(T,$={}){let{name:J,config:W}=wT(T,$);return new y5(J,W.withTimezone??!1,W.precision)}class C5 extends jJ{static[z]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new mX(T,this.config)}}class mX extends q{static[z]="PgTimestamp";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class x5 extends jJ{static[z]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new gX(T,this.config)}}class gX extends q{static[z]="PgTimestampString";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function WJ(T,$={}){let{name:J,config:W}=wT(T,$);if(W?.mode==="string")return new x5(J,W.withTimezone??!1,W.precision);return new C5(J,W?.withTimezone??!1,W?.precision)}class j5 extends n{static[z]="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[z]="PgUUID";getSQLType(){return"uuid"}}function P$(T){return new j5(T??"")}class Z5 extends n{static[z]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new q5(T,this.config)}}class q5 extends q{static[z]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function Y$(T,$={}){let{name:J,config:W}=wT(T,$);return new Z5(J,W)}class I5 extends n{static[z]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new b5(T,this.config)}}class b5 extends q{static[z]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function v5(T,$){let{name:J,config:W}=wT(T,$);return new I5(J,W)}class P5 extends n{static[z]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new h5(T,this.config)}}class h5 extends q{static[z]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function m5(T,$){let{name:J,config:W}=wT(T,$);return new P5(J,W)}class g5 extends n{static[z]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new c5(T,this.config)}}class c5 extends q{static[z]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function n5(T,$){let{name:J,config:W}=wT(T,$);return new g5(J,W)}class p5 extends n{static[z]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new o5(T,this.config)}}class o5 extends q{static[z]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function d5(T,$){let{name:J,config:W}=wT(T,$);return new p5(J,W)}function u5(){return{bigint:W9,bigserial:A9,boolean:$F,char:O9,cidr:f9,customType:E9,date:_9,doublePrecision:B9,inet:N9,integer:IX,interval:q9,json:b9,jsonb:P9,line:n9,macaddr:d9,macaddr8:t9,numeric:T5,point:X5,geometry:M5,real:z5,serial:D5,smallint:R5,smallserial:k5,text:L5,time:N5,timestamp:WJ,uuid:P$,varchar:Y$,bit:v5,halfvec:m5,sparsevec:n5,vector:d5}}var X4=Symbol.for("drizzle:PgInlineForeignKeys"),i5=Symbol.for("drizzle:EnableRLS");class A$ extends h{static[z]="PgTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:X4,EnableRLS:i5});[X4]=[];[i5]=!1;[h.Symbol.ExtraConfigBuilder]=void 0;[h.Symbol.ExtraConfigColumns]={}}function rH(T,$,J,W,F=T){let X=new A$(T,W,F),S=typeof $==="function"?$(u5()):$,Y=Object.fromEntries(Object.entries(S).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(S).map(([G,M])=>{let H=M;H.setName(G);let f=H.buildExtraConfigColumn(X);return[G,f]})),w=Object.assign(X,Y);if(w[h.Symbol.Columns]=Y,w[h.Symbol.ExtraConfigColumns]=A,J)w[A$.Symbol.ExtraConfigBuilder]=J;return Object.assign(w,{enableRLS:()=>{return w[A$.Symbol.EnableRLS]=!0,w}})}var rJ=(T,$,J)=>{return rH(T,$,J,void 0)};function t5(...T){if(T[0].columns)return new JF(T[0].columns,T[0].name);return new JF(T)}class JF{static[z]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new l5(T,this.columns,this.name)}}class l5{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[z]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[A$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class S4{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[h.Symbol.Name]}static[z]="Relation";referencedTableName;fieldName}class r5{constructor(T,$){this.table=T,this.config=$}static[z]="Relations"}class aJ extends S4{constructor(T,$,J,W){super(T,$,J?.relationName);this.config=J,this.isNullable=W}static[z]="One";withFieldName(T){let $=new aJ(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class WF extends S4{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[z]="Many";withFieldName(T){let $=new WF(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function a5(){return{and:eW,between:g7,eq:CX,exists:h7,gt:xX,gte:j7,ilike:o7,inArray:I7,isNull:v7,isNotNull:P7,like:n7,lt:Z7,lte:q7,ne:N7,not:x7,notBetween:c7,notExists:m7,notLike:p7,notIlike:d7,notInArray:b7,or:C7,sql:K}}function s5(){return{sql:K,asc:u7,desc:i7}}function e5(T,$){if(Object.keys(T).length===1&&"default"in T&&!_(T.default,h))T=T.default;let J={},W={},F={};for(let[X,S]of Object.entries(T))if(_(S,h)){let Y=q0(S),A=W[Y];J[Y]=X,F[X]={tsName:X,dbName:S[h.Symbol.Name],schema:S[h.Symbol.Schema],columns:S[h.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let G of Object.values(S[h.Symbol.Columns]))if(G.primary)F[X].primaryKey.push(G);let w=S[h.Symbol.ExtraConfigBuilder]?.(S[h.Symbol.ExtraConfigColumns]);if(w){for(let G of Object.values(w))if(_(G,JF))F[X].primaryKey.push(...G.columns)}}else if(_(S,r5)){let Y=q0(S.table),A=J[Y],w=S.config($(S.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(!(Y in W))W[Y]={relations:{},primaryKey:G};W[Y].relations[M]=H}}return{tables:F,tableNamesMap:J}}function aH(T){return function $(J,W){return new aJ(T,J,W,W?.fields.reduce((F,X)=>F&&X.notNull,!0)??!1)}}function sH(T){return function $(J,W){return new WF(T,J,W)}}function TA(T,$,J){if(_(J,aJ)&&J.config)return{fields:J.config.fields,references:J.config.references};let W=$[q0(J.referencedTable)];if(!W)throw new Error(`Table "${J.referencedTable[h.Symbol.Name]}" not found in schema`);let F=T[W];if(!F)throw new Error(`Table "${W}" not found in schema`);let X=J.sourceTable,S=$[q0(X)];if(!S)throw new Error(`Table "${X[h.Symbol.Name]}" not found in schema`);let Y=[];for(let A of Object.values(F.relations))if(J.relationName&&J!==A&&A.relationName===J.relationName||!J.relationName&&A.referencedTable===J.sourceTable)Y.push(A);if(Y.length>1)throw J.relationName?new Error(`There are multiple relations with name "${J.relationName}" in table "${W}"`):new Error(`There are multiple relations between "${W}" and "${J.sourceTable[h.Symbol.Name]}". Please specify relation name`);if(Y[0]&&_(Y[0],aJ)&&Y[0].config)return{fields:Y[0].config.references,references:Y[0].config.fields};throw new Error(`There is not enough information to infer relation "${S}.${J.fieldName}"`)}function $A(T){return{one:aH(T),many:sH(T)}}function nX(T,$,J,W,F=(X)=>X){let X={};for(let[S,Y]of W.entries())if(Y.isJson){let A=$.relations[Y.tsKey],w=J[S],G=typeof w==="string"?JSON.parse(w):w;X[Y.tsKey]=_(A,aJ)?G&&nX(T,T[Y.relationTableTsKey],G,Y.selection,F):G.map((M)=>nX(T,T[Y.relationTableTsKey],M,Y.selection,F))}else{let A=F(J[S]),w=Y.field,G;if(_(w,BT))G=w;else if(_(w,g))G=w.decoder;else G=w.sql.decoder;X[Y.tsKey]=A===null?null:G.mapFromDriverValue(A)}return X}import t3 from"node:path";import _3 from"node:os";import k3 from"node:fs";var pX=new Map,Y4=new Map,A4=Symbol("OriginError"),v1={};class d$ extends Promise{constructor(T,$,J,W,F={}){let X,S;super((Y,A)=>{X=Y,S=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=W,this.options=F,this.state=null,this.statement=null,this.resolve=(Y)=>(this.active=!1,X(Y)),this.reject=(Y)=>(this.active=!1,S(Y)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[A4]=this.handler.debug?new Error:this.tagged&&eH(this.strings)}get origin(){return(this.handler.debug?this[A4].stack:this.tagged&&Y4.has(this.strings)?Y4.get(this.strings):Y4.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=(S)=>{return F({value:S,done:!1}),new Promise((Y)=>J=Y)},this.resolve=()=>(this.active=!1,F({done:!0})),this.reject=(S)=>(this.active=!1,X(S))});return this.execute(),W},return(){return J&&J(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 eH(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:JA,postgres:WA,generic:FA,notSupported:XA};function JA(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,JA),X}function WA(T){let $=new P1(T);return Error.captureStackTrace($,WA),$}function FA(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,FA),J}function XA(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,XA),$}var T3={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 YF extends uX{constructor(T){super();this.value=lX(T)}}class zJ extends uX{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class iX extends uX{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,W){let F=$3.map(([X,S])=>({fn:S,i:T.search(X)})).sort((X,S)=>X.i-S.i).pop();return F.i===-1?z4(this.first,W):F.fn(this.first,this.rest,$,J,W)}}function tX(T,$,J,W){let F=T instanceof zJ?T.value:T;if(F===void 0){if(T instanceof zJ?T.value=W.transform.undefined:F=T=W.transform.undefined,F===void 0)throw oT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof zJ?($.push(T.value),T.array?T.array[T.type||dX(T.value)]||T.type||wA(T.value):T.type):($.push(T),dX(T)))}var YA=MA(T3);function H4(T,$,J,W,F,X){for(let S=1;S<T.strings.length;S++)$+=O4($,J,W,F,X)+T.strings[S],J=T.args[S];return $}function O4(T,$,J,W,F){return $ instanceof iX?$.build(T,J,W,F):$ instanceof d$?M4($,J,W,F):$ instanceof YF?$.value:$&&$[0]instanceof d$?$.reduce((X,S)=>X+" "+M4(S,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 AA(T,$,J,W,F){return T.map((X)=>"("+W.map((S)=>O4("values",X[S],$,J,F)).join(",")+")").join(",")}function SA(T,$,J,W,F){let X=Array.isArray(T[0]),S=$.length?$.flat():Object.keys(X?T[0]:T);return AA(X?T:[T],J,W,S,F)}function oX(T,$,J,W,F){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return z4(T,F);let X;return($.length?$.flat():Object.keys(T)).map((Y)=>{return X=T[Y],(X instanceof d$?M4(X,J,W,F):X instanceof YF?X.value:tX(X,J,W,F))+" as "+lX(F.transform.column.to?F.transform.column.to(Y):Y)}).join(",")}var $3=Object.entries({values:SA,in:(...T)=>{let $=SA(...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)+"="+O4("values",T[X],J,W,F))},insert(T,$,J,W,F){let X=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+z4(X,F)+")values"+AA(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:J3,parsers:W3}=YA;function wA(T){if(Array.isArray(T))return wA(T[0]);return typeof T==="string"?1009:0}var GA=function(T){let $=MA(T||{});return{serializers:Object.assign({},J3,$.serializers),parsers:Object.assign({},W3,$.parsers)}};function MA(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 z4(T,{transform:{column:$}}){return T.map((J)=>lX($.to?$.to(J):J)).join(",")}var lX=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},dX=function T($){return $ instanceof zJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},F3=/\\/g,X3=/"/g;function S3(T){return T.replace(F3,"\\\\").replace(X3,"\\\"")}var HA=function T($,J,W,F){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let X=$[0],S=F===1020?";":",";if(Array.isArray(X)&&!X.type)return"{"+$.map((Y)=>T(Y,J,W,F)).join(S)+"}";return"{"+$.map((Y)=>{if(Y===void 0){if(Y=W.transform.undefined,Y===void 0)throw oT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return Y===null?"null":'"'+S3(J?J(Y.type?Y.value:Y):""+Y)+'"'}).join(S)+"}"},G4={i:0,char:null,str:"",quoted:!1,last:0},OA=function T($,J,W){return G4.i=G4.last=0,zA(G4,$,J,W)};function zA(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(zA(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 I0=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},b0=(T)=>{let $=T[0].toUpperCase();for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},v0=(T)=>T.replace(/_/g,"-"),FF=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),XF=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),SF=(T)=>T.replace(/-/g,"_");function 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,S])=>Object.assign(F,{[T(X)]:$(S,W)}),{}):J}}I0.column={from:I0};I0.value={from:K4(I0)};FF.column={to:FF};var f4={...I0};f4.column.to=FF;b0.column={from:b0};b0.value={from:K4(b0)};XF.column={to:XF};var D4={...b0};D4.column.to=XF;v0.column={from:v0};v0.value={from:K4(v0)};SF.column={to:SF};var Q4={...v0};Q4.column.to=SF;import KA from"node:net";import G3 from"node:tls";import AF from"node:crypto";import E4 from"node:stream";import{performance as fA}from"node:perf_hooks";class P0 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$=Y3;function Y3(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),A3="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return f$[0]=J,UT.i=5,UT},T},{}),UT=Object.assign(w3,A3,{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 w3(){return UT.i=0,UT}var _4=EA,M3=1,sJ=t().S().end(),DA=t().H().end(),H3=t().i32(8).i32(80877103).end(8),O3=Buffer.concat([t().E().str(t.N).i32(0).end(),sJ]),z3=t().D().str("S").str(t.N).end(),h1=()=>{},K3=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),f3={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 EA(T,$={},{onopen:J=h1,onend:W=h1,onclose:F=h1}={}){let{ssl:X,max:S,user:Y,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=M3++,B={pid:null,secret:null},k=U4(G2,T.idle_timeout),b=U4(G2,T.max_lifetime),r=U4(lA,T.connect_timeout),U=null,e,p=new P0,$T=Buffer.alloc(0),DT=T.fetch_types,PT={},_$={},KJ=Math.random().toString(36).slice(2),N=1,i=0,zT=0,qT=0,dT=0,ST=0,yT=0,cT=0,IT=null,xT=null,w$=!1,NT=null,u$=null,G$=null,IJ=null,uT=null,jT=null,i$=null,FJ=null,I=null,n1=null,M$={queue:$.closed,idleTimer:k,connect(O){G$=O||!0,l4()},terminate:o1,execute:p1,cancel:dA,end:G2,count:0,id:V};return $.closed&&$.closed.push(M$),M$;async function oA(){let O;try{O=T.socket?await Promise.resolve(T.socket(T)):new KA.Socket}catch(Q){c0(Q);return}return O.on("error",c0),O.on("close",r4),O.on("drain",i4),O}async function dA({pid:O,secret:Q},l,KT){try{e=t().i32(16).i32(80877102).i32(O).i32(Q).end(16),await t4(),U.once("error",KT),U.once("close",l)}catch(hT){KT(hT)}}function p1(O){if(w$)return KF(O,oT.connection("CONNECTION_DESTROYED",T));if(O.cancelled)return;try{return O.state=B,I?E.push(O):(I=O,I.active=!0),tA(O),F$(uA(O))&&!O.describeFirst&&!O.cursorFn&&E.length<y&&(!O.options.onexecute||O.options.onexecute(M$))}catch(Q){return E.length===0&&F$(sJ),XJ(Q),!0}}function uA(O){if(O.parameters.length>=65534)throw oT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return O.options.simple?t().Q().str(O.statement.string+t.N).end():O.describeFirst?Buffer.concat([o4(O),DA]):O.prepare?O.prepared?zF(O):Buffer.concat([o4(O),zF(O)]):iA(O)}function o4(O){return Buffer.concat([s4(O.statement.string,O.parameters,O.statement.types,O.statement.name),qw("S",O.statement.name)])}function zF(O){return Buffer.concat([Zw(O.parameters,O.statement.types,O.statement.name,O.cursorName),O.cursorFn?e4("",O.cursorRows):O3])}function iA(O){return Buffer.concat([s4(O.statement.string,O.parameters,O.statement.types),z3,zF(O)])}function tA(O){let Q=[],l=[],KT=H4(O,O.strings[0],O.args[0],Q,l,T);!O.tagged&&O.args.forEach((hT)=>tX(hT,Q,l,T)),O.prepare=T.prepare&&("prepare"in O.options?O.options.prepare:!0),O.string=KT,O.signature=O.prepare&&l+KT,O.onlyDescribe&&delete _$[O.signature],O.parameters=O.parameters||Q,O.prepared=O.prepare&&O.signature in _$,O.describeFirst=O.onlyDescribe||Q.length&&!O.prepared,O.statement=O.prepared?_$[O.signature]:{string:KT,types:l,name:O.prepare?KJ+N++:""},typeof T.debug==="function"&&T.debug(V,KT,Q,l)}function F$(O,Q){if(jT=jT?Buffer.concat([jT,O]):Buffer.from(O),Q||jT.length>=1024)return d4(Q);return xT===null&&(xT=setImmediate(d4)),!0}function d4(O){let Q=U.write(jT,O);return xT!==null&&clearImmediate(xT),jT=xT=null,Q}function lA(){XJ(oT.connection("CONNECT_TIMEOUT",T,U)),U.destroy()}async function u4(){if(F$(H3),!await new Promise((Q)=>U.once("data",(l)=>Q(l[0]===83)))&&X==="prefer")return g0();U.removeAllListeners(),U=G3.connect({socket:U,servername:KA.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",g0),U.on("error",c0),U.on("close",r4),U.on("drain",i4)}function i4(){!I&&J(M$)}function w2(O){if(NT){if(NT.push(O),zT-=O.length,zT>=0)return}$T=NT?Buffer.concat(NT,ST-zT):$T.length===0?O:Buffer.concat([$T,O],$T.length+O.length);while($T.length>4){if(ST=$T.readUInt32BE(1),ST>=$T.length){zT=ST-$T.length,NT=[$T];break}try{rA($T.subarray(0,ST+1))}catch(Q){I&&(I.cursorFn||I.describeFirst)&&F$(sJ),XJ(Q)}$T=$T.subarray(ST+1),zT=0,NT=null}}async function t4(){if(w$=!1,PT={},U||(U=await oA()),!U)return;if(r.start(),T.socket)return X?u4():g0();if(U.on("connect",X?u4:g0),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-fA.now():0)}function g0(){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 O=bw();F$(O)}catch(O){c0(O)}}function c0(O){if(M$.queue===$.connecting&&T.host[dT+1])return;XJ(O);while(E.length)KF(E.shift(),O)}function XJ(O){uT&&(uT.destroy(O),uT=null),I&&KF(I,O),G$&&(KF(G$,O),G$=null)}function KF(O,Q){"query"in Q||"parameters"in Q||Object.defineProperties(Q,{stack:{value:Q.stack+O.origin.replace(/.*\n/,`
|
|
68
|
+
`),enumerable:T.debug},query:{value:O.string,enumerable:T.debug},parameters:{value:O.parameters,enumerable:T.debug},args:{value:O.args,enumerable:T.debug},types:{value:O.statement&&O.statement.types,enumerable:T.debug}}),O.reject(Q)}function G2(){return IJ||(!M$.reserved&&W(M$),!M$.reserved&&!G$&&!I&&E.length===0?(o1(),new Promise((O)=>U&&U.readyState!=="closed"?U.once("close",O):O())):IJ=new Promise((O)=>i$=O))}function o1(){if(w$=!0,uT||I||G$||E.length)c0(oT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(xT),U)U.removeListener("data",w2),U.removeListener("connect",g0),U.readyState==="open"&&U.end(t().X().end());i$&&(i$(),IJ=i$=null)}async function r4(O){if($T=Buffer.alloc(0),zT=0,NT=null,clearImmediate(xT),U.removeListener("data",w2),U.removeListener("connect",g0),k.cancel(),b.cancel(),r.cancel(),U.removeAllListeners(),U=null,G$)return l4();!O&&(I||E.length)&&c0(oT.connection("CONNECTION_CLOSED",T,U)),i=fA.now(),O&&T.shared.retries++,yT=(typeof L==="function"?L(T.shared.retries):L)*1000,F(M$,oT.connection("CONNECTION_CLOSED",T,U))}function rA(O,Q=O[0]){(Q===68?aA:Q===100?Vw:Q===65?Qw:Q===83?sA:Q===90?eA:Q===67?Tw:Q===50?a4:Q===49?$w:Q===116?Jw:Q===84?Ww:Q===82?Fw:Q===110?Gw:Q===75?Mw:Q===69?fw:Q===115?Ew:Q===51?Rw:Q===71?Uw:Q===78?Lw:Q===72?_w:Q===99?Bw:Q===73?yw:Q===86?Nw:Q===118?Cw:Q===87?kw:xw)(O)}function aA(O){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=O.readInt32BE(Q),Q+=4,hT=l===-1?null:I.isRaw===!0?O.subarray(Q,Q+=l):KT.parser===void 0?O.toString("utf8",Q,Q+=l):KT.parser.array===!0?KT.parser(O.toString("utf8",Q+1,Q+=l)):KT.parser(O.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 sA(O){let[Q,l]=O.toString("utf8",5,O.length-1).split(t.N);if(PT[Q]=l,T.parameters[Q]!==l)T.parameters[Q]=l,R&&R(Q,l)}function eA(O){if(I&&I.options.simple&&I.resolve(u$||p),I=u$=null,p=new P0,r.cancel(),G$){if(Z){if(!PT.in_hot_standby||!PT.default_transaction_read_only)return Kw();else if(zw(Z,PT))return o1()}if(DT)return G$===!0&&(G$=null),Hw();G$!==!0&&p1(G$),T.shared.retries=dT=0,G$=null;return}while(E.length&&(I=E.shift())&&(I.active=!0,I.cancelled))EA(T).cancel(I.state,I.cancelled.resolve,I.cancelled.reject);if(I)return;M$.reserved?!M$.reserved.release&&O[5]===73?IJ?o1():(M$.reserved=null,J(M$)):M$.reserved():IJ?o1():J(M$)}function Tw(O){cT=0;for(let Q=O.length-1;Q>0;Q--){if(O[Q]===32&&O[Q+1]<58&&p.count===null)p.count=+O.toString("utf8",Q+1,O.length-1);if(O[Q-1]>=65){p.command=O.toString("utf8",5,Q),p.state=B;break}}if(n1&&(n1(),n1=null),p.command==="BEGIN"&&S!==1&&!M$.reserved)return XJ(oT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(I.options.simple)return a4();if(I.cursorFn)p.count&&I.cursorFn(p),F$(sJ);I.resolve(p)}function $w(){I.parsing=!1}function a4(){!p.statement&&(p.statement=I.statement),p.columns=I.statement.columns}function Jw(O){let Q=O.readUInt16BE(5);for(let l=0;l<Q;++l)!I.statement.types[l]&&(I.statement.types[l]=O.readUInt32BE(7+l*4));I.prepare&&(_$[I.signature]=I.statement),I.describeFirst&&!I.onlyDescribe&&(F$(zF(I)),I.describeFirst=!1)}function Ww(O){if(p.command)u$=u$||[p],u$.push(p=new P0),p.count=null,I.statement.columns=null;let Q=O.readUInt16BE(5),l=7,KT;I.statement.columns=Array(Q);for(let hT=0;hT<Q;++hT){KT=l;while(O[l++]!==0);let H$=O.readUInt32BE(l),D$=O.readUInt16BE(l+4),bJ=O.readUInt32BE(l+6);I.statement.columns[hT]={name:H.column.from?H.column.from(O.toString("utf8",KT,l-1)):O.toString("utf8",KT,l-1),parser:M[bJ],table:H$,number:D$,type:bJ},l+=18}if(p.statement=I.statement,I.onlyDescribe)return I.resolve(I.statement),F$(sJ)}async function Fw(O,Q=O.readUInt32BE(5)){(Q===3?Xw:Q===5?Sw:Q===10?Yw:Q===11?Aw:Q===12?ww:Q!==0?jw:h1)(O,Q)}async function Xw(){let O=await M2();F$(t().p().str(O).z(1).end())}async function Sw(O){let Q="md5"+await QA(Buffer.concat([Buffer.from(await QA(await M2()+Y)),O.subarray(9)]));F$(t().p().str(Q).z(1).end())}async function Yw(){FJ=(await AF.randomBytes(18)).toString("base64"),t().p().str("SCRAM-SHA-256"+t.N);let O=t.i;F$(t.inc(4).str("n,,n=*,r="+FJ).i32(t.i-O-4,O).end())}async function Aw(O){let Q=O.toString("utf8",9).split(",").reduce((D$,bJ)=>(D$[bJ[0]]=bJ.slice(2),D$),{}),l=await AF.pbkdf2Sync(await M2(),Buffer.from(Q.s,"base64"),parseInt(Q.i),32,"sha256"),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="+Q3(KT,Buffer.from(await aX(await D3(KT),hT))).toString("base64");F$(t().p().str(H$).end())}function ww(O){if(O.toString("utf8",9).split(t.N,1)[0].slice(2)===IT)return;XJ(oT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),U.destroy()}function M2(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function Gw(){if(p.statement=I.statement,p.statement.columns=[],I.onlyDescribe)return I.resolve(I.statement),F$(sJ)}function Mw(O){B.pid=O.readUInt32BE(5),B.secret=O.readUInt32BE(9)}async function Hw(){DT=!1,(await new d$([`
|
|
69
69
|
select b.oid, b.typarray
|
|
70
70
|
from pg_catalog.pg_type a
|
|
71
71
|
left join pg_catalog.pg_type b on b.oid = a.typelem
|
|
72
72
|
where a.typcategory = 'A'
|
|
73
73
|
group by b.oid, b.typarray
|
|
74
74
|
order by b.oid
|
|
75
|
-
`],[],
|
|
75
|
+
`],[],p1)).forEach(({oid:Q,typarray:l})=>Ow(Q,l))}function Ow(O,Q){if(!!T.parsers[Q]&&!!T.serializers[Q])return;let l=T.parsers[O];T.shared.typeArrayMap[O]=Q,T.parsers[Q]=(KT)=>OA(KT,l,Q),T.parsers[Q].array=!0,T.serializers[Q]=(KT)=>HA(KT,T.serializers[O],T,Q)}function zw(O,Q){return O==="read-write"&&Q.default_transaction_read_only==="on"||O==="read-only"&&Q.default_transaction_read_only==="off"||O==="primary"&&Q.in_hot_standby==="on"||O==="standby"&&Q.in_hot_standby==="off"||O==="prefer-standby"&&Q.in_hot_standby==="off"&&T.host[dT]}function Kw(){let O=new d$([`
|
|
76
76
|
show transaction_read_only;
|
|
77
77
|
select pg_catalog.pg_is_in_recovery()
|
|
78
|
-
`],[],
|
|
78
|
+
`],[],p1,null,{simple:!0});O.resolve=([[Q],[l]])=>{PT.default_transaction_read_only=Q.transaction_read_only,PT.in_hot_standby=l.pg_is_in_recovery?"on":"off"},O.execute()}function fw(O){I&&(I.cursorFn||I.describeFirst)&&F$(sJ);let Q=oT.postgres(R4(O));I&&I.retried?XJ(I.retried):I&&I.prepared&&K3.has(Q.routine)?Dw(I,Q):XJ(Q)}function Dw(O,Q){delete _$[O.signature],O.retried=Q,p1(O)}function Qw(O){if(!D)return;let Q=9;while(O[Q++]!==0);D(O.toString("utf8",9,Q-1),O.toString("utf8",Q,O.length-1))}async function Ew(){try{let O=await Promise.resolve(I.cursorFn(p));cT=0,O===v1?F$(Iw(I.portal)):(p=new P0,F$(e4("",I.cursorRows)))}catch(O){F$(sJ),I.reject(O)}}function Rw(){p.count&&I.cursorFn(p),I.resolve(p)}function Uw(){uT=new E4.Writable({autoDestroy:!0,write(O,Q,l){U.write(t().d().raw(O).end(),l)},destroy(O,Q){Q(O),U.write(t().f().str(O+t.N).end()),uT=null},final(O){U.write(t().c().end()),n1=O}}),I.resolve(uT)}function _w(){uT=new E4.Readable({read(){U.resume()}}),I.resolve(uT)}function kw(){uT=new E4.Duplex({autoDestroy:!0,read(){U.resume()},write(O,Q,l){U.write(t().d().raw(O).end(),l)},destroy(O,Q){Q(O),U.write(t().f().str(O+t.N).end()),uT=null},final(O){U.write(t().c().end()),n1=O}}),I.resolve(uT)}function Vw(O){uT&&(uT.push(O.subarray(5))||U.pause())}function Bw(){uT&&uT.push(null),uT=null}function Lw(O){f?f(R4(O)):console.log(R4(O))}function yw(){}function Nw(){XJ(oT.notSupported("FunctionCallResponse"))}function Cw(){XJ(oT.notSupported("NegotiateProtocolVersion"))}function xw(O){console.error("Postgres.js : Unknown Message:",O[0])}function jw(O,Q){console.error("Postgres.js : Unknown Auth:",Q)}function Zw(O,Q,l="",KT=""){let hT,H$;return t().B().str(KT+t.N).str(l+t.N).i16(0).i16(O.length),O.forEach((D$,bJ)=>{if(D$===null)return t.i32(4294967295);H$=Q[bJ],O[bJ]=D$=H$ in T.serializers?T.serializers[H$](D$):""+D$,hT=t.i,t.inc(4).str(D$).i32(t.i-hT-4,hT)}),t.i16(0),t.end()}function s4(O,Q,l,KT=""){return t().P().str(KT+t.N).str(O+t.N).i16(Q.length),Q.forEach((hT,H$)=>t.i32(l[H$]||0)),t.end()}function qw(O,Q=""){return t().D().str(O).str(Q+t.N).end()}function e4(O="",Q=0){return Buffer.concat([t().E().str(O+t.N).i32(Q).end(),DA])}function Iw(O=""){return Buffer.concat([t().C().str("P").str(O+t.N).end(),t().S().end()])}function bw(){return e||t().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:Y,database:G,client_encoding:"UTF8"},T.connection)).filter(([,O])=>O).map(([O,Q])=>O+t.N+Q).join(t.N)).z(2).end(0)}}function R4(T){let $={},J=5;for(let W=5;W<T.length-1;W++)if(T[W]===0)$[f3[T[J]]]=T.toString("utf8",J+1,W),J=W+1;return $}function QA(T){return AF.createHash("md5").update(T).digest("hex")}function aX(T,$){return AF.createHmac("sha256",T).update($).digest()}function D3(T){return AF.createHash("sha256").update(T).digest()}function Q3(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 RA=()=>{};function k4(T,$){let J=new Map,W="postgresjs_"+Math.random().toString(36).slice(2),F={},X,S,Y=!1,A=M.sql=T({...$,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...$.connection,replication:"database"},onclose:async function(){if(Y)return;S=null,F.pid=F.secret=void 0,H(await 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 Y=!0,S&&await new Promise((R)=>(S.once("close",R),S.end())),w()},A.close=async()=>{return S&&await new Promise((R)=>(S.once("close",R),S.end())),G()},M;async function M(R,y,j=RA,L=RA){if(R=U3(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(),S&&S.on("error",L),{unsubscribe:V,state:F,sql:A}})}function H(R){S=R.stream,F.pid=R.state.pid,F.secret=R.state.secret}async function 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)R3(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 E3(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function R3(T,$,J,W,F){let X=(S,[Y,A])=>(S[Y.charCodeAt(0)]=A,S);Object.entries({R:(S)=>{let Y=1,A=$[S.readUInt32BE(Y)]={schema:S.toString("utf8",Y+=4,Y=S.indexOf(0,Y))||"pg_catalog",table:S.toString("utf8",Y+1,Y=S.indexOf(0,Y+1)),columns:Array(S.readUInt16BE(Y+=2)),keys:[]};Y+=2;let w=0,G;while(Y<S.length)G=A.columns[w++]={key:S[Y++],name:F.column.from?F.column.from(S.toString("utf8",Y,Y=S.indexOf(0,Y))):S.toString("utf8",Y,Y=S.indexOf(0,Y)),type:S.readUInt32BE(Y+=1),parser:J[S.readUInt32BE(Y)],atttypmod:S.readUInt32BE(Y+=4)},G.key&&A.keys.push(G),Y+=4},Y:()=>{},O:()=>{},B:(S)=>{$.date=E3(S.readBigInt64BE(9)),$.lsn=S.subarray(1,9)},I:(S)=>{let Y=1,A=$[S.readUInt32BE(Y)],{row:w}=sX(S,A.columns,Y+=7,F);W(w,{command:"insert",relation:A})},D:(S)=>{let Y=1,A=$[S.readUInt32BE(Y)];Y+=4;let w=S[Y]===75;W(w||S[Y]===79?sX(S,A.columns,Y+=3,F).row:null,{command:"delete",relation:A,key:w})},U:(S)=>{let Y=1,A=$[S.readUInt32BE(Y)];Y+=4;let w=S[Y]===75,G=w||S[Y]===79?sX(S,A.columns,Y+=3,F):null;G&&(Y=G.i);let{row:M}=sX(S,A.columns,Y+3,F);W(M,{command:"update",relation:A,key:w,old:G&&G.row})},T:()=>{},C:()=>{}}).reduce(X,{})[T[0]](T)}function sX(T,$,J,W){let F,X,S,Y=W.raw?new Array($.length):{};for(let A=0;A<$.length;A++)F=T[J++],X=$[A],S=F===110?null:F===117?void 0:X.parser===void 0?T.toString("utf8",J+4,J+=4+T.readUInt32BE(J)):X.parser.array===!0?X.parser(T.toString("utf8",J+5,J+=4+T.readUInt32BE(J))):X.parser(T.toString("utf8",J+4,J+=4+T.readUInt32BE(J))),W.raw?Y[A]=W.raw===!0?S:W.value.from?W.value.from(S,X):S:Y[X.name]=W.value.from?W.value.from(S,X):S;return{i:J,row:W.row.from?W.row.from(Y):Y}}function U3(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 UA from"node:stream";function V4(T,$,J=393216){return new Promise(async(W,F)=>{await T.begin(async(X)=>{let S;!$&&([{oid:$}]=await X`select lo_creat(-1) as oid`);let[{fd:Y}]=await X`select lo_open(${$}, ${J}) as fd`,A={writable:G,readable:w,close:()=>X`select lo_close(${Y})`.then(S),tell:()=>X`select lo_tell64(${Y})`,read:(M)=>X`select loread(${Y}, ${M}) as data`,write:(M)=>X`select lowrite(${Y}, ${M})`,truncate:(M)=>X`select lo_truncate64(${Y}, ${M})`,seek:(M,H=0)=>X`select lo_lseek64(${Y}, ${M}, ${H})`,size:()=>X`
|
|
79
79
|
select
|
|
80
|
-
lo_lseek64(${
|
|
80
|
+
lo_lseek64(${Y}, location, 0) as position,
|
|
81
81
|
seek.size
|
|
82
82
|
from (
|
|
83
83
|
select
|
|
@@ -85,18 +85,18 @@ ${W}`)}let X=$J.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(vT.
|
|
|
85
85
|
tell.location
|
|
86
86
|
from (select lo_tell64($1) as location) tell
|
|
87
87
|
) seek
|
|
88
|
-
`};return S(X),new Promise(async(Y)=>W=Y);async function w({highWaterMark:Y=16384,start:G=0,end:z=1/0}={}){let D=z-G;return G&&await X.seek(G),new l4.Readable({highWaterMark:Y,async read(_){let L=_>D?_-D:_;D-=_;let[{data:j}]=await X.read(L);if(this.push(j),j.length<_)this.push(null)}})}async function M({highWaterMark:Y=16384,start:G=0}={}){return G&&await X.seek(G),new l4.Writable({highWaterMark:Y,write(z,D,_){X.write(z).then(()=>_(),_)}})}}).catch(F)})}Object.assign(P1,{PostgresError:yF,toPascal:LS,pascal:T2,toCamel:yS,camel:eA,toKebab:NS,kebab:$2,fromPascal:d0,fromCamel:i0,fromKebab:u0,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var NF=P1;function P1(T,$){let J=tG(T,$),S=J.no_subscribe||W2(P1,{...J}),F=!1,f=v$(),W=v$(),A=v$(),X=v$(),w=v$(),M=v$(),Y=v$(),G=v$(),z={connecting:W,reserved:A,closed:X,ended:w,open:M,busy:Y,full:G},D=[...Array(J.max)].map(()=>f2(J,z,{onopen:k$,onend:hT,onclose:HJ})),_=L(h);return Object.assign(_,{get parameters(){return J.parameters},largeObject:A2.bind(null,_),subscribe:S,CLOSE:BF,END:BF,PostgresError:yF,options:J,reserve:I,listen:j,begin:Q,close:p,end:s}),_;function L(N){return N.debug=J.debug,Object.entries(J.types).reduce((fT,[BT,cT])=>{return fT[BT]=(ZT)=>new KJ(ZT,cT.to),fT},i),Object.assign(KT,{types:i,typed:i,unsafe:IT,notify:y,array:U,json:B,file:oT}),KT;function i(fT,BT){return new KJ(fT,BT)}function KT(fT,...BT){return fT&&Array.isArray(fT.raw)?new t$(fT,BT,N,R):typeof fT==="string"&&!BT.length?new l0(J.transform.column.to?J.transform.column.to(fT):fT):new Z1(fT,BT)}function IT(fT,BT=[],cT={}){return arguments.length===2&&!Array.isArray(BT)&&(cT=BT,BT=[]),new t$([fT],BT,N,R,{prepare:!1,...cT,simple:"simple"in cT?cT.simple:BT.length===0})}function oT(fT,BT=[],cT={}){return arguments.length===2&&!Array.isArray(BT)&&(cT=BT,BT=[]),new t$([],BT,(CT)=>{oG.readFile(fT,"utf8",(w$,yT)=>{if(w$)return CT.reject(w$);CT.strings=[yT],N(CT)})},R,{...cT,simple:"simple"in cT?cT.simple:BT.length===0})}}async function j(N,i,KT){let IT={fn:i,onlisten:KT},oT=j.sql||(j.sql=P1({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(j.channels).forEach(([CT,{listeners:w$}])=>{delete j.channels[CT],Promise.all(w$.map((yT)=>j(CT,yT.fn,yT.onlisten).catch(()=>{})))})},onnotify(CT,w$){CT in j.channels&&j.channels[CT].listeners.forEach((yT)=>yT.fn(w$))}})),fT=j.channels||(j.channels={});if(N in fT){fT[N].listeners.push(IT);let CT=await fT[N].result;return IT.onlisten&&IT.onlisten(),{state:CT.state,unlisten:ZT}}fT[N]={result:oT`listen ${oT.unsafe('"'+N.replace(/"/g,'""')+'"')}`,listeners:[IT]};let cT=await fT[N].result;return IT.onlisten&&IT.onlisten(),{state:cT.state,unlisten:ZT};async function ZT(){if(N in fT===!1)return;if(fT[N].listeners=fT[N].listeners.filter((CT)=>CT!==IT),fT[N].listeners.length)return;return delete fT[N],oT`unlisten ${oT.unsafe('"'+N.replace(/"/g,'""')+'"')}`}}async function y(N,i){return await _`select pg_notify(${N}, ${""+i})`}async function I(){let N=v$(),i=M.length?M.shift():await new Promise((oT)=>{f.push({reserve:oT}),X.length&&ET(X.shift())});V(i,A),i.reserved=()=>N.length?i.execute(N.shift()):V(i,A),i.reserved.release=!0;let KT=L(IT);return KT.release=()=>{i.reserved=null,k$(i)},KT;function IT(oT){i.queue===G?N.push(oT):i.execute(oT)||V(i,G)}}async function Q(N,i){!i&&(i=N,N="");let KT=v$(),IT=0,oT,fT=null;try{return await _.unsafe("begin "+N.replace(/[^a-z ]/ig,""),[],{onexecute:cT}).execute(),await Promise.race([BT(oT,i),new Promise((ZT,CT)=>oT.onclose=CT)])}catch(ZT){throw ZT}async function BT(ZT,CT,w$){let yT=L(tT);yT.savepoint=qJ,yT.prepare=(xT)=>fT=xT.replace(/[^a-z0-9$-_. ]/gi);let i$,M$;w$&&await yT`savepoint ${yT(w$)}`;try{if(M$=await new Promise((xT,d$)=>{let FJ=CT(yT);Promise.resolve(Array.isArray(FJ)?Promise.all(FJ):FJ).then(xT,d$)}),i$)throw i$}catch(xT){throw await(w$?yT`rollback to ${yT(w$)}`:yT`rollback`),xT instanceof yF&&xT.code==="25P02"&&i$||xT}if(!w$)fT?await yT`prepare transaction '${yT.unsafe(fT)}'`:await yT`commit`;return M$;function qJ(xT,d$){if(xT&&Array.isArray(xT.raw))return qJ((FJ)=>FJ.apply(FJ,arguments));return arguments.length===1&&(d$=xT,xT=null),BT(ZT,d$,"s"+IT+++(xT?"_"+xT:""))}function tT(xT){xT.catch((d$)=>i$||(i$=d$)),ZT.queue===G?KT.push(xT):ZT.execute(xT)||V(ZT,G)}}function cT(ZT){oT=ZT,V(ZT,A),ZT.reserved=()=>KT.length?ZT.execute(KT.shift()):V(ZT,A)}}function V(N,i){return N.queue.remove(N),i.push(N),N.queue=i,i===M?N.idleTimer.start():N.idleTimer.cancel(),N}function B(N){return new KJ(N,3802)}function U(N,i){if(!Array.isArray(N))return U(Array.from(arguments));return new KJ(N,i||(N.length?j1(N)||25:0),J.shared.typeArrayMap)}function h(N){if(F)return N.reject(pT.connection("CONNECTION_ENDED",J,J));if(M.length)return l(M.shift(),N);if(X.length)return ET(X.shift(),N);Y.length?l(Y.shift(),N):f.push(N)}function l(N,i){return N.execute(i)?V(N,Y):V(N,G)}function R(N){return new Promise((i,KT)=>{N.state?N.active?f2(J).cancel(N.state,i,KT):N.cancelled={resolve:i,reject:KT}:(f.remove(N),N.cancelled=!0,N.reject(pT.generic("57014","canceling statement due to user request")),i())})}async function s({timeout:N=null}={}){if(F)return F;await 1;let i;return F=Promise.race([new Promise((KT)=>N!==null&&(i=setTimeout($T,N*1000,KT))),Promise.all(D.map((KT)=>KT.end()).concat(j.sql?j.sql.end({timeout:0}):[],S.sql?S.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(f.length)f.shift().reject(pT.connection("CONNECTION_DESTROYED",J));N()}function ET(N,i){return V(N,W),N.connect(i),N}function hT(N){V(N,w)}function k$(N){if(f.length===0)return V(N,M);let i=Math.ceil(f.length/(W.length+1)),KT=!0;while(KT&&f.length&&i-- >0){let IT=f.shift();if(IT.reserve)return IT.reserve(N);KT=N.execute(IT)}KT?V(N,Y):V(N,G)}function HJ(N,i){V(N,X),N.reserved=null,N.onclose&&(N.onclose(i),N.onclose=null),J.onclose&&J.onclose(N.id),f.length&&ET(N,f.shift())}}function tG(T,$){if(T&&T.shared)return T;let J=process.env,S=(!T||typeof T==="string"?$:T)||{},{url:F,multihost:f}=rG(T),W=[...F.searchParams].reduce((G,[z,D])=>(G[z]=D,G),{}),A=S.hostname||S.host||f||F.hostname||J.PGHOST||"localhost",X=S.port||F.port||J.PGPORT||5432,w=S.user||S.username||F.username||J.PGUSERNAME||J.PGUSER||aG();S.no_prepare&&(S.prepare=!1),W.sslmode&&(W.ssl=W.sslmode,delete W.sslmode),"timeout"in S&&(console.log("The timeout option is deprecated, use idle_timeout instead"),S.idle_timeout=S.timeout),W.sslrootcert==="system"&&(W.ssl="verify-full");let M=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],Y={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:uG,max_pipeline:100,backoff:dG,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(A)?A:A.split(",").map((G)=>G.split(":")[0]),port:Array.isArray(X)?X:A.split(",").map((G)=>parseInt(G.split(":")[1]||X)),path:S.path||A.indexOf("/")>-1&&A+"/.s.PGSQL."+X,database:S.database||S.db||(F.pathname||"").slice(1)||J.PGDATABASE||w,user:w,pass:S.pass||S.password||F.password||J.PGPASSWORD||"",...Object.entries(Y).reduce((G,[z,D])=>{let _=z in S?S[z]:(z in W)?W[z]==="disable"||W[z]==="false"?!1:W[z]:J["PG"+z.toUpperCase()]||D;return G[z]=typeof _==="string"&&M.includes(z)?+_:_,G},{}),connection:{application_name:"postgres.js",...S.connection,...Object.entries(W).reduce((G,[z,D])=>((z in Y)||(G[z]=D),G),{})},types:S.types||{},target_session_attrs:iG(S,F,J),onnotice:S.onnotice,onnotify:S.onnotify,onclose:S.onclose,onparameter:S.onparameter,socket:S.socket,transform:lG(S.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...v4(S.types)}}function iG(T,$,J){let S=T.target_session_attrs||$.searchParams.get("target_session_attrs")||J.PGTARGETSESSIONATTRS;if(!S||["read-write","read-only","primary","standby","prefer-standby"].includes(S))return S;throw new Error("target_session_attrs "+S+" is not supported")}function dG(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function uG(){return 60*(30+Math.random()*30)}function lG(T){return{undefined:T.undefined,column:{from:typeof T.column==="function"?T.column:T.column&&T.column.from,to:T.column&&T.column.to},value:{from:typeof T.value==="function"?T.value:T.value&&T.value.from,to:T.value&&T.value.to},row:{from:typeof T.row==="function"?T.row:T.row&&T.row.from,to:T.row&&T.row.to}}}function rG(T){if(!T||typeof T!=="string")return{url:{searchParams:new Map}};let $=T;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let J=new URL(T.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(J.username),password:decodeURIComponent(J.password),host:J.host,hostname:J.hostname,port:J.port,pathname:J.pathname,searchParams:J.searchParams},multihost:$.indexOf(",")>-1&&$}}function aG(){try{return pG.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class PT{static[H]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===NT)return{...T[NT],selectedFields:new Proxy(T[NT].selectedFields,this)};if(typeof $==="symbol")return T[$];let S=(k(T,eT)?T._.selectedFields:k(T,y$)?T[NT].selectedFields:T)[$];if(k(S,P.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!S.isSelectionField)return S.sql;let F=S.clone();return F.isSelectionField=!0,F}if(k(S,P)){if(this.config.sqlBehavior==="sql")return S;throw new Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(k(S,UT)){if(this.config.alias)return new Proxy(S,new VF(new Proxy(S.table,new P0(this.config.alias,this.config.replaceOriginalName??!1))));return S}if(typeof S!=="object"||S===null)return S;return new Proxy(S,new PT(this.config))}}class n1 extends _${constructor(T,$,J,S){super();this.session=$,this.dialect=J,this.config={table:T,withList:S}}static[H]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[v.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=o$(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return VT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new PT({alias:S$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function sG(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function eG(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((J,S,F)=>{let f=F===0?S.toLowerCase():`${S[0].toUpperCase()}${S.slice(1)}`;return J+f},"")}function TK(T){return T}class X2{static[H]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?sG:T==="camelCase"?eG:TK}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[v.Symbol.Schema]??"public",J=T.table[v.Symbol.OriginalName],S=`${$}.${J}.${T.name}`;if(!this.cache[S])this.cacheTable(T.table);return this.cache[S]}cacheTable(T){let $=T[v.Symbol.Schema]??"public",J=T[v.Symbol.OriginalName],S=`${$}.${J}`;if(!this.cachedTables[S]){for(let F of Object.values(T[v.Symbol.Columns])){let f=`${S}.${F.name}`;this.cache[f]=this.convert(F.name)}this.cachedTables[S]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class a0 extends y${static[H]="PgViewBase"}class xS{static[H]="PgDialect";casing;constructor(T){this.casing=new X2(T?.casing)}async migrate(T,$,J){let S=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",F=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",f=O`
|
|
89
|
-
CREATE TABLE IF NOT EXISTS ${
|
|
88
|
+
`};return W(A),new Promise(async(M)=>S=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 UA.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 UA.Writable({highWaterMark:M,write(f,D,R){A.write(f).then(()=>R(),R)}})}}).catch(F)})}Object.assign(eX,{PostgresError:P1,toPascal:b0,pascal:D4,toCamel:I0,camel:f4,toKebab:v0,kebab:Q4,fromPascal:XF,fromCamel:FF,fromKebab:SF,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var m1=eX;function eX(T,$){let J=V3(T,$),W=J.no_subscribe||k4(eX,{...J}),F=!1,X=h$(),S=h$(),Y=h$(),A=h$(),w=h$(),G=h$(),M=h$(),H=h$(),f={connecting:S,reserved:Y,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((ST,[yT,cT])=>{return ST[yT]=(IT)=>new zJ(IT,cT.to),ST},i),Object.assign(zT,{types:i,typed:i,unsafe:qT,notify:L,array:k,json:B,file:dT}),zT;function i(ST,yT){return new zJ(ST,yT)}function zT(ST,...yT){return ST&&Array.isArray(ST.raw)?new d$(ST,yT,N,U):typeof ST==="string"&&!yT.length?new YF(J.transform.column.to?J.transform.column.to(ST):ST):new iX(ST,yT)}function qT(ST,yT=[],cT={}){return arguments.length===2&&!Array.isArray(yT)&&(cT=yT,yT=[]),new d$([ST],yT,N,U,{prepare:!1,...cT,simple:"simple"in cT?cT.simple:yT.length===0})}function dT(ST,yT=[],cT={}){return arguments.length===2&&!Array.isArray(yT)&&(cT=yT,yT=[]),new d$([],yT,(xT)=>{k3.readFile(ST,"utf8",(w$,NT)=>{if(w$)return xT.reject(w$);xT.strings=[NT],N(xT)})},U,{...cT,simple:"simple"in cT?cT.simple:yT.length===0})}}async function j(N,i,zT){let qT={fn:i,onlisten:zT},dT=j.sql||(j.sql=eX({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(j.channels).forEach(([xT,{listeners:w$}])=>{delete j.channels[xT],Promise.all(w$.map((NT)=>j(xT,NT.fn,NT.onlisten).catch(()=>{})))})},onnotify(xT,w$){xT in j.channels&&j.channels[xT].listeners.forEach((NT)=>NT.fn(w$))}})),ST=j.channels||(j.channels={});if(N in ST){ST[N].listeners.push(qT);let xT=await ST[N].result;return qT.onlisten&&qT.onlisten(),{state:xT.state,unlisten:IT}}ST[N]={result:dT`listen ${dT.unsafe('"'+N.replace(/"/g,'""')+'"')}`,listeners:[qT]};let cT=await ST[N].result;return qT.onlisten&&qT.onlisten(),{state:cT.state,unlisten:IT};async function IT(){if(N in ST===!1)return;if(ST[N].listeners=ST[N].listeners.filter((xT)=>xT!==qT),ST[N].listeners.length)return;return delete ST[N],dT`unlisten ${dT.unsafe('"'+N.replace(/"/g,'""')+'"')}`}}async function L(N,i){return await R`select pg_notify(${N}, ${""+i})`}async function Z(){let N=h$(),i=G.length?G.shift():await new Promise((dT)=>{X.push({reserve:dT}),A.length&&DT(A.shift())});V(i,Y),i.reserved=()=>N.length?i.execute(N.shift()):V(i,Y),i.reserved.release=!0;let zT=y(qT);return zT.release=()=>{i.reserved=null,_$(i)},zT;function qT(dT){i.queue===H?N.push(dT):i.execute(dT)||V(i,H)}}async function E(N,i){!i&&(i=N,N="");let zT=h$(),qT=0,dT,ST=null;try{return await R.unsafe("begin "+N.replace(/[^a-z ]/ig,""),[],{onexecute:cT}).execute(),await Promise.race([yT(dT,i),new Promise((IT,xT)=>dT.onclose=xT)])}catch(IT){throw IT}async function yT(IT,xT,w$){let NT=y(uT);NT.savepoint=IJ,NT.prepare=(jT)=>ST=jT.replace(/[^a-z0-9$-_. ]/gi);let u$,G$;w$&&await NT`savepoint ${NT(w$)}`;try{if(G$=await new Promise((jT,i$)=>{let FJ=xT(NT);Promise.resolve(Array.isArray(FJ)?Promise.all(FJ):FJ).then(jT,i$)}),u$)throw u$}catch(jT){throw await(w$?NT`rollback to ${NT(w$)}`:NT`rollback`),jT instanceof P1&&jT.code==="25P02"&&u$||jT}if(!w$)ST?await NT`prepare transaction '${NT.unsafe(ST)}'`:await NT`commit`;return G$;function IJ(jT,i$){if(jT&&Array.isArray(jT.raw))return IJ((FJ)=>FJ.apply(FJ,arguments));return arguments.length===1&&(i$=jT,jT=null),yT(IT,i$,"s"+qT+++(jT?"_"+jT:""))}function uT(jT){jT.catch((i$)=>u$||(u$=i$)),IT.queue===H?zT.push(jT):IT.execute(jT)||V(IT,H)}}function cT(IT){dT=IT,V(IT,Y),IT.reserved=()=>zT.length?IT.execute(zT.shift()):V(IT,Y)}}function V(N,i){return N.queue.remove(N),i.push(N),N.queue=i,i===G?N.idleTimer.start():N.idleTimer.cancel(),N}function B(N){return new zJ(N,3802)}function k(N,i){if(!Array.isArray(N))return k(Array.from(arguments));return new zJ(N,i||(N.length?dX(N)||25:0),J.shared.typeArrayMap)}function b(N){if(F)return N.reject(oT.connection("CONNECTION_ENDED",J,J));if(G.length)return r(G.shift(),N);if(A.length)return DT(A.shift(),N);M.length?r(M.shift(),N):X.push(N)}function r(N,i){return N.execute(i)?V(N,M):V(N,H)}function U(N){return new Promise((i,zT)=>{N.state?N.active?_4(J).cancel(N.state,i,zT):N.cancelled={resolve:i,reject:zT}:(X.remove(N),N.cancelled=!0,N.reject(oT.generic("57014","canceling statement due to user request")),i())})}async function e({timeout:N=null}={}){if(F)return F;await 1;let i;return F=Promise.race([new Promise((zT)=>N!==null&&(i=setTimeout($T,N*1000,zT))),Promise.all(D.map((zT)=>zT.end()).concat(j.sql?j.sql.end({timeout:0}):[],W.sql?W.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(i))}async function p(){await Promise.all(D.map((N)=>N.end()))}async function $T(N){await Promise.all(D.map((i)=>i.terminate()));while(X.length)X.shift().reject(oT.connection("CONNECTION_DESTROYED",J));N()}function DT(N,i){return V(N,S),N.connect(i),N}function PT(N){V(N,w)}function _$(N){if(X.length===0)return V(N,G);let i=Math.ceil(X.length/(S.length+1)),zT=!0;while(zT&&X.length&&i-- >0){let qT=X.shift();if(qT.reserve)return qT.reserve(N);zT=N.execute(qT)}zT?V(N,M):V(N,H)}function 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 V3(T,$){if(T&&T.shared)return T;let J=process.env,W=(!T||typeof T==="string"?$:T)||{},{url:F,multihost:X}=C3(T),S=[...F.searchParams].reduce((H,[f,D])=>(H[f]=D,H),{}),Y=W.hostname||W.host||X||F.hostname||J.PGHOST||"localhost",A=W.port||F.port||J.PGPORT||5432,w=W.user||W.username||F.username||J.PGUSERNAME||J.PGUSER||x3();W.no_prepare&&(W.prepare=!1),S.sslmode&&(S.ssl=S.sslmode,delete S.sslmode),"timeout"in W&&(console.log("The timeout option is deprecated, use idle_timeout instead"),W.idle_timeout=W.timeout),S.sslrootcert==="system"&&(S.ssl="verify-full");let G=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],M={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:y3,max_pipeline:100,backoff:L3,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(Y)?Y:Y.split(",").map((H)=>H.split(":")[0]),port:Array.isArray(A)?A:Y.split(",").map((H)=>parseInt(H.split(":")[1]||A)),path:W.path||Y.indexOf("/")>-1&&Y+"/.s.PGSQL."+A,database:W.database||W.db||(F.pathname||"").slice(1)||J.PGDATABASE||w,user:w,pass:W.pass||W.password||F.password||J.PGPASSWORD||"",...Object.entries(M).reduce((H,[f,D])=>{let R=f in W?W[f]:(f in S)?S[f]==="disable"||S[f]==="false"?!1:S[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(S).reduce((H,[f,D])=>((f in M)||(H[f]=D),H),{})},types:W.types||{},target_session_attrs:B3(W,F,J),onnotice:W.onnotice,onnotify:W.onnotify,onclose:W.onclose,onparameter:W.onparameter,socket:W.socket,transform:N3(W.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...GA(W.types)}}function B3(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 L3(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function y3(){return 60*(30+Math.random()*30)}function N3(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 C3(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 x3(){try{return _3.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class mT{static[z]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===CT)return{...T[CT],selectedFields:new Proxy(T[CT].selectedFields,this)};if(typeof $==="symbol")return T[$];let W=(_(T,eT)?T._.selectedFields:_(T,L$)?T[CT].selectedFields:T)[$];if(_(W,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[z]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[h.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=o$(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return LT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new mT({alias:W$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function j3(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function Z3(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 q3(T){return T}class B4{static[z]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?j3:T==="camelCase"?Z3:q3}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[h.Symbol.Schema]??"public",J=T.table[h.Symbol.OriginalName],W=`${$}.${J}.${T.name}`;if(!this.cache[W])this.cacheTable(T.table);return this.cache[W]}cacheTable(T){let $=T[h.Symbol.Schema]??"public",J=T[h.Symbol.OriginalName],W=`${$}.${J}`;if(!this.cachedTables[W]){for(let F of Object.values(T[h.Symbol.Columns])){let X=`${W}.${F.name}`;this.cache[X]=this.convert(F.name)}this.cachedTables[W]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class wF extends L${static[z]="PgViewBase"}class h0{static[z]="PgDialect";casing;constructor(T){this.casing=new B4(T?.casing)}async migrate(T,$,J){let W=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",F=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",X=K`
|
|
89
|
+
CREATE TABLE IF NOT EXISTS ${K.identifier(F)}.${K.identifier(W)} (
|
|
90
90
|
id SERIAL PRIMARY KEY,
|
|
91
91
|
hash text NOT NULL,
|
|
92
92
|
created_at bigint
|
|
93
93
|
)
|
|
94
|
-
`;await $.execute(O`CREATE SCHEMA IF NOT EXISTS ${O.identifier(F)}`),await $.execute(f);let A=(await $.all(O`select id, hash, created_at from ${O.identifier(F)}.${O.identifier(S)} order by created_at desc limit 1`))[0];await $.transaction(async(X)=>{for await(let w of T)if(!A||Number(A.created_at)<w.folderMillis){for(let M of w.sql)await X.execute(O.raw(M));await X.execute(O`insert into ${O.identifier(F)}.${O.identifier(S)} ("hash", "created_at") values(${w.hash}, ${w.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let $=[O`with `];for(let[J,S]of T.entries())if($.push(O`${O.identifier(S._.alias)} as (${S._.sql})`),J<T.length-1)$.push(O`, `);return $.push(O` `),O.join($)}buildDeleteQuery({table:T,where:$,returning:J,withList:S}){let F=this.buildWithCTE(S),f=J?O` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,W=$?O` where ${$}`:void 0;return O`${F}delete from ${T}${W}${f}`}buildUpdateSet(T,$){let J=T[v.Symbol.Columns],S=Object.keys(J).filter((f)=>$[f]!==void 0||J[f]?.onUpdateFn!==void 0),F=S.length;return O.join(S.flatMap((f,W)=>{let A=J[f],X=$[f]??O.param(A.onUpdateFn(),A),w=O`${O.identifier(this.casing.getColumnCasing(A))} = ${X}`;if(W<F-1)return[w,O.raw(", ")];return[w]}))}buildUpdateQuery({table:T,set:$,where:J,returning:S,withList:F,from:f,joins:W}){let A=this.buildWithCTE(F),X=T[X$.Symbol.Name],w=T[X$.Symbol.Schema],M=T[X$.Symbol.OriginalName],Y=X===M?void 0:X,G=O`${w?O`${O.identifier(w)}.`:void 0}${O.identifier(M)}${Y&&O` ${O.identifier(Y)}`}`,z=this.buildUpdateSet(T,$),D=f&&O.join([O.raw(" from "),this.buildFromTable(f)]),_=this.buildJoins(W),L=S?O` returning ${this.buildSelection(S,{isSingleTable:!f})}`:void 0,j=J?O` where ${J}`:void 0;return O`${A}update ${G} set ${z}${D}${_}${j}${L}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,S=T.flatMap(({field:F},f)=>{let W=[];if(k(F,P.Aliased)&&F.isSelectionField)W.push(O.identifier(F.fieldAlias));else if(k(F,P.Aliased)||k(F,P)){let A=k(F,P.Aliased)?F.sql:F;if($)W.push(new P(A.queryChunks.map((X)=>{if(k(X,Z))return O.identifier(this.casing.getColumnCasing(X));return X})));else W.push(A);if(k(F,P.Aliased))W.push(O` as ${O.identifier(F.fieldAlias)}`)}else if(k(F,UT))if($)W.push(O.identifier(this.casing.getColumnCasing(F)));else W.push(F);if(f<J-1)W.push(O`, `);return W});return O.join(S)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[J,S]of T.entries()){if(J===0)$.push(O` `);let F=S.table,f=S.lateral?O` lateral`:void 0;if(k(F,X$)){let W=F[X$.Symbol.Name],A=F[X$.Symbol.Schema],X=F[X$.Symbol.OriginalName],w=W===X?void 0:S.alias;$.push(O`${O.raw(S.joinType)} join${f} ${A?O`${O.identifier(A)}.`:void 0}${O.identifier(X)}${w&&O` ${O.identifier(w)}`} on ${S.on}`)}else if(k(F,y$)){let W=F[NT].name,A=F[NT].schema,X=F[NT].originalName,w=W===X?void 0:S.alias;$.push(O`${O.raw(S.joinType)} join${f} ${A?O`${O.identifier(A)}.`:void 0}${O.identifier(X)}${w&&O` ${O.identifier(w)}`} on ${S.on}`)}else $.push(O`${O.raw(S.joinType)} join${f} ${F} on ${S.on}`);if(J<T.length-1)$.push(O` `)}return O.join($)}buildFromTable(T){if(k(T,v)&&T[v.Symbol.OriginalName]!==T[v.Symbol.Name]){let $=O`${O.identifier(T[v.Symbol.OriginalName])}`;if(T[v.Symbol.Schema])$=O`${O.identifier(T[v.Symbol.Schema])}.${$}`;return O`${$} ${O.identifier(T[v.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:J,where:S,having:F,table:f,joins:W,orderBy:A,groupBy:X,limit:w,offset:M,lockingClause:Y,distinct:G,setOperators:z}){let D=J??o$($);for(let $T of D)if(k($T.field,UT)&&S$($T.field.table)!==(k(f,eT)?f._.alias:k(f,a0)?f[NT].name:k(f,P)?void 0:S$(f))&&!((ET)=>W?.some(({alias:hT})=>hT===(ET[v.Symbol.IsAlias]?S$(ET):ET[v.Symbol.BaseName])))($T.field.table)){let ET=S$($T.field.table);throw new Error(`Your "${$T.path.join("->")}" field references a column "${ET}"."${$T.field.name}", but the table "${ET}" is not part of the query! Did you forget to join it?`)}let _=!W||W.length===0,L=this.buildWithCTE(T),j;if(G)j=G===!0?O` distinct`:O` distinct on (${O.join(G.on,O`, `)})`;let y=this.buildSelection(D,{isSingleTable:_}),I=this.buildFromTable(f),Q=this.buildJoins(W),V=S?O` where ${S}`:void 0,B=F?O` having ${F}`:void 0,U;if(A&&A.length>0)U=O` order by ${O.join(A,O`, `)}`;let h;if(X&&X.length>0)h=O` group by ${O.join(X,O`, `)}`;let l=typeof w==="object"||typeof w==="number"&&w>=0?O` limit ${w}`:void 0,R=M?O` offset ${M}`:void 0,s=O.empty();if(Y){let $T=O` for ${O.raw(Y.strength)}`;if(Y.config.of)$T.append(O` of ${O.join(Array.isArray(Y.config.of)?Y.config.of:[Y.config.of],O`, `)}`);if(Y.config.noWait)$T.append(O` no wait`);else if(Y.config.skipLocked)$T.append(O` skip locked`);s.append($T)}let p=O`${L}select${j} ${y} from ${I}${Q}${V}${h}${B}${U}${l}${R}${s}`;if(z.length>0)return this.buildSetOperations(p,z);return p}buildSetOperations(T,$){let[J,...S]=$;if(!J)throw new Error("Cannot pass undefined values to any set operator");if(S.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:J});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:J}),S)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:J,rightSelect:S,limit:F,orderBy:f,offset:W}}){let A=O`(${T.getSQL()}) `,X=O`(${S.getSQL()})`,w;if(f&&f.length>0){let z=[];for(let D of f)if(k(D,Z))z.push(O.identifier(D.name));else if(k(D,P)){for(let _=0;_<D.queryChunks.length;_++){let L=D.queryChunks[_];if(k(L,Z))D.queryChunks[_]=O.identifier(L.name)}z.push(O`${D}`)}else z.push(O`${D}`);w=O` order by ${O.join(z,O`, `)} `}let M=typeof F==="object"||typeof F==="number"&&F>=0?O` limit ${F}`:void 0,Y=O.raw(`${$} ${J?"all ":""}`),G=W?O` offset ${W}`:void 0;return O`${A}${Y}${X}${w}${M}${G}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:S,withList:F,select:f,overridingSystemValue_:W}){let A=[],X=T[v.Symbol.Columns],w=Object.entries(X).filter(([L,j])=>!j.shouldDisableInsert()),M=w.map(([,L])=>O.identifier(this.casing.getColumnCasing(L)));if(f){let L=$;if(k(L,P))A.push(L);else A.push(L.getSQL())}else{let L=$;A.push(O.raw("values "));for(let[j,y]of L.entries()){let I=[];for(let[Q,V]of w){let B=y[Q];if(B===void 0||k(B,h$)&&B.value===void 0)if(V.defaultFn!==void 0){let U=V.defaultFn(),h=k(U,P)?U:O.param(U,V);I.push(h)}else if(!V.default&&V.onUpdateFn!==void 0){let U=V.onUpdateFn(),h=k(U,P)?U:O.param(U,V);I.push(h)}else I.push(O`default`);else I.push(B)}if(A.push(I),j<L.length-1)A.push(O`, `)}}let Y=this.buildWithCTE(F),G=O.join(A),z=S?O` returning ${this.buildSelection(S,{isSingleTable:!0})}`:void 0,D=J?O` on conflict ${J}`:void 0,_=W===!0?O`overriding system value `:void 0;return O`${Y}insert into ${T} ${M} ${_}${G}${D}${z}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:J}){let S=$?O` concurrently`:void 0,F=J?O` with no data`:void 0;return O`refresh materialized view${S} ${T}${F}`}prepareTyping(T){if(k(T,k1)||k(T,R1))return"json";else if(k(T,U1))return"decimal";else if(k(T,V1))return"time";else if(k(T,B1)||k(T,y1))return"timestamp";else if(k(T,E1)||k(T,Q1))return"date";else if(k(T,L1))return"uuid";else return"none"}sqlToQuery(T,$){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:S,tableConfig:F,queryConfig:f,tableAlias:W,nestedQueryRelation:A,joinOn:X}){let w=[],M,Y,G=[],z,D=[];if(f===!0)w=Object.entries(F.columns).map(([j,y])=>({dbKey:y.name,tsKey:j,field:GJ(y,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let L=Object.fromEntries(Object.entries(F.columns).map(([B,U])=>[B,GJ(U,W)]));if(f.where){let B=typeof f.where==="function"?f.where(L,B4()):f.where;z=B&&n0(B,W)}let j=[],y=[];if(f.columns){let B=!1;for(let[U,h]of Object.entries(f.columns)){if(h===void 0)continue;if(U in F.columns){if(!B&&h===!0)B=!0;y.push(U)}}if(y.length>0)y=B?y.filter((U)=>f.columns?.[U]===!0):Object.keys(F.columns).filter((U)=>!y.includes(U))}else y=Object.keys(F.columns);for(let B of y){let U=F.columns[B];j.push({tsKey:B,value:U})}let I=[];if(f.with)I=Object.entries(f.with).filter((B)=>!!B[1]).map(([B,U])=>({tsKey:B,queryConfig:U,relation:F.relations[B]}));let Q;if(f.extras){Q=typeof f.extras==="function"?f.extras(L,{sql:O}):f.extras;for(let[B,U]of Object.entries(Q))j.push({tsKey:B,value:mA(U,W)})}for(let{tsKey:B,value:U}of j)w.push({dbKey:k(U,P.Aliased)?U.fieldAlias:F.columns[B].name,tsKey:B,field:k(U,UT)?GJ(U,W):U,relationTableTsKey:void 0,isJson:!1,selection:[]});let V=typeof f.orderBy==="function"?f.orderBy(L,y4()):f.orderBy??[];if(!Array.isArray(V))V=[V];G=V.map((B)=>{if(k(B,UT))return GJ(B,W);return n0(B,W)}),M=f.limit,Y=f.offset;for(let{tsKey:B,queryConfig:U,relation:h}of I){let l=N4($,J,h),R=BS(h.referencedTable),s=J[R],p=`${W}_${B}`,$T=c0(...l.fields.map((k$,HJ)=>O1(GJ(l.references[HJ],p),GJ(k$,W)))),ET=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[s],tableConfig:$[s],queryConfig:k(h,uJ)?U===!0?{limit:1}:{...U,limit:1}:U,tableAlias:p,joinOn:$T,nestedQueryRelation:h}),hT=O`${O.identifier(p)}.${O.identifier("data")}`.as(B);D.push({on:O`true`,table:new eT(ET.sql,{},p),alias:p,joinType:"left",lateral:!0}),w.push({dbKey:B,tsKey:B,field:hT,relationTableTsKey:s,isJson:!0,selection:ET.selection})}}if(w.length===0)throw new H1({message:`No fields selected for table "${F.tsName}" ("${W}")`});let _;if(z=c0(X,z),A){let L=O`json_build_array(${O.join(w.map(({field:I,tsKey:Q,isJson:V})=>V?O`${O.identifier(`${W}_${Q}`)}.${O.identifier("data")}`:k(I,P.Aliased)?I.sql:I),O`, `)})`;if(k(A,t0))L=O`coalesce(json_agg(${L}${G.length>0?O` order by ${O.join(G,O`, `)}`:void 0}), '[]'::json)`;let j=[{dbKey:"data",tsKey:"data",field:L.as("data"),isJson:!0,relationTableTsKey:F.tsName,selection:w}];if(M!==void 0||Y!==void 0||G.length>0)_=this.buildSelectQuery({table:K1(S,W),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:z,limit:M,offset:Y,orderBy:G,setOperators:[]}),z=void 0,M=void 0,Y=void 0,G=[];else _=K1(S,W);_=this.buildSelectQuery({table:k(_,X$)?_:new eT(_,{},W),fields:{},fieldsFlat:j.map(({field:I})=>({path:[],field:k(I,UT)?GJ(I,W):I})),joins:D,where:z,limit:M,offset:Y,orderBy:G,setOperators:[]})}else _=this.buildSelectQuery({table:K1(S,W),fields:{},fieldsFlat:w.map(({field:L})=>({path:[],field:k(L,UT)?GJ(L,W):L})),joins:D,where:z,limit:M,offset:Y,orderBy:G,setOperators:[]});return{tableTsKey:F.tsName,sql:_,selection:w}}}class w2{static[H]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class R${static[H]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let $=!!this.fields,J=T,S;if(this.fields)S=this.fields;else if(k(J,eT))S=Object.fromEntries(Object.keys(J._.selectedFields).map((F)=>[F,J[F]]));else if(k(J,a0))S=J[NT].selectedFields;else if(k(J,P))S={};else S=CM(J);return new M2({table:J,fields:S,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class r4 extends w2{static[H]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:S,dialect:F,withList:f,distinct:W}){super();this.config={withList:f,table:T,fields:{...$},distinct:W,setOperators:[]},this.isPartialSelect=J,this.session=S,this.dialect=F,this._={selectedFields:$},this.tableName=xJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let S=this.tableName,F=xJ($);if(typeof F==="string"&&this.config.joins?.some((f)=>f.alias===F))throw new Error(`Alias "${F}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof S==="string")this.config.fields={[S]:this.config.fields};if(typeof F==="string"&&!k($,P)){let f=k($,eT)?$._.selectedFields:k($,y$)?$[NT].selectedFields:$[v.Symbol.Columns];this.config.fields[F]=f}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:J,table:$,joinType:T,alias:F}),typeof F==="string")switch(T){case"left":{this.joinsNotNullableMap[F]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([f])=>[f,!1])),this.joinsNotNullableMap[F]=!0;break}case"inner":{this.joinsNotNullableMap[F]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([f])=>[f,!1])),this.joinsNotNullableMap[F]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,$){return(J)=>{let S=typeof J==="function"?J($K()):J;if(!g0(this.getSelectedFields(),S.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:T,isAll:$,rightSelect:S}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new PT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),J=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=J;else this.config.orderBy=J}else{let $=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,$={}){return this.config.lockingClause={strength:T,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(T){return new Proxy(new eT(this.getSQL(),this.config.fields,T),new PT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new PT({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class M2 extends r4{static[H]="PgSelect";_prepare(T){let{session:$,config:J,dialect:S,joinsNotNullableMap:F,authToken:f}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return VT.startActiveSpan("drizzle.prepareQuery",()=>{let W=o$(J.fields),A=$.prepareQuery(S.sqlToQuery(this.getSQL()),W,T,!0);return A.joinsNotNullableMap=F,A.setToken(f)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}NM(M2,[_$]);function CF(T,$){return(J,S,...F)=>{let f=[S,...F].map((W)=>({type:T,isAll:$,rightSelect:W}));for(let W of f)if(!g0(J.getSelectedFields(),W.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return J.addSetOperators(f)}}var $K=()=>({union:JK,unionAll:SK,intersect:FK,intersectAll:fK,except:WK,exceptAll:AK}),JK=CF("union",!1),SK=CF("union",!0),FK=CF("intersect",!1),fK=CF("intersect",!0),WK=CF("except",!1),AK=CF("except",!0);class s0{static[H]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=k(T,xS)?T:void 0,this.dialectConfig=k(T,xS)?void 0:T}$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(J);return new Proxy(new m0(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new PT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function J(f){return new R$({fields:f??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function S(f){return new R$({fields:f??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function F(f,W){return new R$({fields:W??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:f}})}return{select:J,selectDistinct:S,selectDistinctOn:F}}select(T){return new R$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new R$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new R$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new xS(this.dialectConfig);return this.dialect}}class c1{constructor(T,$,J,S,F){this.table=T,this.session=$,this.dialect=J,this.withList=S,this.overridingSystemValue_=F}static[H]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let $=T.map((J)=>{let S={},F=this.table[v.Symbol.Columns];for(let f of Object.keys(J)){let W=J[f];S[f]=k(W,P)?W:new h$(W,F[f])}return S});return new Y2(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new s0):T;if(!k($,P)&&!g0(this.table[Y1],$._.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 Y2(this.table,$,this.session,this.dialect,this.withList,!0)}}class Y2 extends _${constructor(T,$,J,S,F,f,W){super();this.session=J,this.dialect=S,this.config={table:T,values:$,withList:F,select:f,overridingSystemValue_:W}}static[H]="PgInsert";config;returning(T=this.config.table[v.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=o$(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=O`do nothing`;else{let $="";$=Array.isArray(T.target)?T.target.map((S)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(S))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let J=T.where?O` where ${T.where}`:void 0;this.config.onConflict=O`(${O.raw($)})${J} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=T.where?O` where ${T.where}`:void 0,J=T.targetWhere?O` where ${T.targetWhere}`:void 0,S=T.setWhere?O` where ${T.setWhere}`:void 0,F=this.dialect.buildUpdateSet(this.config.table,D1(this.config.table,T.set)),f="";return f=Array.isArray(T.target)?T.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=O`(${O.raw(f)})${J} do update set ${F}${$}${S}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return VT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new PT({alias:S$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class G2 extends _${constructor(T,$,J){super();this.session=$,this.dialect=J,this.config={view:T}}static[H]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return VT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class g1{constructor(T,$,J,S){this.table=T,this.session=$,this.dialect=J,this.withList=S}static[H]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new a4(this.table,D1(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class a4 extends _${constructor(T,$,J,S,F){super();this.session=J,this.dialect=S,this.config={set:$,table:T,withList:F,joins:[]},this.tableName=xJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[H]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,J=xJ($);if(typeof J==="string")this.joinsNotNullableMap[J]=!0;return this.config.from=$,this}getTableLikeFields(T){if(k(T,X$))return T[v.Symbol.Columns];else if(k(T,eT))return T._.selectedFields;return T[NT].selectedFields}createJoin(T){return($,J)=>{let S=xJ($);if(typeof S==="string"&&this.config.joins.some((F)=>F.alias===S))throw new Error(`Alias "${S}" is already used in this query`);if(typeof J==="function"){let F=this.config.from&&!k(this.config.from,P)?this.getTableLikeFields(this.config.from):void 0;J=J(new Proxy(this.config.table[v.Symbol.Columns],new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),F&&new Proxy(F,new PT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:J,table:$,joinType:T,alias:S}),typeof S==="string")switch(T){case"left":{this.joinsNotNullableMap[S]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[S]=!0;break}case"inner":{this.joinsNotNullableMap[S]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[S]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[v.Symbol.Columns]),this.config.from){let $=xJ(this.config.from);if(typeof $==="string"&&this.config.from&&!k(this.config.from,P)){let J=this.getTableLikeFields(this.config.from);T[$]=J}for(let J of this.config.joins){let S=xJ(J.table);if(typeof S==="string"&&!k(J.table,P)){let F=this.getTableLikeFields(J.table);T[S]=F}}}}return this.config.returningFields=T,this.config.returning=o$(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){let $=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0);return $.joinsNotNullableMap=this.joinsNotNullableMap,$}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return this._prepare().execute(T,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new PT({alias:S$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class e0 extends P{constructor(T){super(e0.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=e0.buildCount(T.source,T.filters)}sql;token;static[H]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return O`(select count(*) from ${T}${O.raw(" where ").if($)}${$})`}static buildCount(T,$){return O`select count(*) as count from ${T}${O.raw(" where ").if($)}${$};`}setToken(T){return this.token=T,this}then(T,$){return Promise.resolve(this.session.count(this.sql,this.token)).then(T,$)}catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}}class H2{constructor(T,$,J,S,F,f,W){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=S,this.tableConfig=F,this.dialect=f,this.session=W}static[H]="PgRelationalQueryBuilder";findMany(T){return new K2(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new K2(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class K2 extends _${constructor(T,$,J,S,F,f,W,A,X){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=S,this.tableConfig=F,this.dialect=f,this.session=W,this.config=A,this.mode=X}static[H]="PgRelationalQuery";_prepare(T){return VT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(S,F)=>{let f=S.map((W)=>N1(this.schema,this.tableConfig,W,$.selection,F));if(this.mode==="first")return f[0];return f})})}prepare(T){return this._prepare(T)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let T=this._getQuery(),$=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return VT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class O2 extends _${constructor(T,$,J,S){super();this.execute=T,this.sql=$,this.query=J,this.mapBatchResult=S}static[H]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class Tf{constructor(T,$,J){if(this.dialect=T,this.session=$,this._=J?{schema:J.schema,fullSchema:J.fullSchema,tableNamesMap:J.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[S,F]of Object.entries(this._.schema))this.query[S]=new H2(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[S],F,T,$)}static[H]="PgDatabase";query;$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(new s0(J.dialect));return new Proxy(new m0(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new PT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new e0({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(X){return new R$({fields:X??void 0,session:$.session,dialect:$.dialect,withList:T})}function S(X){return new R$({fields:X??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function F(X,w){return new R$({fields:w??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:X}})}function f(X){return new g1(X,$.session,$.dialect,T)}function W(X){return new c1(X,$.session,$.dialect,T)}function A(X){return new n1(X,$.session,$.dialect,T)}return{select:J,selectDistinct:S,selectDistinctOn:F,update:f,insert:W,delete:A}}select(T){return new R$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new R$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new R$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new g1(T,this.session,this.dialect)}insert(T){return new c1(T,this.session,this.dialect)}delete(T){return new n1(T,this.session,this.dialect)}refreshMaterializedView(T){return new G2(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?O.raw(T):T.getSQL(),J=this.dialect.sqlToQuery($),S=this.session.prepareQuery(J,void 0,void 0,!1);return new O2(()=>S.execute(void 0,this.authToken),$,J,(F)=>S.mapResult(F,!0))}transaction(T,$){return this.session.transaction(T,$)}}class s4{constructor(T,$){this.unique=T,this.name=$}static[H]="PgIndexBuilderOn";on(...T){return new p1(T.map(($)=>{if(k($,P))return $;$=$;let J=new h0($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),J}),this.unique,!1,this.name)}onOnly(...T){return new p1(T.map(($)=>{if(k($,P))return $;$=$;let J=new h0($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,J}),this.unique,!0,this.name)}using(T,...$){return new p1($.map((J)=>{if(k(J,P))return J;J=J;let S=new h0(J.name,!!J.keyAsName,J.columnType,J.indexConfig);return J.indexConfig=JSON.parse(JSON.stringify(J.defaultConfig)),S}),this.unique,!0,this.name,T)}}class p1{static[H]="PgIndexBuilder";config;constructor(T,$,J,S,F="btree"){this.config={name:S,columns:T,unique:$,only:J,method:F}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new e4(this.config,T)}}class e4{static[H]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function z2(T){return new s4(!0,T)}class D2{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[H]="PgPreparedQuery";joinsNotNullableMap}class E2{constructor(T){this.dialect=T}static[H]="PgSession";execute(T,$){return VT.startActiveSpan("drizzle.operation",()=>{return VT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,$){let J=await this.execute(T,$);return Number(J[0].count)}}class Q2 extends Tf{constructor(T,$,J,S=0){super(T,$,J);this.schema=J,this.nestedIndex=S}static[H]="PgTransaction";rollback(){throw new vA}getTransactionConfigSQL(T){let $=[];if(T.isolationLevel)$.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)$.push(T.accessMode);if(typeof T.deferrable==="boolean")$.push(T.deferrable?"deferrable":"not deferrable");return O.raw($.join(" "))}setTransaction(T){return this.session.execute(O`set transaction ${this.getTransactionConfigSQL(T)}`)}}class T6 extends D2{constructor(T,$,J,S,F,f,W){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=S,this.fields=F,this._isResponseInArrayMode=f,this.customResultMapper=W}static[H]="PostgresJsPreparedQuery";async execute(T={}){return VT.startActiveSpan("drizzle.execute",async($)=>{let J=hA(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J);let{fields:S,queryString:F,client:f,joinsNotNullableMap:W,customResultMapper:A}=this;if(!S&&!A)return VT.startActiveSpan("drizzle.driver.execute",()=>{return f.unsafe(F,J)});let X=await VT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":F,"drizzle.query.params":JSON.stringify(J)}),f.unsafe(F,J).values()});return VT.startActiveSpan("drizzle.mapResponse",()=>{return A?A(X):X.map((w)=>LM(S,w,W))})})}all(T={}){return VT.startActiveSpan("drizzle.execute",async($)=>{let J=hA(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J),VT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.client.unsafe(this.queryString,J)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class $f extends E2{constructor(T,$,J,S={}){super($);this.client=T,this.schema=J,this.options=S,this.logger=S.logger??new nA}static[H]="PostgresJsSession";logger;prepareQuery(T,$,J,S,F){return new T6(this.client,T.sql,T.params,this.logger,$,S,F)}query(T,$){return this.logger.logQuery(T,$),this.client.unsafe(T,$).values()}queryObjects(T,$){return this.client.unsafe(T,$)}transaction(T,$){return this.client.begin(async(J)=>{let S=new $f(J,this.dialect,this.schema,this.options),F=new _2(this.dialect,S,this.schema);if($)await F.setTransaction($);return T(F)})}}class _2 extends Q2{constructor(T,$,J,S=0){super(T,$,J,S);this.session=$}static[H]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new $f($,this.dialect,this.schema,this.session.options),S=new _2(this.dialect,J,this.schema);return T(S)})}}class $6 extends Tf{static[H]="PostgresJsDatabase"}function xF(T,$={}){let J=(X)=>X;for(let X of["1184","1082","1083","1114"])T.options.parsers[X]=J,T.options.serializers[X]=J;T.options.serializers["114"]=J,T.options.serializers["3802"]=J;let S=new xS({casing:$.casing}),F;if($.logger===!0)F=new PA;else if($.logger!==!1)F=$.logger;let f;if($.schema){let X=L4($.schema,C4);f={fullSchema:$.schema,schema:X.tables,tableNamesMap:X.tableNamesMap}}let W=new $f(T,S,f,{logger:F}),A=new $6(S,W,f);return A.$client=T,A}function o1(...T){if(typeof T[0]==="string"){let $=NF(T[0]);return xF($,T[1])}if(xM(T[0])){let{connection:$,client:J,...S}=T[0];if(J)return xF(J,S);if(typeof $==="object"&&$.url!==void 0){let{url:f,...W}=$,A=NF(f,W);return xF(A,S)}let F=NF($);return xF(F,S)}return xF(T[0],T[1])}((T)=>{function $(J){return xF({options:{parsers:{},serializers:{}}},J)}T.mock=$})(o1||(o1={}));function XK(T,$){let J={},S=[];for(let F in T){let f=T[F],W=$[F],A=f["~standard"].validate(W);if(A instanceof Promise)throw new Error(`Validation must be synchronous, but ${F} returned a Promise.`);if(A.issues){S.push(...A.issues.map((X)=>({...X,path:[F,...X.path??[]]})));continue}J[F]=A.value}if(S.length)return{issues:S};return{value:J}}function J6(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[y,I]of Object.entries($))if(I==="")delete $[y]}if(!!T.skipValidation)return $;let F=typeof T.client==="object"?T.client:{},f=typeof T.server==="object"?T.server:{},W=typeof T.shared==="object"?T.shared:{},A=T.isServer??(typeof window==="undefined"||("Deno"in window)),X=A?{...f,...W,...F}:{...F,...W},w=XK(X,$),M=T.onValidationError??((y)=>{throw console.error("\u274C Invalid environment variables:",y),new Error("Invalid environment variables")}),Y=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(w.issues)return M(w.issues);let G=(y)=>{if(!T.clientPrefix)return!0;return!y.startsWith(T.clientPrefix)&&!(y in W)},z=(y)=>{return A||!G(y)},D=(y)=>{return y==="__esModule"||y==="$$typeof"},_=(T.extends??[]).reduce((y,I)=>{return Object.assign(y,I)},{}),L=Object.assign(w.value,_);return new Proxy(L,{get(y,I){if(typeof I!=="string")return;if(D(I))return;if(!z(I))return Y(I);return Reflect.get(y,I)}})}var wK="__vite_start_time"in globalThis,MK=typeof window!=="undefined",jm="vitest"in globalThis,IJ=J6({isServer:!wK&&!MK,server:{CI:kT.string().transform((T)=>!0).optional(),POSTGRES_USER:kT.string(),POSTGRES_PASSWORD:kT.string(),POSTGRES_DATABASE:kT.string(),POSTGRES_HOST:kT.string(),POSTGRES_PORT:kT.string().transform((T)=>Number.parseInt(T,10)),BACKEND_PORT:kT.string().transform((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:kT.union([kT.literal("true"),kT.literal("false")]).optional().transform((T)=>T==="true"),FRONTEND_PORT:kT.string().transform((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:kT.string().transform((T)=>JSON.parse(T)).pipe(kT.array(kT.string())),OPENAI_API_KEY:kT.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:kT.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:kT.union([kT.literal("true"),kT.literal("false")]).optional().transform((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var k2={};z7(k2,{users:()=>jS,userChanges:()=>GK,untrackedUserColumnNames:()=>YK,twoFactorMethod:()=>A6,trackedUserColumnName:()=>W6,trackableUserColumnNames:()=>f6,role:()=>F6,players:()=>R2,passwordResetAttempts:()=>HK,loginHistory:()=>KK,games:()=>t1,banishedIps:()=>i1});function S6(T){return O`lower(${T})`}var F6=w1("role",["admin","user"]),jS=dJ("users",{id:m$().primaryKey().defaultRandom(),username:A$({length:16}).notNull(),email:A$({length:254}).notNull(),hash:A$({length:64}).notNull(),salt:A$({length:36}).notNull(),createdAt:SJ({withTimezone:!0}).notNull().defaultNow(),createdIp:A$({length:45}).notNull(),isActive:p0().notNull().default(!1),verifiedAt:SJ({withTimezone:!0}),userRole:F6().default("user")},(T)=>[z2("usernameUniqueIndex").on(S6(T.username)),z2("emailUniqueIndex").on(S6(T.email))]),YK=["id","createdAt","createdIp","isActive","salt","verifiedAt"],f6=["username","email","hash","userRole"],W6=w1("trackedUserColumnName",f6),GK=dJ("userChanges",{id:m$().primaryKey().defaultRandom(),userId:m$().notNull().references(()=>jS.id),changedAt:SJ({withTimezone:!0}).notNull().defaultNow(),changedIp:A$({length:45}).notNull(),changedColumn:W6().notNull(),oldValue:A$({length:255}),newValue:A$({length:255})}),t1=dJ("games",{id:m$().primaryKey().defaultRandom()}),R2=dJ("players",{userId:m$().notNull().references(()=>jS.id),gameId:m$().notNull().references(()=>t1.id),score:_1().notNull()},(T)=>[k4({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),KK=dJ("loginHistory",{id:m$().primaryKey().defaultRandom(),userId:m$().references(()=>jS.id),loginTime:SJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:A$({length:45}).notNull(),userAgent:A$({length:1024}),successful:p0().notNull().default(!1)}),A6=w1("twoFactorMethod",["email","phone"]),HK=dJ("passwordResetAttempts",{id:m$().primaryKey().defaultRandom(),userId:m$().notNull().references(()=>jS.id),requestedIp:A$({length:45}).notNull(),requestedAt:SJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:A$({length:45}),succeededAt:SJ({withTimezone:!0}),verificationMethod:A6().notNull()}),i1=dJ("banishedIps",{ip:A$({length:45}).primaryKey(),reason:A$({length:2048}).notNull(),banishedAt:SJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:SJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class U2{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(OK.resolve(__dirname,"notify_update.sql"));let T=[S$(jS),S$(t1),S$(R2)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let J=$.split(","),S=J[0],F=J[1],f=`${S}("${F}")`;if(this.observers.has(f))this.observers.get(f).next(f)})}constructor(T=!1,$={host:IJ.POSTGRES_HOST,port:IJ.POSTGRES_PORT,user:IJ.POSTGRES_USER,password:IJ.POSTGRES_PASSWORD,database:IJ.POSTGRES_DATABASE}){this.options=$,this.sql=NF($),this.drizzle=o1(this.sql,{schema:k2,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new FT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as EK}from"path";import{existsSync as V2,mkdirSync as X6,readFileSync as zK,writeFileSync as DK,rmSync as w6,readdirSync as M6,statSync as Y6}from"fs";import{resolve as B2}from"path";var G6=class{get initialized(){return V2(this.rootDir)}initialize(){if(!this.initialized)X6(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=B2(this.rootDir,T);if(V2($))return zK($,"utf-8");return null}setItem(T,$){this.initialize();let J=B2(this.rootDir,T);DK(J,$)}removeItem(T){let $=B2(this.rootDir,T);if(V2($))this.initialize(),w6($)}key(T){var $;return($=M6(this.rootDir).sort((F,f)=>{let W=Y6(F);return Y6(f).ctimeMs-W.ctimeMs})[T])!=null?$:null}clear(){w6(this.rootDir,{recursive:!0}),X6(this.rootDir,{recursive:!0})}get length(){return M6(this.rootDir).length}};var y2=new G6({path:EK(process.cwd(),"storage")});import*as d1 from"fs";import*as K6 from"readline";function QK(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(S,F,f,W,A)=>{let w={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[f];return`${W}-${w}-${F}T${A}`});return new Date(J)}async function H6(T,$="/var/log/nginx/access.log",J=new Date){let S=new Map;if(!d1.existsSync($))return T.error(`Log file not found: ${$}`),S;let F=d1.createReadStream($),f=K6.createInterface({input:F,crlfDelay:Number.POSITIVE_INFINITY}),W=new Date(J.getTime()-3600000);return f.on("line",(A)=>{let X=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,w=A.match(X);if(w?.groups){let M=w.groups.ip,Y=w.groups.dateTime,G=QK(Y);if(!Number.isNaN(G.getTime())){if(G>=W&&G<=J){let z=S.get(M);if(!z)z=[],S.set(M,z);z.push(A)}}else T.error(`Failed to parse date: ${Y}`)}}),new Promise((A,X)=>{f.on("error",(w)=>{X(w)}),f.on("close",()=>{A(S)})})}var _K=["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
|
|
94
|
+
`;await $.execute(K`CREATE SCHEMA IF NOT EXISTS ${K.identifier(F)}`),await $.execute(X);let Y=(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(!Y||Number(Y.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,S=$?K` where ${$}`:void 0;return K`${F}delete from ${T}${S}${X}`}buildUpdateSet(T,$){let J=T[h.Symbol.Columns],W=Object.keys(J).filter((X)=>$[X]!==void 0||J[X]?.onUpdateFn!==void 0),F=W.length;return K.join(W.flatMap((X,S)=>{let Y=J[X],A=$[X]??K.param(Y.onUpdateFn(),Y),w=K`${K.identifier(this.casing.getColumnCasing(Y))} = ${A}`;if(S<F-1)return[w,K.raw(", ")];return[w]}))}buildUpdateQuery({table:T,set:$,where:J,returning:W,withList:F,from:X,joins:S}){let Y=this.buildWithCTE(F),A=T[A$.Symbol.Name],w=T[A$.Symbol.Schema],G=T[A$.Symbol.OriginalName],M=A===G?void 0:A,H=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(S),y=W?K` returning ${this.buildSelection(W,{isSingleTable:!X})}`:void 0,j=J?K` where ${J}`:void 0;return K`${Y}update ${H} set ${f}${D}${R}${j}${y}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,W=T.flatMap(({field:F},X)=>{let S=[];if(_(F,g.Aliased)&&F.isSelectionField)S.push(K.identifier(F.fieldAlias));else if(_(F,g.Aliased)||_(F,g)){let Y=_(F,g.Aliased)?F.sql:F;if($)S.push(new g(Y.queryChunks.map((A)=>{if(_(A,q))return K.identifier(this.casing.getColumnCasing(A));return A})));else S.push(Y);if(_(F,g.Aliased))S.push(K` as ${K.identifier(F.fieldAlias)}`)}else if(_(F,BT))if($)S.push(K.identifier(this.casing.getColumnCasing(F)));else S.push(F);if(X<J-1)S.push(K`, `);return S});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 S=F[A$.Symbol.Name],Y=F[A$.Symbol.Schema],A=F[A$.Symbol.OriginalName],w=S===A?void 0:W.alias;$.push(K`${K.raw(W.joinType)} join${X} ${Y?K`${K.identifier(Y)}.`:void 0}${K.identifier(A)}${w&&K` ${K.identifier(w)}`} on ${W.on}`)}else if(_(F,L$)){let S=F[CT].name,Y=F[CT].schema,A=F[CT].originalName,w=S===A?void 0:W.alias;$.push(K`${K.raw(W.joinType)} join${X} ${Y?K`${K.identifier(Y)}.`: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:S,orderBy:Y,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)=>S?.some(({alias:PT})=>PT===(DT[h.Symbol.IsAlias]?W$(DT):DT[h.Symbol.BaseName])))($T.field.table)){let DT=W$($T.field.table);throw new Error(`Your "${$T.path.join("->")}" field references a column "${DT}"."${$T.field.name}", but the table "${DT}" is not part of the query! Did you forget to join it?`)}let R=!S||S.length===0,y=this.buildWithCTE(T),j;if(H)j=H===!0?K` distinct`:K` distinct on (${K.join(H.on,K`, `)})`;let L=this.buildSelection(D,{isSingleTable:R}),Z=this.buildFromTable(X),E=this.buildJoins(S),V=W?K` where ${W}`:void 0,B=F?K` having ${F}`:void 0,k;if(Y&&Y.length>0)k=K` order by ${K.join(Y,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:S}}){let Y=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=S?K` offset ${S}`:void 0;return K`${Y}${M}${A}${w}${G}${H}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:W,withList:F,select:X,overridingSystemValue_:S}){let Y=[],A=T[h.Symbol.Columns],w=Object.entries(A).filter(([y,j])=>!j.shouldDisableInsert()),G=w.map(([,y])=>K.identifier(this.casing.getColumnCasing(y)));if(X){let y=$;if(_(y,g))Y.push(y);else Y.push(y.getSQL())}else{let y=$;Y.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(Y.push(Z),j<y.length-1)Y.push(K`, `)}}let M=this.buildWithCTE(F),H=K.join(Y),f=W?K` returning ${this.buildSelection(W,{isSingleTable:!0})}`:void 0,D=J?K` on conflict ${J}`:void 0,R=S===!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:S,nestedQueryRelation:Y,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:OJ(L,S),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let y=Object.fromEntries(Object.entries(F.columns).map(([B,k])=>[B,OJ(k,S)]));if(X.where){let B=typeof X.where==="function"?X.where(y,a5()):X.where;f=B&&sW(B,S)}let j=[],L=[];if(X.columns){let B=!1;for(let[k,b]of Object.entries(X.columns)){if(b===void 0)continue;if(k in F.columns){if(!B&&b===!0)B=!0;L.push(k)}}if(L.length>0)L=B?L.filter((k)=>X.columns?.[k]===!0):Object.keys(F.columns).filter((k)=>!L.includes(k))}else L=Object.keys(F.columns);for(let B of L){let k=F.columns[B];j.push({tsKey:B,value:k})}let Z=[];if(X.with)Z=Object.entries(X.with).filter((B)=>!!B[1]).map(([B,k])=>({tsKey:B,queryConfig:k,relation:F.relations[B]}));let E;if(X.extras){E=typeof X.extras==="function"?X.extras(y,{sql:K}):X.extras;for(let[B,k]of Object.entries(E))j.push({tsKey:B,value:T4(k,S)})}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)?OJ(k,S):k,relationTableTsKey:void 0,isJson:!1,selection:[]});let V=typeof X.orderBy==="function"?X.orderBy(y,s5()):X.orderBy??[];if(!Array.isArray(V))V=[V];H=V.map((B)=>{if(_(B,BT))return OJ(B,S);return sW(B,S)}),G=X.limit,M=X.offset;for(let{tsKey:B,queryConfig:k,relation:b}of Z){let r=TA($,J,b),U=q0(b.referencedTable),e=J[U],p=`${S}_${B}`,$T=eW(...r.fields.map((_$,KJ)=>CX(OJ(r.references[KJ],p),OJ(_$,S)))),DT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[e],tableConfig:$[e],queryConfig:_(b,aJ)?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}" ("${S}")`});let R;if(f=eW(A,f),Y){let y=K`json_build_array(${K.join(w.map(({field:Z,tsKey:E,isJson:V})=>V?K`${K.identifier(`${S}_${E}`)}.${K.identifier("data")}`:_(Z,g.Aliased)?Z.sql:Z),K`, `)})`;if(_(Y,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,S),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,S);R=this.buildSelectQuery({table:_(R,A$)?R:new eT(R,{},S),fields:{},fieldsFlat:j.map(({field:Z})=>({path:[],field:_(Z,BT)?OJ(Z,S):Z})),joins:D,where:f,limit:G,offset:M,orderBy:H,setOperators:[]})}else R=this.buildSelectQuery({table:yX(W,S),fields:{},fieldsFlat:w.map(({field:y})=>({path:[],field:_(y,BT)?OJ(y,S):y})),joins:D,where:f,limit:G,offset:M,orderBy:H,setOperators:[]});return{tableTsKey:F.tsName,sql:R,selection:w}}}class L4{static[z]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class U${static[z]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let $=!!this.fields,J=T,W;if(this.fields)W=this.fields;else if(_(J,eT))W=Object.fromEntries(Object.keys(J._.selectedFields).map((F)=>[F,J[F]]));else if(_(J,wF))W=J[CT].selectedFields;else if(_(J,g))W={};else W=a7(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 _A extends L4{static[z]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:W,dialect:F,withList:X,distinct:S}){super();this.config={withList:X,table:T,fields:{...$},distinct:S,setOperators:[]},this.isPartialSelect=J,this.session=W,this.dialect=F,this._={selectedFields:$},this.tableName=xJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let W=this.tableName,F=xJ($);if(typeof F==="string"&&this.config.joins?.some((X)=>X.alias===F))throw new Error(`Alias "${F}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof W==="string")this.config.fields={[W]:this.config.fields};if(typeof F==="string"&&!_($,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(I3()):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 _A{static[z]="PgSelect";_prepare(T){let{session:$,config:J,dialect:W,joinsNotNullableMap:F,authToken:X}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return LT.startActiveSpan("drizzle.prepareQuery",()=>{let S=o$(J.fields),Y=$.prepareQuery(W.sqlToQuery(this.getSQL()),S,T,!0);return Y.joinsNotNullableMap=F,Y.setToken(X)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}r7(y4,[R$]);function g1(T,$){return(J,W,...F)=>{let X=[W,...F].map((S)=>({type:T,isAll:$,rightSelect:S}));for(let S of X)if(!TF(J.getSelectedFields(),S.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return J.addSetOperators(X)}}var I3=()=>({union:b3,unionAll:v3,intersect:P3,intersectAll:h3,except:m3,exceptAll:g3}),b3=g1("union",!1),v3=g1("union",!0),P3=g1("intersect",!1),h3=g1("intersect",!0),m3=g1("except",!1),g3=g1("except",!0);class GF{static[z]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=_(T,h0)?T:void 0,this.dialectConfig=_(T,h0)?void 0:T}$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(J);return new Proxy(new lW(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function J(X){return new U$({fields:X??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function W(X){return new U$({fields:X??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function F(X,S){return new U$({fields:S??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:X}})}return{select:J,selectDistinct:W,selectDistinctOn:F}}select(T){return new U$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new U$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new U$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new h0(this.dialectConfig);return this.dialect}}class $2{constructor(T,$,J,W,F){this.table=T,this.session=$,this.dialect=J,this.withList=W,this.overridingSystemValue_=F}static[z]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let $=T.map((J)=>{let W={},F=this.table[h.Symbol.Columns];for(let X of Object.keys(J)){let S=J[X];W[X]=_(S,g)?S:new v$(S,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,S){super();this.session=J,this.dialect=W,this.config={table:T,values:$,withList:F,select:X,overridingSystemValue_:S}}static[z]="PgInsert";config;returning(T=this.config.table[h.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=o$(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=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((S)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(S))).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[z]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return LT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class J2{constructor(T,$,J,W){this.table=T,this.session=$,this.dialect=J,this.withList=W}static[z]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new kA(this.table,jX(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class kA extends R${constructor(T,$,J,W,F){super();this.session=J,this.dialect=W,this.config={set:$,table:T,withList:F,joins:[]},this.tableName=xJ(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[z]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,J=xJ($);if(typeof J==="string")this.joinsNotNullableMap[J]=!0;return this.config.from=$,this}getTableLikeFields(T){if(_(T,A$))return T[h.Symbol.Columns];else if(_(T,eT))return T._.selectedFields;return T[CT].selectedFields}createJoin(T){return($,J)=>{let W=xJ($);if(typeof W==="string"&&this.config.joins.some((F)=>F.alias===W))throw new Error(`Alias "${W}" is already used in this query`);if(typeof J==="function"){let F=this.config.from&&!_(this.config.from,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 $=xJ(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=xJ(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[z]="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,S){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=F,this.dialect=X,this.session=S}static[z]="PgRelationalQueryBuilder";findMany(T){return new 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,S,Y,A){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=F,this.dialect=X,this.session=S,this.config=Y,this.mode=A}static[z]="PgRelationalQuery";_prepare(T){return LT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(W,F)=>{let X=W.map((S)=>nX(this.schema,this.tableConfig,S,$.selection,F));if(this.mode==="first")return X[0];return X})})}prepare(T){return this._prepare(T)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let T=this._getQuery(),$=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return LT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class Z4 extends R${constructor(T,$,J,W){super();this.execute=T,this.sql=$,this.query=J,this.mapBatchResult=W}static[z]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class HF{constructor(T,$,J){if(this.dialect=T,this.session=$,this._=J?{schema:J.schema,fullSchema:J.fullSchema,tableNamesMap:J.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[W,F]of Object.entries(this._.schema))this.query[W]=new j4(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[W],F,T,$)}static[z]="PgDatabase";query;$with=(T,$)=>{let J=this;return{as:(F)=>{if(typeof F==="function")F=F(new GF(J.dialect));return new Proxy(new lW(F.getSQL(),$??("getSelectedFields"in F?F.getSelectedFields()??{}:{}),T,!0),new mT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new MF({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(A){return new U$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T})}function W(A){return new U$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function F(A,w){return new U$({fields:w??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:A}})}function X(A){return new J2(A,$.session,$.dialect,T)}function S(A){return new $2(A,$.session,$.dialect,T)}function Y(A){return new T2(A,$.session,$.dialect,T)}return{select:J,selectDistinct:W,selectDistinctOn:F,update:X,insert:S,delete:Y}}select(T){return new U$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new U$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new U$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new J2(T,this.session,this.dialect)}insert(T){return new $2(T,this.session,this.dialect)}delete(T){return new T2(T,this.session,this.dialect)}refreshMaterializedView(T){return new 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 VA{constructor(T,$){this.unique=T,this.name=$}static[z]="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[z]="PgIndexBuilder";config;constructor(T,$,J,W,F="btree"){this.config={name:W,columns:T,unique:$,only:J,method:F}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new BA(this.config,T)}}class BA{static[z]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function q4(T){return new VA(!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[z]="PgPreparedQuery";joinsNotNullableMap}class b4{constructor(T){this.dialect=T}static[z]="PgSession";execute(T,$){return LT.startActiveSpan("drizzle.operation",()=>{return LT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,$){let J=await this.execute(T,$);return Number(J[0].count)}}class v4 extends HF{constructor(T,$,J,W=0){super(T,$,J);this.schema=J,this.nestedIndex=W}static[z]="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 LA extends I4{constructor(T,$,J,W,F,X,S){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=W,this.fields=F,this._isResponseInArrayMode=X,this.customResultMapper=S}static[z]="PostgresJsPreparedQuery";async execute(T={}){return LT.startActiveSpan("drizzle.execute",async($)=>{let J=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:S,customResultMapper:Y}=this;if(!W&&!Y)return LT.startActiveSpan("drizzle.driver.execute",()=>{return X.unsafe(F,J)});let A=await LT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":F,"drizzle.query.params":JSON.stringify(J)}),X.unsafe(F,J).values()});return LT.startActiveSpan("drizzle.mapResponse",()=>{return Y?Y(A):A.map((w)=>l7(W,w,S))})})}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 OF extends b4{constructor(T,$,J,W={}){super($);this.client=T,this.schema=J,this.options=W,this.logger=W.logger??new W4}static[z]="PostgresJsSession";logger;prepareQuery(T,$,J,W,F){return new LA(this.client,T.sql,T.params,this.logger,$,W,F)}query(T,$){return this.logger.logQuery(T,$),this.client.unsafe(T,$).values()}queryObjects(T,$){return this.client.unsafe(T,$)}transaction(T,$){return this.client.begin(async(J)=>{let W=new OF(J,this.dialect,this.schema,this.options),F=new 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[z]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new OF($,this.dialect,this.schema,this.session.options),W=new P4(this.dialect,J,this.schema);return T(W)})}}class yA extends HF{static[z]="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 h0({casing:$.casing}),F;if($.logger===!0)F=new J4;else if($.logger!==!1)F=$.logger;let X;if($.schema){let A=e5($.schema,$A);X={fullSchema:$.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let S=new OF(T,W,X,{logger:F}),Y=new yA(W,S,X);return Y.$client=T,Y}function F2(...T){if(typeof T[0]==="string"){let $=m1(T[0]);return c1($,T[1])}if(s7(T[0])){let{connection:$,client:J,...W}=T[0];if(J)return c1(J,W);if(typeof $==="object"&&$.url!==void 0){let{url:X,...S}=$,Y=m1(X,S);return c1(Y,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 c3(T,$){let J={},W=[];for(let F in T){let X=T[F],S=$[F],Y=X["~standard"].validate(S);if(Y instanceof Promise)throw new Error(`Validation must be synchronous, but ${F} returned a Promise.`);if(Y.issues){W.push(...Y.issues.map((A)=>({...A,path:[F,...A.path??[]]})));continue}J[F]=Y.value}if(W.length)return{issues:W};return{value:J}}function NA(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[L,Z]of Object.entries($))if(Z==="")delete $[L]}if(!!T.skipValidation)return $;let F=typeof T.client==="object"?T.client:{},X=typeof T.server==="object"?T.server:{},S=typeof T.shared==="object"?T.shared:{},Y=T.isServer??(typeof window==="undefined"||("Deno"in window)),A=Y?{...X,...S,...F}:{...F,...S},w=c3(A,$),G=T.onValidationError??((L)=>{throw console.error("\u274C Invalid environment variables:",L),new Error("Invalid environment variables")}),M=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(w.issues)return G(w.issues);let H=(L)=>{if(!T.clientPrefix)return!0;return!L.startsWith(T.clientPrefix)&&!(L in S)},f=(L)=>{return Y||!H(L)},D=(L)=>{return L==="__esModule"||L==="$$typeof"},R=(T.extends??[]).reduce((L,Z)=>{return Object.assign(L,Z)},{}),y=Object.assign(w.value,R);return new Proxy(y,{get(L,Z){if(typeof Z!=="string")return;if(D(Z))return;if(!f(Z))return M(Z);return Reflect.get(L,Z)}})}var n3="__vite_start_time"in globalThis,p3=typeof window!=="undefined",vh="vitest"in globalThis,ZJ=NA({isServer:!n3&&!p3,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={};nw(m4,{users:()=>m0,userChanges:()=>d3,untrackedUserColumnNames:()=>o3,twoFactorMethod:()=>qA,trackedUserColumnName:()=>ZA,trackableUserColumnNames:()=>jA,role:()=>xA,players:()=>h4,passwordResetAttempts:()=>i3,loginHistory:()=>u3,games:()=>X2,banishedIps:()=>S2});function CA(T){return K`lower(${T})`}var xA=kX("role",["admin","user"]),m0=rJ("users",{id:P$().primaryKey().defaultRandom(),username:Y$({length:16}).notNull(),email:Y$({length:254}).notNull(),hash:Y$({length:64}).notNull(),salt:Y$({length:36}).notNull(),createdAt:WJ({withTimezone:!0}).notNull().defaultNow(),createdIp:Y$({length:45}).notNull(),isActive:$F().notNull().default(!1),verifiedAt:WJ({withTimezone:!0}),userRole:xA().default("user")},(T)=>[q4("usernameUniqueIndex").on(CA(T.username)),q4("emailUniqueIndex").on(CA(T.email))]),o3=["id","createdAt","createdIp","isActive","salt","verifiedAt"],jA=["username","email","hash","userRole"],ZA=kX("trackedUserColumnName",jA),d3=rJ("userChanges",{id:P$().primaryKey().defaultRandom(),userId:P$().notNull().references(()=>m0.id),changedAt:WJ({withTimezone:!0}).notNull().defaultNow(),changedIp:Y$({length:45}).notNull(),changedColumn:ZA().notNull(),oldValue:Y$({length:255}),newValue:Y$({length:255})}),X2=rJ("games",{id:P$().primaryKey().defaultRandom()}),h4=rJ("players",{userId:P$().notNull().references(()=>m0.id),gameId:P$().notNull().references(()=>X2.id),score:IX().notNull()},(T)=>[t5({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),u3=rJ("loginHistory",{id:P$().primaryKey().defaultRandom(),userId:P$().references(()=>m0.id),loginTime:WJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:Y$({length:45}).notNull(),userAgent:Y$({length:1024}),successful:$F().notNull().default(!1)}),qA=kX("twoFactorMethod",["email","phone"]),i3=rJ("passwordResetAttempts",{id:P$().primaryKey().defaultRandom(),userId:P$().notNull().references(()=>m0.id),requestedIp:Y$({length:45}).notNull(),requestedAt:WJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:Y$({length:45}),succeededAt:WJ({withTimezone:!0}),verificationMethod:qA().notNull()}),S2=rJ("banishedIps",{ip:Y$({length:45}).primaryKey(),reason:Y$({length:2048}).notNull(),banishedAt:WJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:WJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class g4{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(t3.resolve(__dirname,"notify_update.sql"));let T=[W$(m0),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:ZJ.POSTGRES_HOST,port:ZJ.POSTGRES_PORT,user:ZJ.POSTGRES_USER,password:ZJ.POSTGRES_PASSWORD,database:ZJ.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 a3}from"node:path";import{existsSync as c4,mkdirSync as IA,readFileSync as l3,writeFileSync as r3,rmSync as bA,readdirSync as vA,statSync as PA}from"node:fs";import{resolve as n4}from"node:path";var hA=class{get initialized(){return c4(this.rootDir)}initialize(){if(!this.initialized)IA(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 l3($,"utf-8");return null}setItem(T,$){this.initialize();let J=n4(this.rootDir,T);r3(J,$)}removeItem(T){let $=n4(this.rootDir,T);if(c4($))this.initialize(),bA($)}key(T){var $;return($=vA(this.rootDir).sort((F,X)=>{let S=PA(F);return PA(X).ctimeMs-S.ctimeMs})[T])!=null?$:null}clear(){bA(this.rootDir,{recursive:!0}),IA(this.rootDir,{recursive:!0})}get length(){return vA(this.rootDir).length}};var p4=new hA({path:a3(process.cwd(),"storage")});import*as Y2 from"node:fs";import*as mA from"node:readline";function s3(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(W,F,X,S,Y)=>{let w={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[X];return`${S}-${w}-${F}T${Y}`});return new Date(J)}async function gA(T,$="/var/log/nginx/access.log",J=new Date){let W=new Map;if(!Y2.existsSync($))return T.error(`Log file not found: ${$}`),W;let F=Y2.createReadStream($),X=mA.createInterface({input:F,crlfDelay:Number.POSITIVE_INFINITY}),S=new Date(J.getTime()-3600000);return X.on("line",(Y)=>{let A=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,w=Y.match(A);if(w?.groups){let G=w.groups.ip,M=w.groups.dateTime,H=s3(M);if(!Number.isNaN(H.getTime())){if(H>=S&&H<=J){let f=W.get(G);if(!f)f=[],W.set(G,f);f.push(Y)}}else T.error(`Failed to parse date: ${M}`)}}),new Promise((Y,A)=>{X.on("error",(w)=>{A(w)}),X.on("close",()=>{Y(W)})})}var e3=["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 cA(T){return e3+T.join(`
|
|
96
96
|
|
|
97
|
-
`)}var
|
|
98
|
-
`));let V=!1;for(let B of
|
|
99
|
-
`),V=!0;break}if(V)continue;if(T.usdBudget>T.usdMinimum){let B=
|
|
100
|
-
`);else
|
|
101
|
-
`);w++}else{J.warn("\uD83D\uDCB0 insufficient funds to process all logs"),J.warn(`\uD83D\uDCB0 got through ${w}/${
|
|
102
|
-
`);break}}let Y
|
|
97
|
+
`)}var nA={schema:_T.union([_T.object({shouldBanIp:_T.literal(!1)}),_T.object({shouldBanIp:_T.literal(!0),veryConciseReason:_T.string()})]),fallback:{shouldBanIp:!1}};var $O=[".env","php"];async function pA({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)}}),S=await gA(J,$,W),Y=[],A=T.from(nA),w=0,G=0;for(let[Z,E]of S){J.info(`\uD83D\uDD0D ruling on ${Z}. logs:`),J.info(E.map((B)=>` ${B}`).join(`
|
|
98
|
+
`));let V=!1;for(let B of $O)if(E.some((k)=>k.includes(B))){Y.push({ip:Z,reason:`Always ban ${B}`}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${Z}--always ban ${B}
|
|
99
|
+
`),V=!0;break}if(V)continue;if(T.usdBudget>T.usdMinimum){let B=cA(E),k=await A(B);if(k.shouldBanIp)Y.push({ip:Z,reason:k.veryConciseReason}),J.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${Z}--${k.veryConciseReason}
|
|
100
|
+
`);else G++,J.info(` \uD83D\uDD4A\uFE0F not banning ${Z}
|
|
101
|
+
`);w++}else{J.warn("\uD83D\uDCB0 insufficient funds to process all logs"),J.warn(`\uD83D\uDCB0 got through ${w}/${S.size} ips
|
|
102
|
+
`);break}}let M=Y.length;if(Y.length>0)await X.drizzle.insert(S2).values(Y).onConflictDoNothing();let H=[],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(S2.banishedAt,D)}))}catch(Z){J.error(Z)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(H.map((Z)=>new Promise((E,V)=>TO(`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 qJ=new Z2;Object.assign(console,qJ.logger,{log:qJ.logger.info});process.on("SIGINT",()=>{qJ.logger.info("\u2757 received SIGINT; exiting gracefully"),A2()});process.on("SIGTERM",()=>{qJ.logger.info("\u2757 received SIGTERM; exiting gracefully"),A2()});process.on("exit",()=>{qJ.logger.info("\u2757 received exit; exiting gracefully"),A2()});qJ.logger.info("\uD83D\uDEEB tribunal worker ready");var JO=new A7({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:ZJ.OPENAI_API_KEY,cachingMode:"off",logger:qJ.logger});if(ZJ.OPENAI_API_KEY===void 0&&!("VITEST"in import.meta.env))throw new Error("OPENAI_API_KEY is not set and vitest is not running.");await pA({generator:JO,logFilePath:"/var/log/nginx/access.log",logger:qJ.logger});A2();function A2(){qJ.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}
|