tempest.games 0.1.27 → 0.1.29
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 +18 -0
- package/bin/backend.worker.tribunal.bun.js +36 -34
- package/bin/setup-db.bun.js +50 -50
- package/package.json +16 -11
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var Ik=Object.create;var{getPrototypeOf:jk,defineProperty:gW,getOwnPropertyNames:xk}=Object;var Zk=Object.prototype.hasOwnProperty;var hy=(T,S,$)=>{$=T!=null?Ik(jk(T)):{};let f=S||!T||!T.__esModule?gW($,"default",{value:T,enumerable:!0}):$;for(let M of xk(T))if(!Zk.call(f,M))gW(f,M,{get:()=>T[M],enumerable:!0});return f};var vy=(T,S)=>()=>(S||T((S={exports:{}}).exports,S),S.exports);var bk=(T,S)=>{for(var $ in S)gW(T,$,{get:S[$],enumerable:!0,configurable:!0,set:(f)=>S[$]=()=>f})};var Py=import.meta.require;function jf(T=Math.random){return T().toString(36).slice(2)}class IM extends Promise{fate;resolve;reject;done=!1;constructor(T){let S,$;super((f,M)=>{S=f,$=M});this.resolve=S,this.reject=$,this.use(T instanceof Promise?T:new Promise(T))}pass(T,S){if(T===this.fate)this.resolve(S),this.done=!0}fail(T,S){if(T===this.fate)this.reject(S),this.done=!0}use(T){if(T instanceof Promise){let S=T;this.fate=S,S.then(($)=>{this.pass(S,$)},($)=>{this.fail(S,$)})}else this.resolve(T),this.fate=void 0}}function gy(T){return Object.entries(T)}var NA=(T,S,$=WT.STORE)=>{return uS($,{key:`${T.key}:JSON`,get:({get:f})=>S.toJson(f(T)),set:({set:f},M)=>{f(T,S.fromJson(M))}})};function x(T){while(T.child!==null)T=T.child;return T}function CA(T){while(T.parent!==null)T=T.parent;return T}class fT{Subscriber;subscribers=new Map;subscribe(T,S){return this.subscribers.set(T,S),()=>{this.unsubscribe(T)}}unsubscribe(T){this.subscribers.delete(T)}next(T){let S=this.subscribers.values();for(let $ of S)$(T)}}class tW extends fT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function A$(T,S,$){let f={key:S.key,type:"atom_family"},M=T.families.get(S.key);if(M)T.logger.error("\u2757","atom_family",S.key,`Overwriting an existing ${dS(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new fT,W=Object.assign((A)=>{let w=s(A),X={key:S.key,subKey:w},Y=`${S.key}(${w})`,k=x(T),R=S.default,z={key:Y,default:R instanceof Function?R(A):R};if(S.effects)z.effects=S.effects(A);let Q=QS(k,z,X);return F.next({type:"state_creation",token:Q}),Q},f,{subject:F,install:(A)=>A$(A,S),internalRoles:$});return T.families.set(S.key,W),T.defaults.set(S.key,S.default),f}function IA(T,S){if("mutable"in S)return jM(T,S);return A$(T,S)}function R$(T,S,$){let f={key:S.key,type:"readonly_selector_family"},M=T.families.get(S.key);if(M)T.logger.error("\u2757","readonly_selector_family",S.key,`Overwriting an existing ${dS(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new fT,W=Object.assign((A)=>{let w=s(A),X={key:S.key,subKey:w},Y=`${S.key}(${w})`,k=x(T),R=xM(k,{key:Y,get:S.get(A)},X);return F.next({type:"state_creation",token:R}),R},f,{internalRoles:$,subject:F,install:(A)=>R$(A,S),default:(A)=>{return S.get(A)({get:(...X)=>wT(T,...X),find:(X,Y)=>KT(T,X,Y),seek:(X,Y)=>IT(T,X,Y),json:(X)=>cT(T,X)})}});return T.families.set(S.key,W),f}function ZM(T,S){if("set"in S)return bM(T,S);return R$(T,S)}class aF{_buffer;_index=0;constructor(T){let S;if(typeof T==="number")S=T;else S=T.length;this._buffer=Array.from({length:S})}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 aF([...this._buffer]);return T._index=this._index,T}}var qk={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function xf(T,S){let $=s(S),f=`${T.key}(${$})`,M=qk[T.type],F={key:f,type:M};if(M==="molecule")Object.assign(F,{key:S,family:T});else Object.assign(F,{family:{key:T.key,subKey:$}});return Object.assign(F,{counterfeit:!0}),F}function YS(T){let S={key:T.key,type:T.type};if("family"in T)S.family=T.family;return S}var H7=Symbol("provenance");function pW(T,S,$){let f=s($);try{let M=[],F;if(S==="root")M.push(T.molecules.get('"root"')),F="all";else if(typeof S==="string"&&S.startsWith(mk)){F="any";let X=s(S),Y=T.molecules.get(X);if(!Y)throw new Error(`Molecule ${X} not found in store "${T.config.name}"`);M.push(Y)}else if($.startsWith("T$--")){F="all";for(let Y of S){let k=s(Y),R=T.molecules.get(k);if(!R)throw new Error(`Molecule ${k} not found in store "${T.config.name}"`);M.push(R)}}else{F="any";let Y=s(S),k=T.molecules.get(Y);if(!k)throw new Error(`Molecule ${Y} not found in store "${T.config.name}"`);M.push(k)}let J=new Zf(M,$);J._dependsOn=F,T.molecules.set(f,J);for(let X of M)X.below.set(J.stringKey,J);let W={type:"molecule_creation",subType:"modern",key:J.key,provenance:S},A=x(T);if(XT(A)&&A.transactionMeta.phase==="building")A.transactionMeta.update.updates.push(W);else A.on.moleculeCreationStart.next(W)}catch(M){if(M instanceof Error)T.logger.error("\u274C","molecule",f,"allocation failed:",M.message)}return $}function qM(T,S){let $=s(S),f=T.molecules.get($);if(!f)throw new Error(`Molecule ${$} not found in store "${T.config.name}"`);for(let w of f.joins.values())w.relations.delete(f.key),w.molecules.delete(f.stringKey);let M;if(f.above.size===1)M=f.above.values().next().value.key;else M=[...f.above.values()].map(({key:w})=>w);let F=[];for(let w of f.tokens.values()){let X=w.family;F.push([X.key,T.valueMap.get(w.key)])}for(let w of f.tokens.values())RS(T,w);for(let w of f.below.values())if(w.dependsOn==="all")qM(T,w.key);else if(w.above.delete(f.stringKey),w.above.size===0)qM(T,w.key);f.below.clear();let J={type:"molecule_disposal",subType:"modern",key:f.key,values:F,provenance:M},W=x(T);if(XT(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.updates.push(J);else W.on.moleculeDisposal.next(J);W.molecules.delete(f.stringKey);for(let w of f.above.values())w.below.delete(f.stringKey)}var mk="T$";function bf(T){return jA(WT.STORE,T)}function Tf(T){return IA(WT.STORE,T)}function iW(...T){if(T.length===2)return wT(WT.STORE,...T);return wT(WT.STORE,...T)}var uW=(T)=>(S,$,f,M,...F)=>{console[T](`${S} ${$} "${f}" ${M}`,...F)},hk={error:uW("error"),info:uW("info"),warn:uW("warn")};class dW{logLevel;filter;logger;constructor(T,S,$=hk){this.logLevel=T;this.filter=S;this.logger=$}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)}}function sF(T){return ZM(WT.STORE,T)}function mM(T){return lW(T,WT.STORE)}class NS{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,S)=>`${T}:${S}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,S){let $=this.relations.get(T),f=this.relations.get(S);if($)$.add(S);else $=new Set([S]),this.relations.set(T,$);if(f)f.add(T);else f=new Set([T]),this.relations.set(S,f)}deleteRelation(T,S){let $=this.relations.get(T);if($){if($.delete(S),$.size===0)this.relations.delete(T);let f=this.relations.get(S);if(f){if(f.delete(T),f.size===0)this.relations.delete(S)}}}replaceRelationsUnsafely(T,S){this.relations.set(T,new Set(S));for(let $ of S){let f=new Set().add(T);this.relations.set($,f)}}replaceRelationsSafely(T,S){let $=this.relations.get(T),f=this.isAType?.(T)?T:void 0,M=f===void 0?T:void 0;if($)for(let F of $){f??=F,M??=F;let J=this.relations.get(F);if(J){if(J.size===1)this.relations.delete(F);else J.delete(T);this.contents.delete(this.makeContentKey(f,M))}}this.relations.set(T,new Set(S));for(let F of S){let J=this.relations.get(F);if(J)J.add(T);else J=new Set().add(T),this.relations.set(F,J)}}getContentInternal(T){return this.contents.get(T)}setContent(T,S){this.contents.set(T,S)}deleteContent(T){this.contents.delete(T)}constructor(T,S){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!S?.externalStore)this.relations=new Map(T.relations?.map(([$,f])=>[$,new Set(f)])),this.contents=new Map(T.contents);if(this.isAType=S?.isAType??null,this.isBType=S?.isBType??null,this.isContent=S?.isContent??null,S?.makeContentKey)this.makeContentKey=S.makeContentKey;if(S?.externalStore){let $=S.externalStore;if(this.has=(f,M)=>$.has(f,M),this.addRelation=(f,M)=>{$.addRelation(f,M)},this.deleteRelation=(f,M)=>{$.deleteRelation(f,M)},this.replaceRelationsSafely=(f,M)=>{$.replaceRelationsSafely(f,M)},this.replaceRelationsUnsafely=(f,M)=>{$.replaceRelationsUnsafely(f,M)},this.getRelatedKeys=(f)=>$.getRelatedKeys(f),$.getContent)this.getContentInternal=(f)=>{return $.getContent(f)},this.setContent=(f,M)=>{$.setContent(f,M)},this.deleteContent=(f)=>{$.deleteContent(f)};for(let[f,M]of T.relations??[]){let F=this.isAType?.(f)?f:void 0,J=F===void 0?f:void 0;for(let W of M)F??=W,J??=W,this.addRelation(F,J)}for(let[f,M]of T.contents??[])this.setContent(f,M)}if(S?.warn)this.warn=S.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,S])=>[T,[...S]]),contents:[...this.contents.entries()]}}set(T,...S){let $=typeof S[0]==="string"?S[0]:T[this.b],f=S[1]??typeof S[0]==="string"?void 0:S[0];switch(T=typeof T==="string"?T:T[this.a],this.cardinality){case"1:1":{let M=this.getRelatedKey(T);if(M&&M!==$)this.delete(T,M)}case"1:n":{let M=this.getRelatedKey($);if(M&&M!==T)this.delete(M,$)}}if(f){let M=this.makeContentKey(T,$);this.setContent(M,f)}return this.addRelation(T,$),this}delete(T,S){S=typeof S==="string"?S:T[this.b];let $=typeof T==="string"?T:T[this.a];if($===void 0&&typeof S==="string"){let f=this.getRelatedKeys(S);if(f)for(let M of f)this.delete(M,S)}if(typeof $==="string"&&S===void 0){let f=this.getRelatedKeys($);if(f)for(let M of f)this.delete($,M)}if(typeof $==="string"&&typeof S==="string"){this.deleteRelation($,S);let f=this.makeContentKey($,S);this.deleteContent(f)}return this}getRelatedKey(T){let S=this.getRelatedKeys(T);if(S){if(S.size>1)this.warn?.(`${S.size} related keys were found for key "${T}": (${[...S].map((f)=>`"${f}"`).join(", ")}). Only one related key was expected.`);let $;for(let f of S){$=f;break}return $}}replaceRelations(T,S,$){let f=!Array.isArray(S),M=f?Object.keys(S):S;if($?.reckless)this.replaceRelationsUnsafely(T,M);else this.replaceRelationsSafely(T,M);if(f)for(let F of M){let J=this.makeContentKey(T,F),W=S[F];this.setContent(J,W)}return this}getContent(T,S){let $=this.makeContentKey(T,S);return this.getContentInternal($)}getRelationEntries(T){let S=T[this.a],$=T[this.b];if(S!==void 0&&$===void 0){let f=this.getRelatedKeys(S);if(f)return[...f].map((M)=>{return[M,this.getContent(S,M)]})}if(S===void 0&&$!==void 0){let f=this.getRelatedKeys($);if(f)return[...f].map((M)=>{return[M,this.getContent(M,$)]})}return[]}has(T,S){if(S)return this.getRelatedKeys(T)?.has(S)??!1;return this.relations.has(T)}}function oT(T){return"epoch"in T.transactionMeta}function XT(T){return"phase"in T.transactionMeta}var ZA=(T)=>{let S=x(T);if(!XT(S)){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",S.transactionMeta.update.key,"Aborting transaction"),S.parent.child=null};var vk=(T)=>T[0].toUpperCase()+T.slice(1);function dS(T){return T.type.split("_").map(vk).join(" ")}class US extends Error{constructor(...T){let S=T[0],$=T.length===2?T[1]:T[2];if(T.length===2)super(`${dS(S)} ${s(S.key)} not found in store "${$.config.name}".`);else{let f=T[1];super(`${dS(S)} "${S.key}" member ${s(f)} not found in store "${$.config.name}".`)}}}function v$(T,S,$){return(...f)=>{let M=TT(T,$);if(M)return M.run(f,S);throw new US(T,$)}}var eF=(T)=>(S)=>T instanceof Function?T(S):T;var P$=(T,S)=>{if(S.valueMap.has(T.key))return S.logger.info("\uD83D\uDCD6",T.type,T.key,"reading cached value"),bA(T,S);if(T.type==="selector"||T.type==="readonly_selector")return S.logger.info("\uD83E\uDDEE",T.type,T.key,"computing value"),T.get();let $=T.default instanceof Function?T.default():T.default;return S.logger.info("\uD83D\uDC81","atom",T.key,"could not find cached value; using default",$),T.default instanceof Function?T.default():T.default};var qA=(T,S)=>{if(T.operation.open){let $=performance.now();return T.logger.info("\u2757",S.type,S.key,`deferring setState at T-${$} until setState for "${T.operation.token.key}" is done`),$}T.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:S},T.logger.info("\u2B55",S.type,S.key,`operation start in store "${T.config.name}"${!XT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},mA=(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)},hA=(T,S)=>{if(!T.operation.open)return T.logger.error("\uD83D\uDC1E","unknown",S,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return T.operation.done.has(S)},qf=(T,S)=>{if(!T.operation.open){T.logger.error("\uD83D\uDC1E","unknown",S,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}T.operation.done.add(S)};var vA=(T,S,$)=>{switch(T.type){case"mutable_atom":$.logger.info("\uD83D\uDCE2",T.type,T.key,"is now (",S.newValue,") subscribers:",T.subject.subscribers);break;default:$.logger.info("\uD83D\uDCE2",T.type,T.key,"went (",S.oldValue,"->",S.newValue,") subscribers:",T.subject.subscribers)}T.subject.next(S)};var rW=(T,S)=>{let $=x(S),f=$.selectorAtoms.getRelatedKeys(T.key);if($.logger.info("\uD83E\uDDF9",T.type,T.key,f?`evicting ${f.size} states downstream:`:"no downstream states",f??"to evict"),f){if($.operation.open)$.logger.info("\uD83E\uDDF9",T.type,T.key,`[ ${[...$.operation.done].join(", ")} ] already done`);for(let M of f){if(hA($,M))continue;PA(M,$),qf($,M)}}};function Pk(T,S){if(cA(S.newValue))return!1;if(T.includes("\uD83D\uDD0D"))return!1;return!0}var nA=(T,S,$)=>{let{key:f}=T,M=x($);if(!XT(M)||M.transactionMeta.phase!=="building"){$.logger.error("\uD83D\uDC1E","atom",f,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!Pk(f,S))return;let J={type:"atom_update",key:f,...S};if(T.family)J.family=T.family;M.transactionMeta.update.updates.push(J),$.logger.info("\uD83D\uDCC1","atom",f,"stowed (",S.oldValue,"->",S.newValue,")")};var oA=(T,S,$)=>{let f=P$(T,$),M=f;if(T.type==="mutable_atom"&&XT($)){let{parent:J}=$;M=hM(T,J,$)}if(M=eF(S)(M),$.logger.info("\uD83D\uDCDD","atom",T.key,"set to",M),M=vS(T.key,M,T.subject,$),gA(T.key,$))tA(T.key,$);qf($,T.key),rW(T,$);let F={oldValue:f,newValue:M};if(oT($))vA(T,F,$);else if($.parent){if($.on.transactionApplying.state===null)nA(T,F,$);else if(T.key.startsWith("*")){let J=T.key.slice(1),W=$.atoms.get(J),A=$.valueMap.get(J);if(W.type==="mutable_atom"&&XT($)){let{parent:X}=$;A=hM(W,X,$)}if(A.do(F.newValue)===null)rW(W,$)}}};var TJ=(T,S,$)=>{switch(T.type){case"atom":case"mutable_atom":oA(T,S,$);break;case"selector":T.set(S);break}};function SJ(T,S){if(S.family){let $=T.families.get(S.family.key);if($)return $}}function bT(T,...S){let $,f,M,F;if(S.length===2){if($=S[0],F=S[1],f=SJ(T,$)??null,f)M=$.family?dT($.family.subKey):null,$=KT(T,f,M)}else f=S[0],M=S[1],F=S[2],$=KT(T,f,M);if("counterfeit"in $){let A=T.disposalTraces.buffer.find((w)=>w?.key===$.key);T.logger.error("\u274C",$.type,$.key,`could not be set because it was not found in the store "${T.config.name}".`,A?`This state was previously disposed:
|
|
4
|
-
${A.trace}`:"No previous disposal trace was found.");return}let J=qA(T
|
|
5
|
-
${J.trace}`:"No previous disposal trace was found."),f.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(f.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(f.key))return T.defaults.get($.family.key);let W=TT(f,T).default(F);return T.defaults.set(f.key,W),W}case"molecule_family":throw new US(f,F,T)}}switch($.type){case"atom":case"mutable_atom":case"selector":case"readonly_selector":return P$(TT($,T),T);case"molecule":return TT($,T).instance}}class Zf{key;type="molecule";stringKey;family;_dependsOn;get dependsOn(){if(this.family)return this.family.dependsOn;return this._dependsOn}subject=new fT;tokens=new Map;above=new Map;below=new Map;joins=new Map;instance;constructor(T,S,$){this.key=S;if(this.stringKey=s(S),$)this.family=$,this._dependsOn=$.dependsOn;if(T)for(let f of T)this.above.set(f.stringKey,f)}}function iA(T){return T[0].toUpperCase()+T.slice(1)}function H$(T,S,$,f,...M){let F=CA(T),J=x(T),W=s(f);J.moleculeInProgress=W;let A=Array.isArray(S)?S:[S],w=A.map((D)=>{if(D instanceof Zf)return D;let N=s(D.key),V=T.molecules.get(N);if(!V)throw new Error(`Molecule ${N} not found in store "${T.config.name}"`);return V}),X=new Zf(w,f,$);J.molecules.set(W,X);for(let D of w)D.below.set(X.stringKey,X);let Y={get:(...D)=>wT(x(F),...D),set:(...D)=>{bT(x(F),...D)},seek:(D,N)=>IT(x(F),D,N),json:(D)=>cT(x(F),D),run:(D,N=jf())=>v$(D,N,x(T)),make:(D,N,V,...L)=>H$(x(F),D,N,V,...L),dispose:(D)=>{RS(x(F),D)},env:()=>fJ(x(F)),bond:(D,N)=>{if(D.type==="join"){let{as:V}=N,L=vM(D,F);L.molecules.set(W,X),X.joins.set(D.key,L);let Z=k.subject.subscribe(`join:${D.key}-${W}`,(G)=>{if(G.type==="molecule_disposal"){if(s(G.token.key)===W)Z(),L.molecules.delete(W)}});if(V===null)return;let _=D.a===V?D.b:D.a,E=uA(D,f),B=E[`${_}KeysOf${iA(V)}`],q=E[`${_}EntriesOf${iA(V)}`],v={relatedKeys:B};if(q)v=Object.assign(v,{relatedEntries:q});return v}return lS(X,TT(D,F),x(F))},claim:(D,N)=>{let{exclusive:V}=N,L=x(T).molecules.get(s(D.key));if(L)if(V){for(let Z of L.above.values())Z.below.delete(L.stringKey);L.above.clear(),L.above.set(X.stringKey,X),X.below.set(L.stringKey,L)}else L.above.set(X.stringKey,X),X.below.set(L.stringKey,L)},spawn:(D,N,...V)=>H$(x(T),[X],TT(D,T),N,...V)},k=TT($,T),R=k.new;X.instance=new R(Y,f,...M);let z={type:"molecule",key:f,family:$},Q={type:"molecule_creation",subType:"classic",token:z,family:$,context:A,params:M};if(oT(J))k.subject.next(Q);else if(XT(J)&&J.on.transactionApplying.state===null)J.transactionMeta.update.updates.push(Q);return J.moleculeInProgress=null,z}function aW(T,S,$){switch(S){case"newValue":{dA(T,$);break}case"oldValue":{RS($,T.token);break}}}function sW(T,S,$){switch(S){case"newValue":{RS($,T.token);break}case"oldValue":{dA(T,$),$.valueMap.set(T.token.key,T.value);break}}}function dA(T,S){let{family:$}=T.token;if($){let f=S.families.get($.key);if(f)KT(S,f,dT($.subKey))}}function eW(T,S,$){switch(S){case"newValue":switch(T.subType){case"classic":H$($,T.context,T.family,T.token.key,...T.params);break;case"modern":pW($,T.provenance,T.key);break}break;case"oldValue":switch(T.subType){case"classic":RS($,T.token);break;case"modern":qM($,T.key);break}break}}function T0(T,S,$){switch(S){case"newValue":switch(T.subType){case"classic":RS($,T.token);break;case"modern":qM($,T.key);break}break;case"oldValue":switch(T.subType){case"classic":{let f=H$($,T.context,T.family,T.token.key);for(let[M,F]of T.values){let J=`${M}(${s(f.key)})`,W=TT(f,$),A=W.tokens.has(J),w=$.families.get(M);if(w&&!A)lS(W,w,$);$.valueMap.set(J,F)}}break;case"modern":{pW($,T.provenance,T.key);for(let[f,M]of T.values){let F=$.families.get(f);if(F){KT($,F,T.key);let J=`${f}(${s(T.key)})`;$.valueMap.set(J,M)}}}}break}}function MJ(T,S,$){let f=T==="newValue"?S.updates:[...S.updates].reverse();for(let M of f)switch(M.type){case"atom_update":case"selector_update":$J(T,M,$);break;case"state_creation":aW(M,T,$);break;case"state_disposal":sW(M,T,$);break;case"molecule_creation":eW(M,T,$);break;case"molecule_disposal":T0(M,T,$);break;case"transaction_update":MJ(T,M,$);break}}function lA(T,S,$){if(oT($)&&T)$.transactionMeta.epoch.set(T,S)}function rA(T,S,$){if(!oT($))return;let M=$.transactionMeta.actionContinuities.getRelatedKey(T);if(M!==void 0)$.transactionMeta.epoch.set(M,S)}var aA=(T,S)=>{let $=x(S),{parent:f}=$;if(f===null||!XT($)||$.transactionMeta?.phase!=="building"){S.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}$.transactionMeta.phase="applying",$.transactionMeta.update.output=T,f.child=null,f.on.transactionApplying.next($.transactionMeta);let{updates:M}=$.transactionMeta.update;if(S.logger.info("\uD83D\uDEC4","transaction",$.transactionMeta.update.key,`Applying transaction with ${M.length} updates:`,M),MJ("newValue",$.transactionMeta.update,f),oT(f))rA($.transactionMeta.update.key,$.transactionMeta.update.epoch,f),TT({key:$.transactionMeta.update.key,type:"transaction"},S)?.subject.next($.transactionMeta.update),S.logger.info("\uD83D\uDEEC","transaction",$.transactionMeta.update.key,"Finished applying transaction.");else if(XT(f))f.transactionMeta.update.updates.push($.transactionMeta.update);f.on.transactionApplying.next(null)};function sA(T,S,$){if(!oT($))return;let{epoch:M,actionContinuities:F}=$.transactionMeta;if(F.set(T,S),!M.has(T))M.set(T,-1)}class PS extends Map{source;deleted=new Set;constructor(T){super();this.source=T}get(T){if(super.has(T))return super.get(T);if(!this.deleted.has(T)&&this.source.has(T))return this.source.get(T);return}set(T,S){return this.deleted.delete(T),super.set(T,S)}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 eA=(T,S,$,f)=>{let M=x($),F={parent:M,child:null,on:M.on,loggers:M.loggers,logger:M.logger,config:M.config,atoms:new PS(M.atoms),atomsThatAreDefault:new Set(M.atomsThatAreDefault),families:new PS(M.families),operation:{open:!1},readonlySelectors:new PS(M.readonlySelectors),timelines:new PS(M.timelines),timelineTopics:new NS(M.timelineTopics.toJSON()),trackers:new Map,transactions:new PS(M.transactions),selectorAtoms:new NS(M.selectorAtoms.toJSON()),selectorGraph:new NS(M.selectorGraph.toJSON(),{makeContentKey:(...w)=>w.sort().join(":")}),selectors:new PS(M.selectors),valueMap:new PS(M.valueMap),defaults:M.defaults,disposalTraces:$.disposalTraces.copy(),molecules:new PS(M.molecules),moleculeFamilies:new PS(M.moleculeFamilies),moleculeInProgress:M.moleculeInProgress,miscResources:new PS(M.miscResources)},J=T2(T,$),W={phase:"building",update:{type:"transaction_update",key:T,id:f,epoch:J===void 0?Number.NaN:J+1,updates:[],params:S,output:void 0},toolkit:{get:(...w)=>wT(A,...w),set:(...w)=>{bT(A,...w)},run:(w,X=jf())=>v$(w,X,A),find:(w,X)=>KT(A,w,X),seek:(w,X)=>IT(A,w,X),json:(w)=>cT(A,w),make:(w,X,Y,...k)=>H$(A,w,X,Y,...k),dispose:(...w)=>{RS(A,...w)},env:()=>fJ(A)}},A=Object.assign(F,{transactionMeta:W});return M.child=A,$.logger.info("\uD83D\uDEEB","transaction",T,"Building transaction with params:",S),A};function lW(T,S){let $={key:T.key,type:"transaction",run:(F,J)=>{let W=eA(T.key,F,S,J);try{let A=x(S),{toolkit:w}=W.transactionMeta,X=T.do(w,...F);return aA(X,A),X}catch(A){throw ZA(f),S.logger.warn("\uD83D\uDCA5","transaction",T.key,"caught:",A),A}},install:(F)=>lW(T,F),subject:new fT},f=x(S);f.transactions.set($.key,$);let M=YS($);return S.on.transactionCreation.next(M),M}function T2(T,S){let $=oT(S),f=$?S.transactionMeta.actionContinuities.getRelatedKey(T):void 0;return $&&f!==void 0?S.transactionMeta.epoch.get(f):void 0}class S2{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new NS({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new NS({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new NS({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new NS({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new aF(100);molecules=new Map;moleculeFamilies=new Map;moleculeInProgress=null;miscResources=new Map;on={atomCreation:new fT,atomDisposal:new fT,selectorCreation:new fT,selectorDisposal:new fT,timelineCreation:new fT,transactionCreation:new fT,transactionApplying:new tW(null),operationClose:new fT,moleculeCreationStart:new fT,moleculeCreationDone:new fT,moleculeDisposal:new fT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new dW("warn",(T,S,$)=>!$.includes("\uD83D\uDD0D"))];logger={error:(...T)=>{for(let S of this.loggers)S.error(...T)},info:(...T)=>{for(let S of this.loggers)S.info(...T)},warn:(...T)=>{for(let S of this.loggers)S.warn(...T)}};constructor(T,S=null){if(this.config={...S?.config,...T},S!==null){if(this.valueMap=new Map(S?.valueMap),this.operation={...S?.operation},oT(S))this.transactionMeta={epoch:new Map(S?.transactionMeta.epoch),actionContinuities:new NS(S?.transactionMeta.actionContinuities.toJSON())};for(let[,f]of S.families){if(f.internalRoles?.includes("mutable")||f.internalRoles?.includes("join"))continue;f.install(this)}let $=new Set;for(let[,f]of S.atoms){if($.has(f.key))continue;if(f.install(this),f.type==="mutable_atom"){let M=cT(S,f),F=D$(f);$.add(M.key),$.add(F.key)}}for(let[,f]of S.readonlySelectors)f.install(this);for(let[,f]of S.selectors){if($.has(f.key))continue;f.install(this)}for(let[,f]of S.transactions)f.install(this);for(let[,f]of S.timelines)f.install(this)}}}var WT={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new S2({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function TT(T,S){let $,f=S;while(f!==null){switch(T.type){case"atom":case"mutable_atom":$=f.atoms.get(T.key);break;case"selector":$=f.selectors.get(T.key);break;case"readonly_selector":$=f.readonlySelectors.get(T.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":$=f.families.get(T.key);break;case"timeline":$=f.timelines.get(T.key);break;case"transaction":$=f.transactions.get(T.key);break;case"molecule":$=f.molecules.get(s(T.key));break;case"molecule_family":$=f.moleculeFamilies.get(T.key);break}if($)return $;f=f.child}throw new US(T,S)}function FJ(T,S){let $;$=TT(T,S);let{family:f}=T;for(let J of $.joins.values())J.relations.delete($.key),J.molecules.delete($.stringKey);let M=[];for(let J of $.above.values())M.push(YS(J));let F=[];for(let J of $.tokens.values()){let W=J.family;F.push([W.key,S.valueMap.get(J.key)])}if(f){let J=TT(f,S),W={type:"molecule_disposal",subType:"classic",token:T,family:f,context:M,values:F};if(T.family)W.family=T.family;for(let w of $.tokens.values())RS(S,w);for(let w of $.below.values())if(w.dependsOn==="all")FJ(w,S);else if(w.above.delete($.stringKey),w.above.size===0)FJ(w,S);if($.below.clear(),XT(S)&&S.transactionMeta.phase==="building")S.transactionMeta.update.updates.push(W);else J.subject.next(W);S.molecules.delete($.stringKey)}for(let J of $.above.values())J.below.delete($.stringKey)}function z$(T,S,$){let f=T.families.get(S.key);if(f===void 0)throw new US(S,T);let M=f($),F=x(T);if(M.family&&F.moleculeInProgress===null){if(oT(F))switch(M.type){case"atom":case"mutable_atom":T.on.atomCreation.next(M);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(M);break}else if(XT(F)&&F.on.transactionApplying.state===null)F.transactionMeta.update.updates.push({type:"state_creation",token:M})}return M}function IT(T,S,$){let f=s($),M=`${S.key}(${f})`,F=x(T),J;switch(S.type){case"atom_family":case"mutable_atom_family":J=F.atoms.get(M);break;case"selector_family":J=F.selectors.get(M);break;case"readonly_selector_family":J=F.readonlySelectors.get(M);break;case"molecule_family":J=F.molecules.get(s($))}if(J)return YS(J);return J}function KT(T,S,$){let f=IT(T,S,$);if(f)return f;let M=T.molecules.get(s($));if(M)return lS(M,S,T);if(T.config.lifespan==="immortal"){let F=xf(S,$);return T.logger.error("\u274C",F.type,F.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),F}return f=z$(T,S,$),f}function RS(T,...S){let $,f;if(S.length===1)$=S[0],f=$.key;else{let F=S[0],J=S[1];$=F.type==="molecule_family"?IT(T,F,J)??xf(F,J):KT(T,F,J)}try{TT($,T)}catch(F){let J=T.disposalTraces.buffer.find((W)=>W?.key===$.key);T.logger.error("\u274C",$.type,$.key,`could not be disposed because it was not found in the store "${T.config.name}".`,J?`
|
|
3
|
+
var Ik=Object.create;var{getPrototypeOf:jk,defineProperty:gW,getOwnPropertyNames:xk}=Object;var Zk=Object.prototype.hasOwnProperty;var hy=(T,$,S)=>{S=T!=null?Ik(jk(T)):{};let f=$||!T||!T.__esModule?gW(S,"default",{value:T,enumerable:!0}):S;for(let M of xk(T))if(!Zk.call(f,M))gW(f,M,{get:()=>T[M],enumerable:!0});return f};var vy=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var bk=(T,$)=>{for(var S in $)gW(T,S,{get:$[S],enumerable:!0,configurable:!0,set:(f)=>$[S]=()=>f})};var Py=import.meta.require;function jf(T=Math.random){return T().toString(36).slice(2)}class IM extends Promise{fate;resolve;reject;done=!1;constructor(T){let $,S;super((f,M)=>{$=f,S=M});this.resolve=$,this.reject=S,this.use(T instanceof Promise?T:new Promise(T))}pass(T,$){if(T===this.fate)this.resolve($),this.done=!0}fail(T,$){if(T===this.fate)this.reject($),this.done=!0}use(T){if(T instanceof Promise){let $=T;this.fate=$,$.then((S)=>{this.pass($,S)},(S)=>{this.fail($,S)})}else this.resolve(T),this.fate=void 0}}function gy(T){return Object.entries(T)}var NA=(T,$,S=WT.STORE)=>{return u$(S,{key:`${T.key}:JSON`,get:({get:f})=>$.toJson(f(T)),set:({set:f},M)=>{f(T,$.fromJson(M))}})};function x(T){while(T.child!==null)T=T.child;return T}function CA(T){while(T.parent!==null)T=T.parent;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 S of $)S(T)}}class tW extends fT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function AS(T,$,S){let f={key:$.key,type:"atom_family"},M=T.families.get($.key);if(M)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${d$(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new fT,W=Object.assign((A)=>{let w=s(A),X={key:$.key,subKey:w},Y=`${$.key}(${w})`,k=x(T),R=$.default,z={key:Y,default:R instanceof Function?R(A):R};if($.effects)z.effects=$.effects(A);let Q=Q$(k,z,X);return F.next({type:"state_creation",token:Q}),Q},f,{subject:F,install:(A)=>AS(A,$),internalRoles:S});return T.families.set($.key,W),T.defaults.set($.key,$.default),f}function IA(T,$){if("mutable"in $)return jM(T,$);return AS(T,$)}function RS(T,$,S){let f={key:$.key,type:"readonly_selector_family"},M=T.families.get($.key);if(M)T.logger.error("\u2757","readonly_selector_family",$.key,`Overwriting an existing ${d$(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new fT,W=Object.assign((A)=>{let w=s(A),X={key:$.key,subKey:w},Y=`${$.key}(${w})`,k=x(T),R=xM(k,{key:Y,get:$.get(A)},X);return F.next({type:"state_creation",token:R}),R},f,{internalRoles:S,subject:F,install:(A)=>RS(A,$),default:(A)=>{return $.get(A)({get:(...X)=>wT(T,...X),find:(X,Y)=>KT(T,X,Y),seek:(X,Y)=>IT(T,X,Y),json:(X)=>cT(T,X)})}});return T.families.set($.key,W),f}function ZM(T,$){if("set"in $)return bM(T,$);return RS(T,$)}class aF{_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 aF([...this._buffer]);return T._index=this._index,T}}var qk={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function xf(T,$){let S=s($),f=`${T.key}(${S})`,M=qk[T.type],F={key:f,type:M};if(M==="molecule")Object.assign(F,{key:$,family:T});else Object.assign(F,{family:{key:T.key,subKey:S}});return Object.assign(F,{counterfeit:!0}),F}function Y$(T){let $={key:T.key,type:T.type};if("family"in T)$.family=T.family;return $}var H7=Symbol("provenance");function pW(T,$,S){let f=s(S);try{let M=[],F;if($==="root")M.push(T.molecules.get('"root"')),F="all";else if(typeof $==="string"&&$.startsWith(mk)){F="any";let X=s($),Y=T.molecules.get(X);if(!Y)throw new Error(`Molecule ${X} not found in store "${T.config.name}"`);M.push(Y)}else if(S.startsWith("T$--")){F="all";for(let Y of $){let k=s(Y),R=T.molecules.get(k);if(!R)throw new Error(`Molecule ${k} not found in store "${T.config.name}"`);M.push(R)}}else{F="any";let Y=s($),k=T.molecules.get(Y);if(!k)throw new Error(`Molecule ${Y} not found in store "${T.config.name}"`);M.push(k)}let J=new Zf(M,S);J._dependsOn=F,T.molecules.set(f,J);for(let X of M)X.below.set(J.stringKey,J);let W={type:"molecule_creation",subType:"modern",key:J.key,provenance:$},A=x(T);if(XT(A)&&A.transactionMeta.phase==="building")A.transactionMeta.update.updates.push(W);else A.on.moleculeCreationStart.next(W)}catch(M){if(M instanceof Error)T.logger.error("\u274C","molecule",f,"allocation failed:",M.message)}return S}function qM(T,$){let S=s($),f=T.molecules.get(S);if(!f)throw new Error(`Molecule ${S} not found in store "${T.config.name}"`);for(let w of f.joins.values())w.relations.delete(f.key),w.molecules.delete(f.stringKey);let M;if(f.above.size===1)M=f.above.values().next().value.key;else M=[...f.above.values()].map(({key:w})=>w);let F=[];for(let w of f.tokens.values()){let X=w.family;F.push([X.key,T.valueMap.get(w.key)])}for(let w of f.tokens.values())R$(T,w);for(let w of f.below.values())if(w.dependsOn==="all")qM(T,w.key);else if(w.above.delete(f.stringKey),w.above.size===0)qM(T,w.key);f.below.clear();let J={type:"molecule_disposal",subType:"modern",key:f.key,values:F,provenance:M},W=x(T);if(XT(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.updates.push(J);else W.on.moleculeDisposal.next(J);W.molecules.delete(f.stringKey);for(let w of f.above.values())w.below.delete(f.stringKey)}var mk="T$";function bf(T){return jA(WT.STORE,T)}function Tf(T){return IA(WT.STORE,T)}function iW(...T){if(T.length===2)return wT(WT.STORE,...T);return wT(WT.STORE,...T)}var uW=(T)=>($,S,f,M,...F)=>{console[T](`${$} ${S} "${f}" ${M}`,...F)},hk={error:uW("error"),info:uW("info"),warn:uW("warn")};class dW{logLevel;filter;logger;constructor(T,$,S=hk){this.logLevel=T;this.filter=$;this.logger=S}error=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!==null)this.logger.error(...T)};info=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel==="info")this.logger.info(...T)};warn=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...T)}}function sF(T){return ZM(WT.STORE,T)}function mM(T){return lW(T,WT.STORE)}class N${a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,$)=>`${T}:${$}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,$){let S=this.relations.get(T),f=this.relations.get($);if(S)S.add($);else S=new Set([$]),this.relations.set(T,S);if(f)f.add(T);else f=new Set([T]),this.relations.set($,f)}deleteRelation(T,$){let S=this.relations.get(T);if(S){if(S.delete($),S.size===0)this.relations.delete(T);let f=this.relations.get($);if(f){if(f.delete(T),f.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let S of $){let f=new Set().add(T);this.relations.set(S,f)}}replaceRelationsSafely(T,$){let S=this.relations.get(T),f=this.isAType?.(T)?T:void 0,M=f===void 0?T:void 0;if(S)for(let F of S){f??=F,M??=F;let J=this.relations.get(F);if(J){if(J.size===1)this.relations.delete(F);else J.delete(T);this.contents.delete(this.makeContentKey(f,M))}}this.relations.set(T,new Set($));for(let F of $){let J=this.relations.get(F);if(J)J.add(T);else J=new Set().add(T),this.relations.set(F,J)}}getContentInternal(T){return this.contents.get(T)}setContent(T,$){this.contents.set(T,$)}deleteContent(T){this.contents.delete(T)}constructor(T,$){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!$?.externalStore)this.relations=new Map(T.relations?.map(([S,f])=>[S,new Set(f)])),this.contents=new Map(T.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let S=$.externalStore;if(this.has=(f,M)=>S.has(f,M),this.addRelation=(f,M)=>{S.addRelation(f,M)},this.deleteRelation=(f,M)=>{S.deleteRelation(f,M)},this.replaceRelationsSafely=(f,M)=>{S.replaceRelationsSafely(f,M)},this.replaceRelationsUnsafely=(f,M)=>{S.replaceRelationsUnsafely(f,M)},this.getRelatedKeys=(f)=>S.getRelatedKeys(f),S.getContent)this.getContentInternal=(f)=>{return S.getContent(f)},this.setContent=(f,M)=>{S.setContent(f,M)},this.deleteContent=(f)=>{S.deleteContent(f)};for(let[f,M]of T.relations??[]){let F=this.isAType?.(f)?f:void 0,J=F===void 0?f:void 0;for(let W of M)F??=W,J??=W,this.addRelation(F,J)}for(let[f,M]of T.contents??[])this.setContent(f,M)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,$])=>[T,[...$]]),contents:[...this.contents.entries()]}}set(T,...$){let S=typeof $[0]==="string"?$[0]:T[this.b],f=$[1]??typeof $[0]==="string"?void 0:$[0];switch(T=typeof T==="string"?T:T[this.a],this.cardinality){case"1:1":{let M=this.getRelatedKey(T);if(M&&M!==S)this.delete(T,M)}case"1:n":{let M=this.getRelatedKey(S);if(M&&M!==T)this.delete(M,S)}}if(f){let M=this.makeContentKey(T,S);this.setContent(M,f)}return this.addRelation(T,S),this}delete(T,$){$=typeof $==="string"?$:T[this.b];let S=typeof T==="string"?T:T[this.a];if(S===void 0&&typeof $==="string"){let f=this.getRelatedKeys($);if(f)for(let M of f)this.delete(M,$)}if(typeof S==="string"&&$===void 0){let f=this.getRelatedKeys(S);if(f)for(let M of f)this.delete(S,M)}if(typeof S==="string"&&typeof $==="string"){this.deleteRelation(S,$);let f=this.makeContentKey(S,$);this.deleteContent(f)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((f)=>`"${f}"`).join(", ")}). Only one related key was expected.`);let S;for(let f of $){S=f;break}return S}}replaceRelations(T,$,S){let f=!Array.isArray($),M=f?Object.keys($):$;if(S?.reckless)this.replaceRelationsUnsafely(T,M);else this.replaceRelationsSafely(T,M);if(f)for(let F of M){let J=this.makeContentKey(T,F),W=$[F];this.setContent(J,W)}return this}getContent(T,$){let S=this.makeContentKey(T,$);return this.getContentInternal(S)}getRelationEntries(T){let $=T[this.a],S=T[this.b];if($!==void 0&&S===void 0){let f=this.getRelatedKeys($);if(f)return[...f].map((M)=>{return[M,this.getContent($,M)]})}if($===void 0&&S!==void 0){let f=this.getRelatedKeys(S);if(f)return[...f].map((M)=>{return[M,this.getContent(M,S)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}function oT(T){return"epoch"in T.transactionMeta}function XT(T){return"phase"in T.transactionMeta}var ZA=(T)=>{let $=x(T);if(!XT($)){T.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}T.logger.info("\uD83E\uDE82","transaction",$.transactionMeta.update.key,"Aborting transaction"),$.parent.child=null};var vk=(T)=>T[0].toUpperCase()+T.slice(1);function d$(T){return T.type.split("_").map(vk).join(" ")}class U$ extends Error{constructor(...T){let $=T[0],S=T.length===2?T[1]:T[2];if(T.length===2)super(`${d$($)} ${s($.key)} not found in store "${S.config.name}".`);else{let f=T[1];super(`${d$($)} "${$.key}" member ${s(f)} not found in store "${S.config.name}".`)}}}function vS(T,$,S){return(...f)=>{let M=TT(T,S);if(M)return M.run(f,$);throw new U$(T,S)}}var eF=(T)=>($)=>T instanceof Function?T($):T;var PS=(T,$)=>{if($.valueMap.has(T.key))return $.logger.info("\uD83D\uDCD6",T.type,T.key,"reading cached value"),bA(T,$);if(T.type==="selector"||T.type==="readonly_selector")return $.logger.info("\uD83E\uDDEE",T.type,T.key,"computing value"),T.get();let S=T.default instanceof Function?T.default():T.default;return $.logger.info("\uD83D\uDC81","atom",T.key,"could not find cached value; using default",S),T.default instanceof Function?T.default():T.default};var qA=(T,$)=>{if(T.operation.open){let S=performance.now();return T.logger.info("\u2757",$.type,$.key,`deferring setState at T-${S} until setState for "${T.operation.token.key}" is done`),S}T.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:$},T.logger.info("\u2B55",$.type,$.key,`operation start in store "${T.config.name}"${!XT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},mA=(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)},hA=(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($)},qf=(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 vA=(T,$,S)=>{switch(T.type){case"mutable_atom":S.logger.info("\uD83D\uDCE2",T.type,T.key,"is now (",$.newValue,") subscribers:",T.subject.subscribers);break;default:S.logger.info("\uD83D\uDCE2",T.type,T.key,"went (",$.oldValue,"->",$.newValue,") subscribers:",T.subject.subscribers)}T.subject.next($)};var rW=(T,$)=>{let S=x($),f=S.selectorAtoms.getRelatedKeys(T.key);if(S.logger.info("\uD83E\uDDF9",T.type,T.key,f?`evicting ${f.size} states downstream:`:"no downstream states",f??"to evict"),f){if(S.operation.open)S.logger.info("\uD83E\uDDF9",T.type,T.key,`[ ${[...S.operation.done].join(", ")} ] already done`);for(let M of f){if(hA(S,M))continue;PA(M,S),qf(S,M)}}};function Pk(T,$){if(cA($.newValue))return!1;if(T.includes("\uD83D\uDD0D"))return!1;return!0}var nA=(T,$,S)=>{let{key:f}=T,M=x(S);if(!XT(M)||M.transactionMeta.phase!=="building"){S.logger.error("\uD83D\uDC1E","atom",f,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!Pk(f,$))return;let J={type:"atom_update",key:f,...$};if(T.family)J.family=T.family;M.transactionMeta.update.updates.push(J),S.logger.info("\uD83D\uDCC1","atom",f,"stowed (",$.oldValue,"->",$.newValue,")")};var oA=(T,$,S)=>{let f=PS(T,S),M=f;if(T.type==="mutable_atom"&&XT(S)){let{parent:J}=S;M=hM(T,J,S)}if(M=eF($)(M),S.logger.info("\uD83D\uDCDD","atom",T.key,"set to",M),M=v$(T.key,M,T.subject,S),gA(T.key,S))tA(T.key,S);qf(S,T.key),rW(T,S);let F={oldValue:f,newValue:M};if(oT(S))vA(T,F,S);else if(S.parent){if(S.on.transactionApplying.state===null)nA(T,F,S);else if(T.key.startsWith("*")){let J=T.key.slice(1),W=S.atoms.get(J),A=S.valueMap.get(J);if(W.type==="mutable_atom"&&XT(S)){let{parent:X}=S;A=hM(W,X,S)}if(A.do(F.newValue)===null)rW(W,S)}}};var TJ=(T,$,S)=>{switch(T.type){case"atom":case"mutable_atom":oA(T,$,S);break;case"selector":T.set($);break}};function $J(T,$){if($.family){let S=T.families.get($.family.key);if(S)return S}}function bT(T,...$){let S,f,M,F;if($.length===2){if(S=$[0],F=$[1],f=$J(T,S)??null,f)M=S.family?dT(S.family.subKey):null,S=KT(T,f,M)}else f=$[0],M=$[1],F=$[2],S=KT(T,f,M);if("counterfeit"in S){let A=T.disposalTraces.buffer.find((w)=>w?.key===S.key);T.logger.error("\u274C",S.type,S.key,`could not be set because it was not found in the store "${T.config.name}".`,A?`This state was previously disposed:
|
|
4
|
+
${A.trace}`:"No previous disposal trace was found.");return}let J=qA(T,S);if(J){let A=T.on.operationClose.subscribe(`waiting to set "${S.key}" at T-${J}`,()=>{A(),T.logger.info("\uD83D\uDFE2",S.type,S.key,`resuming deferred setState from T-${J}`),bT(T,S,F)});return}let W=TT(S,T);TJ(W,F,T),mA(T)}function SJ(T,$,S){let{key:f,newValue:M,oldValue:F}=$,J=T==="newValue"?M:F,W={key:f,type:"atom"};if($.family)Object.assign(W,{family:$.family});bT(S,W,J)}function pA(T,$){let S=new fT,f={type:"molecule_family",key:$.key,dependsOn:$.dependsOn??"all"},M={...f,subject:S,new:$.new};return T.moleculeFamilies.set($.key,M),f}function l$(T,$,S){let f=zS(S,$,T.key);T.tokens.set(f.key,f);let M=XT(S)&&S.transactionMeta.phase==="building",F=S.moleculeInProgress===T.key;if(!M&&!F)T.subject.next({type:"state_creation",token:f});return f}function fJ(T){return{store:T}}function wT(T,...$){let S,f,M;if($.length===1){if(S=$[0],S.type!=="molecule"){if(f=$J(T,S)??null,f)M=S.family?dT(S.family.subKey):null,S=KT(T,f,M)}}else{f=$[0],M=$[1];let F;if(f.type==="molecule_family")F=IT(T,f,M)??xf(f,M);else F=KT(T,f,M);S=F}if("counterfeit"in S&&"family"in S){f=S.type==="molecule"?TT(S.family,T):T.families.get(S.family.key);let F=S.type==="molecule"?S.key:S.family.subKey,J=T.disposalTraces.buffer.find((W)=>W?.key===S.key);switch(T.logger.error("\u274C",S.type,S.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,J?`This state was previously disposed:
|
|
5
|
+
${J.trace}`:"No previous disposal trace was found."),f.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(f.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(f.key))return T.defaults.get(S.family.key);let W=TT(f,T).default(F);return T.defaults.set(f.key,W),W}case"molecule_family":throw new U$(f,F,T)}}switch(S.type){case"atom":case"mutable_atom":case"selector":case"readonly_selector":return PS(TT(S,T),T);case"molecule":return TT(S,T).instance}}class Zf{key;type="molecule";stringKey;family;_dependsOn;get dependsOn(){if(this.family)return this.family.dependsOn;return this._dependsOn}subject=new fT;tokens=new Map;above=new Map;below=new Map;joins=new Map;instance;constructor(T,$,S){this.key=$;if(this.stringKey=s($),S)this.family=S,this._dependsOn=S.dependsOn;if(T)for(let f of T)this.above.set(f.stringKey,f)}}function iA(T){return T[0].toUpperCase()+T.slice(1)}function HS(T,$,S,f,...M){let F=CA(T),J=x(T),W=s(f);J.moleculeInProgress=W;let A=Array.isArray($)?$:[$],w=A.map((D)=>{if(D instanceof Zf)return D;let N=s(D.key),V=T.molecules.get(N);if(!V)throw new Error(`Molecule ${N} not found in store "${T.config.name}"`);return V}),X=new Zf(w,f,S);J.molecules.set(W,X);for(let D of w)D.below.set(X.stringKey,X);let Y={get:(...D)=>wT(x(F),...D),set:(...D)=>{bT(x(F),...D)},seek:(D,N)=>IT(x(F),D,N),json:(D)=>cT(x(F),D),run:(D,N=jf())=>vS(D,N,x(T)),make:(D,N,V,...L)=>HS(x(F),D,N,V,...L),dispose:(D)=>{R$(x(F),D)},env:()=>fJ(x(F)),bond:(D,N)=>{if(D.type==="join"){let{as:V}=N,L=vM(D,F);L.molecules.set(W,X),X.joins.set(D.key,L);let Z=k.subject.subscribe(`join:${D.key}-${W}`,(G)=>{if(G.type==="molecule_disposal"){if(s(G.token.key)===W)Z(),L.molecules.delete(W)}});if(V===null)return;let _=D.a===V?D.b:D.a,E=uA(D,f),B=E[`${_}KeysOf${iA(V)}`],q=E[`${_}EntriesOf${iA(V)}`],v={relatedKeys:B};if(q)v=Object.assign(v,{relatedEntries:q});return v}return l$(X,TT(D,F),x(F))},claim:(D,N)=>{let{exclusive:V}=N,L=x(T).molecules.get(s(D.key));if(L)if(V){for(let Z of L.above.values())Z.below.delete(L.stringKey);L.above.clear(),L.above.set(X.stringKey,X),X.below.set(L.stringKey,L)}else L.above.set(X.stringKey,X),X.below.set(L.stringKey,L)},spawn:(D,N,...V)=>HS(x(T),[X],TT(D,T),N,...V)},k=TT(S,T),R=k.new;X.instance=new R(Y,f,...M);let z={type:"molecule",key:f,family:S},Q={type:"molecule_creation",subType:"classic",token:z,family:S,context:A,params:M};if(oT(J))k.subject.next(Q);else if(XT(J)&&J.on.transactionApplying.state===null)J.transactionMeta.update.updates.push(Q);return J.moleculeInProgress=null,z}function aW(T,$,S){switch($){case"newValue":{dA(T,S);break}case"oldValue":{R$(S,T.token);break}}}function sW(T,$,S){switch($){case"newValue":{R$(S,T.token);break}case"oldValue":{dA(T,S),S.valueMap.set(T.token.key,T.value);break}}}function dA(T,$){let{family:S}=T.token;if(S){let f=$.families.get(S.key);if(f)KT($,f,dT(S.subKey))}}function eW(T,$,S){switch($){case"newValue":switch(T.subType){case"classic":HS(S,T.context,T.family,T.token.key,...T.params);break;case"modern":pW(S,T.provenance,T.key);break}break;case"oldValue":switch(T.subType){case"classic":R$(S,T.token);break;case"modern":qM(S,T.key);break}break}}function T0(T,$,S){switch($){case"newValue":switch(T.subType){case"classic":R$(S,T.token);break;case"modern":qM(S,T.key);break}break;case"oldValue":switch(T.subType){case"classic":{let f=HS(S,T.context,T.family,T.token.key);for(let[M,F]of T.values){let J=`${M}(${s(f.key)})`,W=TT(f,S),A=W.tokens.has(J),w=S.families.get(M);if(w&&!A)l$(W,w,S);S.valueMap.set(J,F)}}break;case"modern":{pW(S,T.provenance,T.key);for(let[f,M]of T.values){let F=S.families.get(f);if(F){KT(S,F,T.key);let J=`${f}(${s(T.key)})`;S.valueMap.set(J,M)}}}}break}}function MJ(T,$,S){let f=T==="newValue"?$.updates:[...$.updates].reverse();for(let M of f)switch(M.type){case"atom_update":case"selector_update":SJ(T,M,S);break;case"state_creation":aW(M,T,S);break;case"state_disposal":sW(M,T,S);break;case"molecule_creation":eW(M,T,S);break;case"molecule_disposal":T0(M,T,S);break;case"transaction_update":MJ(T,M,S);break}}function lA(T,$,S){if(oT(S)&&T)S.transactionMeta.epoch.set(T,$)}function rA(T,$,S){if(!oT(S))return;let M=S.transactionMeta.actionContinuities.getRelatedKey(T);if(M!==void 0)S.transactionMeta.epoch.set(M,$)}var aA=(T,$)=>{let S=x($),{parent:f}=S;if(f===null||!XT(S)||S.transactionMeta?.phase!=="building"){$.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}S.transactionMeta.phase="applying",S.transactionMeta.update.output=T,f.child=null,f.on.transactionApplying.next(S.transactionMeta);let{updates:M}=S.transactionMeta.update;if($.logger.info("\uD83D\uDEC4","transaction",S.transactionMeta.update.key,`Applying transaction with ${M.length} updates:`,M),MJ("newValue",S.transactionMeta.update,f),oT(f))rA(S.transactionMeta.update.key,S.transactionMeta.update.epoch,f),TT({key:S.transactionMeta.update.key,type:"transaction"},$)?.subject.next(S.transactionMeta.update),$.logger.info("\uD83D\uDEEC","transaction",S.transactionMeta.update.key,"Finished applying transaction.");else if(XT(f))f.transactionMeta.update.updates.push(S.transactionMeta.update);f.on.transactionApplying.next(null)};function sA(T,$,S){if(!oT(S))return;let{epoch:M,actionContinuities:F}=S.transactionMeta;if(F.set(T,$),!M.has(T))M.set(T,-1)}class P$ extends Map{source;deleted=new Set;constructor(T){super();this.source=T}get(T){if(super.has(T))return super.get(T);if(!this.deleted.has(T)&&this.source.has(T))return this.source.get(T);return}set(T,$){return this.deleted.delete(T),super.set(T,$)}hasOwn(T){return super.has(T)}has(T){return!this.deleted.has(T)&&(super.has(T)||this.source.has(T))}delete(T){return this.deleted.add(T),super.delete(T)}}var eA=(T,$,S,f)=>{let M=x(S),F={parent:M,child:null,on:M.on,loggers:M.loggers,logger:M.logger,config:M.config,atoms:new P$(M.atoms),atomsThatAreDefault:new Set(M.atomsThatAreDefault),families:new P$(M.families),operation:{open:!1},readonlySelectors:new P$(M.readonlySelectors),timelines:new P$(M.timelines),timelineTopics:new N$(M.timelineTopics.toJSON()),trackers:new Map,transactions:new P$(M.transactions),selectorAtoms:new N$(M.selectorAtoms.toJSON()),selectorGraph:new N$(M.selectorGraph.toJSON(),{makeContentKey:(...w)=>w.sort().join(":")}),selectors:new P$(M.selectors),valueMap:new P$(M.valueMap),defaults:M.defaults,disposalTraces:S.disposalTraces.copy(),molecules:new P$(M.molecules),moleculeFamilies:new P$(M.moleculeFamilies),moleculeInProgress:M.moleculeInProgress,miscResources:new P$(M.miscResources)},J=T2(T,S),W={phase:"building",update:{type:"transaction_update",key:T,id:f,epoch:J===void 0?Number.NaN:J+1,updates:[],params:$,output:void 0},toolkit:{get:(...w)=>wT(A,...w),set:(...w)=>{bT(A,...w)},run:(w,X=jf())=>vS(w,X,A),find:(w,X)=>KT(A,w,X),seek:(w,X)=>IT(A,w,X),json:(w)=>cT(A,w),make:(w,X,Y,...k)=>HS(A,w,X,Y,...k),dispose:(...w)=>{R$(A,...w)},env:()=>fJ(A)}},A=Object.assign(F,{transactionMeta:W});return M.child=A,S.logger.info("\uD83D\uDEEB","transaction",T,"Building transaction with params:",$),A};function lW(T,$){let S={key:T.key,type:"transaction",run:(F,J)=>{let W=eA(T.key,F,$,J);try{let A=x($),{toolkit:w}=W.transactionMeta,X=T.do(w,...F);return aA(X,A),X}catch(A){throw ZA(f),$.logger.warn("\uD83D\uDCA5","transaction",T.key,"caught:",A),A}},install:(F)=>lW(T,F),subject:new fT},f=x($);f.transactions.set(S.key,S);let M=Y$(S);return $.on.transactionCreation.next(M),M}function T2(T,$){let S=oT($),f=S?$.transactionMeta.actionContinuities.getRelatedKey(T):void 0;return S&&f!==void 0?$.transactionMeta.epoch.get(f):void 0}class $2{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new N$({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new N$({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new N$({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new N$({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new aF(100);molecules=new Map;moleculeFamilies=new Map;moleculeInProgress=null;miscResources=new Map;on={atomCreation:new fT,atomDisposal:new fT,selectorCreation:new fT,selectorDisposal:new fT,timelineCreation:new fT,transactionCreation:new fT,transactionApplying:new tW(null),operationClose:new fT,moleculeCreationStart:new fT,moleculeCreationDone:new fT,moleculeDisposal:new fT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new dW("warn",(T,$,S)=>!S.includes("\uD83D\uDD0D"))];logger={error:(...T)=>{for(let $ of this.loggers)$.error(...T)},info:(...T)=>{for(let $ of this.loggers)$.info(...T)},warn:(...T)=>{for(let $ of this.loggers)$.warn(...T)}};constructor(T,$=null){if(this.config={...$?.config,...T},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},oT($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new N$($?.transactionMeta.actionContinuities.toJSON())};for(let[,f]of $.families){if(f.internalRoles?.includes("mutable")||f.internalRoles?.includes("join"))continue;f.install(this)}let S=new Set;for(let[,f]of $.atoms){if(S.has(f.key))continue;if(f.install(this),f.type==="mutable_atom"){let M=cT($,f),F=DS(f);S.add(M.key),S.add(F.key)}}for(let[,f]of $.readonlySelectors)f.install(this);for(let[,f]of $.selectors){if(S.has(f.key))continue;f.install(this)}for(let[,f]of $.transactions)f.install(this);for(let[,f]of $.timelines)f.install(this)}}}var WT={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new $2({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function TT(T,$){let S,f=$;while(f!==null){switch(T.type){case"atom":case"mutable_atom":S=f.atoms.get(T.key);break;case"selector":S=f.selectors.get(T.key);break;case"readonly_selector":S=f.readonlySelectors.get(T.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":S=f.families.get(T.key);break;case"timeline":S=f.timelines.get(T.key);break;case"transaction":S=f.transactions.get(T.key);break;case"molecule":S=f.molecules.get(s(T.key));break;case"molecule_family":S=f.moleculeFamilies.get(T.key);break}if(S)return S;f=f.child}throw new U$(T,$)}function FJ(T,$){let S;S=TT(T,$);let{family:f}=T;for(let J of S.joins.values())J.relations.delete(S.key),J.molecules.delete(S.stringKey);let M=[];for(let J of S.above.values())M.push(Y$(J));let F=[];for(let J of S.tokens.values()){let W=J.family;F.push([W.key,$.valueMap.get(J.key)])}if(f){let J=TT(f,$),W={type:"molecule_disposal",subType:"classic",token:T,family:f,context:M,values:F};if(T.family)W.family=T.family;for(let w of S.tokens.values())R$($,w);for(let w of S.below.values())if(w.dependsOn==="all")FJ(w,$);else if(w.above.delete(S.stringKey),w.above.size===0)FJ(w,$);if(S.below.clear(),XT($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.updates.push(W);else J.subject.next(W);$.molecules.delete(S.stringKey)}for(let J of S.above.values())J.below.delete(S.stringKey)}function zS(T,$,S){let f=T.families.get($.key);if(f===void 0)throw new U$($,T);let M=f(S),F=x(T);if(M.family&&F.moleculeInProgress===null){if(oT(F))switch(M.type){case"atom":case"mutable_atom":T.on.atomCreation.next(M);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(M);break}else if(XT(F)&&F.on.transactionApplying.state===null)F.transactionMeta.update.updates.push({type:"state_creation",token:M})}return M}function IT(T,$,S){let f=s(S),M=`${$.key}(${f})`,F=x(T),J;switch($.type){case"atom_family":case"mutable_atom_family":J=F.atoms.get(M);break;case"selector_family":J=F.selectors.get(M);break;case"readonly_selector_family":J=F.readonlySelectors.get(M);break;case"molecule_family":J=F.molecules.get(s(S))}if(J)return Y$(J);return J}function KT(T,$,S){let f=IT(T,$,S);if(f)return f;let M=T.molecules.get(s(S));if(M)return l$(M,$,T);if(T.config.lifespan==="immortal"){let F=xf($,S);return T.logger.error("\u274C",F.type,F.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),F}return f=zS(T,$,S),f}function R$(T,...$){let S,f;if($.length===1)S=$[0],f=S.key;else{let F=$[0],J=$[1];S=F.type==="molecule_family"?IT(T,F,J)??xf(F,J):KT(T,F,J)}try{TT(S,T)}catch(F){let J=T.disposalTraces.buffer.find((W)=>W?.key===S.key);T.logger.error("\u274C",S.type,S.key,`could not be disposed because it was not found in the store "${T.config.name}".`,J?`
|
|
6
6
|
This state was most recently disposed
|
|
7
|
-
${J.trace}`:"No previous disposal trace was found.");return}switch(
|
|
7
|
+
${J.trace}`:"No previous disposal trace was found.");return}switch(S.type){case"atom":case"mutable_atom":$0(S,T);break;case"selector":case"readonly_selector":S2(S,T);break;case"molecule":FJ(S,T);break}let{stack:M}=new Error;if(M){let F=M?.split(`
|
|
8
8
|
`)?.slice(3)?.join(`
|
|
9
|
-
`);T.disposalTraces.add({key:$.key,trace:F})}}var JJ=(T,S)=>x(S).atoms.has(T),nk=(T,S)=>x(S).selectors.has(T),ck=(T,S)=>x(S).readonlySelectors.has(T),f2=(T,S)=>JJ(T,S)||nk(T,S)||ck(T,S);var WJ=(T,S)=>{return x(S).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([f,{source:M}])=>M!==T).map(([f,{source:M}])=>M).filter((f)=>f2(f,S))};var $0=(T,S,$)=>{let f=[],M=WJ(T,$);while(M.length>0){let F=M.shift();if(S.has(F))continue;if(S.add(F),!JJ(F,$))M.push(...WJ(F,$));else if(!f.includes(F))f.push(F)}return f},M2=(T,S)=>{let $=T.key,f=WJ($,S),M=new Set;return f.flatMap((F)=>JJ(F,S)?F:$0(F,M,S))};var F2=(T,S,$,f)=>{let M=x(f);if(S.type==="atom"||S.type==="mutable_atom")M.selectorAtoms.set({selectorKey:T,atomKey:S.key}),f.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${S.key}"`);else{let F=$0(S.key,$,f);f.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${F.map((J)=>`"${J}"`).join(", ")} ]`);for(let J of F)M.selectorAtoms=M.selectorAtoms.set({selectorKey:T,atomKey:J})}$.add(S.key)};var AJ=(T,S,$)=>({get:(...f)=>{let M=x($),F;if(f.length===2){let[A,w]=f;switch(A.type){case"molecule_family":return wT($,A,w);default:if($.config.lifespan==="ephemeral")F=KT($,A,w);else{let X=IT($,A,w);if(X)F=X;else throw new US(A,w,$)}}}else[F]=f;if(F.type==="molecule")return wT($,F);let J=TT(F,$),W=P$(J,$);return $.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${F.key}" =`,W,")"),M.selectorGraph.set({upstreamSelectorKey:F.key,downstreamSelectorKey:T},{source:F.key}),F2(T,F,S,$),W},set:(...f)=>{let M,F;if(f.length===2)M=f[0],F=f[1];else{let A=f[0],w=f[1];F=f[2];let X=$.config.lifespan==="ephemeral"?KT($,A,w):IT($,A,w);if(!X)throw new US(A,w,$);M=X}let J=x($),W=TT(M,J);TJ(W,F,J)},find:(f,M)=>KT($,f,M),seek:(f,M)=>IT($,f,M),json:(f)=>cT($,f)});var xM=(T,S,$)=>{let f=x(T),M=new fT,F=new Set,{get:J,find:W,seek:A,json:w}=AJ(S.key,F,f),X=()=>{let z=S.get({get:J,find:W,seek:A,json:w});return vS(S.key,z,M,x(T)),F.clear(),z},Y={...S,subject:M,install:(z)=>xM(z,S,$),get:X,type:"readonly_selector",...$&&{family:$}};f.readonlySelectors.set(S.key,Y);let k=X();T.logger.info("\u2728",Y.type,Y.key,"=",k);let R={key:S.key,type:"readonly_selector"};if($)R.family=$;return R};var PM=(T,S,$)=>{let f=x(T),M=new fT,F=new Set,J=AJ(S.key,F,f),{find:W,get:A,seek:w,json:X}=J,Y={find:W,get:A,seek:w,json:X},k=(N=S.get,V=x(T))=>{let L=N(Y);return vS(S.key,L,M,V),F.clear(),L},z={...S,subject:M,install:(N)=>PM(N,S,$),get:k,set:(N)=>{let V=x(T),L=k(S.get,V),Z=eF(N)(L);if(T.logger.info("\uD83D\uDCDD","selector",S.key,"set (",L,"->",Z,")"),vS(S.key,Z,M,V),qf(V,S.key),oT(V))M.next({newValue:Z,oldValue:L});S.set(J,Z)},type:"selector",...$&&{family:$}};f.selectors.set(S.key,z);let Q=k();T.logger.info("\u2728",z.type,z.key,"=",Q);let D={key:S.key,type:"selector"};if($)D.family=$;return D};function uS(T,S){if("set"in S){let M=PM(T,S,void 0);return T.on.selectorCreation.next(M),M}let f=xM(T,S,void 0);return T.on.selectorCreation.next(f),f}function $2(T,S){let $=x(S),{key:f}=T,M=TT(T,$);if(!M.family)S.logger.error("\u274C","selector",f,"Standalone selectors cannot be disposed.");else{let F=$.molecules.get(M.family.subKey);if(F)F.tokens.delete(f);switch(T.type){case"selector":$.selectors.delete(f),TT({key:M.family.key,type:"selector_family"},S).subject.next({type:"state_disposal",token:T});break;case"readonly_selector":$.readonlySelectors.delete(f),TT({key:M.family.key,type:"readonly_selector_family"},S).subject.next({type:"state_disposal",token:T});break}if($.valueMap.delete(f),$.selectorAtoms.delete(f),$.selectorGraph.delete(f),S.logger.info("\uD83D\uDD25",T.type,f,"deleted"),XT($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.updates.push({type:"state_disposal",token:T});else S.on.selectorDisposal.next(T)}}function bM(T,S,$){let f={key:S.key,type:"selector_family"},M=T.families.get(S.key);if(M)T.logger.error("\u2757","selector_family",S.key,`Overwriting an existing ${dS(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new fT,W=Object.assign((A)=>{let w=s(A),X={key:S.key,subKey:w},Y=`${S.key}(${w})`,k=x(T),R=PM(k,{key:Y,get:S.get(A),set:S.set(A)},X);return F.next({type:"state_creation",token:R}),R},f,{internalRoles:$,subject:F,install:(A)=>bM(A,S),default:(A)=>{return S.get(A)({get:(...X)=>wT(T,...X),find:(X,Y)=>KT(T,X,Y),seek:(X,Y)=>IT(T,X,Y),json:(X)=>cT(T,X)})}});return T.families.set(S.key,W),f}function J2(T,S,$=WT.STORE){let f=bM($,{key:`${T.key}:JSON`,get:(F)=>({seek:J,get:W})=>{let A=J(T,F);if(A)return S.toJson(W(A));let w=s(F),X=$.molecules.get(w);if(X){let k=lS(X,T,$);return S.toJson(W(k))}if($.config.lifespan==="immortal")throw new Error(`No molecule found for key "${w}"`);let Y=z$($,T,F);return S.toJson(W(Y))},set:(F)=>({seek:J,set:W},A)=>{let w=J(T,F);if(w)W(w,S.fromJson(A));else{let X=s(F),Y=$.molecules.get(X);if(Y){let k=lS(Y,T,$);W(k,S.fromJson(A))}else{if($.config.lifespan==="immortal")throw new Error(`No molecule found for key "${X}"`);W(z$($,T,F),S.fromJson(A))}}}},["mutable","json"]);return TT(T,$).subject.subscribe(`store=${$.config.name}::json-selector-family`,(F)=>{if(F.token.family)IT($,f,dT(F.token.family.subKey))}),f}var dT=(T)=>JSON.parse(T),s=(T)=>JSON.stringify(T),zz=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var W2=(T,S)=>{let $=x(S);if($.operation.open)return $.operation.prev.get(T.key);return $.valueMap.get(T.key)};var F0=(T,S)=>{let $=x(S);return M2(T,S).map((M)=>{let F=$.atoms.get(M);if(F===void 0)throw new Error(`Atom "${M}", a dependency of selector "${T.key}", not found in store "${S.config.name}".`);return F.subject.subscribe(`${T.type}:${T.key}`,(J)=>{S.logger.info("\uD83D\uDCE2",T.type,T.key,"root",M,"went",J.oldValue,"->",J.newValue);let W=W2(T,$),A=P$(T,$);S.logger.info("\u2728",T.type,T.key,"went",W,"->",A),T.subject.next({newValue:A,oldValue:W})})})};function kS(T,S,$,f){function M(Y){if(f.operation.open){let k=f.on.operationClose.subscribe(`state subscription ${$}`,()=>{k(),S(Y)})}else S(Y)}let F=TT(T,f);f.logger.info("\uD83D\uDC40",F.type,F.key,`Adding subscription "${$}"`);let J=F.type==="selector"||F.type==="readonly_selector",W=null,A=M;if(J)W=F0(F,f),A=(Y)=>{if(W)W.length=0,W.push(...F0(F,f));M(Y)};let w=F.subject.subscribe($,A);return()=>{if(f.logger.info("\uD83D\uDE48",F.type,F.key,`Removing subscription "${$}"`),w(),W)for(let Y of W)Y()}}var f0=(T,S,$,f)=>{let M=TT(T,f);f.logger.info("\uD83D\uDC40","timeline",T.key,`Adding subscription "${$}"`);let F=M.subject.subscribe($,S);return()=>{f.logger.info("\uD83D\uDE48","timeline",T.key,`Removing subscription "${$}" from timeline`),F()}};var M0=(T,S,$,f)=>{let M=TT(T,f);f.logger.info("\uD83D\uDC40","transaction",T.key,`Adding subscription "${$}"`);let F=M.subject.subscribe($,S);return()=>{f.logger.info("\uD83D\uDE48","transaction",T.key,`Removing subscription "${$}"`),F()}};class n${Update;initializeState(T,S){let $=`*${T.key}`;S.atoms.delete($),S.valueMap.delete($);let f=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,M=QS(S,{key:$,default:null},f);if(S.parent?.valueMap.has($)){let F=S.parent.valueMap.get($);S.valueMap.set($,F)}return M}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,S,$){let f=`tracker:${$.config.name}:${XT($)?$.transactionMeta.update.key:"main"}:${T.key}`,M=wT($,T);this.unsubscribeFromInnerValue=M.subscribe(f,(F)=>{bT($,S,F)}),this.unsubscribeFromState=kS(T,(F)=>{if(F.newValue!==F.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=F.newValue.subscribe(f,(J)=>{bT($,S,J)})},f,$)}updateCore(T,S,$){let f=`tracker:${$.config.name}:${XT($)?$.transactionMeta.update.key:"main"}:${T.key}`;kS(S,({newValue:M,oldValue:F})=>{let J=$.timelineTopics.getRelatedKey(S.key);if(J){if($.timelines.get(J)?.timeTraveling){let w=f0({key:J,type:"timeline"},(X)=>{w(),bT($,T,(Y)=>{if(X==="redo"&&M)Y.do(M);else if(X==="undo"&&F)Y.undo(F);return Y})},f,$);return}}let W=$.on.operationClose.subscribe(f,()=>{W();let A=wT($,T),w=M===null?-1:A.getUpdateNumber(M),X=w-A.cacheUpdateNumber;if(M&&X===1)bT($,T,(Y)=>(Y.do(M),Y));else $.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${A.cacheUpdateNumber+1}, but got ${w}`)})},f,$)}mutableState;latestUpdateState;dispose;constructor(T,S){this.mutableState=T;let $=x(S);this.latestUpdateState=this.initializeState(T,$),this.observeCore(T,this.latestUpdateState,$),this.updateCore(T,this.latestUpdateState,$),$.trackers.set(T.key,this),this.dispose=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),$.trackers.delete(T.key)}}}function nM(T,S,$){T.logger.info("\uD83D\uDD28","atom",S.key,`creating in store "${T.config.name}"`);let f=x(T),M=f.atoms.get(S.key);if(M&&M.type==="mutable_atom")return T.logger.error("\u274C","atom",S.key,"Tried to create atom, but it already exists in the store."),YS(M);let F=new fT,J={...S,type:"mutable_atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",S.key,`installing in store "${w.config.name}"`),nM(w,S,$)},subject:F};if($)J.family=$;let W=S.default();f.atoms.set(J.key,J),wJ(S.key,T),vS(S.key,W,F,f);let A=YS(J);if(S.effects){let w=0,X=[];for(let Y of S.effects){let k=Y({setSelf:(R)=>{bT(T,A,R)},onSet:(R)=>kS(A,R,`effect[${w}]`,T)});if(k)X.push(k);++w}J.cleanup=()=>{for(let Y of X)Y()}}if(new n$(A,T),!$)NA(A,S,T);return A}class J0{Update;latestUpdateAtoms;mutableAtoms;constructor(T,S){let $=A$(S,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=TT($,S),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${S.config.name}::tracker-atom-family`,(f)=>{if(f.token.family){let M=dT(f.token.family.subKey);IT(S,this.latestUpdateAtoms,M),new n$(f.token,S)}}),this.latestUpdateAtoms.subject.subscribe(`store=${S.config.name}::tracker-atom-family`,(f)=>{if(f.token.family){let M=dT(f.token.family.subKey),F=IT(S,this.mutableAtoms,M);if(F)new n$(F,S)}})}}function jM(T,S,$){let f={key:S.key,type:"mutable_atom_family"},M=T.families.get(S.key);if(M)T.logger.error("\u2757","mutable_atom_family",S.key,`Overwriting an existing ${dS(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new fT,W=Object.assign((A)=>{let w=s(A),X={key:S.key,subKey:w},Y=`${S.key}(${w})`,k=x(T),R={key:Y,default:()=>S.default(A),toJson:S.toJson,fromJson:S.fromJson,mutable:!0};if(S.effects)R.effects=S.effects(A);let z=nM(k,R,X);return F.next({type:"state_creation",token:z}),z},f,{subject:F,install:(A)=>jM(A,S),toJson:S.toJson,fromJson:S.fromJson,internalRoles:$});return T.families.set(S.key,W),J2(W,S,T),new J0(W,T),f}var W0=(T,S)=>{let $=x(S),f=`${T.key}:JSON`;return $.families.get(f)};var cT=(T,S)=>{if(S.family){let f=x(T),F={key:`${S.family.key}:JSON`,type:"selector_family"},J=TT(F,f),W=JSON.parse(S.family.subKey);return KT(T,J,W)}return{type:"selector",key:`${S.key}:JSON`}};var D$=(T)=>{let $={type:"atom",key:`*${T.key}`};if(T.family)$.family={key:`*${T.family.key}`,subKey:T.family.subKey};return $};function cA(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function hM(T,S,$){let f=S.valueMap.get(T.key),M=$.valueMap.get(T.key);if(f===M){if(f===void 0)return typeof T.default==="function"?T.default():T.default;S.logger.info("\uD83D\uDCC3","atom",T.key,"copying");let F=T.toJson(f),J=T.fromJson(F);return $.valueMap.set(T.key,J),new n$(T,S),J}return M}function vS(T,S,$,f){let M=f.valueMap.get(T);if(M instanceof IM)M.use(S);if(S instanceof Promise){let F=new IM(S);return f.valueMap.set(T,F),F.then((J)=>{vS(T,J,$,f),$.next({newValue:J,oldValue:F})}).catch((J)=>{f.logger.error("\uD83D\uDCA5","state",T,"rejected:",J)}),F}return f.valueMap.set(T,S),S}var bA=(T,S)=>{let $=S.valueMap.get(T.key);if(T.type==="mutable_atom"&&XT(S)){let{parent:f}=S;$=hM(T,f,S)}return $},PA=(T,S)=>{let $=S.valueMap.get(T);if($ instanceof IM){let f=$,M=S.selectors.get(T)??S.readonlySelectors.get(T);if(M)f.use(M.get());return}if(S.operation.open)S.operation.prev.set(T,$);S.valueMap.delete(T),S.logger.info("\uD83D\uDDD1","state",T,"evicted")};var gA=(T,S)=>{return x(S).atomsThatAreDefault.has(T)},wJ=(T,S)=>{let $=x(S);$.atomsThatAreDefault=new Set($.atomsThatAreDefault).add(T)},tA=(T,S)=>{let $=x(S);$.atomsThatAreDefault=new Set(x(S).atomsThatAreDefault),$.atomsThatAreDefault.delete(T)};function QS(T,S,$){T.logger.info("\uD83D\uDD28","atom",S.key,`creating in store "${T.config.name}"`);let f=x(T),M=f.atoms.get(S.key);if(M&&M.type==="atom")return T.logger.error("\u274C","atom",S.key,"Tried to create atom, but it already exists in the store."),YS(M);let F=new fT,J={...S,type:"atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",S.key,`installing in store "${w.config.name}"`),QS(w,S,$)},subject:F};if($)J.family=$;let W=S.default;if(S.default instanceof Function)W=S.default();f.atoms.set(J.key,J),wJ(S.key,T),vS(S.key,W,F,f);let A=YS(J);if(S.effects){let w=0,X=[];for(let Y of S.effects){let k=Y({setSelf:(R)=>{bT(T,A,R)},onSet:(R)=>kS(A,R,`effect[${w}]`,T)});if(k)X.push(k);++w}J.cleanup=()=>{for(let Y of X)Y()}}return A}function jA(T,S){if("mutable"in S){let M=nM(T,S,void 0);return T.on.atomCreation.next(M),M}let f=QS(T,S,void 0);return T.on.atomCreation.next(f),f}function S0(T,S){let $=x(S),{key:f}=T,M=TT(T,$);if(!M.family)S.logger.error("\u274C","atom",f,"Standalone atoms cannot be disposed.");else{M.cleanup?.();let F=S.valueMap.get(M.key);TT({key:M.family.key,type:"atom_family"},S).subject.next({type:"state_disposal",token:T,value:F});let W=$.molecules.get(M.family.subKey);if(W)W.tokens.delete(f);if($.atoms.delete(f),$.valueMap.delete(f),$.selectorAtoms.delete(f),$.atomsThatAreDefault.delete(f),S.timelineTopics.delete(f),T.type==="mutable_atom"){let A=D$(T);S0(A,S),S.trackers.delete(f)}if(S.logger.info("\uD83D\uDD25","atom",f,"deleted"),XT($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.updates.push({type:"state_disposal",token:T});else S.on.atomDisposal.next(T)}}class lT extends Set{mode="record";subject=new fT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,S=0){super(T);if(T instanceof lT)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if(S)this.cacheLimit=S,this.cache=new Array(S),this.subscribe("auto cache",($)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=$})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let S=new lT(T.members,T.cacheLimit);return S.cache=T.cache,S.cacheIdx=T.cacheIdx,S.cacheUpdateNumber=T.cacheUpdateNumber,S}add(T){let S=super.add(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${s(T)}`);return S}clear(){let T=this.mode==="record"?[...this]:null;if(super.clear(),T)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(T)}`)}delete(T){let S=super.delete(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${s(T)}`);return S}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new lT(this);let S=this.child._subscribe("transaction",($)=>{this.transactionUpdates?.push($)});try{if(T(this.child)){for(let f of this.transactionUpdates)this.doStep(f);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch($){throw console.error("Failed to apply transaction to SetRTX:",$),$}finally{S(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,S){return this.subject.subscribe(T,S)}subscribe(T,S){return this.subject.subscribe(T,($)=>{S(`${this.cacheUpdateNumber}=${$}`)})}emit(T){this.subject.next(T)}doStep(T){let S=T.indexOf(":"),$=T.substring(0,S),f=T.substring(S+1);switch($){case"add":this.add(JSON.parse(f));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(f));break;case"tx":for(let M of f.split(";"))this.doStep(M)}}getUpdateNumber(T){let S=T.indexOf("=");return Number(T.substring(0,S))}do(T){let S=T.indexOf("="),$=Number(T.substring(0,S)),f=$-this.cacheUpdateNumber;if(f>0){if(f===1){this.mode="playback";let F=T.substring(S+1);return this.doStep(F),this.mode="record",this.cacheUpdateNumber=$,null}return this.cacheUpdateNumber+1}if(Math.abs(f)<this.cacheLimit){let F=this.cacheIdx+f;if(this.cache[F]===T)return null;this.mode="playback";let W=!1;while(!W){this.cacheIdx%=this.cacheLimit;let w=this.cache[this.cacheIdx];if(this.cacheIdx--,!w)return"OUT_OF_RANGE";this.undo(w),W=this.cacheIdx===F-1}let A=T.substring(S+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=$,null}return"OUT_OF_RANGE"}undoStep(T){let S=T.indexOf(":"),$=T.substring(0,S),f=T.substring(S+1);switch($){case"add":this.delete(JSON.parse(f));break;case"del":this.add(JSON.parse(f));break;case"clear":{let M=JSON.parse(f);for(let F of M)this.add(F);break}case"tx":{let M=f.split(";");for(let F=M.length-1;F>=0;F--)this.undoStep(M[F])}}}undo(T){let S=T.indexOf("=");if(Number(T.substring(0,S))===this.cacheUpdateNumber){this.mode="playback";let f=T.substring(S+1);return this.undoStep(f),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function xT(T){return T[0].toUpperCase()+T.slice(1)}class w0{options;defaultContent;toolkit;retrieve;molecules=new Map;relations;states;core;transact(T,S){let $=this.toolkit;this.toolkit=T,S(this),this.toolkit=$}store;alternates;[Symbol.dispose](){this.alternates.delete(this.store.config.name)}in(T){let S=T.config.name,$=this.alternates.get(S);if($)return $;let f=new w0(this.options,this.defaultContent,T);return this.alternates.set(S,f),f.alternates=this.alternates,f}constructor(T,S,$=WT.STORE){this.store=$,this.options=T,this.defaultContent=S,this.alternates=new Map,this.alternates.set($.config.name,this),this.store.miscResources.set(`join:${T.key}`,this),this.retrieve=(_,E)=>{let B=this.toolkit.seek(_,E);if(B)return B;let q=this.store.molecules.get(s(E));if(q){let v=TT(_,$);return lS(q,v,$)}if($.config.lifespan==="immortal")throw new US(_,E,$);return z$($,_,E)},this.toolkit={get:(..._)=>wT($,..._),set:(..._)=>{bT($,..._)},find:this.retrieve,seek:(..._)=>IT($,..._),json:(_)=>cT($,_),dispose:(..._)=>{RS($,..._)}};let f=T.between[0],M=T.between[1],F=jM($,{key:`${T.key}/relatedKeys`,default:()=>new lT,mutable:!0,fromJson:(_)=>lT.fromJSON(_),toJson:(_)=>_.toJSON()},["join","relations"]);this.core={findRelatedKeysState:F};let J=({get:_},E)=>_(this.retrieve(F,E)),W=(_,E,B)=>{let{set:q}=_,v=this.retrieve(F,E),G=this.retrieve(F,B);q(v,(o)=>o.add(B)),q(G,(o)=>o.add(E))},A=(_,E,B)=>{let{set:q}=_,v=this.retrieve(F,E),G=this.retrieve(F,B),o,n;q(v,(u)=>{if(u.delete(B),u.size===0)o=`"${E}"`;return u}),q(G,(u)=>{if(u.delete(E),u.size===0)n=`"${B}"`;return u})},w=(_,E,B)=>{let{get:q,set:v}=_,G=this.retrieve(F,E),o=q(G);for(let n of o){if(B.includes(n))continue;let yT=this.retrieve(F,n);v(yT,(zT)=>{return zT.delete(E),zT})}v(G,(n)=>{return n.transaction((u)=>{u.clear();for(let yT of B){let zT=J(_,yT),ES=zT.has(E);if(this.relations.cardinality==="1:n"){let G$=[];for(let C of zT){if(C===E)continue;let l=J(_,C);if(l.delete(yT),l.size===0)G$.push(C)}if(!ES&&zT.size>0)zT.clear();for(let C of G$){let l=[yT,C].sort(),GT=`"${l[0]}:${l[1]}"`;this.molecules.delete(GT)}}if(!ES)zT.add(E);u.add(yT)}return!0}),n})},X=(_,E,B)=>{let{set:q}=_,v=this.retrieve(F,E);q(v,(G)=>{return G.transaction((o)=>{for(let n of B)o.add(n);return!0}),G});for(let G of B){let o=this.retrieve(F,G);q(o,(n)=>{return n.add(E),n})}return!0},Y=(_,E,B)=>{let q=J(_,E);return B?q.has(B):q.size>0},k={getRelatedKeys:(_)=>J(this.toolkit,_),addRelation:(_,E)=>{W(this.toolkit,_,E)},deleteRelation:(_,E)=>{A(this.toolkit,_,E)},replaceRelationsSafely:(_,E)=>{w(this.toolkit,_,E)},replaceRelationsUnsafely:(_,E)=>{X(this.toolkit,_,E)},has:(_,E)=>Y(this.toolkit,_,E)},R,z,Q;if(S){z=A$($,{key:`${T.key}/content`,default:S},["join","content"]),Q=pA($,{key:`${T.key}/content-molecules`,new:class v{key;constructor(G,o){this.key=o}}});let _=({get:v},G)=>v(this.retrieve(z,G)),E=({set:v},G,o)=>{v(this.retrieve(z,G),o)},B=(v,G)=>{let o=$.molecules.get(`"${G}"`);if(o)this.toolkit.dispose(o),this.molecules.delete(`"${G}"`)};R=Object.assign(k,{getContent:(v)=>{return _(this.toolkit,v)},setContent:(v,G)=>{E(this.toolkit,v,G)},deleteContent:(v)=>{B(this.toolkit,v)}})}else R=k;let D=new NS(T,{externalStore:R,isAType:T.isAType,isBType:T.isBType,makeContentKey:(..._)=>{let E=_.sort(),B=`${E[0]}:${E[1]}`,[q,v]=E.map((G)=>this.molecules.get(s(G)));if($.config.lifespan==="immortal"&&q&&v){let G=x($),o=H$(G,[q,v],Q,B);this.molecules.set(`"${B}"`,TT(o,G))}return B}}),N=()=>R$($,{key:`${T.key}/singleRelatedKey`,get:(_)=>({get:E})=>{let B=this.retrieve(F,_),q=E(B);for(let v of q)return v;return null}},["join","keys"]),V=()=>{return R$($,{key:`${T.key}/multipleRelatedKeys`,get:(_)=>({get:E})=>{let B=W0(F,$),q=this.retrieve(B,_);return E(q).members}},["join","keys"])},L=()=>R$($,{key:`${T.key}/singleRelatedEntry`,get:(_)=>({get:E})=>{let B=this.retrieve(F,_),q=E(B);for(let v of q){let G=D.isAType?.(_)?_:void 0,o=G===void 0?_:void 0;G??=v,o??=v;let n=D.makeContentKey(G,o),u=this.retrieve(z,n),yT=E(u);return[v,yT]}return null}},["join","entries"]),Z=()=>R$($,{key:`${T.key}/multipleRelatedEntries`,get:(_)=>({get:E})=>{let B=W0(F,$),q=this.retrieve(B,_);return E(q).members.map((G)=>{let o=D.isAType?.(_)?_:void 0,n=o===void 0?_:void 0;o??=G,n??=G;let u=D.makeContentKey(o,n),yT=this.retrieve(z,u),zT=E(yT);return[G,zT]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let _=N(),E=`${f}KeyOf${xT(M)}`,B=`${M}KeyOf${xT(f)}`,q={[E]:_,[B]:_},v;if(S){let G=L(),o=`${f}EntryOf${xT(M)}`,n=`${M}EntryOf${xT(f)}`,u={[o]:G,[n]:G};v=Object.assign(q,u)}else v=q;this.relations=D,this.states=v;break}case"1:n":{let _=N(),E=V(),B=`${f}KeyOf${xT(M)}`,q=`${M}KeysOf${xT(f)}`,v={[B]:_,[q]:E},G;if(S){let o=L(),n=Z(),u=`${f}EntryOf${xT(M)}`,yT=`${M}EntriesOf${xT(f)}`,zT={[u]:o,[yT]:n};G=Object.assign(v,zT)}else G=v;this.relations=D,this.states=G;break}default:{let _=V(),E=`${f}KeysOf${xT(M)}`,B=`${M}KeysOf${xT(f)}`,q={[E]:_,[B]:_},v;if(S){let G=Z(),o=`${f}EntriesOf${xT(M)}`,n=`${M}EntriesOf${xT(f)}`,u={[o]:G,[n]:G};v=Object.assign(q,u)}else v=q;this.relations=D,this.states=v}}}}function XJ(T,S,$=WT.STORE){return A0($).set(T.key,new w0(T,S,$)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function A0(T){if("joins"in T&&T.joins instanceof Map)return T.joins;let S=new Map;return T.joins=S,S}function vM(T,S){let $=A0(S),f=$.get(T.key);if(f===void 0){if(f=A0(WT.STORE).get(T.key)?.in(S),f===void 0)throw new Error(`Join "${T.key}" not found in store "${S.config.name}"`);$.set(T.key,f)}return f}function YJ(T,S,$){let f=vM(T,$),M;switch(T.cardinality){case"1:1":{let F=`${T.a}KeyOf${xT(T.b)}`,J=`${T.b}KeyOf${xT(T.a)}`;M={get[F](){let A=f.states[F];return f.retrieve(A,S)},get[J](){let A=f.states[J];return f.retrieve(A,S)}};let W=`${T.a}EntryOf${xT(T.b)}`;if(W in f.states){let A=`${T.b}EntryOf${xT(T.a)}`;Object.assign(M,{get[W](){let w=f.states[W];return f.retrieve(w,S)},get[A](){let w=f.states[A];return f.retrieve(w,S)}})}break}case"1:n":{let F=`${T.a}KeyOf${xT(T.b)}`,J=`${T.b}KeysOf${xT(T.a)}`;M={get[F](){let A=f.states[F];return f.retrieve(A,S)},get[J](){let A=f.states[J];return f.retrieve(A,S)}};let W=`${T.a}EntryOf${xT(T.b)}`;if(W in f.states){let A=`${T.b}EntriesOf${xT(T.a)}`;Object.assign(M,{get[W](){let w=f.states[W];return f.retrieve(w,S)},get[A](){let w=f.states[A];return f.retrieve(w,S)}})}break}case"n:n":{let F=`${T.a}KeysOf${xT(T.b)}`,J=`${T.b}KeysOf${xT(T.a)}`;M={get[F](){let A=f.states[F];return f.retrieve(A,S)},get[J](){let A=f.states[J];return f.retrieve(A,S)}};let W=`${T.a}EntriesOf${xT(T.b)}`;if(W in f.states){let A=`${T.b}EntriesOf${xT(T.a)}`;Object.assign(M,{get[W](){let w=f.states[W];return f.retrieve(w,S)},get[A](){let w=f.states[A];return f.retrieve(w,S)}})}}}return M}function uA(T,S){return YJ(T,S,WT.STORE)}function kJ(T,S,$){let f=vM(T,$),M=x($);if(XT(M)){let{toolkit:F}=M.transactionMeta;f.transact(F,({relations:J})=>{S(J)})}else S(f.relations)}function ok(T,S){return vM(T,S).core.findRelatedKeysState}function A2(T){return ok(T,WT.STORE)}class w2 extends Map{set(T,S){if(this.has(T))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:T,value:S}),this;return super.set(T,S)}clear(){throw new Error("Cannot clear an InvariantMap")}}class KJ{key;type="continuity";globals=[];actions=[];perspectives=[];constructor(T){this.key=T}static existing=new w2;static create(T,S){let $=new KJ(T),{type:f,globals:M,actions:F,perspectives:J}=S($),W={type:f,key:T,globals:M,actions:F,perspectives:J};return KJ.existing.set(T,W),W}add(...T){switch(T[0].type){case"atom":case"mutable_atom":this.globals.push(...T);break;case"transaction":this.actions.push(...T);break;case"atom_family":{let[$,f]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:$,viewAtoms:f})}break}return this}}function yD(T){let{key:S,config:$}=T,f=KJ.create(S,$),{actions:M}=f;for(let F of M)sA(S,F.key,WT.STORE);return lA(S,-1,WT.STORE),f}var DD=bf({key:"usersInRoomIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),X0=bf({key:"roomIndex",default:()=>new lT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),gk={enteredAtEpoch:0},cM=XJ({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},gk),_D=sF({key:"usersInMyRoomView",get:(T)=>({find:S})=>{let $=A2(cM);return[S($,T)]}});import{spawn as tk}from"child_process";class mf{emit;listeners;globalListeners;handleEvent(T,...S){for(let f of this.globalListeners)f(T,...S);let $=this.listeners.get(T);if($)for(let f of $)f(...S)}id="no_id_retrieved";constructor(T){this.emit=T;this.listeners=new Map,this.globalListeners=new Set}on(T,S){let $=this.listeners.get(T);if($)$.add(S);else this.listeners.set(T,new Set([S]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,S){let $=this.listeners.get(T);if($)if(S)$.delete(S);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class Y0 extends mf{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[S,...$]=T;switch(S){case"i":this.logger.info(...$);break;case"w":this.logger.warn(...$);break;case"e":this.logger.error(...$);break}}}constructor(T,S,$){super((f,...M)=>{let F=JSON.stringify([f,...M])+"\x03",J=(W)=>{if(W.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",J)};return this.process.stdin.once("error",J),this.process.stdin.write(F),this});if(this.process=T,this.key=S,this.logger=$??{info:(...f)=>{console.info(this.id,this.key,...f)},warn:(...f)=>{console.warn(this.id,this.key,...f)},error:(...f)=>{console.error(this.id,this.key,...f)}},this.process.stdout.on("data",(f)=>{let M=f.toString();if(M==="ALIVE")return;this.unprocessedEvents.push(...M.split("\x03"));let F=this.unprocessedEvents.shift();this.incompleteData+=F??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let J=dT(this.incompleteData);this.handleEvent(...J);while(this.unprocessedEvents.length>0){let W=this.unprocessedEvents.shift();if(W){if(this.unprocessedEvents.length===0)this.incompleteData=W;J=dT(W),this.handleEvent(...J)}}this.incompleteData=""}catch(J){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(J)}}),this.process.stderr.on("data",(f)=>{let M=f.toString();this.unprocessedLogs.push(...M.split("\x03"));let F=this.unprocessedLogs.shift();this.incompleteLog+=F??"";try{let J=dT(this.incompleteLog);this.handleLog(J);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)J=dT(this.incompleteLog),this.handleLog(J)}catch(J){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(J),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class X2 extends mf{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...S)=>{return this.out.next(S),this});this.id=T,this.in=new fT,this.out=new fT,this.in.subscribe("socket",(S)=>{this.handleEvent(...S)})}dispose(){for(let T of this.disposalFunctions)T()}}class k0 extends mf{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(s(T.map((S)=>S instanceof lT?`{ ${S.toJSON().members.join(" | ")} }`:S))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...S)=>{let $=JSON.stringify([T,...S]);return this.process.stdout.write($+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let S=T.toString();this.unprocessedEvents.push(...S.split("\x03"));let $=this.unprocessedEvents.shift();this.incompleteData+=$??"";try{let f=dT(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",f),this.handleEvent(...f);while(this.unprocessedEvents.length>0){let M=this.unprocessedEvents.shift();if(M){if(this.unprocessedEvents.length===0)this.incompleteData=M;let F=dT(M);this.handleEvent(...F)}}this.incompleteData=""}catch(f){if(f instanceof Error)this.logger.error("\u2757",f.message,f.cause,f.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 S=new X2(`user:${T}`);this.relays.set(T,S),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let $ of this.relayServices){let f=$(S);if(f)S.disposalFunctions.push(f)}this.on(`user:${T}`,(...$)=>{S.in.next($)}),S.out.subscribe("socket",($)=>{this.emit(...$)})}),this.on("user-leaves",(T)=>{let S=this.relays.get(T);if(this.off(`relay:${T}`),S)S.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var K0=Tf({key:"roomArguments",default:["echo",["Hello World!"]]}),Y2=sF({key:"room",get:(T)=>async({get:S,find:$})=>{let f=$(K0,T),M=S(f),[F,J]=M,W=await new Promise((A)=>{let w=tk(F,J,{env:process.env}),X=(Y)=>{if(Y.toString()==="ALIVE")w.stdout.off("data",X),A(w)};w.stdout.on("data",X)});return new Y0(W,T)}});var lD=mM({key:"createRoom",do:({get:T,set:S,find:$},f,M,F)=>{let J=F?[M,F]:[M],W=$(K0,f);S(W,J),S(X0,(X)=>X.add(f));let A=$(Y2,f);return T(A)}}),rD=mM({key:"joinRoom",do:(T,S,$,f)=>{let M={enteredAtEpoch:f};return kJ(cM,(F)=>{F.set({room:S,user:$},M)},T.env().store),M}}),aD=mM({key:"leaveRoom",do:(T,S,$)=>{kJ(cM,(f)=>{f.delete({room:S,user:$})},T.env().store)}}),sD=mM({key:"destroyRoom",do:(T,S)=>{kJ(cM,($)=>{$.delete({room:S})},T.env().store),T.set(X0,($)=>($.delete(S),$))}});function O0(T,S){return S.map(($)=>{switch($.type){case"transaction_update":{let f=O0(T,$.updates);return{...$,updates:f}}default:return $}}).filter(($)=>{switch($.type){case"atom_update":case"selector_update":return T.includes($.key);case"state_creation":return T.includes($.token.key);case"molecule_creation":return!0;case"transaction_update":return!0}})}var S_=Tf({key:"redactor",default:{occlude:(T)=>T}}),hf=Tf({key:"unacknowledgedUpdates",default:()=>[]});var k2=Tf({key:"sockets",default:null}),J_=bf({key:"socketsIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),W_=bf({key:"usersIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),y0=XJ({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function K2(T,S,$,f){let M=S.key;return function F(){let J=[];for(let A of S.globals){let w=A.type==="mutable_atom"?cT(T,A):A,X=wT(T,w);J.push(w,X)}for(let A of S.perspectives){let{viewAtoms:w,resourceAtoms:X}=A,Y=KT(T,w,$),k=wT(T,Y);T.logger.info("\uD83D\uDC41","atom",X.key,`${$} can see`,{viewAtoms:w,resourceAtoms:X,userView:k});for(let R of k){let z=R.type==="mutable_atom"?cT(T,R):R,Q=wT(T,z);J.push(z,Q)}}let W=oT(T)?T.transactionMeta.epoch.get(M)??null:null;f?.emit(`continuity-init:${M}`,W,J)}}function O2(T,S,$){let f=S.key;return function M(F){T.logger.info("\uD83D\uDECE\uFE0F","continuity",f,"received",F);let{key:J,id:W}=F,A=`tx-run:${J}:${W}`,w=`${A}:start`,X=`${A}:end`;performance.mark(w);try{v$({type:"transaction",key:J},W,T)(...F.params)}catch(k){if(k instanceof Error)T.logger.error("\u274C","continuity",f,`failed to run transaction ${J} from ${$} with update ${W}`,k.message)}performance.mark(X);let Y=performance.measure(A,w,X);T?.logger.info("\uD83D\uDE80","transaction",J,W,$,Y.duration)}}function y2(T,S,$,f){let M=S.key;return function F(J){if(T.logger.info("\uD83D\uDC4D","continuity",M,`${$} acknowledged epoch ${J}`),f[0]?.epoch===J)bT(T,hf,$,(A)=>{return A.shift(),T.logger.info("\uD83D\uDC4D","continuity",M,`${$} unacknowledged update queue now has`,A.length,"items"),A})}}function G2(T,S,$,f){let M=S.key,F=[];for(let J of S.actions){let W=M0(J,(A)=>{try{let w=S.globals.map((k)=>{if(k.type==="atom")return k.key;return D$(k).key}).concat(S.perspectives.flatMap((k)=>{let{viewAtoms:R}=k,z=KT(T,R,$);return wT(T,z).map((D)=>{return D.type==="mutable_atom"?"*"+D.key:D.key})})),X=O0(w,A.updates),Y={...A,updates:X};bT(T,hf,$,(k)=>{if(Y)k.push(Y),k.sort((R,z)=>R.epoch-z.epoch),T.logger.info("\uD83D\uDC4D","continuity",M,`${$} unacknowledged update queue now has`,k.length,"items");return k}),f?.emit(`tx-new:${M}`,Y)}catch(w){if(w instanceof Error)T.logger.error("\u274C","continuity",M,`${$} failed to send update from transaction ${J.key} to ${$}`,w.message)}},`sync-continuity:${M}:${$}`,T);F.push(W)}return F}function R2(T,S,$,f){let M=S.key,F=[];for(let J of S.perspectives){let{viewAtoms:W}=J,A=KT(T,W,$),w=kS(A,({oldValue:X,newValue:Y})=>{let k=X.map((D)=>D.key),R=Y.map((D)=>D.key),z=X.filter((D)=>!R.includes(D.key)),Q=Y.filter((D)=>!k.includes(D.key)).flatMap((D)=>{let N=D.type==="mutable_atom"?cT(T,D):D,V=wT(T,N);return[N,V]});if(T.logger.info("\uD83D\uDC41","atom",J.resourceAtoms.key,`${$} has a new perspective`,{oldKeys:k,newKeys:R,revealed:Q,concealed:z}),Q.length>0)f?.emit(`reveal:${M}`,Q);if(z.length>0)f?.emit(`conceal:${M}`,z)},`sync-continuity:${M}:${$}:perspective:${J.resourceAtoms.key}`,T);F.push(w)}return F}function h_({socket:T,store:S=WT.STORE}){return function $(f){let M=T,F=f.key,J=YJ(y0,`socket::${M.id}`,S).userKeyOfSocket,W=wT(S,J);if(!W)return S.logger.error("\u274C","continuity",F,`Tried to create a synchronizer for a socket (${M.id}) that is not connected to a user.`),()=>{};let A=YJ(y0,W,S).socketKeyOfUser,w=kS(A,({newValue:N})=>{if(S.logger.info("\uD83D\uDC4B","continuity",F,`seeing ${W} on new socket ${N}`),N===null){S.logger.warn("\u274C","continuity",F,`User (${W}) is not connected to a socket, waiting for them to reappear.`);return}let V=KT(S,k2,N);M=wT(S,V);for(let Z of X)M?.emit(`tx-new:${F}`,Z)},`sync-continuity:${F}:${W}`,S),X=wT(S,hf,W),Y=[],k=R2(S,f,W,M),R=G2(S,f,W,M);Y.push(...k,...R);let z=K2(S,f,W,T);M.off(`get:${F}`,z),M.on(`get:${F}`,z);let Q=O2(S,f,W);M.off(`tx-run:${F}`,Q),M.on(`tx-run:${F}`,Q);let D=y2(S,f,W,X);return M?.on(`ack:${F}`,D),()=>{for(let N of Y)N();M?.off(`ack:${F}`,D),M?.off(`get:${F}`,z),M?.off(`tx-run:${F}`,Q)}}}var H2=Symbol("Let zodToJsonSchema decide on which parser to use"),z2={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"},D2=(T)=>typeof T==="string"?{...z2,name:T}:{...z2,...T};var _2=(T)=>{let S=D2(T),$=S.name!==void 0?[...S.basePath,S.definitionPath,S.name]:S.basePath;return{...S,currentPath:$,propertyPath:void 0,seen:new Map(Object.entries(S.definitions).map(([f,M])=>[M._def,{def:M._def,path:[...S.basePath,S.definitionPath,f],jsonSchema:void 0}]))}};function G0(T,S,$,f){if(!f?.errorMessages)return;if($)T.errorMessage={...T.errorMessage,[S]:$}}function YT(T,S,$,f,M){T[S]=$,G0(T,S,f,M)}var OT;(function(T){T.assertEqual=(M)=>M;function S(M){}T.assertIs=S;function $(M){throw new Error}T.assertNever=$,T.arrayToEnum=(M)=>{let F={};for(let J of M)F[J]=J;return F},T.getValidEnumValues=(M)=>{let F=T.objectKeys(M).filter((W)=>typeof M[M[W]]!=="number"),J={};for(let W of F)J[W]=M[W];return T.objectValues(J)},T.objectValues=(M)=>{return T.objectKeys(M).map(function(F){return M[F]})},T.objectKeys=typeof Object.keys==="function"?(M)=>Object.keys(M):(M)=>{let F=[];for(let J in M)if(Object.prototype.hasOwnProperty.call(M,J))F.push(J);return F},T.find=(M,F)=>{for(let J of M)if(F(J))return J;return},T.isInteger=typeof Number.isInteger==="function"?(M)=>Number.isInteger(M):(M)=>typeof M==="number"&&isFinite(M)&&Math.floor(M)===M;function f(M,F=" | "){return M.map((J)=>typeof J==="string"?`'${J}'`:J).join(F)}T.joinValues=f,T.jsonStringifyReplacer=(M,F)=>{if(typeof F==="bigint")return F.toString();return F}})(OT||(OT={}));var z0;(function(T){T.mergeShapes=(S,$)=>{return{...S,...$}}})(z0||(z0={}));var g=OT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),E$=(T)=>{switch(typeof T){case"undefined":return g.undefined;case"string":return g.string;case"number":return isNaN(T)?g.nan:g.number;case"boolean":return g.boolean;case"function":return g.function;case"bigint":return g.bigint;case"symbol":return g.symbol;case"object":if(Array.isArray(T))return g.array;if(T===null)return g.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return g.promise;if(typeof Map!=="undefined"&&T instanceof Map)return g.map;if(typeof Set!=="undefined"&&T instanceof Set)return g.set;if(typeof Date!=="undefined"&&T instanceof Date)return g.date;return g.object;default:return g.unknown}},I=OT.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"]),pk=(T)=>{return JSON.stringify(T,null,2).replace(/"([^"]+)":/g,"$1:")};class CS extends Error{get errors(){return this.issues}constructor(T){super();this.issues=[],this.addIssue=($)=>{this.issues=[...this.issues,$]},this.addIssues=($=[])=>{this.issues=[...this.issues,...$]};let S=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,S);else this.__proto__=S;this.name="ZodError",this.issues=T}format(T){let S=T||function(M){return M.message},$={_errors:[]},f=(M)=>{for(let F of M.issues)if(F.code==="invalid_union")F.unionErrors.map(f);else if(F.code==="invalid_return_type")f(F.returnTypeError);else if(F.code==="invalid_arguments")f(F.argumentsError);else if(F.path.length===0)$._errors.push(S(F));else{let J=$,W=0;while(W<F.path.length){let A=F.path[W];if(W!==F.path.length-1)J[A]=J[A]||{_errors:[]};else J[A]=J[A]||{_errors:[]},J[A]._errors.push(S(F));J=J[A],W++}}};return f(this),$}static assert(T){if(!(T instanceof CS))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,OT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=(S)=>S.message){let S={},$=[];for(let f of this.issues)if(f.path.length>0)S[f.path[0]]=S[f.path[0]]||[],S[f.path[0]].push(T(f));else $.push(T(f));return{formErrors:$,fieldErrors:S}}get formErrors(){return this.flatten()}}CS.create=(T)=>{return new CS(T)};var cf=(T,S)=>{let $;switch(T.code){case I.invalid_type:if(T.received===g.undefined)$="Required";else $=`Expected ${T.expected}, received ${T.received}`;break;case I.invalid_literal:$=`Invalid literal value, expected ${JSON.stringify(T.expected,OT.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:$=`Unrecognized key(s) in object: ${OT.joinValues(T.keys,", ")}`;break;case I.invalid_union:$="Invalid input";break;case I.invalid_union_discriminator:$=`Invalid discriminator value. Expected ${OT.joinValues(T.options)}`;break;case I.invalid_enum_value:$=`Invalid enum value. Expected ${OT.joinValues(T.options)}, received '${T.received}'`;break;case I.invalid_arguments:$="Invalid function arguments";break;case I.invalid_return_type:$="Invalid function return type";break;case I.invalid_date:$="Invalid date";break;case I.invalid_string:if(typeof T.validation==="object")if("includes"in T.validation){if($=`Invalid input: must include "${T.validation.includes}"`,typeof T.validation.position==="number")$=`${$} at one or more positions greater than or equal to ${T.validation.position}`}else if("startsWith"in T.validation)$=`Invalid input: must start with "${T.validation.startsWith}"`;else if("endsWith"in T.validation)$=`Invalid input: must end with "${T.validation.endsWith}"`;else OT.assertNever(T.validation);else if(T.validation!=="regex")$=`Invalid ${T.validation}`;else $="Invalid";break;case I.too_small:if(T.type==="array")$=`Array must contain ${T.exact?"exactly":T.inclusive?"at least":"more than"} ${T.minimum} element(s)`;else if(T.type==="string")$=`String must contain ${T.exact?"exactly":T.inclusive?"at least":"over"} ${T.minimum} character(s)`;else if(T.type==="number")$=`Number must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${T.minimum}`;else if(T.type==="date")$=`Date must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(T.minimum))}`;else $="Invalid input";break;case I.too_big:if(T.type==="array")$=`Array must contain ${T.exact?"exactly":T.inclusive?"at most":"less than"} ${T.maximum} element(s)`;else if(T.type==="string")$=`String must contain ${T.exact?"exactly":T.inclusive?"at most":"under"} ${T.maximum} character(s)`;else if(T.type==="number")$=`Number must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="bigint")$=`BigInt must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="date")$=`Date must be ${T.exact?"exactly":T.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(T.maximum))}`;else $="Invalid input";break;case I.custom:$="Invalid input";break;case I.invalid_intersection_types:$="Intersection results could not be merged";break;case I.not_multiple_of:$=`Number must be a multiple of ${T.multipleOf}`;break;case I.not_finite:$="Number must be finite";break;default:$=S.defaultError,OT.assertNever(T)}return{message:$}},U2=cf;function ik(T){U2=T}function OJ(){return U2}var yJ=(T)=>{let{data:S,path:$,errorMaps:f,issueData:M}=T,F=[...$,...M.path||[]],J={...M,path:F};if(M.message!==void 0)return{...M,path:F,message:M.message};let W="",A=f.filter((w)=>!!w).slice().reverse();for(let w of A)W=w(J,{data:S,defaultError:W}).message;return{...M,path:F,message:W}},uk=[];function h(T,S){let $=OJ(),f=yJ({issueData:S,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,$,$===cf?void 0:cf].filter((M)=>!!M)});T.common.issues.push(f)}class KS{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,S){let $=[];for(let f of S){if(f.status==="aborted")return ST;if(f.status==="dirty")T.dirty();$.push(f.value)}return{status:T.value,value:$}}static async mergeObjectAsync(T,S){let $=[];for(let f of S){let M=await f.key,F=await f.value;$.push({key:M,value:F})}return KS.mergeObjectSync(T,$)}static mergeObjectSync(T,S){let $={};for(let f of S){let{key:M,value:F}=f;if(M.status==="aborted")return ST;if(F.status==="aborted")return ST;if(M.status==="dirty")T.dirty();if(F.status==="dirty")T.dirty();if(M.value!=="__proto__"&&(typeof F.value!=="undefined"||f.alwaysSet))$[M.value]=F.value}return{status:T.value,value:$}}}var ST=Object.freeze({status:"aborted"}),Pf=(T)=>({status:"dirty",value:T}),zS=(T)=>({status:"valid",value:T}),H0=(T)=>T.status==="aborted",D0=(T)=>T.status==="dirty",Sf=(T)=>T.status==="valid",tM=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function GJ(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)}function V2(T,S,$,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof S==="function"?T!==S||!M:!S.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,$):M?M.value=$:S.set(T,$),$}var i;(function(T){T.errToObj=(S)=>typeof S==="string"?{message:S}:S||{},T.toString=(S)=>typeof S==="string"?S:S===null||S===void 0?void 0:S.message})(i||(i={}));var oM,gM;class sS{constructor(T,S,$,f){this._cachedPath=[],this.parent=T,this.data=S,this._path=$,this._key=f}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 E2=(T,S)=>{if(Sf(S))return{success:!0,data:S.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 $=new CS(T.common.issues);return this._error=$,this._error}}}};function MT(T){if(!T)return{};let{errorMap:S,invalid_type_error:$,required_error:f,description:M}=T;if(S&&($||f))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(S)return{errorMap:S,description:M};return{errorMap:(J,W)=>{var A,w;let{message:X}=T;if(J.code==="invalid_enum_value")return{message:X!==null&&X!==void 0?X:W.defaultError};if(typeof W.data==="undefined")return{message:(A=X!==null&&X!==void 0?X:f)!==null&&A!==void 0?A:W.defaultError};if(J.code!=="invalid_type")return{message:W.defaultError};return{message:(w=X!==null&&X!==void 0?X:$)!==null&&w!==void 0?w:W.defaultError}},description:M}}class FT{get description(){return this._def.description}_getType(T){return E$(T.data)}_getOrReturnCtx(T,S){return S||{common:T.parent.common,data:T.data,parsedType:E$(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new KS,ctx:{common:T.parent.common,data:T.data,parsedType:E$(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let S=this._parse(T);if(tM(S))throw new Error("Synchronous parse encountered promise.");return S}_parseAsync(T){let S=this._parse(T);return Promise.resolve(S)}parse(T,S){let $=this.safeParse(T,S);if($.success)return $.data;throw $.error}safeParse(T,S){var $;let f={common:{issues:[],async:($=S===null||S===void 0?void 0:S.async)!==null&&$!==void 0?$:!1,contextualErrorMap:S===null||S===void 0?void 0:S.errorMap},path:(S===null||S===void 0?void 0:S.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:E$(T)},M=this._parseSync({data:T,path:f.path,parent:f});return E2(f,M)}"~validate"(T){var S,$;let f={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:E$(T)};if(!this["~standard"].async)try{let M=this._parseSync({data:T,path:[],parent:f});return Sf(M)?{value:M.value}:{issues:f.common.issues}}catch(M){if(($=(S=M===null||M===void 0?void 0:M.message)===null||S===void 0?void 0:S.toLowerCase())===null||$===void 0?void 0:$.includes("encountered"))this["~standard"].async=!0;f.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:f}).then((M)=>Sf(M)?{value:M.value}:{issues:f.common.issues})}async parseAsync(T,S){let $=await this.safeParseAsync(T,S);if($.success)return $.data;throw $.error}async safeParseAsync(T,S){let $={common:{issues:[],contextualErrorMap:S===null||S===void 0?void 0:S.errorMap,async:!0},path:(S===null||S===void 0?void 0:S.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:E$(T)},f=this._parse({data:T,path:$.path,parent:$}),M=await(tM(f)?f:Promise.resolve(f));return E2($,M)}refine(T,S){let $=(f)=>{if(typeof S==="string"||typeof S==="undefined")return{message:S};else if(typeof S==="function")return S(f);else return S};return this._refinement((f,M)=>{let F=T(f),J=()=>M.addIssue({code:I.custom,...$(f)});if(typeof Promise!=="undefined"&&F instanceof Promise)return F.then((W)=>{if(!W)return J(),!1;else return!0});if(!F)return J(),!1;else return!0})}refinement(T,S){return this._refinement(($,f)=>{if(!T($))return f.addIssue(typeof S==="function"?S($,f):S),!1;else return!0})}_refinement(T){return new nS({schema:this,typeName:j.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(S)=>this["~validate"](S)}}optional(){return IS.create(this,this._def)}nullable(){return Q$.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return aS.create(this)}promise(){return Ff.create(this,this._def)}or(T){return pf.create([this,T],this._def)}and(T){return uf.create(this,T,this._def)}transform(T){return new nS({...MT(this._def),schema:this,typeName:j.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let S=typeof T==="function"?T:()=>T;return new af({...MT(this._def),innerType:this,defaultValue:S,typeName:j.ZodDefault})}brand(){return new zJ({typeName:j.ZodBranded,type:this,...MT(this._def)})}catch(T){let S=typeof T==="function"?T:()=>T;return new sf({...MT(this._def),innerType:this,catchValue:S,typeName:j.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return rM.create(this,T)}readonly(){return ef.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var dk=/^c[^\s-]{8,}$/i,lk=/^[0-9a-z]+$/,rk=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ak=/^[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,sk=/^[a-z0-9_-]{21}$/i,ek=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,T6=/^[-+]?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)?)??$/,S6=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,$6="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",R0,f6=/^(?:(?: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])$/,M6=/^(?:(?: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])$/,F6=/^(([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]))$/,J6=/^(([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])$/,W6=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,A6=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,B2="((\\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])))",w6=new RegExp(`^${B2}$`);function L2(T){let S="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(T.precision)S=`${S}\\.\\d{${T.precision}}`;else if(T.precision==null)S=`${S}(\\.\\d+)?`;return S}function X6(T){return new RegExp(`^${L2(T)}$`)}function N2(T){let S=`${B2}T${L2(T)}`,$=[];if($.push(T.local?"Z?":"Z"),T.offset)$.push("([+-]\\d{2}:?\\d{2})");return S=`${S}(${$.join("|")})`,new RegExp(`^${S}$`)}function Y6(T,S){if((S==="v4"||!S)&&f6.test(T))return!0;if((S==="v6"||!S)&&F6.test(T))return!0;return!1}function k6(T,S){if(!ek.test(T))return!1;try{let[$]=T.split("."),f=$.replace(/-/g,"+").replace(/_/g,"/").padEnd($.length+(4-$.length%4)%4,"="),M=JSON.parse(atob(f));if(typeof M!=="object"||M===null)return!1;if(!M.typ||!M.alg)return!1;if(S&&M.alg!==S)return!1;return!0}catch($){return!1}}function K6(T,S){if((S==="v4"||!S)&&M6.test(T))return!0;if((S==="v6"||!S)&&J6.test(T))return!0;return!1}class rS extends FT{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==g.string){let M=this._getOrReturnCtx(T);return h(M,{code:I.invalid_type,expected:g.string,received:M.parsedType}),ST}let $=new KS,f=void 0;for(let M of this._def.checks)if(M.kind==="min"){if(T.data.length<M.value)f=this._getOrReturnCtx(T,f),h(f,{code:I.too_small,minimum:M.value,type:"string",inclusive:!0,exact:!1,message:M.message}),$.dirty()}else if(M.kind==="max"){if(T.data.length>M.value)f=this._getOrReturnCtx(T,f),h(f,{code:I.too_big,maximum:M.value,type:"string",inclusive:!0,exact:!1,message:M.message}),$.dirty()}else if(M.kind==="length"){let F=T.data.length>M.value,J=T.data.length<M.value;if(F||J){if(f=this._getOrReturnCtx(T,f),F)h(f,{code:I.too_big,maximum:M.value,type:"string",inclusive:!0,exact:!0,message:M.message});else if(J)h(f,{code:I.too_small,minimum:M.value,type:"string",inclusive:!0,exact:!0,message:M.message});$.dirty()}}else if(M.kind==="email"){if(!S6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"email",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="emoji"){if(!R0)R0=new RegExp($6,"u");if(!R0.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"emoji",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="uuid"){if(!ak.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"uuid",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="nanoid"){if(!sk.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"nanoid",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="cuid"){if(!dk.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"cuid",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="cuid2"){if(!lk.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"cuid2",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="ulid"){if(!rk.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"ulid",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="url")try{new URL(T.data)}catch(F){f=this._getOrReturnCtx(T,f),h(f,{validation:"url",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="regex"){if(M.regex.lastIndex=0,!M.regex.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"regex",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="trim")T.data=T.data.trim();else if(M.kind==="includes"){if(!T.data.includes(M.value,M.position))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:{includes:M.value,position:M.position},message:M.message}),$.dirty()}else if(M.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(M.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(M.kind==="startsWith"){if(!T.data.startsWith(M.value))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:{startsWith:M.value},message:M.message}),$.dirty()}else if(M.kind==="endsWith"){if(!T.data.endsWith(M.value))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:{endsWith:M.value},message:M.message}),$.dirty()}else if(M.kind==="datetime"){if(!N2(M).test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:"datetime",message:M.message}),$.dirty()}else if(M.kind==="date"){if(!w6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:"date",message:M.message}),$.dirty()}else if(M.kind==="time"){if(!X6(M).test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:"time",message:M.message}),$.dirty()}else if(M.kind==="duration"){if(!T6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"duration",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="ip"){if(!Y6(T.data,M.version))f=this._getOrReturnCtx(T,f),h(f,{validation:"ip",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="jwt"){if(!k6(T.data,M.alg))f=this._getOrReturnCtx(T,f),h(f,{validation:"jwt",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="cidr"){if(!K6(T.data,M.version))f=this._getOrReturnCtx(T,f),h(f,{validation:"cidr",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="base64"){if(!W6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"base64",code:I.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="base64url"){if(!A6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"base64url",code:I.invalid_string,message:M.message}),$.dirty()}else OT.assertNever(M);return{status:$.value,value:T.data}}_regex(T,S,$){return this.refinement((f)=>T.test(f),{validation:S,code:I.invalid_string,...i.errToObj($)})}_addCheck(T){return new rS({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...i.errToObj(T)})}url(T){return this._addCheck({kind:"url",...i.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...i.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...i.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...i.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...i.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...i.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...i.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...i.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...i.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...i.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...i.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...i.errToObj(T)})}datetime(T){var S,$;if(typeof T==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T});return this._addCheck({kind:"datetime",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,offset:(S=T===null||T===void 0?void 0:T.offset)!==null&&S!==void 0?S:!1,local:($=T===null||T===void 0?void 0:T.local)!==null&&$!==void 0?$:!1,...i.errToObj(T===null||T===void 0?void 0:T.message)})}date(T){return this._addCheck({kind:"date",message:T})}time(T){if(typeof T==="string")return this._addCheck({kind:"time",precision:null,message:T});return this._addCheck({kind:"time",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,...i.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...i.errToObj(T)})}regex(T,S){return this._addCheck({kind:"regex",regex:T,...i.errToObj(S)})}includes(T,S){return this._addCheck({kind:"includes",value:T,position:S===null||S===void 0?void 0:S.position,...i.errToObj(S===null||S===void 0?void 0:S.message)})}startsWith(T,S){return this._addCheck({kind:"startsWith",value:T,...i.errToObj(S)})}endsWith(T,S){return this._addCheck({kind:"endsWith",value:T,...i.errToObj(S)})}min(T,S){return this._addCheck({kind:"min",value:T,...i.errToObj(S)})}max(T,S){return this._addCheck({kind:"max",value:T,...i.errToObj(S)})}length(T,S){return this._addCheck({kind:"length",value:T,...i.errToObj(S)})}nonempty(T){return this.min(1,i.errToObj(T))}trim(){return new rS({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new rS({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new rS({...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 S of this._def.checks)if(S.kind==="min"){if(T===null||S.value>T)T=S.value}return T}get maxLength(){let T=null;for(let S of this._def.checks)if(S.kind==="max"){if(T===null||S.value<T)T=S.value}return T}}rS.create=(T)=>{var S;return new rS({checks:[],typeName:j.ZodString,coerce:(S=T===null||T===void 0?void 0:T.coerce)!==null&&S!==void 0?S:!1,...MT(T)})};function O6(T,S){let $=(T.toString().split(".")[1]||"").length,f=(S.toString().split(".")[1]||"").length,M=$>f?$:f,F=parseInt(T.toFixed(M).replace(".","")),J=parseInt(S.toFixed(M).replace(".",""));return F%J/Math.pow(10,M)}class o$ extends FT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==g.number){let M=this._getOrReturnCtx(T);return h(M,{code:I.invalid_type,expected:g.number,received:M.parsedType}),ST}let $=void 0,f=new KS;for(let M of this._def.checks)if(M.kind==="int"){if(!OT.isInteger(T.data))$=this._getOrReturnCtx(T,$),h($,{code:I.invalid_type,expected:"integer",received:"float",message:M.message}),f.dirty()}else if(M.kind==="min"){if(M.inclusive?T.data<M.value:T.data<=M.value)$=this._getOrReturnCtx(T,$),h($,{code:I.too_small,minimum:M.value,type:"number",inclusive:M.inclusive,exact:!1,message:M.message}),f.dirty()}else if(M.kind==="max"){if(M.inclusive?T.data>M.value:T.data>=M.value)$=this._getOrReturnCtx(T,$),h($,{code:I.too_big,maximum:M.value,type:"number",inclusive:M.inclusive,exact:!1,message:M.message}),f.dirty()}else if(M.kind==="multipleOf"){if(O6(T.data,M.value)!==0)$=this._getOrReturnCtx(T,$),h($,{code:I.not_multiple_of,multipleOf:M.value,message:M.message}),f.dirty()}else if(M.kind==="finite"){if(!Number.isFinite(T.data))$=this._getOrReturnCtx(T,$),h($,{code:I.not_finite,message:M.message}),f.dirty()}else OT.assertNever(M);return{status:f.value,value:T.data}}gte(T,S){return this.setLimit("min",T,!0,i.toString(S))}gt(T,S){return this.setLimit("min",T,!1,i.toString(S))}lte(T,S){return this.setLimit("max",T,!0,i.toString(S))}lt(T,S){return this.setLimit("max",T,!1,i.toString(S))}setLimit(T,S,$,f){return new o$({...this._def,checks:[...this._def.checks,{kind:T,value:S,inclusive:$,message:i.toString(f)}]})}_addCheck(T){return new o$({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:i.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:i.toString(T)})}multipleOf(T,S){return this._addCheck({kind:"multipleOf",value:T,message:i.toString(S)})}finite(T){return this._addCheck({kind:"finite",message:i.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:i.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:i.toString(T)})}get minValue(){let T=null;for(let S of this._def.checks)if(S.kind==="min"){if(T===null||S.value>T)T=S.value}return T}get maxValue(){let T=null;for(let S of this._def.checks)if(S.kind==="max"){if(T===null||S.value<T)T=S.value}return T}get isInt(){return!!this._def.checks.find((T)=>T.kind==="int"||T.kind==="multipleOf"&&OT.isInteger(T.value))}get isFinite(){let T=null,S=null;for(let $ of this._def.checks)if($.kind==="finite"||$.kind==="int"||$.kind==="multipleOf")return!0;else if($.kind==="min"){if(S===null||$.value>S)S=$.value}else if($.kind==="max"){if(T===null||$.value<T)T=$.value}return Number.isFinite(S)&&Number.isFinite(T)}}o$.create=(T)=>{return new o$({checks:[],typeName:j.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...MT(T)})};class g$ extends FT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(M){return this._getInvalidInput(T)}if(this._getType(T)!==g.bigint)return this._getInvalidInput(T);let $=void 0,f=new KS;for(let M of this._def.checks)if(M.kind==="min"){if(M.inclusive?T.data<M.value:T.data<=M.value)$=this._getOrReturnCtx(T,$),h($,{code:I.too_small,type:"bigint",minimum:M.value,inclusive:M.inclusive,message:M.message}),f.dirty()}else if(M.kind==="max"){if(M.inclusive?T.data>M.value:T.data>=M.value)$=this._getOrReturnCtx(T,$),h($,{code:I.too_big,type:"bigint",maximum:M.value,inclusive:M.inclusive,message:M.message}),f.dirty()}else if(M.kind==="multipleOf"){if(T.data%M.value!==BigInt(0))$=this._getOrReturnCtx(T,$),h($,{code:I.not_multiple_of,multipleOf:M.value,message:M.message}),f.dirty()}else OT.assertNever(M);return{status:f.value,value:T.data}}_getInvalidInput(T){let S=this._getOrReturnCtx(T);return h(S,{code:I.invalid_type,expected:g.bigint,received:S.parsedType}),ST}gte(T,S){return this.setLimit("min",T,!0,i.toString(S))}gt(T,S){return this.setLimit("min",T,!1,i.toString(S))}lte(T,S){return this.setLimit("max",T,!0,i.toString(S))}lt(T,S){return this.setLimit("max",T,!1,i.toString(S))}setLimit(T,S,$,f){return new g$({...this._def,checks:[...this._def.checks,{kind:T,value:S,inclusive:$,message:i.toString(f)}]})}_addCheck(T){return new g$({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:i.toString(T)})}multipleOf(T,S){return this._addCheck({kind:"multipleOf",value:T,message:i.toString(S)})}get minValue(){let T=null;for(let S of this._def.checks)if(S.kind==="min"){if(T===null||S.value>T)T=S.value}return T}get maxValue(){let T=null;for(let S of this._def.checks)if(S.kind==="max"){if(T===null||S.value<T)T=S.value}return T}}g$.create=(T)=>{var S;return new g$({checks:[],typeName:j.ZodBigInt,coerce:(S=T===null||T===void 0?void 0:T.coerce)!==null&&S!==void 0?S:!1,...MT(T)})};class of extends FT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==g.boolean){let $=this._getOrReturnCtx(T);return h($,{code:I.invalid_type,expected:g.boolean,received:$.parsedType}),ST}return zS(T.data)}}of.create=(T)=>{return new of({typeName:j.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...MT(T)})};class $f extends FT{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==g.date){let M=this._getOrReturnCtx(T);return h(M,{code:I.invalid_type,expected:g.date,received:M.parsedType}),ST}if(isNaN(T.data.getTime())){let M=this._getOrReturnCtx(T);return h(M,{code:I.invalid_date}),ST}let $=new KS,f=void 0;for(let M of this._def.checks)if(M.kind==="min"){if(T.data.getTime()<M.value)f=this._getOrReturnCtx(T,f),h(f,{code:I.too_small,message:M.message,inclusive:!0,exact:!1,minimum:M.value,type:"date"}),$.dirty()}else if(M.kind==="max"){if(T.data.getTime()>M.value)f=this._getOrReturnCtx(T,f),h(f,{code:I.too_big,message:M.message,inclusive:!0,exact:!1,maximum:M.value,type:"date"}),$.dirty()}else OT.assertNever(M);return{status:$.value,value:new Date(T.data.getTime())}}_addCheck(T){return new $f({...this._def,checks:[...this._def.checks,T]})}min(T,S){return this._addCheck({kind:"min",value:T.getTime(),message:i.toString(S)})}max(T,S){return this._addCheck({kind:"max",value:T.getTime(),message:i.toString(S)})}get minDate(){let T=null;for(let S of this._def.checks)if(S.kind==="min"){if(T===null||S.value>T)T=S.value}return T!=null?new Date(T):null}get maxDate(){let T=null;for(let S of this._def.checks)if(S.kind==="max"){if(T===null||S.value<T)T=S.value}return T!=null?new Date(T):null}}$f.create=(T)=>{return new $f({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:j.ZodDate,...MT(T)})};class pM extends FT{_parse(T){if(this._getType(T)!==g.symbol){let $=this._getOrReturnCtx(T);return h($,{code:I.invalid_type,expected:g.symbol,received:$.parsedType}),ST}return zS(T.data)}}pM.create=(T)=>{return new pM({typeName:j.ZodSymbol,...MT(T)})};class gf extends FT{_parse(T){if(this._getType(T)!==g.undefined){let $=this._getOrReturnCtx(T);return h($,{code:I.invalid_type,expected:g.undefined,received:$.parsedType}),ST}return zS(T.data)}}gf.create=(T)=>{return new gf({typeName:j.ZodUndefined,...MT(T)})};class tf extends FT{_parse(T){if(this._getType(T)!==g.null){let $=this._getOrReturnCtx(T);return h($,{code:I.invalid_type,expected:g.null,received:$.parsedType}),ST}return zS(T.data)}}tf.create=(T)=>{return new tf({typeName:j.ZodNull,...MT(T)})};class ff extends FT{constructor(){super(...arguments);this._any=!0}_parse(T){return zS(T.data)}}ff.create=(T)=>{return new ff({typeName:j.ZodAny,...MT(T)})};class c$ extends FT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return zS(T.data)}}c$.create=(T)=>{return new c$({typeName:j.ZodUnknown,...MT(T)})};class w$ extends FT{_parse(T){let S=this._getOrReturnCtx(T);return h(S,{code:I.invalid_type,expected:g.never,received:S.parsedType}),ST}}w$.create=(T)=>{return new w$({typeName:j.ZodNever,...MT(T)})};class iM extends FT{_parse(T){if(this._getType(T)!==g.undefined){let $=this._getOrReturnCtx(T);return h($,{code:I.invalid_type,expected:g.void,received:$.parsedType}),ST}return zS(T.data)}}iM.create=(T)=>{return new iM({typeName:j.ZodVoid,...MT(T)})};class aS extends FT{_parse(T){let{ctx:S,status:$}=this._processInputParams(T),f=this._def;if(S.parsedType!==g.array)return h(S,{code:I.invalid_type,expected:g.array,received:S.parsedType}),ST;if(f.exactLength!==null){let F=S.data.length>f.exactLength.value,J=S.data.length<f.exactLength.value;if(F||J)h(S,{code:F?I.too_big:I.too_small,minimum:J?f.exactLength.value:void 0,maximum:F?f.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:f.exactLength.message}),$.dirty()}if(f.minLength!==null){if(S.data.length<f.minLength.value)h(S,{code:I.too_small,minimum:f.minLength.value,type:"array",inclusive:!0,exact:!1,message:f.minLength.message}),$.dirty()}if(f.maxLength!==null){if(S.data.length>f.maxLength.value)h(S,{code:I.too_big,maximum:f.maxLength.value,type:"array",inclusive:!0,exact:!1,message:f.maxLength.message}),$.dirty()}if(S.common.async)return Promise.all([...S.data].map((F,J)=>{return f.type._parseAsync(new sS(S,F,S.path,J))})).then((F)=>{return KS.mergeArray($,F)});let M=[...S.data].map((F,J)=>{return f.type._parseSync(new sS(S,F,S.path,J))});return KS.mergeArray($,M)}get element(){return this._def.type}min(T,S){return new aS({...this._def,minLength:{value:T,message:i.toString(S)}})}max(T,S){return new aS({...this._def,maxLength:{value:T,message:i.toString(S)}})}length(T,S){return new aS({...this._def,exactLength:{value:T,message:i.toString(S)}})}nonempty(T){return this.min(1,T)}}aS.create=(T,S)=>{return new aS({type:T,minLength:null,maxLength:null,exactLength:null,typeName:j.ZodArray,...MT(S)})};function vf(T){if(T instanceof qT){let S={};for(let $ in T.shape){let f=T.shape[$];S[$]=IS.create(vf(f))}return new qT({...T._def,shape:()=>S})}else if(T instanceof aS)return new aS({...T._def,type:vf(T.element)});else if(T instanceof IS)return IS.create(vf(T.unwrap()));else if(T instanceof Q$)return Q$.create(vf(T.unwrap()));else if(T instanceof X$)return X$.create(T.items.map((S)=>vf(S)));else return T}class qT extends FT{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(),S=OT.objectKeys(T);return this._cached={shape:T,keys:S}}_parse(T){if(this._getType(T)!==g.object){let A=this._getOrReturnCtx(T);return h(A,{code:I.invalid_type,expected:g.object,received:A.parsedType}),ST}let{status:$,ctx:f}=this._processInputParams(T),{shape:M,keys:F}=this._getCached(),J=[];if(!(this._def.catchall instanceof w$&&this._def.unknownKeys==="strip")){for(let A in f.data)if(!F.includes(A))J.push(A)}let W=[];for(let A of F){let w=M[A],X=f.data[A];W.push({key:{status:"valid",value:A},value:w._parse(new sS(f,X,f.path,A)),alwaysSet:A in f.data})}if(this._def.catchall instanceof w$){let A=this._def.unknownKeys;if(A==="passthrough")for(let w of J)W.push({key:{status:"valid",value:w},value:{status:"valid",value:f.data[w]}});else if(A==="strict"){if(J.length>0)h(f,{code:I.unrecognized_keys,keys: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 J){let X=f.data[w];W.push({key:{status:"valid",value:w},value:A._parse(new sS(f,X,f.path,w)),alwaysSet:w in f.data})}}if(f.common.async)return Promise.resolve().then(async()=>{let A=[];for(let w of W){let X=await w.key,Y=await w.value;A.push({key:X,value:Y,alwaysSet:w.alwaysSet})}return A}).then((A)=>{return KS.mergeObjectSync($,A)});else return KS.mergeObjectSync($,W)}get shape(){return this._def.shape()}strict(T){return i.errToObj,new qT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:(S,$)=>{var f,M,F,J;let W=(F=(M=(f=this._def).errorMap)===null||M===void 0?void 0:M.call(f,S,$).message)!==null&&F!==void 0?F:$.defaultError;if(S.code==="unrecognized_keys")return{message:(J=i.errToObj(T).message)!==null&&J!==void 0?J:W};return{message:W}}}:{}})}strip(){return new qT({...this._def,unknownKeys:"strip"})}passthrough(){return new qT({...this._def,unknownKeys:"passthrough"})}extend(T){return new qT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new qT({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:j.ZodObject})}setKey(T,S){return this.augment({[T]:S})}catchall(T){return new qT({...this._def,catchall:T})}pick(T){let S={};return OT.objectKeys(T).forEach(($)=>{if(T[$]&&this.shape[$])S[$]=this.shape[$]}),new qT({...this._def,shape:()=>S})}omit(T){let S={};return OT.objectKeys(this.shape).forEach(($)=>{if(!T[$])S[$]=this.shape[$]}),new qT({...this._def,shape:()=>S})}deepPartial(){return vf(this)}partial(T){let S={};return OT.objectKeys(this.shape).forEach(($)=>{let f=this.shape[$];if(T&&!T[$])S[$]=f;else S[$]=f.optional()}),new qT({...this._def,shape:()=>S})}required(T){let S={};return OT.objectKeys(this.shape).forEach(($)=>{if(T&&!T[$])S[$]=this.shape[$];else{let M=this.shape[$];while(M instanceof IS)M=M._def.innerType;S[$]=M}}),new qT({...this._def,shape:()=>S})}keyof(){return C2(OT.objectKeys(this.shape))}}qT.create=(T,S)=>{return new qT({shape:()=>T,unknownKeys:"strip",catchall:w$.create(),typeName:j.ZodObject,...MT(S)})};qT.strictCreate=(T,S)=>{return new qT({shape:()=>T,unknownKeys:"strict",catchall:w$.create(),typeName:j.ZodObject,...MT(S)})};qT.lazycreate=(T,S)=>{return new qT({shape:T,unknownKeys:"strip",catchall:w$.create(),typeName:j.ZodObject,...MT(S)})};class pf extends FT{_parse(T){let{ctx:S}=this._processInputParams(T),$=this._def.options;function f(M){for(let J of M)if(J.result.status==="valid")return J.result;for(let J of M)if(J.result.status==="dirty")return S.common.issues.push(...J.ctx.common.issues),J.result;let F=M.map((J)=>new CS(J.ctx.common.issues));return h(S,{code:I.invalid_union,unionErrors:F}),ST}if(S.common.async)return Promise.all($.map(async(M)=>{let F={...S,common:{...S.common,issues:[]},parent:null};return{result:await M._parseAsync({data:S.data,path:S.path,parent:F}),ctx:F}})).then(f);else{let M=void 0,F=[];for(let W of $){let A={...S,common:{...S.common,issues:[]},parent:null},w=W._parseSync({data:S.data,path:S.path,parent:A});if(w.status==="valid")return w;else if(w.status==="dirty"&&!M)M={result:w,ctx:A};if(A.common.issues.length)F.push(A.common.issues)}if(M)return S.common.issues.push(...M.ctx.common.issues),M.result;let J=F.map((W)=>new CS(W));return h(S,{code:I.invalid_union,unionErrors:J}),ST}}get options(){return this._def.options}}pf.create=(T,S)=>{return new pf({options:T,typeName:j.ZodUnion,...MT(S)})};var _$=(T)=>{if(T instanceof df)return _$(T.schema);else if(T instanceof nS)return _$(T.innerType());else if(T instanceof lf)return[T.value];else if(T instanceof t$)return T.options;else if(T instanceof rf)return OT.objectValues(T.enum);else if(T instanceof af)return _$(T._def.innerType);else if(T instanceof gf)return[void 0];else if(T instanceof tf)return[null];else if(T instanceof IS)return[void 0,..._$(T.unwrap())];else if(T instanceof Q$)return[null,..._$(T.unwrap())];else if(T instanceof zJ)return _$(T.unwrap());else if(T instanceof ef)return _$(T.unwrap());else if(T instanceof sf)return _$(T._def.innerType);else return[]};class RJ extends FT{_parse(T){let{ctx:S}=this._processInputParams(T);if(S.parsedType!==g.object)return h(S,{code:I.invalid_type,expected:g.object,received:S.parsedType}),ST;let $=this.discriminator,f=S.data[$],M=this.optionsMap.get(f);if(!M)return h(S,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[$]}),ST;if(S.common.async)return M._parseAsync({data:S.data,path:S.path,parent:S});else return M._parseSync({data:S.data,path:S.path,parent:S})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(T,S,$){let f=new Map;for(let M of S){let F=_$(M.shape[T]);if(!F.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let J of F){if(f.has(J))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(J)}`);f.set(J,M)}}return new RJ({typeName:j.ZodDiscriminatedUnion,discriminator:T,options:S,optionsMap:f,...MT($)})}}function _0(T,S){let $=E$(T),f=E$(S);if(T===S)return{valid:!0,data:T};else if($===g.object&&f===g.object){let M=OT.objectKeys(S),F=OT.objectKeys(T).filter((W)=>M.indexOf(W)!==-1),J={...T,...S};for(let W of F){let A=_0(T[W],S[W]);if(!A.valid)return{valid:!1};J[W]=A.data}return{valid:!0,data:J}}else if($===g.array&&f===g.array){if(T.length!==S.length)return{valid:!1};let M=[];for(let F=0;F<T.length;F++){let J=T[F],W=S[F],A=_0(J,W);if(!A.valid)return{valid:!1};M.push(A.data)}return{valid:!0,data:M}}else if($===g.date&&f===g.date&&+T===+S)return{valid:!0,data:T};else return{valid:!1}}class uf extends FT{_parse(T){let{status:S,ctx:$}=this._processInputParams(T),f=(M,F)=>{if(H0(M)||H0(F))return ST;let J=_0(M.value,F.value);if(!J.valid)return h($,{code:I.invalid_intersection_types}),ST;if(D0(M)||D0(F))S.dirty();return{status:S.value,value:J.data}};if($.common.async)return Promise.all([this._def.left._parseAsync({data:$.data,path:$.path,parent:$}),this._def.right._parseAsync({data:$.data,path:$.path,parent:$})]).then(([M,F])=>f(M,F));else return f(this._def.left._parseSync({data:$.data,path:$.path,parent:$}),this._def.right._parseSync({data:$.data,path:$.path,parent:$}))}}uf.create=(T,S,$)=>{return new uf({left:T,right:S,typeName:j.ZodIntersection,...MT($)})};class X$ extends FT{_parse(T){let{status:S,ctx:$}=this._processInputParams(T);if($.parsedType!==g.array)return h($,{code:I.invalid_type,expected:g.array,received:$.parsedType}),ST;if($.data.length<this._def.items.length)return h($,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ST;if(!this._def.rest&&$.data.length>this._def.items.length)h($,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),S.dirty();let M=[...$.data].map((F,J)=>{let W=this._def.items[J]||this._def.rest;if(!W)return null;return W._parse(new sS($,F,$.path,J))}).filter((F)=>!!F);if($.common.async)return Promise.all(M).then((F)=>{return KS.mergeArray(S,F)});else return KS.mergeArray(S,M)}get items(){return this._def.items}rest(T){return new X$({...this._def,rest:T})}}X$.create=(T,S)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new X$({items:T,typeName:j.ZodTuple,rest:null,...MT(S)})};class uM extends FT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:S,ctx:$}=this._processInputParams(T);if($.parsedType!==g.object)return h($,{code:I.invalid_type,expected:g.object,received:$.parsedType}),ST;let f=[],M=this._def.keyType,F=this._def.valueType;for(let J in $.data)f.push({key:M._parse(new sS($,J,$.path,J)),value:F._parse(new sS($,$.data[J],$.path,J)),alwaysSet:J in $.data});if($.common.async)return KS.mergeObjectAsync(S,f);else return KS.mergeObjectSync(S,f)}get element(){return this._def.valueType}static create(T,S,$){if(S instanceof FT)return new uM({keyType:T,valueType:S,typeName:j.ZodRecord,...MT($)});return new uM({keyType:rS.create(),valueType:T,typeName:j.ZodRecord,...MT(S)})}}class dM extends FT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:S,ctx:$}=this._processInputParams(T);if($.parsedType!==g.map)return h($,{code:I.invalid_type,expected:g.map,received:$.parsedType}),ST;let f=this._def.keyType,M=this._def.valueType,F=[...$.data.entries()].map(([J,W],A)=>{return{key:f._parse(new sS($,J,$.path,[A,"key"])),value:M._parse(new sS($,W,$.path,[A,"value"]))}});if($.common.async){let J=new Map;return Promise.resolve().then(async()=>{for(let W of F){let A=await W.key,w=await W.value;if(A.status==="aborted"||w.status==="aborted")return ST;if(A.status==="dirty"||w.status==="dirty")S.dirty();J.set(A.value,w.value)}return{status:S.value,value:J}})}else{let J=new Map;for(let W of F){let{key:A,value:w}=W;if(A.status==="aborted"||w.status==="aborted")return ST;if(A.status==="dirty"||w.status==="dirty")S.dirty();J.set(A.value,w.value)}return{status:S.value,value:J}}}}dM.create=(T,S,$)=>{return new dM({valueType:S,keyType:T,typeName:j.ZodMap,...MT($)})};class Mf extends FT{_parse(T){let{status:S,ctx:$}=this._processInputParams(T);if($.parsedType!==g.set)return h($,{code:I.invalid_type,expected:g.set,received:$.parsedType}),ST;let f=this._def;if(f.minSize!==null){if($.data.size<f.minSize.value)h($,{code:I.too_small,minimum:f.minSize.value,type:"set",inclusive:!0,exact:!1,message:f.minSize.message}),S.dirty()}if(f.maxSize!==null){if($.data.size>f.maxSize.value)h($,{code:I.too_big,maximum:f.maxSize.value,type:"set",inclusive:!0,exact:!1,message:f.maxSize.message}),S.dirty()}let M=this._def.valueType;function F(W){let A=new Set;for(let w of W){if(w.status==="aborted")return ST;if(w.status==="dirty")S.dirty();A.add(w.value)}return{status:S.value,value:A}}let J=[...$.data.values()].map((W,A)=>M._parse(new sS($,W,$.path,A)));if($.common.async)return Promise.all(J).then((W)=>F(W));else return F(J)}min(T,S){return new Mf({...this._def,minSize:{value:T,message:i.toString(S)}})}max(T,S){return new Mf({...this._def,maxSize:{value:T,message:i.toString(S)}})}size(T,S){return this.min(T,S).max(T,S)}nonempty(T){return this.min(1,T)}}Mf.create=(T,S)=>{return new Mf({valueType:T,minSize:null,maxSize:null,typeName:j.ZodSet,...MT(S)})};class nf extends FT{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:S}=this._processInputParams(T);if(S.parsedType!==g.function)return h(S,{code:I.invalid_type,expected:g.function,received:S.parsedType}),ST;function $(J,W){return yJ({data:J,path:S.path,errorMaps:[S.common.contextualErrorMap,S.schemaErrorMap,OJ(),cf].filter((A)=>!!A),issueData:{code:I.invalid_arguments,argumentsError:W}})}function f(J,W){return yJ({data:J,path:S.path,errorMaps:[S.common.contextualErrorMap,S.schemaErrorMap,OJ(),cf].filter((A)=>!!A),issueData:{code:I.invalid_return_type,returnTypeError:W}})}let M={errorMap:S.common.contextualErrorMap},F=S.data;if(this._def.returns instanceof Ff){let J=this;return zS(async function(...W){let A=new CS([]),w=await J._def.args.parseAsync(W,M).catch((k)=>{throw A.addIssue($(W,k)),A}),X=await Reflect.apply(F,this,w);return await J._def.returns._def.type.parseAsync(X,M).catch((k)=>{throw A.addIssue(f(X,k)),A})})}else{let J=this;return zS(function(...W){let A=J._def.args.safeParse(W,M);if(!A.success)throw new CS([$(W,A.error)]);let w=Reflect.apply(F,this,A.data),X=J._def.returns.safeParse(w,M);if(!X.success)throw new CS([f(w,X.error)]);return X.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new nf({...this._def,args:X$.create(T).rest(c$.create())})}returns(T){return new nf({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,S,$){return new nf({args:T?T:X$.create([]).rest(c$.create()),returns:S||c$.create(),typeName:j.ZodFunction,...MT($)})}}class df extends FT{get schema(){return this._def.getter()}_parse(T){let{ctx:S}=this._processInputParams(T);return this._def.getter()._parse({data:S.data,path:S.path,parent:S})}}df.create=(T,S)=>{return new df({getter:T,typeName:j.ZodLazy,...MT(S)})};class lf extends FT{_parse(T){if(T.data!==this._def.value){let S=this._getOrReturnCtx(T);return h(S,{received:S.data,code:I.invalid_literal,expected:this._def.value}),ST}return{status:"valid",value:T.data}}get value(){return this._def.value}}lf.create=(T,S)=>{return new lf({value:T,typeName:j.ZodLiteral,...MT(S)})};function C2(T,S){return new t$({values:T,typeName:j.ZodEnum,...MT(S)})}class t$ extends FT{constructor(){super(...arguments);oM.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let S=this._getOrReturnCtx(T),$=this._def.values;return h(S,{expected:OT.joinValues($),received:S.parsedType,code:I.invalid_type}),ST}if(!GJ(this,oM,"f"))V2(this,oM,new Set(this._def.values),"f");if(!GJ(this,oM,"f").has(T.data)){let S=this._getOrReturnCtx(T),$=this._def.values;return h(S,{received:S.data,code:I.invalid_enum_value,options:$}),ST}return zS(T.data)}get options(){return this._def.values}get enum(){let T={};for(let S of this._def.values)T[S]=S;return T}get Values(){let T={};for(let S of this._def.values)T[S]=S;return T}get Enum(){let T={};for(let S of this._def.values)T[S]=S;return T}extract(T,S=this._def){return t$.create(T,{...this._def,...S})}exclude(T,S=this._def){return t$.create(this.options.filter(($)=>!T.includes($)),{...this._def,...S})}}oM=new WeakMap;t$.create=C2;class rf extends FT{constructor(){super(...arguments);gM.set(this,void 0)}_parse(T){let S=OT.getValidEnumValues(this._def.values),$=this._getOrReturnCtx(T);if($.parsedType!==g.string&&$.parsedType!==g.number){let f=OT.objectValues(S);return h($,{expected:OT.joinValues(f),received:$.parsedType,code:I.invalid_type}),ST}if(!GJ(this,gM,"f"))V2(this,gM,new Set(OT.getValidEnumValues(this._def.values)),"f");if(!GJ(this,gM,"f").has(T.data)){let f=OT.objectValues(S);return h($,{received:$.data,code:I.invalid_enum_value,options:f}),ST}return zS(T.data)}get enum(){return this._def.values}}gM=new WeakMap;rf.create=(T,S)=>{return new rf({values:T,typeName:j.ZodNativeEnum,...MT(S)})};class Ff extends FT{unwrap(){return this._def.type}_parse(T){let{ctx:S}=this._processInputParams(T);if(S.parsedType!==g.promise&&S.common.async===!1)return h(S,{code:I.invalid_type,expected:g.promise,received:S.parsedType}),ST;let $=S.parsedType===g.promise?S.data:Promise.resolve(S.data);return zS($.then((f)=>{return this._def.type.parseAsync(f,{path:S.path,errorMap:S.common.contextualErrorMap})}))}}Ff.create=(T,S)=>{return new Ff({type:T,typeName:j.ZodPromise,...MT(S)})};class nS extends FT{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===j.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:S,ctx:$}=this._processInputParams(T),f=this._def.effect||null,M={addIssue:(F)=>{if(h($,F),F.fatal)S.abort();else S.dirty()},get path(){return $.path}};if(M.addIssue=M.addIssue.bind(M),f.type==="preprocess"){let F=f.transform($.data,M);if($.common.async)return Promise.resolve(F).then(async(J)=>{if(S.value==="aborted")return ST;let W=await this._def.schema._parseAsync({data:J,path:$.path,parent:$});if(W.status==="aborted")return ST;if(W.status==="dirty")return Pf(W.value);if(S.value==="dirty")return Pf(W.value);return W});else{if(S.value==="aborted")return ST;let J=this._def.schema._parseSync({data:F,path:$.path,parent:$});if(J.status==="aborted")return ST;if(J.status==="dirty")return Pf(J.value);if(S.value==="dirty")return Pf(J.value);return J}}if(f.type==="refinement"){let F=(J)=>{let W=f.refinement(J,M);if($.common.async)return Promise.resolve(W);if(W instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return J};if($.common.async===!1){let J=this._def.schema._parseSync({data:$.data,path:$.path,parent:$});if(J.status==="aborted")return ST;if(J.status==="dirty")S.dirty();return F(J.value),{status:S.value,value:J.value}}else return this._def.schema._parseAsync({data:$.data,path:$.path,parent:$}).then((J)=>{if(J.status==="aborted")return ST;if(J.status==="dirty")S.dirty();return F(J.value).then(()=>{return{status:S.value,value:J.value}})})}if(f.type==="transform")if($.common.async===!1){let F=this._def.schema._parseSync({data:$.data,path:$.path,parent:$});if(!Sf(F))return F;let J=f.transform(F.value,M);if(J instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:S.value,value:J}}else return this._def.schema._parseAsync({data:$.data,path:$.path,parent:$}).then((F)=>{if(!Sf(F))return F;return Promise.resolve(f.transform(F.value,M)).then((J)=>({status:S.value,value:J}))});OT.assertNever(f)}}nS.create=(T,S,$)=>{return new nS({schema:T,typeName:j.ZodEffects,effect:S,...MT($)})};nS.createWithPreprocess=(T,S,$)=>{return new nS({schema:S,effect:{type:"preprocess",transform:T},typeName:j.ZodEffects,...MT($)})};class IS extends FT{_parse(T){if(this._getType(T)===g.undefined)return zS(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}IS.create=(T,S)=>{return new IS({innerType:T,typeName:j.ZodOptional,...MT(S)})};class Q$ extends FT{_parse(T){if(this._getType(T)===g.null)return zS(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}Q$.create=(T,S)=>{return new Q$({innerType:T,typeName:j.ZodNullable,...MT(S)})};class af extends FT{_parse(T){let{ctx:S}=this._processInputParams(T),$=S.data;if(S.parsedType===g.undefined)$=this._def.defaultValue();return this._def.innerType._parse({data:$,path:S.path,parent:S})}removeDefault(){return this._def.innerType}}af.create=(T,S)=>{return new af({innerType:T,typeName:j.ZodDefault,defaultValue:typeof S.default==="function"?S.default:()=>S.default,...MT(S)})};class sf extends FT{_parse(T){let{ctx:S}=this._processInputParams(T),$={...S,common:{...S.common,issues:[]}},f=this._def.innerType._parse({data:$.data,path:$.path,parent:{...$}});if(tM(f))return f.then((M)=>{return{status:"valid",value:M.status==="valid"?M.value:this._def.catchValue({get error(){return new CS($.common.issues)},input:$.data})}});else return{status:"valid",value:f.status==="valid"?f.value:this._def.catchValue({get error(){return new CS($.common.issues)},input:$.data})}}removeCatch(){return this._def.innerType}}sf.create=(T,S)=>{return new sf({innerType:T,typeName:j.ZodCatch,catchValue:typeof S.catch==="function"?S.catch:()=>S.catch,...MT(S)})};class lM extends FT{_parse(T){if(this._getType(T)!==g.nan){let $=this._getOrReturnCtx(T);return h($,{code:I.invalid_type,expected:g.nan,received:$.parsedType}),ST}return{status:"valid",value:T.data}}}lM.create=(T)=>{return new lM({typeName:j.ZodNaN,...MT(T)})};var y6=Symbol("zod_brand");class zJ extends FT{_parse(T){let{ctx:S}=this._processInputParams(T),$=S.data;return this._def.type._parse({data:$,path:S.path,parent:S})}unwrap(){return this._def.type}}class rM extends FT{_parse(T){let{status:S,ctx:$}=this._processInputParams(T);if($.common.async)return(async()=>{let M=await this._def.in._parseAsync({data:$.data,path:$.path,parent:$});if(M.status==="aborted")return ST;if(M.status==="dirty")return S.dirty(),Pf(M.value);else return this._def.out._parseAsync({data:M.value,path:$.path,parent:$})})();else{let f=this._def.in._parseSync({data:$.data,path:$.path,parent:$});if(f.status==="aborted")return ST;if(f.status==="dirty")return S.dirty(),{status:"dirty",value:f.value};else return this._def.out._parseSync({data:f.value,path:$.path,parent:$})}}static create(T,S){return new rM({in:T,out:S,typeName:j.ZodPipeline})}}class ef extends FT{_parse(T){let S=this._def.innerType._parse(T),$=(f)=>{if(Sf(f))f.value=Object.freeze(f.value);return f};return tM(S)?S.then((f)=>$(f)):$(S)}unwrap(){return this._def.innerType}}ef.create=(T,S)=>{return new ef({innerType:T,typeName:j.ZodReadonly,...MT(S)})};function I2(T,S={},$){if(T)return ff.create().superRefine((f,M)=>{var F,J;if(!T(f)){let W=typeof S==="function"?S(f):typeof S==="string"?{message:S}:S,A=(J=(F=W.fatal)!==null&&F!==void 0?F:$)!==null&&J!==void 0?J:!0,w=typeof W==="string"?{message:W}:W;M.addIssue({code:"custom",...w,fatal:A})}});return ff.create()}var G6={object:qT.lazycreate},j;(function(T){T.ZodString="ZodString",T.ZodNumber="ZodNumber",T.ZodNaN="ZodNaN",T.ZodBigInt="ZodBigInt",T.ZodBoolean="ZodBoolean",T.ZodDate="ZodDate",T.ZodSymbol="ZodSymbol",T.ZodUndefined="ZodUndefined",T.ZodNull="ZodNull",T.ZodAny="ZodAny",T.ZodUnknown="ZodUnknown",T.ZodNever="ZodNever",T.ZodVoid="ZodVoid",T.ZodArray="ZodArray",T.ZodObject="ZodObject",T.ZodUnion="ZodUnion",T.ZodDiscriminatedUnion="ZodDiscriminatedUnion",T.ZodIntersection="ZodIntersection",T.ZodTuple="ZodTuple",T.ZodRecord="ZodRecord",T.ZodMap="ZodMap",T.ZodSet="ZodSet",T.ZodFunction="ZodFunction",T.ZodLazy="ZodLazy",T.ZodLiteral="ZodLiteral",T.ZodEnum="ZodEnum",T.ZodEffects="ZodEffects",T.ZodNativeEnum="ZodNativeEnum",T.ZodOptional="ZodOptional",T.ZodNullable="ZodNullable",T.ZodDefault="ZodDefault",T.ZodCatch="ZodCatch",T.ZodPromise="ZodPromise",T.ZodBranded="ZodBranded",T.ZodPipeline="ZodPipeline",T.ZodReadonly="ZodReadonly"})(j||(j={}));var R6=(T,S={message:`Input not instance of ${T.name}`})=>I2(($)=>$ instanceof T,S),j2=rS.create,x2=o$.create,z6=lM.create,H6=g$.create,Z2=of.create,D6=$f.create,_6=pM.create,E6=gf.create,Q6=tf.create,U6=ff.create,V6=c$.create,B6=w$.create,L6=iM.create,N6=aS.create,C6=qT.create,I6=qT.strictCreate,j6=pf.create,x6=RJ.create,Z6=uf.create,b6=X$.create,q6=uM.create,m6=dM.create,h6=Mf.create,v6=nf.create,P6=df.create,n6=lf.create,c6=t$.create,o6=rf.create,g6=Ff.create,Q2=nS.create,t6=IS.create,p6=Q$.create,i6=nS.createWithPreprocess,u6=rM.create,d6=()=>j2().optional(),l6=()=>x2().optional(),r6=()=>Z2().optional(),a6={string:(T)=>rS.create({...T,coerce:!0}),number:(T)=>o$.create({...T,coerce:!0}),boolean:(T)=>of.create({...T,coerce:!0}),bigint:(T)=>g$.create({...T,coerce:!0}),date:(T)=>$f.create({...T,coerce:!0})},s6=ST,_T=Object.freeze({__proto__:null,defaultErrorMap:cf,setErrorMap:ik,getErrorMap:OJ,makeIssue:yJ,EMPTY_PATH:uk,addIssueToContext:h,ParseStatus:KS,INVALID:ST,DIRTY:Pf,OK:zS,isAborted:H0,isDirty:D0,isValid:Sf,isAsync:tM,get util(){return OT},get objectUtil(){return z0},ZodParsedType:g,getParsedType:E$,ZodType:FT,datetimeRegex:N2,ZodString:rS,ZodNumber:o$,ZodBigInt:g$,ZodBoolean:of,ZodDate:$f,ZodSymbol:pM,ZodUndefined:gf,ZodNull:tf,ZodAny:ff,ZodUnknown:c$,ZodNever:w$,ZodVoid:iM,ZodArray:aS,ZodObject:qT,ZodUnion:pf,ZodDiscriminatedUnion:RJ,ZodIntersection:uf,ZodTuple:X$,ZodRecord:uM,ZodMap:dM,ZodSet:Mf,ZodFunction:nf,ZodLazy:df,ZodLiteral:lf,ZodEnum:t$,ZodNativeEnum:rf,ZodPromise:Ff,ZodEffects:nS,ZodTransformer:nS,ZodOptional:IS,ZodNullable:Q$,ZodDefault:af,ZodCatch:sf,ZodNaN:lM,BRAND:y6,ZodBranded:zJ,ZodPipeline:rM,ZodReadonly:ef,custom:I2,Schema:FT,ZodSchema:FT,late:G6,get ZodFirstPartyTypeKind(){return j},coerce:a6,any:U6,array:N6,bigint:H6,boolean:Z2,date:D6,discriminatedUnion:x6,effect:Q2,enum:c6,function:v6,instanceof:R6,intersection:Z6,lazy:P6,literal:n6,map:m6,nan:z6,nativeEnum:o6,never:B6,null:Q6,nullable:p6,number:x2,object:C6,oboolean:r6,onumber:l6,optional:t6,ostring:d6,pipeline:u6,preprocess:i6,promise:g6,record:q6,set:h6,strictObject:I6,string:j2,symbol:_6,transformer:Q2,tuple:b6,undefined:E6,union:j6,unknown:V6,void:L6,NEVER:s6,ZodIssueCode:I,quotelessJson:pk,ZodError:CS});function b2(){return{}}function q2(T,S){let $={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==j.ZodAny)$.items=e(T.type._def,{...S,currentPath:[...S.currentPath,"items"]});if(T.minLength)YT($,"minItems",T.minLength.value,T.minLength.message,S);if(T.maxLength)YT($,"maxItems",T.maxLength.value,T.maxLength.message,S);if(T.exactLength)YT($,"minItems",T.exactLength.value,T.exactLength.message,S),YT($,"maxItems",T.exactLength.value,T.exactLength.message,S);return $}function m2(T,S){let $={type:"integer",format:"int64"};if(!T.checks)return $;for(let f of T.checks)switch(f.kind){case"min":if(S.target==="jsonSchema7")if(f.inclusive)YT($,"minimum",f.value,f.message,S);else YT($,"exclusiveMinimum",f.value,f.message,S);else{if(!f.inclusive)$.exclusiveMinimum=!0;YT($,"minimum",f.value,f.message,S)}break;case"max":if(S.target==="jsonSchema7")if(f.inclusive)YT($,"maximum",f.value,f.message,S);else YT($,"exclusiveMaximum",f.value,f.message,S);else{if(!f.inclusive)$.exclusiveMaximum=!0;YT($,"maximum",f.value,f.message,S)}break;case"multipleOf":YT($,"multipleOf",f.value,f.message,S);break}return $}function h2(){return{type:"boolean"}}function HJ(T,S){return e(T.type._def,S)}var v2=(T,S)=>{return e(T.innerType._def,S)};function E0(T,S,$){let f=$??S.dateStrategy;if(Array.isArray(f))return{anyOf:f.map((M,F)=>E0(T,S,M))};switch(f){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return e6(T,S)}}var e6=(T,S)=>{let $={type:"integer",format:"unix-time"};if(S.target==="openApi3")return $;for(let f of T.checks)switch(f.kind){case"min":YT($,"minimum",f.value,f.message,S);break;case"max":YT($,"maximum",f.value,f.message,S);break}return $};function P2(T,S){return{...e(T.innerType._def,S),default:T.defaultValue()}}function n2(T,S){return S.effectStrategy==="input"?e(T.schema._def,S):{}}function c2(T){return{type:"string",enum:Array.from(T.values)}}var TK=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function o2(T,S){let $=[e(T.left._def,{...S,currentPath:[...S.currentPath,"allOf","0"]}),e(T.right._def,{...S,currentPath:[...S.currentPath,"allOf","1"]})].filter((F)=>!!F),f=S.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,M=[];return $.forEach((F)=>{if(TK(F)){if(M.push(...F.allOf),F.unevaluatedProperties===void 0)f=void 0}else{let J=F;if("additionalProperties"in F&&F.additionalProperties===!1){let{additionalProperties:W,...A}=F;J=A}else f=void 0;M.push(J)}}),M.length?{allOf:M,...f}:void 0}function g2(T,S){let $=typeof T.value;if($!=="bigint"&&$!=="number"&&$!=="boolean"&&$!=="string")return{type:Array.isArray(T.value)?"array":"object"};if(S.target==="openApi3")return{type:$==="bigint"?"integer":$,enum:[T.value]};return{type:$==="bigint"?"integer":$,const:T.value}}var Q0=void 0,eS={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(Q0===void 0)Q0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return Q0},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 DJ(T,S){let $={type:"string"};if(T.checks)for(let f of T.checks)switch(f.kind){case"min":YT($,"minLength",typeof $.minLength==="number"?Math.max($.minLength,f.value):f.value,f.message,S);break;case"max":YT($,"maxLength",typeof $.maxLength==="number"?Math.min($.maxLength,f.value):f.value,f.message,S);break;case"email":switch(S.emailStrategy){case"format:email":T$($,"email",f.message,S);break;case"format:idn-email":T$($,"idn-email",f.message,S);break;case"pattern:zod":HS($,eS.email,f.message,S);break}break;case"url":T$($,"uri",f.message,S);break;case"uuid":T$($,"uuid",f.message,S);break;case"regex":HS($,f.regex,f.message,S);break;case"cuid":HS($,eS.cuid,f.message,S);break;case"cuid2":HS($,eS.cuid2,f.message,S);break;case"startsWith":HS($,RegExp(`^${U0(f.value,S)}`),f.message,S);break;case"endsWith":HS($,RegExp(`${U0(f.value,S)}$`),f.message,S);break;case"datetime":T$($,"date-time",f.message,S);break;case"date":T$($,"date",f.message,S);break;case"time":T$($,"time",f.message,S);break;case"duration":T$($,"duration",f.message,S);break;case"length":YT($,"minLength",typeof $.minLength==="number"?Math.max($.minLength,f.value):f.value,f.message,S),YT($,"maxLength",typeof $.maxLength==="number"?Math.min($.maxLength,f.value):f.value,f.message,S);break;case"includes":{HS($,RegExp(U0(f.value,S)),f.message,S);break}case"ip":{if(f.version!=="v6")T$($,"ipv4",f.message,S);if(f.version!=="v4")T$($,"ipv6",f.message,S);break}case"base64url":HS($,eS.base64url,f.message,S);break;case"jwt":HS($,eS.jwt,f.message,S);break;case"cidr":{if(f.version!=="v6")HS($,eS.ipv4Cidr,f.message,S);if(f.version!=="v4")HS($,eS.ipv6Cidr,f.message,S);break}case"emoji":HS($,eS.emoji(),f.message,S);break;case"ulid":{HS($,eS.ulid,f.message,S);break}case"base64":{switch(S.base64Strategy){case"format:binary":{T$($,"binary",f.message,S);break}case"contentEncoding:base64":{YT($,"contentEncoding","base64",f.message,S);break}case"pattern:zod":{HS($,eS.base64,f.message,S);break}}break}case"nanoid":HS($,eS.nanoid,f.message,S);case"toLowerCase":case"toUpperCase":case"trim":break;default:((M)=>{})(f)}return $}function U0(T,S){return S.patternStrategy==="escape"?$K(T):T}var SK=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function $K(T){let S="";for(let $=0;$<T.length;$++){if(!SK.has(T[$]))S+="\\";S+=T[$]}return S}function T$(T,S,$,f){if(T.format||T.anyOf?.some((M)=>M.format)){if(!T.anyOf)T.anyOf=[];if(T.format){if(T.anyOf.push({format:T.format,...T.errorMessage&&f.errorMessages&&{errorMessage:{format:T.errorMessage.format}}}),delete T.format,T.errorMessage){if(delete T.errorMessage.format,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.anyOf.push({format:S,...$&&f.errorMessages&&{errorMessage:{format:$}}})}else YT(T,"format",S,$,f)}function HS(T,S,$,f){if(T.pattern||T.allOf?.some((M)=>M.pattern)){if(!T.allOf)T.allOf=[];if(T.pattern){if(T.allOf.push({pattern:T.pattern,...T.errorMessage&&f.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:t2(S,f),...$&&f.errorMessages&&{errorMessage:{pattern:$}}})}else YT(T,"pattern",t2(S,f),$,f)}function t2(T,S){if(!S.applyRegexFlags||!T.flags)return T.source;let $={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},f=$.i?T.source.toLowerCase():T.source,M="",F=!1,J=!1,W=!1;for(let A=0;A<f.length;A++){if(F){M+=f[A],F=!1;continue}if($.i){if(J){if(f[A].match(/[a-z]/)){if(W)M+=f[A],M+=`${f[A-2]}-${f[A]}`.toUpperCase(),W=!1;else if(f[A+1]==="-"&&f[A+2]?.match(/[a-z]/))M+=f[A],W=!0;else M+=`${f[A]}${f[A].toUpperCase()}`;continue}}else if(f[A].match(/[a-z]/)){M+=`[${f[A]}${f[A].toUpperCase()}]`;continue}}if($.m){if(f[A]==="^"){M+=`(^|(?<=[\r
|
|
9
|
+
`);T.disposalTraces.add({key:S.key,trace:F})}}var JJ=(T,$)=>x($).atoms.has(T),nk=(T,$)=>x($).selectors.has(T),ck=(T,$)=>x($).readonlySelectors.has(T),f2=(T,$)=>JJ(T,$)||nk(T,$)||ck(T,$);var WJ=(T,$)=>{return x($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([f,{source:M}])=>M!==T).map(([f,{source:M}])=>M).filter((f)=>f2(f,$))};var S0=(T,$,S)=>{let f=[],M=WJ(T,S);while(M.length>0){let F=M.shift();if($.has(F))continue;if($.add(F),!JJ(F,S))M.push(...WJ(F,S));else if(!f.includes(F))f.push(F)}return f},M2=(T,$)=>{let S=T.key,f=WJ(S,$),M=new Set;return f.flatMap((F)=>JJ(F,$)?F:S0(F,M,$))};var F2=(T,$,S,f)=>{let M=x(f);if($.type==="atom"||$.type==="mutable_atom")M.selectorAtoms.set({selectorKey:T,atomKey:$.key}),f.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let F=S0($.key,S,f);f.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${F.map((J)=>`"${J}"`).join(", ")} ]`);for(let J of F)M.selectorAtoms=M.selectorAtoms.set({selectorKey:T,atomKey:J})}S.add($.key)};var AJ=(T,$,S)=>({get:(...f)=>{let M=x(S),F;if(f.length===2){let[A,w]=f;switch(A.type){case"molecule_family":return wT(S,A,w);default:if(S.config.lifespan==="ephemeral")F=KT(S,A,w);else{let X=IT(S,A,w);if(X)F=X;else throw new U$(A,w,S)}}}else[F]=f;if(F.type==="molecule")return wT(S,F);let J=TT(F,S),W=PS(J,S);return S.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${F.key}" =`,W,")"),M.selectorGraph.set({upstreamSelectorKey:F.key,downstreamSelectorKey:T},{source:F.key}),F2(T,F,$,S),W},set:(...f)=>{let M,F;if(f.length===2)M=f[0],F=f[1];else{let A=f[0],w=f[1];F=f[2];let X=S.config.lifespan==="ephemeral"?KT(S,A,w):IT(S,A,w);if(!X)throw new U$(A,w,S);M=X}let J=x(S),W=TT(M,J);TJ(W,F,J)},find:(f,M)=>KT(S,f,M),seek:(f,M)=>IT(S,f,M),json:(f)=>cT(S,f)});var xM=(T,$,S)=>{let f=x(T),M=new fT,F=new Set,{get:J,find:W,seek:A,json:w}=AJ($.key,F,f),X=()=>{let z=$.get({get:J,find:W,seek:A,json:w});return v$($.key,z,M,x(T)),F.clear(),z},Y={...$,subject:M,install:(z)=>xM(z,$,S),get:X,type:"readonly_selector",...S&&{family:S}};f.readonlySelectors.set($.key,Y);let k=X();T.logger.info("\u2728",Y.type,Y.key,"=",k);let R={key:$.key,type:"readonly_selector"};if(S)R.family=S;return R};var PM=(T,$,S)=>{let f=x(T),M=new fT,F=new Set,J=AJ($.key,F,f),{find:W,get:A,seek:w,json:X}=J,Y={find:W,get:A,seek:w,json:X},k=(N=$.get,V=x(T))=>{let L=N(Y);return v$($.key,L,M,V),F.clear(),L},z={...$,subject:M,install:(N)=>PM(N,$,S),get:k,set:(N)=>{let V=x(T),L=k($.get,V),Z=eF(N)(L);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",L,"->",Z,")"),v$($.key,Z,M,V),qf(V,$.key),oT(V))M.next({newValue:Z,oldValue:L});$.set(J,Z)},type:"selector",...S&&{family:S}};f.selectors.set($.key,z);let Q=k();T.logger.info("\u2728",z.type,z.key,"=",Q);let D={key:$.key,type:"selector"};if(S)D.family=S;return D};function u$(T,$){if("set"in $){let M=PM(T,$,void 0);return T.on.selectorCreation.next(M),M}let f=xM(T,$,void 0);return T.on.selectorCreation.next(f),f}function S2(T,$){let S=x($),{key:f}=T,M=TT(T,S);if(!M.family)$.logger.error("\u274C","selector",f,"Standalone selectors cannot be disposed.");else{let F=S.molecules.get(M.family.subKey);if(F)F.tokens.delete(f);switch(T.type){case"selector":S.selectors.delete(f),TT({key:M.family.key,type:"selector_family"},$).subject.next({type:"state_disposal",token:T});break;case"readonly_selector":S.readonlySelectors.delete(f),TT({key:M.family.key,type:"readonly_selector_family"},$).subject.next({type:"state_disposal",token:T});break}if(S.valueMap.delete(f),S.selectorAtoms.delete(f),S.selectorGraph.delete(f),$.logger.info("\uD83D\uDD25",T.type,f,"deleted"),XT(S)&&S.transactionMeta.phase==="building")S.transactionMeta.update.updates.push({type:"state_disposal",token:T});else $.on.selectorDisposal.next(T)}}function bM(T,$,S){let f={key:$.key,type:"selector_family"},M=T.families.get($.key);if(M)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${d$(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new fT,W=Object.assign((A)=>{let w=s(A),X={key:$.key,subKey:w},Y=`${$.key}(${w})`,k=x(T),R=PM(k,{key:Y,get:$.get(A),set:$.set(A)},X);return F.next({type:"state_creation",token:R}),R},f,{internalRoles:S,subject:F,install:(A)=>bM(A,$),default:(A)=>{return $.get(A)({get:(...X)=>wT(T,...X),find:(X,Y)=>KT(T,X,Y),seek:(X,Y)=>IT(T,X,Y),json:(X)=>cT(T,X)})}});return T.families.set($.key,W),f}function J2(T,$,S=WT.STORE){let f=bM(S,{key:`${T.key}:JSON`,get:(F)=>({seek:J,get:W})=>{let A=J(T,F);if(A)return $.toJson(W(A));let w=s(F),X=S.molecules.get(w);if(X){let k=l$(X,T,S);return $.toJson(W(k))}if(S.config.lifespan==="immortal")throw new Error(`No molecule found for key "${w}"`);let Y=zS(S,T,F);return $.toJson(W(Y))},set:(F)=>({seek:J,set:W},A)=>{let w=J(T,F);if(w)W(w,$.fromJson(A));else{let X=s(F),Y=S.molecules.get(X);if(Y){let k=l$(Y,T,S);W(k,$.fromJson(A))}else{if(S.config.lifespan==="immortal")throw new Error(`No molecule found for key "${X}"`);W(zS(S,T,F),$.fromJson(A))}}}},["mutable","json"]);return TT(T,S).subject.subscribe(`store=${S.config.name}::json-selector-family`,(F)=>{if(F.token.family)IT(S,f,dT(F.token.family.subKey))}),f}var dT=(T)=>JSON.parse(T),s=(T)=>JSON.stringify(T),zz=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var W2=(T,$)=>{let S=x($);if(S.operation.open)return S.operation.prev.get(T.key);return S.valueMap.get(T.key)};var F0=(T,$)=>{let S=x($);return M2(T,$).map((M)=>{let F=S.atoms.get(M);if(F===void 0)throw new Error(`Atom "${M}", a dependency of selector "${T.key}", not found in store "${$.config.name}".`);return F.subject.subscribe(`${T.type}:${T.key}`,(J)=>{$.logger.info("\uD83D\uDCE2",T.type,T.key,"root",M,"went",J.oldValue,"->",J.newValue);let W=W2(T,S),A=PS(T,S);$.logger.info("\u2728",T.type,T.key,"went",W,"->",A),T.subject.next({newValue:A,oldValue:W})})})};function k$(T,$,S,f){function M(Y){if(f.operation.open){let k=f.on.operationClose.subscribe(`state subscription ${S}`,()=>{k(),$(Y)})}else $(Y)}let F=TT(T,f);f.logger.info("\uD83D\uDC40",F.type,F.key,`Adding subscription "${S}"`);let J=F.type==="selector"||F.type==="readonly_selector",W=null,A=M;if(J)W=F0(F,f),A=(Y)=>{if(W)W.length=0,W.push(...F0(F,f));M(Y)};let w=F.subject.subscribe(S,A);return()=>{if(f.logger.info("\uD83D\uDE48",F.type,F.key,`Removing subscription "${S}"`),w(),W)for(let Y of W)Y()}}var f0=(T,$,S,f)=>{let M=TT(T,f);f.logger.info("\uD83D\uDC40","timeline",T.key,`Adding subscription "${S}"`);let F=M.subject.subscribe(S,$);return()=>{f.logger.info("\uD83D\uDE48","timeline",T.key,`Removing subscription "${S}" from timeline`),F()}};var M0=(T,$,S,f)=>{let M=TT(T,f);f.logger.info("\uD83D\uDC40","transaction",T.key,`Adding subscription "${S}"`);let F=M.subject.subscribe(S,$);return()=>{f.logger.info("\uD83D\uDE48","transaction",T.key,`Removing subscription "${S}"`),F()}};class nS{Update;initializeState(T,$){let S=`*${T.key}`;$.atoms.delete(S),$.valueMap.delete(S);let f=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,M=Q$($,{key:S,default:null},f);if($.parent?.valueMap.has(S)){let F=$.parent.valueMap.get(S);$.valueMap.set(S,F)}return M}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,S){let f=`tracker:${S.config.name}:${XT(S)?S.transactionMeta.update.key:"main"}:${T.key}`,M=wT(S,T);this.unsubscribeFromInnerValue=M.subscribe(f,(F)=>{bT(S,$,F)}),this.unsubscribeFromState=k$(T,(F)=>{if(F.newValue!==F.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=F.newValue.subscribe(f,(J)=>{bT(S,$,J)})},f,S)}updateCore(T,$,S){let f=`tracker:${S.config.name}:${XT(S)?S.transactionMeta.update.key:"main"}:${T.key}`;k$($,({newValue:M,oldValue:F})=>{let J=S.timelineTopics.getRelatedKey($.key);if(J){if(S.timelines.get(J)?.timeTraveling){let w=f0({key:J,type:"timeline"},(X)=>{w(),bT(S,T,(Y)=>{if(X==="redo"&&M)Y.do(M);else if(X==="undo"&&F)Y.undo(F);return Y})},f,S);return}}let W=S.on.operationClose.subscribe(f,()=>{W();let A=wT(S,T),w=M===null?-1:A.getUpdateNumber(M),X=w-A.cacheUpdateNumber;if(M&&X===1)bT(S,T,(Y)=>(Y.do(M),Y));else S.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${A.cacheUpdateNumber+1}, but got ${w}`)})},f,S)}mutableState;latestUpdateState;dispose;constructor(T,$){this.mutableState=T;let S=x($);this.latestUpdateState=this.initializeState(T,S),this.observeCore(T,this.latestUpdateState,S),this.updateCore(T,this.latestUpdateState,S),S.trackers.set(T.key,this),this.dispose=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),S.trackers.delete(T.key)}}}function nM(T,$,S){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let f=x(T),M=f.atoms.get($.key);if(M&&M.type==="mutable_atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),Y$(M);let F=new fT,J={...$,type:"mutable_atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),nM(w,$,S)},subject:F};if(S)J.family=S;let W=$.default();f.atoms.set(J.key,J),wJ($.key,T),v$($.key,W,F,f);let A=Y$(J);if($.effects){let w=0,X=[];for(let Y of $.effects){let k=Y({setSelf:(R)=>{bT(T,A,R)},onSet:(R)=>k$(A,R,`effect[${w}]`,T)});if(k)X.push(k);++w}J.cleanup=()=>{for(let Y of X)Y()}}if(new nS(A,T),!S)NA(A,$,T);return A}class J0{Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let S=AS($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=TT(S,$),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(f)=>{if(f.token.family){let M=dT(f.token.family.subKey);IT($,this.latestUpdateAtoms,M),new nS(f.token,$)}}),this.latestUpdateAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(f)=>{if(f.token.family){let M=dT(f.token.family.subKey),F=IT($,this.mutableAtoms,M);if(F)new nS(F,$)}})}}function jM(T,$,S){let f={key:$.key,type:"mutable_atom_family"},M=T.families.get($.key);if(M)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${d$(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new fT,W=Object.assign((A)=>{let w=s(A),X={key:$.key,subKey:w},Y=`${$.key}(${w})`,k=x(T),R={key:Y,default:()=>$.default(A),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)R.effects=$.effects(A);let z=nM(k,R,X);return F.next({type:"state_creation",token:z}),z},f,{subject:F,install:(A)=>jM(A,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:S});return T.families.set($.key,W),J2(W,$,T),new J0(W,T),f}var W0=(T,$)=>{let S=x($),f=`${T.key}:JSON`;return S.families.get(f)};var cT=(T,$)=>{if($.family){let f=x(T),F={key:`${$.family.key}:JSON`,type:"selector_family"},J=TT(F,f),W=JSON.parse($.family.subKey);return KT(T,J,W)}return{type:"selector",key:`${$.key}:JSON`}};var DS=(T)=>{let S={type:"atom",key:`*${T.key}`};if(T.family)S.family={key:`*${T.family.key}`,subKey:T.family.subKey};return S};function cA(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function hM(T,$,S){let f=$.valueMap.get(T.key),M=S.valueMap.get(T.key);if(f===M){if(f===void 0)return typeof T.default==="function"?T.default():T.default;$.logger.info("\uD83D\uDCC3","atom",T.key,"copying");let F=T.toJson(f),J=T.fromJson(F);return S.valueMap.set(T.key,J),new nS(T,$),J}return M}function v$(T,$,S,f){let M=f.valueMap.get(T);if(M instanceof IM)M.use($);if($ instanceof Promise){let F=new IM($);return f.valueMap.set(T,F),F.then((J)=>{v$(T,J,S,f),S.next({newValue:J,oldValue:F})}).catch((J)=>{f.logger.error("\uD83D\uDCA5","state",T,"rejected:",J)}),F}return f.valueMap.set(T,$),$}var bA=(T,$)=>{let S=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&XT($)){let{parent:f}=$;S=hM(T,f,$)}return S},PA=(T,$)=>{let S=$.valueMap.get(T);if(S instanceof IM){let f=S,M=$.selectors.get(T)??$.readonlySelectors.get(T);if(M)f.use(M.get());return}if($.operation.open)$.operation.prev.set(T,S);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var gA=(T,$)=>{return x($).atomsThatAreDefault.has(T)},wJ=(T,$)=>{let S=x($);S.atomsThatAreDefault=new Set(S.atomsThatAreDefault).add(T)},tA=(T,$)=>{let S=x($);S.atomsThatAreDefault=new Set(x($).atomsThatAreDefault),S.atomsThatAreDefault.delete(T)};function Q$(T,$,S){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let f=x(T),M=f.atoms.get($.key);if(M&&M.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),Y$(M);let F=new fT,J={...$,type:"atom",install:(w)=>{return w.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${w.config.name}"`),Q$(w,$,S)},subject:F};if(S)J.family=S;let W=$.default;if($.default instanceof Function)W=$.default();f.atoms.set(J.key,J),wJ($.key,T),v$($.key,W,F,f);let A=Y$(J);if($.effects){let w=0,X=[];for(let Y of $.effects){let k=Y({setSelf:(R)=>{bT(T,A,R)},onSet:(R)=>k$(A,R,`effect[${w}]`,T)});if(k)X.push(k);++w}J.cleanup=()=>{for(let Y of X)Y()}}return A}function jA(T,$){if("mutable"in $){let M=nM(T,$,void 0);return T.on.atomCreation.next(M),M}let f=Q$(T,$,void 0);return T.on.atomCreation.next(f),f}function $0(T,$){let S=x($),{key:f}=T,M=TT(T,S);if(!M.family)$.logger.error("\u274C","atom",f,"Standalone atoms cannot be disposed.");else{M.cleanup?.();let F=$.valueMap.get(M.key);TT({key:M.family.key,type:"atom_family"},$).subject.next({type:"state_disposal",token:T,value:F});let W=S.molecules.get(M.family.subKey);if(W)W.tokens.delete(f);if(S.atoms.delete(f),S.valueMap.delete(f),S.selectorAtoms.delete(f),S.atomsThatAreDefault.delete(f),$.timelineTopics.delete(f),T.type==="mutable_atom"){let A=DS(T);$0(A,$),$.trackers.delete(f)}if($.logger.info("\uD83D\uDD25","atom",f,"deleted"),XT(S)&&S.transactionMeta.phase==="building")S.transactionMeta.update.updates.push({type:"state_disposal",token:T});else $.on.atomDisposal.next(T)}}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",(S)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=S})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let $=new 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:${s(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:${s(T)}`);return $}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new lT(this);let $=this.child._subscribe("transaction",(S)=>{this.transactionUpdates?.push(S)});try{if(T(this.child)){for(let f of this.transactionUpdates)this.doStep(f);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(S){throw console.error("Failed to apply transaction to SetRTX:",S),S}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,$){return this.subject.subscribe(T,$)}subscribe(T,$){return this.subject.subscribe(T,(S)=>{$(`${this.cacheUpdateNumber}=${S}`)})}emit(T){this.subject.next(T)}doStep(T){let $=T.indexOf(":"),S=T.substring(0,$),f=T.substring($+1);switch(S){case"add":this.add(JSON.parse(f));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(f));break;case"tx":for(let M of f.split(";"))this.doStep(M)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),S=Number(T.substring(0,$)),f=S-this.cacheUpdateNumber;if(f>0){if(f===1){this.mode="playback";let F=T.substring($+1);return this.doStep(F),this.mode="record",this.cacheUpdateNumber=S,null}return this.cacheUpdateNumber+1}if(Math.abs(f)<this.cacheLimit){let F=this.cacheIdx+f;if(this.cache[F]===T)return null;this.mode="playback";let W=!1;while(!W){this.cacheIdx%=this.cacheLimit;let w=this.cache[this.cacheIdx];if(this.cacheIdx--,!w)return"OUT_OF_RANGE";this.undo(w),W=this.cacheIdx===F-1}let A=T.substring($+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=S,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),S=T.substring(0,$),f=T.substring($+1);switch(S){case"add":this.delete(JSON.parse(f));break;case"del":this.add(JSON.parse(f));break;case"clear":{let M=JSON.parse(f);for(let F of M)this.add(F);break}case"tx":{let M=f.split(";");for(let F=M.length-1;F>=0;F--)this.undoStep(M[F])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let f=T.substring($+1);return this.undoStep(f),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function xT(T){return T[0].toUpperCase()+T.slice(1)}class w0{options;defaultContent;toolkit;retrieve;molecules=new Map;relations;states;core;transact(T,$){let S=this.toolkit;this.toolkit=T,$(this),this.toolkit=S}store;alternates;[Symbol.dispose](){this.alternates.delete(this.store.config.name)}in(T){let $=T.config.name,S=this.alternates.get($);if(S)return S;let f=new w0(this.options,this.defaultContent,T);return this.alternates.set($,f),f.alternates=this.alternates,f}constructor(T,$,S=WT.STORE){this.store=S,this.options=T,this.defaultContent=$,this.alternates=new Map,this.alternates.set(S.config.name,this),this.store.miscResources.set(`join:${T.key}`,this),this.retrieve=(_,E)=>{let B=this.toolkit.seek(_,E);if(B)return B;let q=this.store.molecules.get(s(E));if(q){let v=TT(_,S);return l$(q,v,S)}if(S.config.lifespan==="immortal")throw new U$(_,E,S);return zS(S,_,E)},this.toolkit={get:(..._)=>wT(S,..._),set:(..._)=>{bT(S,..._)},find:this.retrieve,seek:(..._)=>IT(S,..._),json:(_)=>cT(S,_),dispose:(..._)=>{R$(S,..._)}};let f=T.between[0],M=T.between[1],F=jM(S,{key:`${T.key}/relatedKeys`,default:()=>new lT,mutable:!0,fromJson:(_)=>lT.fromJSON(_),toJson:(_)=>_.toJSON()},["join","relations"]);this.core={findRelatedKeysState:F};let J=({get:_},E)=>_(this.retrieve(F,E)),W=(_,E,B)=>{let{set:q}=_,v=this.retrieve(F,E),G=this.retrieve(F,B);q(v,(o)=>o.add(B)),q(G,(o)=>o.add(E))},A=(_,E,B)=>{let{set:q}=_,v=this.retrieve(F,E),G=this.retrieve(F,B),o,n;q(v,(u)=>{if(u.delete(B),u.size===0)o=`"${E}"`;return u}),q(G,(u)=>{if(u.delete(E),u.size===0)n=`"${B}"`;return u})},w=(_,E,B)=>{let{get:q,set:v}=_,G=this.retrieve(F,E),o=q(G);for(let n of o){if(B.includes(n))continue;let yT=this.retrieve(F,n);v(yT,(zT)=>{return zT.delete(E),zT})}v(G,(n)=>{return n.transaction((u)=>{u.clear();for(let yT of B){let zT=J(_,yT),E$=zT.has(E);if(this.relations.cardinality==="1:n"){let GS=[];for(let C of zT){if(C===E)continue;let l=J(_,C);if(l.delete(yT),l.size===0)GS.push(C)}if(!E$&&zT.size>0)zT.clear();for(let C of GS){let l=[yT,C].sort(),GT=`"${l[0]}:${l[1]}"`;this.molecules.delete(GT)}}if(!E$)zT.add(E);u.add(yT)}return!0}),n})},X=(_,E,B)=>{let{set:q}=_,v=this.retrieve(F,E);q(v,(G)=>{return G.transaction((o)=>{for(let n of B)o.add(n);return!0}),G});for(let G of B){let o=this.retrieve(F,G);q(o,(n)=>{return n.add(E),n})}return!0},Y=(_,E,B)=>{let q=J(_,E);return B?q.has(B):q.size>0},k={getRelatedKeys:(_)=>J(this.toolkit,_),addRelation:(_,E)=>{W(this.toolkit,_,E)},deleteRelation:(_,E)=>{A(this.toolkit,_,E)},replaceRelationsSafely:(_,E)=>{w(this.toolkit,_,E)},replaceRelationsUnsafely:(_,E)=>{X(this.toolkit,_,E)},has:(_,E)=>Y(this.toolkit,_,E)},R,z,Q;if($){z=AS(S,{key:`${T.key}/content`,default:$},["join","content"]),Q=pA(S,{key:`${T.key}/content-molecules`,new:class v{key;constructor(G,o){this.key=o}}});let _=({get:v},G)=>v(this.retrieve(z,G)),E=({set:v},G,o)=>{v(this.retrieve(z,G),o)},B=(v,G)=>{let o=S.molecules.get(`"${G}"`);if(o)this.toolkit.dispose(o),this.molecules.delete(`"${G}"`)};R=Object.assign(k,{getContent:(v)=>{return _(this.toolkit,v)},setContent:(v,G)=>{E(this.toolkit,v,G)},deleteContent:(v)=>{B(this.toolkit,v)}})}else R=k;let D=new N$(T,{externalStore:R,isAType:T.isAType,isBType:T.isBType,makeContentKey:(..._)=>{let E=_.sort(),B=`${E[0]}:${E[1]}`,[q,v]=E.map((G)=>this.molecules.get(s(G)));if(S.config.lifespan==="immortal"&&q&&v){let G=x(S),o=HS(G,[q,v],Q,B);this.molecules.set(`"${B}"`,TT(o,G))}return B}}),N=()=>RS(S,{key:`${T.key}/singleRelatedKey`,get:(_)=>({get:E})=>{let B=this.retrieve(F,_),q=E(B);for(let v of q)return v;return null}},["join","keys"]),V=()=>{return RS(S,{key:`${T.key}/multipleRelatedKeys`,get:(_)=>({get:E})=>{let B=W0(F,S),q=this.retrieve(B,_);return E(q).members}},["join","keys"])},L=()=>RS(S,{key:`${T.key}/singleRelatedEntry`,get:(_)=>({get:E})=>{let B=this.retrieve(F,_),q=E(B);for(let v of q){let G=D.isAType?.(_)?_:void 0,o=G===void 0?_:void 0;G??=v,o??=v;let n=D.makeContentKey(G,o),u=this.retrieve(z,n),yT=E(u);return[v,yT]}return null}},["join","entries"]),Z=()=>RS(S,{key:`${T.key}/multipleRelatedEntries`,get:(_)=>({get:E})=>{let B=W0(F,S),q=this.retrieve(B,_);return E(q).members.map((G)=>{let o=D.isAType?.(_)?_:void 0,n=o===void 0?_:void 0;o??=G,n??=G;let u=D.makeContentKey(o,n),yT=this.retrieve(z,u),zT=E(yT);return[G,zT]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let _=N(),E=`${f}KeyOf${xT(M)}`,B=`${M}KeyOf${xT(f)}`,q={[E]:_,[B]:_},v;if($){let G=L(),o=`${f}EntryOf${xT(M)}`,n=`${M}EntryOf${xT(f)}`,u={[o]:G,[n]:G};v=Object.assign(q,u)}else v=q;this.relations=D,this.states=v;break}case"1:n":{let _=N(),E=V(),B=`${f}KeyOf${xT(M)}`,q=`${M}KeysOf${xT(f)}`,v={[B]:_,[q]:E},G;if($){let o=L(),n=Z(),u=`${f}EntryOf${xT(M)}`,yT=`${M}EntriesOf${xT(f)}`,zT={[u]:o,[yT]:n};G=Object.assign(v,zT)}else G=v;this.relations=D,this.states=G;break}default:{let _=V(),E=`${f}KeysOf${xT(M)}`,B=`${M}KeysOf${xT(f)}`,q={[E]:_,[B]:_},v;if($){let G=Z(),o=`${f}EntriesOf${xT(M)}`,n=`${M}EntriesOf${xT(f)}`,u={[o]:G,[n]:G};v=Object.assign(q,u)}else v=q;this.relations=D,this.states=v}}}}function XJ(T,$,S=WT.STORE){return A0(S).set(T.key,new w0(T,$,S)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function A0(T){if("joins"in T&&T.joins instanceof Map)return T.joins;let $=new Map;return T.joins=$,$}function vM(T,$){let S=A0($),f=S.get(T.key);if(f===void 0){if(f=A0(WT.STORE).get(T.key)?.in($),f===void 0)throw new Error(`Join "${T.key}" not found in store "${$.config.name}"`);S.set(T.key,f)}return f}function YJ(T,$,S){let f=vM(T,S),M;switch(T.cardinality){case"1:1":{let F=`${T.a}KeyOf${xT(T.b)}`,J=`${T.b}KeyOf${xT(T.a)}`;M={get[F](){let A=f.states[F];return f.retrieve(A,$)},get[J](){let A=f.states[J];return f.retrieve(A,$)}};let W=`${T.a}EntryOf${xT(T.b)}`;if(W in f.states){let A=`${T.b}EntryOf${xT(T.a)}`;Object.assign(M,{get[W](){let w=f.states[W];return f.retrieve(w,$)},get[A](){let w=f.states[A];return f.retrieve(w,$)}})}break}case"1:n":{let F=`${T.a}KeyOf${xT(T.b)}`,J=`${T.b}KeysOf${xT(T.a)}`;M={get[F](){let A=f.states[F];return f.retrieve(A,$)},get[J](){let A=f.states[J];return f.retrieve(A,$)}};let W=`${T.a}EntryOf${xT(T.b)}`;if(W in f.states){let A=`${T.b}EntriesOf${xT(T.a)}`;Object.assign(M,{get[W](){let w=f.states[W];return f.retrieve(w,$)},get[A](){let w=f.states[A];return f.retrieve(w,$)}})}break}case"n:n":{let F=`${T.a}KeysOf${xT(T.b)}`,J=`${T.b}KeysOf${xT(T.a)}`;M={get[F](){let A=f.states[F];return f.retrieve(A,$)},get[J](){let A=f.states[J];return f.retrieve(A,$)}};let W=`${T.a}EntriesOf${xT(T.b)}`;if(W in f.states){let A=`${T.b}EntriesOf${xT(T.a)}`;Object.assign(M,{get[W](){let w=f.states[W];return f.retrieve(w,$)},get[A](){let w=f.states[A];return f.retrieve(w,$)}})}}}return M}function uA(T,$){return YJ(T,$,WT.STORE)}function kJ(T,$,S){let f=vM(T,S),M=x(S);if(XT(M)){let{toolkit:F}=M.transactionMeta;f.transact(F,({relations:J})=>{$(J)})}else $(f.relations)}function ok(T,$){return vM(T,$).core.findRelatedKeysState}function A2(T){return ok(T,WT.STORE)}class w2 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 KJ{key;type="continuity";globals=[];actions=[];perspectives=[];constructor(T){this.key=T}static existing=new w2;static create(T,$){let S=new KJ(T),{type:f,globals:M,actions:F,perspectives:J}=$(S),W={type:f,key:T,globals:M,actions:F,perspectives:J};return KJ.existing.set(T,W),W}add(...T){switch(T[0].type){case"atom":case"mutable_atom":this.globals.push(...T);break;case"transaction":this.actions.push(...T);break;case"atom_family":{let[S,f]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:S,viewAtoms:f})}break}return this}}function yD(T){let{key:$,config:S}=T,f=KJ.create($,S),{actions:M}=f;for(let F of M)sA($,F.key,WT.STORE);return lA($,-1,WT.STORE),f}var DD=bf({key:"usersInRoomIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),X0=bf({key:"roomIndex",default:()=>new lT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),gk={enteredAtEpoch:0},cM=XJ({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},gk),_D=sF({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let S=A2(cM);return[$(S,T)]}});import{spawn as tk}from"child_process";class mf{emit;listeners;globalListeners;handleEvent(T,...$){for(let f of this.globalListeners)f(T,...$);let S=this.listeners.get(T);if(S)for(let f of S)f(...$)}id="no_id_retrieved";constructor(T){this.emit=T;this.listeners=new Map,this.globalListeners=new Set}on(T,$){let S=this.listeners.get(T);if(S)S.add($);else this.listeners.set(T,new Set([$]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,$){let S=this.listeners.get(T);if(S)if($)S.delete($);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class Y0 extends mf{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[$,...S]=T;switch($){case"i":this.logger.info(...S);break;case"w":this.logger.warn(...S);break;case"e":this.logger.error(...S);break}}}constructor(T,$,S){super((f,...M)=>{let F=JSON.stringify([f,...M])+"\x03",J=(W)=>{if(W.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",J)};return this.process.stdin.once("error",J),this.process.stdin.write(F),this});if(this.process=T,this.key=$,this.logger=S??{info:(...f)=>{console.info(this.id,this.key,...f)},warn:(...f)=>{console.warn(this.id,this.key,...f)},error:(...f)=>{console.error(this.id,this.key,...f)}},this.process.stdout.on("data",(f)=>{let M=f.toString();if(M==="ALIVE")return;this.unprocessedEvents.push(...M.split("\x03"));let F=this.unprocessedEvents.shift();this.incompleteData+=F??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let J=dT(this.incompleteData);this.handleEvent(...J);while(this.unprocessedEvents.length>0){let W=this.unprocessedEvents.shift();if(W){if(this.unprocessedEvents.length===0)this.incompleteData=W;J=dT(W),this.handleEvent(...J)}}this.incompleteData=""}catch(J){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(J)}}),this.process.stderr.on("data",(f)=>{let M=f.toString();this.unprocessedLogs.push(...M.split("\x03"));let F=this.unprocessedLogs.shift();this.incompleteLog+=F??"";try{let J=dT(this.incompleteLog);this.handleLog(J);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)J=dT(this.incompleteLog),this.handleLog(J)}catch(J){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(J),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class X2 extends mf{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 k0 extends mf{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(s(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 S=JSON.stringify([T,...$]);return this.process.stdout.write(S+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let $=T.toString();this.unprocessedEvents.push(...$.split("\x03"));let S=this.unprocessedEvents.shift();this.incompleteData+=S??"";try{let f=dT(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",f),this.handleEvent(...f);while(this.unprocessedEvents.length>0){let M=this.unprocessedEvents.shift();if(M){if(this.unprocessedEvents.length===0)this.incompleteData=M;let F=dT(M);this.handleEvent(...F)}}this.incompleteData=""}catch(f){if(f instanceof Error)this.logger.error("\u2757",f.message,f.cause,f.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 X2(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let S of this.relayServices){let f=S($);if(f)$.disposalFunctions.push(f)}this.on(`user:${T}`,(...S)=>{$.in.next(S)}),$.out.subscribe("socket",(S)=>{this.emit(...S)})}),this.on("user-leaves",(T)=>{let $=this.relays.get(T);if(this.off(`relay:${T}`),$)$.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var K0=Tf({key:"roomArguments",default:["echo",["Hello World!"]]}),Y2=sF({key:"room",get:(T)=>async({get:$,find:S})=>{let f=S(K0,T),M=$(f),[F,J]=M,W=await new Promise((A)=>{let w=tk(F,J,{env:process.env}),X=(Y)=>{if(Y.toString()==="ALIVE")w.stdout.off("data",X),A(w)};w.stdout.on("data",X)});return new Y0(W,T)}});var lD=mM({key:"createRoom",do:({get:T,set:$,find:S},f,M,F)=>{let J=F?[M,F]:[M],W=S(K0,f);$(W,J),$(X0,(X)=>X.add(f));let A=S(Y2,f);return T(A)}}),rD=mM({key:"joinRoom",do:(T,$,S,f)=>{let M={enteredAtEpoch:f};return kJ(cM,(F)=>{F.set({room:$,user:S},M)},T.env().store),M}}),aD=mM({key:"leaveRoom",do:(T,$,S)=>{kJ(cM,(f)=>{f.delete({room:$,user:S})},T.env().store)}}),sD=mM({key:"destroyRoom",do:(T,$)=>{kJ(cM,(S)=>{S.delete({room:$})},T.env().store),T.set(X0,(S)=>(S.delete($),S))}});function O0(T,$){return $.map((S)=>{switch(S.type){case"transaction_update":{let f=O0(T,S.updates);return{...S,updates:f}}default:return S}}).filter((S)=>{switch(S.type){case"atom_update":case"selector_update":return T.includes(S.key);case"state_creation":return T.includes(S.token.key);case"molecule_creation":return!0;case"transaction_update":return!0}})}var $_=Tf({key:"redactor",default:{occlude:(T)=>T}}),hf=Tf({key:"unacknowledgedUpdates",default:()=>[]});var k2=Tf({key:"sockets",default:null}),J_=bf({key:"socketsIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),W_=bf({key:"usersIndex",mutable:!0,default:()=>new lT,toJson:(T)=>T.toJSON(),fromJson:(T)=>lT.fromJSON(T)}),y0=XJ({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function K2(T,$,S,f){let M=$.key;return function F(){let J=[];for(let A of $.globals){let w=A.type==="mutable_atom"?cT(T,A):A,X=wT(T,w);J.push(w,X)}for(let A of $.perspectives){let{viewAtoms:w,resourceAtoms:X}=A,Y=KT(T,w,S),k=wT(T,Y);T.logger.info("\uD83D\uDC41","atom",X.key,`${S} can see`,{viewAtoms:w,resourceAtoms:X,userView:k});for(let R of k){let z=R.type==="mutable_atom"?cT(T,R):R,Q=wT(T,z);J.push(z,Q)}}let W=oT(T)?T.transactionMeta.epoch.get(M)??null:null;f?.emit(`continuity-init:${M}`,W,J)}}function O2(T,$,S){let f=$.key;return function M(F){T.logger.info("\uD83D\uDECE\uFE0F","continuity",f,"received",F);let{key:J,id:W}=F,A=`tx-run:${J}:${W}`,w=`${A}:start`,X=`${A}:end`;performance.mark(w);try{vS({type:"transaction",key:J},W,T)(...F.params)}catch(k){if(k instanceof Error)T.logger.error("\u274C","continuity",f,`failed to run transaction ${J} from ${S} with update ${W}`,k.message)}performance.mark(X);let Y=performance.measure(A,w,X);T?.logger.info("\uD83D\uDE80","transaction",J,W,S,Y.duration)}}function y2(T,$,S,f){let M=$.key;return function F(J){if(T.logger.info("\uD83D\uDC4D","continuity",M,`${S} acknowledged epoch ${J}`),f[0]?.epoch===J)bT(T,hf,S,(A)=>{return A.shift(),T.logger.info("\uD83D\uDC4D","continuity",M,`${S} unacknowledged update queue now has`,A.length,"items"),A})}}function G2(T,$,S,f){let M=$.key,F=[];for(let J of $.actions){let W=M0(J,(A)=>{try{let w=$.globals.map((k)=>{if(k.type==="atom")return k.key;return DS(k).key}).concat($.perspectives.flatMap((k)=>{let{viewAtoms:R}=k,z=KT(T,R,S);return wT(T,z).map((D)=>{return D.type==="mutable_atom"?"*"+D.key:D.key})})),X=O0(w,A.updates),Y={...A,updates:X};bT(T,hf,S,(k)=>{if(Y)k.push(Y),k.sort((R,z)=>R.epoch-z.epoch),T.logger.info("\uD83D\uDC4D","continuity",M,`${S} unacknowledged update queue now has`,k.length,"items");return k}),f?.emit(`tx-new:${M}`,Y)}catch(w){if(w instanceof Error)T.logger.error("\u274C","continuity",M,`${S} failed to send update from transaction ${J.key} to ${S}`,w.message)}},`sync-continuity:${M}:${S}`,T);F.push(W)}return F}function R2(T,$,S,f){let M=$.key,F=[];for(let J of $.perspectives){let{viewAtoms:W}=J,A=KT(T,W,S),w=k$(A,({oldValue:X,newValue:Y})=>{let k=X.map((D)=>D.key),R=Y.map((D)=>D.key),z=X.filter((D)=>!R.includes(D.key)),Q=Y.filter((D)=>!k.includes(D.key)).flatMap((D)=>{let N=D.type==="mutable_atom"?cT(T,D):D,V=wT(T,N);return[N,V]});if(T.logger.info("\uD83D\uDC41","atom",J.resourceAtoms.key,`${S} has a new perspective`,{oldKeys:k,newKeys:R,revealed:Q,concealed:z}),Q.length>0)f?.emit(`reveal:${M}`,Q);if(z.length>0)f?.emit(`conceal:${M}`,z)},`sync-continuity:${M}:${S}:perspective:${J.resourceAtoms.key}`,T);F.push(w)}return F}function h_({socket:T,store:$=WT.STORE}){return function S(f){let M=T,F=f.key,J=YJ(y0,`socket::${M.id}`,$).userKeyOfSocket,W=wT($,J);if(!W)return $.logger.error("\u274C","continuity",F,`Tried to create a synchronizer for a socket (${M.id}) that is not connected to a user.`),()=>{};let A=YJ(y0,W,$).socketKeyOfUser,w=k$(A,({newValue:N})=>{if($.logger.info("\uD83D\uDC4B","continuity",F,`seeing ${W} on new socket ${N}`),N===null){$.logger.warn("\u274C","continuity",F,`User (${W}) is not connected to a socket, waiting for them to reappear.`);return}let V=KT($,k2,N);M=wT($,V);for(let Z of X)M?.emit(`tx-new:${F}`,Z)},`sync-continuity:${F}:${W}`,$),X=wT($,hf,W),Y=[],k=R2($,f,W,M),R=G2($,f,W,M);Y.push(...k,...R);let z=K2($,f,W,T);M.off(`get:${F}`,z),M.on(`get:${F}`,z);let Q=O2($,f,W);M.off(`tx-run:${F}`,Q),M.on(`tx-run:${F}`,Q);let D=y2($,f,W,X);return M?.on(`ack:${F}`,D),()=>{for(let N of Y)N();M?.off(`ack:${F}`,D),M?.off(`get:${F}`,z),M?.off(`tx-run:${F}`,Q)}}}var H2=Symbol("Let zodToJsonSchema decide on which parser to use"),z2={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"},D2=(T)=>typeof T==="string"?{...z2,name:T}:{...z2,...T};var _2=(T)=>{let $=D2(T),S=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:S,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([f,M])=>[M._def,{def:M._def,path:[...$.basePath,$.definitionPath,f],jsonSchema:void 0}]))}};function G0(T,$,S,f){if(!f?.errorMessages)return;if(S)T.errorMessage={...T.errorMessage,[$]:S}}function YT(T,$,S,f,M){T[$]=S,G0(T,$,f,M)}var OT;(function(T){T.assertEqual=(M)=>M;function $(M){}T.assertIs=$;function S(M){throw new Error}T.assertNever=S,T.arrayToEnum=(M)=>{let F={};for(let J of M)F[J]=J;return F},T.getValidEnumValues=(M)=>{let F=T.objectKeys(M).filter((W)=>typeof M[M[W]]!=="number"),J={};for(let W of F)J[W]=M[W];return T.objectValues(J)},T.objectValues=(M)=>{return T.objectKeys(M).map(function(F){return M[F]})},T.objectKeys=typeof Object.keys==="function"?(M)=>Object.keys(M):(M)=>{let F=[];for(let J in M)if(Object.prototype.hasOwnProperty.call(M,J))F.push(J);return F},T.find=(M,F)=>{for(let J of M)if(F(J))return J;return},T.isInteger=typeof Number.isInteger==="function"?(M)=>Number.isInteger(M):(M)=>typeof M==="number"&&isFinite(M)&&Math.floor(M)===M;function f(M,F=" | "){return M.map((J)=>typeof J==="string"?`'${J}'`:J).join(F)}T.joinValues=f,T.jsonStringifyReplacer=(M,F)=>{if(typeof F==="bigint")return F.toString();return F}})(OT||(OT={}));var z0;(function(T){T.mergeShapes=($,S)=>{return{...$,...S}}})(z0||(z0={}));var g=OT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ES=(T)=>{switch(typeof T){case"undefined":return g.undefined;case"string":return g.string;case"number":return isNaN(T)?g.nan:g.number;case"boolean":return g.boolean;case"function":return g.function;case"bigint":return g.bigint;case"symbol":return g.symbol;case"object":if(Array.isArray(T))return g.array;if(T===null)return g.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return g.promise;if(typeof Map!=="undefined"&&T instanceof Map)return g.map;if(typeof Set!=="undefined"&&T instanceof Set)return g.set;if(typeof Date!=="undefined"&&T instanceof Date)return g.date;return g.object;default:return g.unknown}},I=OT.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"]),pk=(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=(S)=>{this.issues=[...this.issues,S]},this.addIssues=(S=[])=>{this.issues=[...this.issues,...S]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=T}format(T){let $=T||function(M){return M.message},S={_errors:[]},f=(M)=>{for(let F of M.issues)if(F.code==="invalid_union")F.unionErrors.map(f);else if(F.code==="invalid_return_type")f(F.returnTypeError);else if(F.code==="invalid_arguments")f(F.argumentsError);else if(F.path.length===0)S._errors.push($(F));else{let J=S,W=0;while(W<F.path.length){let A=F.path[W];if(W!==F.path.length-1)J[A]=J[A]||{_errors:[]};else J[A]=J[A]||{_errors:[]},J[A]._errors.push($(F));J=J[A],W++}}};return f(this),S}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,OT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=($)=>$.message){let $={},S=[];for(let f of this.issues)if(f.path.length>0)$[f.path[0]]=$[f.path[0]]||[],$[f.path[0]].push(T(f));else S.push(T(f));return{formErrors:S,fieldErrors:$}}get formErrors(){return this.flatten()}}C$.create=(T)=>{return new C$(T)};var cf=(T,$)=>{let S;switch(T.code){case I.invalid_type:if(T.received===g.undefined)S="Required";else S=`Expected ${T.expected}, received ${T.received}`;break;case I.invalid_literal:S=`Invalid literal value, expected ${JSON.stringify(T.expected,OT.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:S=`Unrecognized key(s) in object: ${OT.joinValues(T.keys,", ")}`;break;case I.invalid_union:S="Invalid input";break;case I.invalid_union_discriminator:S=`Invalid discriminator value. Expected ${OT.joinValues(T.options)}`;break;case I.invalid_enum_value:S=`Invalid enum value. Expected ${OT.joinValues(T.options)}, received '${T.received}'`;break;case I.invalid_arguments:S="Invalid function arguments";break;case I.invalid_return_type:S="Invalid function return type";break;case I.invalid_date:S="Invalid date";break;case I.invalid_string:if(typeof T.validation==="object")if("includes"in T.validation){if(S=`Invalid input: must include "${T.validation.includes}"`,typeof T.validation.position==="number")S=`${S} at one or more positions greater than or equal to ${T.validation.position}`}else if("startsWith"in T.validation)S=`Invalid input: must start with "${T.validation.startsWith}"`;else if("endsWith"in T.validation)S=`Invalid input: must end with "${T.validation.endsWith}"`;else OT.assertNever(T.validation);else if(T.validation!=="regex")S=`Invalid ${T.validation}`;else S="Invalid";break;case I.too_small:if(T.type==="array")S=`Array must contain ${T.exact?"exactly":T.inclusive?"at least":"more than"} ${T.minimum} element(s)`;else if(T.type==="string")S=`String must contain ${T.exact?"exactly":T.inclusive?"at least":"over"} ${T.minimum} character(s)`;else if(T.type==="number")S=`Number must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${T.minimum}`;else if(T.type==="date")S=`Date must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(T.minimum))}`;else S="Invalid input";break;case I.too_big:if(T.type==="array")S=`Array must contain ${T.exact?"exactly":T.inclusive?"at most":"less than"} ${T.maximum} element(s)`;else if(T.type==="string")S=`String must contain ${T.exact?"exactly":T.inclusive?"at most":"under"} ${T.maximum} character(s)`;else if(T.type==="number")S=`Number must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="bigint")S=`BigInt must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="date")S=`Date must be ${T.exact?"exactly":T.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(T.maximum))}`;else S="Invalid input";break;case I.custom:S="Invalid input";break;case I.invalid_intersection_types:S="Intersection results could not be merged";break;case I.not_multiple_of:S=`Number must be a multiple of ${T.multipleOf}`;break;case I.not_finite:S="Number must be finite";break;default:S=$.defaultError,OT.assertNever(T)}return{message:S}},U2=cf;function ik(T){U2=T}function OJ(){return U2}var yJ=(T)=>{let{data:$,path:S,errorMaps:f,issueData:M}=T,F=[...S,...M.path||[]],J={...M,path:F};if(M.message!==void 0)return{...M,path:F,message:M.message};let W="",A=f.filter((w)=>!!w).slice().reverse();for(let w of A)W=w(J,{data:$,defaultError:W}).message;return{...M,path:F,message:W}},uk=[];function h(T,$){let S=OJ(),f=yJ({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,S,S===cf?void 0:cf].filter((M)=>!!M)});T.common.issues.push(f)}class K${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,$){let S=[];for(let f of $){if(f.status==="aborted")return $T;if(f.status==="dirty")T.dirty();S.push(f.value)}return{status:T.value,value:S}}static async mergeObjectAsync(T,$){let S=[];for(let f of $){let M=await f.key,F=await f.value;S.push({key:M,value:F})}return K$.mergeObjectSync(T,S)}static mergeObjectSync(T,$){let S={};for(let f of $){let{key:M,value:F}=f;if(M.status==="aborted")return $T;if(F.status==="aborted")return $T;if(M.status==="dirty")T.dirty();if(F.status==="dirty")T.dirty();if(M.value!=="__proto__"&&(typeof F.value!=="undefined"||f.alwaysSet))S[M.value]=F.value}return{status:T.value,value:S}}}var $T=Object.freeze({status:"aborted"}),Pf=(T)=>({status:"dirty",value:T}),z$=(T)=>({status:"valid",value:T}),H0=(T)=>T.status==="aborted",D0=(T)=>T.status==="dirty",$f=(T)=>T.status==="valid",tM=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function GJ(T,$,S,f){if(S==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!f:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?f:S==="a"?f.call(T):f?f.value:$.get(T)}function V2(T,$,S,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!M:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,S):M?M.value=S:$.set(T,S),S}var i;(function(T){T.errToObj=($)=>typeof $==="string"?{message:$}:$||{},T.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(i||(i={}));var oM,gM;class s${constructor(T,$,S,f){this._cachedPath=[],this.parent=T,this.data=$,this._path=S,this._key=f}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 E2=(T,$)=>{if($f($))return{success:!0,data:$.value};else{if(!T.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let S=new C$(T.common.issues);return this._error=S,this._error}}}};function MT(T){if(!T)return{};let{errorMap:$,invalid_type_error:S,required_error:f,description:M}=T;if($&&(S||f))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:M};return{errorMap:(J,W)=>{var A,w;let{message:X}=T;if(J.code==="invalid_enum_value")return{message:X!==null&&X!==void 0?X:W.defaultError};if(typeof W.data==="undefined")return{message:(A=X!==null&&X!==void 0?X:f)!==null&&A!==void 0?A:W.defaultError};if(J.code!=="invalid_type")return{message:W.defaultError};return{message:(w=X!==null&&X!==void 0?X:S)!==null&&w!==void 0?w:W.defaultError}},description:M}}class FT{get description(){return this._def.description}_getType(T){return ES(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:ES(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new K$,ctx:{common:T.parent.common,data:T.data,parsedType:ES(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(tM($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(T){let $=this._parse(T);return Promise.resolve($)}parse(T,$){let S=this.safeParse(T,$);if(S.success)return S.data;throw S.error}safeParse(T,$){var S;let f={common:{issues:[],async:(S=$===null||$===void 0?void 0:$.async)!==null&&S!==void 0?S:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:ES(T)},M=this._parseSync({data:T,path:f.path,parent:f});return E2(f,M)}"~validate"(T){var $,S;let f={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:ES(T)};if(!this["~standard"].async)try{let M=this._parseSync({data:T,path:[],parent:f});return $f(M)?{value:M.value}:{issues:f.common.issues}}catch(M){if((S=($=M===null||M===void 0?void 0:M.message)===null||$===void 0?void 0:$.toLowerCase())===null||S===void 0?void 0:S.includes("encountered"))this["~standard"].async=!0;f.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:f}).then((M)=>$f(M)?{value:M.value}:{issues:f.common.issues})}async parseAsync(T,$){let S=await this.safeParseAsync(T,$);if(S.success)return S.data;throw S.error}async safeParseAsync(T,$){let S={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:ES(T)},f=this._parse({data:T,path:S.path,parent:S}),M=await(tM(f)?f:Promise.resolve(f));return E2(S,M)}refine(T,$){let S=(f)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(f);else return $};return this._refinement((f,M)=>{let F=T(f),J=()=>M.addIssue({code:I.custom,...S(f)});if(typeof Promise!=="undefined"&&F instanceof Promise)return F.then((W)=>{if(!W)return J(),!1;else return!0});if(!F)return J(),!1;else return!0})}refinement(T,$){return this._refinement((S,f)=>{if(!T(S))return f.addIssue(typeof $==="function"?$(S,f):$),!1;else return!0})}_refinement(T){return new n$({schema:this,typeName:j.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return I$.create(this,this._def)}nullable(){return QS.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return a$.create(this)}promise(){return Ff.create(this,this._def)}or(T){return pf.create([this,T],this._def)}and(T){return uf.create(this,T,this._def)}transform(T){return new n$({...MT(this._def),schema:this,typeName:j.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new af({...MT(this._def),innerType:this,defaultValue:$,typeName:j.ZodDefault})}brand(){return new zJ({typeName:j.ZodBranded,type:this,...MT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new sf({...MT(this._def),innerType:this,catchValue:$,typeName:j.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return rM.create(this,T)}readonly(){return ef.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var dk=/^c[^\s-]{8,}$/i,lk=/^[0-9a-z]+$/,rk=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ak=/^[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,sk=/^[a-z0-9_-]{21}$/i,ek=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,T6=/^[-+]?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)?)??$/,$6=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,S6="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",R0,f6=/^(?:(?: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])$/,M6=/^(?:(?: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])$/,F6=/^(([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]))$/,J6=/^(([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])$/,W6=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,A6=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,B2="((\\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])))",w6=new RegExp(`^${B2}$`);function L2(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 X6(T){return new RegExp(`^${L2(T)}$`)}function N2(T){let $=`${B2}T${L2(T)}`,S=[];if(S.push(T.local?"Z?":"Z"),T.offset)S.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${S.join("|")})`,new RegExp(`^${$}$`)}function Y6(T,$){if(($==="v4"||!$)&&f6.test(T))return!0;if(($==="v6"||!$)&&F6.test(T))return!0;return!1}function k6(T,$){if(!ek.test(T))return!1;try{let[S]=T.split("."),f=S.replace(/-/g,"+").replace(/_/g,"/").padEnd(S.length+(4-S.length%4)%4,"="),M=JSON.parse(atob(f));if(typeof M!=="object"||M===null)return!1;if(!M.typ||!M.alg)return!1;if($&&M.alg!==$)return!1;return!0}catch(S){return!1}}function K6(T,$){if(($==="v4"||!$)&&M6.test(T))return!0;if(($==="v6"||!$)&&J6.test(T))return!0;return!1}class r$ extends FT{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==g.string){let M=this._getOrReturnCtx(T);return h(M,{code:I.invalid_type,expected:g.string,received:M.parsedType}),$T}let S=new K$,f=void 0;for(let M of this._def.checks)if(M.kind==="min"){if(T.data.length<M.value)f=this._getOrReturnCtx(T,f),h(f,{code:I.too_small,minimum:M.value,type:"string",inclusive:!0,exact:!1,message:M.message}),S.dirty()}else if(M.kind==="max"){if(T.data.length>M.value)f=this._getOrReturnCtx(T,f),h(f,{code:I.too_big,maximum:M.value,type:"string",inclusive:!0,exact:!1,message:M.message}),S.dirty()}else if(M.kind==="length"){let F=T.data.length>M.value,J=T.data.length<M.value;if(F||J){if(f=this._getOrReturnCtx(T,f),F)h(f,{code:I.too_big,maximum:M.value,type:"string",inclusive:!0,exact:!0,message:M.message});else if(J)h(f,{code:I.too_small,minimum:M.value,type:"string",inclusive:!0,exact:!0,message:M.message});S.dirty()}}else if(M.kind==="email"){if(!$6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"email",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="emoji"){if(!R0)R0=new RegExp(S6,"u");if(!R0.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"emoji",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="uuid"){if(!ak.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"uuid",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="nanoid"){if(!sk.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"nanoid",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="cuid"){if(!dk.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"cuid",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="cuid2"){if(!lk.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"cuid2",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="ulid"){if(!rk.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"ulid",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="url")try{new URL(T.data)}catch(F){f=this._getOrReturnCtx(T,f),h(f,{validation:"url",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="regex"){if(M.regex.lastIndex=0,!M.regex.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"regex",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="trim")T.data=T.data.trim();else if(M.kind==="includes"){if(!T.data.includes(M.value,M.position))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:{includes:M.value,position:M.position},message:M.message}),S.dirty()}else if(M.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(M.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(M.kind==="startsWith"){if(!T.data.startsWith(M.value))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:{startsWith:M.value},message:M.message}),S.dirty()}else if(M.kind==="endsWith"){if(!T.data.endsWith(M.value))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:{endsWith:M.value},message:M.message}),S.dirty()}else if(M.kind==="datetime"){if(!N2(M).test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:"datetime",message:M.message}),S.dirty()}else if(M.kind==="date"){if(!w6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:"date",message:M.message}),S.dirty()}else if(M.kind==="time"){if(!X6(M).test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:I.invalid_string,validation:"time",message:M.message}),S.dirty()}else if(M.kind==="duration"){if(!T6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"duration",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="ip"){if(!Y6(T.data,M.version))f=this._getOrReturnCtx(T,f),h(f,{validation:"ip",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="jwt"){if(!k6(T.data,M.alg))f=this._getOrReturnCtx(T,f),h(f,{validation:"jwt",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="cidr"){if(!K6(T.data,M.version))f=this._getOrReturnCtx(T,f),h(f,{validation:"cidr",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="base64"){if(!W6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"base64",code:I.invalid_string,message:M.message}),S.dirty()}else if(M.kind==="base64url"){if(!A6.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"base64url",code:I.invalid_string,message:M.message}),S.dirty()}else OT.assertNever(M);return{status:S.value,value:T.data}}_regex(T,$,S){return this.refinement((f)=>T.test(f),{validation:$,code:I.invalid_string,...i.errToObj(S)})}_addCheck(T){return new r$({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...i.errToObj(T)})}url(T){return this._addCheck({kind:"url",...i.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...i.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...i.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...i.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...i.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...i.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...i.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...i.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...i.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...i.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...i.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...i.errToObj(T)})}datetime(T){var $,S;if(typeof T==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T});return this._addCheck({kind:"datetime",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,offset:($=T===null||T===void 0?void 0:T.offset)!==null&&$!==void 0?$:!1,local:(S=T===null||T===void 0?void 0:T.local)!==null&&S!==void 0?S:!1,...i.errToObj(T===null||T===void 0?void 0:T.message)})}date(T){return this._addCheck({kind:"date",message:T})}time(T){if(typeof T==="string")return this._addCheck({kind:"time",precision:null,message:T});return this._addCheck({kind:"time",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,...i.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...i.errToObj(T)})}regex(T,$){return this._addCheck({kind:"regex",regex:T,...i.errToObj($)})}includes(T,$){return this._addCheck({kind:"includes",value:T,position:$===null||$===void 0?void 0:$.position,...i.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(T,$){return this._addCheck({kind:"startsWith",value:T,...i.errToObj($)})}endsWith(T,$){return this._addCheck({kind:"endsWith",value:T,...i.errToObj($)})}min(T,$){return this._addCheck({kind:"min",value:T,...i.errToObj($)})}max(T,$){return this._addCheck({kind:"max",value:T,...i.errToObj($)})}length(T,$){return this._addCheck({kind:"length",value:T,...i.errToObj($)})}nonempty(T){return this.min(1,i.errToObj(T))}trim(){return new r$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new r$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new r$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((T)=>T.kind==="datetime")}get isDate(){return!!this._def.checks.find((T)=>T.kind==="date")}get isTime(){return!!this._def.checks.find((T)=>T.kind==="time")}get isDuration(){return!!this._def.checks.find((T)=>T.kind==="duration")}get isEmail(){return!!this._def.checks.find((T)=>T.kind==="email")}get isURL(){return!!this._def.checks.find((T)=>T.kind==="url")}get isEmoji(){return!!this._def.checks.find((T)=>T.kind==="emoji")}get isUUID(){return!!this._def.checks.find((T)=>T.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((T)=>T.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((T)=>T.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((T)=>T.kind==="cuid2")}get isULID(){return!!this._def.checks.find((T)=>T.kind==="ulid")}get isIP(){return!!this._def.checks.find((T)=>T.kind==="ip")}get isCIDR(){return!!this._def.checks.find((T)=>T.kind==="cidr")}get isBase64(){return!!this._def.checks.find((T)=>T.kind==="base64")}get isBase64url(){return!!this._def.checks.find((T)=>T.kind==="base64url")}get minLength(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxLength(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}r$.create=(T)=>{var $;return new r$({checks:[],typeName:j.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...MT(T)})};function O6(T,$){let S=(T.toString().split(".")[1]||"").length,f=($.toString().split(".")[1]||"").length,M=S>f?S:f,F=parseInt(T.toFixed(M).replace(".","")),J=parseInt($.toFixed(M).replace(".",""));return F%J/Math.pow(10,M)}class oS extends FT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==g.number){let M=this._getOrReturnCtx(T);return h(M,{code:I.invalid_type,expected:g.number,received:M.parsedType}),$T}let S=void 0,f=new K$;for(let M of this._def.checks)if(M.kind==="int"){if(!OT.isInteger(T.data))S=this._getOrReturnCtx(T,S),h(S,{code:I.invalid_type,expected:"integer",received:"float",message:M.message}),f.dirty()}else if(M.kind==="min"){if(M.inclusive?T.data<M.value:T.data<=M.value)S=this._getOrReturnCtx(T,S),h(S,{code:I.too_small,minimum:M.value,type:"number",inclusive:M.inclusive,exact:!1,message:M.message}),f.dirty()}else if(M.kind==="max"){if(M.inclusive?T.data>M.value:T.data>=M.value)S=this._getOrReturnCtx(T,S),h(S,{code:I.too_big,maximum:M.value,type:"number",inclusive:M.inclusive,exact:!1,message:M.message}),f.dirty()}else if(M.kind==="multipleOf"){if(O6(T.data,M.value)!==0)S=this._getOrReturnCtx(T,S),h(S,{code:I.not_multiple_of,multipleOf:M.value,message:M.message}),f.dirty()}else if(M.kind==="finite"){if(!Number.isFinite(T.data))S=this._getOrReturnCtx(T,S),h(S,{code:I.not_finite,message:M.message}),f.dirty()}else OT.assertNever(M);return{status:f.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,i.toString($))}gt(T,$){return this.setLimit("min",T,!1,i.toString($))}lte(T,$){return this.setLimit("max",T,!0,i.toString($))}lt(T,$){return this.setLimit("max",T,!1,i.toString($))}setLimit(T,$,S,f){return new oS({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:S,message:i.toString(f)}]})}_addCheck(T){return new oS({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:i.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:i.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:i.toString($)})}finite(T){return this._addCheck({kind:"finite",message:i.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:i.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:i.toString(T)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}get isInt(){return!!this._def.checks.find((T)=>T.kind==="int"||T.kind==="multipleOf"&&OT.isInteger(T.value))}get isFinite(){let T=null,$=null;for(let S of this._def.checks)if(S.kind==="finite"||S.kind==="int"||S.kind==="multipleOf")return!0;else if(S.kind==="min"){if($===null||S.value>$)$=S.value}else if(S.kind==="max"){if(T===null||S.value<T)T=S.value}return Number.isFinite($)&&Number.isFinite(T)}}oS.create=(T)=>{return new oS({checks:[],typeName:j.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...MT(T)})};class gS extends FT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(M){return this._getInvalidInput(T)}if(this._getType(T)!==g.bigint)return this._getInvalidInput(T);let S=void 0,f=new K$;for(let M of this._def.checks)if(M.kind==="min"){if(M.inclusive?T.data<M.value:T.data<=M.value)S=this._getOrReturnCtx(T,S),h(S,{code:I.too_small,type:"bigint",minimum:M.value,inclusive:M.inclusive,message:M.message}),f.dirty()}else if(M.kind==="max"){if(M.inclusive?T.data>M.value:T.data>=M.value)S=this._getOrReturnCtx(T,S),h(S,{code:I.too_big,type:"bigint",maximum:M.value,inclusive:M.inclusive,message:M.message}),f.dirty()}else if(M.kind==="multipleOf"){if(T.data%M.value!==BigInt(0))S=this._getOrReturnCtx(T,S),h(S,{code:I.not_multiple_of,multipleOf:M.value,message:M.message}),f.dirty()}else OT.assertNever(M);return{status:f.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return h($,{code:I.invalid_type,expected:g.bigint,received:$.parsedType}),$T}gte(T,$){return this.setLimit("min",T,!0,i.toString($))}gt(T,$){return this.setLimit("min",T,!1,i.toString($))}lte(T,$){return this.setLimit("max",T,!0,i.toString($))}lt(T,$){return this.setLimit("max",T,!1,i.toString($))}setLimit(T,$,S,f){return new gS({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:S,message:i.toString(f)}]})}_addCheck(T){return new gS({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:i.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:i.toString($)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}gS.create=(T)=>{var $;return new gS({checks:[],typeName:j.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...MT(T)})};class of extends FT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==g.boolean){let S=this._getOrReturnCtx(T);return h(S,{code:I.invalid_type,expected:g.boolean,received:S.parsedType}),$T}return z$(T.data)}}of.create=(T)=>{return new of({typeName:j.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...MT(T)})};class Sf extends FT{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==g.date){let M=this._getOrReturnCtx(T);return h(M,{code:I.invalid_type,expected:g.date,received:M.parsedType}),$T}if(isNaN(T.data.getTime())){let M=this._getOrReturnCtx(T);return h(M,{code:I.invalid_date}),$T}let S=new K$,f=void 0;for(let M of this._def.checks)if(M.kind==="min"){if(T.data.getTime()<M.value)f=this._getOrReturnCtx(T,f),h(f,{code:I.too_small,message:M.message,inclusive:!0,exact:!1,minimum:M.value,type:"date"}),S.dirty()}else if(M.kind==="max"){if(T.data.getTime()>M.value)f=this._getOrReturnCtx(T,f),h(f,{code:I.too_big,message:M.message,inclusive:!0,exact:!1,maximum:M.value,type:"date"}),S.dirty()}else OT.assertNever(M);return{status:S.value,value:new Date(T.data.getTime())}}_addCheck(T){return new Sf({...this._def,checks:[...this._def.checks,T]})}min(T,$){return this._addCheck({kind:"min",value:T.getTime(),message:i.toString($)})}max(T,$){return this._addCheck({kind:"max",value:T.getTime(),message:i.toString($)})}get minDate(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T!=null?new Date(T):null}get maxDate(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T!=null?new Date(T):null}}Sf.create=(T)=>{return new Sf({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:j.ZodDate,...MT(T)})};class pM extends FT{_parse(T){if(this._getType(T)!==g.symbol){let S=this._getOrReturnCtx(T);return h(S,{code:I.invalid_type,expected:g.symbol,received:S.parsedType}),$T}return z$(T.data)}}pM.create=(T)=>{return new pM({typeName:j.ZodSymbol,...MT(T)})};class gf extends FT{_parse(T){if(this._getType(T)!==g.undefined){let S=this._getOrReturnCtx(T);return h(S,{code:I.invalid_type,expected:g.undefined,received:S.parsedType}),$T}return z$(T.data)}}gf.create=(T)=>{return new gf({typeName:j.ZodUndefined,...MT(T)})};class tf extends FT{_parse(T){if(this._getType(T)!==g.null){let S=this._getOrReturnCtx(T);return h(S,{code:I.invalid_type,expected:g.null,received:S.parsedType}),$T}return z$(T.data)}}tf.create=(T)=>{return new tf({typeName:j.ZodNull,...MT(T)})};class ff extends FT{constructor(){super(...arguments);this._any=!0}_parse(T){return z$(T.data)}}ff.create=(T)=>{return new ff({typeName:j.ZodAny,...MT(T)})};class cS extends FT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return z$(T.data)}}cS.create=(T)=>{return new cS({typeName:j.ZodUnknown,...MT(T)})};class wS extends FT{_parse(T){let $=this._getOrReturnCtx(T);return h($,{code:I.invalid_type,expected:g.never,received:$.parsedType}),$T}}wS.create=(T)=>{return new wS({typeName:j.ZodNever,...MT(T)})};class iM extends FT{_parse(T){if(this._getType(T)!==g.undefined){let S=this._getOrReturnCtx(T);return h(S,{code:I.invalid_type,expected:g.void,received:S.parsedType}),$T}return z$(T.data)}}iM.create=(T)=>{return new iM({typeName:j.ZodVoid,...MT(T)})};class a$ extends FT{_parse(T){let{ctx:$,status:S}=this._processInputParams(T),f=this._def;if($.parsedType!==g.array)return h($,{code:I.invalid_type,expected:g.array,received:$.parsedType}),$T;if(f.exactLength!==null){let F=$.data.length>f.exactLength.value,J=$.data.length<f.exactLength.value;if(F||J)h($,{code:F?I.too_big:I.too_small,minimum:J?f.exactLength.value:void 0,maximum:F?f.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:f.exactLength.message}),S.dirty()}if(f.minLength!==null){if($.data.length<f.minLength.value)h($,{code:I.too_small,minimum:f.minLength.value,type:"array",inclusive:!0,exact:!1,message:f.minLength.message}),S.dirty()}if(f.maxLength!==null){if($.data.length>f.maxLength.value)h($,{code:I.too_big,maximum:f.maxLength.value,type:"array",inclusive:!0,exact:!1,message:f.maxLength.message}),S.dirty()}if($.common.async)return Promise.all([...$.data].map((F,J)=>{return f.type._parseAsync(new s$($,F,$.path,J))})).then((F)=>{return K$.mergeArray(S,F)});let M=[...$.data].map((F,J)=>{return f.type._parseSync(new s$($,F,$.path,J))});return K$.mergeArray(S,M)}get element(){return this._def.type}min(T,$){return new a$({...this._def,minLength:{value:T,message:i.toString($)}})}max(T,$){return new a$({...this._def,maxLength:{value:T,message:i.toString($)}})}length(T,$){return new a$({...this._def,exactLength:{value:T,message:i.toString($)}})}nonempty(T){return this.min(1,T)}}a$.create=(T,$)=>{return new a$({type:T,minLength:null,maxLength:null,exactLength:null,typeName:j.ZodArray,...MT($)})};function vf(T){if(T instanceof qT){let $={};for(let S in T.shape){let f=T.shape[S];$[S]=I$.create(vf(f))}return new qT({...T._def,shape:()=>$})}else if(T instanceof a$)return new a$({...T._def,type:vf(T.element)});else if(T instanceof I$)return I$.create(vf(T.unwrap()));else if(T instanceof QS)return QS.create(vf(T.unwrap()));else if(T instanceof XS)return XS.create(T.items.map(($)=>vf($)));else return T}class qT extends FT{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(),$=OT.objectKeys(T);return this._cached={shape:T,keys:$}}_parse(T){if(this._getType(T)!==g.object){let A=this._getOrReturnCtx(T);return h(A,{code:I.invalid_type,expected:g.object,received:A.parsedType}),$T}let{status:S,ctx:f}=this._processInputParams(T),{shape:M,keys:F}=this._getCached(),J=[];if(!(this._def.catchall instanceof wS&&this._def.unknownKeys==="strip")){for(let A in f.data)if(!F.includes(A))J.push(A)}let W=[];for(let A of F){let w=M[A],X=f.data[A];W.push({key:{status:"valid",value:A},value:w._parse(new s$(f,X,f.path,A)),alwaysSet:A in f.data})}if(this._def.catchall instanceof wS){let A=this._def.unknownKeys;if(A==="passthrough")for(let w of J)W.push({key:{status:"valid",value:w},value:{status:"valid",value:f.data[w]}});else if(A==="strict"){if(J.length>0)h(f,{code:I.unrecognized_keys,keys:J}),S.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 J){let X=f.data[w];W.push({key:{status:"valid",value:w},value:A._parse(new s$(f,X,f.path,w)),alwaysSet:w in f.data})}}if(f.common.async)return Promise.resolve().then(async()=>{let A=[];for(let w of W){let X=await w.key,Y=await w.value;A.push({key:X,value:Y,alwaysSet:w.alwaysSet})}return A}).then((A)=>{return K$.mergeObjectSync(S,A)});else return K$.mergeObjectSync(S,W)}get shape(){return this._def.shape()}strict(T){return i.errToObj,new qT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,S)=>{var f,M,F,J;let W=(F=(M=(f=this._def).errorMap)===null||M===void 0?void 0:M.call(f,$,S).message)!==null&&F!==void 0?F:S.defaultError;if($.code==="unrecognized_keys")return{message:(J=i.errToObj(T).message)!==null&&J!==void 0?J:W};return{message:W}}}:{}})}strip(){return new qT({...this._def,unknownKeys:"strip"})}passthrough(){return new qT({...this._def,unknownKeys:"passthrough"})}extend(T){return new qT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new qT({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:j.ZodObject})}setKey(T,$){return this.augment({[T]:$})}catchall(T){return new qT({...this._def,catchall:T})}pick(T){let $={};return OT.objectKeys(T).forEach((S)=>{if(T[S]&&this.shape[S])$[S]=this.shape[S]}),new qT({...this._def,shape:()=>$})}omit(T){let $={};return OT.objectKeys(this.shape).forEach((S)=>{if(!T[S])$[S]=this.shape[S]}),new qT({...this._def,shape:()=>$})}deepPartial(){return vf(this)}partial(T){let $={};return OT.objectKeys(this.shape).forEach((S)=>{let f=this.shape[S];if(T&&!T[S])$[S]=f;else $[S]=f.optional()}),new qT({...this._def,shape:()=>$})}required(T){let $={};return OT.objectKeys(this.shape).forEach((S)=>{if(T&&!T[S])$[S]=this.shape[S];else{let M=this.shape[S];while(M instanceof I$)M=M._def.innerType;$[S]=M}}),new qT({...this._def,shape:()=>$})}keyof(){return C2(OT.objectKeys(this.shape))}}qT.create=(T,$)=>{return new qT({shape:()=>T,unknownKeys:"strip",catchall:wS.create(),typeName:j.ZodObject,...MT($)})};qT.strictCreate=(T,$)=>{return new qT({shape:()=>T,unknownKeys:"strict",catchall:wS.create(),typeName:j.ZodObject,...MT($)})};qT.lazycreate=(T,$)=>{return new qT({shape:T,unknownKeys:"strip",catchall:wS.create(),typeName:j.ZodObject,...MT($)})};class pf extends FT{_parse(T){let{ctx:$}=this._processInputParams(T),S=this._def.options;function f(M){for(let J of M)if(J.result.status==="valid")return J.result;for(let J of M)if(J.result.status==="dirty")return $.common.issues.push(...J.ctx.common.issues),J.result;let F=M.map((J)=>new C$(J.ctx.common.issues));return h($,{code:I.invalid_union,unionErrors:F}),$T}if($.common.async)return Promise.all(S.map(async(M)=>{let F={...$,common:{...$.common,issues:[]},parent:null};return{result:await M._parseAsync({data:$.data,path:$.path,parent:F}),ctx:F}})).then(f);else{let M=void 0,F=[];for(let W of S){let A={...$,common:{...$.common,issues:[]},parent:null},w=W._parseSync({data:$.data,path:$.path,parent:A});if(w.status==="valid")return w;else if(w.status==="dirty"&&!M)M={result:w,ctx:A};if(A.common.issues.length)F.push(A.common.issues)}if(M)return $.common.issues.push(...M.ctx.common.issues),M.result;let J=F.map((W)=>new C$(W));return h($,{code:I.invalid_union,unionErrors:J}),$T}}get options(){return this._def.options}}pf.create=(T,$)=>{return new pf({options:T,typeName:j.ZodUnion,...MT($)})};var _S=(T)=>{if(T instanceof df)return _S(T.schema);else if(T instanceof n$)return _S(T.innerType());else if(T instanceof lf)return[T.value];else if(T instanceof tS)return T.options;else if(T instanceof rf)return OT.objectValues(T.enum);else if(T instanceof af)return _S(T._def.innerType);else if(T instanceof gf)return[void 0];else if(T instanceof tf)return[null];else if(T instanceof I$)return[void 0,..._S(T.unwrap())];else if(T instanceof QS)return[null,..._S(T.unwrap())];else if(T instanceof zJ)return _S(T.unwrap());else if(T instanceof ef)return _S(T.unwrap());else if(T instanceof sf)return _S(T._def.innerType);else return[]};class RJ extends FT{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==g.object)return h($,{code:I.invalid_type,expected:g.object,received:$.parsedType}),$T;let S=this.discriminator,f=$.data[S],M=this.optionsMap.get(f);if(!M)return h($,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[S]}),$T;if($.common.async)return M._parseAsync({data:$.data,path:$.path,parent:$});else return M._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(T,$,S){let f=new Map;for(let M of $){let F=_S(M.shape[T]);if(!F.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let J of F){if(f.has(J))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(J)}`);f.set(J,M)}}return new RJ({typeName:j.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:f,...MT(S)})}}function _0(T,$){let S=ES(T),f=ES($);if(T===$)return{valid:!0,data:T};else if(S===g.object&&f===g.object){let M=OT.objectKeys($),F=OT.objectKeys(T).filter((W)=>M.indexOf(W)!==-1),J={...T,...$};for(let W of F){let A=_0(T[W],$[W]);if(!A.valid)return{valid:!1};J[W]=A.data}return{valid:!0,data:J}}else if(S===g.array&&f===g.array){if(T.length!==$.length)return{valid:!1};let M=[];for(let F=0;F<T.length;F++){let J=T[F],W=$[F],A=_0(J,W);if(!A.valid)return{valid:!1};M.push(A.data)}return{valid:!0,data:M}}else if(S===g.date&&f===g.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class uf extends FT{_parse(T){let{status:$,ctx:S}=this._processInputParams(T),f=(M,F)=>{if(H0(M)||H0(F))return $T;let J=_0(M.value,F.value);if(!J.valid)return h(S,{code:I.invalid_intersection_types}),$T;if(D0(M)||D0(F))$.dirty();return{status:$.value,value:J.data}};if(S.common.async)return Promise.all([this._def.left._parseAsync({data:S.data,path:S.path,parent:S}),this._def.right._parseAsync({data:S.data,path:S.path,parent:S})]).then(([M,F])=>f(M,F));else return f(this._def.left._parseSync({data:S.data,path:S.path,parent:S}),this._def.right._parseSync({data:S.data,path:S.path,parent:S}))}}uf.create=(T,$,S)=>{return new uf({left:T,right:$,typeName:j.ZodIntersection,...MT(S)})};class XS extends FT{_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.parsedType!==g.array)return h(S,{code:I.invalid_type,expected:g.array,received:S.parsedType}),$T;if(S.data.length<this._def.items.length)return h(S,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$T;if(!this._def.rest&&S.data.length>this._def.items.length)h(S,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let M=[...S.data].map((F,J)=>{let W=this._def.items[J]||this._def.rest;if(!W)return null;return W._parse(new s$(S,F,S.path,J))}).filter((F)=>!!F);if(S.common.async)return Promise.all(M).then((F)=>{return K$.mergeArray($,F)});else return K$.mergeArray($,M)}get items(){return this._def.items}rest(T){return new XS({...this._def,rest:T})}}XS.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new XS({items:T,typeName:j.ZodTuple,rest:null,...MT($)})};class uM extends FT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.parsedType!==g.object)return h(S,{code:I.invalid_type,expected:g.object,received:S.parsedType}),$T;let f=[],M=this._def.keyType,F=this._def.valueType;for(let J in S.data)f.push({key:M._parse(new s$(S,J,S.path,J)),value:F._parse(new s$(S,S.data[J],S.path,J)),alwaysSet:J in S.data});if(S.common.async)return K$.mergeObjectAsync($,f);else return K$.mergeObjectSync($,f)}get element(){return this._def.valueType}static create(T,$,S){if($ instanceof FT)return new uM({keyType:T,valueType:$,typeName:j.ZodRecord,...MT(S)});return new uM({keyType:r$.create(),valueType:T,typeName:j.ZodRecord,...MT($)})}}class dM extends FT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.parsedType!==g.map)return h(S,{code:I.invalid_type,expected:g.map,received:S.parsedType}),$T;let f=this._def.keyType,M=this._def.valueType,F=[...S.data.entries()].map(([J,W],A)=>{return{key:f._parse(new s$(S,J,S.path,[A,"key"])),value:M._parse(new s$(S,W,S.path,[A,"value"]))}});if(S.common.async){let J=new Map;return Promise.resolve().then(async()=>{for(let W of F){let A=await W.key,w=await W.value;if(A.status==="aborted"||w.status==="aborted")return $T;if(A.status==="dirty"||w.status==="dirty")$.dirty();J.set(A.value,w.value)}return{status:$.value,value:J}})}else{let J=new Map;for(let W of F){let{key:A,value:w}=W;if(A.status==="aborted"||w.status==="aborted")return $T;if(A.status==="dirty"||w.status==="dirty")$.dirty();J.set(A.value,w.value)}return{status:$.value,value:J}}}}dM.create=(T,$,S)=>{return new dM({valueType:$,keyType:T,typeName:j.ZodMap,...MT(S)})};class Mf extends FT{_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.parsedType!==g.set)return h(S,{code:I.invalid_type,expected:g.set,received:S.parsedType}),$T;let f=this._def;if(f.minSize!==null){if(S.data.size<f.minSize.value)h(S,{code:I.too_small,minimum:f.minSize.value,type:"set",inclusive:!0,exact:!1,message:f.minSize.message}),$.dirty()}if(f.maxSize!==null){if(S.data.size>f.maxSize.value)h(S,{code:I.too_big,maximum:f.maxSize.value,type:"set",inclusive:!0,exact:!1,message:f.maxSize.message}),$.dirty()}let M=this._def.valueType;function F(W){let A=new Set;for(let w of W){if(w.status==="aborted")return $T;if(w.status==="dirty")$.dirty();A.add(w.value)}return{status:$.value,value:A}}let J=[...S.data.values()].map((W,A)=>M._parse(new s$(S,W,S.path,A)));if(S.common.async)return Promise.all(J).then((W)=>F(W));else return F(J)}min(T,$){return new Mf({...this._def,minSize:{value:T,message:i.toString($)}})}max(T,$){return new Mf({...this._def,maxSize:{value:T,message:i.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}Mf.create=(T,$)=>{return new Mf({valueType:T,minSize:null,maxSize:null,typeName:j.ZodSet,...MT($)})};class nf extends FT{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==g.function)return h($,{code:I.invalid_type,expected:g.function,received:$.parsedType}),$T;function S(J,W){return yJ({data:J,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,OJ(),cf].filter((A)=>!!A),issueData:{code:I.invalid_arguments,argumentsError:W}})}function f(J,W){return yJ({data:J,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,OJ(),cf].filter((A)=>!!A),issueData:{code:I.invalid_return_type,returnTypeError:W}})}let M={errorMap:$.common.contextualErrorMap},F=$.data;if(this._def.returns instanceof Ff){let J=this;return z$(async function(...W){let A=new C$([]),w=await J._def.args.parseAsync(W,M).catch((k)=>{throw A.addIssue(S(W,k)),A}),X=await Reflect.apply(F,this,w);return await J._def.returns._def.type.parseAsync(X,M).catch((k)=>{throw A.addIssue(f(X,k)),A})})}else{let J=this;return z$(function(...W){let A=J._def.args.safeParse(W,M);if(!A.success)throw new C$([S(W,A.error)]);let w=Reflect.apply(F,this,A.data),X=J._def.returns.safeParse(w,M);if(!X.success)throw new C$([f(w,X.error)]);return X.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new nf({...this._def,args:XS.create(T).rest(cS.create())})}returns(T){return new nf({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,S){return new nf({args:T?T:XS.create([]).rest(cS.create()),returns:$||cS.create(),typeName:j.ZodFunction,...MT(S)})}}class df extends FT{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}df.create=(T,$)=>{return new df({getter:T,typeName:j.ZodLazy,...MT($)})};class lf extends FT{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return h($,{received:$.data,code:I.invalid_literal,expected:this._def.value}),$T}return{status:"valid",value:T.data}}get value(){return this._def.value}}lf.create=(T,$)=>{return new lf({value:T,typeName:j.ZodLiteral,...MT($)})};function C2(T,$){return new tS({values:T,typeName:j.ZodEnum,...MT($)})}class tS extends FT{constructor(){super(...arguments);oM.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let $=this._getOrReturnCtx(T),S=this._def.values;return h($,{expected:OT.joinValues(S),received:$.parsedType,code:I.invalid_type}),$T}if(!GJ(this,oM,"f"))V2(this,oM,new Set(this._def.values),"f");if(!GJ(this,oM,"f").has(T.data)){let $=this._getOrReturnCtx(T),S=this._def.values;return h($,{received:$.data,code:I.invalid_enum_value,options:S}),$T}return z$(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 tS.create(T,{...this._def,...$})}exclude(T,$=this._def){return tS.create(this.options.filter((S)=>!T.includes(S)),{...this._def,...$})}}oM=new WeakMap;tS.create=C2;class rf extends FT{constructor(){super(...arguments);gM.set(this,void 0)}_parse(T){let $=OT.getValidEnumValues(this._def.values),S=this._getOrReturnCtx(T);if(S.parsedType!==g.string&&S.parsedType!==g.number){let f=OT.objectValues($);return h(S,{expected:OT.joinValues(f),received:S.parsedType,code:I.invalid_type}),$T}if(!GJ(this,gM,"f"))V2(this,gM,new Set(OT.getValidEnumValues(this._def.values)),"f");if(!GJ(this,gM,"f").has(T.data)){let f=OT.objectValues($);return h(S,{received:S.data,code:I.invalid_enum_value,options:f}),$T}return z$(T.data)}get enum(){return this._def.values}}gM=new WeakMap;rf.create=(T,$)=>{return new rf({values:T,typeName:j.ZodNativeEnum,...MT($)})};class Ff extends FT{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==g.promise&&$.common.async===!1)return h($,{code:I.invalid_type,expected:g.promise,received:$.parsedType}),$T;let S=$.parsedType===g.promise?$.data:Promise.resolve($.data);return z$(S.then((f)=>{return this._def.type.parseAsync(f,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}Ff.create=(T,$)=>{return new Ff({type:T,typeName:j.ZodPromise,...MT($)})};class n$ extends FT{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===j.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:$,ctx:S}=this._processInputParams(T),f=this._def.effect||null,M={addIssue:(F)=>{if(h(S,F),F.fatal)$.abort();else $.dirty()},get path(){return S.path}};if(M.addIssue=M.addIssue.bind(M),f.type==="preprocess"){let F=f.transform(S.data,M);if(S.common.async)return Promise.resolve(F).then(async(J)=>{if($.value==="aborted")return $T;let W=await this._def.schema._parseAsync({data:J,path:S.path,parent:S});if(W.status==="aborted")return $T;if(W.status==="dirty")return Pf(W.value);if($.value==="dirty")return Pf(W.value);return W});else{if($.value==="aborted")return $T;let J=this._def.schema._parseSync({data:F,path:S.path,parent:S});if(J.status==="aborted")return $T;if(J.status==="dirty")return Pf(J.value);if($.value==="dirty")return Pf(J.value);return J}}if(f.type==="refinement"){let F=(J)=>{let W=f.refinement(J,M);if(S.common.async)return Promise.resolve(W);if(W instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return J};if(S.common.async===!1){let J=this._def.schema._parseSync({data:S.data,path:S.path,parent:S});if(J.status==="aborted")return $T;if(J.status==="dirty")$.dirty();return F(J.value),{status:$.value,value:J.value}}else return this._def.schema._parseAsync({data:S.data,path:S.path,parent:S}).then((J)=>{if(J.status==="aborted")return $T;if(J.status==="dirty")$.dirty();return F(J.value).then(()=>{return{status:$.value,value:J.value}})})}if(f.type==="transform")if(S.common.async===!1){let F=this._def.schema._parseSync({data:S.data,path:S.path,parent:S});if(!$f(F))return F;let J=f.transform(F.value,M);if(J instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:J}}else return this._def.schema._parseAsync({data:S.data,path:S.path,parent:S}).then((F)=>{if(!$f(F))return F;return Promise.resolve(f.transform(F.value,M)).then((J)=>({status:$.value,value:J}))});OT.assertNever(f)}}n$.create=(T,$,S)=>{return new n$({schema:T,typeName:j.ZodEffects,effect:$,...MT(S)})};n$.createWithPreprocess=(T,$,S)=>{return new n$({schema:$,effect:{type:"preprocess",transform:T},typeName:j.ZodEffects,...MT(S)})};class I$ extends FT{_parse(T){if(this._getType(T)===g.undefined)return z$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}I$.create=(T,$)=>{return new I$({innerType:T,typeName:j.ZodOptional,...MT($)})};class QS extends FT{_parse(T){if(this._getType(T)===g.null)return z$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}QS.create=(T,$)=>{return new QS({innerType:T,typeName:j.ZodNullable,...MT($)})};class af extends FT{_parse(T){let{ctx:$}=this._processInputParams(T),S=$.data;if($.parsedType===g.undefined)S=this._def.defaultValue();return this._def.innerType._parse({data:S,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}af.create=(T,$)=>{return new af({innerType:T,typeName:j.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...MT($)})};class sf extends FT{_parse(T){let{ctx:$}=this._processInputParams(T),S={...$,common:{...$.common,issues:[]}},f=this._def.innerType._parse({data:S.data,path:S.path,parent:{...S}});if(tM(f))return f.then((M)=>{return{status:"valid",value:M.status==="valid"?M.value:this._def.catchValue({get error(){return new C$(S.common.issues)},input:S.data})}});else return{status:"valid",value:f.status==="valid"?f.value:this._def.catchValue({get error(){return new C$(S.common.issues)},input:S.data})}}removeCatch(){return this._def.innerType}}sf.create=(T,$)=>{return new sf({innerType:T,typeName:j.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...MT($)})};class lM extends FT{_parse(T){if(this._getType(T)!==g.nan){let S=this._getOrReturnCtx(T);return h(S,{code:I.invalid_type,expected:g.nan,received:S.parsedType}),$T}return{status:"valid",value:T.data}}}lM.create=(T)=>{return new lM({typeName:j.ZodNaN,...MT(T)})};var y6=Symbol("zod_brand");class zJ extends FT{_parse(T){let{ctx:$}=this._processInputParams(T),S=$.data;return this._def.type._parse({data:S,path:$.path,parent:$})}unwrap(){return this._def.type}}class rM extends FT{_parse(T){let{status:$,ctx:S}=this._processInputParams(T);if(S.common.async)return(async()=>{let M=await this._def.in._parseAsync({data:S.data,path:S.path,parent:S});if(M.status==="aborted")return $T;if(M.status==="dirty")return $.dirty(),Pf(M.value);else return this._def.out._parseAsync({data:M.value,path:S.path,parent:S})})();else{let f=this._def.in._parseSync({data:S.data,path:S.path,parent:S});if(f.status==="aborted")return $T;if(f.status==="dirty")return $.dirty(),{status:"dirty",value:f.value};else return this._def.out._parseSync({data:f.value,path:S.path,parent:S})}}static create(T,$){return new rM({in:T,out:$,typeName:j.ZodPipeline})}}class ef extends FT{_parse(T){let $=this._def.innerType._parse(T),S=(f)=>{if($f(f))f.value=Object.freeze(f.value);return f};return tM($)?$.then((f)=>S(f)):S($)}unwrap(){return this._def.innerType}}ef.create=(T,$)=>{return new ef({innerType:T,typeName:j.ZodReadonly,...MT($)})};function I2(T,$={},S){if(T)return ff.create().superRefine((f,M)=>{var F,J;if(!T(f)){let W=typeof $==="function"?$(f):typeof $==="string"?{message:$}:$,A=(J=(F=W.fatal)!==null&&F!==void 0?F:S)!==null&&J!==void 0?J:!0,w=typeof W==="string"?{message:W}:W;M.addIssue({code:"custom",...w,fatal:A})}});return ff.create()}var G6={object:qT.lazycreate},j;(function(T){T.ZodString="ZodString",T.ZodNumber="ZodNumber",T.ZodNaN="ZodNaN",T.ZodBigInt="ZodBigInt",T.ZodBoolean="ZodBoolean",T.ZodDate="ZodDate",T.ZodSymbol="ZodSymbol",T.ZodUndefined="ZodUndefined",T.ZodNull="ZodNull",T.ZodAny="ZodAny",T.ZodUnknown="ZodUnknown",T.ZodNever="ZodNever",T.ZodVoid="ZodVoid",T.ZodArray="ZodArray",T.ZodObject="ZodObject",T.ZodUnion="ZodUnion",T.ZodDiscriminatedUnion="ZodDiscriminatedUnion",T.ZodIntersection="ZodIntersection",T.ZodTuple="ZodTuple",T.ZodRecord="ZodRecord",T.ZodMap="ZodMap",T.ZodSet="ZodSet",T.ZodFunction="ZodFunction",T.ZodLazy="ZodLazy",T.ZodLiteral="ZodLiteral",T.ZodEnum="ZodEnum",T.ZodEffects="ZodEffects",T.ZodNativeEnum="ZodNativeEnum",T.ZodOptional="ZodOptional",T.ZodNullable="ZodNullable",T.ZodDefault="ZodDefault",T.ZodCatch="ZodCatch",T.ZodPromise="ZodPromise",T.ZodBranded="ZodBranded",T.ZodPipeline="ZodPipeline",T.ZodReadonly="ZodReadonly"})(j||(j={}));var R6=(T,$={message:`Input not instance of ${T.name}`})=>I2((S)=>S instanceof T,$),j2=r$.create,x2=oS.create,z6=lM.create,H6=gS.create,Z2=of.create,D6=Sf.create,_6=pM.create,E6=gf.create,Q6=tf.create,U6=ff.create,V6=cS.create,B6=wS.create,L6=iM.create,N6=a$.create,C6=qT.create,I6=qT.strictCreate,j6=pf.create,x6=RJ.create,Z6=uf.create,b6=XS.create,q6=uM.create,m6=dM.create,h6=Mf.create,v6=nf.create,P6=df.create,n6=lf.create,c6=tS.create,o6=rf.create,g6=Ff.create,Q2=n$.create,t6=I$.create,p6=QS.create,i6=n$.createWithPreprocess,u6=rM.create,d6=()=>j2().optional(),l6=()=>x2().optional(),r6=()=>Z2().optional(),a6={string:(T)=>r$.create({...T,coerce:!0}),number:(T)=>oS.create({...T,coerce:!0}),boolean:(T)=>of.create({...T,coerce:!0}),bigint:(T)=>gS.create({...T,coerce:!0}),date:(T)=>Sf.create({...T,coerce:!0})},s6=$T,_T=Object.freeze({__proto__:null,defaultErrorMap:cf,setErrorMap:ik,getErrorMap:OJ,makeIssue:yJ,EMPTY_PATH:uk,addIssueToContext:h,ParseStatus:K$,INVALID:$T,DIRTY:Pf,OK:z$,isAborted:H0,isDirty:D0,isValid:$f,isAsync:tM,get util(){return OT},get objectUtil(){return z0},ZodParsedType:g,getParsedType:ES,ZodType:FT,datetimeRegex:N2,ZodString:r$,ZodNumber:oS,ZodBigInt:gS,ZodBoolean:of,ZodDate:Sf,ZodSymbol:pM,ZodUndefined:gf,ZodNull:tf,ZodAny:ff,ZodUnknown:cS,ZodNever:wS,ZodVoid:iM,ZodArray:a$,ZodObject:qT,ZodUnion:pf,ZodDiscriminatedUnion:RJ,ZodIntersection:uf,ZodTuple:XS,ZodRecord:uM,ZodMap:dM,ZodSet:Mf,ZodFunction:nf,ZodLazy:df,ZodLiteral:lf,ZodEnum:tS,ZodNativeEnum:rf,ZodPromise:Ff,ZodEffects:n$,ZodTransformer:n$,ZodOptional:I$,ZodNullable:QS,ZodDefault:af,ZodCatch:sf,ZodNaN:lM,BRAND:y6,ZodBranded:zJ,ZodPipeline:rM,ZodReadonly:ef,custom:I2,Schema:FT,ZodSchema:FT,late:G6,get ZodFirstPartyTypeKind(){return j},coerce:a6,any:U6,array:N6,bigint:H6,boolean:Z2,date:D6,discriminatedUnion:x6,effect:Q2,enum:c6,function:v6,instanceof:R6,intersection:Z6,lazy:P6,literal:n6,map:m6,nan:z6,nativeEnum:o6,never:B6,null:Q6,nullable:p6,number:x2,object:C6,oboolean:r6,onumber:l6,optional:t6,ostring:d6,pipeline:u6,preprocess:i6,promise:g6,record:q6,set:h6,strictObject:I6,string:j2,symbol:_6,transformer:Q2,tuple:b6,undefined:E6,union:j6,unknown:V6,void:L6,NEVER:s6,ZodIssueCode:I,quotelessJson:pk,ZodError:C$});function b2(){return{}}function q2(T,$){let S={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==j.ZodAny)S.items=e(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)YT(S,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)YT(S,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)YT(S,"minItems",T.exactLength.value,T.exactLength.message,$),YT(S,"maxItems",T.exactLength.value,T.exactLength.message,$);return S}function m2(T,$){let S={type:"integer",format:"int64"};if(!T.checks)return S;for(let f of T.checks)switch(f.kind){case"min":if($.target==="jsonSchema7")if(f.inclusive)YT(S,"minimum",f.value,f.message,$);else YT(S,"exclusiveMinimum",f.value,f.message,$);else{if(!f.inclusive)S.exclusiveMinimum=!0;YT(S,"minimum",f.value,f.message,$)}break;case"max":if($.target==="jsonSchema7")if(f.inclusive)YT(S,"maximum",f.value,f.message,$);else YT(S,"exclusiveMaximum",f.value,f.message,$);else{if(!f.inclusive)S.exclusiveMaximum=!0;YT(S,"maximum",f.value,f.message,$)}break;case"multipleOf":YT(S,"multipleOf",f.value,f.message,$);break}return S}function h2(){return{type:"boolean"}}function HJ(T,$){return e(T.type._def,$)}var v2=(T,$)=>{return e(T.innerType._def,$)};function E0(T,$,S){let f=S??$.dateStrategy;if(Array.isArray(f))return{anyOf:f.map((M,F)=>E0(T,$,M))};switch(f){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return e6(T,$)}}var e6=(T,$)=>{let S={type:"integer",format:"unix-time"};if($.target==="openApi3")return S;for(let f of T.checks)switch(f.kind){case"min":YT(S,"minimum",f.value,f.message,$);break;case"max":YT(S,"maximum",f.value,f.message,$);break}return S};function P2(T,$){return{...e(T.innerType._def,$),default:T.defaultValue()}}function n2(T,$){return $.effectStrategy==="input"?e(T.schema._def,$):{}}function c2(T){return{type:"string",enum:Array.from(T.values)}}var TK=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function o2(T,$){let S=[e(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),e(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((F)=>!!F),f=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,M=[];return S.forEach((F)=>{if(TK(F)){if(M.push(...F.allOf),F.unevaluatedProperties===void 0)f=void 0}else{let J=F;if("additionalProperties"in F&&F.additionalProperties===!1){let{additionalProperties:W,...A}=F;J=A}else f=void 0;M.push(J)}}),M.length?{allOf:M,...f}:void 0}function g2(T,$){let S=typeof T.value;if(S!=="bigint"&&S!=="number"&&S!=="boolean"&&S!=="string")return{type:Array.isArray(T.value)?"array":"object"};if($.target==="openApi3")return{type:S==="bigint"?"integer":S,enum:[T.value]};return{type:S==="bigint"?"integer":S,const:T.value}}var Q0=void 0,e$={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(Q0===void 0)Q0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return Q0},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 DJ(T,$){let S={type:"string"};if(T.checks)for(let f of T.checks)switch(f.kind){case"min":YT(S,"minLength",typeof S.minLength==="number"?Math.max(S.minLength,f.value):f.value,f.message,$);break;case"max":YT(S,"maxLength",typeof S.maxLength==="number"?Math.min(S.maxLength,f.value):f.value,f.message,$);break;case"email":switch($.emailStrategy){case"format:email":TS(S,"email",f.message,$);break;case"format:idn-email":TS(S,"idn-email",f.message,$);break;case"pattern:zod":H$(S,e$.email,f.message,$);break}break;case"url":TS(S,"uri",f.message,$);break;case"uuid":TS(S,"uuid",f.message,$);break;case"regex":H$(S,f.regex,f.message,$);break;case"cuid":H$(S,e$.cuid,f.message,$);break;case"cuid2":H$(S,e$.cuid2,f.message,$);break;case"startsWith":H$(S,RegExp(`^${U0(f.value,$)}`),f.message,$);break;case"endsWith":H$(S,RegExp(`${U0(f.value,$)}$`),f.message,$);break;case"datetime":TS(S,"date-time",f.message,$);break;case"date":TS(S,"date",f.message,$);break;case"time":TS(S,"time",f.message,$);break;case"duration":TS(S,"duration",f.message,$);break;case"length":YT(S,"minLength",typeof S.minLength==="number"?Math.max(S.minLength,f.value):f.value,f.message,$),YT(S,"maxLength",typeof S.maxLength==="number"?Math.min(S.maxLength,f.value):f.value,f.message,$);break;case"includes":{H$(S,RegExp(U0(f.value,$)),f.message,$);break}case"ip":{if(f.version!=="v6")TS(S,"ipv4",f.message,$);if(f.version!=="v4")TS(S,"ipv6",f.message,$);break}case"base64url":H$(S,e$.base64url,f.message,$);break;case"jwt":H$(S,e$.jwt,f.message,$);break;case"cidr":{if(f.version!=="v6")H$(S,e$.ipv4Cidr,f.message,$);if(f.version!=="v4")H$(S,e$.ipv6Cidr,f.message,$);break}case"emoji":H$(S,e$.emoji(),f.message,$);break;case"ulid":{H$(S,e$.ulid,f.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{TS(S,"binary",f.message,$);break}case"contentEncoding:base64":{YT(S,"contentEncoding","base64",f.message,$);break}case"pattern:zod":{H$(S,e$.base64,f.message,$);break}}break}case"nanoid":H$(S,e$.nanoid,f.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((M)=>{})(f)}return S}function U0(T,$){return $.patternStrategy==="escape"?SK(T):T}var $K=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function SK(T){let $="";for(let S=0;S<T.length;S++){if(!$K.has(T[S]))$+="\\";$+=T[S]}return $}function TS(T,$,S,f){if(T.format||T.anyOf?.some((M)=>M.format)){if(!T.anyOf)T.anyOf=[];if(T.format){if(T.anyOf.push({format:T.format,...T.errorMessage&&f.errorMessages&&{errorMessage:{format:T.errorMessage.format}}}),delete T.format,T.errorMessage){if(delete T.errorMessage.format,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.anyOf.push({format:$,...S&&f.errorMessages&&{errorMessage:{format:S}}})}else YT(T,"format",$,S,f)}function H$(T,$,S,f){if(T.pattern||T.allOf?.some((M)=>M.pattern)){if(!T.allOf)T.allOf=[];if(T.pattern){if(T.allOf.push({pattern:T.pattern,...T.errorMessage&&f.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:t2($,f),...S&&f.errorMessages&&{errorMessage:{pattern:S}}})}else YT(T,"pattern",t2($,f),S,f)}function t2(T,$){if(!$.applyRegexFlags||!T.flags)return T.source;let S={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},f=S.i?T.source.toLowerCase():T.source,M="",F=!1,J=!1,W=!1;for(let A=0;A<f.length;A++){if(F){M+=f[A],F=!1;continue}if(S.i){if(J){if(f[A].match(/[a-z]/)){if(W)M+=f[A],M+=`${f[A-2]}-${f[A]}`.toUpperCase(),W=!1;else if(f[A+1]==="-"&&f[A+2]?.match(/[a-z]/))M+=f[A],W=!0;else M+=`${f[A]}${f[A].toUpperCase()}`;continue}}else if(f[A].match(/[a-z]/)){M+=`[${f[A]}${f[A].toUpperCase()}]`;continue}}if(S.m){if(f[A]==="^"){M+=`(^|(?<=[\r
|
|
10
10
|
]))`;continue}else if(f[A]==="$"){M+=`($|(?=[\r
|
|
11
|
-
]))`;continue}}if(
|
|
11
|
+
]))`;continue}}if(S.s&&f[A]==="."){M+=J?`${f[A]}\r
|
|
12
12
|
`:`[${f[A]}\r
|
|
13
|
-
]`;continue}if(M+=f[A],f[A]==="\\")F=!0;else if(J&&f[A]==="]")J=!1;else if(!J&&f[A]==="[")J=!0}try{new RegExp(M)}catch{return console.warn(`Could not convert regex pattern at ${S.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),T.source}return M}function _J(T,S){if(S.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if(S.target==="openApi3"&&T.keyType?._def.typeName===j.ZodEnum)return{type:"object",required:T.keyType._def.values,properties:T.keyType._def.values.reduce((f,M)=>({...f,[M]:e(T.valueType._def,{...S,currentPath:[...S.currentPath,"properties",M]})??{}}),{}),additionalProperties:!1};let $={type:"object",additionalProperties:e(T.valueType._def,{...S,currentPath:[...S.currentPath,"additionalProperties"]})??{}};if(S.target==="openApi3")return $;if(T.keyType?._def.typeName===j.ZodString&&T.keyType._def.checks?.length){let{type:f,...M}=DJ(T.keyType._def,S);return{...$,propertyNames:M}}else if(T.keyType?._def.typeName===j.ZodEnum)return{...$,propertyNames:{enum:T.keyType._def.values}};else if(T.keyType?._def.typeName===j.ZodBranded&&T.keyType._def.type._def.typeName===j.ZodString&&T.keyType._def.type._def.checks?.length){let{type:f,...M}=HJ(T.keyType._def,S);return{...$,propertyNames:M}}return $}function p2(T,S){if(S.mapStrategy==="record")return _J(T,S);let $=e(T.keyType._def,{...S,currentPath:[...S.currentPath,"items","items","0"]})||{},f=e(T.valueType._def,{...S,currentPath:[...S.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[$,f],minItems:2,maxItems:2}}}function i2(T){let S=T.values,f=Object.keys(T.values).filter((F)=>{return typeof S[S[F]]!=="number"}).map((F)=>S[F]),M=Array.from(new Set(f.map((F)=>typeof F)));return{type:M.length===1?M[0]==="string"?"string":"number":["string","number"],enum:f}}function u2(){return{not:{}}}function d2(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var aM={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function r2(T,S){if(S.target==="openApi3")return l2(T,S);let $=T.options instanceof Map?Array.from(T.options.values()):T.options;if($.every((f)=>(f._def.typeName in aM)&&(!f._def.checks||!f._def.checks.length))){let f=$.reduce((M,F)=>{let J=aM[F._def.typeName];return J&&!M.includes(J)?[...M,J]:M},[]);return{type:f.length>1?f:f[0]}}else if($.every((f)=>f._def.typeName==="ZodLiteral"&&!f.description)){let f=$.reduce((M,F)=>{let J=typeof F._def.value;switch(J){case"string":case"number":case"boolean":return[...M,J];case"bigint":return[...M,"integer"];case"object":if(F._def.value===null)return[...M,"null"];case"symbol":case"undefined":case"function":default:return M}},[]);if(f.length===$.length){let M=f.filter((F,J,W)=>W.indexOf(F)===J);return{type:M.length>1?M:M[0],enum:$.reduce((F,J)=>{return F.includes(J._def.value)?F:[...F,J._def.value]},[])}}}else if($.every((f)=>f._def.typeName==="ZodEnum"))return{type:"string",enum:$.reduce((f,M)=>[...f,...M._def.values.filter((F)=>!f.includes(F))],[])};return l2(T,S)}var l2=(T,S)=>{let $=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((f,M)=>e(f._def,{...S,currentPath:[...S.currentPath,"anyOf",`${M}`]})).filter((f)=>!!f&&(!S.strictUnions||typeof f==="object"&&Object.keys(f).length>0));return $.length?{anyOf:$}:void 0};function a2(T,S){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(T.innerType._def.typeName)&&(!T.innerType._def.checks||!T.innerType._def.checks.length)){if(S.target==="openApi3")return{type:aM[T.innerType._def.typeName],nullable:!0};return{type:[aM[T.innerType._def.typeName],"null"]}}if(S.target==="openApi3"){let f=e(T.innerType._def,{...S,currentPath:[...S.currentPath]});if(f&&"$ref"in f)return{allOf:[f],nullable:!0};return f&&{...f,nullable:!0}}let $=e(T.innerType._def,{...S,currentPath:[...S.currentPath,"anyOf","0"]});return $&&{anyOf:[$,{type:"null"}]}}function s2(T,S){let $={type:"number"};if(!T.checks)return $;for(let f of T.checks)switch(f.kind){case"int":$.type="integer",G0($,"type",f.message,S);break;case"min":if(S.target==="jsonSchema7")if(f.inclusive)YT($,"minimum",f.value,f.message,S);else YT($,"exclusiveMinimum",f.value,f.message,S);else{if(!f.inclusive)$.exclusiveMinimum=!0;YT($,"minimum",f.value,f.message,S)}break;case"max":if(S.target==="jsonSchema7")if(f.inclusive)YT($,"maximum",f.value,f.message,S);else YT($,"exclusiveMaximum",f.value,f.message,S);else{if(!f.inclusive)$.exclusiveMaximum=!0;YT($,"maximum",f.value,f.message,S)}break;case"multipleOf":YT($,"multipleOf",f.value,f.message,S);break}return $}function fK(T,S){if(S.removeAdditionalStrategy==="strict")return T.catchall._def.typeName==="ZodNever"?T.unknownKeys!=="strict":e(T.catchall._def,{...S,currentPath:[...S.currentPath,"additionalProperties"]})??!0;else return T.catchall._def.typeName==="ZodNever"?T.unknownKeys==="passthrough":e(T.catchall._def,{...S,currentPath:[...S.currentPath,"additionalProperties"]})??!0}function e2(T,S){let $=S.target==="openAi",f={type:"object",...Object.entries(T.shape()).reduce((M,[F,J])=>{if(J===void 0||J._def===void 0)return M;let W=J.isOptional();if(W&&$){if(J instanceof IS)J=J._def.innerType;if(!J.isNullable())J=J.nullable();W=!1}let A=e(J._def,{...S,currentPath:[...S.currentPath,"properties",F],propertyPath:[...S.currentPath,"properties",F]});if(A===void 0)return M;return{properties:{...M.properties,[F]:A},required:W?M.required:[...M.required,F]}},{properties:{},required:[]}),additionalProperties:fK(T,S)};if(!f.required.length)delete f.required;return f}var Tw=(T,S)=>{if(S.currentPath.toString()===S.propertyPath?.toString())return e(T.innerType._def,S);let $=e(T.innerType._def,{...S,currentPath:[...S.currentPath,"anyOf","1"]});return $?{anyOf:[{not:{}},$]}:{}};var Sw=(T,S)=>{if(S.pipeStrategy==="input")return e(T.in._def,S);else if(S.pipeStrategy==="output")return e(T.out._def,S);let $=e(T.in._def,{...S,currentPath:[...S.currentPath,"allOf","0"]}),f=e(T.out._def,{...S,currentPath:[...S.currentPath,"allOf",$?"1":"0"]});return{allOf:[$,f].filter((M)=>M!==void 0)}};function $w(T,S){return e(T.type._def,S)}function fw(T,S){let f={type:"array",uniqueItems:!0,items:e(T.valueType._def,{...S,currentPath:[...S.currentPath,"items"]})};if(T.minSize)YT(f,"minItems",T.minSize.value,T.minSize.message,S);if(T.maxSize)YT(f,"maxItems",T.maxSize.value,T.maxSize.message,S);return f}function Mw(T,S){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map(($,f)=>e($._def,{...S,currentPath:[...S.currentPath,"items",`${f}`]})).reduce(($,f)=>f===void 0?$:[...$,f],[]),additionalItems:e(T.rest._def,{...S,currentPath:[...S.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map(($,f)=>e($._def,{...S,currentPath:[...S.currentPath,"items",`${f}`]})).reduce(($,f)=>f===void 0?$:[...$,f],[])}}function Fw(){return{not:{}}}function Jw(){return{}}var Ww=(T,S)=>{return e(T.innerType._def,S)};function e(T,S,$=!1){let f=S.seen.get(T);if(S.override){let J=S.override?.(T,S,f,$);if(J!==H2)return J}if(f&&!$){let J=MK(f,S);if(J!==void 0)return J}let M={def:T,path:S.currentPath,jsonSchema:void 0};S.seen.set(T,M);let F=JK(T,T.typeName,S);if(F)WK(T,S,F);return M.jsonSchema=F,F}var MK=(T,S)=>{switch(S.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:FK(S.currentPath,T.path)};case"none":case"seen":{if(T.path.length<S.currentPath.length&&T.path.every(($,f)=>S.currentPath[f]===$))return console.warn(`Recursive reference detected at ${S.currentPath.join("/")}! Defaulting to any`),{};return S.$refStrategy==="seen"?{}:void 0}}},FK=(T,S)=>{let $=0;for(;$<T.length&&$<S.length;$++)if(T[$]!==S[$])break;return[(T.length-$).toString(),...S.slice($)].join("/")},JK=(T,S,$)=>{switch(S){case j.ZodString:return DJ(T,$);case j.ZodNumber:return s2(T,$);case j.ZodObject:return e2(T,$);case j.ZodBigInt:return m2(T,$);case j.ZodBoolean:return h2();case j.ZodDate:return E0(T,$);case j.ZodUndefined:return Fw();case j.ZodNull:return d2($);case j.ZodArray:return q2(T,$);case j.ZodUnion:case j.ZodDiscriminatedUnion:return r2(T,$);case j.ZodIntersection:return o2(T,$);case j.ZodTuple:return Mw(T,$);case j.ZodRecord:return _J(T,$);case j.ZodLiteral:return g2(T,$);case j.ZodEnum:return c2(T);case j.ZodNativeEnum:return i2(T);case j.ZodNullable:return a2(T,$);case j.ZodOptional:return Tw(T,$);case j.ZodMap:return p2(T,$);case j.ZodSet:return fw(T,$);case j.ZodLazy:return e(T.getter()._def,$);case j.ZodPromise:return $w(T,$);case j.ZodNaN:case j.ZodNever:return u2();case j.ZodEffects:return n2(T,$);case j.ZodAny:return b2();case j.ZodUnknown:return Jw();case j.ZodDefault:return P2(T,$);case j.ZodBranded:return HJ(T,$);case j.ZodReadonly:return Ww(T,$);case j.ZodCatch:return v2(T,$);case j.ZodPipeline:return Sw(T,$);case j.ZodFunction:case j.ZodVoid:case j.ZodSymbol:return;default:return((f)=>{return})(S)}},WK=(T,S,$)=>{if(T.description){if($.description=T.description,S.markdownDescription)$.markdownDescription=T.description}return $};var Aw=(T,S)=>{let $=_2(S),f=typeof S==="object"&&S.definitions?Object.entries(S.definitions).reduce((A,[w,X])=>({...A,[w]:e(X._def,{...$,currentPath:[...$.basePath,$.definitionPath,w]},!0)??{}}),{}):void 0,M=typeof S==="string"?S:S?.nameStrategy==="title"?void 0:S?.name,F=e(T._def,M===void 0?$:{...$,currentPath:[...$.basePath,$.definitionPath,M]},!1)??{},J=typeof S==="object"&&S.name!==void 0&&S.nameStrategy==="title"?S.name:void 0;if(J!==void 0)F.title=J;let W=M===void 0?f?{...F,[$.definitionPath]:f}:F:{$ref:[...$.$refStrategy==="relative"?[]:$.basePath,$.definitionPath,M].join("/"),[$.definitionPath]:{...f,[M]:F}};if($.target==="jsonSchema7")W.$schema="http://json-schema.org/draft-07/schema#";else if($.target==="jsonSchema2019-09"||$.target==="openAi")W.$schema="https://json-schema.org/draft/2019-09/schema#";if($.target==="openAi"&&(("anyOf"in W)||("oneOf"in W)||("allOf"in W)||("type"in W)&&Array.isArray(W.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return W};var ww=Aw;function Xw(T,S){return function $({schema:f,fallback:M}){let F=ww(f);return async function J(W,A=3){let w,X=[];while(X.length<A){w=await T(W,F,M,X);let Y=f.safeParse(w);if(Y.success)return Y.data;S?.warn(`safegen failed to generate well-formed data.
|
|
13
|
+
]`;continue}if(M+=f[A],f[A]==="\\")F=!0;else if(J&&f[A]==="]")J=!1;else if(!J&&f[A]==="[")J=!0}try{new RegExp(M)}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 M}function _J(T,$){if($.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if($.target==="openApi3"&&T.keyType?._def.typeName===j.ZodEnum)return{type:"object",required:T.keyType._def.values,properties:T.keyType._def.values.reduce((f,M)=>({...f,[M]:e(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",M]})??{}}),{}),additionalProperties:!1};let S={type:"object",additionalProperties:e(T.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??{}};if($.target==="openApi3")return S;if(T.keyType?._def.typeName===j.ZodString&&T.keyType._def.checks?.length){let{type:f,...M}=DJ(T.keyType._def,$);return{...S,propertyNames:M}}else if(T.keyType?._def.typeName===j.ZodEnum)return{...S,propertyNames:{enum:T.keyType._def.values}};else if(T.keyType?._def.typeName===j.ZodBranded&&T.keyType._def.type._def.typeName===j.ZodString&&T.keyType._def.type._def.checks?.length){let{type:f,...M}=HJ(T.keyType._def,$);return{...S,propertyNames:M}}return S}function p2(T,$){if($.mapStrategy==="record")return _J(T,$);let S=e(T.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},f=e(T.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[S,f],minItems:2,maxItems:2}}}function i2(T){let $=T.values,f=Object.keys(T.values).filter((F)=>{return typeof $[$[F]]!=="number"}).map((F)=>$[F]),M=Array.from(new Set(f.map((F)=>typeof F)));return{type:M.length===1?M[0]==="string"?"string":"number":["string","number"],enum:f}}function u2(){return{not:{}}}function d2(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var aM={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function r2(T,$){if($.target==="openApi3")return l2(T,$);let S=T.options instanceof Map?Array.from(T.options.values()):T.options;if(S.every((f)=>(f._def.typeName in aM)&&(!f._def.checks||!f._def.checks.length))){let f=S.reduce((M,F)=>{let J=aM[F._def.typeName];return J&&!M.includes(J)?[...M,J]:M},[]);return{type:f.length>1?f:f[0]}}else if(S.every((f)=>f._def.typeName==="ZodLiteral"&&!f.description)){let f=S.reduce((M,F)=>{let J=typeof F._def.value;switch(J){case"string":case"number":case"boolean":return[...M,J];case"bigint":return[...M,"integer"];case"object":if(F._def.value===null)return[...M,"null"];case"symbol":case"undefined":case"function":default:return M}},[]);if(f.length===S.length){let M=f.filter((F,J,W)=>W.indexOf(F)===J);return{type:M.length>1?M:M[0],enum:S.reduce((F,J)=>{return F.includes(J._def.value)?F:[...F,J._def.value]},[])}}}else if(S.every((f)=>f._def.typeName==="ZodEnum"))return{type:"string",enum:S.reduce((f,M)=>[...f,...M._def.values.filter((F)=>!f.includes(F))],[])};return l2(T,$)}var l2=(T,$)=>{let S=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((f,M)=>e(f._def,{...$,currentPath:[...$.currentPath,"anyOf",`${M}`]})).filter((f)=>!!f&&(!$.strictUnions||typeof f==="object"&&Object.keys(f).length>0));return S.length?{anyOf:S}:void 0};function a2(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:aM[T.innerType._def.typeName],nullable:!0};return{type:[aM[T.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let f=e(T.innerType._def,{...$,currentPath:[...$.currentPath]});if(f&&"$ref"in f)return{allOf:[f],nullable:!0};return f&&{...f,nullable:!0}}let S=e(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return S&&{anyOf:[S,{type:"null"}]}}function s2(T,$){let S={type:"number"};if(!T.checks)return S;for(let f of T.checks)switch(f.kind){case"int":S.type="integer",G0(S,"type",f.message,$);break;case"min":if($.target==="jsonSchema7")if(f.inclusive)YT(S,"minimum",f.value,f.message,$);else YT(S,"exclusiveMinimum",f.value,f.message,$);else{if(!f.inclusive)S.exclusiveMinimum=!0;YT(S,"minimum",f.value,f.message,$)}break;case"max":if($.target==="jsonSchema7")if(f.inclusive)YT(S,"maximum",f.value,f.message,$);else YT(S,"exclusiveMaximum",f.value,f.message,$);else{if(!f.inclusive)S.exclusiveMaximum=!0;YT(S,"maximum",f.value,f.message,$)}break;case"multipleOf":YT(S,"multipleOf",f.value,f.message,$);break}return S}function fK(T,$){if($.removeAdditionalStrategy==="strict")return T.catchall._def.typeName==="ZodNever"?T.unknownKeys!=="strict":e(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0;else return T.catchall._def.typeName==="ZodNever"?T.unknownKeys==="passthrough":e(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0}function e2(T,$){let S=$.target==="openAi",f={type:"object",...Object.entries(T.shape()).reduce((M,[F,J])=>{if(J===void 0||J._def===void 0)return M;let W=J.isOptional();if(W&&S){if(J instanceof I$)J=J._def.innerType;if(!J.isNullable())J=J.nullable();W=!1}let A=e(J._def,{...$,currentPath:[...$.currentPath,"properties",F],propertyPath:[...$.currentPath,"properties",F]});if(A===void 0)return M;return{properties:{...M.properties,[F]:A},required:W?M.required:[...M.required,F]}},{properties:{},required:[]}),additionalProperties:fK(T,$)};if(!f.required.length)delete f.required;return f}var Tw=(T,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return e(T.innerType._def,$);let S=e(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return S?{anyOf:[{not:{}},S]}:{}};var $w=(T,$)=>{if($.pipeStrategy==="input")return e(T.in._def,$);else if($.pipeStrategy==="output")return e(T.out._def,$);let S=e(T.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),f=e(T.out._def,{...$,currentPath:[...$.currentPath,"allOf",S?"1":"0"]});return{allOf:[S,f].filter((M)=>M!==void 0)}};function Sw(T,$){return e(T.type._def,$)}function fw(T,$){let f={type:"array",uniqueItems:!0,items:e(T.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(T.minSize)YT(f,"minItems",T.minSize.value,T.minSize.message,$);if(T.maxSize)YT(f,"maxItems",T.maxSize.value,T.maxSize.message,$);return f}function Mw(T,$){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map((S,f)=>e(S._def,{...$,currentPath:[...$.currentPath,"items",`${f}`]})).reduce((S,f)=>f===void 0?S:[...S,f],[]),additionalItems:e(T.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map((S,f)=>e(S._def,{...$,currentPath:[...$.currentPath,"items",`${f}`]})).reduce((S,f)=>f===void 0?S:[...S,f],[])}}function Fw(){return{not:{}}}function Jw(){return{}}var Ww=(T,$)=>{return e(T.innerType._def,$)};function e(T,$,S=!1){let f=$.seen.get(T);if($.override){let J=$.override?.(T,$,f,S);if(J!==H2)return J}if(f&&!S){let J=MK(f,$);if(J!==void 0)return J}let M={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,M);let F=JK(T,T.typeName,$);if(F)WK(T,$,F);return M.jsonSchema=F,F}var MK=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:FK($.currentPath,T.path)};case"none":case"seen":{if(T.path.length<$.currentPath.length&&T.path.every((S,f)=>$.currentPath[f]===S))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},FK=(T,$)=>{let S=0;for(;S<T.length&&S<$.length;S++)if(T[S]!==$[S])break;return[(T.length-S).toString(),...$.slice(S)].join("/")},JK=(T,$,S)=>{switch($){case j.ZodString:return DJ(T,S);case j.ZodNumber:return s2(T,S);case j.ZodObject:return e2(T,S);case j.ZodBigInt:return m2(T,S);case j.ZodBoolean:return h2();case j.ZodDate:return E0(T,S);case j.ZodUndefined:return Fw();case j.ZodNull:return d2(S);case j.ZodArray:return q2(T,S);case j.ZodUnion:case j.ZodDiscriminatedUnion:return r2(T,S);case j.ZodIntersection:return o2(T,S);case j.ZodTuple:return Mw(T,S);case j.ZodRecord:return _J(T,S);case j.ZodLiteral:return g2(T,S);case j.ZodEnum:return c2(T);case j.ZodNativeEnum:return i2(T);case j.ZodNullable:return a2(T,S);case j.ZodOptional:return Tw(T,S);case j.ZodMap:return p2(T,S);case j.ZodSet:return fw(T,S);case j.ZodLazy:return e(T.getter()._def,S);case j.ZodPromise:return Sw(T,S);case j.ZodNaN:case j.ZodNever:return u2();case j.ZodEffects:return n2(T,S);case j.ZodAny:return b2();case j.ZodUnknown:return Jw();case j.ZodDefault:return P2(T,S);case j.ZodBranded:return HJ(T,S);case j.ZodReadonly:return Ww(T,S);case j.ZodCatch:return v2(T,S);case j.ZodPipeline:return $w(T,S);case j.ZodFunction:case j.ZodVoid:case j.ZodSymbol:return;default:return((f)=>{return})($)}},WK=(T,$,S)=>{if(T.description){if(S.description=T.description,$.markdownDescription)S.markdownDescription=T.description}return S};var Aw=(T,$)=>{let S=_2($),f=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((A,[w,X])=>({...A,[w]:e(X._def,{...S,currentPath:[...S.basePath,S.definitionPath,w]},!0)??{}}),{}):void 0,M=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,F=e(T._def,M===void 0?S:{...S,currentPath:[...S.basePath,S.definitionPath,M]},!1)??{},J=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(J!==void 0)F.title=J;let W=M===void 0?f?{...F,[S.definitionPath]:f}:F:{$ref:[...S.$refStrategy==="relative"?[]:S.basePath,S.definitionPath,M].join("/"),[S.definitionPath]:{...f,[M]:F}};if(S.target==="jsonSchema7")W.$schema="http://json-schema.org/draft-07/schema#";else if(S.target==="jsonSchema2019-09"||S.target==="openAi")W.$schema="https://json-schema.org/draft/2019-09/schema#";if(S.target==="openAi"&&(("anyOf"in W)||("oneOf"in W)||("allOf"in W)||("type"in W)&&Array.isArray(W.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return W};var ww=Aw;function Xw(T,$){return function S({schema:f,fallback:M}){let F=ww(f);return async function J(W,A=3){let w,X=[];while(X.length<A){w=await T(W,F,M,X);let Y=f.safeParse(w);if(Y.success)return Y.data;$?.warn(`safegen failed to generate well-formed data.
|
|
14
14
|
`,`Here's what was returned last time:
|
|
15
15
|
`,JSON.stringify(w,null,"\t"),`
|
|
16
16
|
`,`Here's the error message from zod:
|
|
17
|
-
`,Y.error.toString()),X.push({response:w,error:Y.error})}return
|
|
18
|
-
`)}var EJ="RFC3986",QJ={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},kw="RFC1738";var AK=Array.isArray,Y$=(()=>{let T=[];for(let S=0;S<256;++S)T.push("%"+((S<16?"0":"")+S.toString(16)).toUpperCase());return T})();var V0=1024,Kw=(T,S,$,f,M)=>{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($==="iso-8859-1")return escape(F).replace(/%u[0-9a-f]{4}/gi,function(W){return"%26%23"+parseInt(W.slice(2),16)+"%3B"});let J="";for(let W=0;W<F.length;W+=V0){let A=F.length>=V0?F.slice(W,W+V0):F,w=[];for(let X=0;X<A.length;++X){let Y=A.charCodeAt(X);if(Y===45||Y===46||Y===95||Y===126||Y>=48&&Y<=57||Y>=65&&Y<=90||Y>=97&&Y<=122||M===kw&&(Y===40||Y===41)){w[w.length]=A.charAt(X);continue}if(Y<128){w[w.length]=Y$[Y];continue}if(Y<2048){w[w.length]=Y$[192|Y>>6]+Y$[128|Y&63];continue}if(Y<55296||Y>=57344){w[w.length]=Y$[224|Y>>12]+Y$[128|Y>>6&63]+Y$[128|Y&63];continue}X+=1,Y=65536+((Y&1023)<<10|A.charCodeAt(X)&1023),w[w.length]=Y$[240|Y>>18]+Y$[128|Y>>12&63]+Y$[128|Y>>6&63]+Y$[128|Y&63]}J+=w.join("")}return J};function Ow(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function B0(T,S){if(AK(T)){let $=[];for(let f=0;f<T.length;f+=1)$.push(S(T[f]));return $}return S(T)}var wK=Object.prototype.hasOwnProperty,yw={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,S){return String(T)+"["+S+"]"},repeat(T){return String(T)}},k$=Array.isArray,XK=Array.prototype.push,Gw=function(T,S){XK.apply(T,k$(S)?S:[S])},YK=Date.prototype.toISOString,rT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Kw,encodeValuesOnly:!1,format:EJ,formatter:QJ[EJ],indices:!1,serializeDate(T){return YK.call(T)},skipNulls:!1,strictNullHandling:!1};function kK(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var L0={};function Rw(T,S,$,f,M,F,J,W,A,w,X,Y,k,R,z,Q,D,N){let V=T,L=N,Z=0,_=!1;while((L=L.get(L0))!==void 0&&!_){let G=L.get(T);if(Z+=1,typeof G!=="undefined")if(G===Z)throw new RangeError("Cyclic object value");else _=!0;if(typeof L.get(L0)==="undefined")Z=0}if(typeof w==="function")V=w(S,V);else if(V instanceof Date)V=k?.(V);else if($==="comma"&&k$(V))V=B0(V,function(G){if(G instanceof Date)return k?.(G);return G});if(V===null){if(F)return A&&!Q?A(S,rT.encoder,D,"key",R):S;V=""}if(kK(V)||Ow(V)){if(A){let G=Q?S:A(S,rT.encoder,D,"key",R);return[z?.(G)+"="+z?.(A(V,rT.encoder,D,"value",R))]}return[z?.(S)+"="+z?.(String(V))]}let E=[];if(typeof V==="undefined")return E;let B;if($==="comma"&&k$(V)){if(Q&&A)V=B0(V,A);B=[{value:V.length>0?V.join(",")||null:void 0}]}else if(k$(w))B=w;else{let G=Object.keys(V);B=X?G.sort(X):G}let q=W?String(S).replace(/\./g,"%2E"):String(S),v=f&&k$(V)&&V.length===1?q+"[]":q;if(M&&k$(V)&&V.length===0)return v+"[]";for(let G=0;G<B.length;++G){let o=B[G],n=typeof o==="object"&&typeof o.value!=="undefined"?o.value:V[o];if(J&&n===null)continue;let u=Y&&W?o.replace(/\./g,"%2E"):o,yT=k$(V)?typeof $==="function"?$(v,u):v:v+(Y?"."+u:"["+u+"]");N.set(T,Z);let zT=new WeakMap;zT.set(L0,N),Gw(E,Rw(n,yT,$,f,M,F,J,W,$==="comma"&&Q&&k$(V)?null:A,w,X,Y,k,R,z,Q,D,zT))}return E}function KK(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 S=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 $=EJ;if(typeof T.format!=="undefined"){if(!wK.call(QJ,T.format))throw new TypeError("Unknown format option provided.");$=T.format}let f=QJ[$],M=rT.filter;if(typeof T.filter==="function"||k$(T.filter))M=T.filter;let F;if(T.arrayFormat&&T.arrayFormat in yw)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 J=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:rT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:rT.addQueryPrefix,allowDots:J,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:rT.allowEmptyArrays,arrayFormat:F,charset:S,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:M,format:$,formatter:f,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 N0(T,S={}){let $=T,f=KK(S),M,F;if(typeof f.filter==="function")F=f.filter,$=F("",$);else if(k$(f.filter))F=f.filter,M=F;let J=[];if(typeof $!=="object"||$===null)return"";let W=yw[f.arrayFormat],A=W==="comma"&&f.commaRoundTrip;if(!M)M=Object.keys($);if(f.sort)M.sort(f.sort);let w=new WeakMap;for(let k=0;k<M.length;++k){let R=M[k];if(f.skipNulls&&$[R]===null)continue;Gw(J,Rw($[R],R,W,A,f.allowEmptyArrays,f.strictNullHandling,f.skipNulls,f.encodeDotInKeys,f.encode?f.encoder:null,f.filter,f.sort,f.allowDots,f.serializeDate,f.format,f.formatter,f.encodeValuesOnly,f.charset,w))}let X=J.join(f.delimiter),Y=f.addQueryPrefix===!0?"?":"";if(f.charsetSentinel)if(f.charset==="iso-8859-1")Y+="utf8=%26%2310003%3B&";else Y+="utf8=%E2%9C%93&";return X.length>0?Y+X:""}var Jf="4.81.0";var zw=!1,Wf=void 0,C0=void 0,yK=void 0,GK=void 0,RK=void 0,I0=void 0,zK=void 0,UJ=void 0,j0=void 0,x0=void 0,Z0=void 0,VJ=void 0,b0=void 0;function Hw(T,S={auto:!1}){if(zw)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(Wf)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${Wf}'\``);zw=S.auto,Wf=T.kind,C0=T.fetch,yK=T.Request,GK=T.Response,RK=T.Headers,I0=T.FormData,zK=T.Blob,UJ=T.File,j0=T.ReadableStream,x0=T.getMultipartRequestOptions,Z0=T.getDefaultAgent,VJ=T.fileFromPath,b0=T.isFsReadStream}class q0{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function Dw({manuallyImported:T}={}){let S=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",$,f,M,F;try{$=fetch,f=Request,M=Response,F=Headers}catch(J){throw new Error(`this environment is missing the following Web Fetch API type: ${J.message}. ${S}`)}return{kind:"web",fetch:$,Request:f,Response:M,Headers:F,FormData:typeof FormData!=="undefined"?FormData:class J{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${S}`)}},Blob:typeof Blob!=="undefined"?Blob:class J{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${S}`)}},File:typeof File!=="undefined"?File:class J{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${S}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class J{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${S}`)}},getMultipartRequestOptions:async(J,W)=>({...W,body:new q0(J)}),getDefaultAgent:(J)=>{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:(J)=>!1}}import{ReadStream as DK}from"fs";function _w(){let T=Dw();function S($){return $ instanceof DK}return{...T,isFsReadStream:S}}if(!Wf)Hw(_w(),{auto:!0});class $T extends Error{}class tT extends $T{constructor(T,S,$,f){super(`${tT.makeMessage(T,S,$)}`);this.status=T,this.headers=f,this.request_id=f?.["x-request-id"],this.error=S;let M=S;this.code=M?.code,this.param=M?.param,this.type=M?.type}static makeMessage(T,S,$){let f=S?.message?typeof S.message==="string"?S.message:JSON.stringify(S.message):S?JSON.stringify(S):$;if(T&&f)return`${T} ${f}`;if(T)return`${T} status code (no body)`;if(f)return f;return"(no status code or body)"}static generate(T,S,$,f){if(!T||!f)return new Af({message:$,cause:bJ(S)});let M=S?.error;if(T===400)return new BJ(T,M,$,f);if(T===401)return new LJ(T,M,$,f);if(T===403)return new NJ(T,M,$,f);if(T===404)return new CJ(T,M,$,f);if(T===409)return new IJ(T,M,$,f);if(T===422)return new jJ(T,M,$,f);if(T===429)return new xJ(T,M,$,f);if(T>=500)return new ZJ(T,M,$,f);return new tT(T,M,$,f)}}class fS extends tT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class Af extends tT{constructor({message:T,cause:S}){super(void 0,void 0,T||"Connection error.",void 0);if(S)this.cause=S}}class wf extends Af{constructor({message:T}={}){super({message:T??"Request timed out."})}}class BJ extends tT{}class LJ extends tT{}class NJ extends tT{}class CJ extends tT{}class IJ extends tT{}class jJ extends tT{}class xJ extends tT{}class ZJ extends tT{}class sM extends $T{constructor(){super("Could not parse response content as the length limit was reached")}}class eM extends $T{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class p${constructor(){this.buffer=[],this.trailingCR=!1}decode(T){let S=this.decodeText(T);if(this.trailingCR)S="\r"+S,this.trailingCR=!1;if(S.endsWith("\r"))this.trailingCR=!0,S=S.slice(0,-1);if(!S)return[];let $=p$.NEWLINE_CHARS.has(S[S.length-1]||""),f=S.split(p$.NEWLINE_REGEXP);if($)f.pop();if(f.length===1&&!$)return this.buffer.push(f[0]),[];if(this.buffer.length>0)f=[this.buffer.join("")+f[0],...f.slice(1)],this.buffer=[];if(!$)this.buffer=[f.pop()||""];return f}decodeText(T){if(T==null)return"";if(typeof T==="string")return T;if(typeof Buffer!=="undefined"){if(T instanceof Buffer)return T.toString();if(T instanceof Uint8Array)return Buffer.from(T).toString();throw new $T(`Unexpected: received non-Uint8Array (${T.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder!=="undefined"){if(T instanceof Uint8Array||T instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(T);throw new $T(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new $T("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length&&!this.trailingCR)return[];let T=[this.buffer.join("")];return this.buffer=[],this.trailingCR=!1,T}}p$.NEWLINE_CHARS=new Set([`
|
|
19
|
-
`,"\r"]);
|
|
20
|
-
`);f.enqueue(J)}catch(M){f.error(M)}},async cancel(){await
|
|
21
|
-
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],M}if(this.chunks.push(T),T.startsWith(":"))return null;let[S,$,f]=VK(T,":");if(f.startsWith(" "))f=f.substring(1);if(S==="event")this.event=f;else if(S==="data")this.data.push(f);return null}}function VK(T,S){let $=T.indexOf(S);if($!==-1)return[T.substring(0,$),S,T.substring($+S.length)];return[T,"",""]}var Qw=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",Uw=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&TF(T),TF=(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",BK=(T)=>{return Uw(T)||Qw(T)||b0(T)};async function P0(T,S,$){if(T=await T,Uw(T))return T;if(Qw(T)){let M=await T.blob();S||(S=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let F=TF(M)?[await M.arrayBuffer()]:[M];return new UJ(F,S,$)}let f=await LK(T);if(S||(S=CK(T)??"unknown_file"),!$?.type){let M=f[0]?.type;if(typeof M==="string")$={...$,type:M}}return new UJ(f,S,$)}async function LK(T){let S=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)S.push(T);else if(TF(T))S.push(await T.arrayBuffer());else if(IK(T))for await(let $ of T)S.push($);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${NK(T)}`);return S}function NK(T){return`[${Object.getOwnPropertyNames(T).map(($)=>`"${$}"`).join(", ")}]`}function CK(T){return h0(T.name)||h0(T.filename)||h0(T.path)?.split(/[\\/]/).pop()}var h0=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},IK=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",n0=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var cS=async(T)=>{let S=await Vw(T.body);return x0(S,T)},Vw=async(T)=>{let S=new I0;return await Promise.all(Object.entries(T||{}).map(([$,f])=>v0(S,$,f))),S};var v0=async(T,S,$)=>{if($===void 0)return;if($==null)throw new TypeError(`Received null for "${S}"; to pass null in FormData, you must use the string 'null'`);if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")T.append(S,String($));else if(BK($)){let f=await P0($);T.append(S,f)}else if(Array.isArray($))await Promise.all($.map((f)=>v0(T,S+"[]",f)));else if(typeof $==="object")await Promise.all(Object.entries($).map(([f,M])=>v0(T,`${S}[${f}]`,M)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${$} instead`)};var xK=function(T,S,$,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof S==="function"?T!==S||!M:!S.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,$):M?M.value=$:S.set(T,$),$},ZK=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},qJ;async function xw(T){let{response:S}=T;if(T.options.stream){if(TM("response",S.status,S.url,S.headers,S.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse(S,T.controller);return jS.fromSSEResponse(S,T.controller)}if(S.status===204)return null;if(T.options.__binaryResponse)return S;let $=S.headers.get("content-type");if($?.includes("application/json")||$?.includes("application/vnd.api+json")){let F=await S.json();return TM("response",S.status,S.url,S.headers,F),Zw(F,S)}let M=await S.text();return TM("response",S.status,S.url,S.headers,M),M}function Zw(T,S){if(!T||typeof T!=="object"||Array.isArray(T))return T;return Object.defineProperty(T,"_request_id",{value:S.headers.get("x-request-id"),enumerable:!1})}class mJ extends Promise{constructor(T,S=xw){super(($)=>{$(null)});this.responsePromise=T,this.parseResponse=S}_thenUnwrap(T){return new mJ(this.responsePromise,async(S)=>Zw(T(await this.parseResponse(S),S),S.response))}asResponse(){return this.responsePromise.then((T)=>T.response)}async withResponse(){let[T,S]=await Promise.all([this.parse(),this.asResponse()]);return{data:T,response:S,request_id:S.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(T,S){return this.parse().then(T,S)}catch(T){return this.parse().catch(T)}finally(T){return this.parse().finally(T)}}class o0{constructor({baseURL:T,maxRetries:S=2,timeout:$=600000,httpAgent:f,fetch:M}){this.baseURL=T,this.maxRetries=c0("maxRetries",S),this.timeout=c0("timeout",$),this.httpAgent=f,this.fetch=M??C0}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...vK(),...this.authHeaders(T)}}validateHeaders(T,S){}defaultIdempotencyKey(){return`stainless-node-retry-${oK()}`}get(T,S){return this.methodRequest("get",T,S)}post(T,S){return this.methodRequest("post",T,S)}patch(T,S){return this.methodRequest("patch",T,S)}put(T,S){return this.methodRequest("put",T,S)}delete(T,S){return this.methodRequest("delete",T,S)}methodRequest(T,S,$){return this.request(Promise.resolve($).then(async(f)=>{let M=f&&TF(f?.body)?new DataView(await f.body.arrayBuffer()):f?.body instanceof DataView?f.body:f?.body instanceof ArrayBuffer?new DataView(f.body):f&&ArrayBuffer.isView(f?.body)?new DataView(f.body.buffer):f?.body;return{method:T,path:S,...f,body:M}}))}getAPIList(T,S,$){return this.requestAPIList(S,{method:"get",path:T,...$})}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:S=0}={}){let{method:$,path:f,query:M,headers:F={}}=T,J=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:n0(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,W=this.calculateContentLength(J),A=this.buildURL(f,M);if("timeout"in T)c0("timeout",T.timeout);let w=T.timeout??this.timeout,X=T.httpAgent??this.httpAgent??Z0(A),Y=w+1000;if(typeof X?.options?.timeout==="number"&&Y>(X.options.timeout??0))X.options.timeout=Y;if(this.idempotencyHeader&&$!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=T.idempotencyKey}let k=this.buildHeaders({options:T,headers:F,contentLength:W,retryCount:S});return{req:{method:$,...J&&{body:J},headers:k,...X&&{agent:X},signal:T.signal??null},url:A,timeout:w}}buildHeaders({options:T,headers:S,contentLength:$,retryCount:f}){let M={};if($)M["content-length"]=$;let F=this.defaultHeaders(T);if(Cw(M,F),Cw(M,S),n0(T.body)&&Wf!=="node")delete M["content-type"];if(jw(F,"x-stainless-retry-count")===void 0&&jw(S,"x-stainless-retry-count")===void 0)M["x-stainless-retry-count"]=String(f);return this.validateHeaders(M,S),M}async prepareOptions(T){}async prepareRequest(T,{url:S,options:$}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map((S)=>[...S])):{...T}}makeStatusError(T,S,$,f){return tT.generate(T,S,$,f)}request(T,S=null){return new mJ(this.makeRequest(T,S))}async makeRequest(T,S){let $=await T,f=$.maxRetries??this.maxRetries;if(S==null)S=f;await this.prepareOptions($);let{req:M,url:F,timeout:J}=this.buildRequest($,{retryCount:f-S});if(await this.prepareRequest(M,{url:F,options:$}),TM("request",F,$,M.headers),$.signal?.aborted)throw new fS;let W=new AbortController,A=await this.fetchWithTimeout(F,M,J,W).catch(bJ);if(A instanceof Error){if($.signal?.aborted)throw new fS;if(S)return this.retryRequest($,S);if(A.name==="AbortError")throw new wf;throw new Af({cause:A})}let w=bK(A.headers);if(!A.ok){if(S&&this.shouldRetry(A)){let Q=`retrying, ${S} attempts remaining`;return TM(`response (error; ${Q})`,A.status,F,w),this.retryRequest($,S,w)}let X=await A.text().catch((Q)=>bJ(Q).message),Y=PK(X),k=Y?void 0:X;throw TM(`response (error; ${S?"(error; no more retries left)":"(error; not retryable)"})`,A.status,F,w,k),this.makeStatusError(A.status,Y,k,w)}return{response:A,options:$,controller:W}}requestAPIList(T,S){let $=this.makeRequest(S,null);return new bw(this,$,T)}buildURL(T,S){let $=cK(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),f=this.defaultQuery();if(!qw(f))S={...f,...S};if(typeof S==="object"&&S&&!Array.isArray(S))$.search=this.stringifyQuery(S);return $.toString()}stringifyQuery(T){return Object.entries(T).filter(([S,$])=>typeof $!=="undefined").map(([S,$])=>{if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")return`${encodeURIComponent(S)}=${encodeURIComponent($)}`;if($===null)return`${encodeURIComponent(S)}=`;throw new $T(`Cannot stringify type ${typeof $}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,S,$,f){let{signal:M,...F}=S||{};if(M)M.addEventListener("abort",()=>f.abort());let J=setTimeout(()=>f.abort(),$),W={signal:f.signal,...F};if(W.method)W.method=W.method.toUpperCase();return this.fetch.call(void 0,T,W).finally(()=>{clearTimeout(J)})}shouldRetry(T){let S=T.headers.get("x-should-retry");if(S==="true")return!0;if(S==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,S,$){let f,M=$?.["retry-after-ms"];if(M){let J=parseFloat(M);if(!Number.isNaN(J))f=J}let F=$?.["retry-after"];if(F&&!f){let J=parseFloat(F);if(!Number.isNaN(J))f=J*1000;else f=Date.parse(F)-Date.now()}if(!(f&&0<=f&&f<60000)){let J=T.maxRetries??this.maxRetries;f=this.calculateDefaultRetryTimeoutMillis(S,J)}return await U$(f),this.makeRequest(T,S-1)}calculateDefaultRetryTimeoutMillis(T,S){let M=S-T,F=Math.min(0.5*Math.pow(2,M),8),J=1-Math.random()*0.25;return F*J*1000}getUserAgent(){return`${this.constructor.name}/JS ${Jf}`}}class hJ{constructor(T,S,$,f){qJ.set(this,void 0),xK(this,qJ,T,"f"),this.options=f,this.response=S,this.body=$}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new $T("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let S={...this.options};if("params"in T&&typeof S.query==="object")S.query={...S.query,...T.params};else if("url"in T){let $=[...Object.entries(S.query||{}),...T.url.searchParams.entries()];for(let[f,M]of $)T.url.searchParams.set(f,M);S.query=void 0,S.path=T.url.toString()}return await ZK(this,qJ,"f").requestAPIList(this.constructor,S)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(qJ=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let S of T.getPaginatedItems())yield S}}class bw extends mJ{constructor(T,S,$){super(S,async(f)=>new $(T,f.response,await xw(f),f.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let S of T)yield S}}var bK=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get(S,$){let f=$.toString();return S[f.toLowerCase()]||S[f]}})},qK={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},BT=(T)=>{return typeof T==="object"&&T!==null&&!qw(T)&&Object.keys(T).every((S)=>mw(qK,S))},mK=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Jf,"X-Stainless-OS":Lw(Deno.build.os),"X-Stainless-Arch":Bw(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":Jf,"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":Jf,"X-Stainless-OS":Lw(process.platform),"X-Stainless-Arch":Bw(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=hK();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Jf,"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":Jf,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function hK(){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:S,pattern:$}of T){let f=$.exec(navigator.userAgent);if(f){let M=f[1]||0,F=f[2]||0,J=f[3]||0;return{browser:S,version:`${M}.${F}.${J}`}}}return null}var Bw=(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"},Lw=(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"},Nw,vK=()=>{return Nw??(Nw=mK())},PK=(T)=>{try{return JSON.parse(T)}catch(S){return}},nK=/^[a-z][a-z0-9+.-]*:/i,cK=(T)=>{return nK.test(T)},U$=(T)=>new Promise((S)=>setTimeout(S,T)),c0=(T,S)=>{if(typeof S!=="number"||!Number.isInteger(S))throw new $T(`${T} must be an integer`);if(S<0)throw new $T(`${T} must be a positive integer`);return S},bJ=(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 SF=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function qw(T){if(!T)return!0;for(let S in T)return!1;return!0}function mw(T,S){return Object.prototype.hasOwnProperty.call(T,S)}function Cw(T,S){for(let $ in S){if(!mw(S,$))continue;let f=$.toLowerCase();if(!f)continue;let M=S[$];if(M===null)delete T[f];else if(M!==void 0)T[f]=M}}var Iw=new Set(["authorization","api-key"]);function TM(T,...S){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let $=S.map((f)=>{if(!f)return f;if(f.headers){let F={...f,headers:{...f.headers}};for(let J in f.headers)if(Iw.has(J.toLowerCase()))F.headers[J]="REDACTED";return F}let M=null;for(let F in f)if(Iw.has(F.toLowerCase()))M??(M={...f}),M[F]="REDACTED";return M??f});console.log(`OpenAI:DEBUG:${T}`,...$)}}var oK=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let S=Math.random()*16|0;return(T==="x"?S:S&3|8).toString(16)})},hw=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},gK=(T)=>{return typeof T?.get==="function"};var jw=(T,S)=>{let $=S.toLowerCase();if(gK(T)){let f=S[0]?.toUpperCase()+S.substring(1).replace(/([^\w])(\w)/g,(M,F,J)=>F+J.toUpperCase());for(let M of[S,$,S.toUpperCase(),f]){let F=T.get(M);if(F)return F}}for(let[f,M]of Object.entries(T))if(f.toLowerCase()===$){if(Array.isArray(M)){if(M.length<=1)return M[0];return console.warn(`Received ${M.length} entries for the ${S} header, using the first entry.`),M[0]}return M}return};function $F(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class g0 extends hJ{constructor(T,S,$,f){super(T,S,$,f);this.data=$.data||[],this.object=$.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class vT extends hJ{constructor(T,S,$,f){super(T,S,$,f);this.data=$.data||[]}getPaginatedItems(){return this.data??[]}nextPageParams(){let T=this.nextPageInfo();if(!T)return null;if("params"in T)return T.params;let S=Object.fromEntries(T.url.searchParams);if(!Object.keys(S).length)return null;return S}nextPageInfo(){let T=this.getPaginatedItems();if(!T.length)return null;let S=T[T.length-1]?.id;if(!S)return null;return{params:{after:S}}}}class p{constructor(T){this._client=T}}class fF extends p{create(T,S){return this._client.post("/chat/completions",{body:T,...S,stream:T.stream??!1})}}class Yf extends p{constructor(){super(...arguments);this.completions=new fF(this._client)}}Yf.Completions=fF;class MF extends p{create(T,S){return this._client.post("/audio/speech",{body:T,...S,headers:{Accept:"application/octet-stream",...S?.headers},__binaryResponse:!0})}}class FF extends p{create(T,S){return this._client.post("/audio/transcriptions",cS({body:T,...S}))}}class JF extends p{create(T,S){return this._client.post("/audio/translations",cS({body:T,...S}))}}class V$ extends p{constructor(){super(...arguments);this.transcriptions=new FF(this._client),this.translations=new JF(this._client),this.speech=new MF(this._client)}}V$.Transcriptions=FF;V$.Translations=JF;V$.Speech=MF;class kf extends p{create(T,S){return this._client.post("/batches",{body:T,...S})}retrieve(T,S){return this._client.get(`/batches/${T}`,S)}list(T={},S){if(BT(T))return this.list({},T);return this._client.getAPIList("/batches",SM,{query:T,...S})}cancel(T,S){return this._client.post(`/batches/${T}/cancel`,S)}}class SM extends vT{}kf.BatchesPage=SM;class $M extends p{create(T,S){return this._client.post("/assistants",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,S){return this._client.get(`/assistants/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,S,$){return this._client.post(`/assistants/${T}`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}list(T={},S){if(BT(T))return this.list({},T);return this._client.getAPIList("/assistants",WF,{query:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,S){return this._client.delete(`/assistants/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class WF extends vT{}$M.AssistantsPage=WF;function t0(T){return typeof T.parse==="function"}var i$=(T)=>{return T?.role==="assistant"},p0=(T)=>{return T?.role==="function"},i0=(T)=>{return T?.role==="tool"};var S$=function(T,S,$,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof S==="function"?T!==S||!M:!S.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,$):M?M.value=$:S.set(T,$),$},mT=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},u0,vJ,PJ,AF,wF,nJ,XF,B$,YF,cJ,oJ,fM,vw;class kF{constructor(){u0.add(this),this.controller=new AbortController,vJ.set(this,void 0),PJ.set(this,()=>{}),AF.set(this,()=>{}),wF.set(this,void 0),nJ.set(this,()=>{}),XF.set(this,()=>{}),B$.set(this,{}),YF.set(this,!1),cJ.set(this,!1),oJ.set(this,!1),fM.set(this,!1),S$(this,vJ,new Promise((T,S)=>{S$(this,PJ,T,"f"),S$(this,AF,S,"f")}),"f"),S$(this,wF,new Promise((T,S)=>{S$(this,nJ,T,"f"),S$(this,XF,S,"f")}),"f"),mT(this,vJ,"f").catch(()=>{}),mT(this,wF,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},mT(this,u0,"m",vw).bind(this))},0)}_connected(){if(this.ended)return;mT(this,PJ,"f").call(this),this._emit("connect")}get ended(){return mT(this,YF,"f")}get errored(){return mT(this,cJ,"f")}get aborted(){return mT(this,oJ,"f")}abort(){this.controller.abort()}on(T,S){return(mT(this,B$,"f")[T]||(mT(this,B$,"f")[T]=[])).push({listener:S}),this}off(T,S){let $=mT(this,B$,"f")[T];if(!$)return this;let f=$.findIndex((M)=>M.listener===S);if(f>=0)$.splice(f,1);return this}once(T,S){return(mT(this,B$,"f")[T]||(mT(this,B$,"f")[T]=[])).push({listener:S,once:!0}),this}emitted(T){return new Promise((S,$)=>{if(S$(this,fM,!0,"f"),T!=="error")this.once("error",$);this.once(T,S)})}async done(){S$(this,fM,!0,"f"),await mT(this,wF,"f")}_emit(T,...S){if(mT(this,YF,"f"))return;if(T==="end")S$(this,YF,!0,"f"),mT(this,nJ,"f").call(this);let $=mT(this,B$,"f")[T];if($)mT(this,B$,"f")[T]=$.filter((f)=>!f.once),$.forEach(({listener:f})=>f(...S));if(T==="abort"){let f=S[0];if(!mT(this,fM,"f")&&!$?.length)Promise.reject(f);mT(this,AF,"f").call(this,f),mT(this,XF,"f").call(this,f),this._emit("end");return}if(T==="error"){let f=S[0];if(!mT(this,fM,"f")&&!$?.length)Promise.reject(f);mT(this,AF,"f").call(this,f),mT(this,XF,"f").call(this,f),this._emit("end")}}_emitFinal(){}}vJ=new WeakMap,PJ=new WeakMap,AF=new WeakMap,wF=new WeakMap,nJ=new WeakMap,XF=new WeakMap,B$=new WeakMap,YF=new WeakMap,cJ=new WeakMap,oJ=new WeakMap,fM=new WeakMap,u0=new WeakSet,vw=function T(S){if(S$(this,cJ,!0,"f"),S instanceof Error&&S.name==="AbortError")S=new fS;if(S instanceof fS)return S$(this,oJ,!0,"f"),this._emit("abort",S);if(S instanceof $T)return this._emit("error",S);if(S instanceof Error){let $=new $T(S.message);return $.cause=S,this._emit("error",$)}return this._emit("error",new $T(String(S)))};function d0(T){return T?.$brand==="auto-parseable-response-format"}function Kf(T){return T?.$brand==="auto-parseable-tool"}function Pw(T,S){if(!S||!l0(S))return{...T,choices:T.choices.map(($)=>({...$,message:{...$.message,parsed:null,tool_calls:$.message.tool_calls??[]}}))};return KF(T,S)}function KF(T,S){let $=T.choices.map((f)=>{if(f.finish_reason==="length")throw new sM;if(f.finish_reason==="content_filter")throw new eM;return{...f,message:{...f.message,tool_calls:f.message.tool_calls?.map((M)=>rK(S,M))??[],parsed:f.message.content&&!f.message.refusal?lK(S,f.message.content):null}}});return{...T,choices:$}}function lK(T,S){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(S);return JSON.parse(S)}return null}function rK(T,S){let $=T.tools?.find((f)=>f.function?.name===S.function.name);return{...S,function:{...S.function,parsed_arguments:Kf($)?$.$parseRaw(S.function.arguments):$?.function.strict?JSON.parse(S.function.arguments):null}}}function nw(T,S){if(!T)return!1;let $=T.tools?.find((f)=>f.function?.name===S.function.name);return Kf($)||$?.function.strict||!1}function l0(T){if(d0(T.response_format))return!0;return T.tools?.some((S)=>Kf(S)||S.type==="function"&&S.function.strict===!0)??!1}function cw(T){for(let S of T??[]){if(S.type!=="function")throw new $T(`Currently only \`function\` tool types support auto-parsing; Received \`${S.type}\``);if(S.function.strict!==!0)throw new $T(`The \`${S.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var VS=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},OS,r0,gJ,a0,s0,e0,gw,T1,ow=10;class OF extends kF{constructor(){super(...arguments);OS.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(T){this._chatCompletions.push(T),this._emit("chatCompletion",T);let S=T.choices[0]?.message;if(S)this._addMessage(S);return T}_addMessage(T,S=!0){if(!("content"in T))T.content=null;if(this.messages.push(T),S){if(this._emit("message",T),(p0(T)||i0(T))&&T.content)this._emit("functionCallResult",T.content);else if(i$(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(i$(T)&&T.tool_calls){for(let $ of T.tool_calls)if($.type==="function")this._emit("functionCall",$.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new $T("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),VS(this,OS,"m",r0).call(this)}async finalMessage(){return await this.done(),VS(this,OS,"m",gJ).call(this)}async finalFunctionCall(){return await this.done(),VS(this,OS,"m",a0).call(this)}async finalFunctionCallResult(){return await this.done(),VS(this,OS,"m",s0).call(this)}async totalUsage(){return await this.done(),VS(this,OS,"m",e0).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let S=VS(this,OS,"m",gJ).call(this);if(S)this._emit("finalMessage",S);let $=VS(this,OS,"m",r0).call(this);if($)this._emit("finalContent",$);let f=VS(this,OS,"m",a0).call(this);if(f)this._emit("finalFunctionCall",f);let M=VS(this,OS,"m",s0).call(this);if(M!=null)this._emit("finalFunctionCallResult",M);if(this._chatCompletions.some((F)=>F.usage))this._emit("totalUsage",VS(this,OS,"m",e0).call(this))}async _createChatCompletion(T,S,$){let f=$?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}VS(this,OS,"m",gw).call(this,S);let M=await T.chat.completions.create({...S,stream:!1},{...$,signal:this.controller.signal});return this._connected(),this._addChatCompletion(KF(M,S))}async _runChatCompletion(T,S,$){for(let f of S.messages)this._addMessage(f,!1);return await this._createChatCompletion(T,S,$)}async _runFunctions(T,S,$){let{function_call:M="auto",stream:F,...J}=S,W=typeof M!=="string"&&M?.name,{maxChatCompletions:A=ow}=$||{},w={};for(let Y of S.functions)w[Y.name||Y.function.name]=Y;let X=S.functions.map((Y)=>({name:Y.name||Y.function.name,parameters:Y.parameters,description:Y.description}));for(let Y of S.messages)this._addMessage(Y,!1);for(let Y=0;Y<A;++Y){let R=(await this._createChatCompletion(T,{...J,function_call:M,functions:X,messages:[...this.messages]},$)).choices[0]?.message;if(!R)throw new $T("missing message in ChatCompletion response");if(!R.function_call)return;let{name:z,arguments:Q}=R.function_call,D=w[z];if(!D){let Z=`Invalid function_call: ${JSON.stringify(z)}. Available options are: ${X.map((_)=>JSON.stringify(_.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:z,content:Z});continue}else if(W&&W!==z){let Z=`Invalid function_call: ${JSON.stringify(z)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"function",name:z,content:Z});continue}let N;try{N=t0(D)?await D.parse(Q):Q}catch(Z){this._addMessage({role:"function",name:z,content:Z instanceof Error?Z.message:String(Z)});continue}let V=await D.function(N,this),L=VS(this,OS,"m",T1).call(this,V);if(this._addMessage({role:"function",name:z,content:L}),W)return}}async _runTools(T,S,$){let{tool_choice:M="auto",stream:F,...J}=S,W=typeof M!=="string"&&M?.function?.name,{maxChatCompletions:A=ow}=$||{},w=S.tools.map((k)=>{if(Kf(k)){if(!k.$callback)throw new $T("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:k.$callback,name:k.function.name,description:k.function.description||"",parameters:k.function.parameters,parse:k.$parseRaw,strict:!0}}}return k}),X={};for(let k of w)if(k.type==="function")X[k.function.name||k.function.function.name]=k.function;let Y="tools"in S?w.map((k)=>k.type==="function"?{type:"function",function:{name:k.function.name||k.function.function.name,parameters:k.function.parameters,description:k.function.description,strict:k.function.strict}}:k):void 0;for(let k of S.messages)this._addMessage(k,!1);for(let k=0;k<A;++k){let z=(await this._createChatCompletion(T,{...J,tool_choice:M,tools:Y,messages:[...this.messages]},$)).choices[0]?.message;if(!z)throw new $T("missing message in ChatCompletion response");if(!z.tool_calls?.length)return;for(let Q of z.tool_calls){if(Q.type!=="function")continue;let D=Q.id,{name:N,arguments:V}=Q.function,L=X[N];if(!L){let B=`Invalid tool_call: ${JSON.stringify(N)}. Available options are: ${Object.keys(X).map((q)=>JSON.stringify(q)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:D,content:B});continue}else if(W&&W!==N){let B=`Invalid tool_call: ${JSON.stringify(N)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:D,content:B});continue}let Z;try{Z=t0(L)?await L.parse(V):V}catch(B){let q=B instanceof Error?B.message:String(B);this._addMessage({role:"tool",tool_call_id:D,content:q});continue}let _=await L.function(Z,this),E=VS(this,OS,"m",T1).call(this,_);if(this._addMessage({role:"tool",tool_call_id:D,content:E}),W)return}}return}}OS=new WeakSet,r0=function T(){return VS(this,OS,"m",gJ).call(this).content??null},gJ=function T(){let S=this.messages.length;while(S-- >0){let $=this.messages[S];if(i$($)){let{function_call:f,...M}=$,F={...M,content:$.content??null,refusal:$.refusal??null};if(f)F.function_call=f;return F}}throw new $T("stream ended without producing a ChatCompletionMessage with role=assistant")},a0=function T(){for(let S=this.messages.length-1;S>=0;S--){let $=this.messages[S];if(i$($)&&$?.function_call)return $.function_call;if(i$($)&&$?.tool_calls?.length)return $.tool_calls.at(-1)?.function}return},s0=function T(){for(let S=this.messages.length-1;S>=0;S--){let $=this.messages[S];if(p0($)&&$.content!=null)return $.content;if(i0($)&&$.content!=null&&typeof $.content==="string"&&this.messages.some((f)=>f.role==="assistant"&&f.tool_calls?.some((M)=>M.type==="function"&&M.id===$.tool_call_id)))return $.content}return},e0=function T(){let S={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:$}of this._chatCompletions)if($)S.completion_tokens+=$.completion_tokens,S.prompt_tokens+=$.prompt_tokens,S.total_tokens+=$.total_tokens;return S},gw=function T(S){if(S.n!=null&&S.n>1)throw new $T("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},T1=function T(S){return typeof S==="string"?S:S===void 0?"undefined":JSON.stringify(S)};class MM extends OF{static runFunctions(T,S,$){let f=new MM,M={...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return f._run(()=>f._runFunctions(T,S,M)),f}static runTools(T,S,$){let f=new MM,M={...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"runTools"}};return f._run(()=>f._runTools(T,S,M)),f}_addMessage(T,S=!0){if(super._addMessage(T,S),i$(T)&&T.content)this._emit("content",T.content)}}var TS={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 tw extends Error{}class pw extends Error{}function aK(T,S=TS.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return sK(T.trim(),S)}var sK=(T,S)=>{let $=T.length,f=0,M=(k)=>{throw new tw(`${k} at position ${f}`)},F=(k)=>{throw new pw(`${k} at position ${f}`)},J=()=>{if(Y(),f>=$)M("Unexpected end of input");if(T[f]==='"')return W();if(T[f]==="{")return A();if(T[f]==="[")return w();if(T.substring(f,f+4)==="null"||TS.NULL&S&&$-f<4&&"null".startsWith(T.substring(f)))return f+=4,null;if(T.substring(f,f+4)==="true"||TS.BOOL&S&&$-f<4&&"true".startsWith(T.substring(f)))return f+=4,!0;if(T.substring(f,f+5)==="false"||TS.BOOL&S&&$-f<5&&"false".startsWith(T.substring(f)))return f+=5,!1;if(T.substring(f,f+8)==="Infinity"||TS.INFINITY&S&&$-f<8&&"Infinity".startsWith(T.substring(f)))return f+=8,1/0;if(T.substring(f,f+9)==="-Infinity"||TS.MINUS_INFINITY&S&&1<$-f&&$-f<9&&"-Infinity".startsWith(T.substring(f)))return f+=9,-1/0;if(T.substring(f,f+3)==="NaN"||TS.NAN&S&&$-f<3&&"NaN".startsWith(T.substring(f)))return f+=3,NaN;return X()},W=()=>{let k=f,R=!1;f++;while(f<$&&(T[f]!=='"'||R&&T[f-1]==="\\"))R=T[f]==="\\"?!R:!1,f++;if(T.charAt(f)=='"')try{return JSON.parse(T.substring(k,++f-Number(R)))}catch(z){F(String(z))}else if(TS.STR&S)try{return JSON.parse(T.substring(k,f-Number(R))+'"')}catch(z){return JSON.parse(T.substring(k,T.lastIndexOf("\\"))+'"')}M("Unterminated string literal")},A=()=>{f++,Y();let k={};try{while(T[f]!=="}"){if(Y(),f>=$&&TS.OBJ&S)return k;let R=W();Y(),f++;try{let z=J();Object.defineProperty(k,R,{value:z,writable:!0,enumerable:!0,configurable:!0})}catch(z){if(TS.OBJ&S)return k;else throw z}if(Y(),T[f]===",")f++}}catch(R){if(TS.OBJ&S)return k;else M("Expected '}' at end of object")}return f++,k},w=()=>{f++;let k=[];try{while(T[f]!=="]")if(k.push(J()),Y(),T[f]===",")f++}catch(R){if(TS.ARR&S)return k;M("Expected ']' at end of array")}return f++,k},X=()=>{if(f===0){if(T==="-"&&TS.NUM&S)M("Not sure what '-' is");try{return JSON.parse(T)}catch(R){if(TS.NUM&S)try{if(T[T.length-1]===".")return JSON.parse(T.substring(0,T.lastIndexOf(".")));return JSON.parse(T.substring(0,T.lastIndexOf("e")))}catch(z){}F(String(R))}}let k=f;if(T[f]==="-")f++;while(T[f]&&!",]}".includes(T[f]))f++;if(f==$&&!(TS.NUM&S))M("Unterminated number literal");try{return JSON.parse(T.substring(k,f))}catch(R){if(T.substring(k,f)==="-"&&TS.NUM&S)M("Not sure what '-' is");try{return JSON.parse(T.substring(k,T.lastIndexOf("e")))}catch(z){F(String(z))}}},Y=()=>{while(f<$&&`
|
|
22
|
-
\r `.includes(T[f]))f++};return J()}
|
|
23
|
-
${iJ(T)}`);if(E==null)throw new
|
|
24
|
-
${iJ(T)}`);if(G==null)throw new
|
|
25
|
-
${iJ(T)}`);if(v==null)throw new
|
|
26
|
-
${iJ(T)}`);return{...q,id:B,type:E,function:{...o,name:G,arguments:v}}})}};return{...R,message:{...N,content:z,role:V,refusal:w.refusal??null},finish_reason:X,index:Y,logprobs:k}}),created:M,model:F,object:"chat.completion",...J?{system_fingerprint:J}:{}};return Pw(A,S)}function iJ(T){return JSON.stringify(T)}function uw(T){return}function dw(T){}class yf extends Of{static fromReadableStream(T){let S=new yf(null);return S._run(()=>S._fromReadableStream(T)),S}static runFunctions(T,S,$){let f=new yf(null),M={...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return f._run(()=>f._runFunctions(T,S,M)),f}static runTools(T,S,$){let f=new yf(S),M={...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"runTools"}};return f._run(()=>f._runTools(T,S,M)),f}}class uJ extends p{parse(T,S){return cw(T.tools),this._client.chat.completions.create(T,{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap(($)=>KF($,T))}runFunctions(T,S){if(T.stream)return yf.runFunctions(this._client,T,S);return MM.runFunctions(this._client,T,S)}runTools(T,S){if(T.stream)return yf.runTools(this._client,T,S);return MM.runTools(this._client,T,S)}stream(T,S){return Of.createChatCompletion(this._client,T,S)}}class yF extends p{constructor(){super(...arguments);this.completions=new uJ(this._client)}}(function(T){T.Completions=uJ})(yF||(yF={}));class GF extends p{create(T,S){return this._client.post("/realtime/sessions",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class WM extends p{constructor(){super(...arguments);this.sessions=new GF(this._client)}}WM.Sessions=GF;var d=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},xS=function(T,S,$,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof S==="function"?T!==S||!M:!S.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,$):M?M.value=$:S.set(T,$),$},MS,W1,K$,dJ,$$,Rf,AM,Gf,aJ,ZS,lJ,rJ,HF,RF,zF,lw,rw,aw,sw,ew,TX,SX;class bS extends kF{constructor(){super(...arguments);MS.add(this),W1.set(this,[]),K$.set(this,{}),dJ.set(this,{}),$$.set(this,void 0),Rf.set(this,void 0),AM.set(this,void 0),Gf.set(this,void 0),aJ.set(this,void 0),ZS.set(this,void 0),lJ.set(this,void 0),rJ.set(this,void 0),HF.set(this,void 0)}[(W1=new WeakMap,K$=new WeakMap,dJ=new WeakMap,$$=new WeakMap,Rf=new WeakMap,AM=new WeakMap,Gf=new WeakMap,aJ=new WeakMap,ZS=new WeakMap,lJ=new WeakMap,rJ=new WeakMap,HF=new WeakMap,MS=new WeakSet,Symbol.asyncIterator)](){let T=[],S=[],$=!1;return this.on("event",(f)=>{let M=S.shift();if(M)M.resolve(f);else T.push(f)}),this.on("end",()=>{$=!0;for(let f of S)f.resolve(void 0);S.length=0}),this.on("abort",(f)=>{$=!0;for(let M of S)M.reject(f);S.length=0}),this.on("error",(f)=>{$=!0;for(let M of S)M.reject(f);S.length=0}),{next:async()=>{if(!T.length){if($)return{value:void 0,done:!0};return new Promise((M,F)=>S.push({resolve:M,reject:F})).then((M)=>M?{value:M,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 S=new bS;return S._run(()=>S._fromReadableStream(T)),S}async _fromReadableStream(T,S){let $=S?.signal;if($){if($.aborted)this.controller.abort();$.addEventListener("abort",()=>this.controller.abort())}this._connected();let f=jS.fromReadableStream(T,this.controller);for await(let M of f)d(this,MS,"m",RF).call(this,M);if(f.controller.signal?.aborted)throw new fS;return this._addRun(d(this,MS,"m",zF).call(this))}toReadableStream(){return new jS(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,S,$,f,M){let F=new bS;return F._run(()=>F._runToolAssistantStream(T,S,$,f,{...M,headers:{...M?.headers,"X-Stainless-Helper-Method":"stream"}})),F}async _createToolAssistantStream(T,S,$,f,M){let F=M?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let J={...f,stream:!0},W=await T.submitToolOutputs(S,$,J,{...M,signal:this.controller.signal});this._connected();for await(let A of W)d(this,MS,"m",RF).call(this,A);if(W.controller.signal?.aborted)throw new fS;return this._addRun(d(this,MS,"m",zF).call(this))}static createThreadAssistantStream(T,S,$){let f=new bS;return f._run(()=>f._threadAssistantStream(T,S,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"stream"}})),f}static createAssistantStream(T,S,$,f){let M=new bS;return M._run(()=>M._runAssistantStream(T,S,$,{...f,headers:{...f?.headers,"X-Stainless-Helper-Method":"stream"}})),M}currentEvent(){return d(this,lJ,"f")}currentRun(){return d(this,rJ,"f")}currentMessageSnapshot(){return d(this,$$,"f")}currentRunStepSnapshot(){return d(this,HF,"f")}async finalRunSteps(){return await this.done(),Object.values(d(this,K$,"f"))}async finalMessages(){return await this.done(),Object.values(d(this,dJ,"f"))}async finalRun(){if(await this.done(),!d(this,Rf,"f"))throw Error("Final run was not received.");return d(this,Rf,"f")}async _createThreadAssistantStream(T,S,$){let f=$?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}let M={...S,stream:!0},F=await T.createAndRun(M,{...$,signal:this.controller.signal});this._connected();for await(let J of F)d(this,MS,"m",RF).call(this,J);if(F.controller.signal?.aborted)throw new fS;return this._addRun(d(this,MS,"m",zF).call(this))}async _createAssistantStream(T,S,$,f){let M=f?.signal;if(M){if(M.aborted)this.controller.abort();M.addEventListener("abort",()=>this.controller.abort())}let F={...$,stream:!0},J=await T.create(S,F,{...f,signal:this.controller.signal});this._connected();for await(let W of J)d(this,MS,"m",RF).call(this,W);if(J.controller.signal?.aborted)throw new fS;return this._addRun(d(this,MS,"m",zF).call(this))}static accumulateDelta(T,S){for(let[$,f]of Object.entries(S)){if(!T.hasOwnProperty($)){T[$]=f;continue}let M=T[$];if(M===null||M===void 0){T[$]=f;continue}if($==="index"||$==="type"){T[$]=f;continue}if(typeof M==="string"&&typeof f==="string")M+=f;else if(typeof M==="number"&&typeof f==="number")M+=f;else if($F(M)&&$F(f))M=this.accumulateDelta(M,f);else if(Array.isArray(M)&&Array.isArray(f)){if(M.every((F)=>typeof F==="string"||typeof F==="number")){M.push(...f);continue}for(let F of f){if(!$F(F))throw new Error(`Expected array delta entry to be an object but got: ${F}`);let J=F.index;if(J==null)throw console.error(F),new Error("Expected array delta entry to have an `index` property");if(typeof J!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${J}`);let W=M[J];if(W==null)M.push(F);else M[J]=this.accumulateDelta(W,F)}continue}else throw Error(`Unhandled record type: ${$}, deltaValue: ${f}, accValue: ${M}`);T[$]=M}return T}_addRun(T){return T}async _threadAssistantStream(T,S,$){return await this._createThreadAssistantStream(S,T,$)}async _runAssistantStream(T,S,$,f){return await this._createAssistantStream(S,T,$,f)}async _runToolAssistantStream(T,S,$,f,M){return await this._createToolAssistantStream($,T,S,f,M)}}RF=function T(S){if(this.ended)return;switch(xS(this,lJ,S,"f"),d(this,MS,"m",aw).call(this,S),S.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.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":d(this,MS,"m",SX).call(this,S);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":d(this,MS,"m",rw).call(this,S);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":d(this,MS,"m",lw).call(this,S);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},zF=function T(){if(this.ended)throw new $T("stream has ended, this shouldn't happen");if(!d(this,Rf,"f"))throw Error("Final run has not been received");return d(this,Rf,"f")},lw=function T(S){let[$,f]=d(this,MS,"m",ew).call(this,S,d(this,$$,"f"));xS(this,$$,$,"f"),d(this,dJ,"f")[$.id]=$;for(let M of f){let F=$.content[M.index];if(F?.type=="text")this._emit("textCreated",F.text)}switch(S.event){case"thread.message.created":this._emit("messageCreated",S.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",S.data.delta,$),S.data.delta.content)for(let M of S.data.delta.content){if(M.type=="text"&&M.text){let F=M.text,J=$.content[M.index];if(J&&J.type=="text")this._emit("textDelta",F,J.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(M.index!=d(this,AM,"f")){if(d(this,Gf,"f"))switch(d(this,Gf,"f").type){case"text":this._emit("textDone",d(this,Gf,"f").text,d(this,$$,"f"));break;case"image_file":this._emit("imageFileDone",d(this,Gf,"f").image_file,d(this,$$,"f"));break}xS(this,AM,M.index,"f")}xS(this,Gf,$.content[M.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(d(this,AM,"f")!==void 0){let M=S.data.content[d(this,AM,"f")];if(M)switch(M.type){case"image_file":this._emit("imageFileDone",M.image_file,d(this,$$,"f"));break;case"text":this._emit("textDone",M.text,d(this,$$,"f"));break}}if(d(this,$$,"f"))this._emit("messageDone",S.data);xS(this,$$,void 0,"f")}},rw=function T(S){let $=d(this,MS,"m",sw).call(this,S);switch(xS(this,HF,$,"f"),S.event){case"thread.run.step.created":this._emit("runStepCreated",S.data);break;case"thread.run.step.delta":let f=S.data.delta;if(f.step_details&&f.step_details.type=="tool_calls"&&f.step_details.tool_calls&&$.step_details.type=="tool_calls")for(let F of f.step_details.tool_calls)if(F.index==d(this,aJ,"f"))this._emit("toolCallDelta",F,$.step_details.tool_calls[F.index]);else{if(d(this,ZS,"f"))this._emit("toolCallDone",d(this,ZS,"f"));if(xS(this,aJ,F.index,"f"),xS(this,ZS,$.step_details.tool_calls[F.index],"f"),d(this,ZS,"f"))this._emit("toolCallCreated",d(this,ZS,"f"))}this._emit("runStepDelta",S.data.delta,$);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(xS(this,HF,void 0,"f"),S.data.step_details.type=="tool_calls"){if(d(this,ZS,"f"))this._emit("toolCallDone",d(this,ZS,"f")),xS(this,ZS,void 0,"f")}this._emit("runStepDone",S.data,$);break;case"thread.run.step.in_progress":break}},aw=function T(S){d(this,W1,"f").push(S),this._emit("event",S)},sw=function T(S){switch(S.event){case"thread.run.step.created":return d(this,K$,"f")[S.data.id]=S.data,S.data;case"thread.run.step.delta":let $=d(this,K$,"f")[S.data.id];if(!$)throw Error("Received a RunStepDelta before creation of a snapshot");let f=S.data;if(f.delta){let M=bS.accumulateDelta($,f.delta);d(this,K$,"f")[S.data.id]=M}return d(this,K$,"f")[S.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":d(this,K$,"f")[S.data.id]=S.data;break}if(d(this,K$,"f")[S.data.id])return d(this,K$,"f")[S.data.id];throw new Error("No snapshot available")},ew=function T(S,$){let f=[];switch(S.event){case"thread.message.created":return[S.data,f];case"thread.message.delta":if(!$)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let M=S.data;if(M.delta.content)for(let F of M.delta.content)if(F.index in $.content){let J=$.content[F.index];$.content[F.index]=d(this,MS,"m",TX).call(this,F,J)}else $.content[F.index]=F,f.push(F);return[$,f];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if($)return[$,f];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},TX=function T(S,$){return bS.accumulateDelta($,S)},SX=function T(S){switch(xS(this,rJ,S.data,"f"),S.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(xS(this,Rf,S.data,"f"),d(this,ZS,"f"))this._emit("toolCallDone",d(this,ZS,"f")),xS(this,ZS,void 0,"f");break;case"thread.run.cancelling":break}};class wM extends p{create(T,S,$){return this._client.post(`/threads/${T}/messages`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,S,$){return this._client.get(`/threads/${T}/messages/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,S,$,f){return this._client.post(`/threads/${T}/messages/${S}`,{body:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}list(T,S={},$){if(BT(S))return this.list(T,{},S);return this._client.getAPIList(`/threads/${T}/messages`,DF,{query:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,S,$){return this._client.delete(`/threads/${T}/messages/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class DF extends vT{}wM.MessagesPage=DF;class XM extends p{retrieve(T,S,$,f={},M){if(BT(f))return this.retrieve(T,S,$,{},f);return this._client.get(`/threads/${T}/runs/${S}/steps/${$}`,{query:f,...M,headers:{"OpenAI-Beta":"assistants=v2",...M?.headers}})}list(T,S,$={},f){if(BT($))return this.list(T,S,{},$);return this._client.getAPIList(`/threads/${T}/runs/${S}/steps`,_F,{query:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}}class _F extends vT{}XM.RunStepsPage=_F;class d$ extends p{constructor(){super(...arguments);this.steps=new XM(this._client)}create(T,S,$){let{include:f,...M}=S;return this._client.post(`/threads/${T}/runs`,{query:{include:f},body:M,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:S.stream??!1})}retrieve(T,S,$){return this._client.get(`/threads/${T}/runs/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,S,$,f){return this._client.post(`/threads/${T}/runs/${S}`,{body:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}list(T,S={},$){if(BT(S))return this.list(T,{},S);return this._client.getAPIList(`/threads/${T}/runs`,EF,{query:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}cancel(T,S,$){return this._client.post(`/threads/${T}/runs/${S}/cancel`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}async createAndPoll(T,S,$){let f=await this.create(T,S,$);return await this.poll(T,f.id,$)}createAndStream(T,S,$){return bS.createAssistantStream(T,this._client.beta.threads.runs,S,$)}async poll(T,S,$){let f={...$?.headers,"X-Stainless-Poll-Helper":"true"};if($?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=$.pollIntervalMs.toString();while(!0){let{data:M,response:F}=await this.retrieve(T,S,{...$,headers:{...$?.headers,...f}}).withResponse();switch(M.status){case"queued":case"in_progress":case"cancelling":let J=5000;if($?.pollIntervalMs)J=$.pollIntervalMs;else{let W=F.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))J=A}}await U$(J);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return M}}}stream(T,S,$){return bS.createAssistantStream(T,this._client.beta.threads.runs,S,$)}submitToolOutputs(T,S,$,f){return this._client.post(`/threads/${T}/runs/${S}/submit_tool_outputs`,{body:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers},stream:$.stream??!1})}async submitToolOutputsAndPoll(T,S,$,f){let M=await this.submitToolOutputs(T,S,$,f);return await this.poll(T,M.id,f)}submitToolOutputsStream(T,S,$,f){return bS.createToolAssistantStream(T,S,this._client.beta.threads.runs,$,f)}}class EF extends vT{}d$.RunsPage=EF;d$.Steps=XM;d$.RunStepsPage=_F;class N$ extends p{constructor(){super(...arguments);this.runs=new d$(this._client),this.messages=new wM(this._client)}create(T={},S){if(BT(T))return this.create({},T);return this._client.post("/threads",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,S){return this._client.get(`/threads/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,S,$){return this._client.post(`/threads/${T}`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,S){return this._client.delete(`/threads/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}createAndRun(T,S){return this._client.post("/threads/runs",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers},stream:T.stream??!1})}async createAndRunPoll(T,S){let $=await this.createAndRun(T,S);return await this.runs.poll($.thread_id,$.id,S)}createAndRunStream(T,S){return bS.createThreadAssistantStream(T,this._client.beta.threads,S)}}N$.Runs=d$;N$.RunsPage=EF;N$.Messages=wM;N$.MessagesPage=DF;var $X=async(T)=>{let S=await Promise.allSettled(T),$=S.filter((M)=>M.status==="rejected");if($.length){for(let M of $)console.error(M.reason);throw new Error(`${$.length} promise(s) failed - see the above errors`)}let f=[];for(let M of S)if(M.status==="fulfilled")f.push(M.value);return f};class YM extends p{create(T,S,$){return this._client.post(`/vector_stores/${T}/files`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,S,$){return this._client.get(`/vector_stores/${T}/files/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}list(T,S={},$){if(BT(S))return this.list(T,{},S);return this._client.getAPIList(`/vector_stores/${T}/files`,zf,{query:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,S,$){return this._client.delete(`/vector_stores/${T}/files/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}async createAndPoll(T,S,$){let f=await this.create(T,S,$);return await this.poll(T,f.id,$)}async poll(T,S,$){let f={...$?.headers,"X-Stainless-Poll-Helper":"true"};if($?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=$.pollIntervalMs.toString();while(!0){let M=await this.retrieve(T,S,{...$,headers:f}).withResponse(),F=M.data;switch(F.status){case"in_progress":let J=5000;if($?.pollIntervalMs)J=$.pollIntervalMs;else{let W=M.response.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))J=A}}await U$(J);break;case"failed":case"completed":return F}}}async upload(T,S,$){let f=await this._client.files.create({file:S,purpose:"assistants"},$);return this.create(T,{file_id:f.id},$)}async uploadAndPoll(T,S,$){let f=await this.upload(T,S,$);return await this.poll(T,f.id,$)}}class zf extends vT{}YM.VectorStoreFilesPage=zf;class QF extends p{create(T,S,$){return this._client.post(`/vector_stores/${T}/file_batches`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,S,$){return this._client.get(`/vector_stores/${T}/file_batches/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}cancel(T,S,$){return this._client.post(`/vector_stores/${T}/file_batches/${S}/cancel`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}async createAndPoll(T,S,$){let f=await this.create(T,S);return await this.poll(T,f.id,$)}listFiles(T,S,$={},f){if(BT($))return this.listFiles(T,S,{},$);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${S}/files`,zf,{query:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}async poll(T,S,$){let f={...$?.headers,"X-Stainless-Poll-Helper":"true"};if($?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=$.pollIntervalMs.toString();while(!0){let{data:M,response:F}=await this.retrieve(T,S,{...$,headers:f}).withResponse();switch(M.status){case"in_progress":let J=5000;if($?.pollIntervalMs)J=$.pollIntervalMs;else{let W=F.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))J=A}}await U$(J);break;case"failed":case"cancelled":case"completed":return M}}}async uploadAndPoll(T,{files:S,fileIds:$=[]},f){if(S==null||S.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let M=f?.maxConcurrency??5,F=Math.min(M,S.length),J=this._client,W=S.values(),A=[...$];async function w(Y){for(let k of Y){let R=await J.files.create({file:k,purpose:"assistants"},f);A.push(R.id)}}let X=Array(F).fill(W).map(w);return await $X(X),await this.createAndPoll(T,{file_ids:A})}}class C$ extends p{constructor(){super(...arguments);this.files=new YM(this._client),this.fileBatches=new QF(this._client)}create(T,S){return this._client.post("/vector_stores",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,S){return this._client.get(`/vector_stores/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,S,$){return this._client.post(`/vector_stores/${T}`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}list(T={},S){if(BT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",UF,{query:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,S){return this._client.delete(`/vector_stores/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class UF extends vT{}C$.VectorStoresPage=UF;C$.Files=YM;C$.VectorStoreFilesPage=zf;C$.FileBatches=QF;class oS extends p{constructor(){super(...arguments);this.realtime=new WM(this._client),this.vectorStores=new C$(this._client),this.chat=new yF(this._client),this.assistants=new $M(this._client),this.threads=new N$(this._client)}}oS.Realtime=WM;oS.VectorStores=C$;oS.VectorStoresPage=UF;oS.Assistants=$M;oS.AssistantsPage=WF;oS.Threads=N$;class kM extends p{create(T,S){return this._client.post("/completions",{body:T,...S,stream:T.stream??!1})}}class KM extends p{create(T,S){return this._client.post("/embeddings",{body:T,...S})}}class Hf extends p{create(T,S){return this._client.post("/files",cS({body:T,...S}))}retrieve(T,S){return this._client.get(`/files/${T}`,S)}list(T={},S){if(BT(T))return this.list({},T);return this._client.getAPIList("/files",OM,{query:T,...S})}del(T,S){return this._client.delete(`/files/${T}`,S)}content(T,S){return this._client.get(`/files/${T}/content`,{...S,headers:{Accept:"application/binary",...S?.headers},__binaryResponse:!0})}retrieveContent(T,S){return this._client.get(`/files/${T}/content`,S)}async waitForProcessing(T,{pollInterval:S=5000,maxWait:$=1800000}={}){let f=new Set(["processed","error","deleted"]),M=Date.now(),F=await this.retrieve(T);while(!F.status||!f.has(F.status))if(await U$(S),F=await this.retrieve(T),Date.now()-M>$)throw new wf({message:`Giving up on waiting for file ${T} to finish processing after ${$} milliseconds.`});return F}}class OM extends vT{}Hf.FileObjectsPage=OM;class yM extends p{list(T,S={},$){if(BT(S))return this.list(T,{},S);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,VF,{query:S,...$})}}class VF extends vT{}yM.FineTuningJobCheckpointsPage=VF;class I$ extends p{constructor(){super(...arguments);this.checkpoints=new yM(this._client)}create(T,S){return this._client.post("/fine_tuning/jobs",{body:T,...S})}retrieve(T,S){return this._client.get(`/fine_tuning/jobs/${T}`,S)}list(T={},S){if(BT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",BF,{query:T,...S})}cancel(T,S){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,S)}listEvents(T,S={},$){if(BT(S))return this.listEvents(T,{},S);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,LF,{query:S,...$})}}class BF extends vT{}class LF extends vT{}I$.FineTuningJobsPage=BF;I$.FineTuningJobEventsPage=LF;I$.Checkpoints=yM;I$.FineTuningJobCheckpointsPage=VF;class j$ extends p{constructor(){super(...arguments);this.jobs=new I$(this._client)}}j$.Jobs=I$;j$.FineTuningJobsPage=BF;j$.FineTuningJobEventsPage=LF;class GM extends p{createVariation(T,S){return this._client.post("/images/variations",cS({body:T,...S}))}edit(T,S){return this._client.post("/images/edits",cS({body:T,...S}))}generate(T,S){return this._client.post("/images/generations",{body:T,...S})}}class Df extends p{retrieve(T,S){return this._client.get(`/models/${T}`,S)}list(T){return this._client.getAPIList("/models",RM,T)}del(T,S){return this._client.delete(`/models/${T}`,S)}}class RM extends g0{}Df.ModelsPage=RM;class zM extends p{create(T,S){return this._client.post("/moderations",{body:T,...S})}}class NF extends p{create(T,S,$){return this._client.post(`/uploads/${T}/parts`,cS({body:S,...$}))}}class _f extends p{constructor(){super(...arguments);this.parts=new NF(this._client)}create(T,S){return this._client.post("/uploads",{body:T,...S})}cancel(T,S){return this._client.post(`/uploads/${T}/cancel`,S)}complete(T,S,$){return this._client.post(`/uploads/${T}/complete`,{body:S,...$})}}_f.Parts=NF;var fX;class kT extends o0{constructor({baseURL:T=SF("OPENAI_BASE_URL"),apiKey:S=SF("OPENAI_API_KEY"),organization:$=SF("OPENAI_ORG_ID")??null,project:f=SF("OPENAI_PROJECT_ID")??null,...M}={}){if(S===void 0)throw new $T("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let F={apiKey:S,organization:$,project:f,...M,baseURL:T||"https://api.openai.com/v1"};if(!F.dangerouslyAllowBrowser&&hw())throw new $T(`It looks like you're running in a browser-like environment.
|
|
17
|
+
`,Y.error.toString()),X.push({response:w,error:Y.error})}return $?.error(`safegen was unable to generate well-formed data after ${A} failed attempts.`),M}}}function Yw(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
|
|
18
|
+
`)}var EJ="RFC3986",QJ={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},kw="RFC1738";var AK=Array.isArray,YS=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var V0=1024,Kw=(T,$,S,f,M)=>{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(S==="iso-8859-1")return escape(F).replace(/%u[0-9a-f]{4}/gi,function(W){return"%26%23"+parseInt(W.slice(2),16)+"%3B"});let J="";for(let W=0;W<F.length;W+=V0){let A=F.length>=V0?F.slice(W,W+V0):F,w=[];for(let X=0;X<A.length;++X){let Y=A.charCodeAt(X);if(Y===45||Y===46||Y===95||Y===126||Y>=48&&Y<=57||Y>=65&&Y<=90||Y>=97&&Y<=122||M===kw&&(Y===40||Y===41)){w[w.length]=A.charAt(X);continue}if(Y<128){w[w.length]=YS[Y];continue}if(Y<2048){w[w.length]=YS[192|Y>>6]+YS[128|Y&63];continue}if(Y<55296||Y>=57344){w[w.length]=YS[224|Y>>12]+YS[128|Y>>6&63]+YS[128|Y&63];continue}X+=1,Y=65536+((Y&1023)<<10|A.charCodeAt(X)&1023),w[w.length]=YS[240|Y>>18]+YS[128|Y>>12&63]+YS[128|Y>>6&63]+YS[128|Y&63]}J+=w.join("")}return J};function Ow(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function B0(T,$){if(AK(T)){let S=[];for(let f=0;f<T.length;f+=1)S.push($(T[f]));return S}return $(T)}var wK=Object.prototype.hasOwnProperty,yw={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},kS=Array.isArray,XK=Array.prototype.push,Gw=function(T,$){XK.apply(T,kS($)?$:[$])},YK=Date.prototype.toISOString,rT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Kw,encodeValuesOnly:!1,format:EJ,formatter:QJ[EJ],indices:!1,serializeDate(T){return YK.call(T)},skipNulls:!1,strictNullHandling:!1};function kK(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var L0={};function Rw(T,$,S,f,M,F,J,W,A,w,X,Y,k,R,z,Q,D,N){let V=T,L=N,Z=0,_=!1;while((L=L.get(L0))!==void 0&&!_){let G=L.get(T);if(Z+=1,typeof G!=="undefined")if(G===Z)throw new RangeError("Cyclic object value");else _=!0;if(typeof L.get(L0)==="undefined")Z=0}if(typeof w==="function")V=w($,V);else if(V instanceof Date)V=k?.(V);else if(S==="comma"&&kS(V))V=B0(V,function(G){if(G instanceof Date)return k?.(G);return G});if(V===null){if(F)return A&&!Q?A($,rT.encoder,D,"key",R):$;V=""}if(kK(V)||Ow(V)){if(A){let G=Q?$:A($,rT.encoder,D,"key",R);return[z?.(G)+"="+z?.(A(V,rT.encoder,D,"value",R))]}return[z?.($)+"="+z?.(String(V))]}let E=[];if(typeof V==="undefined")return E;let B;if(S==="comma"&&kS(V)){if(Q&&A)V=B0(V,A);B=[{value:V.length>0?V.join(",")||null:void 0}]}else if(kS(w))B=w;else{let G=Object.keys(V);B=X?G.sort(X):G}let q=W?String($).replace(/\./g,"%2E"):String($),v=f&&kS(V)&&V.length===1?q+"[]":q;if(M&&kS(V)&&V.length===0)return v+"[]";for(let G=0;G<B.length;++G){let o=B[G],n=typeof o==="object"&&typeof o.value!=="undefined"?o.value:V[o];if(J&&n===null)continue;let u=Y&&W?o.replace(/\./g,"%2E"):o,yT=kS(V)?typeof S==="function"?S(v,u):v:v+(Y?"."+u:"["+u+"]");N.set(T,Z);let zT=new WeakMap;zT.set(L0,N),Gw(E,Rw(n,yT,S,f,M,F,J,W,S==="comma"&&Q&&kS(V)?null:A,w,X,Y,k,R,z,Q,D,zT))}return E}function KK(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 S=EJ;if(typeof T.format!=="undefined"){if(!wK.call(QJ,T.format))throw new TypeError("Unknown format option provided.");S=T.format}let f=QJ[S],M=rT.filter;if(typeof T.filter==="function"||kS(T.filter))M=T.filter;let F;if(T.arrayFormat&&T.arrayFormat in yw)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 J=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:rT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:rT.addQueryPrefix,allowDots:J,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:M,format:S,formatter:f,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 N0(T,$={}){let S=T,f=KK($),M,F;if(typeof f.filter==="function")F=f.filter,S=F("",S);else if(kS(f.filter))F=f.filter,M=F;let J=[];if(typeof S!=="object"||S===null)return"";let W=yw[f.arrayFormat],A=W==="comma"&&f.commaRoundTrip;if(!M)M=Object.keys(S);if(f.sort)M.sort(f.sort);let w=new WeakMap;for(let k=0;k<M.length;++k){let R=M[k];if(f.skipNulls&&S[R]===null)continue;Gw(J,Rw(S[R],R,W,A,f.allowEmptyArrays,f.strictNullHandling,f.skipNulls,f.encodeDotInKeys,f.encode?f.encoder:null,f.filter,f.sort,f.allowDots,f.serializeDate,f.format,f.formatter,f.encodeValuesOnly,f.charset,w))}let X=J.join(f.delimiter),Y=f.addQueryPrefix===!0?"?":"";if(f.charsetSentinel)if(f.charset==="iso-8859-1")Y+="utf8=%26%2310003%3B&";else Y+="utf8=%E2%9C%93&";return X.length>0?Y+X:""}var Jf="4.82.0";var zw=!1,Wf=void 0,C0=void 0,yK=void 0,GK=void 0,RK=void 0,I0=void 0,zK=void 0,UJ=void 0,j0=void 0,x0=void 0,Z0=void 0,VJ=void 0,b0=void 0;function Hw(T,$={auto:!1}){if(zw)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(Wf)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${Wf}'\``);zw=$.auto,Wf=T.kind,C0=T.fetch,yK=T.Request,GK=T.Response,RK=T.Headers,I0=T.FormData,zK=T.Blob,UJ=T.File,j0=T.ReadableStream,x0=T.getMultipartRequestOptions,Z0=T.getDefaultAgent,VJ=T.fileFromPath,b0=T.isFsReadStream}class q0{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function Dw({manuallyImported:T}={}){let $=T?"You may need to use polyfills":"Add one of these imports before your first `import \u2026 from 'openai'`:\n- `import 'openai/shims/node'` (if you're running on Node)\n- `import 'openai/shims/web'` (otherwise)\n",S,f,M,F;try{S=fetch,f=Request,M=Response,F=Headers}catch(J){throw new Error(`this environment is missing the following Web Fetch API type: ${J.message}. ${$}`)}return{kind:"web",fetch:S,Request:f,Response:M,Headers:F,FormData:typeof FormData!=="undefined"?FormData:class J{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class J{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class J{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class J{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(J,W)=>({...W,body:new q0(J)}),getDefaultAgent:(J)=>{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:(J)=>!1}}import{ReadStream as DK}from"fs";function _w(){let T=Dw();function $(S){return S instanceof DK}return{...T,isFsReadStream:$}}if(!Wf)Hw(_w(),{auto:!0});class ST extends Error{}class tT extends ST{constructor(T,$,S,f){super(`${tT.makeMessage(T,$,S)}`);this.status=T,this.headers=f,this.request_id=f?.["x-request-id"],this.error=$;let M=$;this.code=M?.code,this.param=M?.param,this.type=M?.type}static makeMessage(T,$,S){let f=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):S;if(T&&f)return`${T} ${f}`;if(T)return`${T} status code (no body)`;if(f)return f;return"(no status code or body)"}static generate(T,$,S,f){if(!T||!f)return new Af({message:S,cause:bJ($)});let M=$?.error;if(T===400)return new BJ(T,M,S,f);if(T===401)return new LJ(T,M,S,f);if(T===403)return new NJ(T,M,S,f);if(T===404)return new CJ(T,M,S,f);if(T===409)return new IJ(T,M,S,f);if(T===422)return new jJ(T,M,S,f);if(T===429)return new xJ(T,M,S,f);if(T>=500)return new ZJ(T,M,S,f);return new tT(T,M,S,f)}}class f$ extends tT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class Af extends tT{constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class wf extends Af{constructor({message:T}={}){super({message:T??"Request timed out."})}}class BJ extends tT{}class LJ extends tT{}class NJ extends tT{}class CJ extends tT{}class IJ extends tT{}class jJ extends tT{}class xJ extends tT{}class ZJ extends tT{}class sM extends ST{constructor(){super("Could not parse response content as the length limit was reached")}}class eM extends ST{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class pS{constructor(){this.buffer=[],this.trailingCR=!1}decode(T){let $=this.decodeText(T);if(this.trailingCR)$="\r"+$,this.trailingCR=!1;if($.endsWith("\r"))this.trailingCR=!0,$=$.slice(0,-1);if(!$)return[];let S=pS.NEWLINE_CHARS.has($[$.length-1]||""),f=$.split(pS.NEWLINE_REGEXP);if(S)f.pop();if(f.length===1&&!S)return this.buffer.push(f[0]),[];if(this.buffer.length>0)f=[this.buffer.join("")+f[0],...f.slice(1)],this.buffer=[];if(!S)this.buffer=[f.pop()||""];return f}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 ST(`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 ST(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new ST("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length&&!this.trailingCR)return[];let T=[this.buffer.join("")];return this.buffer=[],this.trailingCR=!1,T}}pS.NEWLINE_CHARS=new Set([`
|
|
19
|
+
`,"\r"]);pS.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function m0(T){if(T[Symbol.asyncIterator])return T;let $=T.getReader();return{async next(){try{let S=await $.read();if(S?.done)$.releaseLock();return S}catch(S){throw $.releaseLock(),S}},async return(){let S=$.cancel();return $.releaseLock(),await S,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}class j${constructor(T,$){this.iterator=T,this.controller=$}static fromSSEResponse(T,$){let S=!1;async function*f(){if(S)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");S=!0;let M=!1;try{for await(let F of EK(T,$)){if(M)continue;if(F.data.startsWith("[DONE]")){M=!0;continue}if(F.event===null){let J;try{J=JSON.parse(F.data)}catch(W){throw console.error("Could not parse message into JSON:",F.data),console.error("From chunk:",F.raw),W}if(J&&J.error)throw new tT(void 0,J.error,void 0,void 0);yield J}else{let J;try{J=JSON.parse(F.data)}catch(W){throw console.error("Could not parse message into JSON:",F.data),console.error("From chunk:",F.raw),W}if(F.event=="error")throw new tT(void 0,J.error,J.message,void 0);yield{event:F.event,data:J}}}M=!0}catch(F){if(F instanceof Error&&F.name==="AbortError")return;throw F}finally{if(!M)$.abort()}}return new j$(f,$)}static fromReadableStream(T,$){let S=!1;async function*f(){let F=new pS,J=m0(T);for await(let W of J)for(let A of F.decode(W))yield A;for(let W of F.flush())yield W}async function*M(){if(S)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");S=!0;let F=!1;try{for await(let J of f()){if(F)continue;if(J)yield JSON.parse(J)}F=!0}catch(J){if(J instanceof Error&&J.name==="AbortError")return;throw J}finally{if(!F)$.abort()}}return new j$(M,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],S=this.iterator(),f=(M)=>{return{next:()=>{if(M.length===0){let F=S.next();T.push(F),$.push(F)}return M.shift()}}};return[new j$(()=>f(T),this.controller),new j$(()=>f($),this.controller)]}toReadableStream(){let T=this,$,S=new TextEncoder;return new j0({async start(){$=T[Symbol.asyncIterator]()},async pull(f){try{let{value:M,done:F}=await $.next();if(F)return f.close();let J=S.encode(JSON.stringify(M)+`
|
|
20
|
+
`);f.enqueue(J)}catch(M){f.error(M)}},async cancel(){await $.return?.()}})}}async function*EK(T,$){if(!T.body)throw $.abort(),new ST("Attempted to iterate over a response with no body");let S=new Ew,f=new pS,M=m0(T.body);for await(let F of QK(M))for(let J of f.decode(F)){let W=S.decode(J);if(W)yield W}for(let F of f.flush()){let J=S.decode(F);if(J)yield J}}async function*QK(T){let $=new Uint8Array;for await(let S of T){if(S==null)continue;let f=S instanceof ArrayBuffer?new Uint8Array(S):typeof S==="string"?new TextEncoder().encode(S):S,M=new Uint8Array($.length+f.length);M.set($),M.set(f,$.length),$=M;let F;while((F=UK($))!==-1)yield $.slice(0,F),$=$.slice(F)}if($.length>0)yield $}function UK(T){for(let f=0;f<T.length-2;f++){if(T[f]===10&&T[f+1]===10)return f+2;if(T[f]===13&&T[f+1]===13)return f+2;if(T[f]===13&&T[f+1]===10&&f+3<T.length&&T[f+2]===13&&T[f+3]===10)return f+4}return-1}class Ew{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 M={event:this.event,data:this.data.join(`
|
|
21
|
+
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],M}if(this.chunks.push(T),T.startsWith(":"))return null;let[$,S,f]=VK(T,":");if(f.startsWith(" "))f=f.substring(1);if($==="event")this.event=f;else if($==="data")this.data.push(f);return null}}function VK(T,$){let S=T.indexOf($);if(S!==-1)return[T.substring(0,S),$,T.substring(S+$.length)];return[T,"",""]}var Qw=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",Uw=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&TF(T),TF=(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",BK=(T)=>{return Uw(T)||Qw(T)||b0(T)};async function P0(T,$,S){if(T=await T,Uw(T))return T;if(Qw(T)){let M=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let F=TF(M)?[await M.arrayBuffer()]:[M];return new UJ(F,$,S)}let f=await LK(T);if($||($=CK(T)??"unknown_file"),!S?.type){let M=f[0]?.type;if(typeof M==="string")S={...S,type:M}}return new UJ(f,$,S)}async function LK(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(TF(T))$.push(await T.arrayBuffer());else if(IK(T))for await(let S of T)$.push(S);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${NK(T)}`);return $}function NK(T){return`[${Object.getOwnPropertyNames(T).map((S)=>`"${S}"`).join(", ")}]`}function CK(T){return h0(T.name)||h0(T.filename)||h0(T.path)?.split(/[\\/]/).pop()}var h0=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},IK=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",n0=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var c$=async(T)=>{let $=await Vw(T.body);return x0($,T)},Vw=async(T)=>{let $=new I0;return await Promise.all(Object.entries(T||{}).map(([S,f])=>v0($,S,f))),$};var v0=async(T,$,S)=>{if(S===void 0)return;if(S==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof S==="string"||typeof S==="number"||typeof S==="boolean")T.append($,String(S));else if(BK(S)){let f=await P0(S);T.append($,f)}else if(Array.isArray(S))await Promise.all(S.map((f)=>v0(T,$+"[]",f)));else if(typeof S==="object")await Promise.all(Object.entries(S).map(([f,M])=>v0(T,`${$}[${f}]`,M)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${S} instead`)};var xK=function(T,$,S,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!M:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,S):M?M.value=S:$.set(T,S),S},ZK=function(T,$,S,f){if(S==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!f:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?f:S==="a"?f.call(T):f?f.value:$.get(T)},qJ;async function xw(T){let{response:$}=T;if(T.options.stream){if(TM("response",$.status,$.url,$.headers,$.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse($,T.controller);return j$.fromSSEResponse($,T.controller)}if($.status===204)return null;if(T.options.__binaryResponse)return $;let S=$.headers.get("content-type");if(S?.includes("application/json")||S?.includes("application/vnd.api+json")){let F=await $.json();return TM("response",$.status,$.url,$.headers,F),Zw(F,$)}let M=await $.text();return TM("response",$.status,$.url,$.headers,M),M}function Zw(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 mJ extends Promise{constructor(T,$=xw){super((S)=>{S(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new mJ(this.responsePromise,async($)=>Zw(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 o0{constructor({baseURL:T,maxRetries:$=2,timeout:S=600000,httpAgent:f,fetch:M}){this.baseURL=T,this.maxRetries=c0("maxRetries",$),this.timeout=c0("timeout",S),this.httpAgent=f,this.fetch=M??C0}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...vK(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${oK()}`}get(T,$){return this.methodRequest("get",T,$)}post(T,$){return this.methodRequest("post",T,$)}patch(T,$){return this.methodRequest("patch",T,$)}put(T,$){return this.methodRequest("put",T,$)}delete(T,$){return this.methodRequest("delete",T,$)}methodRequest(T,$,S){return this.request(Promise.resolve(S).then(async(f)=>{let M=f&&TF(f?.body)?new DataView(await f.body.arrayBuffer()):f?.body instanceof DataView?f.body:f?.body instanceof ArrayBuffer?new DataView(f.body):f&&ArrayBuffer.isView(f?.body)?new DataView(f.body.buffer):f?.body;return{method:T,path:$,...f,body:M}}))}getAPIList(T,$,S){return this.requestAPIList($,{method:"get",path:T,...S})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:$=0}={}){let{method:S,path:f,query:M,headers:F={}}=T,J=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:n0(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,W=this.calculateContentLength(J),A=this.buildURL(f,M);if("timeout"in T)c0("timeout",T.timeout);let w=T.timeout??this.timeout,X=T.httpAgent??this.httpAgent??Z0(A),Y=w+1000;if(typeof X?.options?.timeout==="number"&&Y>(X.options.timeout??0))X.options.timeout=Y;if(this.idempotencyHeader&&S!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=T.idempotencyKey}let k=this.buildHeaders({options:T,headers:F,contentLength:W,retryCount:$});return{req:{method:S,...J&&{body:J},headers:k,...X&&{agent:X},signal:T.signal??null},url:A,timeout:w}}buildHeaders({options:T,headers:$,contentLength:S,retryCount:f}){let M={};if(S)M["content-length"]=S;let F=this.defaultHeaders(T);if(Cw(M,F),Cw(M,$),n0(T.body)&&Wf!=="node")delete M["content-type"];if(jw(F,"x-stainless-retry-count")===void 0&&jw($,"x-stainless-retry-count")===void 0)M["x-stainless-retry-count"]=String(f);return this.validateHeaders(M,$),M}async prepareOptions(T){}async prepareRequest(T,{url:$,options:S}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map(($)=>[...$])):{...T}}makeStatusError(T,$,S,f){return tT.generate(T,$,S,f)}request(T,$=null){return new mJ(this.makeRequest(T,$))}async makeRequest(T,$){let S=await T,f=S.maxRetries??this.maxRetries;if($==null)$=f;await this.prepareOptions(S);let{req:M,url:F,timeout:J}=this.buildRequest(S,{retryCount:f-$});if(await this.prepareRequest(M,{url:F,options:S}),TM("request",F,S,M.headers),S.signal?.aborted)throw new f$;let W=new AbortController,A=await this.fetchWithTimeout(F,M,J,W).catch(bJ);if(A instanceof Error){if(S.signal?.aborted)throw new f$;if($)return this.retryRequest(S,$);if(A.name==="AbortError")throw new wf;throw new Af({cause:A})}let w=bK(A.headers);if(!A.ok){if($&&this.shouldRetry(A)){let Q=`retrying, ${$} attempts remaining`;return TM(`response (error; ${Q})`,A.status,F,w),this.retryRequest(S,$,w)}let X=await A.text().catch((Q)=>bJ(Q).message),Y=PK(X),k=Y?void 0:X;throw TM(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,A.status,F,w,k),this.makeStatusError(A.status,Y,k,w)}return{response:A,options:S,controller:W}}requestAPIList(T,$){let S=this.makeRequest($,null);return new bw(this,S,T)}buildURL(T,$){let S=cK(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),f=this.defaultQuery();if(!qw(f))$={...f,...$};if(typeof $==="object"&&$&&!Array.isArray($))S.search=this.stringifyQuery($);return S.toString()}stringifyQuery(T){return Object.entries(T).filter(([$,S])=>typeof S!=="undefined").map(([$,S])=>{if(typeof S==="string"||typeof S==="number"||typeof S==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(S)}`;if(S===null)return`${encodeURIComponent($)}=`;throw new ST(`Cannot stringify type ${typeof S}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,$,S,f){let{signal:M,...F}=$||{};if(M)M.addEventListener("abort",()=>f.abort());let J=setTimeout(()=>f.abort(),S),W={signal:f.signal,...F};if(W.method)W.method=W.method.toUpperCase();return this.fetch.call(void 0,T,W).finally(()=>{clearTimeout(J)})}shouldRetry(T){let $=T.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,$,S){let f,M=S?.["retry-after-ms"];if(M){let J=parseFloat(M);if(!Number.isNaN(J))f=J}let F=S?.["retry-after"];if(F&&!f){let J=parseFloat(F);if(!Number.isNaN(J))f=J*1000;else f=Date.parse(F)-Date.now()}if(!(f&&0<=f&&f<60000)){let J=T.maxRetries??this.maxRetries;f=this.calculateDefaultRetryTimeoutMillis($,J)}return await US(f),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let M=$-T,F=Math.min(0.5*Math.pow(2,M),8),J=1-Math.random()*0.25;return F*J*1000}getUserAgent(){return`${this.constructor.name}/JS ${Jf}`}}class hJ{constructor(T,$,S,f){qJ.set(this,void 0),xK(this,qJ,T,"f"),this.options=f,this.response=$,this.body=S}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new ST("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let $={...this.options};if("params"in T&&typeof $.query==="object")$.query={...$.query,...T.params};else if("url"in T){let S=[...Object.entries($.query||{}),...T.url.searchParams.entries()];for(let[f,M]of S)T.url.searchParams.set(f,M);$.query=void 0,$.path=T.url.toString()}return await ZK(this,qJ,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(qJ=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class bw extends mJ{constructor(T,$,S){super($,async(f)=>new S(T,f.response,await xw(f),f.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var bK=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,S){let f=S.toString();return $[f.toLowerCase()]||$[f]}})},qK={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},BT=(T)=>{return typeof T==="object"&&T!==null&&!qw(T)&&Object.keys(T).every(($)=>mw(qK,$))},mK=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Jf,"X-Stainless-OS":Lw(Deno.build.os),"X-Stainless-Arch":Bw(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":Jf,"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":Jf,"X-Stainless-OS":Lw(process.platform),"X-Stainless-Arch":Bw(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=hK();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Jf,"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":Jf,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function hK(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:S}of T){let f=S.exec(navigator.userAgent);if(f){let M=f[1]||0,F=f[2]||0,J=f[3]||0;return{browser:$,version:`${M}.${F}.${J}`}}}return null}var Bw=(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"},Lw=(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"},Nw,vK=()=>{return Nw??(Nw=mK())},PK=(T)=>{try{return JSON.parse(T)}catch($){return}},nK=/^[a-z][a-z0-9+.-]*:/i,cK=(T)=>{return nK.test(T)},US=(T)=>new Promise(($)=>setTimeout($,T)),c0=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new ST(`${T} must be an integer`);if($<0)throw new ST(`${T} must be a positive integer`);return $},bJ=(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 $F=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function qw(T){if(!T)return!0;for(let $ in T)return!1;return!0}function mw(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function Cw(T,$){for(let S in $){if(!mw($,S))continue;let f=S.toLowerCase();if(!f)continue;let M=$[S];if(M===null)delete T[f];else if(M!==void 0)T[f]=M}}var Iw=new Set(["authorization","api-key"]);function TM(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let S=$.map((f)=>{if(!f)return f;if(f.headers){let F={...f,headers:{...f.headers}};for(let J in f.headers)if(Iw.has(J.toLowerCase()))F.headers[J]="REDACTED";return F}let M=null;for(let F in f)if(Iw.has(F.toLowerCase()))M??(M={...f}),M[F]="REDACTED";return M??f});console.log(`OpenAI:DEBUG:${T}`,...S)}}var oK=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},hw=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},gK=(T)=>{return typeof T?.get==="function"};var jw=(T,$)=>{let S=$.toLowerCase();if(gK(T)){let f=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(M,F,J)=>F+J.toUpperCase());for(let M of[$,S,$.toUpperCase(),f]){let F=T.get(M);if(F)return F}}for(let[f,M]of Object.entries(T))if(f.toLowerCase()===S){if(Array.isArray(M)){if(M.length<=1)return M[0];return console.warn(`Received ${M.length} entries for the ${$} header, using the first entry.`),M[0]}return M}return};function SF(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class g0 extends hJ{constructor(T,$,S,f){super(T,$,S,f);this.data=S.data||[],this.object=S.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class vT extends hJ{constructor(T,$,S,f){super(T,$,S,f);this.data=S.data||[]}getPaginatedItems(){return this.data??[]}nextPageParams(){let T=this.nextPageInfo();if(!T)return null;if("params"in T)return T.params;let $=Object.fromEntries(T.url.searchParams);if(!Object.keys($).length)return null;return $}nextPageInfo(){let T=this.getPaginatedItems();if(!T.length)return null;let $=T[T.length-1]?.id;if(!$)return null;return{params:{after:$}}}}class p{constructor(T){this._client=T}}class fF extends p{create(T,$){return this._client.post("/chat/completions",{body:T,...$,stream:T.stream??!1})}}class Yf extends p{constructor(){super(...arguments);this.completions=new fF(this._client)}}Yf.Completions=fF;class MF extends p{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class FF extends p{create(T,$){return this._client.post("/audio/transcriptions",c$({body:T,...$}))}}class JF extends p{create(T,$){return this._client.post("/audio/translations",c$({body:T,...$}))}}class VS extends p{constructor(){super(...arguments);this.transcriptions=new FF(this._client),this.translations=new JF(this._client),this.speech=new MF(this._client)}}VS.Transcriptions=FF;VS.Translations=JF;VS.Speech=MF;class kf extends p{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(BT(T))return this.list({},T);return this._client.getAPIList("/batches",$M,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class $M extends vT{}kf.BatchesPage=$M;class SM extends p{create(T,$){return this._client.post("/assistants",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,S){return this._client.post(`/assistants/${T}`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T={},$){if(BT(T))return this.list({},T);return this._client.getAPIList("/assistants",WF,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class WF extends vT{}SM.AssistantsPage=WF;function t0(T){return typeof T.parse==="function"}var iS=(T)=>{return T?.role==="assistant"},p0=(T)=>{return T?.role==="function"},i0=(T)=>{return T?.role==="tool"};var $S=function(T,$,S,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!M:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,S):M?M.value=S:$.set(T,S),S},mT=function(T,$,S,f){if(S==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!f:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?f:S==="a"?f.call(T):f?f.value:$.get(T)},u0,vJ,PJ,AF,wF,nJ,XF,BS,YF,cJ,oJ,fM,vw;class kF{constructor(){u0.add(this),this.controller=new AbortController,vJ.set(this,void 0),PJ.set(this,()=>{}),AF.set(this,()=>{}),wF.set(this,void 0),nJ.set(this,()=>{}),XF.set(this,()=>{}),BS.set(this,{}),YF.set(this,!1),cJ.set(this,!1),oJ.set(this,!1),fM.set(this,!1),$S(this,vJ,new Promise((T,$)=>{$S(this,PJ,T,"f"),$S(this,AF,$,"f")}),"f"),$S(this,wF,new Promise((T,$)=>{$S(this,nJ,T,"f"),$S(this,XF,$,"f")}),"f"),mT(this,vJ,"f").catch(()=>{}),mT(this,wF,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},mT(this,u0,"m",vw).bind(this))},0)}_connected(){if(this.ended)return;mT(this,PJ,"f").call(this),this._emit("connect")}get ended(){return mT(this,YF,"f")}get errored(){return mT(this,cJ,"f")}get aborted(){return mT(this,oJ,"f")}abort(){this.controller.abort()}on(T,$){return(mT(this,BS,"f")[T]||(mT(this,BS,"f")[T]=[])).push({listener:$}),this}off(T,$){let S=mT(this,BS,"f")[T];if(!S)return this;let f=S.findIndex((M)=>M.listener===$);if(f>=0)S.splice(f,1);return this}once(T,$){return(mT(this,BS,"f")[T]||(mT(this,BS,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,S)=>{if($S(this,fM,!0,"f"),T!=="error")this.once("error",S);this.once(T,$)})}async done(){$S(this,fM,!0,"f"),await mT(this,wF,"f")}_emit(T,...$){if(mT(this,YF,"f"))return;if(T==="end")$S(this,YF,!0,"f"),mT(this,nJ,"f").call(this);let S=mT(this,BS,"f")[T];if(S)mT(this,BS,"f")[T]=S.filter((f)=>!f.once),S.forEach(({listener:f})=>f(...$));if(T==="abort"){let f=$[0];if(!mT(this,fM,"f")&&!S?.length)Promise.reject(f);mT(this,AF,"f").call(this,f),mT(this,XF,"f").call(this,f),this._emit("end");return}if(T==="error"){let f=$[0];if(!mT(this,fM,"f")&&!S?.length)Promise.reject(f);mT(this,AF,"f").call(this,f),mT(this,XF,"f").call(this,f),this._emit("end")}}_emitFinal(){}}vJ=new WeakMap,PJ=new WeakMap,AF=new WeakMap,wF=new WeakMap,nJ=new WeakMap,XF=new WeakMap,BS=new WeakMap,YF=new WeakMap,cJ=new WeakMap,oJ=new WeakMap,fM=new WeakMap,u0=new WeakSet,vw=function T($){if($S(this,cJ,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new f$;if($ instanceof f$)return $S(this,oJ,!0,"f"),this._emit("abort",$);if($ instanceof ST)return this._emit("error",$);if($ instanceof Error){let S=new ST($.message);return S.cause=$,this._emit("error",S)}return this._emit("error",new ST(String($)))};function d0(T){return T?.$brand==="auto-parseable-response-format"}function Kf(T){return T?.$brand==="auto-parseable-tool"}function Pw(T,$){if(!$||!l0($))return{...T,choices:T.choices.map((S)=>({...S,message:{...S.message,parsed:null,tool_calls:S.message.tool_calls??[]}}))};return KF(T,$)}function KF(T,$){let S=T.choices.map((f)=>{if(f.finish_reason==="length")throw new sM;if(f.finish_reason==="content_filter")throw new eM;return{...f,message:{...f.message,tool_calls:f.message.tool_calls?.map((M)=>rK($,M))??[],parsed:f.message.content&&!f.message.refusal?lK($,f.message.content):null}}});return{...T,choices:S}}function lK(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 rK(T,$){let S=T.tools?.find((f)=>f.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:Kf(S)?S.$parseRaw($.function.arguments):S?.function.strict?JSON.parse($.function.arguments):null}}}function nw(T,$){if(!T)return!1;let S=T.tools?.find((f)=>f.function?.name===$.function.name);return Kf(S)||S?.function.strict||!1}function l0(T){if(d0(T.response_format))return!0;return T.tools?.some(($)=>Kf($)||$.type==="function"&&$.function.strict===!0)??!1}function cw(T){for(let $ of T??[]){if($.type!=="function")throw new ST(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new ST(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var V$=function(T,$,S,f){if(S==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!f:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?f:S==="a"?f.call(T):f?f.value:$.get(T)},O$,r0,gJ,a0,s0,e0,gw,T1,ow=10;class OF extends kF{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),(p0(T)||i0(T))&&T.content)this._emit("functionCallResult",T.content);else if(iS(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(iS(T)&&T.tool_calls){for(let S of T.tool_calls)if(S.type==="function")this._emit("functionCall",S.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new ST("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),V$(this,O$,"m",r0).call(this)}async finalMessage(){return await this.done(),V$(this,O$,"m",gJ).call(this)}async finalFunctionCall(){return await this.done(),V$(this,O$,"m",a0).call(this)}async finalFunctionCallResult(){return await this.done(),V$(this,O$,"m",s0).call(this)}async totalUsage(){return await this.done(),V$(this,O$,"m",e0).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",gJ).call(this);if($)this._emit("finalMessage",$);let S=V$(this,O$,"m",r0).call(this);if(S)this._emit("finalContent",S);let f=V$(this,O$,"m",a0).call(this);if(f)this._emit("finalFunctionCall",f);let M=V$(this,O$,"m",s0).call(this);if(M!=null)this._emit("finalFunctionCallResult",M);if(this._chatCompletions.some((F)=>F.usage))this._emit("totalUsage",V$(this,O$,"m",e0).call(this))}async _createChatCompletion(T,$,S){let f=S?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}V$(this,O$,"m",gw).call(this,$);let M=await T.chat.completions.create({...$,stream:!1},{...S,signal:this.controller.signal});return this._connected(),this._addChatCompletion(KF(M,$))}async _runChatCompletion(T,$,S){for(let f of $.messages)this._addMessage(f,!1);return await this._createChatCompletion(T,$,S)}async _runFunctions(T,$,S){let{function_call:M="auto",stream:F,...J}=$,W=typeof M!=="string"&&M?.name,{maxChatCompletions:A=ow}=S||{},w={};for(let Y of $.functions)w[Y.name||Y.function.name]=Y;let X=$.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<A;++Y){let R=(await this._createChatCompletion(T,{...J,function_call:M,functions:X,messages:[...this.messages]},S)).choices[0]?.message;if(!R)throw new ST("missing message in ChatCompletion response");if(!R.function_call)return;let{name:z,arguments:Q}=R.function_call,D=w[z];if(!D){let Z=`Invalid function_call: ${JSON.stringify(z)}. Available options are: ${X.map((_)=>JSON.stringify(_.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:z,content:Z});continue}else if(W&&W!==z){let Z=`Invalid function_call: ${JSON.stringify(z)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"function",name:z,content:Z});continue}let N;try{N=t0(D)?await D.parse(Q):Q}catch(Z){this._addMessage({role:"function",name:z,content:Z instanceof Error?Z.message:String(Z)});continue}let V=await D.function(N,this),L=V$(this,O$,"m",T1).call(this,V);if(this._addMessage({role:"function",name:z,content:L}),W)return}}async _runTools(T,$,S){let{tool_choice:M="auto",stream:F,...J}=$,W=typeof M!=="string"&&M?.function?.name,{maxChatCompletions:A=ow}=S||{},w=$.tools.map((k)=>{if(Kf(k)){if(!k.$callback)throw new ST("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:k.$callback,name:k.function.name,description:k.function.description||"",parameters:k.function.parameters,parse:k.$parseRaw,strict:!0}}}return k}),X={};for(let k of w)if(k.type==="function")X[k.function.name||k.function.function.name]=k.function;let Y="tools"in $?w.map((k)=>k.type==="function"?{type:"function",function:{name:k.function.name||k.function.function.name,parameters:k.function.parameters,description:k.function.description,strict:k.function.strict}}:k):void 0;for(let k of $.messages)this._addMessage(k,!1);for(let k=0;k<A;++k){let z=(await this._createChatCompletion(T,{...J,tool_choice:M,tools:Y,messages:[...this.messages]},S)).choices[0]?.message;if(!z)throw new ST("missing message in ChatCompletion response");if(!z.tool_calls?.length)return;for(let Q of z.tool_calls){if(Q.type!=="function")continue;let D=Q.id,{name:N,arguments:V}=Q.function,L=X[N];if(!L){let B=`Invalid tool_call: ${JSON.stringify(N)}. Available options are: ${Object.keys(X).map((q)=>JSON.stringify(q)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:D,content:B});continue}else if(W&&W!==N){let B=`Invalid tool_call: ${JSON.stringify(N)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:D,content:B});continue}let Z;try{Z=t0(L)?await L.parse(V):V}catch(B){let q=B instanceof Error?B.message:String(B);this._addMessage({role:"tool",tool_call_id:D,content:q});continue}let _=await L.function(Z,this),E=V$(this,O$,"m",T1).call(this,_);if(this._addMessage({role:"tool",tool_call_id:D,content:E}),W)return}}return}}O$=new WeakSet,r0=function T(){return V$(this,O$,"m",gJ).call(this).content??null},gJ=function T(){let $=this.messages.length;while($-- >0){let S=this.messages[$];if(iS(S)){let{function_call:f,...M}=S,F={...M,content:S.content??null,refusal:S.refusal??null};if(f)F.function_call=f;return F}}throw new ST("stream ended without producing a ChatCompletionMessage with role=assistant")},a0=function T(){for(let $=this.messages.length-1;$>=0;$--){let S=this.messages[$];if(iS(S)&&S?.function_call)return S.function_call;if(iS(S)&&S?.tool_calls?.length)return S.tool_calls.at(-1)?.function}return},s0=function T(){for(let $=this.messages.length-1;$>=0;$--){let S=this.messages[$];if(p0(S)&&S.content!=null)return S.content;if(i0(S)&&S.content!=null&&typeof S.content==="string"&&this.messages.some((f)=>f.role==="assistant"&&f.tool_calls?.some((M)=>M.type==="function"&&M.id===S.tool_call_id)))return S.content}return},e0=function T(){let $={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:S}of this._chatCompletions)if(S)$.completion_tokens+=S.completion_tokens,$.prompt_tokens+=S.prompt_tokens,$.total_tokens+=S.total_tokens;return $},gw=function T($){if($.n!=null&&$.n>1)throw new ST("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},T1=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class MM extends OF{static runFunctions(T,$,S){let f=new MM,M={...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return f._run(()=>f._runFunctions(T,$,M)),f}static runTools(T,$,S){let f=new MM,M={...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"runTools"}};return f._run(()=>f._runTools(T,$,M)),f}_addMessage(T,$=!0){if(super._addMessage(T,$),iS(T)&&T.content)this._emit("content",T.content)}}var T$={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 tw extends Error{}class pw extends Error{}function aK(T,$=T$.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return sK(T.trim(),$)}var sK=(T,$)=>{let S=T.length,f=0,M=(k)=>{throw new tw(`${k} at position ${f}`)},F=(k)=>{throw new pw(`${k} at position ${f}`)},J=()=>{if(Y(),f>=S)M("Unexpected end of input");if(T[f]==='"')return W();if(T[f]==="{")return A();if(T[f]==="[")return w();if(T.substring(f,f+4)==="null"||T$.NULL&$&&S-f<4&&"null".startsWith(T.substring(f)))return f+=4,null;if(T.substring(f,f+4)==="true"||T$.BOOL&$&&S-f<4&&"true".startsWith(T.substring(f)))return f+=4,!0;if(T.substring(f,f+5)==="false"||T$.BOOL&$&&S-f<5&&"false".startsWith(T.substring(f)))return f+=5,!1;if(T.substring(f,f+8)==="Infinity"||T$.INFINITY&$&&S-f<8&&"Infinity".startsWith(T.substring(f)))return f+=8,1/0;if(T.substring(f,f+9)==="-Infinity"||T$.MINUS_INFINITY&$&&1<S-f&&S-f<9&&"-Infinity".startsWith(T.substring(f)))return f+=9,-1/0;if(T.substring(f,f+3)==="NaN"||T$.NAN&$&&S-f<3&&"NaN".startsWith(T.substring(f)))return f+=3,NaN;return X()},W=()=>{let k=f,R=!1;f++;while(f<S&&(T[f]!=='"'||R&&T[f-1]==="\\"))R=T[f]==="\\"?!R:!1,f++;if(T.charAt(f)=='"')try{return JSON.parse(T.substring(k,++f-Number(R)))}catch(z){F(String(z))}else if(T$.STR&$)try{return JSON.parse(T.substring(k,f-Number(R))+'"')}catch(z){return JSON.parse(T.substring(k,T.lastIndexOf("\\"))+'"')}M("Unterminated string literal")},A=()=>{f++,Y();let k={};try{while(T[f]!=="}"){if(Y(),f>=S&&T$.OBJ&$)return k;let R=W();Y(),f++;try{let z=J();Object.defineProperty(k,R,{value:z,writable:!0,enumerable:!0,configurable:!0})}catch(z){if(T$.OBJ&$)return k;else throw z}if(Y(),T[f]===",")f++}}catch(R){if(T$.OBJ&$)return k;else M("Expected '}' at end of object")}return f++,k},w=()=>{f++;let k=[];try{while(T[f]!=="]")if(k.push(J()),Y(),T[f]===",")f++}catch(R){if(T$.ARR&$)return k;M("Expected ']' at end of array")}return f++,k},X=()=>{if(f===0){if(T==="-"&&T$.NUM&$)M("Not sure what '-' is");try{return JSON.parse(T)}catch(R){if(T$.NUM&$)try{if(T[T.length-1]===".")return JSON.parse(T.substring(0,T.lastIndexOf(".")));return JSON.parse(T.substring(0,T.lastIndexOf("e")))}catch(z){}F(String(R))}}let k=f;if(T[f]==="-")f++;while(T[f]&&!",]}".includes(T[f]))f++;if(f==S&&!(T$.NUM&$))M("Unterminated number literal");try{return JSON.parse(T.substring(k,f))}catch(R){if(T.substring(k,f)==="-"&&T$.NUM&$)M("Not sure what '-' is");try{return JSON.parse(T.substring(k,T.lastIndexOf("e")))}catch(z){F(String(z))}}},Y=()=>{while(f<S&&`
|
|
22
|
+
\r `.includes(T[f]))f++};return J()},$1=(T)=>aK(T,T$.ALL^T$.NUM);var FM=function(T,$,S,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!M:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,S):M?M.value=S:$.set(T,S),S},HT=function(T,$,S,f){if(S==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!f:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?f:S==="a"?f.call(T):f?f.value:$.get(T)},aT,LS,JM,uS,S1,tJ,f1,M1,F1,pJ,J1,iw;class Of extends OF{constructor(T){super();aT.add(this),LS.set(this,void 0),JM.set(this,void 0),uS.set(this,void 0),FM(this,LS,T,"f"),FM(this,JM,[],"f")}get currentChatCompletionSnapshot(){return HT(this,uS,"f")}static fromReadableStream(T){let $=new Of(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,S){let f=new Of($);return f._run(()=>f._runChatCompletion(T,{...$,stream:!0},{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"stream"}})),f}async _createChatCompletion(T,$,S){super._createChatCompletion;let f=S?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}HT(this,aT,"m",S1).call(this);let M=await T.chat.completions.create({...$,stream:!0},{...S,signal:this.controller.signal});this._connected();for await(let F of M)HT(this,aT,"m",f1).call(this,F);if(M.controller.signal?.aborted)throw new f$;return this._addChatCompletion(HT(this,aT,"m",pJ).call(this))}async _fromReadableStream(T,$){let S=$?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}HT(this,aT,"m",S1).call(this),this._connected();let f=j$.fromReadableStream(T,this.controller),M;for await(let F of f){if(M&&M!==F.id)this._addChatCompletion(HT(this,aT,"m",pJ).call(this));HT(this,aT,"m",f1).call(this,F),M=F.id}if(f.controller.signal?.aborted)throw new f$;return this._addChatCompletion(HT(this,aT,"m",pJ).call(this))}[(LS=new WeakMap,JM=new WeakMap,uS=new WeakMap,aT=new WeakSet,S1=function T(){if(this.ended)return;FM(this,uS,void 0,"f")},tJ=function T($){let S=HT(this,JM,"f")[$.index];if(S)return S;return S={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},HT(this,JM,"f")[$.index]=S,S},f1=function T($){if(this.ended)return;let S=HT(this,aT,"m",iw).call(this,$);this._emit("chunk",$,S);for(let f of $.choices){let M=S.choices[f.index];if(f.delta.content!=null&&M.message?.role==="assistant"&&M.message?.content)this._emit("content",f.delta.content,M.message.content),this._emit("content.delta",{delta:f.delta.content,snapshot:M.message.content,parsed:M.message.parsed});if(f.delta.refusal!=null&&M.message?.role==="assistant"&&M.message?.refusal)this._emit("refusal.delta",{delta:f.delta.refusal,snapshot:M.message.refusal});if(f.logprobs?.content!=null&&M.message?.role==="assistant")this._emit("logprobs.content.delta",{content:f.logprobs?.content,snapshot:M.logprobs?.content??[]});if(f.logprobs?.refusal!=null&&M.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:f.logprobs?.refusal,snapshot:M.logprobs?.refusal??[]});let F=HT(this,aT,"m",tJ).call(this,M);if(M.finish_reason){if(HT(this,aT,"m",F1).call(this,M),F.current_tool_call_index!=null)HT(this,aT,"m",M1).call(this,M,F.current_tool_call_index)}for(let J of f.delta.tool_calls??[]){if(F.current_tool_call_index!==J.index){if(HT(this,aT,"m",F1).call(this,M),F.current_tool_call_index!=null)HT(this,aT,"m",M1).call(this,M,F.current_tool_call_index)}F.current_tool_call_index=J.index}for(let J of f.delta.tool_calls??[]){let W=M.message.tool_calls?.[J.index];if(!W?.type)continue;if(W?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:W.function?.name,index:J.index,arguments:W.function.arguments,parsed_arguments:W.function.parsed_arguments,arguments_delta:J.function?.arguments??""});else dw(W?.type)}}},M1=function T($,S){if(HT(this,aT,"m",tJ).call(this,$).done_tool_calls.has(S))return;let M=$.message.tool_calls?.[S];if(!M)throw new Error("no tool call snapshot");if(!M.type)throw new Error("tool call snapshot missing `type`");if(M.type==="function"){let F=HT(this,LS,"f")?.tools?.find((J)=>J.type==="function"&&J.function.name===M.function.name);this._emit("tool_calls.function.arguments.done",{name:M.function.name,index:S,arguments:M.function.arguments,parsed_arguments:Kf(F)?F.$parseRaw(M.function.arguments):F?.function.strict?JSON.parse(M.function.arguments):null})}else dw(M.type)},F1=function T($){let S=HT(this,aT,"m",tJ).call(this,$);if($.message.content&&!S.content_done){S.content_done=!0;let f=HT(this,aT,"m",J1).call(this);this._emit("content.done",{content:$.message.content,parsed:f?f.$parseRaw($.message.content):null})}if($.message.refusal&&!S.refusal_done)S.refusal_done=!0,this._emit("refusal.done",{refusal:$.message.refusal});if($.logprobs?.content&&!S.logprobs_content_done)S.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:$.logprobs.content});if($.logprobs?.refusal&&!S.logprobs_refusal_done)S.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:$.logprobs.refusal})},pJ=function T(){if(this.ended)throw new ST("stream has ended, this shouldn't happen");let $=HT(this,uS,"f");if(!$)throw new ST("request ended without sending any chunks");return FM(this,uS,void 0,"f"),FM(this,JM,[],"f"),eK($,HT(this,LS,"f"))},J1=function T(){let $=HT(this,LS,"f")?.response_format;if(d0($))return $;return null},iw=function T($){var S,f,M,F;let J=HT(this,uS,"f"),{choices:W,...A}=$;if(!J)J=FM(this,uS,{...A,choices:[]},"f");else Object.assign(J,A);for(let{delta:w,finish_reason:X,index:Y,logprobs:k=null,...R}of $.choices){let z=J.choices[Y];if(!z)z=J.choices[Y]={finish_reason:X,index:Y,message:{},logprobs:k,...R};if(k)if(!z.logprobs)z.logprobs=Object.assign({},k);else{let{content:_,refusal:E,...B}=k;if(uw(B),Object.assign(z.logprobs,B),_)(S=z.logprobs).content??(S.content=[]),z.logprobs.content.push(..._);if(E)(f=z.logprobs).refusal??(f.refusal=[]),z.logprobs.refusal.push(...E)}if(X){if(z.finish_reason=X,HT(this,LS,"f")&&l0(HT(this,LS,"f"))){if(X==="length")throw new sM;if(X==="content_filter")throw new eM}}if(Object.assign(z,R),!w)continue;let{content:Q,refusal:D,function_call:N,role:V,tool_calls:L,...Z}=w;if(uw(Z),Object.assign(z.message,Z),D)z.message.refusal=(z.message.refusal||"")+D;if(V)z.message.role=V;if(N)if(!z.message.function_call)z.message.function_call=N;else{if(N.name)z.message.function_call.name=N.name;if(N.arguments)(M=z.message.function_call).arguments??(M.arguments=""),z.message.function_call.arguments+=N.arguments}if(Q){if(z.message.content=(z.message.content||"")+Q,!z.message.refusal&&HT(this,aT,"m",J1).call(this))z.message.parsed=$1(z.message.content)}if(L){if(!z.message.tool_calls)z.message.tool_calls=[];for(let{index:_,id:E,type:B,function:q,...v}of L){let G=(F=z.message.tool_calls)[_]??(F[_]={});if(Object.assign(G,v),E)G.id=E;if(B)G.type=B;if(q)G.function??(G.function={name:q.name??"",arguments:""});if(q?.name)G.function.name=q.name;if(q?.arguments){if(G.function.arguments+=q.arguments,nw(HT(this,LS,"f"),G))G.function.parsed_arguments=$1(G.function.arguments)}}}}return J},Symbol.asyncIterator)](){let T=[],$=[],S=!1;return this.on("chunk",(f)=>{let M=$.shift();if(M)M.resolve(f);else T.push(f)}),this.on("end",()=>{S=!0;for(let f of $)f.resolve(void 0);$.length=0}),this.on("abort",(f)=>{S=!0;for(let M of $)M.reject(f);$.length=0}),this.on("error",(f)=>{S=!0;for(let M of $)M.reject(f);$.length=0}),{next:async()=>{if(!T.length){if(S)return{value:void 0,done:!0};return new Promise((M,F)=>$.push({resolve:M,reject:F})).then((M)=>M?{value:M,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 j$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function eK(T,$){let{id:S,choices:f,created:M,model:F,system_fingerprint:J,...W}=T,A={...W,id:S,choices:f.map(({message:w,finish_reason:X,index:Y,logprobs:k,...R})=>{if(!X)throw new ST(`missing finish_reason for choice ${Y}`);let{content:z=null,function_call:Q,tool_calls:D,...N}=w,V=w.role;if(!V)throw new ST(`missing role for choice ${Y}`);if(Q){let{arguments:L,name:Z}=Q;if(L==null)throw new ST(`missing function_call.arguments for choice ${Y}`);if(!Z)throw new ST(`missing function_call.name for choice ${Y}`);return{...R,message:{content:z,function_call:{arguments:L,name:Z},role:V,refusal:w.refusal??null},finish_reason:X,index:Y,logprobs:k}}if(D)return{...R,index:Y,finish_reason:X,logprobs:k,message:{...N,role:V,content:z,refusal:w.refusal??null,tool_calls:D.map((L,Z)=>{let{function:_,type:E,id:B,...q}=L,{arguments:v,name:G,...o}=_||{};if(B==null)throw new ST(`missing choices[${Y}].tool_calls[${Z}].id
|
|
23
|
+
${iJ(T)}`);if(E==null)throw new ST(`missing choices[${Y}].tool_calls[${Z}].type
|
|
24
|
+
${iJ(T)}`);if(G==null)throw new ST(`missing choices[${Y}].tool_calls[${Z}].function.name
|
|
25
|
+
${iJ(T)}`);if(v==null)throw new ST(`missing choices[${Y}].tool_calls[${Z}].function.arguments
|
|
26
|
+
${iJ(T)}`);return{...q,id:B,type:E,function:{...o,name:G,arguments:v}}})}};return{...R,message:{...N,content:z,role:V,refusal:w.refusal??null},finish_reason:X,index:Y,logprobs:k}}),created:M,model:F,object:"chat.completion",...J?{system_fingerprint:J}:{}};return Pw(A,$)}function iJ(T){return JSON.stringify(T)}function uw(T){return}function dw(T){}class yf extends Of{static fromReadableStream(T){let $=new yf(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,S){let f=new yf(null),M={...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return f._run(()=>f._runFunctions(T,$,M)),f}static runTools(T,$,S){let f=new yf($),M={...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"runTools"}};return f._run(()=>f._runTools(T,$,M)),f}}class uJ extends p{parse(T,$){return cw(T.tools),this._client.chat.completions.create(T,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((S)=>KF(S,T))}runFunctions(T,$){if(T.stream)return yf.runFunctions(this._client,T,$);return MM.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return yf.runTools(this._client,T,$);return MM.runTools(this._client,T,$)}stream(T,$){return Of.createChatCompletion(this._client,T,$)}}class yF extends p{constructor(){super(...arguments);this.completions=new uJ(this._client)}}(function(T){T.Completions=uJ})(yF||(yF={}));class GF extends p{create(T,$){return this._client.post("/realtime/sessions",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class WM extends p{constructor(){super(...arguments);this.sessions=new GF(this._client)}}WM.Sessions=GF;var d=function(T,$,S,f){if(S==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!f:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return S==="m"?f:S==="a"?f.call(T):f?f.value:$.get(T)},x$=function(T,$,S,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!M:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,S):M?M.value=S:$.set(T,S),S},M$,W1,KS,dJ,SS,Rf,AM,Gf,aJ,Z$,lJ,rJ,HF,RF,zF,lw,rw,aw,sw,ew,TX,$X;class b$ extends kF{constructor(){super(...arguments);M$.add(this),W1.set(this,[]),KS.set(this,{}),dJ.set(this,{}),SS.set(this,void 0),Rf.set(this,void 0),AM.set(this,void 0),Gf.set(this,void 0),aJ.set(this,void 0),Z$.set(this,void 0),lJ.set(this,void 0),rJ.set(this,void 0),HF.set(this,void 0)}[(W1=new WeakMap,KS=new WeakMap,dJ=new WeakMap,SS=new WeakMap,Rf=new WeakMap,AM=new WeakMap,Gf=new WeakMap,aJ=new WeakMap,Z$=new WeakMap,lJ=new WeakMap,rJ=new WeakMap,HF=new WeakMap,M$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],S=!1;return this.on("event",(f)=>{let M=$.shift();if(M)M.resolve(f);else T.push(f)}),this.on("end",()=>{S=!0;for(let f of $)f.resolve(void 0);$.length=0}),this.on("abort",(f)=>{S=!0;for(let M of $)M.reject(f);$.length=0}),this.on("error",(f)=>{S=!0;for(let M of $)M.reject(f);$.length=0}),{next:async()=>{if(!T.length){if(S)return{value:void 0,done:!0};return new Promise((M,F)=>$.push({resolve:M,reject:F})).then((M)=>M?{value:M,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 S=$?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}this._connected();let f=j$.fromReadableStream(T,this.controller);for await(let M of f)d(this,M$,"m",RF).call(this,M);if(f.controller.signal?.aborted)throw new f$;return this._addRun(d(this,M$,"m",zF).call(this))}toReadableStream(){return new j$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,S,f,M){let F=new b$;return F._run(()=>F._runToolAssistantStream(T,$,S,f,{...M,headers:{...M?.headers,"X-Stainless-Helper-Method":"stream"}})),F}async _createToolAssistantStream(T,$,S,f,M){let F=M?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let J={...f,stream:!0},W=await T.submitToolOutputs($,S,J,{...M,signal:this.controller.signal});this._connected();for await(let A of W)d(this,M$,"m",RF).call(this,A);if(W.controller.signal?.aborted)throw new f$;return this._addRun(d(this,M$,"m",zF).call(this))}static createThreadAssistantStream(T,$,S){let f=new b$;return f._run(()=>f._threadAssistantStream(T,$,{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"stream"}})),f}static createAssistantStream(T,$,S,f){let M=new b$;return M._run(()=>M._runAssistantStream(T,$,S,{...f,headers:{...f?.headers,"X-Stainless-Helper-Method":"stream"}})),M}currentEvent(){return d(this,lJ,"f")}currentRun(){return d(this,rJ,"f")}currentMessageSnapshot(){return d(this,SS,"f")}currentRunStepSnapshot(){return d(this,HF,"f")}async finalRunSteps(){return await this.done(),Object.values(d(this,KS,"f"))}async finalMessages(){return await this.done(),Object.values(d(this,dJ,"f"))}async finalRun(){if(await this.done(),!d(this,Rf,"f"))throw Error("Final run was not received.");return d(this,Rf,"f")}async _createThreadAssistantStream(T,$,S){let f=S?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}let M={...$,stream:!0},F=await T.createAndRun(M,{...S,signal:this.controller.signal});this._connected();for await(let J of F)d(this,M$,"m",RF).call(this,J);if(F.controller.signal?.aborted)throw new f$;return this._addRun(d(this,M$,"m",zF).call(this))}async _createAssistantStream(T,$,S,f){let M=f?.signal;if(M){if(M.aborted)this.controller.abort();M.addEventListener("abort",()=>this.controller.abort())}let F={...S,stream:!0},J=await T.create($,F,{...f,signal:this.controller.signal});this._connected();for await(let W of J)d(this,M$,"m",RF).call(this,W);if(J.controller.signal?.aborted)throw new f$;return this._addRun(d(this,M$,"m",zF).call(this))}static accumulateDelta(T,$){for(let[S,f]of Object.entries($)){if(!T.hasOwnProperty(S)){T[S]=f;continue}let M=T[S];if(M===null||M===void 0){T[S]=f;continue}if(S==="index"||S==="type"){T[S]=f;continue}if(typeof M==="string"&&typeof f==="string")M+=f;else if(typeof M==="number"&&typeof f==="number")M+=f;else if(SF(M)&&SF(f))M=this.accumulateDelta(M,f);else if(Array.isArray(M)&&Array.isArray(f)){if(M.every((F)=>typeof F==="string"||typeof F==="number")){M.push(...f);continue}for(let F of f){if(!SF(F))throw new Error(`Expected array delta entry to be an object but got: ${F}`);let J=F.index;if(J==null)throw console.error(F),new Error("Expected array delta entry to have an `index` property");if(typeof J!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${J}`);let W=M[J];if(W==null)M.push(F);else M[J]=this.accumulateDelta(W,F)}continue}else throw Error(`Unhandled record type: ${S}, deltaValue: ${f}, accValue: ${M}`);T[S]=M}return T}_addRun(T){return T}async _threadAssistantStream(T,$,S){return await this._createThreadAssistantStream($,T,S)}async _runAssistantStream(T,$,S,f){return await this._createAssistantStream($,T,S,f)}async _runToolAssistantStream(T,$,S,f,M){return await this._createToolAssistantStream(S,T,$,f,M)}}RF=function T($){if(this.ended)return;switch(x$(this,lJ,$,"f"),d(this,M$,"m",aw).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.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":d(this,M$,"m",$X).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":d(this,M$,"m",rw).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":d(this,M$,"m",lw).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},zF=function T(){if(this.ended)throw new ST("stream has ended, this shouldn't happen");if(!d(this,Rf,"f"))throw Error("Final run has not been received");return d(this,Rf,"f")},lw=function T($){let[S,f]=d(this,M$,"m",ew).call(this,$,d(this,SS,"f"));x$(this,SS,S,"f"),d(this,dJ,"f")[S.id]=S;for(let M of f){let F=S.content[M.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,S),$.data.delta.content)for(let M of $.data.delta.content){if(M.type=="text"&&M.text){let F=M.text,J=S.content[M.index];if(J&&J.type=="text")this._emit("textDelta",F,J.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(M.index!=d(this,AM,"f")){if(d(this,Gf,"f"))switch(d(this,Gf,"f").type){case"text":this._emit("textDone",d(this,Gf,"f").text,d(this,SS,"f"));break;case"image_file":this._emit("imageFileDone",d(this,Gf,"f").image_file,d(this,SS,"f"));break}x$(this,AM,M.index,"f")}x$(this,Gf,S.content[M.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(d(this,AM,"f")!==void 0){let M=$.data.content[d(this,AM,"f")];if(M)switch(M.type){case"image_file":this._emit("imageFileDone",M.image_file,d(this,SS,"f"));break;case"text":this._emit("textDone",M.text,d(this,SS,"f"));break}}if(d(this,SS,"f"))this._emit("messageDone",$.data);x$(this,SS,void 0,"f")}},rw=function T($){let S=d(this,M$,"m",sw).call(this,$);switch(x$(this,HF,S,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let f=$.data.delta;if(f.step_details&&f.step_details.type=="tool_calls"&&f.step_details.tool_calls&&S.step_details.type=="tool_calls")for(let F of f.step_details.tool_calls)if(F.index==d(this,aJ,"f"))this._emit("toolCallDelta",F,S.step_details.tool_calls[F.index]);else{if(d(this,Z$,"f"))this._emit("toolCallDone",d(this,Z$,"f"));if(x$(this,aJ,F.index,"f"),x$(this,Z$,S.step_details.tool_calls[F.index],"f"),d(this,Z$,"f"))this._emit("toolCallCreated",d(this,Z$,"f"))}this._emit("runStepDelta",$.data.delta,S);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(x$(this,HF,void 0,"f"),$.data.step_details.type=="tool_calls"){if(d(this,Z$,"f"))this._emit("toolCallDone",d(this,Z$,"f")),x$(this,Z$,void 0,"f")}this._emit("runStepDone",$.data,S);break;case"thread.run.step.in_progress":break}},aw=function T($){d(this,W1,"f").push($),this._emit("event",$)},sw=function T($){switch($.event){case"thread.run.step.created":return d(this,KS,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let S=d(this,KS,"f")[$.data.id];if(!S)throw Error("Received a RunStepDelta before creation of a snapshot");let f=$.data;if(f.delta){let M=b$.accumulateDelta(S,f.delta);d(this,KS,"f")[$.data.id]=M}return d(this,KS,"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":d(this,KS,"f")[$.data.id]=$.data;break}if(d(this,KS,"f")[$.data.id])return d(this,KS,"f")[$.data.id];throw new Error("No snapshot available")},ew=function T($,S){let f=[];switch($.event){case"thread.message.created":return[$.data,f];case"thread.message.delta":if(!S)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let M=$.data;if(M.delta.content)for(let F of M.delta.content)if(F.index in S.content){let J=S.content[F.index];S.content[F.index]=d(this,M$,"m",TX).call(this,F,J)}else S.content[F.index]=F,f.push(F);return[S,f];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(S)return[S,f];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},TX=function T($,S){return b$.accumulateDelta(S,$)},$X=function T($){switch(x$(this,rJ,$.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(x$(this,Rf,$.data,"f"),d(this,Z$,"f"))this._emit("toolCallDone",d(this,Z$,"f")),x$(this,Z$,void 0,"f");break;case"thread.run.cancelling":break}};class wM extends p{create(T,$,S){return this._client.post(`/threads/${T}/messages`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,$,S){return this._client.get(`/threads/${T}/messages/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,$,S,f){return this._client.post(`/threads/${T}/messages/${$}`,{body:S,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}list(T,$={},S){if(BT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/messages`,DF,{query:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,$,S){return this._client.delete(`/threads/${T}/messages/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class DF extends vT{}wM.MessagesPage=DF;class XM extends p{retrieve(T,$,S,f={},M){if(BT(f))return this.retrieve(T,$,S,{},f);return this._client.get(`/threads/${T}/runs/${$}/steps/${S}`,{query:f,...M,headers:{"OpenAI-Beta":"assistants=v2",...M?.headers}})}list(T,$,S={},f){if(BT(S))return this.list(T,$,{},S);return this._client.getAPIList(`/threads/${T}/runs/${$}/steps`,_F,{query:S,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}}class _F extends vT{}XM.RunStepsPage=_F;class dS extends p{constructor(){super(...arguments);this.steps=new XM(this._client)}create(T,$,S){let{include:f,...M}=$;return this._client.post(`/threads/${T}/runs`,{query:{include:f},body:M,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers},stream:$.stream??!1})}retrieve(T,$,S){return this._client.get(`/threads/${T}/runs/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,$,S,f){return this._client.post(`/threads/${T}/runs/${$}`,{body:S,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}list(T,$={},S){if(BT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/runs`,EF,{query:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}cancel(T,$,S){return this._client.post(`/threads/${T}/runs/${$}/cancel`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async createAndPoll(T,$,S){let f=await this.create(T,$,S);return await this.poll(T,f.id,S)}createAndStream(T,$,S){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,S)}async poll(T,$,S){let f={...S?.headers,"X-Stainless-Poll-Helper":"true"};if(S?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=S.pollIntervalMs.toString();while(!0){let{data:M,response:F}=await this.retrieve(T,$,{...S,headers:{...S?.headers,...f}}).withResponse();switch(M.status){case"queued":case"in_progress":case"cancelling":let J=5000;if(S?.pollIntervalMs)J=S.pollIntervalMs;else{let W=F.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))J=A}}await US(J);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return M}}}stream(T,$,S){return b$.createAssistantStream(T,this._client.beta.threads.runs,$,S)}submitToolOutputs(T,$,S,f){return this._client.post(`/threads/${T}/runs/${$}/submit_tool_outputs`,{body:S,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers},stream:S.stream??!1})}async submitToolOutputsAndPoll(T,$,S,f){let M=await this.submitToolOutputs(T,$,S,f);return await this.poll(T,M.id,f)}submitToolOutputsStream(T,$,S,f){return b$.createToolAssistantStream(T,$,this._client.beta.threads.runs,S,f)}}class EF extends vT{}dS.RunsPage=EF;dS.Steps=XM;dS.RunStepsPage=_F;class NS extends p{constructor(){super(...arguments);this.runs=new dS(this._client),this.messages=new wM(this._client)}create(T={},$){if(BT(T))return this.create({},T);return this._client.post("/threads",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,S){return this._client.post(`/threads/${T}`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,$){return this._client.delete(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}createAndRun(T,$){return this._client.post("/threads/runs",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:T.stream??!1})}async createAndRunPoll(T,$){let S=await this.createAndRun(T,$);return await this.runs.poll(S.thread_id,S.id,$)}createAndRunStream(T,$){return b$.createThreadAssistantStream(T,this._client.beta.threads,$)}}NS.Runs=dS;NS.RunsPage=EF;NS.Messages=wM;NS.MessagesPage=DF;var SX=async(T)=>{let $=await Promise.allSettled(T),S=$.filter((M)=>M.status==="rejected");if(S.length){for(let M of S)console.error(M.reason);throw new Error(`${S.length} promise(s) failed - see the above errors`)}let f=[];for(let M of $)if(M.status==="fulfilled")f.push(M.value);return f};class YM extends p{create(T,$,S){return this._client.post(`/vector_stores/${T}/files`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,$,S){return this._client.get(`/vector_stores/${T}/files/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T,$={},S){if(BT($))return this.list(T,{},$);return this._client.getAPIList(`/vector_stores/${T}/files`,zf,{query:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,$,S){return this._client.delete(`/vector_stores/${T}/files/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async createAndPoll(T,$,S){let f=await this.create(T,$,S);return await this.poll(T,f.id,S)}async poll(T,$,S){let f={...S?.headers,"X-Stainless-Poll-Helper":"true"};if(S?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=S.pollIntervalMs.toString();while(!0){let M=await this.retrieve(T,$,{...S,headers:f}).withResponse(),F=M.data;switch(F.status){case"in_progress":let J=5000;if(S?.pollIntervalMs)J=S.pollIntervalMs;else{let W=M.response.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))J=A}}await US(J);break;case"failed":case"completed":return F}}}async upload(T,$,S){let f=await this._client.files.create({file:$,purpose:"assistants"},S);return this.create(T,{file_id:f.id},S)}async uploadAndPoll(T,$,S){let f=await this.upload(T,$,S);return await this.poll(T,f.id,S)}}class zf extends vT{}YM.VectorStoreFilesPage=zf;class QF extends p{create(T,$,S){return this._client.post(`/vector_stores/${T}/file_batches`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,$,S){return this._client.get(`/vector_stores/${T}/file_batches/${$}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}cancel(T,$,S){return this._client.post(`/vector_stores/${T}/file_batches/${$}/cancel`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async createAndPoll(T,$,S){let f=await this.create(T,$);return await this.poll(T,f.id,S)}listFiles(T,$,S={},f){if(BT(S))return this.listFiles(T,$,{},S);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${$}/files`,zf,{query:S,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}async poll(T,$,S){let f={...S?.headers,"X-Stainless-Poll-Helper":"true"};if(S?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=S.pollIntervalMs.toString();while(!0){let{data:M,response:F}=await this.retrieve(T,$,{...S,headers:f}).withResponse();switch(M.status){case"in_progress":let J=5000;if(S?.pollIntervalMs)J=S.pollIntervalMs;else{let W=F.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))J=A}}await US(J);break;case"failed":case"cancelled":case"completed":return M}}}async uploadAndPoll(T,{files:$,fileIds:S=[]},f){if($==null||$.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let M=f?.maxConcurrency??5,F=Math.min(M,$.length),J=this._client,W=$.values(),A=[...S];async function w(Y){for(let k of Y){let R=await J.files.create({file:k,purpose:"assistants"},f);A.push(R.id)}}let X=Array(F).fill(W).map(w);return await SX(X),await this.createAndPoll(T,{file_ids:A})}}class CS extends p{constructor(){super(...arguments);this.files=new YM(this._client),this.fileBatches=new QF(this._client)}create(T,$){return this._client.post("/vector_stores",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,S){return this._client.post(`/vector_stores/${T}`,{body:$,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T={},$){if(BT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",UF,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class UF extends vT{}CS.VectorStoresPage=UF;CS.Files=YM;CS.VectorStoreFilesPage=zf;CS.FileBatches=QF;class o$ extends p{constructor(){super(...arguments);this.realtime=new WM(this._client),this.vectorStores=new CS(this._client),this.chat=new yF(this._client),this.assistants=new SM(this._client),this.threads=new NS(this._client)}}o$.Realtime=WM;o$.VectorStores=CS;o$.VectorStoresPage=UF;o$.Assistants=SM;o$.AssistantsPage=WF;o$.Threads=NS;class kM extends p{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class KM extends p{create(T,$){return this._client.post("/embeddings",{body:T,...$})}}class Hf extends p{create(T,$){return this._client.post("/files",c$({body:T,...$}))}retrieve(T,$){return this._client.get(`/files/${T}`,$)}list(T={},$){if(BT(T))return this.list({},T);return this._client.getAPIList("/files",OM,{query:T,...$})}del(T,$){return this._client.delete(`/files/${T}`,$)}content(T,$){return this._client.get(`/files/${T}/content`,{...$,headers:{Accept:"application/binary",...$?.headers},__binaryResponse:!0})}retrieveContent(T,$){return this._client.get(`/files/${T}/content`,$)}async waitForProcessing(T,{pollInterval:$=5000,maxWait:S=1800000}={}){let f=new Set(["processed","error","deleted"]),M=Date.now(),F=await this.retrieve(T);while(!F.status||!f.has(F.status))if(await US($),F=await this.retrieve(T),Date.now()-M>S)throw new wf({message:`Giving up on waiting for file ${T} to finish processing after ${S} milliseconds.`});return F}}class OM extends vT{}Hf.FileObjectsPage=OM;class yM extends p{list(T,$={},S){if(BT($))return this.list(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,VF,{query:$,...S})}}class VF extends vT{}yM.FineTuningJobCheckpointsPage=VF;class IS extends p{constructor(){super(...arguments);this.checkpoints=new yM(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(BT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",BF,{query:T,...$})}cancel(T,$){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,$)}listEvents(T,$={},S){if(BT($))return this.listEvents(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,LF,{query:$,...S})}}class BF extends vT{}class LF extends vT{}IS.FineTuningJobsPage=BF;IS.FineTuningJobEventsPage=LF;IS.Checkpoints=yM;IS.FineTuningJobCheckpointsPage=VF;class jS extends p{constructor(){super(...arguments);this.jobs=new IS(this._client)}}jS.Jobs=IS;jS.FineTuningJobsPage=BF;jS.FineTuningJobEventsPage=LF;class GM extends p{createVariation(T,$){return this._client.post("/images/variations",c$({body:T,...$}))}edit(T,$){return this._client.post("/images/edits",c$({body:T,...$}))}generate(T,$){return this._client.post("/images/generations",{body:T,...$})}}class Df extends p{retrieve(T,$){return this._client.get(`/models/${T}`,$)}list(T){return this._client.getAPIList("/models",RM,T)}del(T,$){return this._client.delete(`/models/${T}`,$)}}class RM extends g0{}Df.ModelsPage=RM;class zM extends p{create(T,$){return this._client.post("/moderations",{body:T,...$})}}class NF extends p{create(T,$,S){return this._client.post(`/uploads/${T}/parts`,c$({body:$,...S}))}}class _f extends p{constructor(){super(...arguments);this.parts=new NF(this._client)}create(T,$){return this._client.post("/uploads",{body:T,...$})}cancel(T,$){return this._client.post(`/uploads/${T}/cancel`,$)}complete(T,$,S){return this._client.post(`/uploads/${T}/complete`,{body:$,...S})}}_f.Parts=NF;var fX;class kT extends o0{constructor({baseURL:T=$F("OPENAI_BASE_URL"),apiKey:$=$F("OPENAI_API_KEY"),organization:S=$F("OPENAI_ORG_ID")??null,project:f=$F("OPENAI_PROJECT_ID")??null,...M}={}){if($===void 0)throw new ST("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:S,project:f,...M,baseURL:T||"https://api.openai.com/v1"};if(!F.dangerouslyAllowBrowser&&hw())throw new ST(`It looks like you're running in a browser-like environment.
|
|
27
27
|
|
|
28
28
|
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
29
29
|
If you understand the risks and have appropriate mitigations in place,
|
|
@@ -32,36 +32,38 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
|
32
32
|
new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
33
33
|
|
|
34
34
|
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
35
|
-
`);super({baseURL:F.baseURL,timeout:F.timeout??600000,httpAgent:F.httpAgent,maxRetries:F.maxRetries,fetch:F.fetch});this.completions=new kM(this),this.chat=new Yf(this),this.embeddings=new KM(this),this.files=new Hf(this),this.images=new GM(this),this.audio=new
|
|
35
|
+
`);super({baseURL:F.baseURL,timeout:F.timeout??600000,httpAgent:F.httpAgent,maxRetries:F.maxRetries,fetch:F.fetch});this.completions=new kM(this),this.chat=new Yf(this),this.embeddings=new KM(this),this.files=new Hf(this),this.images=new GM(this),this.audio=new VS(this),this.moderations=new zM(this),this.models=new Df(this),this.fineTuning=new jS(this),this.beta=new o$(this),this.batches=new kf(this),this.uploads=new _f(this),this._options=F,this.apiKey=$,this.organization=S,this.project=f}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 N0(T,{arrayFormat:"brackets"})}}fX=kT;kT.OpenAI=fX;kT.DEFAULT_TIMEOUT=600000;kT.OpenAIError=ST;kT.APIError=tT;kT.APIConnectionError=Af;kT.APIConnectionTimeoutError=wf;kT.APIUserAbortError=f$;kT.NotFoundError=CJ;kT.ConflictError=IJ;kT.RateLimitError=xJ;kT.BadRequestError=BJ;kT.AuthenticationError=LJ;kT.InternalServerError=ZJ;kT.PermissionDeniedError=NJ;kT.UnprocessableEntityError=jJ;kT.toFile=P0;kT.fileFromPath=VJ;kT.Completions=kM;kT.Chat=Yf;kT.Embeddings=KM;kT.Files=Hf;kT.FileObjectsPage=OM;kT.Images=GM;kT.Audio=VS;kT.Moderations=zM;kT.Models=Df;kT.ModelsPage=RM;kT.FineTuning=jS;kT.Beta=o$;kT.Batches=kf;kT.BatchesPage=$M;kT.Uploads=_f;var MX=kT;import{createHash as yO}from"crypto";import*as PT from"fs";import*as fS from"path";import{inspect as FX}from"util";var GO=/[^a-zA-Z0-9\-._]/g;function RO(T){let $=T.replace(GO,"-");if($.length<=64)return $;let S=yO("sha256").update(T).digest("hex");return $.slice(-64)+"+"+S}class A1{mode;baseDir;filenameCache=new Map;filesTouched=new Map;constructor(T="off",$=fS.join(process.cwd(),".varmint")){this.mode=T,this.baseDir=$}read(T,$,S){let f=fS.join(this.baseDir,T),M=fS.join(f,`${$}.input.json`);if(!PT.existsSync(M)){if(!PT.existsSync(f))throw new Error(`Squirrel: input file for key "${T}" with "${$}" was not found. Directory "${f}" does not exist.`);let X=PT.readdirSync(f).map((R)=>[R,PT.readFileSync(fS.join(f,R),"utf-8")]).filter(([R])=>R.endsWith(".input.json")),Y=[];for(let[R,z]of X){let Q=` ${R}`,D=` ${FX(JSON.parse(z),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
|
|
36
36
|
`).join(`
|
|
37
|
-
`)}`;Y.push(Q,D)}let k=`
|
|
37
|
+
`)}`;Y.push(Q,D)}let k=` ${$}.input.json
|
|
38
|
+
${FX(S,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
|
|
38
39
|
`).join(`
|
|
39
|
-
`)}`;throw new Error(`Squirrel: input file for key "${T}" with subKey "${
|
|
40
|
+
`)}`;throw new Error(`Squirrel: input file for key "${T}" with subKey "${$}" (${M}) was not found. Directory "${f}" 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.
|
|
40
41
|
|
|
41
42
|
CACHED INPUT FILES:
|
|
42
43
|
${Y.join(`
|
|
43
44
|
`)}
|
|
44
45
|
|
|
45
46
|
YOUR INPUT DATA:
|
|
46
|
-
${k}
|
|
47
|
+
${k}
|
|
48
|
+
`)}let F=PT.readFileSync(M,"utf-8"),J=JSON.stringify(S,null,"\t");if(J!==F)throw new Error(`Squirrel: the content of the cached input file ${M} does not match the input provided.
|
|
47
49
|
|
|
48
50
|
Provided:
|
|
49
51
|
${J}
|
|
50
52
|
|
|
51
53
|
Cached:
|
|
52
|
-
${F}`);let W=
|
|
53
|
-
`)});return{model:T,messages:J}}var w1={"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 HO(T){return async function S($,f){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let M=await T.chat.completions.create({...$,stream:!1,response_format:{type:"json_object"}},f),F=M.choices[0].message?.content,{usage:J}=M;if(F&&J){let W=J.prompt_tokens,A=J.prompt_tokens_details?.cached_tokens??0,w=W-A,X=J.completion_tokens,Y=W*w1[$.model].promptPricePerToken+w*w1[$.model].promptPricePerTokenCached+X*w1[$.model].completionPricePerToken;return{data:JSON.parse(F),usage:J,usdPrice:Y}}if(!F&&!J)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 JX=new Map,WX=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:S,usdMinimum:$,apiKey:f,cachingMode:M,cacheKey:F="openai-safegen",logger:J}){this.usdBudget=S,this.usdMinimum=$,this.squirrel=new A1(M);let W=JX.get(f);if(M!=="read"){if(!W)W=new MX({apiKey:f,dangerouslyAllowBrowser:!1}),JX.set(f,W);this.client=W}this.getUnknownJsonFromOpenAi=HO(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(F,this.getUnknownJsonFromOpenAi),this.from=Xw(async(...A)=>{if(this.usdBudget<this.usdMinimum)return J?.warn("SafeGen budget exhausted"),A[1];let w=zO(T,...A),X=A[0],Y=A[3],{data:k,usage:R,usdPrice:z}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${X.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${Y.length}`).get(w);return this.lastUsage=R,this.usdBudget-=z,k})}from};import{exec as by}from"child_process";var X1=(T)=>{let S=QS(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let $=new Map;for(let[f,M]of T.atoms)if(!f.includes("\uD83D\uDD0D")){let F=YS(M);if(M.family){let J=$.get(M.family.key);if(!J||!("familyMembers"in J))J={key:M.family.key,familyMembers:new Map},$.set(M.family.key,J);J.familyMembers.set(M.family.subKey,F)}else $.set(f,F)}return $},effects:[({setSelf:$})=>{T.on.atomCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;$((M)=>{if(f.family){let{key:F,subKey:J}=f.family,W=M.get(F);if(W===void 0||!("familyMembers"in W))W={key:F,familyMembers:new Map},M.set(F,W);W.familyMembers.set(J,f)}else M.set(f.key,f);return M})}),T.on.atomDisposal.subscribe("introspection",(f)=>{$((M)=>{if(f.family){let{key:F,subKey:J}=f.family,W=M.get(F);if(W&&"familyMembers"in W){if(W.familyMembers.delete(J),W.familyMembers.size===0)M.delete(F)}}else M.delete(f.key);return M})})}]},void 0);return uS(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:$})=>$(S)})};var Y1=(T)=>{let S=QS(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let $=new Map;for(let f of[T.readonlySelectors,T.selectors])for(let[M,F]of f)if(!M.includes("\uD83D\uDD0D")){let J=YS(F);if(F.family){let W=$.get(F.family.key);if(!W||!("familyMembers"in W))W={key:F.family.key,familyMembers:new Map},$.set(F.family.key,W);W.familyMembers.set(F.family.subKey,J)}else $.set(M,J)}return $},effects:[({setSelf:$})=>{T.on.selectorCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;$((M)=>{if(f.family){let{key:F,subKey:J}=f.family,W=M.get(F);if(W===void 0||!("familyMembers"in W))W={key:F,familyMembers:new Map},M.set(F,W);W.familyMembers.set(J,f)}else M.set(f.key,f);return M})}),T.on.selectorDisposal.subscribe("introspection",(f)=>{$((M)=>{if(f.family){let{key:F,subKey:J}=f.family,W=M.get(F);if(W&&"familyMembers"in W){if(W.familyMembers.delete(J),W.familyMembers.size===0)M.delete(F)}}else M.delete(f.key);return M})})}]},void 0);return uS(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:$})=>$(S)})};class sJ{supported;constructor(T){this.supported=T}refine(T){for(let[S,$]of Object.entries(this.supported))try{if($(T)===!0&&$!==Boolean)return{type:S,data:T}}catch(f){try{if(T instanceof $)return{type:S,data:T}}catch(M){}}return null}}var k1=new sJ({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function K1(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var O1=new sJ({object:K1,array:(T)=>Array.isArray(T)}),DO=new sJ({...k1.supported,...O1.supported}),HM=(T)=>{if(T===void 0)return"undefined";let S=DO.refine(T);if(S)return S.type;return Object.getPrototypeOf(T).constructor.name};class AX{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=WT.STORE){this.store=T;this.atomIndex=X1(this.store),this.selectorIndex=Y1(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.set(S,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.delete(S)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.set(S,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.delete(S)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=AX.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let S=iW(this.atomIndex),$=iW(this.selectorIndex),f=[...S.values()].filter((W)=>("familyMembers"in W)),M=[...$.values()].filter((W)=>("familyMembers"in W)),F=performance.now(),J=[];if(T.atomFamilies)for(let W of f){let A=W.familyMembers.values();for(let w of A){let Y=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,k=F-Y;J.push([w,k])}}if(T.selectorFamilies)for(let W of M){let A=W.familyMembers.values();for(let w of A){let Y=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,k=F-Y;J.push([w,k])}}return J}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var y1=(T,S)=>{let $=(f,M)=>{let J=((A,w)=>{let X=S(A,w);if(X)return X;return null})(f,M);if(J?.jobComplete??J?.pathComplete)return J;let W=Array.isArray(M)?M.map((A,w)=>[w,A]):K1(M)?Object.entries(M):[];for(let[A,w]of W){let X=$([...f,A],w);if(X?.jobComplete)return X}return{}};$([],T)};function _O(T,S){return{summary:`${T<S?"+":"-"}${Math.abs(T-S)} (${T} \u2192 ${S})`}}function EO(T,S){return{summary:`${T.length<S.length?"+":"-"}${Math.abs(T.length-S.length)} ("${T}" \u2192 "${S}")`}}function QO(T,S){return{summary:`${T} \u2192 ${S}`}}function wX(T,S,$){let f="",M=[],F=[],J=[];return y1(T,(W,A)=>{let w;for(w of W){let X=S[w];if(X===void 0)F.push([w,JSON.stringify(A)]);else{let Y=$(A,X);if(Y.summary!=="No Change")J.push([w,Y])}}}),y1(S,(W,A)=>{let w;for(w of W)if(T[w]===void 0)M.push([w,JSON.stringify(A)])}),f=`\uFF5E${J.length} \uFF0B${M.length} \uFF0D${F.length}`,{summary:f,added:M,removed:F,changed:J}}function UO(T,S,$){return wX(T,S,$)}class XX{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,S,$){this.leafRefinery=T,this.treeRefinery=S,this.leafDiffers={},this.treeDiffers={};for(let f of Object.keys(T.supported)){let M=$[f];this.leafDiffers[f]=M}for(let f of Object.keys(S.supported)){let M=$[f];this.treeDiffers[f]=M}}diff(T,S){if(T===S)return{summary:"No Change"};let $=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),f=this.leafRefinery.refine(S)??this.treeRefinery.refine(S);if($!==null&&f!==null){if($.type===f.type){if($.type in this.leafDiffers)return this.leafDiffers[$.type]($.data,f.data);if($.type in this.treeDiffers)return this.treeDiffers[$.type]($.data,f.data,(W,A)=>this.diff(W,A))}}let M=HM(T),F=HM(S);if(M===F)return{summary:`${M} \u2192 ${F}`};return{summary:`Type change: ${M} \u2192 ${F}`}}}var WC=new XX(k1,O1,{number:_O,string:EO,boolean:QO,null:()=>({summary:"No Change"}),object:wX,array:UO});var O=Symbol.for("drizzle:entityKind"),yC=Symbol.for("drizzle:hasOwnEntityKind");function U(T,S){if(!T||typeof T!=="object")return!1;if(T instanceof S)return!0;if(!Object.prototype.hasOwnProperty.call(S,O))throw new Error(`Class "${S.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 $=Object.getPrototypeOf(T).constructor;if($)while($){if(O in $&&$[O]===S[O])return!0;$=Object.getPrototypeOf($)}return!1}class ET{constructor(T,S){this.table=T,this.config=S,this.name=S.name,this.keyAsName=S.keyAsName,this.notNull=S.notNull,this.default=S.default,this.defaultFn=S.defaultFn,this.onUpdateFn=S.onUpdateFn,this.hasDefault=S.hasDefault,this.primary=S.primaryKey,this.isUnique=S.isUnique,this.uniqueName=S.uniqueName,this.uniqueType=S.uniqueType,this.dataType=S.dataType,this.columnType=S.columnType,this.generated=S.generated,this.generatedIdentity=S.generatedIdentity}static[O]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class G1{static[O]="ColumnBuilder";config;constructor(T,S,$){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:S,columnType:$,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 M$=Symbol.for("drizzle:Name");class R1{static[O]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,S){if(this.reference=()=>{let{name:$,columns:f,foreignColumns:M}=T();return{name:$,columns:f,foreignTable:M[0].table,foreignColumns:M}},S)this._onUpdate=S.onUpdate,this._onDelete=S.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 YX(T,this)}}class YX{constructor(T,S){this.table=T,this.reference=S.reference,this.onUpdate=S._onUpdate,this.onDelete=S._onDelete}static[O]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:S,foreignColumns:$}=this.reference(),f=S.map((J)=>J.name),M=$.map((J)=>J.name),F=[this.table[M$],...f,$[0].table[M$],...M];return T??`${F.join("_")}_fk`}}function eJ(T,...S){return T(...S)}function kX(T,S){return`${T[M$]}_${S.join("_")}_unique`}function KX(T,S,$){for(let f=S;f<T.length;f++){let M=T[f];if(M==="\\"){f++;continue}if(M==='"')return[T.slice(S,f).replace(/\\/g,""),f+1];if($)continue;if(M===","||M==="}")return[T.slice(S,f).replace(/\\/g,""),f]}return[T.slice(S).replace(/\\/g,""),T.length]}function OX(T,S=0){let $=[],f=S,M=!1;while(f<T.length){let F=T[f];if(F===","){if(M||f===S)$.push("");M=!0,f++;continue}if(M=!1,F==="\\"){f+=2;continue}if(F==='"'){let[A,w]=KX(T,f+1,!0);$.push(A),f=w;continue}if(F==="}")return[$,f+1];if(F==="{"){let[A,w]=OX(T,f+1);$.push(A),f=w;continue}let[J,W]=KX(T,f,!1);$.push(J),f=W}return[$,f]}function yX(T){let[S]=OX(T,1);return S}function z1(T){return`{${T.map((S)=>{if(Array.isArray(S))return z1(S);if(typeof S==="string")return`"${S.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${S}`}).join(",")}}`}class t extends G1{foreignKeyConfigs=[];static[O]="PgColumnBuilder";array(T){return new RX(this.config.name,this,T)}references(T,S={}){return this.foreignKeyConfigs.push({ref:T,actions:S}),this}unique(T,S){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=S?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,S){return this.foreignKeyConfigs.map(({ref:$,actions:f})=>{return eJ((M,F)=>{let J=new R1(()=>{let W=M();return{columns:[T],foreignColumns:[W]}});if(F.onUpdate)J.onUpdate(F.onUpdate);if(F.onDelete)J.onDelete(F.onDelete);return J.build(S)},$,f)})}buildExtraConfigColumn(T){return new GX(T,this.config)}}class b extends ET{constructor(T,S){if(!S.uniqueName)S.uniqueName=kX(T,[S.name]);super(T,S);this.table=T}static[O]="PgColumn"}class GX extends b{static[O]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(T){return this.indexConfig.opClass=T,this}}class CF{static[O]="IndexedColumn";constructor(T,S,$,f){this.name=T,this.keyAsName=S,this.type=$,this.indexConfig=f}name;keyAsName;type;indexConfig}class RX extends t{static[O]="PgArrayBuilder";constructor(T,S,$){super(T,"array","PgArray");this.config.baseBuilder=S,this.config.size=$}build(T){let S=this.config.baseBuilder.build(T);return new H1(T,this.config,S)}}class H1 extends b{constructor(T,S,$,f){super(T,S);this.baseColumn=$,this.range=f,this.size=S.size}size;static[O]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=yX(T);return T.map((S)=>this.baseColumn.mapFromDriverValue(S))}mapToDriverValue(T,S=!1){let $=T.map((f)=>f===null?null:U(this.baseColumn,H1)?this.baseColumn.mapToDriverValue(f,!0):this.baseColumn.mapToDriverValue(f));if(S)return $;return z1($)}}var D1=Symbol.for("drizzle:isPgEnum");function zX(T){return!!T&&typeof T==="function"&&D1 in T&&T[D1]===!0}class HX extends t{static[O]="PgEnumColumnBuilder";constructor(T,S){super(T,"string","PgEnumColumn");this.config.enum=S}build(T){return new DX(T,this.config)}}class DX extends b{static[O]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,S){super(T,S);this.enum=S.enum}getSQLType(){return this.enum.enumName}}function TW(T,S){return VO(T,S,void 0)}function VO(T,S,$){let f=Object.assign((M)=>new HX(M??"",f),{enumName:T,enumValues:S,schema:$,[D1]:!0});return f}class sT{static[O]="Subquery";constructor(T,S,$,f=!1){this._={brand:"Subquery",sql:T,selectedFields:S,alias:$,isWith:f}}}class IF extends sT{static[O]="WithSubquery"}var _X="0.39.1";var _1,E1,QT={startActiveSpan(T,S){if(!_1)return S();if(!E1)E1=_1.trace.getTracer("drizzle-orm",_X);return eJ(($,f)=>f.startActiveSpan(T,(M)=>{try{return S(M)}catch(F){throw M.setStatus({code:$.SpanStatusCode.ERROR,message:F instanceof Error?F.message:"Unknown error"}),F}finally{M.end()}}),_1,E1)}};var LT=Symbol.for("drizzle:ViewBaseConfig");var SW=Symbol.for("drizzle:Schema"),$W=Symbol.for("drizzle:Columns"),EX=Symbol.for("drizzle:ExtraConfigColumns"),Q1=Symbol.for("drizzle:OriginalName"),U1=Symbol.for("drizzle:BaseName"),jF=Symbol.for("drizzle:IsAlias"),QX=Symbol.for("drizzle:ExtraConfigBuilder"),BO=Symbol.for("drizzle:IsDrizzleTable");class P{static[O]="Table";static Symbol={Name:M$,Schema:SW,OriginalName:Q1,Columns:$W,ExtraConfigColumns:EX,BaseName:U1,IsAlias:jF,ExtraConfigBuilder:QX};[M$];[Q1];[SW];[$W];[EX];[U1];[jF]=!1;[BO]=!0;[QX]=void 0;constructor(T,S,$){this[M$]=this[Q1]=T,this[SW]=S,this[U1]=$}}function SS(T){return T[M$]}function Ef(T){return`${T[SW]??"public"}.${T[M$]}`}function V1(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function LO(T){let S={sql:"",params:[]};for(let $ of T)if(S.sql+=$.sql,S.params.push(...$.params),$.typings?.length){if(!S.typings)S.typings=[];S.typings.push(...$.typings)}return S}class eT{static[O]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new c([this])}}class c{constructor(T){this.queryChunks=T}static[O]="SQL";decoder=VX;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return QT.startActiveSpan("drizzle.buildSQL",(S)=>{let $=this.buildQueryFromSourceParams(this.queryChunks,T);return S?.setAttributes({"drizzle.query.text":$.sql,"drizzle.query.params":JSON.stringify($.params)}),$})}buildQueryFromSourceParams(T,S){let $=Object.assign({},S,{inlineParams:S.inlineParams||this.shouldInlineParams,paramStartIndex:S.paramStartIndex||{value:0}}),{casing:f,escapeName:M,escapeParam:F,prepareTyping:J,inlineParams:W,paramStartIndex:A}=$;return LO(T.map((w)=>{if(U(w,eT))return{sql:w.value.join(""),params:[]};if(U(w,fW))return{sql:M(w.value),params:[]};if(w===void 0)return{sql:"",params:[]};if(Array.isArray(w)){let X=[new eT("(")];for(let[Y,k]of w.entries())if(X.push(k),Y<w.length-1)X.push(new eT(", "));return X.push(new eT(")")),this.buildQueryFromSourceParams(X,$)}if(U(w,c))return this.buildQueryFromSourceParams(w.queryChunks,{...$,inlineParams:W||w.shouldInlineParams});if(U(w,P)){let X=w[P.Symbol.Schema],Y=w[P.Symbol.Name];return{sql:X===void 0||w[jF]?M(Y):M(X)+"."+M(Y),params:[]}}if(U(w,ET)){let X=f.getColumnCasing(w);if(S.invokeSource==="indexes")return{sql:M(X),params:[]};let Y=w.table[P.Symbol.Schema];return{sql:w.table[jF]||Y===void 0?M(w.table[P.Symbol.Name])+"."+M(X):M(Y)+"."+M(w.table[P.Symbol.Name])+"."+M(X),params:[]}}if(U(w,BS)){let X=w[LT].schema,Y=w[LT].name;return{sql:X===void 0||w[LT].isAlias?M(Y):M(X)+"."+M(Y),params:[]}}if(U(w,qS)){if(U(w.value,l$))return{sql:F(A.value++,w),params:[w],typings:["none"]};let X=w.value===null?null:w.encoder.mapToDriverValue(w.value);if(U(X,c))return this.buildQueryFromSourceParams([X],$);if(W)return{sql:this.mapInlineParam(X,$),params:[]};let Y=["none"];if(J)Y=[J(w.encoder)];return{sql:F(A.value++,X),params:[X],typings:Y}}if(U(w,l$))return{sql:F(A.value++,w),params:[w],typings:["none"]};if(U(w,c.Aliased)&&w.fieldAlias!==void 0)return{sql:M(w.fieldAlias),params:[]};if(U(w,sT)){if(w._.isWith)return{sql:M(w._.alias),params:[]};return this.buildQueryFromSourceParams([new eT("("),w._.sql,new eT(") "),new fW(w._.alias)],$)}if(zX(w)){if(w.schema)return{sql:M(w.schema)+"."+M(w.enumName),params:[]};return{sql:M(w.enumName),params:[]}}if(V1(w)){if(w.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([w.getSQL()],$);return this.buildQueryFromSourceParams([new eT("("),w.getSQL(),new eT(")")],$)}if(W)return{sql:this.mapInlineParam(w,$),params:[]};return{sql:F(A.value++,w),params:[w],typings:["none"]}}))}mapInlineParam(T,{escapeString:S}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return S(T);if(typeof T==="object"){let $=T.toString();if($==="[object Object]")return S(JSON.stringify(T));return S($)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new c.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class fW{constructor(T){this.value=T}static[O]="Name";brand;getSQL(){return new c([this])}}function UX(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var VX={mapFromDriverValue:(T)=>T},BX={mapToDriverValue:(T)=>T},fI={...VX,...BX};class qS{constructor(T,S=BX){this.value=T,this.encoder=S}static[O]="Param";brand;getSQL(){return new c([this])}}function y(T,...S){let $=[];if(S.length>0||T.length>0&&T[0]!=="")$.push(new eT(T[0]));for(let[f,M]of S.entries())$.push(M,new eT(T[f+1]));return new c($)}((T)=>{function S(){return new c([])}T.empty=S;function $(A){return new c(A)}T.fromList=$;function f(A){return new c([new eT(A)])}T.raw=f;function M(A,w){let X=[];for(let[Y,k]of A.entries()){if(Y>0&&w!==void 0)X.push(w);X.push(k)}return new c(X)}T.join=M;function F(A){return new fW(A)}T.identifier=F;function J(A){return new l$(A)}T.placeholder=J;function W(A,w){return new qS(A,w)}T.param=W})(y||(y={}));((T)=>{class S{constructor($,f){this.sql=$,this.fieldAlias=f}static[O]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new S(this.sql,this.fieldAlias)}}T.Aliased=S})(c||(c={}));class l${constructor(T){this.name=T}static[O]="Placeholder";getSQL(){return new c([this])}}function B1(T,S){return T.map(($)=>{if(U($,l$)){if(!($.name in S))throw new Error(`No value for placeholder "${$.name}" was provided`);return S[$.name]}if(U($,qS)&&U($.value,l$)){if(!($.value.name in S))throw new Error(`No value for placeholder "${$.value.name}" was provided`);return $.encoder.mapToDriverValue(S[$.value.name])}return $})}var NO=Symbol.for("drizzle:IsDrizzleView");class BS{static[O]="View";[LT];[NO]=!0;constructor({name:T,schema:S,selectedFields:$,query:f}){this[LT]={name:T,originalName:T,schema:S,selectedFields:$,query:f,isExisting:!f,isAlias:!1}}getSQL(){return new c([this])}}ET.prototype.getSQL=function(){return new c([this])};P.prototype.getSQL=function(){return new c([this])};sT.prototype.getSQL=function(){return new c([this])};class DM{constructor(T){this.table=T}static[O]="ColumnAliasProxyHandler";get(T,S){if(S==="table")return this.table;return T[S]}}class xF{constructor(T,S){this.alias=T,this.replaceOriginalName=S}static[O]="TableAliasProxyHandler";get(T,S){if(S===P.Symbol.IsAlias)return!0;if(S===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&S===P.Symbol.OriginalName)return this.alias;if(S===LT)return{...T[LT],name:this.alias,isAlias:!0};if(S===P.Symbol.Columns){let f=T[P.Symbol.Columns];if(!f)return f;let M={};return Object.keys(f).map((F)=>{M[F]=new Proxy(f[F],new DM(new Proxy(T,this)))}),M}let $=T[S];if(U($,ET))return new Proxy($,new DM(new Proxy(T,this)));return $}}function MW(T,S){return new Proxy(T,new xF(S,!1))}function O$(T,S){return new Proxy(T,new DM(new Proxy(T.table,new xF(S,!1))))}function L1(T,S){return new c.Aliased(ZF(T.sql,S),T.fieldAlias)}function ZF(T,S){return y.join(T.queryChunks.map(($)=>{if(U($,ET))return O$($,S);if(U($,c))return ZF($,S);if(U($,c.Aliased))return L1($,S);return $}))}class FW extends Error{static[O]="DrizzleError";constructor({message:T,cause:S}){super(T);this.name="DrizzleError",this.cause=S}}class N1 extends FW{static[O]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function LS(T,S){if(UX(S)&&!V1(T)&&!U(T,qS)&&!U(T,l$)&&!U(T,ET)&&!U(T,P)&&!U(T,BS))return new qS(T,S);return T}var JW=(T,S)=>{return y`${T} = ${LS(S,T)}`},LX=(T,S)=>{return y`${T} <> ${LS(S,T)}`};function bF(...T){let S=T.filter(($)=>$!==void 0);if(S.length===0)return;if(S.length===1)return new c(S);return new c([new eT("("),y.join(S,new eT(" and ")),new eT(")")])}function NX(...T){let S=T.filter(($)=>$!==void 0);if(S.length===0)return;if(S.length===1)return new c(S);return new c([new eT("("),y.join(S,new eT(" or ")),new eT(")")])}function CX(T){return y`not ${T}`}var WW=(T,S)=>{return y`${T} > ${LS(S,T)}`},IX=(T,S)=>{return y`${T} >= ${LS(S,T)}`},jX=(T,S)=>{return y`${T} < ${LS(S,T)}`},xX=(T,S)=>{return y`${T} <= ${LS(S,T)}`};function ZX(T,S){if(Array.isArray(S)){if(S.length===0)return y`false`;return y`${T} in ${S.map(($)=>LS($,T))}`}return y`${T} in ${LS(S,T)}`}function bX(T,S){if(Array.isArray(S)){if(S.length===0)return y`true`;return y`${T} not in ${S.map(($)=>LS($,T))}`}return y`${T} not in ${LS(S,T)}`}function qX(T){return y`${T} is null`}function mX(T){return y`${T} is not null`}function hX(T){return y`exists ${T}`}function vX(T){return y`not exists ${T}`}function PX(T,S,$){return y`${T} between ${LS(S,T)} and ${LS($,T)}`}function nX(T,S,$){return y`${T} not between ${LS(S,T)} and ${LS($,T)}`}function cX(T,S){return y`${T} like ${S}`}function oX(T,S){return y`${T} not like ${S}`}function gX(T,S){return y`${T} ilike ${S}`}function tX(T,S){return y`${T} not ilike ${S}`}function pX(T){return y`${T} asc`}function iX(T){return y`${T} desc`}class uX{static[O]="ConsoleLogWriter";write(T){console.log(T)}}class C1{static[O]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new uX}logQuery(T,S){let $=S.map((M)=>{try{return JSON.stringify(M)}catch{return String(M)}}),f=$.length?` -- params: [${$.join(", ")}]`:"";this.writer.write(`Query: ${T}${f}`)}}class I1{static[O]="NoopLogger";logQuery(){}}class DS{static[O]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then((S)=>{return T?.(),S},(S)=>{throw T?.(),S})}then(T,S){return this.execute().then(T,S)}}function dX(T,S,$){let f={},M=T.reduce((F,{path:J,field:W},A)=>{let w;if(U(W,ET))w=W;else if(U(W,c))w=W.decoder;else w=W.sql.decoder;let X=F;for(let[Y,k]of J.entries())if(Y<J.length-1){if(!(k in X))X[k]={};X=X[k]}else{let R=S[A],z=X[k]=R===null?null:w.mapFromDriverValue(R);if($&&U(W,ET)&&J.length===2){let Q=J[0];if(!(Q in f))f[Q]=z===null?SS(W.table):!1;else if(typeof f[Q]==="string"&&f[Q]!==SS(W.table))f[Q]=!1}}return F},{});if($&&Object.keys(f).length>0){for(let[F,J]of Object.entries(f))if(typeof J==="string"&&!$[J])M[F]=null}return M}function gS(T,S){return Object.entries(T).reduce(($,[f,M])=>{if(typeof f!=="string")return $;let F=S?[...S,f]:[f];if(U(M,ET)||U(M,c)||U(M,c.Aliased))$.push({path:F,field:M});else if(U(M,P))$.push(...gS(M[P.Symbol.Columns],F));else $.push(...gS(M,F));return $},[])}function qF(T,S){let $=Object.keys(T),f=Object.keys(S);if($.length!==f.length)return!1;for(let[M,F]of $.entries())if(F!==f[M])return!1;return!0}function AW(T,S){let $=Object.entries(S).filter(([,f])=>f!==void 0).map(([f,M])=>{if(U(M,c)||U(M,ET))return[f,M];else return[f,new qS(M,T[P.Symbol.Columns][f])]});if($.length===0)throw new Error("No values to set");return Object.fromEntries($)}function lX(T,S){for(let $ of S)for(let f of Object.getOwnPropertyNames($.prototype)){if(f==="constructor")continue;Object.defineProperty(T.prototype,f,Object.getOwnPropertyDescriptor($.prototype,f)||Object.create(null))}}function rX(T){return T[P.Symbol.Columns]}function x$(T){return U(T,sT)?T._.alias:U(T,BS)?T[LT].name:U(T,c)?void 0:T[P.Symbol.IsAlias]?T[P.Symbol.Name]:T[P.Symbol.BaseName]}function AT(T,S){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:S}}function aX(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let S=typeof T.logger;if(S!=="boolean"&&(S!=="object"||typeof T.logger.logQuery!=="function")&&S!=="undefined")return!1;return!0}if("schema"in T){let S=typeof T.logger;if(S!=="object"&&S!=="undefined")return!1;return!0}if("casing"in T){let S=typeof T.logger;if(S!=="string"&&S!=="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 S=typeof T.connection;if(S!=="string"&&S!=="object"&&S!=="undefined")return!1;return!0}if("client"in T){let S=typeof T.client;if(S!=="object"&&S!=="function"&&S!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class r$ extends t{static[O]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:S,...$}=T;this.config.generatedIdentity={type:"always",sequenceName:S,sequenceOptions:$}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:S,...$}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:S,sequenceOptions:$}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class sX extends r${static[O]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new eX(T,this.config)}}class eX extends b{static[O]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class T8 extends r${static[O]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new S8(T,this.config)}}class S8 extends b{static[O]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function $8(T,S){let{name:$,config:f}=AT(T,S);if(f.mode==="number")return new sX($);return new T8($)}class f8 extends t{static[O]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new M8(T,this.config)}}class M8 extends b{static[O]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class F8 extends t{static[O]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new J8(T,this.config)}}class J8 extends b{static[O]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function W8(T,S){let{name:$,config:f}=AT(T,S);if(f.mode==="number")return new f8($);return new F8($)}class A8 extends t{static[O]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new w8(T,this.config)}}class w8 extends b{static[O]="PgBoolean";getSQLType(){return"boolean"}}function mF(T){return new A8(T??"")}class X8 extends t{static[O]="PgCharBuilder";constructor(T,S){super(T,"string","PgChar");this.config.length=S.length,this.config.enumValues=S.enum}build(T){return new Y8(T,this.config)}}class Y8 extends b{static[O]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function k8(T,S={}){let{name:$,config:f}=AT(T,S);return new X8($,f)}class K8 extends t{static[O]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new O8(T,this.config)}}class O8 extends b{static[O]="PgCidr";getSQLType(){return"cidr"}}function y8(T){return new K8(T??"")}class G8 extends t{static[O]="PgCustomColumnBuilder";constructor(T,S,$){super(T,"custom","PgCustomColumn");this.config.fieldConfig=S,this.config.customTypeParams=$}build(T){return new R8(T,this.config)}}class R8 extends b{static[O]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,S){super(T,S);this.sqlName=S.customTypeParams.dataType(S.fieldConfig),this.mapTo=S.customTypeParams.toDriver,this.mapFrom=S.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 z8(T){return(S,$)=>{let{name:f,config:M}=AT(S,$);return new G8(f,M,T)}}class Z$ extends t{static[O]="PgDateColumnBaseBuilder";defaultNow(){return this.default(y`now()`)}}class H8 extends Z${static[O]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new wW(T,this.config)}}class wW extends b{static[O]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class D8 extends Z${static[O]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new XW(T,this.config)}}class XW extends b{static[O]="PgDateString";getSQLType(){return"date"}}function _8(T,S){let{name:$,config:f}=AT(T,S);if(f?.mode==="date")return new H8($);return new D8($)}class E8 extends t{static[O]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new Q8(T,this.config)}}class Q8 extends b{static[O]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function U8(T){return new E8(T??"")}class V8 extends t{static[O]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new B8(T,this.config)}}class B8 extends b{static[O]="PgInet";getSQLType(){return"inet"}}function L8(T){return new V8(T??"")}class N8 extends r${static[O]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new C8(T,this.config)}}class C8 extends b{static[O]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function YW(T){return new N8(T??"")}class I8 extends t{static[O]="PgIntervalBuilder";constructor(T,S){super(T,"string","PgInterval");this.config.intervalConfig=S}build(T){return new j8(T,this.config)}}class j8 extends b{static[O]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",S=this.precision?`(${this.precision})`:"";return`interval${T}${S}`}}function x8(T,S={}){let{name:$,config:f}=AT(T,S);return new I8($,f)}class Z8 extends t{static[O]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new kW(T,this.config)}}class kW extends b{static[O]="PgJson";constructor(T,S){super(T,S)}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 b8(T){return new Z8(T??"")}class q8 extends t{static[O]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new KW(T,this.config)}}class KW extends b{static[O]="PgJsonb";constructor(T,S){super(T,S)}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 m8(T){return new q8(T??"")}class h8 extends t{static[O]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new v8(T,this.config)}}class v8 extends b{static[O]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[S,$,f]=T.slice(1,-1).split(",");return[Number.parseFloat(S),Number.parseFloat($),Number.parseFloat(f)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class P8 extends t{static[O]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new n8(T,this.config)}}class n8 extends b{static[O]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[S,$,f]=T.slice(1,-1).split(",");return{a:Number.parseFloat(S),b:Number.parseFloat($),c:Number.parseFloat(f)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function c8(T,S){let{name:$,config:f}=AT(T,S);if(!f?.mode||f.mode==="tuple")return new h8($);return new P8($)}class o8 extends t{static[O]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new g8(T,this.config)}}class g8 extends b{static[O]="PgMacaddr";getSQLType(){return"macaddr"}}function t8(T){return new o8(T??"")}class p8 extends t{static[O]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new i8(T,this.config)}}class i8 extends b{static[O]="PgMacaddr8";getSQLType(){return"macaddr8"}}function u8(T){return new p8(T??"")}class d8 extends t{static[O]="PgNumericBuilder";constructor(T,S,$){super(T,"string","PgNumeric");this.config.precision=S,this.config.scale=$}build(T){return new OW(T,this.config)}}class OW extends b{static[O]="PgNumeric";precision;scale;constructor(T,S){super(T,S);this.precision=S.precision,this.scale=S.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 l8(T,S){let{name:$,config:f}=AT(T,S);return new d8($,f?.precision,f?.scale)}class r8 extends t{static[O]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new a8(T,this.config)}}class a8 extends b{static[O]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[S,$]=T.slice(1,-1).split(",");return[Number.parseFloat(S),Number.parseFloat($)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class s8 extends t{static[O]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new e8(T,this.config)}}class e8 extends b{static[O]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[S,$]=T.slice(1,-1).split(",");return{x:Number.parseFloat(S),y:Number.parseFloat($)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function T4(T,S){let{name:$,config:f}=AT(T,S);if(!f?.mode||f.mode==="tuple")return new r8($);return new s8($)}function CO(T){let S=[];for(let $=0;$<T.length;$+=2)S.push(Number.parseInt(T.slice($,$+2),16));return new Uint8Array(S)}function S4(T,S){let $=new ArrayBuffer(8),f=new DataView($);for(let M=0;M<8;M++)f.setUint8(M,T[S+M]);return f.getFloat64(0,!0)}function j1(T){let S=CO(T),$=0,f=S[$];$+=1;let M=new DataView(S.buffer),F=M.getUint32($,f===1);$+=4;let J;if(F&536870912)J=M.getUint32($,f===1),$+=4;if((F&65535)===1){let W=S4(S,$);$+=8;let A=S4(S,$);return $+=8,[W,A]}throw new Error("Unsupported geometry type")}class $4 extends t{static[O]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new f4(T,this.config)}}class f4 extends b{static[O]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return j1(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class M4 extends t{static[O]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new F4(T,this.config)}}class F4 extends b{static[O]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let S=j1(T);return{x:S[0],y:S[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function J4(T,S){let{name:$,config:f}=AT(T,S);if(!f?.mode||f.mode==="tuple")return new $4($);return new M4($)}class W4 extends t{static[O]="PgRealBuilder";constructor(T,S){super(T,"number","PgReal");this.config.length=S}build(T){return new A4(T,this.config)}}class A4 extends b{static[O]="PgReal";constructor(T,S){super(T,S)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function w4(T){return new W4(T??"")}class X4 extends t{static[O]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new Y4(T,this.config)}}class Y4 extends b{static[O]="PgSerial";getSQLType(){return"serial"}}function k4(T){return new X4(T??"")}class K4 extends r${static[O]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new O4(T,this.config)}}class O4 extends b{static[O]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function y4(T){return new K4(T??"")}class G4 extends t{static[O]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new R4(T,this.config)}}class R4 extends b{static[O]="PgSmallSerial";getSQLType(){return"smallserial"}}function z4(T){return new G4(T??"")}class H4 extends t{static[O]="PgTextBuilder";constructor(T,S){super(T,"string","PgText");this.config.enumValues=S.enum}build(T){return new D4(T,this.config)}}class D4 extends b{static[O]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function _4(T,S={}){let{name:$,config:f}=AT(T,S);return new H4($,f)}class E4 extends Z${constructor(T,S,$){super(T,"string","PgTime");this.withTimezone=S,this.precision=$,this.config.withTimezone=S,this.config.precision=$}static[O]="PgTimeBuilder";build(T){return new yW(T,this.config)}}class yW extends b{static[O]="PgTime";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function Q4(T,S={}){let{name:$,config:f}=AT(T,S);return new E4($,f.withTimezone??!1,f.precision)}class U4 extends Z${static[O]="PgTimestampBuilder";constructor(T,S,$){super(T,"date","PgTimestamp");this.config.withTimezone=S,this.config.precision=$}build(T){return new GW(T,this.config)}}class GW extends b{static[O]="PgTimestamp";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.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 V4 extends Z${static[O]="PgTimestampStringBuilder";constructor(T,S,$){super(T,"string","PgTimestampString");this.config.withTimezone=S,this.config.precision=$}build(T){return new RW(T,this.config)}}class RW extends b{static[O]="PgTimestampString";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function F$(T,S={}){let{name:$,config:f}=AT(T,S);if(f?.mode==="string")return new V4($,f.withTimezone??!1,f.precision);return new U4($,f?.withTimezone??!1,f?.precision)}class B4 extends t{static[O]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(y`gen_random_uuid()`)}build(T){return new zW(T,this.config)}}class zW extends b{static[O]="PgUUID";getSQLType(){return"uuid"}}function mS(T){return new B4(T??"")}class L4 extends t{static[O]="PgVarcharBuilder";constructor(T,S){super(T,"string","PgVarchar");this.config.length=S.length,this.config.enumValues=S.enum}build(T){return new N4(T,this.config)}}class N4 extends b{static[O]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function FS(T,S={}){let{name:$,config:f}=AT(T,S);return new L4($,f)}class C4 extends t{static[O]="PgBinaryVectorBuilder";constructor(T,S){super(T,"string","PgBinaryVector");this.config.dimensions=S.dimensions}build(T){return new I4(T,this.config)}}class I4 extends b{static[O]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function j4(T,S){let{name:$,config:f}=AT(T,S);return new C4($,f)}class x4 extends t{static[O]="PgHalfVectorBuilder";constructor(T,S){super(T,"array","PgHalfVector");this.config.dimensions=S.dimensions}build(T){return new Z4(T,this.config)}}class Z4 extends b{static[O]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((S)=>Number.parseFloat(S))}}function b4(T,S){let{name:$,config:f}=AT(T,S);return new x4($,f)}class q4 extends t{static[O]="PgSparseVectorBuilder";constructor(T,S){super(T,"string","PgSparseVector");this.config.dimensions=S.dimensions}build(T){return new m4(T,this.config)}}class m4 extends b{static[O]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function h4(T,S){let{name:$,config:f}=AT(T,S);return new q4($,f)}class v4 extends t{static[O]="PgVectorBuilder";constructor(T,S){super(T,"array","PgVector");this.config.dimensions=S.dimensions}build(T){return new P4(T,this.config)}}class P4 extends b{static[O]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((S)=>Number.parseFloat(S))}}function n4(T,S){let{name:$,config:f}=AT(T,S);return new v4($,f)}function c4(){return{bigint:$8,bigserial:W8,boolean:mF,char:k8,cidr:y8,customType:z8,date:_8,doublePrecision:U8,inet:L8,integer:YW,interval:x8,json:b8,jsonb:m8,line:c8,macaddr:t8,macaddr8:u8,numeric:l8,point:T4,geometry:J4,real:w4,serial:k4,smallint:y4,smallserial:z4,text:_4,time:Q4,timestamp:F$,uuid:mS,varchar:FS,bit:j4,halfvec:b4,sparsevec:h4,vector:n4}}var x1=Symbol.for("drizzle:PgInlineForeignKeys"),o4=Symbol.for("drizzle:EnableRLS");class JS extends P{static[O]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:x1,EnableRLS:o4});[x1]=[];[o4]=!1;[P.Symbol.ExtraConfigBuilder]=void 0}function IO(T,S,$,f,M=T){let F=new JS(T,f,M),J=typeof S==="function"?S(c4()):S,W=Object.fromEntries(Object.entries(J).map(([X,Y])=>{let k=Y;k.setName(X);let R=k.build(F);return F[x1].push(...k.buildForeignKeys(R,F)),[X,R]})),A=Object.fromEntries(Object.entries(J).map(([X,Y])=>{let k=Y;k.setName(X);let R=k.buildExtraConfigColumn(F);return[X,R]})),w=Object.assign(F,W);if(w[P.Symbol.Columns]=W,w[P.Symbol.ExtraConfigColumns]=A,$)w[JS.Symbol.ExtraConfigBuilder]=$;return Object.assign(w,{enableRLS:()=>{return w[JS.Symbol.EnableRLS]=!0,w}})}var a$=(T,S,$)=>{return IO(T,S,$,void 0)};function g4(...T){if(T[0].columns)return new hF(T[0].columns,T[0].name);return new hF(T)}class hF{static[O]="PgPrimaryKeyBuilder";columns;name;constructor(T,S){this.columns=T,this.name=S}build(T){return new t4(T,this.columns,this.name)}}class t4{constructor(T,S,$){this.table=T,this.columns=S,this.name=$}static[O]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[JS.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class Z1{constructor(T,S,$){this.sourceTable=T,this.referencedTable=S,this.relationName=$,this.referencedTableName=S[P.Symbol.Name]}static[O]="Relation";referencedTableName;fieldName}class p4{constructor(T,S){this.table=T,this.config=S}static[O]="Relations"}class s$ extends Z1{constructor(T,S,$,f){super(T,S,$?.relationName);this.config=$,this.isNullable=f}static[O]="One";withFieldName(T){let S=new s$(this.sourceTable,this.referencedTable,this.config,this.isNullable);return S.fieldName=T,S}}class vF extends Z1{constructor(T,S,$){super(T,S,$?.relationName);this.config=$}static[O]="Many";withFieldName(T){let S=new vF(this.sourceTable,this.referencedTable,this.config);return S.fieldName=T,S}}function i4(){return{and:bF,between:PX,eq:JW,exists:hX,gt:WW,gte:IX,ilike:gX,inArray:ZX,isNull:qX,isNotNull:mX,like:cX,lt:jX,lte:xX,ne:LX,not:CX,notBetween:nX,notExists:vX,notLike:oX,notIlike:tX,notInArray:bX,or:NX,sql:y}}function u4(){return{sql:y,asc:pX,desc:iX}}function d4(T,S){if(Object.keys(T).length===1&&"default"in T&&!U(T.default,P))T=T.default;let $={},f={},M={};for(let[F,J]of Object.entries(T))if(U(J,P)){let W=Ef(J),A=f[W];$[W]=F,M[F]={tsName:F,dbName:J[P.Symbol.Name],schema:J[P.Symbol.Schema],columns:J[P.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let X of Object.values(J[P.Symbol.Columns]))if(X.primary)M[F].primaryKey.push(X);let w=J[P.Symbol.ExtraConfigBuilder]?.(J[P.Symbol.ExtraConfigColumns]);if(w){for(let X of Object.values(w))if(U(X,hF))M[F].primaryKey.push(...X.columns)}}else if(U(J,p4)){let W=Ef(J.table),A=$[W],w=J.config(S(J.table)),X;for(let[Y,k]of Object.entries(w))if(A){let R=M[A];if(R.relations[Y]=k,X)R.primaryKey.push(...X)}else{if(!(W in f))f[W]={relations:{},primaryKey:X};f[W].relations[Y]=k}}return{tables:M,tableNamesMap:$}}function jO(T){return function S($,f){return new s$(T,$,f,f?.fields.reduce((M,F)=>M&&F.notNull,!0)??!1)}}function xO(T){return function S($,f){return new vF(T,$,f)}}function l4(T,S,$){if(U($,s$)&&$.config)return{fields:$.config.fields,references:$.config.references};let f=S[Ef($.referencedTable)];if(!f)throw new Error(`Table "${$.referencedTable[P.Symbol.Name]}" not found in schema`);let M=T[f];if(!M)throw new Error(`Table "${f}" not found in schema`);let F=$.sourceTable,J=S[Ef(F)];if(!J)throw new Error(`Table "${F[P.Symbol.Name]}" not found in schema`);let W=[];for(let A of Object.values(M.relations))if($.relationName&&$!==A&&A.relationName===$.relationName||!$.relationName&&A.referencedTable===$.sourceTable)W.push(A);if(W.length>1)throw $.relationName?new Error(`There are multiple relations with name "${$.relationName}" in table "${f}"`):new Error(`There are multiple relations between "${f}" and "${$.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(W[0]&&U(W[0],s$)&&W[0].config)return{fields:W[0].config.references,references:W[0].config.fields};throw new Error(`There is not enough information to infer relation "${J}.${$.fieldName}"`)}function r4(T){return{one:jO(T),many:xO(T)}}function HW(T,S,$,f,M=(F)=>F){let F={};for(let[J,W]of f.entries())if(W.isJson){let A=S.relations[W.tsKey],w=$[J],X=typeof w==="string"?JSON.parse(w):w;F[W.tsKey]=U(A,s$)?X&&HW(T,T[W.relationTableTsKey],X,W.selection,M):X.map((Y)=>HW(T,T[W.relationTableTsKey],Y,W.selection,M))}else{let A=M($[J]),w=W.field,X;if(U(w,ET))X=w;else if(U(w,c))X=w.decoder;else X=w.sql.decoder;F[W.tsKey]=A===null?null:X.mapFromDriverValue(A)}return F}import Ny from"path";import $y from"os";import fy from"fs";var DW=new Map,b1=new Map,q1=Symbol("OriginError"),_M={};class tS extends Promise{constructor(T,S,$,f,M={}){let F,J;super((W,A)=>{F=W,J=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=S,this.handler=$,this.canceller=f,this.options=M,this.state=null,this.statement=null,this.resolve=(W)=>(this.active=!1,F(W)),this.reject=(W)=>(this.active=!1,J(W)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[q1]=this.handler.debug?new Error:this.tagged&&ZO(this.strings)}get origin(){return(this.handler.debug?this[q1].stack:this.tagged&&b1.has(this.strings)?b1.get(this.strings):b1.set(this.strings,this[q1].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,S){if(this.options.simple=!1,typeof T==="function")S=T,T=1;if(this.cursorRows=T,typeof S==="function")return this.cursorFn=S,this;let $;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};$&&$();let f=new Promise((M,F)=>{this.cursorFn=(J)=>{return M({value:J,done:!1}),new Promise((W)=>$=W)},this.resolve=()=>(this.active=!1,M({done:!0})),this.reject=(J)=>(this.active=!1,F(J))});return this.execute(),f},return(){return $&&$(_M),{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 ZO(T){if(DW.has(T))return DW.get(T);let S=Error.stackTraceLimit;return Error.stackTraceLimit=4,DW.set(T,new Error),Error.stackTraceLimit=S,DW.get(T)}class EM extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var pT={connection:a4,postgres:s4,generic:e4,notSupported:TY};function a4(T,S,$){let{host:f,port:M}=$||S,F=Object.assign(new Error("write "+T+" "+(S.path||f+":"+M)),{code:T,errno:T,address:S.path||f},S.path?{}:{port:M});return Error.captureStackTrace(F,a4),F}function s4(T){let S=new EM(T);return Error.captureStackTrace(S,s4),S}function e4(T,S){let $=Object.assign(new Error(T+": "+S),{code:T});return Error.captureStackTrace($,e4),$}function TY(T){let S=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace(S,TY),S}var bO={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 QW{then(){m1()}catch(){m1()}finally(){m1()}}class oF extends QW{constructor(T){super();this.value=BW(T)}}class y$ extends QW{constructor(T,S,$){super();this.value=T,this.type=S,this.array=$}}class UW extends QW{constructor(T,S){super();this.first=T,this.rest=S}build(T,S,$,f){let M=qO.map(([F,J])=>({fn:J,i:T.search(F)})).sort((F,J)=>F.i-J.i).pop();return M.i===-1?c1(this.first,f):M.fn(this.first,this.rest,S,$,f)}}function VW(T,S,$,f){let M=T instanceof y$?T.value:T;if(M===void 0){if(T instanceof y$?T.value=f.transform.undefined:M=T=f.transform.undefined,M===void 0)throw pT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+$.push(T instanceof y$?(S.push(T.value),T.array?T.array[T.type||EW(T.value)]||T.type||MY(T.value):T.type):(S.push(T),EW(T)))}var $Y=JY(bO);function P1(T,S,$,f,M,F){for(let J=1;J<T.strings.length;J++)S+=n1(S,$,f,M,F)+T.strings[J],$=T.args[J];return S}function n1(T,S,$,f,M){return S instanceof UW?S.build(T,$,f,M):S instanceof tS?v1(S,$,f,M):S instanceof oF?S.value:S&&S[0]instanceof tS?S.reduce((F,J)=>F+" "+v1(J,$,f,M),""):VW(S,$,f,M)}function v1(T,S,$,f){return T.fragment=!0,P1(T,T.strings[0],T.args[0],S,$,f)}function fY(T,S,$,f,M){return T.map((F)=>"("+f.map((J)=>n1("values",F[J],S,$,M)).join(",")+")").join(",")}function SY(T,S,$,f,M){let F=Array.isArray(T[0]),J=S.length?S.flat():Object.keys(F?T[0]:T);return fY(F?T:[T],$,f,J,M)}function _W(T,S,$,f,M){if(typeof T==="string"&&(T=[T].concat(S)),Array.isArray(T))return c1(T,M);let F;return(S.length?S.flat():Object.keys(T)).map((W)=>{return F=T[W],(F instanceof tS?v1(F,$,f,M):F instanceof oF?F.value:VW(F,$,f,M))+" as "+BW(M.transform.column.to?M.transform.column.to(W):W)}).join(",")}var qO=Object.entries({values:SY,in:(...T)=>{let S=SY(...T);return S==="()"?"(null)":S},select:_W,as:_W,returning:_W,"\\(":_W,update(T,S,$,f,M){return(S.length?S.flat():Object.keys(T)).map((F)=>BW(M.transform.column.to?M.transform.column.to(F):F)+"="+n1("values",T[F],$,f,M))},insert(T,S,$,f,M){let F=S.length?S.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+c1(F,M)+")values"+fY(Array.isArray(T)?T:[T],$,f,F,M)}}).map(([T,S])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),S]);function m1(){throw pT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:mO,parsers:hO}=$Y;function MY(T){if(Array.isArray(T))return MY(T[0]);return typeof T==="string"?1009:0}var FY=function(T){let S=JY(T||{});return{serializers:Object.assign({},mO,S.serializers),parsers:Object.assign({},hO,S.parsers)}};function JY(T){return Object.keys(T).reduce((S,$)=>{if(T[$].from&&[].concat(T[$].from).forEach((f)=>S.parsers[f]=T[$].parse),T[$].serialize)S.serializers[T[$].to]=T[$].serialize,T[$].from&&[].concat(T[$].from).forEach((f)=>S.serializers[f]=T[$].serialize);return S},{parsers:{},serializers:{}})}function c1(T,{transform:{column:S}}){return T.map(($)=>BW(S.to?S.to($):$)).join(",")}var BW=function T(S){return'"'+S.replace(/"/g,'""').replace(/\./g,'"."')+'"'},EW=function T(S){return S instanceof y$?S.type:S instanceof Date?1184:S instanceof Uint8Array?17:S===!0||S===!1?16:typeof S==="bigint"?20:Array.isArray(S)?T(S[0]):0},vO=/\\/g,PO=/"/g;function nO(T){return T.replace(vO,"\\\\").replace(PO,"\\\"")}var WY=function T(S,$,f,M){if(Array.isArray(S)===!1)return S;if(!S.length)return"{}";let F=S[0],J=M===1020?";":",";if(Array.isArray(F)&&!F.type)return"{"+S.map((W)=>T(W,$,f,M)).join(J)+"}";return"{"+S.map((W)=>{if(W===void 0){if(W=f.transform.undefined,W===void 0)throw pT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return W===null?"null":'"'+nO($?$(W.type?W.value:W):""+W)+'"'}).join(J)+"}"},h1={i:0,char:null,str:"",quoted:!1,last:0},AY=function T(S,$,f){return h1.i=h1.last=0,wY(h1,S,$,f)};function wY(T,S,$,f){let M=[],F=f===1020?";":",";for(;T.i<S.length;T.i++){if(T.char=S[T.i],T.quoted)if(T.char==="\\")T.str+=S[++T.i];else if(T.char==='"')M.push($?$(T.str):T.str),T.str="",T.quoted=S[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,M.push(wY(T,S,$,f));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&M.push($?$(S.slice(T.last,T.i)):S.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===F&&T.p!=="}"&&T.p!=='"')M.push($?$(S.slice(T.last,T.i)):S.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&M.push($?$(S.slice(T.last,T.i+1)):S.slice(T.last,T.i+1)),M}var Qf=(T)=>{let S=T[0];for(let $=1;$<T.length;$++)S+=T[$]==="_"?T[++$].toUpperCase():T[$];return S},Uf=(T)=>{let S=T[0].toUpperCase();for(let $=1;$<T.length;$++)S+=T[$]==="_"?T[++$].toUpperCase():T[$];return S},Vf=(T)=>T.replace(/_/g,"-"),PF=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),nF=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),cF=(T)=>T.replace(/-/g,"_");function o1(T){return function S($,f){return typeof $==="object"&&$!==null&&(f.type===114||f.type===3802)?Array.isArray($)?$.map((M)=>S(M,f)):Object.entries($).reduce((M,[F,J])=>Object.assign(M,{[T(F)]:S(J,f)}),{}):$}}Qf.column={from:Qf};Qf.value={from:o1(Qf)};PF.column={to:PF};var g1={...Qf};g1.column.to=PF;Uf.column={from:Uf};Uf.value={from:o1(Uf)};nF.column={to:nF};var t1={...Uf};t1.column.to=nF;Vf.column={from:Vf};Vf.value={from:o1(Vf)};cF.column={to:cF};var p1={...Vf};p1.column.to=cF;import XY from"net";import tO from"tls";import gF from"crypto";import i1 from"stream";import{performance as YY}from"perf_hooks";class Bf 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 hS=cO;function cO(T=[]){let S=T.slice(),$=0;return{get length(){return S.length-$},remove:(f)=>{let M=S.indexOf(f);return M===-1?null:(S.splice(M,1),f)},push:(f)=>(S.push(f),f),shift:()=>{let f=S[$++];if($===S.length)$=0,S=[];else S[$-1]=void 0;return f}}}var yS=Buffer.allocUnsafe(256),oO="BCcDdEFfHPpQSX".split("").reduce((T,S)=>{let $=S.charCodeAt(0);return T[S]=()=>{return yS[0]=$,DT.i=5,DT},T},{}),DT=Object.assign(gO,oO,{N:String.fromCharCode(0),i:0,inc(T){return DT.i+=T,DT},str(T){let S=Buffer.byteLength(T);return LW(S),DT.i+=yS.write(T,DT.i,S,"utf8"),DT},i16(T){return LW(2),yS.writeUInt16BE(T,DT.i),DT.i+=2,DT},i32(T,S){if(S||S===0)return yS.writeUInt32BE(T,S),DT;return LW(4),yS.writeUInt32BE(T,DT.i),DT.i+=4,DT},z(T){return LW(T),yS.fill(0,DT.i,DT.i+T),DT.i+=T,DT},raw(T){return yS=Buffer.concat([yS.subarray(0,DT.i),T]),DT.i=yS.length,DT},end(T=1){yS.writeUInt32BE(DT.i-T,T);let S=yS.subarray(0,DT.i);return DT.i=0,yS=Buffer.allocUnsafe(256),S}}),r=DT;function LW(T){if(yS.length-DT.i<T){let S=yS,$=S.length;yS=Buffer.allocUnsafe($+($>>1)+T),S.copy(yS)}}function gO(){return DT.i=0,DT}var l1=OY,pO=1,e$=r().S().end(),kY=r().H().end(),iO=r().i32(8).i32(80877103).end(8),uO=Buffer.concat([r().E().str(r.N).i32(0).end(),e$]),dO=r().D().str("S").str(r.N).end(),QM=()=>{},lO=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),rO={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 OY(T,S={},{onopen:$=QM,onend:f=QM,onclose:M=QM}={}){let{ssl:F,max:J,user:W,host:A,port:w,database:X,parsers:Y,transform:k,onnotice:R,onnotify:z,onparameter:Q,max_pipeline:D,keep_alive:N,backoff:V,target_session_attrs:L}=T,Z=hS(),_=pO++,E={pid:null,secret:null},B=d1(cW,T.idle_timeout),q=d1(cW,T.max_lifetime),v=d1(gY,T.connect_timeout),G=null,o,n=new Bf,u=Buffer.alloc(0),yT=T.fetch_types,zT={},ES={},G$=Math.random().toString(36).slice(2),C=1,l=0,GT=0,jT=0,iT=0,JT=0,UT=0,gT=0,ZT=null,NT=null,WS=!1,VT=null,pS=null,AS=null,m$=null,uT=null,CT=null,iS=null,J$=null,m=null,LM=null,wS={queue:S.closed,idleTimer:B,connect(K){AS=K||!0,QA()},terminate:CM,execute:NM,cancel:PY,end:cW,count:0,id:_};return S.closed&&S.closed.push(wS),wS;async function vY(){let K;try{K=T.socket?await Promise.resolve(T.socket(T)):new XY.Socket}catch(H){If(H);return}return K.on("error",If),K.on("close",UA),K.on("drain",_A),K}async function PY({pid:K,secret:H},a,RT){try{o=r().i32(16).i32(80877102).i32(K).i32(H).end(16),await EA(),G.once("error",RT),G.once("close",a)}catch(hT){RT(hT)}}function NM(K){if(WS)return rF(K,pT.connection("CONNECTION_DESTROYED",T));if(K.cancelled)return;try{return K.state=E,m?Z.push(K):(m=K,m.active=!0),oY(K),$S(nY(K))&&!K.describeFirst&&!K.cursorFn&&Z.length<D&&(!K.options.onexecute||K.options.onexecute(wS))}catch(H){return Z.length===0&&$S(e$),W$(H),!0}}function nY(K){if(K.parameters.length>=65534)throw pT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return K.options.simple?r().Q().str(K.statement.string+r.N).end():K.describeFirst?Buffer.concat([zA(K),kY]):K.prepare?K.prepared?lF(K):Buffer.concat([zA(K),lF(K)]):cY(K)}function zA(K){return Buffer.concat([BA(K.statement.string,K.parameters,K.statement.types,K.statement.name),Lk("S",K.statement.name)])}function lF(K){return Buffer.concat([Bk(K.parameters,K.statement.types,K.statement.name,K.cursorName),K.cursorFn?LA("",K.cursorRows):uO])}function cY(K){return Buffer.concat([BA(K.statement.string,K.parameters,K.statement.types),dO,lF(K)])}function oY(K){let H=[],a=[],RT=P1(K,K.strings[0],K.args[0],H,a,T);!K.tagged&&K.args.forEach((hT)=>VW(hT,H,a,T)),K.prepare=T.prepare&&("prepare"in K.options?K.options.prepare:!0),K.string=RT,K.signature=K.prepare&&a+RT,K.onlyDescribe&&delete ES[K.signature],K.parameters=K.parameters||H,K.prepared=K.prepare&&K.signature in ES,K.describeFirst=K.onlyDescribe||H.length&&!K.prepared,K.statement=K.prepared?ES[K.signature]:{string:RT,types:a,name:K.prepare?G$+C++:""},typeof T.debug==="function"&&T.debug(_,RT,H,a)}function $S(K,H){if(CT=CT?Buffer.concat([CT,K]):Buffer.from(K),H||CT.length>=1024)return HA(H);return NT===null&&(NT=setImmediate(HA)),!0}function HA(K){let H=G.write(CT,K);return NT!==null&&clearImmediate(NT),CT=NT=null,H}function gY(){W$(pT.connection("CONNECT_TIMEOUT",T,G)),G.destroy()}async function DA(){if($S(iO),!await new Promise((H)=>G.once("data",(a)=>H(a[0]===83)))&&F==="prefer")return Cf();G.removeAllListeners(),G=tO.connect({socket:G,servername:XY.isIP(G.host)?void 0:G.host,...F==="require"||F==="allow"||F==="prefer"?{rejectUnauthorized:!1}:F==="verify-full"?{}:typeof F==="object"?F:{}}),G.on("secureConnect",Cf),G.on("error",If),G.on("close",UA),G.on("drain",_A)}function _A(){!m&&$(wS)}function nW(K){if(VT){if(VT.push(K),GT-=K.length,GT>=0)return}u=VT?Buffer.concat(VT,JT-GT):u.length===0?K:Buffer.concat([u,K],u.length+K.length);while(u.length>4){if(JT=u.readUInt32BE(1),JT>=u.length){GT=JT-u.length,VT=[u];break}try{tY(u.subarray(0,JT+1))}catch(H){m&&(m.cursorFn||m.describeFirst)&&$S(e$),W$(H)}u=u.subarray(JT+1),GT=0,VT=null}}async function EA(){if(WS=!1,zT={},G||(G=await vY()),!G)return;if(v.start(),T.socket)return F?DA():Cf();if(G.on("connect",F?DA:Cf),T.path)return G.connect(T.path);G.ssl=F,G.connect(w[jT],A[jT]),G.host=A[jT],G.port=w[jT],jT=(jT+1)%w.length}function QA(){setTimeout(EA,l?l+UT-YY.now():0)}function Cf(){try{ES={},yT=T.fetch_types,G$=Math.random().toString(36).slice(2),C=1,q.start(),G.on("data",nW),N&&G.setKeepAlive&&G.setKeepAlive(!0,1000*N);let K=Ck();$S(K)}catch(K){If(K)}}function If(K){if(wS.queue===S.connecting&&T.host[iT+1])return;W$(K);while(Z.length)rF(Z.shift(),K)}function W$(K){uT&&(uT.destroy(K),uT=null),m&&rF(m,K),AS&&(rF(AS,K),AS=null)}function rF(K,H){"query"in H||"parameters"in H||Object.defineProperties(H,{stack:{value:H.stack+K.origin.replace(/.*\n/,`
|
|
54
|
-
`),enumerable:T.debug},query:{value:K.string,enumerable:T.debug},parameters:{value:K.parameters,enumerable:T.debug},args:{value:K.args,enumerable:T.debug},types:{value:K.statement&&K.statement.types,enumerable:T.debug}}),K.reject(H)}function cW(){return
|
|
54
|
+
${F}`);let W=fS.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(PT.readFileSync(W,"utf-8"))}async write(T,$,S,f){let M=fS.join(this.baseDir,T),F=fS.join(M,`${$}.input.json`),J=fS.join(M,`${$}.output.json`),W=JSON.stringify(S,null,"\t");if(!PT.existsSync(this.baseDir))PT.mkdirSync(this.baseDir,{recursive:!0});if(!PT.existsSync(M))PT.mkdirSync(M);if(PT.writeFileSync(F,W),PT.existsSync(J))PT.unlinkSync(J);let A=await f(...S);return PT.writeFileSync(J,JSON.stringify(A,null,"\t")),A}add(T,$){return{flush:()=>{this.flush(T)},for:(S)=>{if(this.mode!=="off"&&!this.filesTouched.has(T))this.filesTouched.set(T,new Set);return{get:async(...f)=>{let M=S;if(this.mode!=="off"){let F=this.filenameCache.get(S);if(!F)F=RO(S),this.filenameCache.set(S,M),M=F;this.filesTouched.get(T)?.add(M)}switch(this.mode){case"off":return $(...f);case"read":return this.read(T,M,f);case"write":return this.write(T,M,f,$);case"read-write":try{return this.read(T,M,f)}catch(F){if(F instanceof Error)return this.write(T,M,f,$);throw F}}}}}}}flush(...T){for(let[$,S]of this.filesTouched.entries())if(T.length===0||T.includes($)){let f=fS.join(this.baseDir,$),M=PT.readdirSync(f);for(let F of M){let J=F.replace(".input.json","").replace(".output.json","");if(!S.has(J))console.info(`\uD83D\uDCA5 Flushing ${J}`),PT.unlinkSync(fS.join(f,F))}}}}function zO(T,...$){let[S,f,M,F]=$,J=[{role:"user",content:Yw(f)},{role:"user",content:S}],W=F.at(-1);if(W)J.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(W.response,null,2),"Here's the error message:",W.error.toString()].join(`
|
|
55
|
+
`)});return{model:T,messages:J}}var w1={"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 HO(T){return async function $(S,f){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let M=await T.chat.completions.create({...S,stream:!1,response_format:{type:"json_object"}},f),F=M.choices[0].message?.content,{usage:J}=M;if(F&&J){let W=J.prompt_tokens,A=J.prompt_tokens_details?.cached_tokens??0,w=W-A,X=J.completion_tokens,Y=W*w1[S.model].promptPricePerToken+w*w1[S.model].promptPricePerTokenCached+X*w1[S.model].completionPricePerToken;return{data:JSON.parse(F),usage:J,usdPrice:Y}}if(!F&&!J)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 JX=new Map,WX=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:S,apiKey:f,cachingMode:M,cacheKey:F="openai-safegen",logger:J}){this.usdBudget=$,this.usdMinimum=S,this.squirrel=new A1(M);let W=JX.get(f);if(M!=="read"){if(!W)W=new MX({apiKey:f,dangerouslyAllowBrowser:!1}),JX.set(f,W);this.client=W}this.getUnknownJsonFromOpenAi=HO(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(F,this.getUnknownJsonFromOpenAi),this.from=Xw(async(...A)=>{if(this.usdBudget<this.usdMinimum)return J?.warn("SafeGen budget exhausted"),A[1];let w=zO(T,...A),X=A[0],Y=A[3],{data:k,usage:R,usdPrice:z}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${X.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${Y.length}`).get(w);return this.lastUsage=R,this.usdBudget-=z,k})}from};import{exec as by}from"child_process";var X1=(T)=>{let $=Q$(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let S=new Map;for(let[f,M]of T.atoms)if(!f.includes("\uD83D\uDD0D")){let F=Y$(M);if(M.family){let J=S.get(M.family.key);if(!J||!("familyMembers"in J))J={key:M.family.key,familyMembers:new Map},S.set(M.family.key,J);J.familyMembers.set(M.family.subKey,F)}else S.set(f,F)}return S},effects:[({setSelf:S})=>{T.on.atomCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;S((M)=>{if(f.family){let{key:F,subKey:J}=f.family,W=M.get(F);if(W===void 0||!("familyMembers"in W))W={key:F,familyMembers:new Map},M.set(F,W);W.familyMembers.set(J,f)}else M.set(f.key,f);return M})}),T.on.atomDisposal.subscribe("introspection",(f)=>{S((M)=>{if(f.family){let{key:F,subKey:J}=f.family,W=M.get(F);if(W&&"familyMembers"in W){if(W.familyMembers.delete(J),W.familyMembers.size===0)M.delete(F)}}else M.delete(f.key);return M})})}]},void 0);return u$(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:S})=>S($)})};var Y1=(T)=>{let $=Q$(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let S=new Map;for(let f of[T.readonlySelectors,T.selectors])for(let[M,F]of f)if(!M.includes("\uD83D\uDD0D")){let J=Y$(F);if(F.family){let W=S.get(F.family.key);if(!W||!("familyMembers"in W))W={key:F.family.key,familyMembers:new Map},S.set(F.family.key,W);W.familyMembers.set(F.family.subKey,J)}else S.set(M,J)}return S},effects:[({setSelf:S})=>{T.on.selectorCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;S((M)=>{if(f.family){let{key:F,subKey:J}=f.family,W=M.get(F);if(W===void 0||!("familyMembers"in W))W={key:F,familyMembers:new Map},M.set(F,W);W.familyMembers.set(J,f)}else M.set(f.key,f);return M})}),T.on.selectorDisposal.subscribe("introspection",(f)=>{S((M)=>{if(f.family){let{key:F,subKey:J}=f.family,W=M.get(F);if(W&&"familyMembers"in W){if(W.familyMembers.delete(J),W.familyMembers.size===0)M.delete(F)}}else M.delete(f.key);return M})})}]},void 0);return u$(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:S})=>S($)})};class sJ{supported;constructor(T){this.supported=T}refine(T){for(let[$,S]of Object.entries(this.supported))try{if(S(T)===!0&&S!==Boolean)return{type:$,data:T}}catch(f){try{if(T instanceof S)return{type:$,data:T}}catch(M){}}return null}}var k1=new sJ({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function K1(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var O1=new sJ({object:K1,array:(T)=>Array.isArray(T)}),DO=new sJ({...k1.supported,...O1.supported}),HM=(T)=>{if(T===void 0)return"undefined";let $=DO.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class AX{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=WT.STORE){this.store=T;this.atomIndex=X1(this.store),this.selectorIndex=Y1(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=AX.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=iW(this.atomIndex),S=iW(this.selectorIndex),f=[...$.values()].filter((W)=>("familyMembers"in W)),M=[...S.values()].filter((W)=>("familyMembers"in W)),F=performance.now(),J=[];if(T.atomFamilies)for(let W of f){let A=W.familyMembers.values();for(let w of A){let Y=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,k=F-Y;J.push([w,k])}}if(T.selectorFamilies)for(let W of M){let A=W.familyMembers.values();for(let w of A){let Y=this.statesCreatedAt.get(w.key)??this.auditorCreatedAt,k=F-Y;J.push([w,k])}}return J}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var y1=(T,$)=>{let S=(f,M)=>{let J=((A,w)=>{let X=$(A,w);if(X)return X;return null})(f,M);if(J?.jobComplete??J?.pathComplete)return J;let W=Array.isArray(M)?M.map((A,w)=>[w,A]):K1(M)?Object.entries(M):[];for(let[A,w]of W){let X=S([...f,A],w);if(X?.jobComplete)return X}return{}};S([],T)};function _O(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function EO(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function QO(T,$){return{summary:`${T} \u2192 ${$}`}}function wX(T,$,S){let f="",M=[],F=[],J=[];return y1(T,(W,A)=>{let w;for(w of W){let X=$[w];if(X===void 0)F.push([w,JSON.stringify(A)]);else{let Y=S(A,X);if(Y.summary!=="No Change")J.push([w,Y])}}}),y1($,(W,A)=>{let w;for(w of W)if(T[w]===void 0)M.push([w,JSON.stringify(A)])}),f=`\uFF5E${J.length} \uFF0B${M.length} \uFF0D${F.length}`,{summary:f,added:M,removed:F,changed:J}}function UO(T,$,S){return wX(T,$,S)}class XX{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,S){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let f of Object.keys(T.supported)){let M=S[f];this.leafDiffers[f]=M}for(let f of Object.keys($.supported)){let M=S[f];this.treeDiffers[f]=M}}diff(T,$){if(T===$)return{summary:"No Change"};let S=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),f=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(S!==null&&f!==null){if(S.type===f.type){if(S.type in this.leafDiffers)return this.leafDiffers[S.type](S.data,f.data);if(S.type in this.treeDiffers)return this.treeDiffers[S.type](S.data,f.data,(W,A)=>this.diff(W,A))}}let M=HM(T),F=HM($);if(M===F)return{summary:`${M} \u2192 ${F}`};return{summary:`Type change: ${M} \u2192 ${F}`}}}var WC=new XX(k1,O1,{number:_O,string:EO,boolean:QO,null:()=>({summary:"No Change"}),object:wX,array:UO});var O=Symbol.for("drizzle:entityKind"),yC=Symbol.for("drizzle:hasOwnEntityKind");function U(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,O))throw new Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let S=Object.getPrototypeOf(T).constructor;if(S)while(S){if(O in S&&S[O]===$[O])return!0;S=Object.getPrototypeOf(S)}return!1}class ET{constructor(T,$){this.table=T,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[O]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class G1{static[O]="ColumnBuilder";config;constructor(T,$,S){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:S,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var MS=Symbol.for("drizzle:Name");class R1{static[O]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:S,columns:f,foreignColumns:M}=T();return{name:S,columns:f,foreignTable:M[0].table,foreignColumns:M}},$)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 YX(T,this)}}class YX{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[O]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:S}=this.reference(),f=$.map((J)=>J.name),M=S.map((J)=>J.name),F=[this.table[MS],...f,S[0].table[MS],...M];return T??`${F.join("_")}_fk`}}function eJ(T,...$){return T(...$)}function kX(T,$){return`${T[MS]}_${$.join("_")}_unique`}function KX(T,$,S){for(let f=$;f<T.length;f++){let M=T[f];if(M==="\\"){f++;continue}if(M==='"')return[T.slice($,f).replace(/\\/g,""),f+1];if(S)continue;if(M===","||M==="}")return[T.slice($,f).replace(/\\/g,""),f]}return[T.slice($).replace(/\\/g,""),T.length]}function OX(T,$=0){let S=[],f=$,M=!1;while(f<T.length){let F=T[f];if(F===","){if(M||f===$)S.push("");M=!0,f++;continue}if(M=!1,F==="\\"){f+=2;continue}if(F==='"'){let[A,w]=KX(T,f+1,!0);S.push(A),f=w;continue}if(F==="}")return[S,f+1];if(F==="{"){let[A,w]=OX(T,f+1);S.push(A),f=w;continue}let[J,W]=KX(T,f,!1);S.push(J),f=W}return[S,f]}function yX(T){let[$]=OX(T,1);return $}function z1(T){return`{${T.map(($)=>{if(Array.isArray($))return z1($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class t extends G1{foreignKeyConfigs=[];static[O]="PgColumnBuilder";array(T){return new RX(this.config.name,this,T)}references(T,$={}){return this.foreignKeyConfigs.push({ref:T,actions:$}),this}unique(T,$){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,$){return this.foreignKeyConfigs.map(({ref:S,actions:f})=>{return eJ((M,F)=>{let J=new R1(()=>{let W=M();return{columns:[T],foreignColumns:[W]}});if(F.onUpdate)J.onUpdate(F.onUpdate);if(F.onDelete)J.onDelete(F.onDelete);return J.build($)},S,f)})}buildExtraConfigColumn(T){return new GX(T,this.config)}}class b extends ET{constructor(T,$){if(!$.uniqueName)$.uniqueName=kX(T,[$.name]);super(T,$);this.table=T}static[O]="PgColumn"}class GX extends b{static[O]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(T){return this.indexConfig.opClass=T,this}}class CF{static[O]="IndexedColumn";constructor(T,$,S,f){this.name=T,this.keyAsName=$,this.type=S,this.indexConfig=f}name;keyAsName;type;indexConfig}class RX extends t{static[O]="PgArrayBuilder";constructor(T,$,S){super(T,"array","PgArray");this.config.baseBuilder=$,this.config.size=S}build(T){let $=this.config.baseBuilder.build(T);return new H1(T,this.config,$)}}class H1 extends b{constructor(T,$,S,f){super(T,$);this.baseColumn=S,this.range=f,this.size=$.size}size;static[O]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=yX(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let S=T.map((f)=>f===null?null:U(this.baseColumn,H1)?this.baseColumn.mapToDriverValue(f,!0):this.baseColumn.mapToDriverValue(f));if($)return S;return z1(S)}}var D1=Symbol.for("drizzle:isPgEnum");function zX(T){return!!T&&typeof T==="function"&&D1 in T&&T[D1]===!0}class HX extends t{static[O]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new DX(T,this.config)}}class DX extends b{static[O]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function TW(T,$){return VO(T,$,void 0)}function VO(T,$,S){let f=Object.assign((M)=>new HX(M??"",f),{enumName:T,enumValues:$,schema:S,[D1]:!0});return f}class sT{static[O]="Subquery";constructor(T,$,S,f=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:S,isWith:f}}}class IF extends sT{static[O]="WithSubquery"}var _X="0.39.1";var _1,E1,QT={startActiveSpan(T,$){if(!_1)return $();if(!E1)E1=_1.trace.getTracer("drizzle-orm",_X);return eJ((S,f)=>f.startActiveSpan(T,(M)=>{try{return $(M)}catch(F){throw M.setStatus({code:S.SpanStatusCode.ERROR,message:F instanceof Error?F.message:"Unknown error"}),F}finally{M.end()}}),_1,E1)}};var LT=Symbol.for("drizzle:ViewBaseConfig");var $W=Symbol.for("drizzle:Schema"),SW=Symbol.for("drizzle:Columns"),EX=Symbol.for("drizzle:ExtraConfigColumns"),Q1=Symbol.for("drizzle:OriginalName"),U1=Symbol.for("drizzle:BaseName"),jF=Symbol.for("drizzle:IsAlias"),QX=Symbol.for("drizzle:ExtraConfigBuilder"),BO=Symbol.for("drizzle:IsDrizzleTable");class P{static[O]="Table";static Symbol={Name:MS,Schema:$W,OriginalName:Q1,Columns:SW,ExtraConfigColumns:EX,BaseName:U1,IsAlias:jF,ExtraConfigBuilder:QX};[MS];[Q1];[$W];[SW];[EX];[U1];[jF]=!1;[BO]=!0;[QX]=void 0;constructor(T,$,S){this[MS]=this[Q1]=T,this[$W]=$,this[U1]=S}}function $$(T){return T[MS]}function Ef(T){return`${T[$W]??"public"}.${T[MS]}`}function V1(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function LO(T){let $={sql:"",params:[]};for(let S of T)if($.sql+=S.sql,$.params.push(...S.params),S.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...S.typings)}return $}class eT{static[O]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new c([this])}}class c{constructor(T){this.queryChunks=T}static[O]="SQL";decoder=VX;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return QT.startActiveSpan("drizzle.buildSQL",($)=>{let S=this.buildQueryFromSourceParams(this.queryChunks,T);return $?.setAttributes({"drizzle.query.text":S.sql,"drizzle.query.params":JSON.stringify(S.params)}),S})}buildQueryFromSourceParams(T,$){let S=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:f,escapeName:M,escapeParam:F,prepareTyping:J,inlineParams:W,paramStartIndex:A}=S;return LO(T.map((w)=>{if(U(w,eT))return{sql:w.value.join(""),params:[]};if(U(w,fW))return{sql:M(w.value),params:[]};if(w===void 0)return{sql:"",params:[]};if(Array.isArray(w)){let X=[new eT("(")];for(let[Y,k]of w.entries())if(X.push(k),Y<w.length-1)X.push(new eT(", "));return X.push(new eT(")")),this.buildQueryFromSourceParams(X,S)}if(U(w,c))return this.buildQueryFromSourceParams(w.queryChunks,{...S,inlineParams:W||w.shouldInlineParams});if(U(w,P)){let X=w[P.Symbol.Schema],Y=w[P.Symbol.Name];return{sql:X===void 0||w[jF]?M(Y):M(X)+"."+M(Y),params:[]}}if(U(w,ET)){let X=f.getColumnCasing(w);if($.invokeSource==="indexes")return{sql:M(X),params:[]};let Y=w.table[P.Symbol.Schema];return{sql:w.table[jF]||Y===void 0?M(w.table[P.Symbol.Name])+"."+M(X):M(Y)+"."+M(w.table[P.Symbol.Name])+"."+M(X),params:[]}}if(U(w,B$)){let X=w[LT].schema,Y=w[LT].name;return{sql:X===void 0||w[LT].isAlias?M(Y):M(X)+"."+M(Y),params:[]}}if(U(w,q$)){if(U(w.value,lS))return{sql:F(A.value++,w),params:[w],typings:["none"]};let X=w.value===null?null:w.encoder.mapToDriverValue(w.value);if(U(X,c))return this.buildQueryFromSourceParams([X],S);if(W)return{sql:this.mapInlineParam(X,S),params:[]};let Y=["none"];if(J)Y=[J(w.encoder)];return{sql:F(A.value++,X),params:[X],typings:Y}}if(U(w,lS))return{sql:F(A.value++,w),params:[w],typings:["none"]};if(U(w,c.Aliased)&&w.fieldAlias!==void 0)return{sql:M(w.fieldAlias),params:[]};if(U(w,sT)){if(w._.isWith)return{sql:M(w._.alias),params:[]};return this.buildQueryFromSourceParams([new eT("("),w._.sql,new eT(") "),new fW(w._.alias)],S)}if(zX(w)){if(w.schema)return{sql:M(w.schema)+"."+M(w.enumName),params:[]};return{sql:M(w.enumName),params:[]}}if(V1(w)){if(w.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([w.getSQL()],S);return this.buildQueryFromSourceParams([new eT("("),w.getSQL(),new eT(")")],S)}if(W)return{sql:this.mapInlineParam(w,S),params:[]};return{sql:F(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 S=T.toString();if(S==="[object Object]")return $(JSON.stringify(T));return $(S)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new c.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class fW{constructor(T){this.value=T}static[O]="Name";brand;getSQL(){return new c([this])}}function UX(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var VX={mapFromDriverValue:(T)=>T},BX={mapToDriverValue:(T)=>T},fI={...VX,...BX};class q${constructor(T,$=BX){this.value=T,this.encoder=$}static[O]="Param";brand;getSQL(){return new c([this])}}function y(T,...$){let S=[];if($.length>0||T.length>0&&T[0]!=="")S.push(new eT(T[0]));for(let[f,M]of $.entries())S.push(M,new eT(T[f+1]));return new c(S)}((T)=>{function $(){return new c([])}T.empty=$;function S(A){return new c(A)}T.fromList=S;function f(A){return new c([new eT(A)])}T.raw=f;function M(A,w){let X=[];for(let[Y,k]of A.entries()){if(Y>0&&w!==void 0)X.push(w);X.push(k)}return new c(X)}T.join=M;function F(A){return new fW(A)}T.identifier=F;function J(A){return new lS(A)}T.placeholder=J;function W(A,w){return new q$(A,w)}T.param=W})(y||(y={}));((T)=>{class ${constructor(S,f){this.sql=S,this.fieldAlias=f}static[O]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(c||(c={}));class lS{constructor(T){this.name=T}static[O]="Placeholder";getSQL(){return new c([this])}}function B1(T,$){return T.map((S)=>{if(U(S,lS)){if(!(S.name in $))throw new Error(`No value for placeholder "${S.name}" was provided`);return $[S.name]}if(U(S,q$)&&U(S.value,lS)){if(!(S.value.name in $))throw new Error(`No value for placeholder "${S.value.name}" was provided`);return S.encoder.mapToDriverValue($[S.value.name])}return S})}var NO=Symbol.for("drizzle:IsDrizzleView");class B${static[O]="View";[LT];[NO]=!0;constructor({name:T,schema:$,selectedFields:S,query:f}){this[LT]={name:T,originalName:T,schema:$,selectedFields:S,query:f,isExisting:!f,isAlias:!1}}getSQL(){return new c([this])}}ET.prototype.getSQL=function(){return new c([this])};P.prototype.getSQL=function(){return new c([this])};sT.prototype.getSQL=function(){return new c([this])};class DM{constructor(T){this.table=T}static[O]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class xF{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[O]="TableAliasProxyHandler";get(T,$){if($===P.Symbol.IsAlias)return!0;if($===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===P.Symbol.OriginalName)return this.alias;if($===LT)return{...T[LT],name:this.alias,isAlias:!0};if($===P.Symbol.Columns){let f=T[P.Symbol.Columns];if(!f)return f;let M={};return Object.keys(f).map((F)=>{M[F]=new Proxy(f[F],new DM(new Proxy(T,this)))}),M}let S=T[$];if(U(S,ET))return new Proxy(S,new DM(new Proxy(T,this)));return S}}function MW(T,$){return new Proxy(T,new xF($,!1))}function OS(T,$){return new Proxy(T,new DM(new Proxy(T.table,new xF($,!1))))}function L1(T,$){return new c.Aliased(ZF(T.sql,$),T.fieldAlias)}function ZF(T,$){return y.join(T.queryChunks.map((S)=>{if(U(S,ET))return OS(S,$);if(U(S,c))return ZF(S,$);if(U(S,c.Aliased))return L1(S,$);return S}))}class FW extends Error{static[O]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class N1 extends FW{static[O]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function L$(T,$){if(UX($)&&!V1(T)&&!U(T,q$)&&!U(T,lS)&&!U(T,ET)&&!U(T,P)&&!U(T,B$))return new q$(T,$);return T}var JW=(T,$)=>{return y`${T} = ${L$($,T)}`},LX=(T,$)=>{return y`${T} <> ${L$($,T)}`};function bF(...T){let $=T.filter((S)=>S!==void 0);if($.length===0)return;if($.length===1)return new c($);return new c([new eT("("),y.join($,new eT(" and ")),new eT(")")])}function NX(...T){let $=T.filter((S)=>S!==void 0);if($.length===0)return;if($.length===1)return new c($);return new c([new eT("("),y.join($,new eT(" or ")),new eT(")")])}function CX(T){return y`not ${T}`}var WW=(T,$)=>{return y`${T} > ${L$($,T)}`},IX=(T,$)=>{return y`${T} >= ${L$($,T)}`},jX=(T,$)=>{return y`${T} < ${L$($,T)}`},xX=(T,$)=>{return y`${T} <= ${L$($,T)}`};function ZX(T,$){if(Array.isArray($)){if($.length===0)return y`false`;return y`${T} in ${$.map((S)=>L$(S,T))}`}return y`${T} in ${L$($,T)}`}function bX(T,$){if(Array.isArray($)){if($.length===0)return y`true`;return y`${T} not in ${$.map((S)=>L$(S,T))}`}return y`${T} not in ${L$($,T)}`}function qX(T){return y`${T} is null`}function mX(T){return y`${T} is not null`}function hX(T){return y`exists ${T}`}function vX(T){return y`not exists ${T}`}function PX(T,$,S){return y`${T} between ${L$($,T)} and ${L$(S,T)}`}function nX(T,$,S){return y`${T} not between ${L$($,T)} and ${L$(S,T)}`}function cX(T,$){return y`${T} like ${$}`}function oX(T,$){return y`${T} not like ${$}`}function gX(T,$){return y`${T} ilike ${$}`}function tX(T,$){return y`${T} not ilike ${$}`}function pX(T){return y`${T} asc`}function iX(T){return y`${T} desc`}class uX{static[O]="ConsoleLogWriter";write(T){console.log(T)}}class C1{static[O]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new uX}logQuery(T,$){let S=$.map((M)=>{try{return JSON.stringify(M)}catch{return String(M)}}),f=S.length?` -- params: [${S.join(", ")}]`:"";this.writer.write(`Query: ${T}${f}`)}}class I1{static[O]="NoopLogger";logQuery(){}}class D${static[O]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}then(T,$){return this.execute().then(T,$)}}function dX(T,$,S){let f={},M=T.reduce((F,{path:J,field:W},A)=>{let w;if(U(W,ET))w=W;else if(U(W,c))w=W.decoder;else w=W.sql.decoder;let X=F;for(let[Y,k]of J.entries())if(Y<J.length-1){if(!(k in X))X[k]={};X=X[k]}else{let R=$[A],z=X[k]=R===null?null:w.mapFromDriverValue(R);if(S&&U(W,ET)&&J.length===2){let Q=J[0];if(!(Q in f))f[Q]=z===null?$$(W.table):!1;else if(typeof f[Q]==="string"&&f[Q]!==$$(W.table))f[Q]=!1}}return F},{});if(S&&Object.keys(f).length>0){for(let[F,J]of Object.entries(f))if(typeof J==="string"&&!S[J])M[F]=null}return M}function g$(T,$){return Object.entries(T).reduce((S,[f,M])=>{if(typeof f!=="string")return S;let F=$?[...$,f]:[f];if(U(M,ET)||U(M,c)||U(M,c.Aliased))S.push({path:F,field:M});else if(U(M,P))S.push(...g$(M[P.Symbol.Columns],F));else S.push(...g$(M,F));return S},[])}function qF(T,$){let S=Object.keys(T),f=Object.keys($);if(S.length!==f.length)return!1;for(let[M,F]of S.entries())if(F!==f[M])return!1;return!0}function AW(T,$){let S=Object.entries($).filter(([,f])=>f!==void 0).map(([f,M])=>{if(U(M,c)||U(M,ET))return[f,M];else return[f,new q$(M,T[P.Symbol.Columns][f])]});if(S.length===0)throw new Error("No values to set");return Object.fromEntries(S)}function lX(T,$){for(let S of $)for(let f of Object.getOwnPropertyNames(S.prototype)){if(f==="constructor")continue;Object.defineProperty(T.prototype,f,Object.getOwnPropertyDescriptor(S.prototype,f)||Object.create(null))}}function rX(T){return T[P.Symbol.Columns]}function xS(T){return U(T,sT)?T._.alias:U(T,B$)?T[LT].name:U(T,c)?void 0:T[P.Symbol.IsAlias]?T[P.Symbol.Name]:T[P.Symbol.BaseName]}function AT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function aX(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 rS extends t{static[O]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:$,...S}=T;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:S}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:$,...S}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:S}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class sX extends rS{static[O]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new eX(T,this.config)}}class eX extends b{static[O]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class T8 extends rS{static[O]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new $8(T,this.config)}}class $8 extends b{static[O]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function S8(T,$){let{name:S,config:f}=AT(T,$);if(f.mode==="number")return new sX(S);return new T8(S)}class f8 extends t{static[O]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new M8(T,this.config)}}class M8 extends b{static[O]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class F8 extends t{static[O]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new J8(T,this.config)}}class J8 extends b{static[O]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function W8(T,$){let{name:S,config:f}=AT(T,$);if(f.mode==="number")return new f8(S);return new F8(S)}class A8 extends t{static[O]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new w8(T,this.config)}}class w8 extends b{static[O]="PgBoolean";getSQLType(){return"boolean"}}function mF(T){return new A8(T??"")}class X8 extends t{static[O]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new Y8(T,this.config)}}class Y8 extends b{static[O]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function k8(T,$={}){let{name:S,config:f}=AT(T,$);return new X8(S,f)}class K8 extends t{static[O]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new O8(T,this.config)}}class O8 extends b{static[O]="PgCidr";getSQLType(){return"cidr"}}function y8(T){return new K8(T??"")}class G8 extends t{static[O]="PgCustomColumnBuilder";constructor(T,$,S){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=S}build(T){return new R8(T,this.config)}}class R8 extends b{static[O]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,$){super(T,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function z8(T){return($,S)=>{let{name:f,config:M}=AT($,S);return new G8(f,M,T)}}class ZS extends t{static[O]="PgDateColumnBaseBuilder";defaultNow(){return this.default(y`now()`)}}class H8 extends ZS{static[O]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new wW(T,this.config)}}class wW extends b{static[O]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class D8 extends ZS{static[O]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new XW(T,this.config)}}class XW extends b{static[O]="PgDateString";getSQLType(){return"date"}}function _8(T,$){let{name:S,config:f}=AT(T,$);if(f?.mode==="date")return new H8(S);return new D8(S)}class E8 extends t{static[O]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new Q8(T,this.config)}}class Q8 extends b{static[O]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function U8(T){return new E8(T??"")}class V8 extends t{static[O]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new B8(T,this.config)}}class B8 extends b{static[O]="PgInet";getSQLType(){return"inet"}}function L8(T){return new V8(T??"")}class N8 extends rS{static[O]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new C8(T,this.config)}}class C8 extends b{static[O]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function YW(T){return new N8(T??"")}class I8 extends t{static[O]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new j8(T,this.config)}}class j8 extends b{static[O]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${T}${$}`}}function x8(T,$={}){let{name:S,config:f}=AT(T,$);return new I8(S,f)}class Z8 extends t{static[O]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new kW(T,this.config)}}class kW extends b{static[O]="PgJson";constructor(T,$){super(T,$)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function b8(T){return new Z8(T??"")}class q8 extends t{static[O]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new KW(T,this.config)}}class KW extends b{static[O]="PgJsonb";constructor(T,$){super(T,$)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function m8(T){return new q8(T??"")}class h8 extends t{static[O]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new v8(T,this.config)}}class v8 extends b{static[O]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,S,f]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(S),Number.parseFloat(f)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class P8 extends t{static[O]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new n8(T,this.config)}}class n8 extends b{static[O]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,S,f]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(S),c:Number.parseFloat(f)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function c8(T,$){let{name:S,config:f}=AT(T,$);if(!f?.mode||f.mode==="tuple")return new h8(S);return new P8(S)}class o8 extends t{static[O]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new g8(T,this.config)}}class g8 extends b{static[O]="PgMacaddr";getSQLType(){return"macaddr"}}function t8(T){return new o8(T??"")}class p8 extends t{static[O]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new i8(T,this.config)}}class i8 extends b{static[O]="PgMacaddr8";getSQLType(){return"macaddr8"}}function u8(T){return new p8(T??"")}class d8 extends t{static[O]="PgNumericBuilder";constructor(T,$,S){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=S}build(T){return new OW(T,this.config)}}class OW extends b{static[O]="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 l8(T,$){let{name:S,config:f}=AT(T,$);return new d8(S,f?.precision,f?.scale)}class r8 extends t{static[O]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new a8(T,this.config)}}class a8 extends b{static[O]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,S]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(S)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class s8 extends t{static[O]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new e8(T,this.config)}}class e8 extends b{static[O]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,S]=T.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(S)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function T4(T,$){let{name:S,config:f}=AT(T,$);if(!f?.mode||f.mode==="tuple")return new r8(S);return new s8(S)}function CO(T){let $=[];for(let S=0;S<T.length;S+=2)$.push(Number.parseInt(T.slice(S,S+2),16));return new Uint8Array($)}function $4(T,$){let S=new ArrayBuffer(8),f=new DataView(S);for(let M=0;M<8;M++)f.setUint8(M,T[$+M]);return f.getFloat64(0,!0)}function j1(T){let $=CO(T),S=0,f=$[S];S+=1;let M=new DataView($.buffer),F=M.getUint32(S,f===1);S+=4;let J;if(F&536870912)J=M.getUint32(S,f===1),S+=4;if((F&65535)===1){let W=$4($,S);S+=8;let A=$4($,S);return S+=8,[W,A]}throw new Error("Unsupported geometry type")}class S4 extends t{static[O]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new f4(T,this.config)}}class f4 extends b{static[O]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return j1(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class M4 extends t{static[O]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new F4(T,this.config)}}class F4 extends b{static[O]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=j1(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function J4(T,$){let{name:S,config:f}=AT(T,$);if(!f?.mode||f.mode==="tuple")return new S4(S);return new M4(S)}class W4 extends t{static[O]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new A4(T,this.config)}}class A4 extends b{static[O]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function w4(T){return new W4(T??"")}class X4 extends t{static[O]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new Y4(T,this.config)}}class Y4 extends b{static[O]="PgSerial";getSQLType(){return"serial"}}function k4(T){return new X4(T??"")}class K4 extends rS{static[O]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new O4(T,this.config)}}class O4 extends b{static[O]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function y4(T){return new K4(T??"")}class G4 extends t{static[O]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new R4(T,this.config)}}class R4 extends b{static[O]="PgSmallSerial";getSQLType(){return"smallserial"}}function z4(T){return new G4(T??"")}class H4 extends t{static[O]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new D4(T,this.config)}}class D4 extends b{static[O]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function _4(T,$={}){let{name:S,config:f}=AT(T,$);return new H4(S,f)}class E4 extends ZS{constructor(T,$,S){super(T,"string","PgTime");this.withTimezone=$,this.precision=S,this.config.withTimezone=$,this.config.precision=S}static[O]="PgTimeBuilder";build(T){return new yW(T,this.config)}}class yW extends b{static[O]="PgTime";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function Q4(T,$={}){let{name:S,config:f}=AT(T,$);return new E4(S,f.withTimezone??!1,f.precision)}class U4 extends ZS{static[O]="PgTimestampBuilder";constructor(T,$,S){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=S}build(T){return new GW(T,this.config)}}class GW extends b{static[O]="PgTimestamp";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class V4 extends ZS{static[O]="PgTimestampStringBuilder";constructor(T,$,S){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=S}build(T){return new RW(T,this.config)}}class RW extends b{static[O]="PgTimestampString";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function FS(T,$={}){let{name:S,config:f}=AT(T,$);if(f?.mode==="string")return new V4(S,f.withTimezone??!1,f.precision);return new U4(S,f?.withTimezone??!1,f?.precision)}class B4 extends t{static[O]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(y`gen_random_uuid()`)}build(T){return new zW(T,this.config)}}class zW extends b{static[O]="PgUUID";getSQLType(){return"uuid"}}function m$(T){return new B4(T??"")}class L4 extends t{static[O]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new N4(T,this.config)}}class N4 extends b{static[O]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function F$(T,$={}){let{name:S,config:f}=AT(T,$);return new L4(S,f)}class C4 extends t{static[O]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new I4(T,this.config)}}class I4 extends b{static[O]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function j4(T,$){let{name:S,config:f}=AT(T,$);return new C4(S,f)}class x4 extends t{static[O]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new Z4(T,this.config)}}class Z4 extends b{static[O]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function b4(T,$){let{name:S,config:f}=AT(T,$);return new x4(S,f)}class q4 extends t{static[O]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new m4(T,this.config)}}class m4 extends b{static[O]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function h4(T,$){let{name:S,config:f}=AT(T,$);return new q4(S,f)}class v4 extends t{static[O]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new P4(T,this.config)}}class P4 extends b{static[O]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function n4(T,$){let{name:S,config:f}=AT(T,$);return new v4(S,f)}function c4(){return{bigint:S8,bigserial:W8,boolean:mF,char:k8,cidr:y8,customType:z8,date:_8,doublePrecision:U8,inet:L8,integer:YW,interval:x8,json:b8,jsonb:m8,line:c8,macaddr:t8,macaddr8:u8,numeric:l8,point:T4,geometry:J4,real:w4,serial:k4,smallint:y4,smallserial:z4,text:_4,time:Q4,timestamp:FS,uuid:m$,varchar:F$,bit:j4,halfvec:b4,sparsevec:h4,vector:n4}}var x1=Symbol.for("drizzle:PgInlineForeignKeys"),o4=Symbol.for("drizzle:EnableRLS");class J$ extends P{static[O]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:x1,EnableRLS:o4});[x1]=[];[o4]=!1;[P.Symbol.ExtraConfigBuilder]=void 0}function IO(T,$,S,f,M=T){let F=new J$(T,f,M),J=typeof $==="function"?$(c4()):$,W=Object.fromEntries(Object.entries(J).map(([X,Y])=>{let k=Y;k.setName(X);let R=k.build(F);return F[x1].push(...k.buildForeignKeys(R,F)),[X,R]})),A=Object.fromEntries(Object.entries(J).map(([X,Y])=>{let k=Y;k.setName(X);let R=k.buildExtraConfigColumn(F);return[X,R]})),w=Object.assign(F,W);if(w[P.Symbol.Columns]=W,w[P.Symbol.ExtraConfigColumns]=A,S)w[J$.Symbol.ExtraConfigBuilder]=S;return Object.assign(w,{enableRLS:()=>{return w[J$.Symbol.EnableRLS]=!0,w}})}var aS=(T,$,S)=>{return IO(T,$,S,void 0)};function g4(...T){if(T[0].columns)return new hF(T[0].columns,T[0].name);return new hF(T)}class hF{static[O]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new t4(T,this.columns,this.name)}}class t4{constructor(T,$,S){this.table=T,this.columns=$,this.name=S}static[O]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[J$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class Z1{constructor(T,$,S){this.sourceTable=T,this.referencedTable=$,this.relationName=S,this.referencedTableName=$[P.Symbol.Name]}static[O]="Relation";referencedTableName;fieldName}class p4{constructor(T,$){this.table=T,this.config=$}static[O]="Relations"}class sS extends Z1{constructor(T,$,S,f){super(T,$,S?.relationName);this.config=S,this.isNullable=f}static[O]="One";withFieldName(T){let $=new sS(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class vF extends Z1{constructor(T,$,S){super(T,$,S?.relationName);this.config=S}static[O]="Many";withFieldName(T){let $=new vF(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function i4(){return{and:bF,between:PX,eq:JW,exists:hX,gt:WW,gte:IX,ilike:gX,inArray:ZX,isNull:qX,isNotNull:mX,like:cX,lt:jX,lte:xX,ne:LX,not:CX,notBetween:nX,notExists:vX,notLike:oX,notIlike:tX,notInArray:bX,or:NX,sql:y}}function u4(){return{sql:y,asc:pX,desc:iX}}function d4(T,$){if(Object.keys(T).length===1&&"default"in T&&!U(T.default,P))T=T.default;let S={},f={},M={};for(let[F,J]of Object.entries(T))if(U(J,P)){let W=Ef(J),A=f[W];S[W]=F,M[F]={tsName:F,dbName:J[P.Symbol.Name],schema:J[P.Symbol.Schema],columns:J[P.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let X of Object.values(J[P.Symbol.Columns]))if(X.primary)M[F].primaryKey.push(X);let w=J[P.Symbol.ExtraConfigBuilder]?.(J[P.Symbol.ExtraConfigColumns]);if(w){for(let X of Object.values(w))if(U(X,hF))M[F].primaryKey.push(...X.columns)}}else if(U(J,p4)){let W=Ef(J.table),A=S[W],w=J.config($(J.table)),X;for(let[Y,k]of Object.entries(w))if(A){let R=M[A];if(R.relations[Y]=k,X)R.primaryKey.push(...X)}else{if(!(W in f))f[W]={relations:{},primaryKey:X};f[W].relations[Y]=k}}return{tables:M,tableNamesMap:S}}function jO(T){return function $(S,f){return new sS(T,S,f,f?.fields.reduce((M,F)=>M&&F.notNull,!0)??!1)}}function xO(T){return function $(S,f){return new vF(T,S,f)}}function l4(T,$,S){if(U(S,sS)&&S.config)return{fields:S.config.fields,references:S.config.references};let f=$[Ef(S.referencedTable)];if(!f)throw new Error(`Table "${S.referencedTable[P.Symbol.Name]}" not found in schema`);let M=T[f];if(!M)throw new Error(`Table "${f}" not found in schema`);let F=S.sourceTable,J=$[Ef(F)];if(!J)throw new Error(`Table "${F[P.Symbol.Name]}" not found in schema`);let W=[];for(let A of Object.values(M.relations))if(S.relationName&&S!==A&&A.relationName===S.relationName||!S.relationName&&A.referencedTable===S.sourceTable)W.push(A);if(W.length>1)throw S.relationName?new Error(`There are multiple relations with name "${S.relationName}" in table "${f}"`):new Error(`There are multiple relations between "${f}" and "${S.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(W[0]&&U(W[0],sS)&&W[0].config)return{fields:W[0].config.references,references:W[0].config.fields};throw new Error(`There is not enough information to infer relation "${J}.${S.fieldName}"`)}function r4(T){return{one:jO(T),many:xO(T)}}function HW(T,$,S,f,M=(F)=>F){let F={};for(let[J,W]of f.entries())if(W.isJson){let A=$.relations[W.tsKey],w=S[J],X=typeof w==="string"?JSON.parse(w):w;F[W.tsKey]=U(A,sS)?X&&HW(T,T[W.relationTableTsKey],X,W.selection,M):X.map((Y)=>HW(T,T[W.relationTableTsKey],Y,W.selection,M))}else{let A=M(S[J]),w=W.field,X;if(U(w,ET))X=w;else if(U(w,c))X=w.decoder;else X=w.sql.decoder;F[W.tsKey]=A===null?null:X.mapFromDriverValue(A)}return F}import Ny from"path";import Sy from"os";import fy from"fs";var DW=new Map,b1=new Map,q1=Symbol("OriginError"),_M={};class t$ extends Promise{constructor(T,$,S,f,M={}){let F,J;super((W,A)=>{F=W,J=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=S,this.canceller=f,this.options=M,this.state=null,this.statement=null,this.resolve=(W)=>(this.active=!1,F(W)),this.reject=(W)=>(this.active=!1,J(W)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[q1]=this.handler.debug?new Error:this.tagged&&ZO(this.strings)}get origin(){return(this.handler.debug?this[q1].stack:this.tagged&&b1.has(this.strings)?b1.get(this.strings):b1.set(this.strings,this[q1].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(T=1,$){if(this.options.simple=!1,typeof T==="function")$=T,T=1;if(this.cursorRows=T,typeof $==="function")return this.cursorFn=$,this;let S;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};S&&S();let f=new Promise((M,F)=>{this.cursorFn=(J)=>{return M({value:J,done:!1}),new Promise((W)=>S=W)},this.resolve=()=>(this.active=!1,M({done:!0})),this.reject=(J)=>(this.active=!1,F(J))});return this.execute(),f},return(){return S&&S(_M),{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 ZO(T){if(DW.has(T))return DW.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,DW.set(T,new Error),Error.stackTraceLimit=$,DW.get(T)}class EM extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var pT={connection:a4,postgres:s4,generic:e4,notSupported:TY};function a4(T,$,S){let{host:f,port:M}=S||$,F=Object.assign(new Error("write "+T+" "+($.path||f+":"+M)),{code:T,errno:T,address:$.path||f},$.path?{}:{port:M});return Error.captureStackTrace(F,a4),F}function s4(T){let $=new EM(T);return Error.captureStackTrace($,s4),$}function e4(T,$){let S=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(S,e4),S}function TY(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,TY),$}var bO={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 QW{then(){m1()}catch(){m1()}finally(){m1()}}class oF extends QW{constructor(T){super();this.value=BW(T)}}class yS extends QW{constructor(T,$,S){super();this.value=T,this.type=$,this.array=S}}class UW extends QW{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,S,f){let M=qO.map(([F,J])=>({fn:J,i:T.search(F)})).sort((F,J)=>F.i-J.i).pop();return M.i===-1?c1(this.first,f):M.fn(this.first,this.rest,$,S,f)}}function VW(T,$,S,f){let M=T instanceof yS?T.value:T;if(M===void 0){if(T instanceof yS?T.value=f.transform.undefined:M=T=f.transform.undefined,M===void 0)throw pT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+S.push(T instanceof yS?($.push(T.value),T.array?T.array[T.type||EW(T.value)]||T.type||MY(T.value):T.type):($.push(T),EW(T)))}var SY=JY(bO);function P1(T,$,S,f,M,F){for(let J=1;J<T.strings.length;J++)$+=n1($,S,f,M,F)+T.strings[J],S=T.args[J];return $}function n1(T,$,S,f,M){return $ instanceof UW?$.build(T,S,f,M):$ instanceof t$?v1($,S,f,M):$ instanceof oF?$.value:$&&$[0]instanceof t$?$.reduce((F,J)=>F+" "+v1(J,S,f,M),""):VW($,S,f,M)}function v1(T,$,S,f){return T.fragment=!0,P1(T,T.strings[0],T.args[0],$,S,f)}function fY(T,$,S,f,M){return T.map((F)=>"("+f.map((J)=>n1("values",F[J],$,S,M)).join(",")+")").join(",")}function $Y(T,$,S,f,M){let F=Array.isArray(T[0]),J=$.length?$.flat():Object.keys(F?T[0]:T);return fY(F?T:[T],S,f,J,M)}function _W(T,$,S,f,M){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return c1(T,M);let F;return($.length?$.flat():Object.keys(T)).map((W)=>{return F=T[W],(F instanceof t$?v1(F,S,f,M):F instanceof oF?F.value:VW(F,S,f,M))+" as "+BW(M.transform.column.to?M.transform.column.to(W):W)}).join(",")}var qO=Object.entries({values:$Y,in:(...T)=>{let $=$Y(...T);return $==="()"?"(null)":$},select:_W,as:_W,returning:_W,"\\(":_W,update(T,$,S,f,M){return($.length?$.flat():Object.keys(T)).map((F)=>BW(M.transform.column.to?M.transform.column.to(F):F)+"="+n1("values",T[F],S,f,M))},insert(T,$,S,f,M){let F=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+c1(F,M)+")values"+fY(Array.isArray(T)?T:[T],S,f,F,M)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function m1(){throw pT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:mO,parsers:hO}=SY;function MY(T){if(Array.isArray(T))return MY(T[0]);return typeof T==="string"?1009:0}var FY=function(T){let $=JY(T||{});return{serializers:Object.assign({},mO,$.serializers),parsers:Object.assign({},hO,$.parsers)}};function JY(T){return Object.keys(T).reduce(($,S)=>{if(T[S].from&&[].concat(T[S].from).forEach((f)=>$.parsers[f]=T[S].parse),T[S].serialize)$.serializers[T[S].to]=T[S].serialize,T[S].from&&[].concat(T[S].from).forEach((f)=>$.serializers[f]=T[S].serialize);return $},{parsers:{},serializers:{}})}function c1(T,{transform:{column:$}}){return T.map((S)=>BW($.to?$.to(S):S)).join(",")}var BW=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},EW=function T($){return $ instanceof yS?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},vO=/\\/g,PO=/"/g;function nO(T){return T.replace(vO,"\\\\").replace(PO,"\\\"")}var WY=function T($,S,f,M){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let F=$[0],J=M===1020?";":",";if(Array.isArray(F)&&!F.type)return"{"+$.map((W)=>T(W,S,f,M)).join(J)+"}";return"{"+$.map((W)=>{if(W===void 0){if(W=f.transform.undefined,W===void 0)throw pT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return W===null?"null":'"'+nO(S?S(W.type?W.value:W):""+W)+'"'}).join(J)+"}"},h1={i:0,char:null,str:"",quoted:!1,last:0},AY=function T($,S,f){return h1.i=h1.last=0,wY(h1,$,S,f)};function wY(T,$,S,f){let M=[],F=f===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==='"')M.push(S?S(T.str):T.str),T.str="",T.quoted=$[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,M.push(wY(T,$,S,f));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&M.push(S?S($.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!=='"')M.push(S?S($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&M.push(S?S($.slice(T.last,T.i+1)):$.slice(T.last,T.i+1)),M}var Qf=(T)=>{let $=T[0];for(let S=1;S<T.length;S++)$+=T[S]==="_"?T[++S].toUpperCase():T[S];return $},Uf=(T)=>{let $=T[0].toUpperCase();for(let S=1;S<T.length;S++)$+=T[S]==="_"?T[++S].toUpperCase():T[S];return $},Vf=(T)=>T.replace(/_/g,"-"),PF=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),nF=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),cF=(T)=>T.replace(/-/g,"_");function o1(T){return function $(S,f){return typeof S==="object"&&S!==null&&(f.type===114||f.type===3802)?Array.isArray(S)?S.map((M)=>$(M,f)):Object.entries(S).reduce((M,[F,J])=>Object.assign(M,{[T(F)]:$(J,f)}),{}):S}}Qf.column={from:Qf};Qf.value={from:o1(Qf)};PF.column={to:PF};var g1={...Qf};g1.column.to=PF;Uf.column={from:Uf};Uf.value={from:o1(Uf)};nF.column={to:nF};var t1={...Uf};t1.column.to=nF;Vf.column={from:Vf};Vf.value={from:o1(Vf)};cF.column={to:cF};var p1={...Vf};p1.column.to=cF;import XY from"net";import tO from"tls";import gF from"crypto";import i1 from"stream";import{performance as YY}from"perf_hooks";class Bf 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$=cO;function cO(T=[]){let $=T.slice(),S=0;return{get length(){return $.length-S},remove:(f)=>{let M=$.indexOf(f);return M===-1?null:($.splice(M,1),f)},push:(f)=>($.push(f),f),shift:()=>{let f=$[S++];if(S===$.length)S=0,$=[];else $[S-1]=void 0;return f}}}var y$=Buffer.allocUnsafe(256),oO="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let S=$.charCodeAt(0);return T[$]=()=>{return y$[0]=S,DT.i=5,DT},T},{}),DT=Object.assign(gO,oO,{N:String.fromCharCode(0),i:0,inc(T){return DT.i+=T,DT},str(T){let $=Buffer.byteLength(T);return LW($),DT.i+=y$.write(T,DT.i,$,"utf8"),DT},i16(T){return LW(2),y$.writeUInt16BE(T,DT.i),DT.i+=2,DT},i32(T,$){if($||$===0)return y$.writeUInt32BE(T,$),DT;return LW(4),y$.writeUInt32BE(T,DT.i),DT.i+=4,DT},z(T){return LW(T),y$.fill(0,DT.i,DT.i+T),DT.i+=T,DT},raw(T){return y$=Buffer.concat([y$.subarray(0,DT.i),T]),DT.i=y$.length,DT},end(T=1){y$.writeUInt32BE(DT.i-T,T);let $=y$.subarray(0,DT.i);return DT.i=0,y$=Buffer.allocUnsafe(256),$}}),r=DT;function LW(T){if(y$.length-DT.i<T){let $=y$,S=$.length;y$=Buffer.allocUnsafe(S+(S>>1)+T),$.copy(y$)}}function gO(){return DT.i=0,DT}var l1=OY,pO=1,eS=r().S().end(),kY=r().H().end(),iO=r().i32(8).i32(80877103).end(8),uO=Buffer.concat([r().E().str(r.N).i32(0).end(),eS]),dO=r().D().str("S").str(r.N).end(),QM=()=>{},lO=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),rO={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 OY(T,$={},{onopen:S=QM,onend:f=QM,onclose:M=QM}={}){let{ssl:F,max:J,user:W,host:A,port:w,database:X,parsers:Y,transform:k,onnotice:R,onnotify:z,onparameter:Q,max_pipeline:D,keep_alive:N,backoff:V,target_session_attrs:L}=T,Z=h$(),_=pO++,E={pid:null,secret:null},B=d1(cW,T.idle_timeout),q=d1(cW,T.max_lifetime),v=d1(gY,T.connect_timeout),G=null,o,n=new Bf,u=Buffer.alloc(0),yT=T.fetch_types,zT={},E$={},GS=Math.random().toString(36).slice(2),C=1,l=0,GT=0,jT=0,iT=0,JT=0,UT=0,gT=0,ZT=null,NT=null,W$=!1,VT=null,p$=null,A$=null,mS=null,uT=null,CT=null,i$=null,JS=null,m=null,LM=null,w$={queue:$.closed,idleTimer:B,connect(K){A$=K||!0,QA()},terminate:CM,execute:NM,cancel:PY,end:cW,count:0,id:_};return $.closed&&$.closed.push(w$),w$;async function vY(){let K;try{K=T.socket?await Promise.resolve(T.socket(T)):new XY.Socket}catch(H){If(H);return}return K.on("error",If),K.on("close",UA),K.on("drain",_A),K}async function PY({pid:K,secret:H},a,RT){try{o=r().i32(16).i32(80877102).i32(K).i32(H).end(16),await EA(),G.once("error",RT),G.once("close",a)}catch(hT){RT(hT)}}function NM(K){if(W$)return rF(K,pT.connection("CONNECTION_DESTROYED",T));if(K.cancelled)return;try{return K.state=E,m?Z.push(K):(m=K,m.active=!0),oY(K),S$(nY(K))&&!K.describeFirst&&!K.cursorFn&&Z.length<D&&(!K.options.onexecute||K.options.onexecute(w$))}catch(H){return Z.length===0&&S$(eS),WS(H),!0}}function nY(K){if(K.parameters.length>=65534)throw pT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return K.options.simple?r().Q().str(K.statement.string+r.N).end():K.describeFirst?Buffer.concat([zA(K),kY]):K.prepare?K.prepared?lF(K):Buffer.concat([zA(K),lF(K)]):cY(K)}function zA(K){return Buffer.concat([BA(K.statement.string,K.parameters,K.statement.types,K.statement.name),Lk("S",K.statement.name)])}function lF(K){return Buffer.concat([Bk(K.parameters,K.statement.types,K.statement.name,K.cursorName),K.cursorFn?LA("",K.cursorRows):uO])}function cY(K){return Buffer.concat([BA(K.statement.string,K.parameters,K.statement.types),dO,lF(K)])}function oY(K){let H=[],a=[],RT=P1(K,K.strings[0],K.args[0],H,a,T);!K.tagged&&K.args.forEach((hT)=>VW(hT,H,a,T)),K.prepare=T.prepare&&("prepare"in K.options?K.options.prepare:!0),K.string=RT,K.signature=K.prepare&&a+RT,K.onlyDescribe&&delete E$[K.signature],K.parameters=K.parameters||H,K.prepared=K.prepare&&K.signature in E$,K.describeFirst=K.onlyDescribe||H.length&&!K.prepared,K.statement=K.prepared?E$[K.signature]:{string:RT,types:a,name:K.prepare?GS+C++:""},typeof T.debug==="function"&&T.debug(_,RT,H,a)}function S$(K,H){if(CT=CT?Buffer.concat([CT,K]):Buffer.from(K),H||CT.length>=1024)return HA(H);return NT===null&&(NT=setImmediate(HA)),!0}function HA(K){let H=G.write(CT,K);return NT!==null&&clearImmediate(NT),CT=NT=null,H}function gY(){WS(pT.connection("CONNECT_TIMEOUT",T,G)),G.destroy()}async function DA(){if(S$(iO),!await new Promise((H)=>G.once("data",(a)=>H(a[0]===83)))&&F==="prefer")return Cf();G.removeAllListeners(),G=tO.connect({socket:G,servername:XY.isIP(G.host)?void 0:G.host,...F==="require"||F==="allow"||F==="prefer"?{rejectUnauthorized:!1}:F==="verify-full"?{}:typeof F==="object"?F:{}}),G.on("secureConnect",Cf),G.on("error",If),G.on("close",UA),G.on("drain",_A)}function _A(){!m&&S(w$)}function nW(K){if(VT){if(VT.push(K),GT-=K.length,GT>=0)return}u=VT?Buffer.concat(VT,JT-GT):u.length===0?K:Buffer.concat([u,K],u.length+K.length);while(u.length>4){if(JT=u.readUInt32BE(1),JT>=u.length){GT=JT-u.length,VT=[u];break}try{tY(u.subarray(0,JT+1))}catch(H){m&&(m.cursorFn||m.describeFirst)&&S$(eS),WS(H)}u=u.subarray(JT+1),GT=0,VT=null}}async function EA(){if(W$=!1,zT={},G||(G=await vY()),!G)return;if(v.start(),T.socket)return F?DA():Cf();if(G.on("connect",F?DA:Cf),T.path)return G.connect(T.path);G.ssl=F,G.connect(w[jT],A[jT]),G.host=A[jT],G.port=w[jT],jT=(jT+1)%w.length}function QA(){setTimeout(EA,l?l+UT-YY.now():0)}function Cf(){try{E$={},yT=T.fetch_types,GS=Math.random().toString(36).slice(2),C=1,q.start(),G.on("data",nW),N&&G.setKeepAlive&&G.setKeepAlive(!0,1000*N);let K=Ck();S$(K)}catch(K){If(K)}}function If(K){if(w$.queue===$.connecting&&T.host[iT+1])return;WS(K);while(Z.length)rF(Z.shift(),K)}function WS(K){uT&&(uT.destroy(K),uT=null),m&&rF(m,K),A$&&(rF(A$,K),A$=null)}function rF(K,H){"query"in H||"parameters"in H||Object.defineProperties(H,{stack:{value:H.stack+K.origin.replace(/.*\n/,`
|
|
56
|
+
`),enumerable:T.debug},query:{value:K.string,enumerable:T.debug},parameters:{value:K.parameters,enumerable:T.debug},args:{value:K.args,enumerable:T.debug},types:{value:K.statement&&K.statement.types,enumerable:T.debug}}),K.reject(H)}function cW(){return mS||(!w$.reserved&&f(w$),!w$.reserved&&!A$&&!m&&Z.length===0?(CM(),new Promise((K)=>G&&G.readyState!=="closed"?G.once("close",K):K())):mS=new Promise((K)=>i$=K))}function CM(){if(W$=!0,uT||m||A$||Z.length)If(pT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(NT),G)G.removeListener("data",nW),G.removeListener("connect",Cf),G.readyState==="open"&&G.end(r().X().end());i$&&(i$(),mS=i$=null)}async function UA(K){if(u=Buffer.alloc(0),GT=0,VT=null,clearImmediate(NT),G.removeListener("data",nW),G.removeListener("connect",Cf),B.cancel(),q.cancel(),v.cancel(),G.removeAllListeners(),G=null,A$)return QA();!K&&(m||Z.length)&&If(pT.connection("CONNECTION_CLOSED",T,G)),l=YY.now(),K&&T.shared.retries++,UT=(typeof V==="function"?V(T.shared.retries):V)*1000,M(w$,pT.connection("CONNECTION_CLOSED",T,G))}function tY(K,H=K[0]){(H===68?pY:H===100?zk:H===65?kk:H===83?iY:H===90?uY:H===67?dY:H===50?VA:H===49?lY:H===116?rY:H===84?aY:H===82?sY:H===110?Mk:H===75?Fk:H===69?Xk:H===115?Kk:H===51?Ok:H===71?yk:H===78?Dk:H===72?Gk:H===99?Hk:H===73?_k:H===86?Ek:H===118?Qk:H===87?Rk:Uk)(K)}function pY(K){let H=7,a,RT,hT,X$=m.isRaw?new Array(m.statement.columns.length):{};for(let G$=0;G$<m.statement.columns.length;G$++)RT=m.statement.columns[G$],a=K.readInt32BE(H),H+=4,hT=a===-1?null:m.isRaw===!0?K.subarray(H,H+=a):RT.parser===void 0?K.toString("utf8",H,H+=a):RT.parser.array===!0?RT.parser(K.toString("utf8",H+1,H+=a)):RT.parser(K.toString("utf8",H,H+=a)),m.isRaw?X$[G$]=m.isRaw===!0?hT:k.value.from?k.value.from(hT,RT):hT:X$[RT.name]=k.value.from?k.value.from(hT,RT):hT;m.forEachFn?m.forEachFn(k.row.from?k.row.from(X$):X$,n):n[gT++]=k.row.from?k.row.from(X$):X$}function iY(K){let[H,a]=K.toString("utf8",5,K.length-1).split(r.N);if(zT[H]=a,T.parameters[H]!==a)T.parameters[H]=a,Q&&Q(H,a)}function uY(K){if(m&&m.options.simple&&m.resolve(p$||n),m=p$=null,n=new Bf,v.cancel(),A$){if(L){if(!zT.in_hot_standby||!zT.default_transaction_read_only)return wk();else if(Ak(L,zT))return CM()}if(yT)return A$===!0&&(A$=null),Jk();A$!==!0&&NM(A$),T.shared.retries=iT=0,A$=null;return}while(Z.length&&(m=Z.shift())&&(m.active=!0,m.cancelled))OY(T).cancel(m.state,m.cancelled.resolve,m.cancelled.reject);if(m)return;w$.reserved?!w$.reserved.release&&K[5]===73?mS?CM():(w$.reserved=null,S(w$)):w$.reserved():mS?CM():S(w$)}function dY(K){gT=0;for(let H=K.length-1;H>0;H--){if(K[H]===32&&K[H+1]<58&&n.count===null)n.count=+K.toString("utf8",H+1,K.length-1);if(K[H-1]>=65){n.command=K.toString("utf8",5,H),n.state=E;break}}if(LM&&(LM(),LM=null),n.command==="BEGIN"&&J!==1&&!w$.reserved)return WS(pT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(m.options.simple)return VA();if(m.cursorFn)n.count&&m.cursorFn(n),S$(eS);m.resolve(n)}function lY(){m.parsing=!1}function VA(){!n.statement&&(n.statement=m.statement),n.columns=m.statement.columns}function rY(K){let H=K.readUInt16BE(5);for(let a=0;a<H;++a)!m.statement.types[a]&&(m.statement.types[a]=K.readUInt32BE(7+a*4));m.prepare&&(E$[m.signature]=m.statement),m.describeFirst&&!m.onlyDescribe&&(S$(lF(m)),m.describeFirst=!1)}function aY(K){if(n.command)p$=p$||[n],p$.push(n=new Bf),n.count=null,m.statement.columns=null;let H=K.readUInt16BE(5),a=7,RT;m.statement.columns=Array(H);for(let hT=0;hT<H;++hT){RT=a;while(K[a++]!==0);let X$=K.readUInt32BE(a),G$=K.readUInt16BE(a+4),hS=K.readUInt32BE(a+6);m.statement.columns[hT]={name:k.column.from?k.column.from(K.toString("utf8",RT,a-1)):K.toString("utf8",RT,a-1),parser:Y[hS],table:X$,number:G$,type:hS},a+=18}if(n.statement=m.statement,m.onlyDescribe)return m.resolve(m.statement),S$(eS)}async function sY(K,H=K.readUInt32BE(5)){(H===3?eY:H===5?Tk:H===10?$k:H===11?Sk:H===12?fk:H!==0?Vk:QM)(K,H)}async function eY(){let K=await oW();S$(r().p().str(K).z(1).end())}async function Tk(K){let H="md5"+await KY(Buffer.concat([Buffer.from(await KY(await oW()+W)),K.subarray(9)]));S$(r().p().str(H).z(1).end())}async function $k(){JS=(await gF.randomBytes(18)).toString("base64"),r().p().str("SCRAM-SHA-256"+r.N);let K=r.i;S$(r.inc(4).str("n,,n=*,r="+JS).i32(r.i-K-4,K).end())}async function Sk(K){let H=K.toString("utf8",9).split(",").reduce((G$,hS)=>(G$[hS[0]]=hS.slice(2),G$),{}),a=await gF.pbkdf2Sync(await oW(),Buffer.from(H.s,"base64"),parseInt(H.i),32,"sha256"),RT=await NW(a,"Client Key"),hT="n=*,r="+JS+",r="+H.r+",s="+H.s+",i="+H.i+",c=biws,r="+H.r;ZT=(await NW(await NW(a,"Server Key"),hT)).toString("base64");let X$="c=biws,r="+H.r+",p="+sO(RT,Buffer.from(await NW(await aO(RT),hT))).toString("base64");S$(r().p().str(X$).end())}function fk(K){if(K.toString("utf8",9).split(r.N,1)[0].slice(2)===ZT)return;WS(pT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),G.destroy()}function oW(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function Mk(){if(n.statement=m.statement,n.statement.columns=[],m.onlyDescribe)return m.resolve(m.statement),S$(eS)}function Fk(K){E.pid=K.readUInt32BE(5),E.secret=K.readUInt32BE(9)}async function Jk(){yT=!1,(await new t$([`
|
|
55
57
|
select b.oid, b.typarray
|
|
56
58
|
from pg_catalog.pg_type a
|
|
57
59
|
left join pg_catalog.pg_type b on b.oid = a.typelem
|
|
58
60
|
where a.typcategory = 'A'
|
|
59
61
|
group by b.oid, b.typarray
|
|
60
62
|
order by b.oid
|
|
61
|
-
`],[],NM)).forEach(({oid:H,typarray:a})=>Wk(H,a))}function Wk(K,H){if(!!T.parsers[H]&&!!T.serializers[H])return;let a=T.parsers[K];T.shared.typeArrayMap[K]=H,T.parsers[H]=(RT)=>AY(RT,a,H),T.parsers[H].array=!0,T.serializers[H]=(RT)=>WY(RT,T.serializers[K],T,H)}function Ak(K,H){return K==="read-write"&&H.default_transaction_read_only==="on"||K==="read-only"&&H.default_transaction_read_only==="off"||K==="primary"&&H.in_hot_standby==="on"||K==="standby"&&H.in_hot_standby==="off"||K==="prefer-standby"&&H.in_hot_standby==="off"&&T.host[iT]}function wk(){let K=new
|
|
63
|
+
`],[],NM)).forEach(({oid:H,typarray:a})=>Wk(H,a))}function Wk(K,H){if(!!T.parsers[H]&&!!T.serializers[H])return;let a=T.parsers[K];T.shared.typeArrayMap[K]=H,T.parsers[H]=(RT)=>AY(RT,a,H),T.parsers[H].array=!0,T.serializers[H]=(RT)=>WY(RT,T.serializers[K],T,H)}function Ak(K,H){return K==="read-write"&&H.default_transaction_read_only==="on"||K==="read-only"&&H.default_transaction_read_only==="off"||K==="primary"&&H.in_hot_standby==="on"||K==="standby"&&H.in_hot_standby==="off"||K==="prefer-standby"&&H.in_hot_standby==="off"&&T.host[iT]}function wk(){let K=new t$([`
|
|
62
64
|
show transaction_read_only;
|
|
63
65
|
select pg_catalog.pg_is_in_recovery()
|
|
64
|
-
`],[],NM,null,{simple:!0});K.resolve=([[H],[a]])=>{zT.default_transaction_read_only=H.transaction_read_only,zT.in_hot_standby=a.pg_is_in_recovery?"on":"off"},K.execute()}function Xk(K){m&&(m.cursorFn||m.describeFirst)
|
|
66
|
+
`],[],NM,null,{simple:!0});K.resolve=([[H],[a]])=>{zT.default_transaction_read_only=H.transaction_read_only,zT.in_hot_standby=a.pg_is_in_recovery?"on":"off"},K.execute()}function Xk(K){m&&(m.cursorFn||m.describeFirst)&&S$(eS);let H=pT.postgres(u1(K));m&&m.retried?WS(m.retried):m&&m.prepared&&lO.has(H.routine)?Yk(m,H):WS(H)}function Yk(K,H){delete E$[K.signature],K.retried=H,NM(K)}function kk(K){if(!z)return;let H=9;while(K[H++]!==0);z(K.toString("utf8",9,H-1),K.toString("utf8",H,K.length-1))}async function Kk(){try{let K=await Promise.resolve(m.cursorFn(n));gT=0,K===_M?S$(Nk(m.portal)):(n=new Bf,S$(LA("",m.cursorRows)))}catch(K){S$(eS),m.reject(K)}}function Ok(){n.count&&m.cursorFn(n),m.resolve(n)}function yk(){uT=new i1.Writable({autoDestroy:!0,write(K,H,a){G.write(r().d().raw(K).end(),a)},destroy(K,H){H(K),G.write(r().f().str(K+r.N).end()),uT=null},final(K){G.write(r().c().end()),LM=K}}),m.resolve(uT)}function Gk(){uT=new i1.Readable({read(){G.resume()}}),m.resolve(uT)}function Rk(){uT=new i1.Duplex({autoDestroy:!0,read(){G.resume()},write(K,H,a){G.write(r().d().raw(K).end(),a)},destroy(K,H){H(K),G.write(r().f().str(K+r.N).end()),uT=null},final(K){G.write(r().c().end()),LM=K}}),m.resolve(uT)}function zk(K){uT&&(uT.push(K.subarray(5))||G.pause())}function Hk(){uT&&uT.push(null),uT=null}function Dk(K){R?R(u1(K)):console.log(u1(K))}function _k(){}function Ek(){WS(pT.notSupported("FunctionCallResponse"))}function Qk(){WS(pT.notSupported("NegotiateProtocolVersion"))}function Uk(K){console.error("Postgres.js : Unknown Message:",K[0])}function Vk(K,H){console.error("Postgres.js : Unknown Auth:",H)}function Bk(K,H,a="",RT=""){let hT,X$;return r().B().str(RT+r.N).str(a+r.N).i16(0).i16(K.length),K.forEach((G$,hS)=>{if(G$===null)return r.i32(4294967295);X$=H[hS],K[hS]=G$=X$ in T.serializers?T.serializers[X$](G$):""+G$,hT=r.i,r.inc(4).str(G$).i32(r.i-hT-4,hT)}),r.i16(0),r.end()}function BA(K,H,a,RT=""){return r().P().str(RT+r.N).str(K+r.N).i16(H.length),H.forEach((hT,X$)=>r.i32(a[X$]||0)),r.end()}function Lk(K,H=""){return r().D().str(K).str(H+r.N).end()}function LA(K="",H=0){return Buffer.concat([r().E().str(K+r.N).i32(H).end(),kY])}function Nk(K=""){return Buffer.concat([r().C().str("P").str(K+r.N).end(),r().S().end()])}function Ck(){return o||r().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:W,database:X,client_encoding:"UTF8"},T.connection)).filter(([,K])=>K).map(([K,H])=>K+r.N+H).join(r.N)).z(2).end(0)}}function u1(T){let $={},S=5;for(let f=5;f<T.length-1;f++)if(T[f]===0)$[rO[T[S]]]=T.toString("utf8",S+1,f),S=f+1;return $}function KY(T){return gF.createHash("md5").update(T).digest("hex")}function NW(T,$){return gF.createHmac("sha256",T).update($).digest()}function aO(T){return gF.createHash("sha256").update(T).digest()}function sO(T,$){let S=Math.max(T.length,$.length),f=Buffer.allocUnsafe(S);for(let M=0;M<S;M++)f[M]=T[M]^$[M];return f}function d1(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:QM,start:QM};let S;return{cancel(){S&&(clearTimeout(S),S=null)},start(){S&&clearTimeout(S),S=setTimeout(f,$*1000,arguments)}};function f(M){T.apply(null,M),S=null}}var yY=()=>{};function r1(T,$){let S=new Map,f="postgresjs_"+Math.random().toString(36).slice(2),M={},F,J,W=!1,A=Y.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(W)return;J=null,M.pid=M.secret=void 0,k(await R(A,f,$.publications)),S.forEach((Q)=>Q.forEach(({onsubscribe:D})=>D()))},no_subscribe:!0}),w=A.end,X=A.close;return A.end=async()=>{return W=!0,J&&await new Promise((Q)=>(J.once("close",Q),J.end())),w()},A.close=async()=>{return J&&await new Promise((Q)=>(J.once("close",Q),J.end())),X()},Y;async function Y(Q,D,N=yY,V=yY){if(Q=$y(Q),!F)F=R(A,f,$.publications);let L={fn:D,onsubscribe:N},Z=S.has(Q)?S.get(Q).add(L):S.set(Q,new Set([L])).get(Q),_=()=>{Z.delete(L),Z.size===0&&S.delete(Q)};return F.then((E)=>{return k(E),N(),J&&J.on("error",V),{unsubscribe:_,state:M,sql:A}})}function k(Q){J=Q.stream,M.pid=Q.state.pid,M.secret=Q.state.secret}async function R(Q,D,N){if(!N)throw new Error("Missing publication names");let V=await Q.unsafe(`CREATE_REPLICATION_SLOT ${D} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[L]=V,Z=await Q.unsafe(`START_REPLICATION SLOT ${D} LOGICAL ${L.consistent_point} (proto_version '1', publication_names '${N}')`).writable(),_={lsn:Buffer.concat(L.consistent_point.split("/").map((G)=>Buffer.from(("00000000"+G).slice(-8),"hex")))};return Z.on("data",B),Z.on("error",E),Z.on("close",Q.close),{stream:Z,state:V.state};function E(G){console.error("Unexpected error during logical streaming - reconnecting",G)}function B(G){if(G[0]===119)Ty(G.subarray(25),_,Q.options.parsers,q,$.transform);else if(G[0]===107&&G[17])_.lsn=G.subarray(1,9),v()}function q(G,o){let n=o.relation.schema+"."+o.relation.table;z("*",G,o),z("*:"+n,G,o),o.relation.keys.length&&z("*:"+n+"="+o.relation.keys.map((u)=>G[u.name]),G,o),z(o.command,G,o),z(o.command+":"+n,G,o),o.relation.keys.length&&z(o.command+":"+n+"="+o.relation.keys.map((u)=>G[u.name]),G,o)}function v(){let G=Buffer.alloc(34);G[0]=114,G.fill(_.lsn,1),G.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),Z.write(G)}}function z(Q,D,N){S.has(Q)&&S.get(Q).forEach(({fn:V})=>V(D,N,Q))}}function eO(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function Ty(T,$,S,f,M){let F=(J,[W,A])=>(J[W.charCodeAt(0)]=A,J);Object.entries({R:(J)=>{let W=1,A=$[J.readUInt32BE(W)]={schema:J.toString("utf8",W+=4,W=J.indexOf(0,W))||"pg_catalog",table:J.toString("utf8",W+1,W=J.indexOf(0,W+1)),columns:Array(J.readUInt16BE(W+=2)),keys:[]};W+=2;let w=0,X;while(W<J.length)X=A.columns[w++]={key:J[W++],name:M.column.from?M.column.from(J.toString("utf8",W,W=J.indexOf(0,W))):J.toString("utf8",W,W=J.indexOf(0,W)),type:J.readUInt32BE(W+=1),parser:S[J.readUInt32BE(W)],atttypmod:J.readUInt32BE(W+=4)},X.key&&A.keys.push(X),W+=4},Y:()=>{},O:()=>{},B:(J)=>{$.date=eO(J.readBigInt64BE(9)),$.lsn=J.subarray(1,9)},I:(J)=>{let W=1,A=$[J.readUInt32BE(W)],{row:w}=CW(J,A.columns,W+=7,M);f(w,{command:"insert",relation:A})},D:(J)=>{let W=1,A=$[J.readUInt32BE(W)];W+=4;let w=J[W]===75;f(w||J[W]===79?CW(J,A.columns,W+=3,M).row:null,{command:"delete",relation:A,key:w})},U:(J)=>{let W=1,A=$[J.readUInt32BE(W)];W+=4;let w=J[W]===75,X=w||J[W]===79?CW(J,A.columns,W+=3,M):null;X&&(W=X.i);let{row:Y}=CW(J,A.columns,W+3,M);f(Y,{command:"update",relation:A,key:w,old:X&&X.row})},T:()=>{},C:()=>{}}).reduce(F,{})[T[0]](T)}function CW(T,$,S,f){let M,F,J,W=f.raw?new Array($.length):{};for(let A=0;A<$.length;A++)M=T[S++],F=$[A],J=M===110?null:M===117?void 0:F.parser===void 0?T.toString("utf8",S+4,S+=4+T.readUInt32BE(S)):F.parser.array===!0?F.parser(T.toString("utf8",S+5,S+=4+T.readUInt32BE(S))):F.parser(T.toString("utf8",S+4,S+=4+T.readUInt32BE(S))),f.raw?W[A]=f.raw===!0?J:f.value.from?f.value.from(J,F):J:W[F.name]=f.value.from?f.value.from(J,F):J;return{i:S,row:f.row.from?f.row.from(W):W}}function $y(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,S,f,M]=$;return(S||"*")+(f?":"+(f.indexOf(".")===-1?"public."+f:f):"")+(M?"="+M:"")}import GY from"stream";function a1(T,$,S=393216){return new Promise(async(f,M)=>{await T.begin(async(F)=>{let J;!$&&([{oid:$}]=await F`select lo_creat(-1) as oid`);let[{fd:W}]=await F`select lo_open(${$}, ${S}) as fd`,A={writable:X,readable:w,close:()=>F`select lo_close(${W})`.then(J),tell:()=>F`select lo_tell64(${W})`,read:(Y)=>F`select loread(${W}, ${Y}) as data`,write:(Y)=>F`select lowrite(${W}, ${Y})`,truncate:(Y)=>F`select lo_truncate64(${W}, ${Y})`,seek:(Y,k=0)=>F`select lo_lseek64(${W}, ${Y}, ${k})`,size:()=>F`
|
|
65
67
|
select
|
|
66
68
|
lo_lseek64(${W}, location, 0) as position,
|
|
67
69
|
seek.size
|
|
@@ -71,18 +73,18 @@ ${F}`);let W=f$.join(this.baseDir,`${T}/${S}.output.json`);return JSON.parse(PT.
|
|
|
71
73
|
tell.location
|
|
72
74
|
from (select lo_tell64($1) as location) tell
|
|
73
75
|
) seek
|
|
74
|
-
`};return f(A),new Promise(async(Y)=>J=Y);async function w({highWaterMark:Y=16384,start:k=0,end:R=1/0}={}){let z=R-k;return k&&await A.seek(k),new GY.Readable({highWaterMark:Y,async read(Q){let D=Q>z?Q-z:Q;z-=Q;let[{data:N}]=await A.read(D);if(this.push(N),N.length<Q)this.push(null)}})}async function X({highWaterMark:Y=16384,start:k=0}={}){return k&&await A.seek(k),new GY.Writable({highWaterMark:Y,write(R,z,Q){A.write(R).then(()=>Q(),Q)}})}}).catch(M)})}Object.assign(IW,{PostgresError:EM,toPascal:Uf,pascal:t1,toCamel:Qf,camel:g1,toKebab:Vf,kebab:p1,fromPascal:nF,fromCamel:PF,fromKebab:cF,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var UM=IW;function IW(T,S){let $=My(T,S),f=$.no_subscribe||r1(IW,{...$}),M=!1,F=hS(),J=hS(),W=hS(),A=hS(),w=hS(),X=hS(),Y=hS(),k=hS(),R={connecting:J,reserved:W,closed:A,ended:w,open:X,busy:Y,full:k},z=[...Array($.max)].map(()=>l1($,R,{onopen:ES,onend:zT,onclose:G$})),Q=D(q);return Object.assign(Q,{get parameters(){return $.parameters},largeObject:a1.bind(null,Q),subscribe:f,CLOSE:_M,END:_M,PostgresError:EM,options:$,reserve:L,listen:N,begin:Z,close:n,end:o}),Q;function D(C){return C.debug=$.debug,Object.entries($.types).reduce((JT,[UT,gT])=>{return JT[UT]=(ZT)=>new y$(ZT,gT.to),JT},l),Object.assign(GT,{types:l,typed:l,unsafe:jT,notify:V,array:B,json:E,file:iT}),GT;function l(JT,UT){return new y$(JT,UT)}function GT(JT,...UT){return JT&&Array.isArray(JT.raw)?new tS(JT,UT,C,G):typeof JT==="string"&&!UT.length?new oF($.transform.column.to?$.transform.column.to(JT):JT):new UW(JT,UT)}function jT(JT,UT=[],gT={}){return arguments.length===2&&!Array.isArray(UT)&&(gT=UT,UT=[]),new tS([JT],UT,C,G,{prepare:!1,...gT,simple:"simple"in gT?gT.simple:UT.length===0})}function iT(JT,UT=[],gT={}){return arguments.length===2&&!Array.isArray(UT)&&(gT=UT,UT=[]),new tS([],UT,(NT)=>{fy.readFile(JT,"utf8",(WS,VT)=>{if(WS)return NT.reject(WS);NT.strings=[VT],C(NT)})},G,{...gT,simple:"simple"in gT?gT.simple:UT.length===0})}}async function N(C,l,GT){let jT={fn:l,onlisten:GT},iT=N.sql||(N.sql=IW({...$,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(N.channels).forEach(([NT,{listeners:WS}])=>{delete N.channels[NT],Promise.all(WS.map((VT)=>N(NT,VT.fn,VT.onlisten).catch(()=>{})))})},onnotify(NT,WS){NT in N.channels&&N.channels[NT].listeners.forEach((VT)=>VT.fn(WS))}})),JT=N.channels||(N.channels={});if(C in JT){JT[C].listeners.push(jT);let NT=await JT[C].result;return jT.onlisten&&jT.onlisten(),{state:NT.state,unlisten:ZT}}JT[C]={result:iT`listen ${iT.unsafe('"'+C.replace(/"/g,'""')+'"')}`,listeners:[jT]};let gT=await JT[C].result;return jT.onlisten&&jT.onlisten(),{state:gT.state,unlisten:ZT};async function ZT(){if(C in JT===!1)return;if(JT[C].listeners=JT[C].listeners.filter((NT)=>NT!==jT),JT[C].listeners.length)return;return delete JT[C],iT`unlisten ${iT.unsafe('"'+C.replace(/"/g,'""')+'"')}`}}async function V(C,l){return await Q`select pg_notify(${C}, ${""+l})`}async function L(){let C=hS(),l=X.length?X.shift():await new Promise((iT)=>{F.push({reserve:iT}),A.length&&yT(A.shift())});_(l,W),l.reserved=()=>C.length?l.execute(C.shift()):_(l,W),l.reserved.release=!0;let GT=D(jT);return GT.release=()=>{l.reserved=null,ES(l)},GT;function jT(iT){l.queue===k?C.push(iT):l.execute(iT)||_(l,k)}}async function Z(C,l){!l&&(l=C,C="");let GT=hS(),jT=0,iT,JT=null;try{return await Q.unsafe("begin "+C.replace(/[^a-z ]/ig,""),[],{onexecute:gT}).execute(),await Promise.race([UT(iT,l),new Promise((ZT,NT)=>iT.onclose=NT)])}catch(ZT){throw ZT}async function UT(ZT,NT,WS){let VT=D(uT);VT.savepoint=m$,VT.prepare=(CT)=>JT=CT.replace(/[^a-z0-9$-_. ]/gi);let pS,AS;WS&&await VT`savepoint ${VT(WS)}`;try{if(AS=await new Promise((CT,iS)=>{let J$=NT(VT);Promise.resolve(Array.isArray(J$)?Promise.all(J$):J$).then(CT,iS)}),pS)throw pS}catch(CT){throw await(WS?VT`rollback to ${VT(WS)}`:VT`rollback`),CT instanceof EM&&CT.code==="25P02"&&pS||CT}if(!WS)JT?await VT`prepare transaction '${VT.unsafe(JT)}'`:await VT`commit`;return AS;function m$(CT,iS){if(CT&&Array.isArray(CT.raw))return m$((J$)=>J$.apply(J$,arguments));return arguments.length===1&&(iS=CT,CT=null),UT(ZT,iS,"s"+jT+++(CT?"_"+CT:""))}function uT(CT){CT.catch((iS)=>pS||(pS=iS)),ZT.queue===k?GT.push(CT):ZT.execute(CT)||_(ZT,k)}}function gT(ZT){iT=ZT,_(ZT,W),ZT.reserved=()=>GT.length?ZT.execute(GT.shift()):_(ZT,W)}}function _(C,l){return C.queue.remove(C),l.push(C),C.queue=l,l===X?C.idleTimer.start():C.idleTimer.cancel(),C}function E(C){return new y$(C,3802)}function B(C,l){if(!Array.isArray(C))return B(Array.from(arguments));return new y$(C,l||(C.length?EW(C)||25:0),$.shared.typeArrayMap)}function q(C){if(M)return C.reject(pT.connection("CONNECTION_ENDED",$,$));if(X.length)return v(X.shift(),C);if(A.length)return yT(A.shift(),C);Y.length?v(Y.shift(),C):F.push(C)}function v(C,l){return C.execute(l)?_(C,Y):_(C,k)}function G(C){return new Promise((l,GT)=>{C.state?C.active?l1($).cancel(C.state,l,GT):C.cancelled={resolve:l,reject:GT}:(F.remove(C),C.cancelled=!0,C.reject(pT.generic("57014","canceling statement due to user request")),l())})}async function o({timeout:C=null}={}){if(M)return M;await 1;let l;return M=Promise.race([new Promise((GT)=>C!==null&&(l=setTimeout(u,C*1000,GT))),Promise.all(z.map((GT)=>GT.end()).concat(N.sql?N.sql.end({timeout:0}):[],f.sql?f.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(l))}async function n(){await Promise.all(z.map((C)=>C.end()))}async function u(C){await Promise.all(z.map((l)=>l.terminate()));while(F.length)F.shift().reject(pT.connection("CONNECTION_DESTROYED",$));C()}function yT(C,l){return _(C,J),C.connect(l),C}function zT(C){_(C,w)}function ES(C){if(F.length===0)return _(C,X);let l=Math.ceil(F.length/(J.length+1)),GT=!0;while(GT&&F.length&&l-- >0){let jT=F.shift();if(jT.reserve)return jT.reserve(C);GT=C.execute(jT)}GT?_(C,Y):_(C,k)}function G$(C,l){_(C,A),C.reserved=null,C.onclose&&(C.onclose(l),C.onclose=null),$.onclose&&$.onclose(C.id),F.length&&yT(C,F.shift())}}function My(T,S){if(T&&T.shared)return T;let $=process.env,f=(!T||typeof T==="string"?S:T)||{},{url:M,multihost:F}=wy(T),J=[...M.searchParams].reduce((k,[R,z])=>(k[R]=z,k),{}),W=f.hostname||f.host||F||M.hostname||$.PGHOST||"localhost",A=f.port||M.port||$.PGPORT||5432,w=f.user||f.username||M.username||$.PGUSERNAME||$.PGUSER||Xy();f.no_prepare&&(f.prepare=!1),J.sslmode&&(J.ssl=J.sslmode,delete J.sslmode),"timeout"in f&&(console.log("The timeout option is deprecated, use idle_timeout instead"),f.idle_timeout=f.timeout),J.sslrootcert==="system"&&(J.ssl="verify-full");let X=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],Y={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:Wy,max_pipeline:100,backoff:Jy,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(W)?W:W.split(",").map((k)=>k.split(":")[0]),port:Array.isArray(A)?A:W.split(",").map((k)=>parseInt(k.split(":")[1]||A)),path:f.path||W.indexOf("/")>-1&&W+"/.s.PGSQL."+A,database:f.database||f.db||(M.pathname||"").slice(1)||$.PGDATABASE||w,user:w,pass:f.pass||f.password||M.password||$.PGPASSWORD||"",...Object.entries(Y).reduce((k,[R,z])=>{let Q=R in f?f[R]:(R in J)?J[R]==="disable"||J[R]==="false"?!1:J[R]:$["PG"+R.toUpperCase()]||z;return k[R]=typeof Q==="string"&&X.includes(R)?+Q:Q,k},{}),connection:{application_name:"postgres.js",...f.connection,...Object.entries(J).reduce((k,[R,z])=>((R in Y)||(k[R]=z),k),{})},types:f.types||{},target_session_attrs:Fy(f,M,$),onnotice:f.onnotice,onnotify:f.onnotify,onclose:f.onclose,onparameter:f.onparameter,socket:f.socket,transform:Ay(f.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...FY(f.types)}}function Fy(T,S,$){let f=T.target_session_attrs||S.searchParams.get("target_session_attrs")||$.PGTARGETSESSIONATTRS;if(!f||["read-write","read-only","primary","standby","prefer-standby"].includes(f))return f;throw new Error("target_session_attrs "+f+" is not supported")}function Jy(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function Wy(){return 60*(30+Math.random()*30)}function Ay(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 wy(T){if(!T||typeof T!=="string")return{url:{searchParams:new Map}};let S=T;S=S.slice(S.indexOf("://")+3).split(/[?/]/)[0],S=decodeURIComponent(S.slice(S.indexOf("@")+1));let $=new URL(T.replace(S,S.split(",")[0]));return{url:{username:decodeURIComponent($.username),password:decodeURIComponent($.password),host:$.host,hostname:$.hostname,port:$.port,pathname:$.pathname,searchParams:$.searchParams},multihost:S.indexOf(",")>-1&&S}}function Xy(){try{return $y.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class nT{static[O]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,S){if(S==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if(S===LT)return{...T[LT],selectedFields:new Proxy(T[LT].selectedFields,this)};if(typeof S==="symbol")return T[S];let f=(U(T,sT)?T._.selectedFields:U(T,BS)?T[LT].selectedFields:T)[S];if(U(f,c.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!f.isSelectionField)return f.sql;let M=f.clone();return M.isSelectionField=!0,M}if(U(f,c)){if(this.config.sqlBehavior==="sql")return f;throw new Error(`You tried to reference "${S}" 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(U(f,ET)){if(this.config.alias)return new Proxy(f,new DM(new Proxy(f.table,new xF(this.config.alias,this.config.replaceOriginalName??!1))));return f}if(typeof f!=="object"||f===null)return f;return new Proxy(f,new nT(this.config))}}class jW extends DS{constructor(T,S,$,f){super();this.session=S,this.dialect=$,this.config={table:T,withList:f}}static[O]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[P.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=gS(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}_prepare(T){return QT.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 QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new nT({alias:SS(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function Yy(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(($)=>$.toLowerCase()).join("_")}function ky(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce(($,f,M)=>{let F=M===0?f.toLowerCase():`${f[0].toUpperCase()}${f.slice(1)}`;return $+F},"")}function Ky(T){return T}class s1{static[O]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?Yy:T==="camelCase"?ky:Ky}getColumnCasing(T){if(!T.keyAsName)return T.name;let S=T.table[P.Symbol.Schema]??"public",$=T.table[P.Symbol.OriginalName],f=`${S}.${$}.${T.name}`;if(!this.cache[f])this.cacheTable(T.table);return this.cache[f]}cacheTable(T){let S=T[P.Symbol.Schema]??"public",$=T[P.Symbol.OriginalName],f=`${S}.${$}`;if(!this.cachedTables[f]){for(let M of Object.values(T[P.Symbol.Columns])){let F=`${f}.${M.name}`;this.cache[F]=this.convert(M.name)}this.cachedTables[f]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class tF extends BS{static[O]="PgViewBase"}class Lf{static[O]="PgDialect";casing;constructor(T){this.casing=new s1(T?.casing)}async migrate(T,S,$){let f=typeof $==="string"?"__drizzle_migrations":$.migrationsTable??"__drizzle_migrations",M=typeof $==="string"?"drizzle":$.migrationsSchema??"drizzle",F=y`
|
|
76
|
+
`};return f(A),new Promise(async(Y)=>J=Y);async function w({highWaterMark:Y=16384,start:k=0,end:R=1/0}={}){let z=R-k;return k&&await A.seek(k),new GY.Readable({highWaterMark:Y,async read(Q){let D=Q>z?Q-z:Q;z-=Q;let[{data:N}]=await A.read(D);if(this.push(N),N.length<Q)this.push(null)}})}async function X({highWaterMark:Y=16384,start:k=0}={}){return k&&await A.seek(k),new GY.Writable({highWaterMark:Y,write(R,z,Q){A.write(R).then(()=>Q(),Q)}})}}).catch(M)})}Object.assign(IW,{PostgresError:EM,toPascal:Uf,pascal:t1,toCamel:Qf,camel:g1,toKebab:Vf,kebab:p1,fromPascal:nF,fromCamel:PF,fromKebab:cF,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var UM=IW;function IW(T,$){let S=My(T,$),f=S.no_subscribe||r1(IW,{...S}),M=!1,F=h$(),J=h$(),W=h$(),A=h$(),w=h$(),X=h$(),Y=h$(),k=h$(),R={connecting:J,reserved:W,closed:A,ended:w,open:X,busy:Y,full:k},z=[...Array(S.max)].map(()=>l1(S,R,{onopen:E$,onend:zT,onclose:GS})),Q=D(q);return Object.assign(Q,{get parameters(){return S.parameters},largeObject:a1.bind(null,Q),subscribe:f,CLOSE:_M,END:_M,PostgresError:EM,options:S,reserve:L,listen:N,begin:Z,close:n,end:o}),Q;function D(C){return C.debug=S.debug,Object.entries(S.types).reduce((JT,[UT,gT])=>{return JT[UT]=(ZT)=>new yS(ZT,gT.to),JT},l),Object.assign(GT,{types:l,typed:l,unsafe:jT,notify:V,array:B,json:E,file:iT}),GT;function l(JT,UT){return new yS(JT,UT)}function GT(JT,...UT){return JT&&Array.isArray(JT.raw)?new t$(JT,UT,C,G):typeof JT==="string"&&!UT.length?new oF(S.transform.column.to?S.transform.column.to(JT):JT):new UW(JT,UT)}function jT(JT,UT=[],gT={}){return arguments.length===2&&!Array.isArray(UT)&&(gT=UT,UT=[]),new t$([JT],UT,C,G,{prepare:!1,...gT,simple:"simple"in gT?gT.simple:UT.length===0})}function iT(JT,UT=[],gT={}){return arguments.length===2&&!Array.isArray(UT)&&(gT=UT,UT=[]),new t$([],UT,(NT)=>{fy.readFile(JT,"utf8",(W$,VT)=>{if(W$)return NT.reject(W$);NT.strings=[VT],C(NT)})},G,{...gT,simple:"simple"in gT?gT.simple:UT.length===0})}}async function N(C,l,GT){let jT={fn:l,onlisten:GT},iT=N.sql||(N.sql=IW({...S,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(N.channels).forEach(([NT,{listeners:W$}])=>{delete N.channels[NT],Promise.all(W$.map((VT)=>N(NT,VT.fn,VT.onlisten).catch(()=>{})))})},onnotify(NT,W$){NT in N.channels&&N.channels[NT].listeners.forEach((VT)=>VT.fn(W$))}})),JT=N.channels||(N.channels={});if(C in JT){JT[C].listeners.push(jT);let NT=await JT[C].result;return jT.onlisten&&jT.onlisten(),{state:NT.state,unlisten:ZT}}JT[C]={result:iT`listen ${iT.unsafe('"'+C.replace(/"/g,'""')+'"')}`,listeners:[jT]};let gT=await JT[C].result;return jT.onlisten&&jT.onlisten(),{state:gT.state,unlisten:ZT};async function ZT(){if(C in JT===!1)return;if(JT[C].listeners=JT[C].listeners.filter((NT)=>NT!==jT),JT[C].listeners.length)return;return delete JT[C],iT`unlisten ${iT.unsafe('"'+C.replace(/"/g,'""')+'"')}`}}async function V(C,l){return await Q`select pg_notify(${C}, ${""+l})`}async function L(){let C=h$(),l=X.length?X.shift():await new Promise((iT)=>{F.push({reserve:iT}),A.length&&yT(A.shift())});_(l,W),l.reserved=()=>C.length?l.execute(C.shift()):_(l,W),l.reserved.release=!0;let GT=D(jT);return GT.release=()=>{l.reserved=null,E$(l)},GT;function jT(iT){l.queue===k?C.push(iT):l.execute(iT)||_(l,k)}}async function Z(C,l){!l&&(l=C,C="");let GT=h$(),jT=0,iT,JT=null;try{return await Q.unsafe("begin "+C.replace(/[^a-z ]/ig,""),[],{onexecute:gT}).execute(),await Promise.race([UT(iT,l),new Promise((ZT,NT)=>iT.onclose=NT)])}catch(ZT){throw ZT}async function UT(ZT,NT,W$){let VT=D(uT);VT.savepoint=mS,VT.prepare=(CT)=>JT=CT.replace(/[^a-z0-9$-_. ]/gi);let p$,A$;W$&&await VT`savepoint ${VT(W$)}`;try{if(A$=await new Promise((CT,i$)=>{let JS=NT(VT);Promise.resolve(Array.isArray(JS)?Promise.all(JS):JS).then(CT,i$)}),p$)throw p$}catch(CT){throw await(W$?VT`rollback to ${VT(W$)}`:VT`rollback`),CT instanceof EM&&CT.code==="25P02"&&p$||CT}if(!W$)JT?await VT`prepare transaction '${VT.unsafe(JT)}'`:await VT`commit`;return A$;function mS(CT,i$){if(CT&&Array.isArray(CT.raw))return mS((JS)=>JS.apply(JS,arguments));return arguments.length===1&&(i$=CT,CT=null),UT(ZT,i$,"s"+jT+++(CT?"_"+CT:""))}function uT(CT){CT.catch((i$)=>p$||(p$=i$)),ZT.queue===k?GT.push(CT):ZT.execute(CT)||_(ZT,k)}}function gT(ZT){iT=ZT,_(ZT,W),ZT.reserved=()=>GT.length?ZT.execute(GT.shift()):_(ZT,W)}}function _(C,l){return C.queue.remove(C),l.push(C),C.queue=l,l===X?C.idleTimer.start():C.idleTimer.cancel(),C}function E(C){return new yS(C,3802)}function B(C,l){if(!Array.isArray(C))return B(Array.from(arguments));return new yS(C,l||(C.length?EW(C)||25:0),S.shared.typeArrayMap)}function q(C){if(M)return C.reject(pT.connection("CONNECTION_ENDED",S,S));if(X.length)return v(X.shift(),C);if(A.length)return yT(A.shift(),C);Y.length?v(Y.shift(),C):F.push(C)}function v(C,l){return C.execute(l)?_(C,Y):_(C,k)}function G(C){return new Promise((l,GT)=>{C.state?C.active?l1(S).cancel(C.state,l,GT):C.cancelled={resolve:l,reject:GT}:(F.remove(C),C.cancelled=!0,C.reject(pT.generic("57014","canceling statement due to user request")),l())})}async function o({timeout:C=null}={}){if(M)return M;await 1;let l;return M=Promise.race([new Promise((GT)=>C!==null&&(l=setTimeout(u,C*1000,GT))),Promise.all(z.map((GT)=>GT.end()).concat(N.sql?N.sql.end({timeout:0}):[],f.sql?f.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(l))}async function n(){await Promise.all(z.map((C)=>C.end()))}async function u(C){await Promise.all(z.map((l)=>l.terminate()));while(F.length)F.shift().reject(pT.connection("CONNECTION_DESTROYED",S));C()}function yT(C,l){return _(C,J),C.connect(l),C}function zT(C){_(C,w)}function E$(C){if(F.length===0)return _(C,X);let l=Math.ceil(F.length/(J.length+1)),GT=!0;while(GT&&F.length&&l-- >0){let jT=F.shift();if(jT.reserve)return jT.reserve(C);GT=C.execute(jT)}GT?_(C,Y):_(C,k)}function GS(C,l){_(C,A),C.reserved=null,C.onclose&&(C.onclose(l),C.onclose=null),S.onclose&&S.onclose(C.id),F.length&&yT(C,F.shift())}}function My(T,$){if(T&&T.shared)return T;let S=process.env,f=(!T||typeof T==="string"?$:T)||{},{url:M,multihost:F}=wy(T),J=[...M.searchParams].reduce((k,[R,z])=>(k[R]=z,k),{}),W=f.hostname||f.host||F||M.hostname||S.PGHOST||"localhost",A=f.port||M.port||S.PGPORT||5432,w=f.user||f.username||M.username||S.PGUSERNAME||S.PGUSER||Xy();f.no_prepare&&(f.prepare=!1),J.sslmode&&(J.ssl=J.sslmode,delete J.sslmode),"timeout"in f&&(console.log("The timeout option is deprecated, use idle_timeout instead"),f.idle_timeout=f.timeout),J.sslrootcert==="system"&&(J.ssl="verify-full");let X=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],Y={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:Wy,max_pipeline:100,backoff:Jy,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(W)?W:W.split(",").map((k)=>k.split(":")[0]),port:Array.isArray(A)?A:W.split(",").map((k)=>parseInt(k.split(":")[1]||A)),path:f.path||W.indexOf("/")>-1&&W+"/.s.PGSQL."+A,database:f.database||f.db||(M.pathname||"").slice(1)||S.PGDATABASE||w,user:w,pass:f.pass||f.password||M.password||S.PGPASSWORD||"",...Object.entries(Y).reduce((k,[R,z])=>{let Q=R in f?f[R]:(R in J)?J[R]==="disable"||J[R]==="false"?!1:J[R]:S["PG"+R.toUpperCase()]||z;return k[R]=typeof Q==="string"&&X.includes(R)?+Q:Q,k},{}),connection:{application_name:"postgres.js",...f.connection,...Object.entries(J).reduce((k,[R,z])=>((R in Y)||(k[R]=z),k),{})},types:f.types||{},target_session_attrs:Fy(f,M,S),onnotice:f.onnotice,onnotify:f.onnotify,onclose:f.onclose,onparameter:f.onparameter,socket:f.socket,transform:Ay(f.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...FY(f.types)}}function Fy(T,$,S){let f=T.target_session_attrs||$.searchParams.get("target_session_attrs")||S.PGTARGETSESSIONATTRS;if(!f||["read-write","read-only","primary","standby","prefer-standby"].includes(f))return f;throw new Error("target_session_attrs "+f+" is not supported")}function Jy(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function Wy(){return 60*(30+Math.random()*30)}function Ay(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 wy(T){if(!T||typeof T!=="string")return{url:{searchParams:new Map}};let $=T;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let S=new URL(T.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(S.username),password:decodeURIComponent(S.password),host:S.host,hostname:S.hostname,port:S.port,pathname:S.pathname,searchParams:S.searchParams},multihost:$.indexOf(",")>-1&&$}}function Xy(){try{return Sy.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class nT{static[O]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===LT)return{...T[LT],selectedFields:new Proxy(T[LT].selectedFields,this)};if(typeof $==="symbol")return T[$];let f=(U(T,sT)?T._.selectedFields:U(T,B$)?T[LT].selectedFields:T)[$];if(U(f,c.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!f.isSelectionField)return f.sql;let M=f.clone();return M.isSelectionField=!0,M}if(U(f,c)){if(this.config.sqlBehavior==="sql")return f;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(U(f,ET)){if(this.config.alias)return new Proxy(f,new DM(new Proxy(f.table,new xF(this.config.alias,this.config.replaceOriginalName??!1))));return f}if(typeof f!=="object"||f===null)return f;return new Proxy(f,new nT(this.config))}}class jW extends D${constructor(T,$,S,f){super();this.session=$,this.dialect=S,this.config={table:T,withList:f}}static[O]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[P.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=g$(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return QT.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 QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new nT({alias:$$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function Yy(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((S)=>S.toLowerCase()).join("_")}function ky(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((S,f,M)=>{let F=M===0?f.toLowerCase():`${f[0].toUpperCase()}${f.slice(1)}`;return S+F},"")}function Ky(T){return T}class s1{static[O]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?Yy:T==="camelCase"?ky:Ky}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[P.Symbol.Schema]??"public",S=T.table[P.Symbol.OriginalName],f=`${$}.${S}.${T.name}`;if(!this.cache[f])this.cacheTable(T.table);return this.cache[f]}cacheTable(T){let $=T[P.Symbol.Schema]??"public",S=T[P.Symbol.OriginalName],f=`${$}.${S}`;if(!this.cachedTables[f]){for(let M of Object.values(T[P.Symbol.Columns])){let F=`${f}.${M.name}`;this.cache[F]=this.convert(M.name)}this.cachedTables[f]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class tF extends B${static[O]="PgViewBase"}class Lf{static[O]="PgDialect";casing;constructor(T){this.casing=new s1(T?.casing)}async migrate(T,$,S){let f=typeof S==="string"?"__drizzle_migrations":S.migrationsTable??"__drizzle_migrations",M=typeof S==="string"?"drizzle":S.migrationsSchema??"drizzle",F=y`
|
|
75
77
|
CREATE TABLE IF NOT EXISTS ${y.identifier(M)}.${y.identifier(f)} (
|
|
76
78
|
id SERIAL PRIMARY KEY,
|
|
77
79
|
hash text NOT NULL,
|
|
78
80
|
created_at bigint
|
|
79
81
|
)
|
|
80
|
-
`;await S.execute(y`CREATE SCHEMA IF NOT EXISTS ${y.identifier(M)}`),await S.execute(F);let W=(await S.all(y`select id, hash, created_at from ${y.identifier(M)}.${y.identifier(f)} order by created_at desc limit 1`))[0];await S.transaction(async(A)=>{for await(let w of T)if(!W||Number(W.created_at)<w.folderMillis){for(let X of w.sql)await A.execute(y.raw(X));await A.execute(y`insert into ${y.identifier(M)}.${y.identifier(f)} ("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 S=[y`with `];for(let[$,f]of T.entries())if(S.push(y`${y.identifier(f._.alias)} as (${f._.sql})`),$<T.length-1)S.push(y`, `);return S.push(y` `),y.join(S)}buildDeleteQuery({table:T,where:S,returning:$,withList:f}){let M=this.buildWithCTE(f),F=$?y` returning ${this.buildSelection($,{isSingleTable:!0})}`:void 0,J=S?y` where ${S}`:void 0;return y`${M}delete from ${T}${J}${F}`}buildUpdateSet(T,S){let $=T[P.Symbol.Columns],f=Object.keys($).filter((F)=>S[F]!==void 0||$[F]?.onUpdateFn!==void 0),M=f.length;return y.join(f.flatMap((F,J)=>{let W=$[F],A=S[F]??y.param(W.onUpdateFn(),W),w=y`${y.identifier(this.casing.getColumnCasing(W))} = ${A}`;if(J<M-1)return[w,y.raw(", ")];return[w]}))}buildUpdateQuery({table:T,set:S,where:$,returning:f,withList:M,from:F,joins:J}){let W=this.buildWithCTE(M),A=T[JS.Symbol.Name],w=T[JS.Symbol.Schema],X=T[JS.Symbol.OriginalName],Y=A===X?void 0:A,k=y`${w?y`${y.identifier(w)}.`:void 0}${y.identifier(X)}${Y&&y` ${y.identifier(Y)}`}`,R=this.buildUpdateSet(T,S),z=F&&y.join([y.raw(" from "),this.buildFromTable(F)]),Q=this.buildJoins(J),D=f?y` returning ${this.buildSelection(f,{isSingleTable:!F})}`:void 0,N=$?y` where ${$}`:void 0;return y`${W}update ${k} set ${R}${z}${Q}${N}${D}`}buildSelection(T,{isSingleTable:S=!1}={}){let $=T.length,f=T.flatMap(({field:M},F)=>{let J=[];if(U(M,c.Aliased)&&M.isSelectionField)J.push(y.identifier(M.fieldAlias));else if(U(M,c.Aliased)||U(M,c)){let W=U(M,c.Aliased)?M.sql:M;if(S)J.push(new c(W.queryChunks.map((A)=>{if(U(A,b))return y.identifier(this.casing.getColumnCasing(A));return A})));else J.push(W);if(U(M,c.Aliased))J.push(y` as ${y.identifier(M.fieldAlias)}`)}else if(U(M,ET))if(S)J.push(y.identifier(this.casing.getColumnCasing(M)));else J.push(M);if(F<$-1)J.push(y`, `);return J});return y.join(f)}buildJoins(T){if(!T||T.length===0)return;let S=[];for(let[$,f]of T.entries()){if($===0)S.push(y` `);let M=f.table,F=f.lateral?y` lateral`:void 0;if(U(M,JS)){let J=M[JS.Symbol.Name],W=M[JS.Symbol.Schema],A=M[JS.Symbol.OriginalName],w=J===A?void 0:f.alias;S.push(y`${y.raw(f.joinType)} join${F} ${W?y`${y.identifier(W)}.`:void 0}${y.identifier(A)}${w&&y` ${y.identifier(w)}`} on ${f.on}`)}else if(U(M,BS)){let J=M[LT].name,W=M[LT].schema,A=M[LT].originalName,w=J===A?void 0:f.alias;S.push(y`${y.raw(f.joinType)} join${F} ${W?y`${y.identifier(W)}.`:void 0}${y.identifier(A)}${w&&y` ${y.identifier(w)}`} on ${f.on}`)}else S.push(y`${y.raw(f.joinType)} join${F} ${M} on ${f.on}`);if($<T.length-1)S.push(y` `)}return y.join(S)}buildFromTable(T){if(U(T,P)&&T[P.Symbol.OriginalName]!==T[P.Symbol.Name]){let S=y`${y.identifier(T[P.Symbol.OriginalName])}`;if(T[P.Symbol.Schema])S=y`${y.identifier(T[P.Symbol.Schema])}.${S}`;return y`${S} ${y.identifier(T[P.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:S,fieldsFlat:$,where:f,having:M,table:F,joins:J,orderBy:W,groupBy:A,limit:w,offset:X,lockingClause:Y,distinct:k,setOperators:R}){let z=$??gS(S);for(let u of z)if(U(u.field,ET)&&SS(u.field.table)!==(U(F,sT)?F._.alias:U(F,tF)?F[LT].name:U(F,c)?void 0:SS(F))&&!((yT)=>J?.some(({alias:zT})=>zT===(yT[P.Symbol.IsAlias]?SS(yT):yT[P.Symbol.BaseName])))(u.field.table)){let yT=SS(u.field.table);throw new Error(`Your "${u.path.join("->")}" field references a column "${yT}"."${u.field.name}", but the table "${yT}" is not part of the query! Did you forget to join it?`)}let Q=!J||J.length===0,D=this.buildWithCTE(T),N;if(k)N=k===!0?y` distinct`:y` distinct on (${y.join(k.on,y`, `)})`;let V=this.buildSelection(z,{isSingleTable:Q}),L=this.buildFromTable(F),Z=this.buildJoins(J),_=f?y` where ${f}`:void 0,E=M?y` having ${M}`:void 0,B;if(W&&W.length>0)B=y` order by ${y.join(W,y`, `)}`;let q;if(A&&A.length>0)q=y` group by ${y.join(A,y`, `)}`;let v=typeof w==="object"||typeof w==="number"&&w>=0?y` limit ${w}`:void 0,G=X?y` offset ${X}`:void 0,o=y.empty();if(Y){let u=y` for ${y.raw(Y.strength)}`;if(Y.config.of)u.append(y` of ${y.join(Array.isArray(Y.config.of)?Y.config.of:[Y.config.of],y`, `)}`);if(Y.config.noWait)u.append(y` no wait`);else if(Y.config.skipLocked)u.append(y` skip locked`);o.append(u)}let n=y`${D}select${N} ${V} from ${L}${Z}${_}${q}${E}${B}${v}${G}${o}`;if(R.length>0)return this.buildSetOperations(n,R);return n}buildSetOperations(T,S){let[$,...f]=S;if(!$)throw new Error("Cannot pass undefined values to any set operator");if(f.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:$});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:$}),f)}buildSetOperationQuery({leftSelect:T,setOperator:{type:S,isAll:$,rightSelect:f,limit:M,orderBy:F,offset:J}}){let W=y`(${T.getSQL()}) `,A=y`(${f.getSQL()})`,w;if(F&&F.length>0){let R=[];for(let z of F)if(U(z,b))R.push(y.identifier(z.name));else if(U(z,c)){for(let Q=0;Q<z.queryChunks.length;Q++){let D=z.queryChunks[Q];if(U(D,b))z.queryChunks[Q]=y.identifier(D.name)}R.push(y`${z}`)}else R.push(y`${z}`);w=y` order by ${y.join(R,y`, `)} `}let X=typeof M==="object"||typeof M==="number"&&M>=0?y` limit ${M}`:void 0,Y=y.raw(`${S} ${$?"all ":""}`),k=J?y` offset ${J}`:void 0;return y`${W}${Y}${A}${w}${X}${k}`}buildInsertQuery({table:T,values:S,onConflict:$,returning:f,withList:M,select:F,overridingSystemValue_:J}){let W=[],A=T[P.Symbol.Columns],w=Object.entries(A).filter(([D,N])=>!N.shouldDisableInsert()),X=w.map(([,D])=>y.identifier(this.casing.getColumnCasing(D)));if(F){let D=S;if(U(D,c))W.push(D);else W.push(D.getSQL())}else{let D=S;W.push(y.raw("values "));for(let[N,V]of D.entries()){let L=[];for(let[Z,_]of w){let E=V[Z];if(E===void 0||U(E,qS)&&E.value===void 0)if(_.defaultFn!==void 0){let B=_.defaultFn(),q=U(B,c)?B:y.param(B,_);L.push(q)}else if(!_.default&&_.onUpdateFn!==void 0){let B=_.onUpdateFn(),q=U(B,c)?B:y.param(B,_);L.push(q)}else L.push(y`default`);else L.push(E)}if(W.push(L),N<D.length-1)W.push(y`, `)}}let Y=this.buildWithCTE(M),k=y.join(W),R=f?y` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,z=$?y` on conflict ${$}`:void 0,Q=J===!0?y`overriding system value `:void 0;return y`${Y}insert into ${T} ${X} ${Q}${k}${z}${R}`}buildRefreshMaterializedViewQuery({view:T,concurrently:S,withNoData:$}){let f=S?y` concurrently`:void 0,M=$?y` with no data`:void 0;return y`refresh materialized view${f} ${T}${M}`}prepareTyping(T){if(U(T,KW)||U(T,kW))return"json";else if(U(T,OW))return"decimal";else if(U(T,yW))return"time";else if(U(T,GW)||U(T,RW))return"timestamp";else if(U(T,wW)||U(T,XW))return"date";else if(U(T,zW))return"uuid";else return"none"}sqlToQuery(T,S){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:S})}buildRelationalQueryWithoutPK({fullSchema:T,schema:S,tableNamesMap:$,table:f,tableConfig:M,queryConfig:F,tableAlias:J,nestedQueryRelation:W,joinOn:A}){let w=[],X,Y,k=[],R,z=[];if(F===!0)w=Object.entries(M.columns).map(([N,V])=>({dbKey:V.name,tsKey:N,field:O$(V,J),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let D=Object.fromEntries(Object.entries(M.columns).map(([E,B])=>[E,O$(B,J)]));if(F.where){let E=typeof F.where==="function"?F.where(D,i4()):F.where;R=E&&ZF(E,J)}let N=[],V=[];if(F.columns){let E=!1;for(let[B,q]of Object.entries(F.columns)){if(q===void 0)continue;if(B in M.columns){if(!E&&q===!0)E=!0;V.push(B)}}if(V.length>0)V=E?V.filter((B)=>F.columns?.[B]===!0):Object.keys(M.columns).filter((B)=>!V.includes(B))}else V=Object.keys(M.columns);for(let E of V){let B=M.columns[E];N.push({tsKey:E,value:B})}let L=[];if(F.with)L=Object.entries(F.with).filter((E)=>!!E[1]).map(([E,B])=>({tsKey:E,queryConfig:B,relation:M.relations[E]}));let Z;if(F.extras){Z=typeof F.extras==="function"?F.extras(D,{sql:y}):F.extras;for(let[E,B]of Object.entries(Z))N.push({tsKey:E,value:L1(B,J)})}for(let{tsKey:E,value:B}of N)w.push({dbKey:U(B,c.Aliased)?B.fieldAlias:M.columns[E].name,tsKey:E,field:U(B,ET)?O$(B,J):B,relationTableTsKey:void 0,isJson:!1,selection:[]});let _=typeof F.orderBy==="function"?F.orderBy(D,u4()):F.orderBy??[];if(!Array.isArray(_))_=[_];k=_.map((E)=>{if(U(E,ET))return O$(E,J);return ZF(E,J)}),X=F.limit,Y=F.offset;for(let{tsKey:E,queryConfig:B,relation:q}of L){let v=l4(S,$,q),G=Ef(q.referencedTable),o=$[G],n=`${J}_${E}`,u=bF(...v.fields.map((ES,G$)=>JW(O$(v.references[G$],n),O$(ES,J)))),yT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:S,tableNamesMap:$,table:T[o],tableConfig:S[o],queryConfig:U(q,s$)?B===!0?{limit:1}:{...B,limit:1}:B,tableAlias:n,joinOn:u,nestedQueryRelation:q}),zT=y`${y.identifier(n)}.${y.identifier("data")}`.as(E);z.push({on:y`true`,table:new sT(yT.sql,{},n),alias:n,joinType:"left",lateral:!0}),w.push({dbKey:E,tsKey:E,field:zT,relationTableTsKey:o,isJson:!0,selection:yT.selection})}}if(w.length===0)throw new FW({message:`No fields selected for table "${M.tsName}" ("${J}")`});let Q;if(R=bF(A,R),W){let D=y`json_build_array(${y.join(w.map(({field:L,tsKey:Z,isJson:_})=>_?y`${y.identifier(`${J}_${Z}`)}.${y.identifier("data")}`:U(L,c.Aliased)?L.sql:L),y`, `)})`;if(U(W,vF))D=y`coalesce(json_agg(${D}${k.length>0?y` order by ${y.join(k,y`, `)}`:void 0}), '[]'::json)`;let N=[{dbKey:"data",tsKey:"data",field:D.as("data"),isJson:!0,relationTableTsKey:M.tsName,selection:w}];if(X!==void 0||Y!==void 0||k.length>0)Q=this.buildSelectQuery({table:MW(f,J),fields:{},fieldsFlat:[{path:[],field:y.raw("*")}],where:R,limit:X,offset:Y,orderBy:k,setOperators:[]}),R=void 0,X=void 0,Y=void 0,k=[];else Q=MW(f,J);Q=this.buildSelectQuery({table:U(Q,JS)?Q:new sT(Q,{},J),fields:{},fieldsFlat:N.map(({field:L})=>({path:[],field:U(L,ET)?O$(L,J):L})),joins:z,where:R,limit:X,offset:Y,orderBy:k,setOperators:[]})}else Q=this.buildSelectQuery({table:MW(f,J),fields:{},fieldsFlat:w.map(({field:D})=>({path:[],field:U(D,ET)?O$(D,J):D})),joins:z,where:R,limit:X,offset:Y,orderBy:k,setOperators:[]});return{tableTsKey:M.tsName,sql:Q,selection:w}}}class e1{static[O]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class _S{static[O]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let S=!!this.fields,$=T,f;if(this.fields)f=this.fields;else if(U($,sT))f=Object.fromEntries(Object.keys($._.selectedFields).map((M)=>[M,$[M]]));else if(U($,tF))f=$[LT].selectedFields;else if(U($,c))f={};else f=rX($);return new TA({table:$,fields:f,isPartialSelect:S,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class RY extends e1{static[O]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:S,isPartialSelect:$,session:f,dialect:M,withList:F,distinct:J}){super();this.config={withList:F,table:T,fields:{...S},distinct:J,setOperators:[]},this.isPartialSelect=$,this.session=f,this.dialect=M,this._={selectedFields:S},this.tableName=x$(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return(S,$)=>{let f=this.tableName,M=x$(S);if(typeof M==="string"&&this.config.joins?.some((F)=>F.alias===M))throw new Error(`Alias "${M}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof f==="string")this.config.fields={[f]:this.config.fields};if(typeof M==="string"&&!U(S,c)){let F=U(S,sT)?S._.selectedFields:U(S,BS)?S[LT].selectedFields:S[P.Symbol.Columns];this.config.fields[M]=F}}if(typeof $==="function")$=$(new Proxy(this.config.fields,new nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:$,table:S,joinType:T,alias:M}),typeof M==="string")switch(T){case"left":{this.joinsNotNullableMap[M]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[M]=!0;break}case"inner":{this.joinsNotNullableMap[M]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[M]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,S){return($)=>{let f=typeof $==="function"?$(Oy()):$;if(!qF(this.getSelectedFields(),f.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:S,rightSelect:f}),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 nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let S=T[0](new Proxy(this.config.fields,new nT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(S)?S:[S]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let S=T[0](new Proxy(this.config.fields,new nT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),$=Array.isArray(S)?S:[S];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}else{let S=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=S;else this.config.orderBy=S}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,S={}){return this.config.lockingClause={strength:T,config:S},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}as(T){return new Proxy(new sT(this.getSQL(),this.config.fields,T),new nT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new nT({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class TA extends RY{static[O]="PgSelect";_prepare(T){let{session:S,config:$,dialect:f,joinsNotNullableMap:M,authToken:F}=this;if(!S)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return QT.startActiveSpan("drizzle.prepareQuery",()=>{let J=gS($.fields),W=S.prepareQuery(f.sqlToQuery(this.getSQL()),J,T,!0);return W.joinsNotNullableMap=M,W.setToken(F)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}lX(TA,[DS]);function VM(T,S){return($,f,...M)=>{let F=[f,...M].map((J)=>({type:T,isAll:S,rightSelect:J}));for(let J of F)if(!qF($.getSelectedFields(),J.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return $.addSetOperators(F)}}var Oy=()=>({union:yy,unionAll:Gy,intersect:Ry,intersectAll:zy,except:Hy,exceptAll:Dy}),yy=VM("union",!1),Gy=VM("union",!0),Ry=VM("intersect",!1),zy=VM("intersect",!0),Hy=VM("except",!1),Dy=VM("except",!0);class pF{static[O]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=U(T,Lf)?T:void 0,this.dialectConfig=U(T,Lf)?void 0:T}$with=(T,S)=>{let $=this;return{as:(M)=>{if(typeof M==="function")M=M($);return new Proxy(new IF(M.getSQL(),S??("getSelectedFields"in M?M.getSelectedFields()??{}:{}),T,!0),new nT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let S=this;function $(F){return new _S({fields:F??void 0,session:void 0,dialect:S.getDialect(),withList:T})}function f(F){return new _S({fields:F??void 0,session:void 0,dialect:S.getDialect(),distinct:!0})}function M(F,J){return new _S({fields:J??void 0,session:void 0,dialect:S.getDialect(),distinct:{on:F}})}return{select:$,selectDistinct:f,selectDistinctOn:M}}select(T){return new _S({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new _S({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,S){return new _S({fields:S??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new Lf(this.dialectConfig);return this.dialect}}class xW{constructor(T,S,$,f,M){this.table=T,this.session=S,this.dialect=$,this.withList=f,this.overridingSystemValue_=M}static[O]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let S=T.map(($)=>{let f={},M=this.table[P.Symbol.Columns];for(let F of Object.keys($)){let J=$[F];f[F]=U(J,c)?J:new qS(J,M[F])}return f});return new SA(this.table,S,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let S=typeof T==="function"?T(new pF):T;if(!U(S,c)&&!qF(this.table[$W],S._.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 SA(this.table,S,this.session,this.dialect,this.withList,!0)}}class SA extends DS{constructor(T,S,$,f,M,F,J){super();this.session=$,this.dialect=f,this.config={table:T,values:S,withList:M,select:F,overridingSystemValue_:J}}static[O]="PgInsert";config;returning(T=this.config.table[P.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=gS(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=y`do nothing`;else{let S="";S=Array.isArray(T.target)?T.target.map((f)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(f))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let $=T.where?y` where ${T.where}`:void 0;this.config.onConflict=y`(${y.raw(S)})${$} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let S=T.where?y` where ${T.where}`:void 0,$=T.targetWhere?y` where ${T.targetWhere}`:void 0,f=T.setWhere?y` where ${T.setWhere}`:void 0,M=this.dialect.buildUpdateSet(this.config.table,AW(this.config.table,T.set)),F="";return F=Array.isArray(T.target)?T.target.map((J)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(J))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=y`(${y.raw(F)})${$} do update set ${M}${S}${f}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}_prepare(T){return QT.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 QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new nT({alias:SS(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class $A extends DS{constructor(T,S,$){super();this.session=S,this.dialect=$,this.config={view:T}}static[O]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}_prepare(T){return QT.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 QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class ZW{constructor(T,S,$,f){this.table=T,this.session=S,this.dialect=$,this.withList=f}static[O]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new zY(this.table,AW(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class zY extends DS{constructor(T,S,$,f,M){super();this.session=$,this.dialect=f,this.config={set:S,table:T,withList:M,joins:[]},this.tableName=x$(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[O]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let S=T,$=x$(S);if(typeof $==="string")this.joinsNotNullableMap[$]=!0;return this.config.from=S,this}getTableLikeFields(T){if(U(T,JS))return T[P.Symbol.Columns];else if(U(T,sT))return T._.selectedFields;return T[LT].selectedFields}createJoin(T){return(S,$)=>{let f=x$(S);if(typeof f==="string"&&this.config.joins.some((M)=>M.alias===f))throw new Error(`Alias "${f}" is already used in this query`);if(typeof $==="function"){let M=this.config.from&&!U(this.config.from,c)?this.getTableLikeFields(this.config.from):void 0;$=$(new Proxy(this.config.table[P.Symbol.Columns],new nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),M&&new Proxy(M,new nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:$,table:S,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(([M])=>[M,!1])),this.joinsNotNullableMap[f]=!0;break}case"inner":{this.joinsNotNullableMap[f]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([M])=>[M,!1])),this.joinsNotNullableMap[f]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[P.Symbol.Columns]),this.config.from){let S=x$(this.config.from);if(typeof S==="string"&&this.config.from&&!U(this.config.from,c)){let $=this.getTableLikeFields(this.config.from);T[S]=$}for(let $ of this.config.joins){let f=x$($.table);if(typeof f==="string"&&!U($.table,c)){let M=this.getTableLikeFields($.table);T[f]=M}}}}return this.config.returningFields=T,this.config.returning=gS(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}_prepare(T){let S=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0);return S.joinsNotNullableMap=this.joinsNotNullableMap,S}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 nT({alias:SS(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class iF extends c{constructor(T){super(iF.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=iF.buildCount(T.source,T.filters)}sql;token;static[O]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,S){return y`(select count(*) from ${T}${y.raw(" where ").if(S)}${S})`}static buildCount(T,S){return y`select count(*) as count from ${T}${y.raw(" where ").if(S)}${S};`}setToken(T){return this.token=T,this}then(T,S){return Promise.resolve(this.session.count(this.sql,this.token)).then(T,S)}catch(T){return this.then(void 0,T)}finally(T){return this.then((S)=>{return T?.(),S},(S)=>{throw T?.(),S})}}class MA{constructor(T,S,$,f,M,F,J){this.fullSchema=T,this.schema=S,this.tableNamesMap=$,this.table=f,this.tableConfig=M,this.dialect=F,this.session=J}static[O]="PgRelationalQueryBuilder";findMany(T){return new fA(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new fA(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class fA extends DS{constructor(T,S,$,f,M,F,J,W,A){super();this.fullSchema=T,this.schema=S,this.tableNamesMap=$,this.table=f,this.tableConfig=M,this.dialect=F,this.session=J,this.config=W,this.mode=A}static[O]="PgRelationalQuery";_prepare(T){return QT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:S,builtQuery:$}=this._toSQL();return this.session.prepareQuery($,void 0,T,!0,(f,M)=>{let F=f.map((J)=>HW(this.schema,this.tableConfig,J,S.selection,M));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(),S=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:S}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class FA extends DS{constructor(T,S,$,f){super();this.execute=T,this.sql=S,this.query=$,this.mapBatchResult=f}static[O]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,S){return S?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class uF{constructor(T,S,$){if(this.dialect=T,this.session=S,this._=$?{schema:$.schema,fullSchema:$.fullSchema,tableNamesMap:$.tableNamesMap,session:S}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:S},this.query={},this._.schema)for(let[f,M]of Object.entries(this._.schema))this.query[f]=new MA($.fullSchema,this._.schema,this._.tableNamesMap,$.fullSchema[f],M,T,S)}static[O]="PgDatabase";query;$with=(T,S)=>{let $=this;return{as:(M)=>{if(typeof M==="function")M=M(new pF($.dialect));return new Proxy(new IF(M.getSQL(),S??("getSelectedFields"in M?M.getSelectedFields()??{}:{}),T,!0),new nT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,S){return new iF({source:T,filters:S,session:this.session})}with(...T){let S=this;function $(A){return new _S({fields:A??void 0,session:S.session,dialect:S.dialect,withList:T})}function f(A){return new _S({fields:A??void 0,session:S.session,dialect:S.dialect,withList:T,distinct:!0})}function M(A,w){return new _S({fields:w??void 0,session:S.session,dialect:S.dialect,withList:T,distinct:{on:A}})}function F(A){return new ZW(A,S.session,S.dialect,T)}function J(A){return new xW(A,S.session,S.dialect,T)}function W(A){return new jW(A,S.session,S.dialect,T)}return{select:$,selectDistinct:f,selectDistinctOn:M,update:F,insert:J,delete:W}}select(T){return new _S({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new _S({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,S){return new _S({fields:S??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new ZW(T,this.session,this.dialect)}insert(T){return new xW(T,this.session,this.dialect)}delete(T){return new jW(T,this.session,this.dialect)}refreshMaterializedView(T){return new $A(T,this.session,this.dialect)}authToken;execute(T){let S=typeof T==="string"?y.raw(T):T.getSQL(),$=this.dialect.sqlToQuery(S),f=this.session.prepareQuery($,void 0,void 0,!1);return new FA(()=>f.execute(void 0,this.authToken),S,$,(M)=>f.mapResult(M,!0))}transaction(T,S){return this.session.transaction(T,S)}}class HY{constructor(T,S){this.unique=T,this.name=S}static[O]="PgIndexBuilderOn";on(...T){return new bW(T.map((S)=>{if(U(S,c))return S;S=S;let $=new CF(S.name,!!S.keyAsName,S.columnType,S.indexConfig);return S.indexConfig=JSON.parse(JSON.stringify(S.defaultConfig)),$}),this.unique,!1,this.name)}onOnly(...T){return new bW(T.map((S)=>{if(U(S,c))return S;S=S;let $=new CF(S.name,!!S.keyAsName,S.columnType,S.indexConfig);return S.indexConfig=S.defaultConfig,$}),this.unique,!0,this.name)}using(T,...S){return new bW(S.map(($)=>{if(U($,c))return $;$=$;let f=new CF($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),f}),this.unique,!0,this.name,T)}}class bW{static[O]="PgIndexBuilder";config;constructor(T,S,$,f,M="btree"){this.config={name:f,columns:T,unique:S,only:$,method:M}}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 DY(this.config,T)}}class DY{static[O]="PgIndex";config;constructor(T,S){this.config={...T,table:S}}}function JA(T){return new HY(!0,T)}class WA{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,S){return T}setToken(T){return this.authToken=T,this}static[O]="PgPreparedQuery";joinsNotNullableMap}class AA{constructor(T){this.dialect=T}static[O]="PgSession";execute(T,S){return QT.startActiveSpan("drizzle.operation",()=>{return QT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken(S).execute(void 0,S)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,S){let $=await this.execute(T,S);return Number($[0].count)}}class wA extends uF{constructor(T,S,$,f=0){super(T,S,$);this.schema=$,this.nestedIndex=f}static[O]="PgTransaction";rollback(){throw new N1}getTransactionConfigSQL(T){let S=[];if(T.isolationLevel)S.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)S.push(T.accessMode);if(typeof T.deferrable==="boolean")S.push(T.deferrable?"deferrable":"not deferrable");return y.raw(S.join(" "))}setTransaction(T){return this.session.execute(y`set transaction ${this.getTransactionConfigSQL(T)}`)}}class _Y extends WA{constructor(T,S,$,f,M,F,J){super({sql:S,params:$});this.client=T,this.queryString=S,this.params=$,this.logger=f,this.fields=M,this._isResponseInArrayMode=F,this.customResultMapper=J}static[O]="PostgresJsPreparedQuery";async execute(T={}){return QT.startActiveSpan("drizzle.execute",async(S)=>{let $=B1(this.params,T);S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.logger.logQuery(this.queryString,$);let{fields:f,queryString:M,client:F,joinsNotNullableMap:J,customResultMapper:W}=this;if(!f&&!W)return QT.startActiveSpan("drizzle.driver.execute",()=>{return F.unsafe(M,$)});let A=await QT.startActiveSpan("drizzle.driver.execute",()=>{return S?.setAttributes({"drizzle.query.text":M,"drizzle.query.params":JSON.stringify($)}),F.unsafe(M,$).values()});return QT.startActiveSpan("drizzle.mapResponse",()=>{return W?W(A):A.map((w)=>dX(f,w,J))})})}all(T={}){return QT.startActiveSpan("drizzle.execute",async(S)=>{let $=B1(this.params,T);return S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.logger.logQuery(this.queryString,$),QT.startActiveSpan("drizzle.driver.execute",()=>{return S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.client.unsafe(this.queryString,$)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class dF extends AA{constructor(T,S,$,f={}){super(S);this.client=T,this.schema=$,this.options=f,this.logger=f.logger??new I1}static[O]="PostgresJsSession";logger;prepareQuery(T,S,$,f,M){return new _Y(this.client,T.sql,T.params,this.logger,S,f,M)}query(T,S){return this.logger.logQuery(T,S),this.client.unsafe(T,S).values()}queryObjects(T,S){return this.client.unsafe(T,S)}transaction(T,S){return this.client.begin(async($)=>{let f=new dF($,this.dialect,this.schema,this.options),M=new XA(this.dialect,f,this.schema);if(S)await M.setTransaction(S);return T(M)})}}class XA extends wA{constructor(T,S,$,f=0){super(T,S,$,f);this.session=S}static[O]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint((S)=>{let $=new dF(S,this.dialect,this.schema,this.session.options),f=new XA(this.dialect,$,this.schema);return T(f)})}}class EY extends uF{static[O]="PostgresJsDatabase"}function BM(T,S={}){let $=(A)=>A;for(let A of["1184","1082","1083","1114"])T.options.parsers[A]=$,T.options.serializers[A]=$;T.options.serializers["114"]=$,T.options.serializers["3802"]=$;let f=new Lf({casing:S.casing}),M;if(S.logger===!0)M=new C1;else if(S.logger!==!1)M=S.logger;let F;if(S.schema){let A=d4(S.schema,r4);F={fullSchema:S.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let J=new dF(T,f,F,{logger:M}),W=new EY(f,J,F);return W.$client=T,W}function qW(...T){if(typeof T[0]==="string"){let S=UM(T[0]);return BM(S,T[1])}if(aX(T[0])){let{connection:S,client:$,...f}=T[0];if($)return BM($,f);if(typeof S==="object"&&S.url!==void 0){let{url:F,...J}=S,W=UM(F,J);return BM(W,f)}let M=UM(S);return BM(M,f)}return BM(T[0],T[1])}((T)=>{function S($){return BM({options:{parsers:{},serializers:{}}},$)}T.mock=S})(qW||(qW={}));function _y(T,S){let $={},f=[];for(let M in T){let F=T[M],J=S[M],W=F["~standard"].validate(J);if(W instanceof Promise)throw new Error(`Validation must be synchronous, but ${M} returned a Promise.`);if(W.issues){f.push(...W.issues.map((A)=>({...A,path:[M,...A.path??[]]})));continue}$[M]=W.value}if(f.length)return{issues:f};return{value:$}}function QY(T){let S=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[V,L]of Object.entries(S))if(L==="")delete S[V]}if(!!T.skipValidation)return S;let M=typeof T.client==="object"?T.client:{},F=typeof T.server==="object"?T.server:{},J=typeof T.shared==="object"?T.shared:{},W=T.isServer??(typeof window==="undefined"||("Deno"in window)),A=W?{...F,...J,...M}:{...M,...J},w=_y(A,S),X=T.onValidationError??((V)=>{throw console.error("\u274C Invalid environment variables:",V),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 X(w.issues);let k=(V)=>{if(!T.clientPrefix)return!0;return!V.startsWith(T.clientPrefix)&&!(V in J)},R=(V)=>{return W||!k(V)},z=(V)=>{return V==="__esModule"||V==="$$typeof"},Q=(T.extends??[]).reduce((V,L)=>{return Object.assign(V,L)},{}),D=Object.assign(w.value,Q);return new Proxy(D,{get(V,L){if(typeof L!=="string")return;if(z(L))return;if(!R(L))return Y(L);return Reflect.get(V,L)}})}var Ey="__vite_start_time"in globalThis,Qy=typeof window!=="undefined",dm="vitest"in globalThis,b$=QY({isServer:!Ey&&!Qy,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 kA={};bk(kA,{users:()=>Nf,userChanges:()=>Vy,untrackedUserColumnNames:()=>Uy,twoFactorMethod:()=>NY,trackedUserColumnName:()=>LY,trackableUserColumnNames:()=>BY,role:()=>VY,players:()=>YA,passwordResetAttempts:()=>Ly,loginHistory:()=>By,games:()=>mW,banishedIps:()=>hW});function UY(T){return y`lower(${T})`}var VY=TW("role",["admin","user"]),Nf=a$("users",{id:mS().primaryKey().defaultRandom(),username:FS({length:16}).notNull(),email:FS({length:254}).notNull(),hash:FS({length:64}).notNull(),salt:FS({length:36}).notNull(),createdAt:F$({withTimezone:!0}).notNull().defaultNow(),createdIp:FS({length:45}).notNull(),isActive:mF().notNull().default(!1),verifiedAt:F$({withTimezone:!0}),userRole:VY().default("user")},(T)=>[JA("usernameUniqueIndex").on(UY(T.username)),JA("emailUniqueIndex").on(UY(T.email))]),Uy=["id","createdAt","createdIp","isActive","salt","verifiedAt"],BY=["username","email","hash","userRole"],LY=TW("trackedUserColumnName",BY),Vy=a$("userChanges",{id:mS().primaryKey().defaultRandom(),userId:mS().notNull().references(()=>Nf.id),changedAt:F$({withTimezone:!0}).notNull().defaultNow(),changedIp:FS({length:45}).notNull(),changedColumn:LY().notNull(),oldValue:FS({length:255}),newValue:FS({length:255})}),mW=a$("games",{id:mS().primaryKey().defaultRandom()}),YA=a$("players",{userId:mS().notNull().references(()=>Nf.id),gameId:mS().notNull().references(()=>mW.id),score:YW().notNull()},(T)=>[g4({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),By=a$("loginHistory",{id:mS().primaryKey().defaultRandom(),userId:mS().references(()=>Nf.id),loginTime:F$({withTimezone:!0}).notNull().defaultNow(),ipAddress:FS({length:45}).notNull(),userAgent:FS({length:1024}),successful:mF().notNull().default(!1)}),NY=TW("twoFactorMethod",["email","phone"]),Ly=a$("passwordResetAttempts",{id:mS().primaryKey().defaultRandom(),userId:mS().notNull().references(()=>Nf.id),requestedIp:FS({length:45}).notNull(),requestedAt:F$({withTimezone:!0}).notNull().defaultNow(),succeededIp:FS({length:45}),succeededAt:F$({withTimezone:!0}),verificationMethod:NY().notNull()}),hW=a$("banishedIps",{ip:FS({length:45}).primaryKey(),reason:FS({length:2048}).notNull(),banishedAt:F$({withTimezone:!0}).notNull().defaultNow(),banishedUntil:F$({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class KA{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(Ny.resolve(__dirname,"notify_update.sql"));let T=[SS(Nf),SS(mW),SS(YA)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",(S)=>{let $=S.split(","),f=$[0],M=$[1],F=`${f}("${M}")`;if(this.observers.has(F))this.observers.get(F).next(F)})}constructor(T=!1,S={host:b$.POSTGRES_HOST,port:b$.POSTGRES_PORT,user:b$.POSTGRES_USER,password:b$.POSTGRES_PASSWORD,database:b$.POSTGRES_DATABASE}){this.options=S,this.sql=UM(S),this.drizzle=qW(this.sql,{schema:kA,logger:T})}observe(T,S){if(!this.observers.has(T))this.observers.set(T,new fT);this.observers.get(T).subscribe("SINGLETON",S)}}import{resolve as jy}from"path";import{existsSync as OA,mkdirSync as CY,readdirSync as IY,readFileSync as Cy,rmSync as jY,statSync as xY,writeFileSync as Iy}from"fs";import{resolve as yA}from"path";class GA{rootDir;constructor(T){if(this.rootDir=T.path,!OA(this.rootDir))CY(this.rootDir,{recursive:!0})}getItem(T){let S=yA(this.rootDir,T);if(OA(S))return Cy(S,"utf-8");return null}setItem(T,S){let $=yA(this.rootDir,T);Iy($,S)}removeItem(T){let S=yA(this.rootDir,T);if(OA(S))jY(S)}key(T){return IY(this.rootDir).sort((f,M)=>{let F=xY(f);return xY(M).ctimeMs-F.ctimeMs})[T]??null}clear(){jY(this.rootDir,{recursive:!0}),CY(this.rootDir,{recursive:!0})}get length(){return IY(this.rootDir).length}}var RA=new GA({path:jy(process.cwd(),"storage")});import*as vW from"fs";import*as ZY from"readline";function xy(T){let $=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(f,M,F,J,W)=>{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`${J}-${w}-${M}T${W}`});return new Date($)}async function bY(T,S="/var/log/nginx/access.log",$=new Date){let f=new Map;if(!vW.existsSync(S))return T.error(`Log file not found: ${S}`),f;let M=vW.createReadStream(S),F=ZY.createInterface({input:M,crlfDelay:Number.POSITIVE_INFINITY}),J=new Date($.getTime()-3600000);return F.on("line",(W)=>{let A=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,w=W.match(A);if(w?.groups){let X=w.groups.ip,Y=w.groups.dateTime,k=xy(Y);if(!Number.isNaN(k.getTime())){if(k>=J&&k<=$){let R=f.get(X);if(!R)R=[],f.set(X,R);R.push(W)}}else T.error(`Failed to parse date: ${Y}`)}}),new Promise((W,A)=>{F.on("error",(w)=>{A(w)}),F.on("close",()=>{W(f)})})}var Zy=["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(`
|
|
82
|
+
`;await $.execute(y`CREATE SCHEMA IF NOT EXISTS ${y.identifier(M)}`),await $.execute(F);let W=(await $.all(y`select id, hash, created_at from ${y.identifier(M)}.${y.identifier(f)} order by created_at desc limit 1`))[0];await $.transaction(async(A)=>{for await(let w of T)if(!W||Number(W.created_at)<w.folderMillis){for(let X of w.sql)await A.execute(y.raw(X));await A.execute(y`insert into ${y.identifier(M)}.${y.identifier(f)} ("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 $=[y`with `];for(let[S,f]of T.entries())if($.push(y`${y.identifier(f._.alias)} as (${f._.sql})`),S<T.length-1)$.push(y`, `);return $.push(y` `),y.join($)}buildDeleteQuery({table:T,where:$,returning:S,withList:f}){let M=this.buildWithCTE(f),F=S?y` returning ${this.buildSelection(S,{isSingleTable:!0})}`:void 0,J=$?y` where ${$}`:void 0;return y`${M}delete from ${T}${J}${F}`}buildUpdateSet(T,$){let S=T[P.Symbol.Columns],f=Object.keys(S).filter((F)=>$[F]!==void 0||S[F]?.onUpdateFn!==void 0),M=f.length;return y.join(f.flatMap((F,J)=>{let W=S[F],A=$[F]??y.param(W.onUpdateFn(),W),w=y`${y.identifier(this.casing.getColumnCasing(W))} = ${A}`;if(J<M-1)return[w,y.raw(", ")];return[w]}))}buildUpdateQuery({table:T,set:$,where:S,returning:f,withList:M,from:F,joins:J}){let W=this.buildWithCTE(M),A=T[J$.Symbol.Name],w=T[J$.Symbol.Schema],X=T[J$.Symbol.OriginalName],Y=A===X?void 0:A,k=y`${w?y`${y.identifier(w)}.`:void 0}${y.identifier(X)}${Y&&y` ${y.identifier(Y)}`}`,R=this.buildUpdateSet(T,$),z=F&&y.join([y.raw(" from "),this.buildFromTable(F)]),Q=this.buildJoins(J),D=f?y` returning ${this.buildSelection(f,{isSingleTable:!F})}`:void 0,N=S?y` where ${S}`:void 0;return y`${W}update ${k} set ${R}${z}${Q}${N}${D}`}buildSelection(T,{isSingleTable:$=!1}={}){let S=T.length,f=T.flatMap(({field:M},F)=>{let J=[];if(U(M,c.Aliased)&&M.isSelectionField)J.push(y.identifier(M.fieldAlias));else if(U(M,c.Aliased)||U(M,c)){let W=U(M,c.Aliased)?M.sql:M;if($)J.push(new c(W.queryChunks.map((A)=>{if(U(A,b))return y.identifier(this.casing.getColumnCasing(A));return A})));else J.push(W);if(U(M,c.Aliased))J.push(y` as ${y.identifier(M.fieldAlias)}`)}else if(U(M,ET))if($)J.push(y.identifier(this.casing.getColumnCasing(M)));else J.push(M);if(F<S-1)J.push(y`, `);return J});return y.join(f)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[S,f]of T.entries()){if(S===0)$.push(y` `);let M=f.table,F=f.lateral?y` lateral`:void 0;if(U(M,J$)){let J=M[J$.Symbol.Name],W=M[J$.Symbol.Schema],A=M[J$.Symbol.OriginalName],w=J===A?void 0:f.alias;$.push(y`${y.raw(f.joinType)} join${F} ${W?y`${y.identifier(W)}.`:void 0}${y.identifier(A)}${w&&y` ${y.identifier(w)}`} on ${f.on}`)}else if(U(M,B$)){let J=M[LT].name,W=M[LT].schema,A=M[LT].originalName,w=J===A?void 0:f.alias;$.push(y`${y.raw(f.joinType)} join${F} ${W?y`${y.identifier(W)}.`:void 0}${y.identifier(A)}${w&&y` ${y.identifier(w)}`} on ${f.on}`)}else $.push(y`${y.raw(f.joinType)} join${F} ${M} on ${f.on}`);if(S<T.length-1)$.push(y` `)}return y.join($)}buildFromTable(T){if(U(T,P)&&T[P.Symbol.OriginalName]!==T[P.Symbol.Name]){let $=y`${y.identifier(T[P.Symbol.OriginalName])}`;if(T[P.Symbol.Schema])$=y`${y.identifier(T[P.Symbol.Schema])}.${$}`;return y`${$} ${y.identifier(T[P.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:S,where:f,having:M,table:F,joins:J,orderBy:W,groupBy:A,limit:w,offset:X,lockingClause:Y,distinct:k,setOperators:R}){let z=S??g$($);for(let u of z)if(U(u.field,ET)&&$$(u.field.table)!==(U(F,sT)?F._.alias:U(F,tF)?F[LT].name:U(F,c)?void 0:$$(F))&&!((yT)=>J?.some(({alias:zT})=>zT===(yT[P.Symbol.IsAlias]?$$(yT):yT[P.Symbol.BaseName])))(u.field.table)){let yT=$$(u.field.table);throw new Error(`Your "${u.path.join("->")}" field references a column "${yT}"."${u.field.name}", but the table "${yT}" is not part of the query! Did you forget to join it?`)}let Q=!J||J.length===0,D=this.buildWithCTE(T),N;if(k)N=k===!0?y` distinct`:y` distinct on (${y.join(k.on,y`, `)})`;let V=this.buildSelection(z,{isSingleTable:Q}),L=this.buildFromTable(F),Z=this.buildJoins(J),_=f?y` where ${f}`:void 0,E=M?y` having ${M}`:void 0,B;if(W&&W.length>0)B=y` order by ${y.join(W,y`, `)}`;let q;if(A&&A.length>0)q=y` group by ${y.join(A,y`, `)}`;let v=typeof w==="object"||typeof w==="number"&&w>=0?y` limit ${w}`:void 0,G=X?y` offset ${X}`:void 0,o=y.empty();if(Y){let u=y` for ${y.raw(Y.strength)}`;if(Y.config.of)u.append(y` of ${y.join(Array.isArray(Y.config.of)?Y.config.of:[Y.config.of],y`, `)}`);if(Y.config.noWait)u.append(y` no wait`);else if(Y.config.skipLocked)u.append(y` skip locked`);o.append(u)}let n=y`${D}select${N} ${V} from ${L}${Z}${_}${q}${E}${B}${v}${G}${o}`;if(R.length>0)return this.buildSetOperations(n,R);return n}buildSetOperations(T,$){let[S,...f]=$;if(!S)throw new Error("Cannot pass undefined values to any set operator");if(f.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:S});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:S}),f)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:S,rightSelect:f,limit:M,orderBy:F,offset:J}}){let W=y`(${T.getSQL()}) `,A=y`(${f.getSQL()})`,w;if(F&&F.length>0){let R=[];for(let z of F)if(U(z,b))R.push(y.identifier(z.name));else if(U(z,c)){for(let Q=0;Q<z.queryChunks.length;Q++){let D=z.queryChunks[Q];if(U(D,b))z.queryChunks[Q]=y.identifier(D.name)}R.push(y`${z}`)}else R.push(y`${z}`);w=y` order by ${y.join(R,y`, `)} `}let X=typeof M==="object"||typeof M==="number"&&M>=0?y` limit ${M}`:void 0,Y=y.raw(`${$} ${S?"all ":""}`),k=J?y` offset ${J}`:void 0;return y`${W}${Y}${A}${w}${X}${k}`}buildInsertQuery({table:T,values:$,onConflict:S,returning:f,withList:M,select:F,overridingSystemValue_:J}){let W=[],A=T[P.Symbol.Columns],w=Object.entries(A).filter(([D,N])=>!N.shouldDisableInsert()),X=w.map(([,D])=>y.identifier(this.casing.getColumnCasing(D)));if(F){let D=$;if(U(D,c))W.push(D);else W.push(D.getSQL())}else{let D=$;W.push(y.raw("values "));for(let[N,V]of D.entries()){let L=[];for(let[Z,_]of w){let E=V[Z];if(E===void 0||U(E,q$)&&E.value===void 0)if(_.defaultFn!==void 0){let B=_.defaultFn(),q=U(B,c)?B:y.param(B,_);L.push(q)}else if(!_.default&&_.onUpdateFn!==void 0){let B=_.onUpdateFn(),q=U(B,c)?B:y.param(B,_);L.push(q)}else L.push(y`default`);else L.push(E)}if(W.push(L),N<D.length-1)W.push(y`, `)}}let Y=this.buildWithCTE(M),k=y.join(W),R=f?y` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,z=S?y` on conflict ${S}`:void 0,Q=J===!0?y`overriding system value `:void 0;return y`${Y}insert into ${T} ${X} ${Q}${k}${z}${R}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:S}){let f=$?y` concurrently`:void 0,M=S?y` with no data`:void 0;return y`refresh materialized view${f} ${T}${M}`}prepareTyping(T){if(U(T,KW)||U(T,kW))return"json";else if(U(T,OW))return"decimal";else if(U(T,yW))return"time";else if(U(T,GW)||U(T,RW))return"timestamp";else if(U(T,wW)||U(T,XW))return"date";else if(U(T,zW))return"uuid";else return"none"}sqlToQuery(T,$){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:S,table:f,tableConfig:M,queryConfig:F,tableAlias:J,nestedQueryRelation:W,joinOn:A}){let w=[],X,Y,k=[],R,z=[];if(F===!0)w=Object.entries(M.columns).map(([N,V])=>({dbKey:V.name,tsKey:N,field:OS(V,J),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let D=Object.fromEntries(Object.entries(M.columns).map(([E,B])=>[E,OS(B,J)]));if(F.where){let E=typeof F.where==="function"?F.where(D,i4()):F.where;R=E&&ZF(E,J)}let N=[],V=[];if(F.columns){let E=!1;for(let[B,q]of Object.entries(F.columns)){if(q===void 0)continue;if(B in M.columns){if(!E&&q===!0)E=!0;V.push(B)}}if(V.length>0)V=E?V.filter((B)=>F.columns?.[B]===!0):Object.keys(M.columns).filter((B)=>!V.includes(B))}else V=Object.keys(M.columns);for(let E of V){let B=M.columns[E];N.push({tsKey:E,value:B})}let L=[];if(F.with)L=Object.entries(F.with).filter((E)=>!!E[1]).map(([E,B])=>({tsKey:E,queryConfig:B,relation:M.relations[E]}));let Z;if(F.extras){Z=typeof F.extras==="function"?F.extras(D,{sql:y}):F.extras;for(let[E,B]of Object.entries(Z))N.push({tsKey:E,value:L1(B,J)})}for(let{tsKey:E,value:B}of N)w.push({dbKey:U(B,c.Aliased)?B.fieldAlias:M.columns[E].name,tsKey:E,field:U(B,ET)?OS(B,J):B,relationTableTsKey:void 0,isJson:!1,selection:[]});let _=typeof F.orderBy==="function"?F.orderBy(D,u4()):F.orderBy??[];if(!Array.isArray(_))_=[_];k=_.map((E)=>{if(U(E,ET))return OS(E,J);return ZF(E,J)}),X=F.limit,Y=F.offset;for(let{tsKey:E,queryConfig:B,relation:q}of L){let v=l4($,S,q),G=Ef(q.referencedTable),o=S[G],n=`${J}_${E}`,u=bF(...v.fields.map((E$,GS)=>JW(OS(v.references[GS],n),OS(E$,J)))),yT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:S,table:T[o],tableConfig:$[o],queryConfig:U(q,sS)?B===!0?{limit:1}:{...B,limit:1}:B,tableAlias:n,joinOn:u,nestedQueryRelation:q}),zT=y`${y.identifier(n)}.${y.identifier("data")}`.as(E);z.push({on:y`true`,table:new sT(yT.sql,{},n),alias:n,joinType:"left",lateral:!0}),w.push({dbKey:E,tsKey:E,field:zT,relationTableTsKey:o,isJson:!0,selection:yT.selection})}}if(w.length===0)throw new FW({message:`No fields selected for table "${M.tsName}" ("${J}")`});let Q;if(R=bF(A,R),W){let D=y`json_build_array(${y.join(w.map(({field:L,tsKey:Z,isJson:_})=>_?y`${y.identifier(`${J}_${Z}`)}.${y.identifier("data")}`:U(L,c.Aliased)?L.sql:L),y`, `)})`;if(U(W,vF))D=y`coalesce(json_agg(${D}${k.length>0?y` order by ${y.join(k,y`, `)}`:void 0}), '[]'::json)`;let N=[{dbKey:"data",tsKey:"data",field:D.as("data"),isJson:!0,relationTableTsKey:M.tsName,selection:w}];if(X!==void 0||Y!==void 0||k.length>0)Q=this.buildSelectQuery({table:MW(f,J),fields:{},fieldsFlat:[{path:[],field:y.raw("*")}],where:R,limit:X,offset:Y,orderBy:k,setOperators:[]}),R=void 0,X=void 0,Y=void 0,k=[];else Q=MW(f,J);Q=this.buildSelectQuery({table:U(Q,J$)?Q:new sT(Q,{},J),fields:{},fieldsFlat:N.map(({field:L})=>({path:[],field:U(L,ET)?OS(L,J):L})),joins:z,where:R,limit:X,offset:Y,orderBy:k,setOperators:[]})}else Q=this.buildSelectQuery({table:MW(f,J),fields:{},fieldsFlat:w.map(({field:D})=>({path:[],field:U(D,ET)?OS(D,J):D})),joins:z,where:R,limit:X,offset:Y,orderBy:k,setOperators:[]});return{tableTsKey:M.tsName,sql:Q,selection:w}}}class e1{static[O]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class _${static[O]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let $=!!this.fields,S=T,f;if(this.fields)f=this.fields;else if(U(S,sT))f=Object.fromEntries(Object.keys(S._.selectedFields).map((M)=>[M,S[M]]));else if(U(S,tF))f=S[LT].selectedFields;else if(U(S,c))f={};else f=rX(S);return new TA({table:S,fields:f,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class RY extends e1{static[O]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:S,session:f,dialect:M,withList:F,distinct:J}){super();this.config={withList:F,table:T,fields:{...$},distinct:J,setOperators:[]},this.isPartialSelect=S,this.session=f,this.dialect=M,this._={selectedFields:$},this.tableName=xS(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,S)=>{let f=this.tableName,M=xS($);if(typeof M==="string"&&this.config.joins?.some((F)=>F.alias===M))throw new Error(`Alias "${M}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof f==="string")this.config.fields={[f]:this.config.fields};if(typeof M==="string"&&!U($,c)){let F=U($,sT)?$._.selectedFields:U($,B$)?$[LT].selectedFields:$[P.Symbol.Columns];this.config.fields[M]=F}}if(typeof S==="function")S=S(new Proxy(this.config.fields,new nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:S,table:$,joinType:T,alias:M}),typeof M==="string")switch(T){case"left":{this.joinsNotNullableMap[M]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[M]=!0;break}case"inner":{this.joinsNotNullableMap[M]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[M]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,$){return(S)=>{let f=typeof S==="function"?S(Oy()):S;if(!qF(this.getSelectedFields(),f.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:f}),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 nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new nT({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 nT({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 nT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),S=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=S;else this.config.orderBy=S}else{let $=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,$={}){return this.config.lockingClause={strength:T,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(T){return new Proxy(new sT(this.getSQL(),this.config.fields,T),new nT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new nT({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class TA extends RY{static[O]="PgSelect";_prepare(T){let{session:$,config:S,dialect:f,joinsNotNullableMap:M,authToken:F}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return QT.startActiveSpan("drizzle.prepareQuery",()=>{let J=g$(S.fields),W=$.prepareQuery(f.sqlToQuery(this.getSQL()),J,T,!0);return W.joinsNotNullableMap=M,W.setToken(F)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}lX(TA,[D$]);function VM(T,$){return(S,f,...M)=>{let F=[f,...M].map((J)=>({type:T,isAll:$,rightSelect:J}));for(let J of F)if(!qF(S.getSelectedFields(),J.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return S.addSetOperators(F)}}var Oy=()=>({union:yy,unionAll:Gy,intersect:Ry,intersectAll:zy,except:Hy,exceptAll:Dy}),yy=VM("union",!1),Gy=VM("union",!0),Ry=VM("intersect",!1),zy=VM("intersect",!0),Hy=VM("except",!1),Dy=VM("except",!0);class pF{static[O]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=U(T,Lf)?T:void 0,this.dialectConfig=U(T,Lf)?void 0:T}$with=(T,$)=>{let S=this;return{as:(M)=>{if(typeof M==="function")M=M(S);return new Proxy(new IF(M.getSQL(),$??("getSelectedFields"in M?M.getSelectedFields()??{}:{}),T,!0),new nT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function S(F){return new _$({fields:F??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function f(F){return new _$({fields:F??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function M(F,J){return new _$({fields:J??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:F}})}return{select:S,selectDistinct:f,selectDistinctOn:M}}select(T){return new _$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new _$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new _$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new Lf(this.dialectConfig);return this.dialect}}class xW{constructor(T,$,S,f,M){this.table=T,this.session=$,this.dialect=S,this.withList=f,this.overridingSystemValue_=M}static[O]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let $=T.map((S)=>{let f={},M=this.table[P.Symbol.Columns];for(let F of Object.keys(S)){let J=S[F];f[F]=U(J,c)?J:new q$(J,M[F])}return f});return new $A(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new pF):T;if(!U($,c)&&!qF(this.table[SW],$._.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 $A(this.table,$,this.session,this.dialect,this.withList,!0)}}class $A extends D${constructor(T,$,S,f,M,F,J){super();this.session=S,this.dialect=f,this.config={table:T,values:$,withList:M,select:F,overridingSystemValue_:J}}static[O]="PgInsert";config;returning(T=this.config.table[P.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=g$(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=y`do nothing`;else{let $="";$=Array.isArray(T.target)?T.target.map((f)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(f))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let S=T.where?y` where ${T.where}`:void 0;this.config.onConflict=y`(${y.raw($)})${S} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=T.where?y` where ${T.where}`:void 0,S=T.targetWhere?y` where ${T.targetWhere}`:void 0,f=T.setWhere?y` where ${T.setWhere}`:void 0,M=this.dialect.buildUpdateSet(this.config.table,AW(this.config.table,T.set)),F="";return F=Array.isArray(T.target)?T.target.map((J)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(J))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=y`(${y.raw(F)})${S} do update set ${M}${$}${f}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return QT.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 QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new nT({alias:$$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class SA extends D${constructor(T,$,S){super();this.session=$,this.dialect=S,this.config={view:T}}static[O]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return QT.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 QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class ZW{constructor(T,$,S,f){this.table=T,this.session=$,this.dialect=S,this.withList=f}static[O]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new zY(this.table,AW(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class zY extends D${constructor(T,$,S,f,M){super();this.session=S,this.dialect=f,this.config={set:$,table:T,withList:M,joins:[]},this.tableName=xS(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[O]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,S=xS($);if(typeof S==="string")this.joinsNotNullableMap[S]=!0;return this.config.from=$,this}getTableLikeFields(T){if(U(T,J$))return T[P.Symbol.Columns];else if(U(T,sT))return T._.selectedFields;return T[LT].selectedFields}createJoin(T){return($,S)=>{let f=xS($);if(typeof f==="string"&&this.config.joins.some((M)=>M.alias===f))throw new Error(`Alias "${f}" is already used in this query`);if(typeof S==="function"){let M=this.config.from&&!U(this.config.from,c)?this.getTableLikeFields(this.config.from):void 0;S=S(new Proxy(this.config.table[P.Symbol.Columns],new nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),M&&new Proxy(M,new nT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:S,table:$,joinType:T,alias:f}),typeof f==="string")switch(T){case"left":{this.joinsNotNullableMap[f]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([M])=>[M,!1])),this.joinsNotNullableMap[f]=!0;break}case"inner":{this.joinsNotNullableMap[f]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([M])=>[M,!1])),this.joinsNotNullableMap[f]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[P.Symbol.Columns]),this.config.from){let $=xS(this.config.from);if(typeof $==="string"&&this.config.from&&!U(this.config.from,c)){let S=this.getTableLikeFields(this.config.from);T[$]=S}for(let S of this.config.joins){let f=xS(S.table);if(typeof f==="string"&&!U(S.table,c)){let M=this.getTableLikeFields(S.table);T[f]=M}}}}return this.config.returningFields=T,this.config.returning=g$(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 nT({alias:$$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class iF extends c{constructor(T){super(iF.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=iF.buildCount(T.source,T.filters)}sql;token;static[O]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return y`(select count(*) from ${T}${y.raw(" where ").if($)}${$})`}static buildCount(T,$){return y`select count(*) as count from ${T}${y.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 MA{constructor(T,$,S,f,M,F,J){this.fullSchema=T,this.schema=$,this.tableNamesMap=S,this.table=f,this.tableConfig=M,this.dialect=F,this.session=J}static[O]="PgRelationalQueryBuilder";findMany(T){return new fA(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new fA(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class fA extends D${constructor(T,$,S,f,M,F,J,W,A){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=S,this.table=f,this.tableConfig=M,this.dialect=F,this.session=J,this.config=W,this.mode=A}static[O]="PgRelationalQuery";_prepare(T){return QT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:S}=this._toSQL();return this.session.prepareQuery(S,void 0,T,!0,(f,M)=>{let F=f.map((J)=>HW(this.schema,this.tableConfig,J,$.selection,M));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 QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class FA extends D${constructor(T,$,S,f){super();this.execute=T,this.sql=$,this.query=S,this.mapBatchResult=f}static[O]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class uF{constructor(T,$,S){if(this.dialect=T,this.session=$,this._=S?{schema:S.schema,fullSchema:S.fullSchema,tableNamesMap:S.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[f,M]of Object.entries(this._.schema))this.query[f]=new MA(S.fullSchema,this._.schema,this._.tableNamesMap,S.fullSchema[f],M,T,$)}static[O]="PgDatabase";query;$with=(T,$)=>{let S=this;return{as:(M)=>{if(typeof M==="function")M=M(new pF(S.dialect));return new Proxy(new IF(M.getSQL(),$??("getSelectedFields"in M?M.getSelectedFields()??{}:{}),T,!0),new nT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new iF({source:T,filters:$,session:this.session})}with(...T){let $=this;function S(A){return new _$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T})}function f(A){return new _$({fields:A??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function M(A,w){return new _$({fields:w??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:A}})}function F(A){return new ZW(A,$.session,$.dialect,T)}function J(A){return new xW(A,$.session,$.dialect,T)}function W(A){return new jW(A,$.session,$.dialect,T)}return{select:S,selectDistinct:f,selectDistinctOn:M,update:F,insert:J,delete:W}}select(T){return new _$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new _$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new _$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new ZW(T,this.session,this.dialect)}insert(T){return new xW(T,this.session,this.dialect)}delete(T){return new jW(T,this.session,this.dialect)}refreshMaterializedView(T){return new SA(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?y.raw(T):T.getSQL(),S=this.dialect.sqlToQuery($),f=this.session.prepareQuery(S,void 0,void 0,!1);return new FA(()=>f.execute(void 0,this.authToken),$,S,(M)=>f.mapResult(M,!0))}transaction(T,$){return this.session.transaction(T,$)}}class HY{constructor(T,$){this.unique=T,this.name=$}static[O]="PgIndexBuilderOn";on(...T){return new bW(T.map(($)=>{if(U($,c))return $;$=$;let S=new CF($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),S}),this.unique,!1,this.name)}onOnly(...T){return new bW(T.map(($)=>{if(U($,c))return $;$=$;let S=new CF($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,S}),this.unique,!0,this.name)}using(T,...$){return new bW($.map((S)=>{if(U(S,c))return S;S=S;let f=new CF(S.name,!!S.keyAsName,S.columnType,S.indexConfig);return S.indexConfig=JSON.parse(JSON.stringify(S.defaultConfig)),f}),this.unique,!0,this.name,T)}}class bW{static[O]="PgIndexBuilder";config;constructor(T,$,S,f,M="btree"){this.config={name:f,columns:T,unique:$,only:S,method:M}}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 DY(this.config,T)}}class DY{static[O]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function JA(T){return new HY(!0,T)}class WA{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[O]="PgPreparedQuery";joinsNotNullableMap}class AA{constructor(T){this.dialect=T}static[O]="PgSession";execute(T,$){return QT.startActiveSpan("drizzle.operation",()=>{return QT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,$){let S=await this.execute(T,$);return Number(S[0].count)}}class wA extends uF{constructor(T,$,S,f=0){super(T,$,S);this.schema=S,this.nestedIndex=f}static[O]="PgTransaction";rollback(){throw new N1}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 y.raw($.join(" "))}setTransaction(T){return this.session.execute(y`set transaction ${this.getTransactionConfigSQL(T)}`)}}class _Y extends WA{constructor(T,$,S,f,M,F,J){super({sql:$,params:S});this.client=T,this.queryString=$,this.params=S,this.logger=f,this.fields=M,this._isResponseInArrayMode=F,this.customResultMapper=J}static[O]="PostgresJsPreparedQuery";async execute(T={}){return QT.startActiveSpan("drizzle.execute",async($)=>{let S=B1(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(S)}),this.logger.logQuery(this.queryString,S);let{fields:f,queryString:M,client:F,joinsNotNullableMap:J,customResultMapper:W}=this;if(!f&&!W)return QT.startActiveSpan("drizzle.driver.execute",()=>{return F.unsafe(M,S)});let A=await QT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":M,"drizzle.query.params":JSON.stringify(S)}),F.unsafe(M,S).values()});return QT.startActiveSpan("drizzle.mapResponse",()=>{return W?W(A):A.map((w)=>dX(f,w,J))})})}all(T={}){return QT.startActiveSpan("drizzle.execute",async($)=>{let S=B1(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(S)}),this.logger.logQuery(this.queryString,S),QT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(S)}),this.client.unsafe(this.queryString,S)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class dF extends AA{constructor(T,$,S,f={}){super($);this.client=T,this.schema=S,this.options=f,this.logger=f.logger??new I1}static[O]="PostgresJsSession";logger;prepareQuery(T,$,S,f,M){return new _Y(this.client,T.sql,T.params,this.logger,$,f,M)}query(T,$){return this.logger.logQuery(T,$),this.client.unsafe(T,$).values()}queryObjects(T,$){return this.client.unsafe(T,$)}transaction(T,$){return this.client.begin(async(S)=>{let f=new dF(S,this.dialect,this.schema,this.options),M=new XA(this.dialect,f,this.schema);if($)await M.setTransaction($);return T(M)})}}class XA extends wA{constructor(T,$,S,f=0){super(T,$,S,f);this.session=$}static[O]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let S=new dF($,this.dialect,this.schema,this.session.options),f=new XA(this.dialect,S,this.schema);return T(f)})}}class EY extends uF{static[O]="PostgresJsDatabase"}function BM(T,$={}){let S=(A)=>A;for(let A of["1184","1082","1083","1114"])T.options.parsers[A]=S,T.options.serializers[A]=S;T.options.serializers["114"]=S,T.options.serializers["3802"]=S;let f=new Lf({casing:$.casing}),M;if($.logger===!0)M=new C1;else if($.logger!==!1)M=$.logger;let F;if($.schema){let A=d4($.schema,r4);F={fullSchema:$.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let J=new dF(T,f,F,{logger:M}),W=new EY(f,J,F);return W.$client=T,W}function qW(...T){if(typeof T[0]==="string"){let $=UM(T[0]);return BM($,T[1])}if(aX(T[0])){let{connection:$,client:S,...f}=T[0];if(S)return BM(S,f);if(typeof $==="object"&&$.url!==void 0){let{url:F,...J}=$,W=UM(F,J);return BM(W,f)}let M=UM($);return BM(M,f)}return BM(T[0],T[1])}((T)=>{function $(S){return BM({options:{parsers:{},serializers:{}}},S)}T.mock=$})(qW||(qW={}));function _y(T,$){let S={},f=[];for(let M in T){let F=T[M],J=$[M],W=F["~standard"].validate(J);if(W instanceof Promise)throw new Error(`Validation must be synchronous, but ${M} returned a Promise.`);if(W.issues){f.push(...W.issues.map((A)=>({...A,path:[M,...A.path??[]]})));continue}S[M]=W.value}if(f.length)return{issues:f};return{value:S}}function QY(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[V,L]of Object.entries($))if(L==="")delete $[V]}if(!!T.skipValidation)return $;let M=typeof T.client==="object"?T.client:{},F=typeof T.server==="object"?T.server:{},J=typeof T.shared==="object"?T.shared:{},W=T.isServer??(typeof window==="undefined"||("Deno"in window)),A=W?{...F,...J,...M}:{...M,...J},w=_y(A,$),X=T.onValidationError??((V)=>{throw console.error("\u274C Invalid environment variables:",V),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 X(w.issues);let k=(V)=>{if(!T.clientPrefix)return!0;return!V.startsWith(T.clientPrefix)&&!(V in J)},R=(V)=>{return W||!k(V)},z=(V)=>{return V==="__esModule"||V==="$$typeof"},Q=(T.extends??[]).reduce((V,L)=>{return Object.assign(V,L)},{}),D=Object.assign(w.value,Q);return new Proxy(D,{get(V,L){if(typeof L!=="string")return;if(z(L))return;if(!R(L))return Y(L);return Reflect.get(V,L)}})}var Ey="__vite_start_time"in globalThis,Qy=typeof window!=="undefined",dm="vitest"in globalThis,bS=QY({isServer:!Ey&&!Qy,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 kA={};bk(kA,{users:()=>Nf,userChanges:()=>Vy,untrackedUserColumnNames:()=>Uy,twoFactorMethod:()=>NY,trackedUserColumnName:()=>LY,trackableUserColumnNames:()=>BY,role:()=>VY,players:()=>YA,passwordResetAttempts:()=>Ly,loginHistory:()=>By,games:()=>mW,banishedIps:()=>hW});function UY(T){return y`lower(${T})`}var VY=TW("role",["admin","user"]),Nf=aS("users",{id:m$().primaryKey().defaultRandom(),username:F$({length:16}).notNull(),email:F$({length:254}).notNull(),hash:F$({length:64}).notNull(),salt:F$({length:36}).notNull(),createdAt:FS({withTimezone:!0}).notNull().defaultNow(),createdIp:F$({length:45}).notNull(),isActive:mF().notNull().default(!1),verifiedAt:FS({withTimezone:!0}),userRole:VY().default("user")},(T)=>[JA("usernameUniqueIndex").on(UY(T.username)),JA("emailUniqueIndex").on(UY(T.email))]),Uy=["id","createdAt","createdIp","isActive","salt","verifiedAt"],BY=["username","email","hash","userRole"],LY=TW("trackedUserColumnName",BY),Vy=aS("userChanges",{id:m$().primaryKey().defaultRandom(),userId:m$().notNull().references(()=>Nf.id),changedAt:FS({withTimezone:!0}).notNull().defaultNow(),changedIp:F$({length:45}).notNull(),changedColumn:LY().notNull(),oldValue:F$({length:255}),newValue:F$({length:255})}),mW=aS("games",{id:m$().primaryKey().defaultRandom()}),YA=aS("players",{userId:m$().notNull().references(()=>Nf.id),gameId:m$().notNull().references(()=>mW.id),score:YW().notNull()},(T)=>[g4({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),By=aS("loginHistory",{id:m$().primaryKey().defaultRandom(),userId:m$().references(()=>Nf.id),loginTime:FS({withTimezone:!0}).notNull().defaultNow(),ipAddress:F$({length:45}).notNull(),userAgent:F$({length:1024}),successful:mF().notNull().default(!1)}),NY=TW("twoFactorMethod",["email","phone"]),Ly=aS("passwordResetAttempts",{id:m$().primaryKey().defaultRandom(),userId:m$().notNull().references(()=>Nf.id),requestedIp:F$({length:45}).notNull(),requestedAt:FS({withTimezone:!0}).notNull().defaultNow(),succeededIp:F$({length:45}),succeededAt:FS({withTimezone:!0}),verificationMethod:NY().notNull()}),hW=aS("banishedIps",{ip:F$({length:45}).primaryKey(),reason:F$({length:2048}).notNull(),banishedAt:FS({withTimezone:!0}).notNull().defaultNow(),banishedUntil:FS({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class KA{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(Ny.resolve(__dirname,"notify_update.sql"));let T=[$$(Nf),$$(mW),$$(YA)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let S=$.split(","),f=S[0],M=S[1],F=`${f}("${M}")`;if(this.observers.has(F))this.observers.get(F).next(F)})}constructor(T=!1,$={host:bS.POSTGRES_HOST,port:bS.POSTGRES_PORT,user:bS.POSTGRES_USER,password:bS.POSTGRES_PASSWORD,database:bS.POSTGRES_DATABASE}){this.options=$,this.sql=UM($),this.drizzle=qW(this.sql,{schema:kA,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new fT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as jy}from"path";import{existsSync as OA,mkdirSync as CY,readdirSync as IY,readFileSync as Cy,rmSync as jY,statSync as xY,writeFileSync as Iy}from"fs";import{resolve as yA}from"path";class GA{rootDir;get initialized(){return OA(this.rootDir)}initialize(){if(!this.initialized)CY(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=yA(this.rootDir,T);if(OA($))return Cy($,"utf-8");return null}setItem(T,$){this.initialize();let S=yA(this.rootDir,T);Iy(S,$)}removeItem(T){let $=yA(this.rootDir,T);if(OA($))this.initialize(),jY($)}key(T){return IY(this.rootDir).sort((f,M)=>{let F=xY(f);return xY(M).ctimeMs-F.ctimeMs})[T]??null}clear(){jY(this.rootDir,{recursive:!0}),CY(this.rootDir,{recursive:!0})}get length(){return IY(this.rootDir).length}}var RA=new GA({path:jy(process.cwd(),"storage")});import*as vW from"fs";import*as ZY from"readline";function xy(T){let S=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(f,M,F,J,W)=>{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`${J}-${w}-${M}T${W}`});return new Date(S)}async function bY(T,$="/var/log/nginx/access.log",S=new Date){let f=new Map;if(!vW.existsSync($))return T.error(`Log file not found: ${$}`),f;let M=vW.createReadStream($),F=ZY.createInterface({input:M,crlfDelay:Number.POSITIVE_INFINITY}),J=new Date(S.getTime()-3600000);return F.on("line",(W)=>{let A=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,w=W.match(A);if(w?.groups){let X=w.groups.ip,Y=w.groups.dateTime,k=xy(Y);if(!Number.isNaN(k.getTime())){if(k>=J&&k<=S){let R=f.get(X);if(!R)R=[],f.set(X,R);R.push(W)}}else T.error(`Failed to parse date: ${Y}`)}}),new Promise((W,A)=>{F.on("error",(w)=>{A(w)}),F.on("close",()=>{W(f)})})}var Zy=["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(`
|
|
81
83
|
`);function qY(T){return Zy+T.join(`
|
|
82
84
|
|
|
83
|
-
`)}var mY={schema:_T.union([_T.object({shouldBanIp:_T.literal(!1)}),_T.object({shouldBanIp:_T.literal(!0),veryConciseReason:_T.string()})]),fallback:{shouldBanIp:!1}};var qy=[".env","php"];async function hY({generator:T,logFilePath:S,
|
|
84
|
-
`));let _=!1;for(let E of qy)if(Z.some((B)=>B.includes(E))){W.push({ip:L,reason:`Always ban ${E}`})
|
|
85
|
-
`),_=!0;break}if(_)continue;if(T.usdBudget>T.usdMinimum){let E=qY(Z),B=await A(E);if(B.shouldBanIp)W.push({ip:L,reason:B.veryConciseReason})
|
|
86
|
-
`);else X
|
|
87
|
-
`);w++}else{
|
|
88
|
-
`);break}}let Y=W.length;if(W.length>0)await F.drizzle.insert(hW).values(W).onConflictDoNothing();let k=[],R=RA.getItem("lastTribunalProcessedDate"),z=new Date(R??"1970-01-01");try{k.push(...await F.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:WW(hW.banishedAt,z)}))}catch(L){
|
|
85
|
+
`)}var mY={schema:_T.union([_T.object({shouldBanIp:_T.literal(!1)}),_T.object({shouldBanIp:_T.literal(!0),veryConciseReason:_T.string()})]),fallback:{shouldBanIp:!1}};var qy=[".env","php"];async function hY({generator:T,logFilePath:$,logger:S,now:f=new Date}){let M=T.usdBudget,F=new KA({logQuery(L,Z){S.info("\uD83D\uDCDD query",L,Z)}}),J=await bY(S,$,f),W=[],A=T.from(mY),w=0,X=0;for(let[L,Z]of J){S.info(`\uD83D\uDD0D ruling on ${L}. logs:`),S.info(Z.map((E)=>` ${E}`).join(`
|
|
86
|
+
`));let _=!1;for(let E of qy)if(Z.some((B)=>B.includes(E))){W.push({ip:L,reason:`Always ban ${E}`}),S.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${L}--always ban ${E}
|
|
87
|
+
`),_=!0;break}if(_)continue;if(T.usdBudget>T.usdMinimum){let E=qY(Z),B=await A(E);if(B.shouldBanIp)W.push({ip:L,reason:B.veryConciseReason}),S.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${L}--${B.veryConciseReason}
|
|
88
|
+
`);else X++,S.info(` \uD83D\uDD4A\uFE0F not banning ${L}
|
|
89
|
+
`);w++}else{S.warn("\uD83D\uDCB0 insufficient funds to process all logs"),S.warn(`\uD83D\uDCB0 got through ${w}/${J.size} ips
|
|
90
|
+
`);break}}let Y=W.length;if(W.length>0)await F.drizzle.insert(hW).values(W).onConflictDoNothing();let k=[],R=RA.getItem("lastTribunalProcessedDate"),z=new Date(R??"1970-01-01");try{k.push(...await F.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:WW(hW.banishedAt,z)}))}catch(L){S.error(L)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(k.map((L)=>new Promise((Z,_)=>by(`iptables -D INPUT -s ${L.ip} -j DROP`).on("exit",(E)=>{if(E===0)S.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${L.ip}`),Z();else _(new Error(`iptables exited with code ${E}`))}))));else S.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(L){if(L instanceof Error)S.error(L.message);else{let Z=HM(L);S.error("iptables exited with error",Z)}}RA.setItem("lastTribunalProcessedDate",f.toISOString()),S.info(`\u2728 banned ${Y} ips, didn't ban ${X} ips`);let Q=M-T.usdBudget,D=Q.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),N=M.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),V=Math.round(Q/M*100);S.info(`\uD83D\uDCB8 spent ${D}, ${V}% of ${N} budget`)}var qS=new k0;Object.assign(console,qS.logger,{log:qS.logger.info});process.on("SIGINT",()=>{qS.logger.info("\u2757 received SIGINT; exiting gracefully"),PW()});process.on("SIGTERM",()=>{qS.logger.info("\u2757 received SIGTERM; exiting gracefully"),PW()});process.on("exit",()=>{qS.logger.info("\u2757 received exit; exiting gracefully"),PW()});qS.logger.info("\uD83D\uDEEB tribunal worker ready");var my=new WX({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:bS.OPENAI_API_KEY,cachingMode:"off",logger:qS.logger});if(bS.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 hY({generator:my,logFilePath:"/var/log/nginx/access.log",logger:qS.logger});PW();function PW(){qS.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}
|